This commit is contained in:
Nikolay Fedorov
2026-04-23 17:45:50 +03:00
10 changed files with 21047 additions and 42 deletions
+20857
View File
File diff suppressed because it is too large Load Diff
+25
View File
@@ -0,0 +1,25 @@
[remap]
importer="wavefront_obj"
importer_version=1
type="Mesh"
uid="uid://caurrbclp30ly"
path="res://.godot/imported/armor.obj-af01c4b492188328bde6fd5b9ed2eed0.mesh"
[deps]
files=["res://.godot/imported/armor.obj-af01c4b492188328bde6fd5b9ed2eed0.mesh"]
source_file="res://assets/armor.obj"
dest_files=["res://.godot/imported/armor.obj-af01c4b492188328bde6fd5b9ed2eed0.mesh", "res://.godot/imported/armor.obj-af01c4b492188328bde6fd5b9ed2eed0.mesh"]
[params]
generate_tangents=true
generate_lods=true
generate_shadow_mesh=true
generate_lightmap_uv2=false
generate_lightmap_uv2_texel_size=0.2
scale_mesh=Vector3(1, 1, 1)
offset_mesh=Vector3(0, 0, 0)
force_disable_mesh_compression=false
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

+40
View File
@@ -0,0 +1,40 @@
[remap]
importer="texture"
type="CompressedTexture2D"
uid="uid://w5fnj0g3j6ms"
path="res://.godot/imported/armor.png-7969b140c50e154aedeaeb60a071ac9b.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://assets/armor.png"
dest_files=["res://.godot/imported/armor.png-7969b140c50e154aedeaeb60a071ac9b.ctex"]
[params]
compress/mode=0
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
process/channel_remap/red=0
process/channel_remap/green=1
process/channel_remap/blue=2
process/channel_remap/alpha=3
process/fix_alpha_border=true
process/premult_alpha=false
process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
+7 -6
View File
@@ -3,19 +3,20 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://bqpntq4rf2q7s"
path="res://.godot/imported/boot3.png-d7aa5373b9b2c6ad231646d4daea89b4.ctex"
path.s3tc="res://.godot/imported/boot3.png-d7aa5373b9b2c6ad231646d4daea89b4.s3tc.ctex"
metadata={
"vram_texture": false
"imported_formats": ["s3tc_bptc"],
"vram_texture": true
}
[deps]
source_file="res://assets/boot3.png"
dest_files=["res://.godot/imported/boot3.png-d7aa5373b9b2c6ad231646d4daea89b4.ctex"]
dest_files=["res://.godot/imported/boot3.png-d7aa5373b9b2c6ad231646d4daea89b4.s3tc.ctex"]
[params]
compress/mode=0
compress/mode=2
compress/high_quality=false
compress/lossy_quality=0.7
compress/uastc_level=0
@@ -23,7 +24,7 @@ compress/rdo_quality_loss=0.0
compress/hdr_compression=1
compress/normal_map=0
compress/channel_pack=0
mipmaps/generate=false
mipmaps/generate=true
mipmaps/limit=-1
roughness/mode=0
roughness/src_normal=""
@@ -37,4 +38,4 @@ process/normal_map_invert_y=false
process/hdr_as_srgb=false
process/hdr_clamp_exposure=false
process/size_limit=0
detect_3d/compress_to=1
detect_3d/compress_to=0
+12 -15
View File
@@ -1,29 +1,26 @@
[gd_scene format=3 uid="uid://cayybawvw26cm"]
[ext_resource type="Script" path="res://scripts/EnchantedSphere.gd" id="1_sphere"]
[sub_resource type="SphereMesh" id="SphereMesh_1"]
radius = 0.28
height = 0.56
[ext_resource type="Script" uid="uid://c4d11cs4fcqib" path="res://scripts/EnchantedSphere.gd" id="1_sphere"]
[ext_resource type="Texture2D" uid="uid://bqpntq4rf2q7s" path="res://assets/boot3.png" id="2_gp14g"]
[ext_resource type="ArrayMesh" uid="uid://jls6i8ov73ld" path="res://assets/boot.obj" id="3_d6vog"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1"]
albedo_color = Color(0.8, 0.3, 1.0, 1)
albedo_texture = ExtResource("2_gp14g")
emission_enabled = true
emission = Color(0.6, 0.1, 1.0, 1)
emission = Color(0.6, 0.1, 1, 1)
emission_energy_multiplier = 3.0
[node name="EnchantedSphere" type="Node3D"]
[node name="EnchantedSphere" type="Node3D" unique_id=879211768]
script = ExtResource("1_sphere")
[node name="SphereMesh" type="MeshInstance3D" parent="."]
mesh = SubResource("SphereMesh_1")
[node name="SphereMesh" type="MeshInstance3D" parent="." unique_id=905498826]
material_override = SubResource("StandardMaterial3D_1")
mesh = ExtResource("3_d6vog")
[node name="Tooltip" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0)
[node name="Tooltip" type="Label3D" parent="." unique_id=947504755]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.3280884, 0)
billboard = 1
double_sided = true
text = "[E] Enchanted Sphere
text = "[E] Enchanted Boots
+1 Tier"
font_size = 32
font_size = 56
outline_size = 6
+9 -11
View File
@@ -1,26 +1,24 @@
[gd_scene format=3 uid="uid://bidrinpjiyb2x"]
[ext_resource type="Script" path="res://scripts/LeatherArmor.gd" id="1_leatha"]
[sub_resource type="BoxMesh" id="BoxMesh_1"]
size = Vector3(0.5, 0.6, 0.22)
[ext_resource type="Script" uid="uid://b80k2b1icwlbm" path="res://scripts/LeatherArmor.gd" id="1_leatha"]
[ext_resource type="ArrayMesh" uid="uid://caurrbclp30ly" path="res://assets/armor.obj" id="2_dji1h"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1"]
albedo_color = Color(0.55, 0.32, 0.14, 1)
roughness = 0.8
[node name="LeatherArmor" type="Node3D"]
[node name="LeatherArmor" type="Node3D" unique_id=1218398814]
script = ExtResource("1_leatha")
[node name="ArmorMesh" type="MeshInstance3D" parent="."]
mesh = SubResource("BoxMesh_1")
[node name="ArmorMesh" type="MeshInstance3D" parent="." unique_id=1757935253]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.3858314, 0)
material_override = SubResource("StandardMaterial3D_1")
mesh = ExtResource("2_dji1h")
[node name="Tooltip" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0, 0)
[node name="Tooltip" type="Label3D" parent="." unique_id=1322485403]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7649657, 0)
billboard = 1
double_sided = true
text = "[E] Leather Armor
+1 Toughness"
font_size = 32
font_size = 56
outline_size = 6
+5 -3
View File
@@ -2,7 +2,7 @@
[ext_resource type="Script" uid="uid://cqp1ucyvnno7i" path="res://scripts/MetalArmor.gd" id="1_armor"]
[ext_resource type="Texture2D" uid="uid://ce4g8nblils0e" path="res://assets/boot2.png" id="2_ocond"]
[ext_resource type="ArrayMesh" uid="uid://jls6i8ov73ld" path="res://assets/boot.obj" id="3_h45w0"]
[ext_resource type="ArrayMesh" uid="uid://caurrbclp30ly" path="res://assets/armor.obj" id="3_ocond"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1"]
albedo_color = Color(0.55, 0.6, 0.68, 1)
@@ -15,12 +15,14 @@ roughness = 0.3
script = ExtResource("1_armor")
[node name="ArmorMesh" type="MeshInstance3D" parent="." unique_id=1340618559]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.3499111, 0)
material_override = SubResource("StandardMaterial3D_1")
mesh = ExtResource("3_h45w0")
mesh = ExtResource("3_ocond")
[node name="Tooltip" type="Label3D" parent="." unique_id=748491675]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0)
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.9431921, 0)
billboard = 1
text = "[E] Metal Armor
+1 Tier"
font_size = 56
outline_size = 6
+8 -7
View File
@@ -1,16 +1,16 @@
[gd_scene format=3 uid="uid://dbvt3pkrej5nq"]
[ext_resource type="Script" uid="uid://sfq4iq0btm0g" path="res://scripts/MetalPlate.gd" id="1_plate"]
[ext_resource type="Texture2D" uid="uid://ce4g8nblils0e" path="res://assets/boot2.png" id="2_quvug"]
[ext_resource type="ArrayMesh" uid="uid://jls6i8ov73ld" path="res://assets/boot.obj" id="3_2i44a"]
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1"]
albedo_color = Color(0.6, 0.65, 0.72, 1)
albedo_texture = ExtResource("2_quvug")
metallic = 0.8
metallic_specular = 0.9
roughness = 0.35
[sub_resource type="BoxMesh" id="BoxMesh_1"]
size = Vector3(0.55, 0.08, 0.7)
[sub_resource type="BoxShape3D" id="BoxShape3D_1"]
size = Vector3(1.0203736, 0.124472655, 1.4775146)
@@ -20,15 +20,16 @@ script = ExtResource("1_plate")
[node name="PlateMesh" type="MeshInstance3D" parent="." unique_id=436086498]
transform = Transform3D(1.8395851, 0, 0, 0, 1.5228686, 0, 0, 0, 2.050398, 0, 0.16620824, 0)
material_override = SubResource("StandardMaterial3D_1")
mesh = SubResource("BoxMesh_1")
mesh = ExtResource("3_2i44a")
[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=1642999883]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.005560264, 0.16739155, 0.003918484)
shape = SubResource("BoxShape3D_1")
[node name="Tooltip" type="Label3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0)
[node name="Tooltip" type="Label3D" parent="." unique_id=59052869]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2.425037, 0)
billboard = 1
text = "[E] Metal Plate
text = "[E] Armored Boots
+1 Kick Tier"
font_size = 56
outline_size = 6
+84
View File
@@ -617,6 +617,90 @@ func _create_ui() -> void:
func _make_hud() -> void:
score_label = _label(Vector2(16, 12), "Score: 0", 30)
wave_label = _label(Vector2(16, 50), "Wave: 1", 30)
_make_recipe_panel()
func _make_recipe_panel() -> void:
const INGREDIENT_NAMES := {
"rock": "Rock",
"stick": "Stick",
"leather": "Leather",
"iron": "Iron",
"metal_plate":"Iron Plate",
}
const RESULT_NAMES := {
"LeatherBoots": "Leather Boots",
"Boulder": "Boulder",
"StickArmor": "Stick Armor",
"LeatherArmor": "Leather Armor",
"PlateArmor": "Plate Armor",
"WoodenShield": "Wooden Shield",
"IronShield": "Iron Shield",
"MetalArmor": "Metal Armor",
}
const PAD_H := 10
const PAD_V := 8
const SEP := 4
const TITLE_H := 22
const ROW_H := 20
var n := MergeRecipes._list.size()
var content_h := TITLE_H + SEP + n * ROW_H + (n - 1) * SEP
var panel_h := content_h + PAD_V * 2 + 10
const PANEL_W := 260
var panel := Panel.new()
var sb := StyleBoxFlat.new()
sb.bg_color = Color(0.0, 0.0, 0.0, 0.55)
sb.corner_radius_top_left = 6
sb.corner_radius_top_right = 6
sb.corner_radius_bottom_left = 6
sb.corner_radius_bottom_right = 6
panel.add_theme_stylebox_override("panel", sb)
panel.anchor_left = 1.0
panel.anchor_right = 1.0
panel.anchor_top = 0.0
panel.anchor_bottom = 0.0
panel.offset_left = -(PANEL_W + 10)
panel.offset_right = -10
panel.offset_top = 10
panel.offset_bottom = 10 + panel_h
canvas.add_child(panel)
var margin := MarginContainer.new()
margin.set_anchors_and_offsets_preset(Control.PRESET_FULL_RECT)
margin.add_theme_constant_override("margin_left", PAD_H)
margin.add_theme_constant_override("margin_right", PAD_H)
margin.add_theme_constant_override("margin_top", PAD_V)
margin.add_theme_constant_override("margin_bottom", PAD_V)
panel.add_child(margin)
var vbox := VBoxContainer.new()
vbox.add_theme_constant_override("separation", SEP)
margin.add_child(vbox)
var title := Label.new()
title.text = "Рецепты"
title.add_theme_font_size_override("font_size", 17)
title.add_theme_color_override("font_color", Color(1.0, 0.9, 0.5))
title.add_theme_color_override("font_shadow_color", Color(0, 0, 0, 0.8))
title.add_theme_constant_override("shadow_offset_x", 1)
title.add_theme_constant_override("shadow_offset_y", 1)
title.horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER
vbox.add_child(title)
for recipe in MergeRecipes._list:
var a: String = INGREDIENT_NAMES.get(recipe["ingredients"][0], recipe["ingredients"][0])
var b: String = INGREDIENT_NAMES.get(recipe["ingredients"][1], recipe["ingredients"][1])
var scene_name: String = (recipe["result_scene"] as String).get_file().get_basename()
var result: String = RESULT_NAMES.get(scene_name, scene_name)
var row := Label.new()
row.text = "%s + %s%s" % [a, b, result]
row.add_theme_font_size_override("font_size", 15)
row.add_theme_color_override("font_color", Color.WHITE)
row.add_theme_color_override("font_shadow_color", Color(0, 0, 0, 0.8))
row.add_theme_constant_override("shadow_offset_x", 1)
row.add_theme_constant_override("shadow_offset_y", 1)
vbox.add_child(row)
_label(Vector2(16, 92), "HP", 20)
hp_bar_bg = _crect(Vector2(16, 118), Vector2(260, 20), Color(0.25, 0.04, 0.04))