From 8879c9d42b1d1469b0fc1e007f160c9e8db5da39 Mon Sep 17 00:00:00 2001 From: Zacharie Guet Date: Fri, 27 Feb 2026 13:45:31 +0100 Subject: [PATCH] ajout des actions demandant un clic long et dev des region modifier --- .../texture_builder/seed_texture_set.gd | 2 - entities/player/inventory/scripts/item.gd | 8 ++ .../inventory/scripts/items/ship_portal.gd | 3 + gui/game/scripts/game_gui.gd | 4 +- .../assets/sounds/action_press_time.wav | Bin 0 -> 107302 bytes .../sounds/action_press_time.wav.import | 24 ++++ gui/pointer/pointer.tscn | 42 +++++- gui/pointer/scripts/pointer.gd | 122 ++++++++++------ stages/3d_scenes/cockpit_scene/dashboard.tscn | 135 ++++++++++++++++-- .../cockpit_scene/scripts/dashboard.gd | 12 ++ stages/terrain/region/region.tscn | 11 +- .../region/scripts/modifiers/arid_modifier.gd | 4 +- .../scripts/modifiers/harsh_modifier.gd | 11 ++ .../scripts/modifiers/harsh_modifier.gd.uid | 1 + .../scripts/modifiers/humid_modifier.gd | 11 ++ .../region/scripts/modifiers/poor_modifier.gd | 11 ++ .../scripts/modifiers/poor_modifier.gd.uid | 1 + translation/game/gui.csv | 10 +- 18 files changed, 334 insertions(+), 78 deletions(-) create mode 100644 gui/pointer/assets/sounds/action_press_time.wav create mode 100644 gui/pointer/assets/sounds/action_press_time.wav.import create mode 100644 stages/terrain/region/scripts/modifiers/harsh_modifier.gd create mode 100644 stages/terrain/region/scripts/modifiers/harsh_modifier.gd.uid create mode 100644 stages/terrain/region/scripts/modifiers/humid_modifier.gd create mode 100644 stages/terrain/region/scripts/modifiers/poor_modifier.gd create mode 100644 stages/terrain/region/scripts/modifiers/poor_modifier.gd.uid diff --git a/entities/plants/scripts/texture_builder/seed_texture_set.gd b/entities/plants/scripts/texture_builder/seed_texture_set.gd index 99989dd..bddb8ba 100644 --- a/entities/plants/scripts/texture_builder/seed_texture_set.gd +++ b/entities/plants/scripts/texture_builder/seed_texture_set.gd @@ -11,12 +11,10 @@ func get_color_image(ind: int) -> Image: if color_images.size() == 0: color_images.resize(color_textures.size()) if color_images[ind] == null: - print("get image") color_images[ind] = color_textures[ind].get_image() return color_images[ind] func get_outline_image() -> Image: if outline_image == null: - print("get image outilne") outline_image = outline_texture.get_image() return outline_image diff --git a/entities/player/inventory/scripts/item.gd b/entities/player/inventory/scripts/item.gd index 8ad0153..6f8e5e3 100644 --- a/entities/player/inventory/scripts/item.gd +++ b/entities/player/inventory/scripts/item.gd @@ -6,6 +6,8 @@ const ACTION_ICON = preload("res://common/icons/swipe-down.svg") const ENERGY_ICON = preload("res://common/icons/bolt.svg") const ONE_TIME_ICON = preload("res://common/icons/circle-number-1.svg") +const DEFAULT_PRESS_TIME = 0.7 + enum ItemType {TOOL_ITEM, CONSUMABLE_ITEM} @export var name: String : get = get_item_name @@ -36,6 +38,12 @@ func get_usage_zone_radius() -> int: func is_usage_need_proximity() -> bool: return true +func is_action_need_press_time() -> bool: + return get_energy_used() > 0 + +func get_action_press_time() -> float: + return DEFAULT_PRESS_TIME + func get_usage_object_affected(_i : InspectableEntity) -> bool: return false diff --git a/entities/player/inventory/scripts/items/ship_portal.gd b/entities/player/inventory/scripts/items/ship_portal.gd index 185afbf..2a002da 100644 --- a/entities/player/inventory/scripts/items/ship_portal.gd +++ b/entities/player/inventory/scripts/items/ship_portal.gd @@ -22,6 +22,9 @@ func get_usage_zone_radius() -> int: func is_usage_need_proximity() -> bool: return false +func is_action_need_press_time() -> bool: + return true + func can_use(_player : Player, _zone: Player.ActionZone) -> bool: return true diff --git a/gui/game/scripts/game_gui.gd b/gui/game/scripts/game_gui.gd index 94c6eb9..74d255e 100644 --- a/gui/game/scripts/game_gui.gd +++ b/gui/game/scripts/game_gui.gd @@ -96,11 +96,10 @@ func score_update(with_animation = true): func state_update(region_data : RegionData): if region_data.state == RegionData.State.SUCCEEDED: - print("C'est gagné !!") %Alert.text = "SHIP_IS_READY_TO_TAKE_OFF" if "tutorial" in region_data.flags: %Alert.text = "TUTORIAL_FINISHED" - %Alert.modulate = Color("25C147") + %Alert.modulate = Color("ffa617ff") %Alert.appear() elif region_data.state == RegionData.State.FAILED: %Alert.text = "NO_RECHARGE_LEFT" @@ -108,7 +107,6 @@ func state_update(region_data : RegionData): %Alert.appear() else: %Alert.disappear() - print(region_data.state == RegionData.State.FAILED) %GiveUpButton.visible = region_data.state == RegionData.State.FAILED func plant_changing_score(plant_data: PlantData, amount : int): diff --git a/gui/pointer/assets/sounds/action_press_time.wav b/gui/pointer/assets/sounds/action_press_time.wav new file mode 100644 index 0000000000000000000000000000000000000000..5744393355d199e5b6072d8251196b02aa3f1228 GIT binary patch literal 107302 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 current_selected_item.get_action_press_time(): + player.try_use_item( + current_selected_item, + player.get_global_mouse_position() + ) + press_action_done = true + else: + press_action_done = false + press_time = 0 + %ActionProgressPlayer.playing = false + %ActionProgressBar.value = 0. + + if Input.is_action_just_pressed("action"): + if current_inspect is InventoryGuiItemMouseDetector: + GameInfo.game_data.player_data.inventory.set_current_item(inspected.index) + elif can_interact: + var interactable = current_inspect as Interactable + player.try_interact(interactable) + elif can_use_item and not current_selected_item.is_action_need_press_time(): + player.try_use_item( + current_selected_item, + player.get_global_mouse_position() + ) + func inspect(node: Node): if current_inspect and current_inspect != node and current_inspect.has_method("inspect"): current_inspect.inspect(false) @@ -131,7 +165,7 @@ func update_card(): func update_inspector(): - if player: + if player and not get_tree().paused: if can_interact and current_inspect and current_inspect is Interactable: %Action.visible = true %ActionText.text = current_inspect.interact_text() diff --git a/stages/3d_scenes/cockpit_scene/dashboard.tscn b/stages/3d_scenes/cockpit_scene/dashboard.tscn index 3c478a3..ad54b44 100644 --- a/stages/3d_scenes/cockpit_scene/dashboard.tscn +++ b/stages/3d_scenes/cockpit_scene/dashboard.tscn @@ -6,6 +6,10 @@ [ext_resource type="Script" uid="uid://bj4d1x8n8ina" path="res://entities/interactable_3d/interactable_3d.gd" id="1_vlkbw"] [ext_resource type="PackedScene" uid="uid://cdvegfgvp7053" path="res://stages/3d_scenes/cockpit_scene/assets/3d/furnitures/screen_1.blend" id="2_awdc5"] [ext_resource type="Texture2D" uid="uid://cgmxjom200bej" path="res://common/icons/chevrons-up.svg" id="2_vlkbw"] +[ext_resource type="Script" uid="uid://ccb06rayqowp3" path="res://stages/terrain/region/scripts/modifiers/region_modifier.gd" id="3_xy0a5"] +[ext_resource type="Script" uid="uid://ddk7j5b8p51dk" path="res://stages/terrain/region/scripts/region_parameter.gd" id="4_2d2u0"] +[ext_resource type="Script" uid="uid://3o33x8mesgrn" path="res://stages/terrain/region/scripts/modifiers/arid_modifier.gd" id="4_v8ur5"] +[ext_resource type="Script" uid="uid://b4eimt3v08jhc" path="res://common/game_data/scripts/run/run_point.gd" id="5_v8ur5"] [ext_resource type="Texture2D" uid="uid://l2xplg72hs6j" path="res://common/icons/map-pin.svg" id="6_qbi61"] [ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="7_2ofl5"] [ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="8_f5peh"] @@ -13,10 +17,26 @@ [ext_resource type="PackedScene" uid="uid://cm5b7w7j6527f" path="res://stages/title_screen/planet_3d.tscn" id="12_stoj6"] [ext_resource type="Texture2D" uid="uid://bsgmxvuphn73c" path="res://common/icons/arrow-narrow-down.svg" id="13_5d7hc"] +[sub_resource type="Resource" id="Resource_f7ho8"] +script = ExtResource("4_v8ur5") +metadata/_custom_type_script = "uid://3o33x8mesgrn" + +[sub_resource type="Resource" id="Resource_inbnt"] +script = ExtResource("4_2d2u0") +region_name = "Uwoqos" +region_seed = 1461307588 +modifiers = Array[ExtResource("3_xy0a5")]([SubResource("Resource_f7ho8")]) + +[sub_resource type="Resource" id="Resource_qm808"] +script = ExtResource("5_v8ur5") +region_parameter = SubResource("Resource_inbnt") +position = 0.008863045261805778 +metadata/_custom_type_script = "uid://b4eimt3v08jhc" + [sub_resource type="ViewportTexture" id="ViewportTexture_cvt2p"] viewport_path = NodePath("DestinationScreen/SubViewport") -[sub_resource type="FastNoiseLite" id="FastNoiseLite_5d7hc"] +[sub_resource type="FastNoiseLite" id="FastNoiseLite_kh1yg"] frequency = 1.0 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_5d7hc"] @@ -79,6 +99,13 @@ viewport_path = NodePath("RightScreen/RightScreenStats/SubViewport") font = ExtResource("8_f5peh") font_size = 20 +[sub_resource type="ViewportTexture" id="ViewportTexture_stoj6"] +viewport_path = NodePath("RightScreen/RightScreenInfos/SubViewport") + +[sub_resource type="LabelSettings" id="LabelSettings_2d2u0"] +font = ExtResource("8_f5peh") +font_size = 20 + [sub_resource type="SphereShape3D" id="SphereShape3D_2q8cl"] [sub_resource type="Animation" id="Animation_2kujw"] @@ -124,6 +151,9 @@ viewport_path = NodePath("LeftScreen/LeftScreenAction/SubViewport") [sub_resource type="ViewportTexture" id="ViewportTexture_2q8cl"] viewport_path = NodePath("LeftScreen/LeftScreenStats/SubViewport") +[sub_resource type="ViewportTexture" id="ViewportTexture_h8fs1"] +viewport_path = NodePath("LeftScreen/LeftScreenInfos/SubViewport") + [sub_resource type="SphereShape3D" id="SphereShape3D_2kujw"] [sub_resource type="Animation" id="Animation_cvt2p"] @@ -169,7 +199,8 @@ main_screen_icon = ExtResource("2_vlkbw") main_screen_label = "Take Off" destination_label = "South" destination_title_label = "DESTINATION" -status_text = "" +left_destination = SubResource("Resource_qm808") +right_destination = SubResource("Resource_qm808") [node name="DestinationScreen" type="Sprite3D" parent="." unique_id=1067303692] unique_name_in_owner = true @@ -181,7 +212,7 @@ texture = SubResource("ViewportTexture_cvt2p") transform = Transform3D(-0.1, 0, 8.742278e-09, 0, 0.09999998, 0, -8.742278e-09, 0, -0.1, -1.8938096e-10, 0.24558258, 0.0021662712) radius = 1.0 details = 32 -noise = SubResource("FastNoiseLite_5d7hc") +noise = SubResource("FastNoiseLite_kh1yg") height = 0.625 terrain_material = SubResource("StandardMaterial3D_5d7hc") water_level = 0.0 @@ -313,7 +344,6 @@ libraries/ = SubResource("AnimationLibrary_2ofl5") unique_name_in_owner = true transform = Transform3D(0.6401096, -0.4515857, -0.6215544, 0, 0.809017, -0.58778524, 0.76828337, 0.37624705, 0.51785964, -0.7, 0.5, -0.15) script = ExtResource("1_vlkbw") -interactable = false hover_animation_player = NodePath("HoverAnimationPlayer") metadata/_custom_type_script = "uid://bj4d1x8n8ina" @@ -323,7 +353,6 @@ transform = Transform3D(-1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) [node name="RightScreenAction" type="Sprite3D" parent="RightScreen" unique_id=1289027629] unique_name_in_owner = true transform = Transform3D(-1, 0, -1.509958e-07, 0, 1.0000002, 0, 1.509958e-07, 0, -1, -0.18746918, -0.04759717, -0.04654131) -visible = false pixel_size = 0.002 texture = SubResource("ViewportTexture_2ofl5") @@ -353,7 +382,7 @@ stretch_mode = 5 [node name="RightScreenActionLabel" type="Label" parent="RightScreen/RightScreenAction/SubViewport/VBoxContainer" unique_id=2019588267] unique_name_in_owner = true layout_mode = 2 -text = "Uqoneso" +text = "Uwoqos" label_settings = ExtResource("1_sp2xx") horizontal_alignment = 1 vertical_alignment = 1 @@ -361,7 +390,6 @@ vertical_alignment = 1 [node name="RightScreenStats" type="Sprite3D" parent="RightScreen" unique_id=282782621] unique_name_in_owner = true transform = Transform3D(-1, -5.5879354e-08, 1.1920929e-07, -2.9802322e-08, 0.86602557, -0.50000024, -2.0861626e-07, -0.5000001, -0.86602545, -0.14474958, 0.2707073, -0.057207607) -visible = false pixel_size = 0.002 texture = SubResource("ViewportTexture_f5peh") @@ -397,7 +425,7 @@ stretch_mode = 5 [node name="RightScreenStat1Label" type="Label" parent="RightScreen/RightScreenStats/SubViewport/HBoxContainer/RightScreenStat1" unique_id=965157290] unique_name_in_owner = true layout_mode = 2 -text = "10" +text = "0" label_settings = SubResource("LabelSettings_2kujw") horizontal_alignment = 1 vertical_alignment = 1 @@ -417,11 +445,52 @@ stretch_mode = 5 [node name="RightScreenStat2Label" type="Label" parent="RightScreen/RightScreenStats/SubViewport/HBoxContainer/RightScreenStat2" unique_id=1607645733] unique_name_in_owner = true layout_mode = 2 -text = "10" +text = "0" label_settings = SubResource("LabelSettings_2kujw") horizontal_alignment = 1 vertical_alignment = 1 +[node name="RightScreenInfos" type="Sprite3D" parent="RightScreen" unique_id=449647859] +unique_name_in_owner = true +transform = Transform3D(-0.9902686, -2.9802322e-08, -0.13917324, 0, 1.0000002, -1.4901161e-08, 0.13917324, 5.9604645e-08, -0.99026823, 0.293737, 0.079518735, -0.035522263) +pixel_size = 0.002 +texture = SubResource("ViewportTexture_stoj6") + +[node name="SubViewport" type="SubViewport" parent="RightScreen/RightScreenInfos" unique_id=606992481] +transparent_bg = true +size = Vector2i(117, 138) + +[node name="HBoxContainer" type="VBoxContainer" parent="RightScreen/RightScreenInfos/SubViewport" unique_id=112944532] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_constants/separation = 10 + +[node name="RightScreenInfoTitle" type="Label" parent="RightScreen/RightScreenInfos/SubViewport/HBoxContainer" unique_id=1621744309] +unique_name_in_owner = true +layout_mode = 2 +text = "Hello" +label_settings = SubResource("LabelSettings_2d2u0") +horizontal_alignment = 1 +autowrap_mode = 2 + +[node name="RightScreenInfoText" type="RichTextLabel" parent="RightScreen/RightScreenInfos/SubViewport/HBoxContainer" unique_id=2134092583] +unique_name_in_owner = true +layout_mode = 2 +theme_override_font_sizes/normal_font_size = 14 +theme_override_font_sizes/bold_font_size = 14 +theme_override_font_sizes/bold_italics_font_size = 14 +theme_override_font_sizes/italics_font_size = 14 +theme_override_font_sizes/mono_font_size = 14 +bbcode_enabled = true +text = "Lorem ipsum dolor sir amet" +fit_content = true +horizontal_alignment = 1 + [node name="CollisionShape3D" type="CollisionShape3D" parent="RightScreen" unique_id=1017949170] shape = SubResource("SphereShape3D_2q8cl") @@ -432,7 +501,6 @@ libraries/ = SubResource("AnimationLibrary_cvt2p") unique_name_in_owner = true transform = Transform3D(-0.6401098, -0.4515857, -0.6215544, 0, -0.809017, 0.58778524, 0.7682836, -0.37624705, -0.51785964, 0.7, 0.5, -0.15) script = ExtResource("1_vlkbw") -interactable = false hover_animation_player = NodePath("HoverAnimationPlayer") metadata/_custom_type_script = "uid://bj4d1x8n8ina" @@ -442,7 +510,6 @@ transform = Transform3D(-0.99999976, 0, 0, 0, -1, 0, 0, 0, -0.99999994, 0, 0, 0) [node name="LeftScreenAction" type="Sprite3D" parent="LeftScreen" unique_id=764341277] unique_name_in_owner = true transform = Transform3D(1, 1.5099579e-07, 1.509958e-07, 1.509958e-07, -1.0000001, -1.4901158e-07, 1.5099577e-07, 1.4901163e-07, -1, -0.21238875, 0.06833798, 0.06593077) -visible = false pixel_size = 0.002 texture = SubResource("ViewportTexture_2kujw") @@ -472,15 +539,14 @@ stretch_mode = 5 [node name="LeftScreenActionLabel" type="Label" parent="LeftScreen/LeftScreenAction/SubViewport/VBoxContainer" unique_id=1631525309] unique_name_in_owner = true layout_mode = 2 -text = "Ocaci" +text = "Ujuqyt" label_settings = ExtResource("1_sp2xx") horizontal_alignment = 1 vertical_alignment = 1 [node name="LeftScreenStats" type="Sprite3D" parent="LeftScreen" unique_id=2023558675] unique_name_in_owner = true -transform = Transform3D(0.9999999, -6.3329935e-08, -1.1920929e-07, 0, -0.8660254, -0.50000006, 2.9802322e-08, 0.50000006, -0.86602545, -0.17741072, -0.26158184, 0.06797934) -visible = false +transform = Transform3D(0.9999999, -1.0058284e-07, -1.1920929e-07, 2.9802322e-08, -0.8660252, -0.50000006, 2.9802322e-08, 0.5000003, -0.86602545, -0.16182363, -0.27932125, 0.064277686) pixel_size = 0.002 texture = SubResource("ViewportTexture_2q8cl") @@ -541,6 +607,47 @@ label_settings = SubResource("LabelSettings_2kujw") horizontal_alignment = 1 vertical_alignment = 1 +[node name="LeftScreenInfos" type="Sprite3D" parent="LeftScreen" unique_id=409182409] +unique_name_in_owner = true +transform = Transform3D(0.9902684, 1.2166894e-08, 0.13917312, 0, -0.9999996, 8.7422784e-08, 0.13917315, -8.6571944e-08, -0.9902682, 0.28543925, -0.055610895, 0.046822492) +pixel_size = 0.002 +texture = SubResource("ViewportTexture_h8fs1") + +[node name="SubViewport" type="SubViewport" parent="LeftScreen/LeftScreenInfos" unique_id=1150656373] +transparent_bg = true +size = Vector2i(117, 138) + +[node name="HBoxContainer" type="VBoxContainer" parent="LeftScreen/LeftScreenInfos/SubViewport" unique_id=667177655] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +theme_override_constants/separation = 10 + +[node name="LeftScreenInfoTitle" type="Label" parent="LeftScreen/LeftScreenInfos/SubViewport/HBoxContainer" unique_id=743864123] +unique_name_in_owner = true +layout_mode = 2 +text = "Hello hella" +label_settings = SubResource("LabelSettings_2d2u0") +horizontal_alignment = 1 +autowrap_mode = 2 + +[node name="LeftScreenInfoText" type="RichTextLabel" parent="LeftScreen/LeftScreenInfos/SubViewport/HBoxContainer" unique_id=101599500] +unique_name_in_owner = true +layout_mode = 2 +theme_override_font_sizes/normal_font_size = 14 +theme_override_font_sizes/bold_font_size = 14 +theme_override_font_sizes/bold_italics_font_size = 14 +theme_override_font_sizes/italics_font_size = 14 +theme_override_font_sizes/mono_font_size = 14 +bbcode_enabled = true +text = "Lorem ipsum dolor sir amet" +fit_content = true +horizontal_alignment = 1 + [node name="CollisionShape3D" type="CollisionShape3D" parent="LeftScreen" unique_id=1983450336] shape = SubResource("SphereShape3D_2kujw") diff --git a/stages/3d_scenes/cockpit_scene/scripts/dashboard.gd b/stages/3d_scenes/cockpit_scene/scripts/dashboard.gd index b939ef1..5863a39 100644 --- a/stages/3d_scenes/cockpit_scene/scripts/dashboard.gd +++ b/stages/3d_scenes/cockpit_scene/scripts/dashboard.gd @@ -93,6 +93,7 @@ func set_left_destination(v := left_destination): %LeftScreenAction.visible = left_destination != null %LeftScreen.interactable = left_destination != null %LeftScreenStats.visible = left_destination != null + %LeftScreenInfos.visible = left_destination and len(left_destination.region_parameter.modifiers) > 0 if left_destination: %LeftScreenActionIcon.texture = LAND_ICON %LeftScreenActionLabel.text = left_destination.region_parameter.get_region_name() @@ -102,6 +103,11 @@ func set_left_destination(v := left_destination): %LeftScreenStat2Icon.texture = CHARGE_ICON %LeftScreenStat2Label.text = str(left_destination.region_parameter.get_charge()) + + if len(left_destination.region_parameter.modifiers) > 0: + var modifier : RegionModifier = left_destination.region_parameter.modifiers[0] + %LeftScreenInfoTitle.text = "%s %d" % [ modifier.get_modifier_name(), modifier.level ] + %LeftScreenInfoText.text = modifier.get_description() func set_right_destination(v := right_destination): right_destination = v @@ -109,6 +115,7 @@ func set_right_destination(v := right_destination): %RightScreenAction.visible = right_destination != null %RightScreen.interactable = right_destination != null %RightScreenStats.visible = right_destination != null + %RightScreenInfos.visible = right_destination and len(right_destination.region_parameter.modifiers) > 0 if right_destination: %RightScreenActionIcon.texture = LAND_ICON %RightScreenActionLabel.text = right_destination.region_parameter.get_region_name() @@ -118,3 +125,8 @@ func set_right_destination(v := right_destination): %RightScreenStat2Icon.texture = CHARGE_ICON %RightScreenStat2Label.text = str(right_destination.region_parameter.get_charge()) + + if len(right_destination.region_parameter.modifiers) > 0: + var modifier : RegionModifier = right_destination.region_parameter.modifiers[0] + %RightScreenInfoTitle.text = "%s %d" % [ modifier.get_modifier_name(), modifier.level ] + %RightScreenInfoText.text = modifier.get_description() diff --git a/stages/terrain/region/region.tscn b/stages/terrain/region/region.tscn index 4183a61..75234f3 100644 --- a/stages/terrain/region/region.tscn +++ b/stages/terrain/region/region.tscn @@ -168,15 +168,6 @@ position = Vector2(2, 7) texture = ExtResource("10_ktnx3") lifetime = 8.0 trail_enabled = true -trail_lifetime = 0.09999999999999999 -trail_sections = 16 -process_material = SubResource("ParticleProcessMaterial_mlppq") - -[node name="Fog" type="GPUParticles2D" parent="Camera" unique_id=1024566195] -position = Vector2(2, 7) -texture = ExtResource("10_ktnx3") -lifetime = 8.0 -trail_enabled = true -trail_lifetime = 0.09999999999999999 +trail_lifetime = 0.1 trail_sections = 16 process_material = SubResource("ParticleProcessMaterial_mlppq") diff --git a/stages/terrain/region/scripts/modifiers/arid_modifier.gd b/stages/terrain/region/scripts/modifiers/arid_modifier.gd index 3009651..61265aa 100644 --- a/stages/terrain/region/scripts/modifiers/arid_modifier.gd +++ b/stages/terrain/region/scripts/modifiers/arid_modifier.gd @@ -8,7 +8,7 @@ func get_description() -> String: return tr("ARID_MODIFIER_DESC_TEXT") func modify_decontamination_threshold(decontamination_threshold : float) -> float: - return decontamination_threshold + return decontamination_threshold * (1. - 0.2*level) func modify_start_decontamination_zone_radius(start_decontamination_zone_radius : int) -> int: - return start_decontamination_zone_radius \ No newline at end of file + return max(1,roundi(start_decontamination_zone_radius * (1. - 0.2*level))) \ No newline at end of file diff --git a/stages/terrain/region/scripts/modifiers/harsh_modifier.gd b/stages/terrain/region/scripts/modifiers/harsh_modifier.gd new file mode 100644 index 0000000..cf75a55 --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/harsh_modifier.gd @@ -0,0 +1,11 @@ +extends RegionModifier +class_name HarshModifier + +func get_modifier_name() -> String: + return tr("HARSH") + +func get_description() -> String: + return tr("HARSH_MODIFIER_DESC_TEXT") + +func modify_objective(objective : int) -> int: + return roundi(objective * (1. + 0.2*level)) \ No newline at end of file diff --git a/stages/terrain/region/scripts/modifiers/harsh_modifier.gd.uid b/stages/terrain/region/scripts/modifiers/harsh_modifier.gd.uid new file mode 100644 index 0000000..c174f1b --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/harsh_modifier.gd.uid @@ -0,0 +1 @@ +uid://bhpx4mw3b083h diff --git a/stages/terrain/region/scripts/modifiers/humid_modifier.gd b/stages/terrain/region/scripts/modifiers/humid_modifier.gd new file mode 100644 index 0000000..af9ed98 --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/humid_modifier.gd @@ -0,0 +1,11 @@ +extends RegionModifier +class_name HumidModifier + +func get_modifier_name() -> String: + return tr("HUMID") + +func get_description() -> String: + return tr("HUMID_MODIFIER_DESC_TEXT") + +func modify_charge(charge : int) -> int: + return charge - level \ No newline at end of file diff --git a/stages/terrain/region/scripts/modifiers/poor_modifier.gd b/stages/terrain/region/scripts/modifiers/poor_modifier.gd new file mode 100644 index 0000000..568d93c --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/poor_modifier.gd @@ -0,0 +1,11 @@ +extends RegionModifier +class_name PoorModifier + +func get_modifier_name() -> String: + return tr("POOR") + +func get_description() -> String: + return tr("POOR_MODIFIER_DESC_TEXT") + +func modify_cristal_threshold(cristal_threshold : float) -> float: + return cristal_threshold * (1. - 0.2*level) \ No newline at end of file diff --git a/stages/terrain/region/scripts/modifiers/poor_modifier.gd.uid b/stages/terrain/region/scripts/modifiers/poor_modifier.gd.uid new file mode 100644 index 0000000..4a5c122 --- /dev/null +++ b/stages/terrain/region/scripts/modifiers/poor_modifier.gd.uid @@ -0,0 +1 @@ +uid://dtb1g7st67aox diff --git a/translation/game/gui.csv b/translation/game/gui.csv index 9e126b9..7a27c30 100644 --- a/translation/game/gui.csv +++ b/translation/game/gui.csv @@ -211,4 +211,12 @@ ASTRA_FACTORY_TEXT,Production factory of Astra base,Usine de production de la ba MYSTERIOUS_DOOR,Mysterious Door,Porte mystérieuse MYSTERIOUS_DOOR_TEXT,"This door has a space ship logo on it... What could it be ?","Cette porte à un logo de vaisseau marqué dessus... Que peut-il y avoir à l'intérieur ?" BOREA_BASE,Borea Base,Base Boréa -BOREA_BASE_DESC_TEXT,Base where demeter is located,La base où se trouve Demeter \ No newline at end of file +BOREA_BASE_DESC_TEXT,Base where demeter is located,La base où se trouve Demeter +ARID,Arid,Aride +ARID_MODIFIER_DESC_TEXT,Reduce base [b]Fertile Zone[/b] in this region,Réduit la [b]Zone Fertile[/b] de base de la région +HARSH,Harsh,Rude +HARSH_MODIFIER_DESC_TEXT,Increases the [b]Plant Points[/b] needed,Augmente le nombre de [b]Points de Plantes[/b] nécessaires +HUMID,Humid,Humide +HUMID_MODIFIER_DESC_TEXT,Reduce the number of [b]Recharge[/b],Réduit le nombre de [b]Recharge[/b] +POOR,Poor,Pauvre +POOR_MODIFIER_DESC_TEXT,Reduce the number of [b]Talion Veins[/b],Réduit le nombre de [b]Veine de Talion[/b] \ No newline at end of file