initial merge
This commit is contained in:
@@ -43,6 +43,7 @@ func _ready() -> void:
|
||||
_create_ui()
|
||||
_spawn_player()
|
||||
_start_game()
|
||||
add_to_group("main")
|
||||
Input.mouse_mode = Input.MOUSE_MODE_CAPTURED
|
||||
|
||||
func _input(event: InputEvent) -> void:
|
||||
@@ -224,6 +225,7 @@ func _spawn_enemy() -> void:
|
||||
enemy.setup(type, wave)
|
||||
enemy.target = player
|
||||
enemy.connect("died", _on_enemy_died)
|
||||
enemy.connect("merged", _on_enemy_merged)
|
||||
|
||||
# Spawn at random edge
|
||||
var side := randi() % 4
|
||||
@@ -246,6 +248,31 @@ func _on_enemy_died(points: int) -> void:
|
||||
wave += 1
|
||||
_show_upgrade()
|
||||
|
||||
func _spawn_upgraded_enemy(pos: Vector3, type: String, level: int, w: int) -> CharacterBody3D:
|
||||
var enemy := ENEMY_SCENE.instantiate() as CharacterBody3D
|
||||
add_child(enemy)
|
||||
enemy.setup(type, w)
|
||||
enemy.target = player
|
||||
enemy.enemy_level = level + 1
|
||||
enemy.global_position = pos
|
||||
enemy.connect("died", _on_enemy_died)
|
||||
enemy.connect("merged", _on_enemy_merged)
|
||||
var tw := enemy.create_tween()
|
||||
var s: float = 1.0 + level * 0.3
|
||||
tw.tween_property(enemy.mesh_node, "scale", Vector3(s, s, s), 0.2)
|
||||
var col_shape := enemy.get_node_or_null("CollisionShape3D") as CollisionShape3D
|
||||
if col_shape != null and col_shape.shape != null:
|
||||
var s3d: BoxShape3D = col_shape.shape as BoxShape3D
|
||||
var old_size: Vector3 = s3d.size
|
||||
col_shape.shape = BoxShape3D.new()
|
||||
(col_shape.shape as BoxShape3D).size = old_size * s
|
||||
var color := Color(1.0, 1.0, 0.5) if level > 2 else Color(1.0, 0.9, 0.3)
|
||||
tw.tween_property(enemy.mat, "albedo_color", color, 0.25)
|
||||
return enemy
|
||||
|
||||
func _on_enemy_merged(_upgrade: bool) -> void:
|
||||
pass
|
||||
|
||||
func _on_player_died() -> void:
|
||||
game_active = false
|
||||
spawn_timer.stop()
|
||||
|
||||
Reference in New Issue
Block a user