boss start, some enemies
This commit is contained in:
parent
93968ff9fb
commit
66ecb04bd1
123 changed files with 1884 additions and 499 deletions
55
scenes/boss_machine.gd
Normal file
55
scenes/boss_machine.gd
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
extends Node2D
|
||||
|
||||
@export var speed = 300;
|
||||
@export var spawn_points : Node2D
|
||||
var target_pos := Vector2(0, 0)
|
||||
@onready var marker : Sprite2D = $DangerRound
|
||||
@onready var claw : Claw = $DangerRound/Claw
|
||||
|
||||
enum s { Follow, Smash, Spawn, Laser}
|
||||
var state = s.Follow
|
||||
|
||||
var max_follow_time = 2;
|
||||
var following = max_follow_time;
|
||||
|
||||
var timer = 0;
|
||||
|
||||
func _ready() -> void:
|
||||
target_pos = position
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
match(state):
|
||||
s.Follow:
|
||||
follow(delta)
|
||||
s.Smash:
|
||||
pass
|
||||
|
||||
func spawn_minions(times : int):
|
||||
var points : Array[Node]= spawn_points.get_children()
|
||||
points.shuffle()
|
||||
for i in range(times):
|
||||
var p = points[i].global_position
|
||||
await create_tween().tween_property(marker, "global_position", p, 1).finished
|
||||
await claw.pickup()
|
||||
state = s.Follow
|
||||
|
||||
func smash():
|
||||
await claw.smash();
|
||||
if randf() < 0.7:
|
||||
state = s.Follow
|
||||
else:
|
||||
state = s.Spawn
|
||||
spawn_minions(3)
|
||||
|
||||
func follow(delta : float):
|
||||
var player : Player = get_tree().get_first_node_in_group("player")
|
||||
if not player: return
|
||||
move_to(player.global_position, delta)
|
||||
following -= delta
|
||||
if following < 0:
|
||||
state = s.Smash
|
||||
smash()
|
||||
following = max_follow_time;
|
||||
|
||||
func move_to(pos : Vector2, delta : float):
|
||||
marker.global_position = marker.global_position.move_toward(pos, delta * speed)
|
||||
Loading…
Add table
Add a link
Reference in a new issue