add tooltip on enemies, update enemy type on merge
This commit is contained in:
+24
-1
@@ -46,6 +46,7 @@ var is_upgrading: bool = false
|
||||
|
||||
@onready var mesh_node: MeshInstance3D = $BodyMesh
|
||||
var mat: StandardMaterial3D
|
||||
var type_label: Label3D
|
||||
|
||||
var COLOR_CHASE = Color(1.0, 0.28, 0.18)
|
||||
var COLOR_FLY = Color(1.0, 0.85, 0.1)
|
||||
@@ -59,6 +60,21 @@ func _ready() -> void:
|
||||
mat = mesh_node.material_override.duplicate() as StandardMaterial3D
|
||||
mesh_node.material_override = mat
|
||||
COLOR_CHASE = mat.albedo_color
|
||||
type_label = Label3D.new()
|
||||
type_label.billboard = BaseMaterial3D.BILLBOARD_ENABLED
|
||||
type_label.position = Vector3(0, 1.6, 0)
|
||||
type_label.font_size = 28
|
||||
type_label.outline_size = 5
|
||||
type_label.modulate = Color.WHITE
|
||||
add_child(type_label)
|
||||
|
||||
func _update_label() -> void:
|
||||
if type_label == null:
|
||||
return
|
||||
var stars := ""
|
||||
for i in range(enemy_level - 1):
|
||||
stars += "★"
|
||||
type_label.text = enemy_type + (" " + stars if stars != "" else "")
|
||||
|
||||
func setup(type: String, wave: int) -> void:
|
||||
enemy_type = type
|
||||
@@ -93,6 +109,7 @@ func setup(type: String, wave: int) -> void:
|
||||
enemy_level = 3
|
||||
kick_tier = enemy_level
|
||||
toughness_tier = enemy_level
|
||||
_update_label()
|
||||
|
||||
func _physics_process(delta: float) -> void:
|
||||
match state:
|
||||
@@ -290,9 +307,15 @@ func _start_merge(other: Node) -> void:
|
||||
tw.tween_property(other, "global_position", global_position, 0.2)
|
||||
tw.tween_callback(_on_merge_complete)
|
||||
|
||||
static func _next_enemy_type(current: String) -> String:
|
||||
match current:
|
||||
"slime": return "bat"
|
||||
"bat": return "ogre"
|
||||
_: return "titan"
|
||||
|
||||
func _on_merge_complete() -> void:
|
||||
var merge_pos := global_position
|
||||
var merge_type := enemy_type
|
||||
var merge_type := _next_enemy_type(enemy_type)
|
||||
var new_level: int = enemy_level + 1
|
||||
var new_wave: int = wave_num
|
||||
if is_instance_valid(merge_partner):
|
||||
|
||||
Reference in New Issue
Block a user