mirror of
https://github.com/JHDev2006/Super-Mario-Bros.-Remastered-Public.git
synced 2025-10-23 07:58:09 +00:00
added the game
This commit is contained in:
39
Scripts/Classes/Entities/Enemies/Spike.gd
Normal file
39
Scripts/Classes/Entities/Enemies/Spike.gd
Normal file
@@ -0,0 +1,39 @@
|
||||
extends Enemy
|
||||
const SPIKE_BALL = preload("uid://c7il83r4ab05d")
|
||||
|
||||
@export var can_move := false
|
||||
|
||||
func _ready() -> void:
|
||||
$ThrowTimer.start()
|
||||
if can_move:
|
||||
$TurnTimer.start()
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
if can_move:
|
||||
$Movement.handle_movement(delta)
|
||||
else:
|
||||
$StaticMovement.handle_movement(delta)
|
||||
var target_player = get_tree().get_first_node_in_group("Players")
|
||||
var target_direction = sign(target_player.global_position.x - global_position.x)
|
||||
if target_direction != 0:
|
||||
direction = target_direction
|
||||
|
||||
func throw_ball() -> void:
|
||||
$Movement.can_move = false
|
||||
%Animations.play("BallSpawn")
|
||||
await %Animations.animation_finished
|
||||
summon_ball()
|
||||
%Animations.play("Idle")
|
||||
$Movement.can_move = true
|
||||
|
||||
func summon_ball() -> void:
|
||||
var ball = SPIKE_BALL.instantiate()
|
||||
ball.global_position = %Ball.global_position
|
||||
add_sibling(ball)
|
||||
ball.velocity.x = 100 * direction
|
||||
|
||||
|
||||
func on_timeout() -> void:
|
||||
if not $Movement.can_move: return
|
||||
var target_player = get_tree().get_first_node_in_group("Players")
|
||||
direction = sign(target_player.global_position.x - global_position.x)
|
Reference in New Issue
Block a user