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="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://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="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"]
|
[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]
|
[node name="CollisionShape3D" type="CollisionShape3D" parent="EnchantingTable" unique_id=352273224]
|
||||||
shape = SubResource("BoxShape3D_etable")
|
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
|
@onready var mesh_node: MeshInstance3D = $BodyMesh
|
||||||
var mat: StandardMaterial3D
|
var mat: StandardMaterial3D
|
||||||
|
var type_label: Label3D
|
||||||
|
|
||||||
var COLOR_CHASE = Color(1.0, 0.28, 0.18)
|
var COLOR_CHASE = Color(1.0, 0.28, 0.18)
|
||||||
var COLOR_FLY = Color(1.0, 0.85, 0.1)
|
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
|
mat = mesh_node.material_override.duplicate() as StandardMaterial3D
|
||||||
mesh_node.material_override = mat
|
mesh_node.material_override = mat
|
||||||
COLOR_CHASE = mat.albedo_color
|
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:
|
func setup(type: String, wave: int) -> void:
|
||||||
enemy_type = type
|
enemy_type = type
|
||||||
@@ -93,6 +109,7 @@ func setup(type: String, wave: int) -> void:
|
|||||||
enemy_level = 3
|
enemy_level = 3
|
||||||
kick_tier = enemy_level
|
kick_tier = enemy_level
|
||||||
toughness_tier = enemy_level
|
toughness_tier = enemy_level
|
||||||
|
_update_label()
|
||||||
|
|
||||||
func _physics_process(delta: float) -> void:
|
func _physics_process(delta: float) -> void:
|
||||||
match state:
|
match state:
|
||||||
@@ -290,9 +307,15 @@ func _start_merge(other: Node) -> void:
|
|||||||
tw.tween_property(other, "global_position", global_position, 0.2)
|
tw.tween_property(other, "global_position", global_position, 0.2)
|
||||||
tw.tween_callback(_on_merge_complete)
|
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:
|
func _on_merge_complete() -> void:
|
||||||
var merge_pos := global_position
|
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_level: int = enemy_level + 1
|
||||||
var new_wave: int = wave_num
|
var new_wave: int = wave_num
|
||||||
if is_instance_valid(merge_partner):
|
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.enemy_level = level
|
||||||
enemy.kick_tier = level
|
enemy.kick_tier = level
|
||||||
enemy.toughness_tier = level
|
enemy.toughness_tier = level
|
||||||
|
enemy.call("_update_label")
|
||||||
enemy.global_position = pos
|
enemy.global_position = pos
|
||||||
enemy.connect("died", _on_enemy_died)
|
enemy.connect("died", _on_enemy_died)
|
||||||
enemy.connect("merged", _on_enemy_merged)
|
enemy.connect("merged", _on_enemy_merged)
|
||||||
|
|||||||
Reference in New Issue
Block a user