Blobby/src/Actors/Enemies/Beings/DartingEnemy.gd
Jakob Feldmann 1351dbb004 Added 3 simple enemy types
The first avoids falling off ledges,
the second falls only off of safe ledges
and the thirds darts towards the player when
he is touching the same unobstructed ground
it is on.
2022-07-12 18:05:34 +02:00

40 lines
992 B
GDScript

extends Player
export var score := 100
func _ready() -> void:
set_physics_process(false)
# TODO adapt to groups
func _on_StompDetector_body_entered(body: Node) -> void:
if body.global_position.y > get_node("StompDetector").global_position.y:
return
get_node("EnemyBody").disabled = true
die()
func _physics_process(delta: float) -> void:
velocity.y += _gravity * delta
velocity.x = 80 * player_on_floor_direction()
print(velocity.x)
velocity.y = move_and_slide(velocity, FLOOR_NORMAL).y
# TODO Detects player over gaps
func player_on_floor_direction():
for raycast in $LedgeDetectorRays.get_children():
if raycast.is_colliding():
var collider = raycast.get_collider()
if collider.is_in_group("player"):
return sign(collider.position.x - self.position.x)
return 0
func die() -> void:
queue_free()
PlayerData.score += score
func _on_EnemySkin_area_entered(area:Area2D) -> void:
if area.is_in_group("harmful"):
get_node("EnemyBody").disabled = true
die()