From 135a096f06d68910e2e77cee600dc37417fadbdc Mon Sep 17 00:00:00 2001 From: Tomasz Boruc Date: Mon, 10 Nov 2025 18:49:50 +0100 Subject: [PATCH] technologia --- assets/tech/Mining_Drill.png | Bin 0 -> 3255 bytes assets/tech/Mining_Drill.png.import | 40 ++++++++ assets/tech/hydro_engineering.png | Bin 0 -> 7735 bytes assets/tech/hydro_engineering.png.import | 40 ++++++++ scenes/galaxy.tscn | 10 +- scenes/tech_panel.tscn | 67 +++++++++++++ scripts/PlayerData.gd | 6 +- scripts/galaxy.gd | 13 +++ scripts/tech_panel.gd | 122 +++++++++++++++++++++++ scripts/tech_panel.gd.uid | 1 + scripts/technologies.gd | 14 +-- 11 files changed, 303 insertions(+), 10 deletions(-) create mode 100644 assets/tech/Mining_Drill.png create mode 100644 assets/tech/Mining_Drill.png.import create mode 100644 assets/tech/hydro_engineering.png create mode 100644 assets/tech/hydro_engineering.png.import create mode 100644 scenes/tech_panel.tscn create mode 100644 scripts/tech_panel.gd create mode 100644 scripts/tech_panel.gd.uid diff --git a/assets/tech/Mining_Drill.png b/assets/tech/Mining_Drill.png new file mode 100644 index 0000000000000000000000000000000000000000..59a9e88a7f6cd5ccb88b17cdd0e742390373381d GIT binary patch literal 3255 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 literal 0 HcmV?d00001 diff --git a/assets/tech/Mining_Drill.png.import b/assets/tech/Mining_Drill.png.import new file mode 100644 index 0000000..2b3bd96 --- /dev/null +++ b/assets/tech/Mining_Drill.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dplqsugnrtulx" +path="res://.godot/imported/Mining_Drill.png-965e33f1799d1fcba2eed57398f01552.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/tech/Mining_Drill.png" +dest_files=["res://.godot/imported/Mining_Drill.png-965e33f1799d1fcba2eed57398f01552.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 diff --git a/assets/tech/hydro_engineering.png b/assets/tech/hydro_engineering.png new file mode 100644 index 0000000000000000000000000000000000000000..0d8933c8616bd44c724f56b9a9c9aee44dfbe345 GIT binary patch literal 7735 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 literal 0 HcmV?d00001 diff --git a/assets/tech/hydro_engineering.png.import b/assets/tech/hydro_engineering.png.import new file mode 100644 index 0000000..b5a0c0e --- /dev/null +++ b/assets/tech/hydro_engineering.png.import @@ -0,0 +1,40 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b1oq5if3q10cl" +path="res://.godot/imported/hydro_engineering.png-e5e5223033b866912fa52717933d75b4.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://assets/tech/hydro_engineering.png" +dest_files=["res://.godot/imported/hydro_engineering.png-e5e5223033b866912fa52717933d75b4.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 diff --git a/scenes/galaxy.tscn b/scenes/galaxy.tscn index 17a94ea..d859a81 100644 --- a/scenes/galaxy.tscn +++ b/scenes/galaxy.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://b1vxl6rs5odt1"] +[gd_scene load_steps=10 format=3 uid="uid://b1vxl6rs5odt1"] [ext_resource type="Script" uid="uid://cts6e8xmnqsax" path="res://scripts/galaxy.gd" id="1_jxn3g"] [ext_resource type="PackedScene" uid="uid://bbgymc0drqpbx" path="res://scenes/ui/time_display.tscn" id="3_fmtwf"] @@ -8,6 +8,7 @@ [ext_resource type="Script" uid="uid://dpwk3ruw8mx6k" path="res://scripts/background.gd" id="6_xhm0b"] [ext_resource type="PackedScene" uid="uid://dgxm8txsiukwf" path="res://scenes/planet_panel.tscn" id="7_xhm0b"] [ext_resource type="PackedScene" uid="uid://c405r414rsut2" path="res://scenes/top_panel.tscn" id="8_0pfb5"] +[ext_resource type="PackedScene" uid="uid://bitiuqh8lb0ga" path="res://scenes/tech_panel.tscn" id="9_lwv00"] [node name="Galaxy" type="Node2D"] script = ExtResource("1_jxn3g") @@ -79,3 +80,10 @@ offset_top = -26.0 offset_right = 2022.0 offset_bottom = 78.0 size_flags_horizontal = 0 + +[node name="TechPanel" parent="UI" instance=ExtResource("9_lwv00")] +visible = false +offset_left = -1023.44006 +offset_top = -507.12006 +offset_right = -367.44006 +offset_bottom = -331.12006 diff --git a/scenes/tech_panel.tscn b/scenes/tech_panel.tscn new file mode 100644 index 0000000..69382f8 --- /dev/null +++ b/scenes/tech_panel.tscn @@ -0,0 +1,67 @@ +[gd_scene load_steps=4 format=3 uid="uid://bitiuqh8lb0ga"] + +[ext_resource type="Script" uid="uid://bsdypct22eu23" path="res://scripts/tech_panel.gd" id="1_qc7t1"] +[ext_resource type="FontFile" uid="uid://chk8jrn2ighpx" path="res://assets/fonts/main_font.ttf" id="2_5new4"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_sqypy"] +bg_color = Color(0.69411767, 0.32156864, 0.08235294, 0.37254903) +border_width_left = 1 +border_width_top = 1 +border_width_right = 1 +border_width_bottom = 1 +border_color = Color(0.7988825, 0.55350196, 0.19976625, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[node name="TechPanel" type="Panel"] +anchors_preset = -1 +anchor_left = 0.499 +anchor_top = 0.37300003 +anchor_right = 0.499 +anchor_bottom = 0.37300003 +offset_left = -612.44006 +offset_top = -241.70401 +offset_right = 47.559937 +offset_bottom = 259.88 +grow_vertical = 2 +size_flags_horizontal = 0 +size_flags_vertical = 0 +theme_override_styles/panel = SubResource("StyleBoxFlat_sqypy") +script = ExtResource("1_qc7t1") + +[node name="Tech_Label" type="Label" parent="."] +layout_mode = 0 +offset_left = 5.0 +offset_top = 3.0 +offset_right = 393.0 +offset_bottom = 24.0 +theme_override_fonts/font = ExtResource("2_5new4") +theme_override_font_sizes/font_size = 16 +text = "Technologie" +horizontal_alignment = 1 + +[node name="Technologies" type="GridContainer" parent="."] +layout_mode = 1 +anchors_preset = 12 +anchor_top = 1.0 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 15.0 +offset_top = -56.0 +offset_right = -11.0 +offset_bottom = -8.0 +grow_horizontal = 2 +grow_vertical = 0 +columns = 4 + +[node name="Button" type="Button" parent="."] +layout_mode = 0 +offset_left = 614.0 +offset_top = 6.583954 +offset_right = 653.0 +offset_bottom = 39.167908 +text = "X" + +[connection signal="pressed" from="Button" to="." method="_on_button_pressed"] diff --git a/scripts/PlayerData.gd b/scripts/PlayerData.gd index bf6482a..e526f88 100644 --- a/scripts/PlayerData.gd +++ b/scripts/PlayerData.gd @@ -8,7 +8,7 @@ var race: String = "Ludzie" # Zasoby globalne var resources := { - "iron": 0.0, + "iron": 11.0, "copper": 0.0, "water": 0.0, "carbon": 0.0, @@ -27,10 +27,10 @@ var resources := { "chronite": 0.0, } -var since_doc: float = 0.0 +var since_doc: float = 2.0 # Technologie odkryte -var unlocked_techs = ["advanced_mining"] +var unlocked_techs = [] # Lista skolonizowanych planet diff --git a/scripts/galaxy.gd b/scripts/galaxy.gd index e9a6b3f..f729496 100644 --- a/scripts/galaxy.gd +++ b/scripts/galaxy.gd @@ -5,6 +5,9 @@ extends Node2D @onready var MenuScene = preload("res://scenes/menu.tscn") @onready var camera = $Camera2D @onready var TimeDispaly = $CanvasLayer2 +@onready var tech_button = $UI/TopPanel/HBoxContainer/Technologies + +@onready var tech_panel = $UI/TechPanel # to Twoja scena z technologiami var existing_star_positions: Array[Vector2] = [] @@ -17,6 +20,16 @@ func _ready(): GameData.game_lunched = true + tech_button.connect("pressed", Callable(self, "_on_technologies_button_pressed")) + tech_panel.hide() # domyślnie ukryty + +func _on_technologies_button_pressed(): + # Przełącz widoczność panelu + tech_panel.visible = not tech_panel.visible + + # (Opcjonalnie) odśwież listę technologii za każdym razem, gdy panel się pokazuje + if tech_panel.visible and tech_panel.has_method("_create_technology_buttons"): + tech_panel._create_technology_buttons() func _process(delta): var zoom_level = (camera.zoom.x + camera.zoom.y) / 2.0 diff --git a/scripts/tech_panel.gd b/scripts/tech_panel.gd new file mode 100644 index 0000000..e1d5053 --- /dev/null +++ b/scripts/tech_panel.gd @@ -0,0 +1,122 @@ +extends Panel + +@onready var tech_container = $Technologies + + + +# Ścieżka do tekstur technologii (tu możesz dać swoje grafiki) +const DEFAULT_ICON = preload("res://assets/tech/Mining_Drill.png") + +func _ready(): + _create_technology_buttons() + + +func _create_technology_buttons(): + # Wyczyść stare przyciski + for c in tech_container.get_children(): + c.queue_free() + + for tech_id in Technologies.TECHNOLOGIES.keys(): + var tech = Technologies.TECHNOLOGIES[tech_id] + var btn = TextureButton.new() + + # 🔹 Ustaw ikonę technologii z pola "texture" + if tech.has("texture") and tech.texture != "": + btn.texture_normal = load(tech.texture) + else: + # Fallback na domyślną ikonę, jeśli brak tekstury w danych + btn.texture_normal = DEFAULT_ICON + + btn.custom_minimum_size = Vector2(96, 96) + + btn.stretch_mode = TextureButton.STRETCH_KEEP_ASPECT_CENTERED + + # 🔹 Tooltip z opisem i kosztami + var cost_text = "" + for cost_name in tech.cost.keys(): + cost_text += "%s: %d " % [tr(cost_name), tech.cost[cost_name]] + + btn.tooltip_text = "%s\n%s\n%s %s" % [ + tr(tech.name), + tr(tech.description), + tr("Koszt:"), + cost_text.strip_edges() + ] + + # 🔹 Jeśli gracz już ma tę technologię + if tech_id in PlayerData.unlocked_techs: + btn.modulate = Color(0.6, 0.6, 0.6) # wyszarz + btn.disabled = true + btn.tooltip_text += "\n[✓] " + tr("Odkryta") + + # 🔹 Jeśli brakuje wymaganych technologii + elif not _check_requirements(tech.requires): + btn.modulate = Color(0.5, 0.5, 0.5) + btn.disabled = true + btn.tooltip_text += "\n[!] " + tr("Wymagania niespełnione") + + else: + # 🔹 Po kliknięciu rozpocznij badanie technologii + btn.connect("pressed", Callable(self, "_on_technology_pressed").bind(tech_id)) + + tech_container.add_child(btn) + + + +func _check_requirements(requirements: Array) -> bool: + if requirements.is_empty(): + return true + for req in requirements: + if req not in PlayerData.unlocked_techs: + return false + return true + + +func _on_technology_pressed(tech_id): + var tech = Technologies.TECHNOLOGIES[tech_id] + + # Jeśli gracz już ma tę technologię — nic nie rób + if tech_id in PlayerData.unlocked_techs: + print("Gracz już ma technologię:", tech_id) + return + + # Sprawdź wymagania + for req in tech.requires: + if req not in PlayerData.unlocked_techs: + print("Brak wymaganej technologii:", req) + return + + # Sprawdź, czy gracz ma wystarczające zasoby i naukę + for cost_name in tech.cost.keys(): + var required_amount = tech.cost[cost_name] + var has_enough = false + + if cost_name == "science": + has_enough = PlayerData.since_doc >= required_amount + else: + if PlayerData.resources.has(cost_name): + has_enough = PlayerData.resources[cost_name] >= required_amount + + if not has_enough: + print("Brak zasobu:", cost_name) + return + + # Odejmij koszty + for cost_name in tech.cost.keys(): + if cost_name == "science": + PlayerData.since_doc -= tech.cost[cost_name] + else: + PlayerData.resources[cost_name] -= tech.cost[cost_name] + + # Dodaj technologię do odblokowanych + PlayerData.unlocked_techs.append(tech_id) + print("Odblokowano technologię:", tech.name) + + # Opcjonalnie: powiadom o zmianach + PlayerData.emit_signal("stats_changed") + + _create_technology_buttons() + + +func _on_button_pressed() -> void: + hide() diff --git a/scripts/tech_panel.gd.uid b/scripts/tech_panel.gd.uid new file mode 100644 index 0000000..48a4319 --- /dev/null +++ b/scripts/tech_panel.gd.uid @@ -0,0 +1 @@ +uid://bsdypct22eu23 diff --git a/scripts/technologies.gd b/scripts/technologies.gd index 6bd7541..961ba4d 100644 --- a/scripts/technologies.gd +++ b/scripts/technologies.gd @@ -1,14 +1,15 @@ extends Node const TECHNOLOGIES = { - "advance_mining": { - "name": "Advance Mining", + "advanced_mining": { + "name": "Advanced Mining", "description": "Allow mining resources", "time": 10, "cost": { - "science": 100, - "iron": 50 + "science": 1, + "iron": 5 }, + "texture": "res://assets/tech/Mining_Drill.png", "unlock_effects": { }, @@ -20,11 +21,12 @@ const TECHNOLOGIES = { "description": "Zwiększa wydobycie wody o 15%.", "time": 10, "cost": { - "science": 200 + "science": 1 }, + "texture": "res://assets/tech/hydro_engineering.png", "unlock_effects": { "water_efficiency": 1.15 }, - "requires": ["bio_dome"] + "requires": ["advanced_mining"] } }