Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/main' into main
Browse files Browse the repository at this point in the history
  • Loading branch information
666Savior committed Apr 26, 2021
2 parents 13b61e6 + 3560443 commit 32190b0
Show file tree
Hide file tree
Showing 24 changed files with 500 additions and 93 deletions.
67 changes: 66 additions & 1 deletion character/Enemy.gd
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,9 @@ onready var home = self.position
onready var sprite = $AnimatedSprite

var walk_sound_timer: float = 0.0
var moving: bool = false
var last_movement_dir: Vector2 = Vector2.DOWN
var playing_action: bool = false

func _ready() -> void:
sprite.playing = true
Expand All @@ -51,23 +54,32 @@ func _physics_process(delta:float):
attack_timer += delta

var towardsplayer = ((nearest_player.global_position - self.global_position).normalized() * self.run_speed)
moving = true
move_and_slide(towardsplayer)
animate_movement(towardsplayer)
last_movement_dir = towardsplayer
try_play_walk_sound()

var collision = move_and_collide((nearest_player.global_position - self.global_position).normalized() * self.attack_range,true,true,true)

if collision && collision.collider.has_method("take_damage") && attack_timer >= basic_attack_cooldown :
attack_timer = 0.0
play_attack_anim(last_movement_dir)
if swing_sounds.size() > 0:
get_node(swing_sounds[randi() % swing_sounds.size()]).play()
hit(collision.collider)

else:
var towardshome = ((home - self.position).normalized() * self.run_speed)
if (home - self.position).length_squared() > 8.0:
moving = true
move_and_slide(towardshome)
animate_movement(towardshome)
last_movement_dir = towardshome
try_play_walk_sound()
else:
moving = false
animate_movement(last_movement_dir)
walk_sound_timer = 0.0

func hit(other: CollisionObject2D):
Expand All @@ -79,13 +91,66 @@ func hit(other: CollisionObject2D):

other.take_damage(basic_attack_dmg * basic_attack_multiplier,0,0,0)

func animate_movement(dir: Vector2):
if playing_action:
return
var angle = dir.normalized().angle()
# right
if angle > -0.1875 * TAU && angle < 0.1875 * TAU:
if moving:
sprite.play("run_right")
else:
sprite.play("idle_right")
# left
elif angle < -0.3125 * TAU || angle > 0.3125 * TAU:
if moving:
sprite.play("run_left")
else:
sprite.play("idle_left")
# down
elif angle > 0.0:
if moving:
sprite.play("run_down")
else:
sprite.play("idle_down")
# up
else:
if moving:
sprite.play("run_up")
else:
sprite.play("idle_up")

func play_attack_anim(direction: Vector2):
playing_action = true
var angle = last_movement_dir.normalized().angle()
var anim: String
# right
if angle > -0.1875 * TAU && angle < 0.1875 * TAU:
anim = "slash_right"
# left
elif angle < -0.3125 * TAU || angle > 0.3125 * TAU:
anim = "slash_left"
# down
elif angle > 0.0:
anim = "slash_down"
# up
else:
anim = "slash_up"

sprite.play(anim)
$FxSprite.play(anim + "_red")
yield(sprite, "animation_finished")
playing_action = false
$FxSprite.play("idle")

func _process(delta:float):
# DebugLabel.display(self, last_movement_dir)
# if nearest_player:
# DebugLabel.display(self, nearest_player.position)
# DebugLabel.display(self, ((nearest_player.position - self.position).normalized() * self.run_speed))
# else:
pass
# pass
pass

func try_play_walk_sound():
if walk_sound_timer > walk_sound_interval:
Expand Down
8 changes: 7 additions & 1 deletion character/Enemy.tscn
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[gd_scene load_steps=19 format=2]
[gd_scene load_steps=20 format=2]

[ext_resource path="res://character/EnemyRed_SpriteFrames.tres" type="SpriteFrames" id=1]
[ext_resource path="res://character/Enemy.gd" type="Script" id=2]
Expand All @@ -17,6 +17,7 @@
[ext_resource path="res://sound/positional/SFX_SwordHit_6.wav" type="AudioStream" id=15]
[ext_resource path="res://sound/positional/SFX_SwordHit_5.wav" type="AudioStream" id=16]
[ext_resource path="res://sound/positional/SFX_SwordHit_1.wav" type="AudioStream" id=17]
[ext_resource path="res://character/AttackFx_SpriteFrames.tres" type="SpriteFrames" id=18]

[sub_resource type="CircleShape2D" id=1]
radius = 16.0
Expand All @@ -36,6 +37,11 @@ frames = ExtResource( 1 )
animation = "idle_down"
offset = Vector2( 0, -16 )

[node name="FxSprite" type="AnimatedSprite" parent="."]
frames = ExtResource( 18 )
animation = "idle"
offset = Vector2( 0, -14 )

[node name="AudioStreamPlayer2DWalk1" type="AudioStreamPlayer2D" parent="."]
stream = ExtResource( 4 )
volume_db = -9.0
Expand Down
Loading

0 comments on commit 32190b0

Please sign in to comment.