Ghost enemy and other changes
This commit is contained in:
@@ -1,26 +1,61 @@
|
||||
extends Node2D
|
||||
extends KinematicBody2D
|
||||
|
||||
|
||||
# Declare member variables here. Examples:
|
||||
# var a: int = 2
|
||||
# var b: String = "text"
|
||||
onready var animated_sprite = $AnimatedSprite
|
||||
export var Fireball: PackedScene
|
||||
onready var player = null
|
||||
var move = Vector2.ZERO
|
||||
var SPEED = 50
|
||||
var counter = 0
|
||||
var velocity: Vector2 = Vector2.ZERO
|
||||
var health: int = 4
|
||||
|
||||
|
||||
# Called when the node enters the scene tree for the first time.
|
||||
func _ready() -> void:
|
||||
self.visible = false
|
||||
|
||||
|
||||
func _physics_process(delta):
|
||||
velocity = Vector2.ZERO
|
||||
|
||||
if player and position.distance_to(player.position) > 1:
|
||||
velocity = position.direction_to(player.position).normalized() * SPEED
|
||||
velocity = move_and_slide(velocity)
|
||||
|
||||
func _process(delta: float) -> void:
|
||||
pass
|
||||
#animated_sprite.play("idle")
|
||||
|
||||
|
||||
func _on_Area2D_body_entered(body):
|
||||
self.visible = true
|
||||
animated_sprite.play("appear")
|
||||
if body.is_in_group('player'):
|
||||
player = body
|
||||
if counter == 0:
|
||||
self.visible = true
|
||||
$AnimatedSprite.play("appear")
|
||||
counter = 1
|
||||
|
||||
|
||||
|
||||
func _on_AnimatedSprite_animation_finished():
|
||||
animated_sprite.play("idle")
|
||||
$AnimatedSprite.play("idle")
|
||||
|
||||
|
||||
func _on_Hitbox_area_entered(area):
|
||||
if area.is_in_group('player_weapon_1'):
|
||||
health -= 1
|
||||
elif area.is_in_group('player_weapon_2'):
|
||||
health -= 2
|
||||
if health <= 0:
|
||||
$AnimatedSprite.play("vanish")
|
||||
yield($AnimatedSprite, "animation_finished")
|
||||
call_deferred('queue_free')
|
||||
return
|
||||
|
||||
|
||||
func _on_Projectile_Timer_timeout():
|
||||
if player:
|
||||
var projectile: Node = Fireball.instance()
|
||||
projectile.init($AnimatedSprite.global_position, player.position)
|
||||
get_tree().get_current_scene().get_node('Projectiles').add_child(projectile)
|
||||
$AnimatedSprite.play("shriek")
|
||||
|
Reference in New Issue
Block a user