From f37c27887e5e5e132e6e542062d73fa3e6727c82 Mon Sep 17 00:00:00 2001 From: Nikolai Fedorov Date: Thu, 23 Apr 2026 15:52:36 +0300 Subject: [PATCH] upgrade mesh merge --- scripts/Enemy.gd | 16 ++++++++++++++++ scripts/Main.gd | 3 +-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/scripts/Enemy.gd b/scripts/Enemy.gd index 4222aae..20d9f31 100644 --- a/scripts/Enemy.gd +++ b/scripts/Enemy.gd @@ -120,6 +120,22 @@ func setup(type: String, wave: int) -> void: kick_tier = enemy_level toughness_tier = enemy_level _update_label() + _apply_mesh(enemy_level) + +func _apply_mesh(level: int) -> void: + var idx := clampi(level, 1, 3) + var mesh_res := load("res://assets/gnome%d.obj" % idx) as Mesh + if mesh_res == null: + return + var new_mat := StandardMaterial3D.new() + var tex := load("res://assets/gnome%d.png" % idx) as Texture2D + if tex != null: + new_mat.albedo_texture = tex + new_mat.albedo_color = Color.WHITE + mesh_node.mesh = mesh_res + mesh_node.material_override = new_mat + mat = new_mat + COLOR_CHASE = Color.WHITE func _physics_process(delta: float) -> void: match state: diff --git a/scripts/Main.gd b/scripts/Main.gd index 3a46cac..52da3d3 100644 --- a/scripts/Main.gd +++ b/scripts/Main.gd @@ -306,6 +306,7 @@ func _spawn_upgraded_enemy(pos: Vector3, type: String, level: int, w: int) -> Ch enemy.kick_tier = level enemy.toughness_tier = level enemy.call("_update_label") + enemy.call("_apply_mesh", level) enemy.global_position = pos enemy.connect("died", _on_enemy_died) enemy.connect("merged", _on_enemy_merged) @@ -318,8 +319,6 @@ func _spawn_upgraded_enemy(pos: Vector3, type: String, level: int, w: int) -> Ch 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) if level >= 3 and not first_boss_spawned: first_boss_spawned = true _start_boss_phase()