feat: tatoebaspil m kiva hammasbaksu au andrjoku
This commit is contained in:
parent
b2d5ab61d2
commit
050e8f9e22
104 changed files with 3017 additions and 27 deletions
16
scripts/Characters/Enemy/attack_box.gd
Normal file
16
scripts/Characters/Enemy/attack_box.gd
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
extends Area2D
|
||||
|
||||
@onready var character = get_parent()
|
||||
var damage = 1
|
||||
|
||||
func _on_area_entered(target: Area2D) -> void:
|
||||
|
||||
# Damage target area if it has _take_damage method
|
||||
if target.has_method("_take_damage"):
|
||||
target._take_damage(damage)
|
||||
character._take_damage()
|
||||
|
||||
# Damage target area parent if it has _take_damage method
|
||||
if target.get_parent().has_method("_take_damage"):
|
||||
target.get_parent()._take_damage(damage)
|
||||
character._take_damage()
|
||||
1
scripts/Characters/Enemy/attack_box.gd.uid
Normal file
1
scripts/Characters/Enemy/attack_box.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://dekx8meo31r21
|
||||
59
scripts/Characters/Enemy/enemy_ground.gd
Normal file
59
scripts/Characters/Enemy/enemy_ground.gd
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
extends CharacterBody2D
|
||||
|
||||
@export var speed: float = 40.0
|
||||
var move_right = true
|
||||
|
||||
|
||||
@onready var ground_ray_left = %GroundRayLeft
|
||||
@onready var ground_ray_right = %GroundRayRight
|
||||
@onready var wall_ray_left = %WallRayLeft
|
||||
@onready var wall_ray_right = %WallRayRight
|
||||
|
||||
@onready var attack_box = %AttackBox
|
||||
|
||||
@onready var animator = %Animator
|
||||
@onready var sprite = %Sprite
|
||||
|
||||
@onready var death_sound_player: AudioStreamPlayer = %DeathSoundPlayer
|
||||
|
||||
func _ready() -> void:
|
||||
animator.play("walk")
|
||||
|
||||
func _physics_process(delta):
|
||||
# Set the velocity to move in the given direction
|
||||
if !wall_ray_left.is_colliding() and !wall_ray_right.is_colliding():
|
||||
if !ground_ray_left.is_colliding() or !ground_ray_right.is_colliding():
|
||||
if velocity.x >0:
|
||||
move_right = false
|
||||
else :
|
||||
move_right = true
|
||||
else:
|
||||
if velocity.x >0:
|
||||
move_right = false
|
||||
else :
|
||||
move_right = true
|
||||
|
||||
if move_right:
|
||||
velocity.x = 1 * speed
|
||||
else :
|
||||
velocity.x = -1 * speed
|
||||
|
||||
# Optionally, flip the sprite to face the new direction
|
||||
sprite.flip_h = !move_right
|
||||
|
||||
# Move the enemy according to the velocity
|
||||
move_and_slide()
|
||||
|
||||
func _take_damage():
|
||||
# Disable attack box so it can't hurt the player
|
||||
attack_box.monitoring = false
|
||||
|
||||
death_sound_player.play()
|
||||
|
||||
# Blink red
|
||||
sprite.modulate = Color(255, 0,0)
|
||||
|
||||
# Delay death
|
||||
await get_tree().create_timer(0.1).timeout
|
||||
|
||||
queue_free()
|
||||
1
scripts/Characters/Enemy/enemy_ground.gd.uid
Normal file
1
scripts/Characters/Enemy/enemy_ground.gd.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://ow780v11j4gt
|
||||
Loading…
Add table
Add a link
Reference in a new issue