add tooltip on enemies, update enemy type on merge
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
[ext_resource type="Texture2D" uid="uid://bjfuko7rdmax" path="res://assets/stone_big.png" id="3_klq6b"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://b5do7gjnxif80" path="res://assets/stonewall_long.obj" id="4_b121j"]
|
||||
[ext_resource type="ArrayMesh" uid="uid://ul1cypdhef5a" path="res://assets/stone_big.obj" id="5_8c41q"]
|
||||
[ext_resource type="PackedScene" uid="uid://g7iron5etp8u" path="res://scenes/Iron.tscn" id="6_dke22"]
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_ppgk2"]
|
||||
|
||||
@@ -277,6 +276,3 @@ mesh = SubResource("BoxMesh_ebook")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="EnchantingTable" unique_id=352273224]
|
||||
shape = SubResource("BoxShape3D_etable")
|
||||
|
||||
[node name="Iron" parent="." unique_id=611454609 instance=ExtResource("6_dke22")]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.4976616, 0.104292765, -5.8715014)
|
||||
|
||||
+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):
|
||||
|
||||
@@ -254,6 +254,7 @@ func _spawn_upgraded_enemy(pos: Vector3, type: String, level: int, w: int) -> Ch
|
||||
enemy.enemy_level = level
|
||||
enemy.kick_tier = level
|
||||
enemy.toughness_tier = level
|
||||
enemy.call("_update_label")
|
||||
enemy.global_position = pos
|
||||
enemy.connect("died", _on_enemy_died)
|
||||
enemy.connect("merged", _on_enemy_merged)
|
||||
|
||||
Reference in New Issue
Block a user