diff --git a/common/game_data/scripts/game_data.gd b/common/game_data/scripts/game_data.gd index 9de17f1..f57f076 100644 --- a/common/game_data/scripts/game_data.gd +++ b/common/game_data/scripts/game_data.gd @@ -1,6 +1,8 @@ extends Resource class_name GameData +enum GameMode {STORY,INFINITE} + signal current_region_data_updated(p : RegionData) @export var current_run : RunData = null @@ -19,6 +21,8 @@ signal current_region_data_updated(p : RegionData) @export var incubator_used = [] +@export var game_mode : GameMode = GameMode.STORY + @export var dialogs_done : Array[String] = [] #Chemin des dialogues démarrés func start_run(): diff --git a/common/game_data/scripts/run/run_data.gd b/common/game_data/scripts/run/run_data.gd index 8cd941f..c11a43b 100644 --- a/common/game_data/scripts/run/run_data.gd +++ b/common/game_data/scripts/run/run_data.gd @@ -24,7 +24,7 @@ func generate_next_run_points(level = 0) -> Array[RunPoint]: next_run_points = [] - if level == RUN_POINT_MAX_LEVEL: + if level == RUN_POINT_MAX_LEVEL and GameInfo.game_data.game_mode == GameData.GameMode.STORY: return [ generate_borea_base_run_point() ] @@ -87,7 +87,7 @@ func choose_next_run_point(run_point : RunPoint) -> RunPoint: func get_region_flags(region_parameter : RegionParameter) -> Array[String]: var flags : Array[String] = [] - if region_parameter.level == RUN_POINT_MAX_LEVEL: + if region_parameter.level == RUN_POINT_MAX_LEVEL and GameInfo.game_data.game_mode == GameData.GameMode.STORY: flags.append("borea") return flags diff --git a/common/icons/book-2.svg b/common/icons/book-2.svg new file mode 100644 index 0000000..03bc2a4 --- /dev/null +++ b/common/icons/book-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/stages/terrain/region/assets/textures/rock_background_texture.png.import b/common/icons/book-2.svg.import similarity index 67% rename from stages/terrain/region/assets/textures/rock_background_texture.png.import rename to common/icons/book-2.svg.import index 4f0519f..27f6b4a 100644 --- a/stages/terrain/region/assets/textures/rock_background_texture.png.import +++ b/common/icons/book-2.svg.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://beqx4rmgthkql" -path="res://.godot/imported/rock_background_texture.png-79a8569ff49f7d85f8b64d55ac1ce62d.ctex" +uid="uid://b75k12a4wc5t4" +path="res://.godot/imported/book-2.svg-546eaea0c5e445cb4b685ffef3a57787.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://stages/terrain/region/assets/textures/rock_background_texture.png" -dest_files=["res://.godot/imported/rock_background_texture.png-79a8569ff49f7d85f8b64d55ac1ce62d.ctex"] +source_file="res://common/icons/book-2.svg" +dest_files=["res://.godot/imported/book-2.svg-546eaea0c5e445cb4b685ffef3a57787.ctex"] [params] @@ -38,3 +38,6 @@ process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/icons/building-store.svg b/common/icons/building-store.svg new file mode 100644 index 0000000..be180b5 --- /dev/null +++ b/common/icons/building-store.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/stages/terrain/region/assets/textures/garden_decontamined_background_texture.png.import b/common/icons/building-store.svg.import similarity index 66% rename from stages/terrain/region/assets/textures/garden_decontamined_background_texture.png.import rename to common/icons/building-store.svg.import index a7f73c9..40c790c 100644 --- a/stages/terrain/region/assets/textures/garden_decontamined_background_texture.png.import +++ b/common/icons/building-store.svg.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bseoyd8mqjo7y" -path="res://.godot/imported/garden_decontamined_background_texture.png-d2e9b3111739dbe0f3e878510238390a.ctex" +uid="uid://bmersnaoira20" +path="res://.godot/imported/building-store.svg-abd618fb337e10bf0dc4662f37b351cb.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://stages/terrain/region/assets/textures/garden_decontamined_background_texture.png" -dest_files=["res://.godot/imported/garden_decontamined_background_texture.png-d2e9b3111739dbe0f3e878510238390a.ctex"] +source_file="res://common/icons/building-store.svg" +dest_files=["res://.godot/imported/building-store.svg-abd618fb337e10bf0dc4662f37b351cb.ctex"] [params] @@ -38,3 +38,6 @@ process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/icons/hand-grab.svg b/common/icons/hand-grab.svg new file mode 100644 index 0000000..02034eb --- /dev/null +++ b/common/icons/hand-grab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture_2.png.import b/common/icons/hand-grab.svg.import similarity index 66% rename from stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture_2.png.import rename to common/icons/hand-grab.svg.import index bc5ccf3..0dcf32b 100644 --- a/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture_2.png.import +++ b/common/icons/hand-grab.svg.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://cquonnydto387" -path="res://.godot/imported/moss_contamination_atlas_texture_2.png-d3b17c123dfe73058f82ef745ed7ae76.ctex" +uid="uid://4dwxhvjo0yye" +path="res://.godot/imported/hand-grab.svg-aedc27673ee0414dc711257574ee9c66.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture_2.png" -dest_files=["res://.godot/imported/moss_contamination_atlas_texture_2.png-d3b17c123dfe73058f82ef745ed7ae76.ctex"] +source_file="res://common/icons/hand-grab.svg" +dest_files=["res://.godot/imported/hand-grab.svg-aedc27673ee0414dc711257574ee9c66.ctex"] [params] @@ -38,3 +38,6 @@ process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/icons/infinity.svg b/common/icons/infinity.svg new file mode 100644 index 0000000..fa18099 --- /dev/null +++ b/common/icons/infinity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/stages/terrain/region/assets/textures/round_red_tiles.png.import b/common/icons/infinity.svg.import similarity index 67% rename from stages/terrain/region/assets/textures/round_red_tiles.png.import rename to common/icons/infinity.svg.import index 0f0bf2f..78aa29a 100644 --- a/stages/terrain/region/assets/textures/round_red_tiles.png.import +++ b/common/icons/infinity.svg.import @@ -2,16 +2,16 @@ importer="texture" type="CompressedTexture2D" -uid="uid://bmdb63witojeg" -path="res://.godot/imported/round_red_tiles.png-c254569faa1f0323275dcc266f2b4c86.ctex" +uid="uid://dbv5hm7lyi1f6" +path="res://.godot/imported/infinity.svg-942e6ffb356637e9d103947d1048dac3.ctex" metadata={ "vram_texture": false } [deps] -source_file="res://stages/terrain/region/assets/textures/round_red_tiles.png" -dest_files=["res://.godot/imported/round_red_tiles.png-c254569faa1f0323275dcc266f2b4c86.ctex"] +source_file="res://common/icons/infinity.svg" +dest_files=["res://.godot/imported/infinity.svg-942e6ffb356637e9d103947d1048dac3.ctex"] [params] @@ -38,3 +38,6 @@ process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/icons/recharge.svg b/common/icons/recharge.svg new file mode 100644 index 0000000..caceaa4 --- /dev/null +++ b/common/icons/recharge.svg @@ -0,0 +1,57 @@ + + + + + + + + + diff --git a/common/icons/recharge.svg.import b/common/icons/recharge.svg.import new file mode 100644 index 0000000..4cefa85 --- /dev/null +++ b/common/icons/recharge.svg.import @@ -0,0 +1,43 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cymrmhsihkj44" +path="res://.godot/imported/recharge.svg-309dcfdff58b592a40538debd042f5c5.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://common/icons/recharge.svg" +dest_files=["res://.godot/imported/recharge.svg-309dcfdff58b592a40538debd042f5c5.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 +svg/scale=2.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/common/icons/shovel.svg.import b/common/icons/shovel.svg.import index 7d929f6..033818a 100644 --- a/common/icons/shovel.svg.import +++ b/common/icons/shovel.svg.import @@ -3,19 +3,20 @@ importer="texture" type="CompressedTexture2D" uid="uid://bf6nw4onkhavr" -path="res://.godot/imported/shovel.svg-094c34e330000cc8ea425d6acf7556bd.ctex" +path.s3tc="res://.godot/imported/shovel.svg-094c34e330000cc8ea425d6acf7556bd.s3tc.ctex" metadata={ -"vram_texture": false +"imported_formats": ["s3tc_bptc"], +"vram_texture": true } [deps] source_file="res://common/icons/shovel.svg" -dest_files=["res://.godot/imported/shovel.svg-094c34e330000cc8ea425d6acf7556bd.ctex"] +dest_files=["res://.godot/imported/shovel.svg-094c34e330000cc8ea425d6acf7556bd.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,7 +38,7 @@ 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 svg/scale=2.0 editor/scale_with_editor_scale=false editor/convert_colors_with_editor_theme=false diff --git a/common/scene_manager/scripts/scene_manager.gd b/common/scene_manager/scripts/scene_manager.gd index 5c2ea9d..05ffe20 100644 --- a/common/scene_manager/scripts/scene_manager.gd +++ b/common/scene_manager/scripts/scene_manager.gd @@ -28,7 +28,8 @@ func change_to_scene_id(scene_id : String, with_loading = true): printerr("Scene %s not found" % scene_id) return - change_to_scene(scene, with_loading) + if not loading_scene: + change_to_scene(scene, with_loading) func change_to_scene(scene : Scene, with_loading = true): if loading_scene or generating_node: diff --git a/entities/interactables/door/door.tscn b/entities/interactables/door/door.tscn index 8f9fcde..241bfd1 100644 --- a/entities/interactables/door/door.tscn +++ b/entities/interactables/door/door.tscn @@ -123,32 +123,34 @@ available = false metadata/_custom_type_script = "uid://dyprcd68fjstf" [node name="CollisionShape2D" type="CollisionShape2D" parent="." unique_id=1809395872] +scale = Vector2(1.3906125, 1.3906125) shape = SubResource("RectangleShape2D_y51rk") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="." unique_id=879120806] unique_name_in_owner = true -scale = Vector2(0.33, 0.33) +scale = Vector2(0.45890215, 0.45890215) sprite_frames = SubResource("SpriteFrames_4aafg") animation = &"closed" -frame_progress = 0.78603315 +frame_progress = 0.69717133 [node name="Sprite2D" type="Sprite2D" parent="." unique_id=1875435966] -position = Vector2(0.99999994, -41) -scale = Vector2(0.2833334, 0.28333336) +position = Vector2(0.6254329, -56.177567) +scale = Vector2(0.39400694, 0.3940069) texture = SubResource("GradientTexture2D_wnnbj") [node name="Icon" type="Sprite2D" parent="." unique_id=874210487] unique_name_in_owner = true -position = Vector2(1, -42) -scale = Vector2(0.4583333, 0.4583333) +position = Vector2(0.62543297, -57.177567) +scale = Vector2(0.63736403, 0.63736403) texture = ExtResource("2_6w4e0") [node name="DoorScreen" type="Sprite2D" parent="." unique_id=236947304] position = Vector2(5.684342e-14, 2.2737368e-13) -scale = Vector2(0.33, 0.33) +scale = Vector2(0.45890215, 0.45890215) texture = ExtResource("12_6w4e0") [node name="StaticBody2D" type="StaticBody2D" parent="." unique_id=521638741] +scale = Vector2(1.3906125, 1.3906125) [node name="CollisionShape2D" type="CollisionShape2D" parent="StaticBody2D" unique_id=676936346] position = Vector2(0, 12) diff --git a/entities/interactables/truck/recharge/truck_recharge.tscn b/entities/interactables/truck/recharge/truck_recharge.tscn index c234e0c..9167dba 100644 --- a/entities/interactables/truck/recharge/truck_recharge.tscn +++ b/entities/interactables/truck/recharge/truck_recharge.tscn @@ -2,7 +2,7 @@ [ext_resource type="Script" uid="uid://bsrn3gd2a532q" path="res://entities/interactables/truck/recharge/scripts/truck_recharge.gd" id="1_ipgcv"] [ext_resource type="Texture2D" uid="uid://btd145u4gsl6e" path="res://entities/interactables/truck/recharge/STW_Props_Batterie_Batterie.png" id="2_ot7vv"] -[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="3_jcfmm"] +[ext_resource type="Texture2D" uid="uid://cymrmhsihkj44" path="res://common/icons/recharge.svg" id="3_ot7vv"] [ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="4_ot7vv"] [ext_resource type="Texture2D" uid="uid://bhi3mwl23flwp" path="res://entities/interactables/truck/recharge/STW_Props_Batterie_Glass_V2.png" id="5_2okh4"] [ext_resource type="Texture2D" uid="uid://c01f6ja6btsep" path="res://entities/interactables/truck/recharge/STW_Props_Batterie_TERRE.png" id="6_2okh4"] @@ -44,7 +44,7 @@ alignment = 1 [node name="TextureRect" type="TextureRect" parent="EnergyTextContainer" unique_id=2088496808] custom_minimum_size = Vector2(30, 0) layout_mode = 2 -texture = ExtResource("3_jcfmm") +texture = ExtResource("3_ot7vv") expand_mode = 1 stretch_mode = 5 diff --git a/entities/plants/scripts/plant_mutation/ancient_mutation.gd b/entities/plants/scripts/plant_mutation/ancient_mutation.gd index 6e914ce..4ae3a66 100644 --- a/entities/plants/scripts/plant_mutation/ancient_mutation.gd +++ b/entities/plants/scripts/plant_mutation/ancient_mutation.gd @@ -26,7 +26,7 @@ func get_day_factor(): return max(1, DEFAULT_DAY_FACTOR - level) func get_score_increase(): - return max(1, level - DEFAULT_DAY_FACTOR) + return max(1, level - DEFAULT_DAY_FACTOR + 1) func mutate_score(data : PlantData, score) -> int: if data.get_state() != PlantData.State.MATURE: diff --git a/entities/player/inventory/scripts/inventory.gd b/entities/player/inventory/scripts/inventory.gd index 56d3c76..1d0f005 100644 --- a/entities/player/inventory/scripts/inventory.gd +++ b/entities/player/inventory/scripts/inventory.gd @@ -2,6 +2,7 @@ extends Resource class_name Inventory signal updated(inventory: Inventory) +signal tool_added(item: Item) @export var items: Array[Item] = [] @export var current_item_ind: int = 0 # over both tools and items @@ -9,8 +10,6 @@ signal updated(inventory: Inventory) func _init(inventory_size: int = 1): set_size(inventory_size) - add_item(Detector.new()) - add_item(Shovel.new()) func get_n_item_slots() -> int: return items.size() - n_tools @@ -60,11 +59,12 @@ func add_item(item: Item) -> bool: if item.type != Item.ItemType.TOOL_ITEM: var best_ind = get_best_available_slot_ind() return set_item(item, best_ind) - elif item.type == Item.ItemType.TOOL_ITEM && !items.has(item): + elif item.type == Item.ItemType.TOOL_ITEM and not has_item_with_name(item.get_item_name()): items.insert(n_tools, item) if current_item_ind >= n_tools: current_item_ind += 1 n_tools += 1 + tool_added.emit(item) updated.emit(self ) return true else: @@ -85,6 +85,13 @@ func get_item(ind: int = current_item_ind) -> Item: func has_item(item: Item) -> bool: return items.has(item) +func has_item_with_name(name: String) -> bool: + var id = items.find_custom( + (func (i : Item): + return i and i.get_item_name() == name) + ) + return id != -1 + func remove_item(item: Item): if item.type == Item.ItemType.TOOL_ITEM: printerr("trying to remove a tool") diff --git a/entities/player/inventory/scripts/items/fork.gd b/entities/player/inventory/scripts/items/fork.gd index 5f79653..f092ecf 100644 --- a/entities/player/inventory/scripts/items/fork.gd +++ b/entities/player/inventory/scripts/items/fork.gd @@ -4,44 +4,45 @@ class_name Fork const USE_INTERVAL = 0.15 func get_item_name() -> String: - return tr("FORK") + return tr("FORK") func get_description() -> String: - return tr("FORK_DESC_TEXT") + return tr("FORK_DESC_TEXT") func get_icon() -> Texture2D: - return preload("res://common/icons/fork.svg") + return preload("res://common/icons/fork.svg") func get_item_type() -> ItemType: - return Item.ItemType.TOOL_ITEM + return Item.ItemType.TOOL_ITEM func get_energy_used() -> int: - return 1 + return 1 func get_usage_zone_radius() -> int: - return 50 + return 10 func get_usage_object_affected(i : InspectableEntity) -> bool: - return i is Plant + return i is Plant func use_text() -> String: - return tr("HARVEST") + return tr("HARVEST") func can_use(_player : Player, zone : Player.ActionZone) -> bool: - var areas = zone.get_affected_areas() - for area in areas : - if area is Plant: - return true - return false + var areas = zone.get_affected_areas() + for area in areas : + if area is Plant: + return true + return false func use(player : Player, zone : Player.ActionZone) -> bool: - for area in zone.get_affected_areas(): - if area and area is Plant: - harvest(area, player) - await player.get_tree().create_timer(USE_INTERVAL).timeout - - return true + var has_plant = false + for area in zone.get_affected_areas(): + if area and area is Plant: + harvest(area, player) + await player.get_tree().create_timer(USE_INTERVAL).timeout + has_plant = true + return has_plant func harvest(p : Plant, _player: Player): - AudioManager.play_sfx("Harvest") - p.harvest() + AudioManager.play_sfx("Harvest") + p.harvest() diff --git a/entities/player/inventory/scripts/items/pickaxe.gd b/entities/player/inventory/scripts/items/pickaxe.gd index 6fb58d9..ba5f777 100644 --- a/entities/player/inventory/scripts/items/pickaxe.gd +++ b/entities/player/inventory/scripts/items/pickaxe.gd @@ -1,7 +1,7 @@ extends Item class_name Pickaxe -const USE_INTERVAL = 0.15 +const DIG_PARTICLES := preload("res://entities/player/inventory/scripts/items/utils/dig_particles.tscn") func get_item_name() -> String: return tr("PICKAXE") @@ -29,13 +29,17 @@ func can_use(_player : Player, zone : Player.ActionZone) -> bool: return true return false -func use(_player : Player, zone : Player.ActionZone) -> bool: +func use(player : Player, zone : Player.ActionZone) -> bool: var bodies = zone.area.get_overlapping_bodies() - var rock_layer_id = bodies.find_custom(func (b) : return b is RockLayer) - if rock_layer_id != -1: - var rock_layer : RockLayer = bodies[rock_layer_id] + var rock_layers = bodies.filter(func (b) : return b is RockLayer) + if len(rock_layers): + player.region.dig_rocks(zone.get_tiles()) - return rock_layer.dig_rocks(zone.get_tiles()) + var particles := (DIG_PARTICLES.instantiate() as DigParticleEmmitter) + player.region.add_child(particles) + particles.global_position = zone.get_global_position() + particles.emit() + AudioManager.play_sfx("Mining") - return false + return true diff --git a/entities/player/inventory/scripts/items/shovel.gd b/entities/player/inventory/scripts/items/shovel.gd index d20f060..4417400 100644 --- a/entities/player/inventory/scripts/items/shovel.gd +++ b/entities/player/inventory/scripts/items/shovel.gd @@ -1,3 +1,4 @@ +@tool extends Fork class_name Shovel diff --git a/gui/artefacts/artefact.gd b/gui/artefacts/artefact.gd new file mode 100644 index 0000000..76d11d0 --- /dev/null +++ b/gui/artefacts/artefact.gd @@ -0,0 +1,10 @@ +@abstract +extends Resource +class_name Artefact + +@abstract func get_artefact_name() -> String + +@abstract func get_3d_scene() -> PackedScene + +# @abstract func card_info() -> CardInfo + diff --git a/gui/artefacts/artefact.gd.uid b/gui/artefacts/artefact.gd.uid new file mode 100644 index 0000000..357e695 --- /dev/null +++ b/gui/artefacts/artefact.gd.uid @@ -0,0 +1 @@ +uid://d2nheldbqquy1 diff --git a/gui/artefacts/pile/pile.blend b/gui/artefacts/pile/pile.blend new file mode 100644 index 0000000..8778624 Binary files /dev/null and b/gui/artefacts/pile/pile.blend differ diff --git a/gui/artefacts/pile/pile.blend.import b/gui/artefacts/pile/pile.blend.import new file mode 100644 index 0000000..f289cb4 --- /dev/null +++ b/gui/artefacts/pile/pile.blend.import @@ -0,0 +1,68 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://dolv2637emdbw" +path="res://.godot/imported/pile.blend-30b48bcbeddf39d9b6df3c289ba33608.scn" + +[deps] + +source_file="res://gui/artefacts/pile/pile.blend" +dest_files=["res://.godot/imported/pile.blend-30b48bcbeddf39d9b6df3c289ba33608.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Material": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/gui/artefacts/pile/pile.blend1 b/gui/artefacts/pile/pile.blend1 new file mode 100644 index 0000000..7e81f36 Binary files /dev/null and b/gui/artefacts/pile/pile.blend1 differ diff --git a/gui/artefacts/pile/pile.gd b/gui/artefacts/pile/pile.gd new file mode 100644 index 0000000..bd8357c --- /dev/null +++ b/gui/artefacts/pile/pile.gd @@ -0,0 +1,9 @@ +@tool +extends Artefact +class_name PileArtefact + +func get_artefact_name() -> String: + return "PILE" + +func get_3d_scene() -> PackedScene: + return preload("res://gui/artefacts/pile/pile.blend") \ No newline at end of file diff --git a/gui/artefacts/pile/pile.gd.uid b/gui/artefacts/pile/pile.gd.uid new file mode 100644 index 0000000..f9b098a --- /dev/null +++ b/gui/artefacts/pile/pile.gd.uid @@ -0,0 +1 @@ +uid://c6lr0fucklsto diff --git a/gui/artefacts/seed_case/seed_case.blend b/gui/artefacts/seed_case/seed_case.blend new file mode 100644 index 0000000..d8a3362 Binary files /dev/null and b/gui/artefacts/seed_case/seed_case.blend differ diff --git a/gui/artefacts/seed_case/seed_case.blend.import b/gui/artefacts/seed_case/seed_case.blend.import new file mode 100644 index 0000000..bd20100 --- /dev/null +++ b/gui/artefacts/seed_case/seed_case.blend.import @@ -0,0 +1,68 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://cclvb8o3vofff" +path="res://.godot/imported/seed_case.blend-123afc7672467c4885837d27f75f5e08.scn" + +[deps] + +source_file="res://gui/artefacts/seed_case/seed_case.blend" +dest_files=["res://.godot/imported/seed_case.blend-123afc7672467c4885837d27f75f5e08.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Material": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/gui/artefacts/seed_case/seed_case.gd b/gui/artefacts/seed_case/seed_case.gd new file mode 100644 index 0000000..c195068 --- /dev/null +++ b/gui/artefacts/seed_case/seed_case.gd @@ -0,0 +1,9 @@ +@tool +extends Artefact +class_name SeedCaseArtefact + +func get_artefact_name() -> String: + return "SEED_CASE" + +func get_3d_scene() -> PackedScene: + return preload("res://gui/artefacts/seed_case/seed_case.blend") \ No newline at end of file diff --git a/gui/artefacts/seed_case/seed_case.gd.uid b/gui/artefacts/seed_case/seed_case.gd.uid new file mode 100644 index 0000000..e1cb35b --- /dev/null +++ b/gui/artefacts/seed_case/seed_case.gd.uid @@ -0,0 +1 @@ +uid://c7o5p4uk556v6 diff --git a/gui/game/announce/announce.tscn b/gui/game/announce/announce.tscn index bf70b61..773dde4 100644 --- a/gui/game/announce/announce.tscn +++ b/gui/game/announce/announce.tscn @@ -2,24 +2,40 @@ [ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="1_0ssee"] [ext_resource type="Script" uid="uid://bvb4v66bqteuc" path="res://gui/game/announce/scripts/announce.gd" id="1_4evne"] -[ext_resource type="FontFile" uid="uid://cpnsnrqhfkj3k" path="res://gui/ressources/fonts/spincycle_ot.otf" id="2_yrhd4"] +[ext_resource type="Shader" uid="uid://cuni3ggtw2uuy" path="res://common/vfx/materials/shaders/blur.gdshader" id="2_b6hac"] +[ext_resource type="Texture2D" uid="uid://bi5jo6pf0acjb" path="res://common/icons/carambola.svg" id="2_iwcrn"] [ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="3_7nrno"] +[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="4_aao0q"] +[ext_resource type="Environment" uid="uid://bxyp24f85p0xf" path="res://gui/game/assets/gui_3d_environment.tres" id="4_yjj5u"] +[ext_resource type="Script" uid="uid://bqisp5hjs06rj" path="res://gui/game/announce/scripts/announce_inspectable.gd" id="6_aao0q"] +[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="9_b6hac"] -[sub_resource type="LabelSettings" id="LabelSettings_vbart"] -font = ExtResource("2_yrhd4") +[sub_resource type="ShaderMaterial" id="ShaderMaterial_f0v68"] +shader = ExtResource("2_b6hac") +shader_parameter/strength = 5.00000023424012 +shader_parameter/mix_percentage = 0.3 + +[sub_resource type="ViewportTexture" id="ViewportTexture_huxc5"] +viewport_path = NodePath("Particles/SubViewport") + +[sub_resource type="Curve" id="Curve_iwcrn"] +_limits = [-200.0, 200.0, 0.0, 1.0] +_data = [Vector2(0, -200), 0.0, 560.0, 0, 0, Vector2(0.08235294, 92.384125), 1336.3082, 1336.3082, 0, 0, Vector2(0.34901965, 200), 0.0, 0.0, 0, 0, Vector2(0.854902, -200), 0.0, 0.0, 0, 0] +point_count = 4 + +[sub_resource type="Gradient" id="Gradient_oh30d"] +offsets = PackedFloat32Array(0, 0.8689956, 0.98253274) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="LabelSettings" id="LabelSettings_6qyp1"] +font = ExtResource("4_aao0q") font_size = 50 +font_color = Color(1, 0.6509804, 0.09019608, 1) -[sub_resource type="Gradient" id="Gradient_id0t5"] -interpolation_mode = 1 -offsets = PackedFloat32Array(0, 0.115169, 0.41573, 0.620786, 0.924157) -colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1) +[sub_resource type="ViewportTexture" id="ViewportTexture_aao0q"] +viewport_path = NodePath("AnnounceContainer/ObjectVisualiser/SubViewport") -[sub_resource type="GradientTexture2D" id="GradientTexture2D_mnweq"] -gradient = SubResource("Gradient_id0t5") -fill_to = Vector2(1, 1) -repeat = 1 - -[sub_resource type="Animation" id="Animation_ok3ge"] +[sub_resource type="Animation" id="Animation_aao0q"] length = 0.001 tracks/0/type = "value" tracks/0/imported = false @@ -31,36 +47,48 @@ tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 1, -"values": [false] +"values": [true] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("VBoxContainer/AnnounceTexture:custom_minimum_size") +tracks/1/path = NodePath("AnnounceContainer:theme_override_constants/separation") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), -"update": 0, -"values": [Vector2(0, 0)] +"update": 1, +"values": [4] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("VBoxContainer:modulate") +tracks/2/path = NodePath("Particles:modulate") tracks/2/interp = 1 tracks/2/loop_wrap = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), "update": 0, -"values": [Color(1, 1, 1, 0)] +"values": [Color(1, 1, 1, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("AnnounceContainer:modulate") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] } -[sub_resource type="Animation" id="Animation_871vo"] -resource_name = "pass" -length = 4.0 +[sub_resource type="Animation" id="Animation_b6hac"] +resource_name = "appear" +length = 0.8 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -68,93 +96,159 @@ tracks/0/path = NodePath(".:visible") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.0333333, 3.96667, 4), -"transitions": PackedFloat32Array(1, 1, 1, 1), +"times": PackedFloat32Array(0.03333333, 0.16666669), +"transitions": PackedFloat32Array(1, 1), "update": 1, -"values": [false, true, true, false] +"values": [false, true] } tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("VBoxContainer/AnnounceTexture:custom_minimum_size") -tracks/1/interp = 1 +tracks/1/path = NodePath("AnnounceContainer:theme_override_constants/separation") +tracks/1/interp = 2 tracks/1/loop_wrap = true tracks/1/keys = { -"times": PackedFloat32Array(0.0666667, 0.433333, 3.5, 3.96667), -"transitions": PackedFloat32Array(1, 1, 1, 1), +"times": PackedFloat32Array(0.23333333, 0.8), +"transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Vector2(0, 0), Vector2(0, 65), Vector2(0, 65), Vector2(0, 0)] +"values": [480, 4] } tracks/2/type = "value" tracks/2/imported = false tracks/2/enabled = true -tracks/2/path = NodePath("VBoxContainer:modulate") -tracks/2/interp = 1 +tracks/2/path = NodePath("Particles:modulate") +tracks/2/interp = 2 tracks/2/loop_wrap = true tracks/2/keys = { -"times": PackedFloat32Array(0.0666667, 0.133333, 3.86667, 3.96667), -"transitions": PackedFloat32Array(1, 1, 1, 1), +"times": PackedFloat32Array(0.5, 0.8), +"transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1), Color(1, 1, 1, 1), Color(1, 1, 1, 0)] +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("AnnounceContainer:modulate") +tracks/3/interp = 2 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0.2, 0.8), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(1, 1, 1, 0), Color(1, 1, 1, 1)] } -[sub_resource type="AnimationLibrary" id="AnimationLibrary_dvva5"] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_6qyp1"] _data = { -&"RESET": SubResource("Animation_ok3ge"), -&"pass": SubResource("Animation_871vo") +&"RESET": SubResource("Animation_aao0q"), +&"appear": SubResource("Animation_b6hac") } -[node name="Announce" type="Control" unique_id=509404832] -visible = false -clip_contents = true -layout_mode = 3 +[node name="Announce" type="CanvasLayer" unique_id=1659074958] +script = ExtResource("1_4evne") + +[node name="MarginContainer" type="MarginContainer" parent="." unique_id=1463847780] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -mouse_filter = 2 -script = ExtResource("1_4evne") -[node name="VBoxContainer" type="VBoxContainer" parent="." unique_id=1385456888] -modulate = Color(1, 1, 1, 0) -clip_contents = true -layout_mode = 1 -anchors_preset = 14 +[node name="BlurRect" type="ColorRect" parent="MarginContainer" unique_id=1271832904] +material = SubResource("ShaderMaterial_f0v68") +layout_mode = 2 +color = Color(0.0352941, 0.0196078, 0.12549, 0.705882) + +[node name="Particles" type="TextureRect" parent="." unique_id=691167186] +anchors_preset = 8 +anchor_left = 0.5 anchor_top = 0.5 -anchor_right = 1.0 +anchor_right = 0.5 anchor_bottom = 0.5 -offset_top = -73.5 -offset_bottom = 73.5 +offset_left = -500.0 +offset_top = -500.0 +offset_right = 500.0 +offset_bottom = 500.0 grow_horizontal = 2 grow_vertical = 2 -mouse_filter = 2 -theme = ExtResource("1_0ssee") +texture = SubResource("ViewportTexture_huxc5") + +[node name="SubViewport" type="SubViewport" parent="Particles" unique_id=1750661995] +transparent_bg = true +size = Vector2i(1000, 1000) + +[node name="GPUParticles2D" type="CPUParticles2D" parent="Particles/SubViewport" unique_id=486255573] +position = Vector2(500, 500) +amount = 20 +texture = ExtResource("2_iwcrn") +preprocess = 1.0 +spread = 180.0 +gravity = Vector2(0, 0) +initial_velocity_min = 2.0 +initial_velocity_max = 2.0 +linear_accel_min = 5.0 +linear_accel_max = 5.0 +linear_accel_curve = SubResource("Curve_iwcrn") +color_ramp = SubResource("Gradient_oh30d") + +[node name="AnnounceContainer" type="VBoxContainer" parent="." unique_id=2136389163] +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 4 alignment = 1 -[node name="AnnounceTitle" type="Label" parent="VBoxContainer" unique_id=2048669092] +[node name="AnnounceTitle" type="Label" parent="AnnounceContainer" unique_id=988493009] unique_name_in_owner = true layout_mode = 2 -text = "New Quota" -label_settings = SubResource("LabelSettings_vbart") -horizontal_alignment = 1 - -[node name="AnnounceTexture" type="TextureRect" parent="VBoxContainer" unique_id=1523197516] -unique_name_in_owner = true -modulate = Color(0.886275, 0.623529, 0.196078, 1) -layout_mode = 2 -mouse_filter = 2 -texture = SubResource("GradientTexture2D_mnweq") -expand_mode = 1 -stretch_mode = 1 - -[node name="AnnounceText" type="Label" parent="VBoxContainer" unique_id=147253395] -unique_name_in_owner = true -layout_mode = 2 -text = "Decontaminate 50 unit in 10 days" +text = "NEW_TOOL" label_settings = ExtResource("3_7nrno") horizontal_alignment = 1 -[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=357490739] +[node name="AnnounceText" type="Label" parent="AnnounceContainer" unique_id=1537255164] unique_name_in_owner = true -libraries/ = SubResource("AnimationLibrary_dvva5") +layout_mode = 2 +text = "Pelle" +label_settings = SubResource("LabelSettings_6qyp1") +horizontal_alignment = 1 + +[node name="ObjectVisualiser" type="TextureRect" parent="AnnounceContainer" unique_id=1529068201] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 4 +mouse_filter = 0 +texture = SubResource("ViewportTexture_aao0q") +stretch_mode = 5 +script = ExtResource("6_aao0q") + +[node name="SubViewport" type="SubViewport" parent="AnnounceContainer/ObjectVisualiser" unique_id=403959884] +own_world_3d = true +transparent_bg = true +size = Vector2i(300, 300) + +[node name="AnnouceObject" type="Node3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=986671004] +unique_name_in_owner = true +transform = Transform3D(0.8788874, 0.4667406, 0.09817754, -0.45027143, 0.74415994, 0.4933552, 0.15722138, -0.47777224, 0.8642758, 0, 0, 0) + +[node name="Camera3D" type="Camera3D" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1788331074] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1) +keep_aspect = 0 +current = true +fov = 20.0 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=296795988] +environment = ExtResource("4_yjj5u") + +[node name="OkButton" type="Button" parent="AnnounceContainer" unique_id=56162930] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 4 +theme = ExtResource("1_0ssee") +text = "OK" +icon = ExtResource("9_b6hac") + +[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=878057487] +unique_name_in_owner = true +libraries/ = SubResource("AnimationLibrary_6qyp1") diff --git a/gui/game/announce/scripts/annouce_object.gd b/gui/game/announce/scripts/annouce_object.gd new file mode 100644 index 0000000..69549e2 --- /dev/null +++ b/gui/game/announce/scripts/annouce_object.gd @@ -0,0 +1,13 @@ +@abstract +extends Resource +class_name AnnouceObject + +@abstract func get_3d_object() -> Node3D + +@abstract func get_title() -> String + +@abstract func get_text() -> String + +@abstract func get_card_info() -> CardInfo + +@abstract func _on_dismiss() \ No newline at end of file diff --git a/gui/game/announce/scripts/annouce_object.gd.uid b/gui/game/announce/scripts/annouce_object.gd.uid new file mode 100644 index 0000000..cd89638 --- /dev/null +++ b/gui/game/announce/scripts/annouce_object.gd.uid @@ -0,0 +1 @@ +uid://yprrjw1yrcx6 diff --git a/gui/game/announce/scripts/annouce_tool.gd b/gui/game/announce/scripts/annouce_tool.gd new file mode 100644 index 0000000..5383f94 --- /dev/null +++ b/gui/game/announce/scripts/annouce_tool.gd @@ -0,0 +1,30 @@ +@tool +extends AnnouceObject +class_name AnnounceTool + +const ITEM_3D_SCENE = preload("res://gui/game/inventory_gui/inventory_item/inventory_item_3d.tscn") + +@export var tool_item : Item + +func _init(_tool_item : Item): + tool_item = _tool_item + +func get_3d_object() -> Node3D: + var new_object = ITEM_3D_SCENE.instantiate() as InventoryItem3D + new_object.item = tool_item + new_object.state = InventoryItem3D.State.TOOL + + return new_object + +func get_title() -> String: + return "NEW_TOOL" + +func get_text() -> String: + return tool_item.get_item_name() + +func get_card_info() -> CardInfo: + return tool_item.card_info() + +func _on_dismiss(): + pass + # GameInfo.game_data.player_data.tool_discovered.append(tool_item.get_item_name()) \ No newline at end of file diff --git a/gui/game/announce/scripts/annouce_tool.gd.uid b/gui/game/announce/scripts/annouce_tool.gd.uid new file mode 100644 index 0000000..2aad7a0 --- /dev/null +++ b/gui/game/announce/scripts/annouce_tool.gd.uid @@ -0,0 +1 @@ +uid://cp40tddq85p6o diff --git a/gui/game/announce/scripts/announce.gd b/gui/game/announce/scripts/announce.gd index 4ec6312..c8655d5 100644 --- a/gui/game/announce/scripts/announce.gd +++ b/gui/game/announce/scripts/announce.gd @@ -1,12 +1,89 @@ -extends Control +@tool +extends CanvasLayer class_name Announce +const DEFAULT_OBJECT_ACCELERATION = Vector2(3,0) + +@export var announce_object : AnnouceObject = null : set = set_announce_object + +@export_tool_button("Update", "Callable") var update_action = set_announce_object + +var announce_objects : Array[AnnouceObject] = [] + +var object_acceleration := Vector2(0,0) + +var rotating := false + +var prev_mouse_pos : Vector2 +var next_mouse_pos : Vector2 + const YELLOW_COLOR = Color("e29f32") const RED_COLOR = Color("f20058") -func announce(title : String, text : String, band_color : Color = YELLOW_COLOR): - %AnnounceTitle.text = title - %AnnounceText.text = text - %AnnounceTexture.modulate = band_color - %AnimationPlayer.play("pass") - AudioManager.play_sfx("Announce") +func _ready(): + set_announce_object() + %OkButton.button_down.connect(_on_ok_button_down) + hide() + + + GameInfo.game_data.player_data.inventory.tool_added.connect( + func (i : Item): + announce_objects.append(AnnounceTool.new(i)) + ) + +func _process(delta): + if announce_object == null and not visible and len(announce_objects) > 0: + announce_object = announce_objects.pop_front() + update_rotation(delta) + +func update_rotation(delta): + if visible: + next_mouse_pos = get_viewport().get_mouse_position() + if Input.is_action_just_pressed("action"): + rotating = true + prev_mouse_pos = get_viewport().get_mouse_position() + if Input.is_action_just_released("action"): + rotating = false + object_acceleration = Vector2( + float(next_mouse_pos.x - prev_mouse_pos.x), + float(next_mouse_pos.y - prev_mouse_pos.y) + ) + + var object_rotation = object_acceleration + + if rotating: + object_rotation = Vector2( + float(next_mouse_pos.x - prev_mouse_pos.x), + float(next_mouse_pos.y - prev_mouse_pos.y) + ) + prev_mouse_pos = next_mouse_pos + else : + object_acceleration = object_acceleration.lerp(DEFAULT_OBJECT_ACCELERATION, 0.1) + + %AnnouceObject.rotate(Vector3.UP, object_rotation.x * delta) + %AnnouceObject.rotate(Vector3.RIGHT, object_rotation.y * delta) + + +func set_announce_object(object := announce_object): + if is_node_ready() and object: + for children in %AnnouceObject.get_children(): + children.queue_free() + + %AnnouceObject.add_child(object.get_3d_object()) + %AnnouceObject.rotation = Vector3.ZERO + %AnnounceTitle.text = object.get_title() + %AnnounceText.text = object.get_text() + %ObjectVisualiser.info = object.get_card_info() + + if not visible: + %AnimationPlayer.play("appear") + AudioManager.play_sfx("Ship_reveal") + elif object == null and visible: + %AnimationPlayer.play_backwards("appear") + + announce_object = object + +func _on_ok_button_down(): + if announce_object: + announce_object._on_dismiss() + announce_object = null diff --git a/gui/game/announce/scripts/announce_inspectable.gd b/gui/game/announce/scripts/announce_inspectable.gd new file mode 100644 index 0000000..f4f83b7 --- /dev/null +++ b/gui/game/announce/scripts/announce_inspectable.gd @@ -0,0 +1,14 @@ +extends TextureRect + +@export var info: CardInfo = null + +func _ready(): + mouse_entered.connect( + func(): Pointer.inspect(self) + ) + mouse_exited.connect( + func(): Pointer.stop_inspect(self) + ) + +func card_info() -> CardInfo: + return info diff --git a/gui/game/announce/scripts/announce_inspectable.gd.uid b/gui/game/announce/scripts/announce_inspectable.gd.uid new file mode 100644 index 0000000..78727dc --- /dev/null +++ b/gui/game/announce/scripts/announce_inspectable.gd.uid @@ -0,0 +1 @@ +uid://bqisp5hjs06rj diff --git a/gui/game/energy_info/assets/3d/battery.blend b/gui/game/energy_info/assets/3d/battery.blend index dddbaa0..ae544d9 100644 Binary files a/gui/game/energy_info/assets/3d/battery.blend and b/gui/game/energy_info/assets/3d/battery.blend differ diff --git a/gui/game/energy_info/assets/3d/battery.blend1 b/gui/game/energy_info/assets/3d/battery.blend1 index 4638933..a0012da 100644 Binary files a/gui/game/energy_info/assets/3d/battery.blend1 and b/gui/game/energy_info/assets/3d/battery.blend1 differ diff --git a/gui/game/energy_info/battery_3d.tscn b/gui/game/energy_info/battery_3d.tscn index 69d4558..a67abb3 100644 --- a/gui/game/energy_info/battery_3d.tscn +++ b/gui/game/energy_info/battery_3d.tscn @@ -18,6 +18,6 @@ transform = Transform3D(0.99999994, 0, 0, 0, 1, 0, 0, 0, 0.99999994, 0, 0, 0) [node name="NonPoweredBatteryGauge" type="Sprite3D" parent="." unique_id=419634974] unique_name_in_owner = true -transform = Transform3D(-9.0001855e-08, -0.008180644, 0.9999901, -1.1066229, -1.3152051, -0.003110032, 1.1066215, -1.3152068, -0.003109955, 0.28073934, 0.18676496, -0.05360138) +transform = Transform3D(-3.00128e-07, -0.011105444, 0.99999034, -3.705242, -1.7854263, -0.0031100323, 3.7052372, -1.7854285, -0.0031099557, 0.24117891, 0.37186503, -0.052738685) centered = false texture = SubResource("AtlasTexture_0785j") diff --git a/gui/game/energy_info/scripts/battery_3d.gd b/gui/game/energy_info/scripts/battery_3d.gd index 3fd00c3..b43896a 100644 --- a/gui/game/energy_info/scripts/battery_3d.gd +++ b/gui/game/energy_info/scripts/battery_3d.gd @@ -2,7 +2,7 @@ extends Node3D class_name Battery3d -const MAX_BATTERY_GAUGE_SPRITE_SCALE = 1.86 +const MAX_BATTERY_GAUGE_SPRITE_SCALE = 2.525 @export var powered : bool = true : set = set_powered diff --git a/gui/game/game_gui.tscn b/gui/game/game_gui.tscn index ac8fdf8..e0ab65c 100644 --- a/gui/game/game_gui.tscn +++ b/gui/game/game_gui.tscn @@ -9,16 +9,7 @@ [ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="6_id0t5"] [ext_resource type="Texture2D" uid="uid://b43thuq8piv18" path="res://common/icons/skull.svg" id="7_dr1y2"] [ext_resource type="PackedScene" uid="uid://clicjf8ts51h8" path="res://gui/game/inventory_gui/inventory_gui.tscn" id="9_id0t5"] -[ext_resource type="Texture2D" uid="uid://cwewx7cdy085h" path="res://common/icons/help-hexagon.svg" id="12_negho"] -[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="12_nhqnj"] -[ext_resource type="Texture2D" uid="uid://bgcymkgxk7mpp" path="res://gui/pause/assets/textures/moss_tutorial_image.png" id="12_p0xoq"] -[ext_resource type="Script" uid="uid://c65cf2ksbsxwg" path="res://gui/game/help/scripts/help_container.gd" id="13_rcm5b"] -[ext_resource type="Texture2D" uid="uid://d3ksdxepcjoot" path="res://common/icons/calendar-week.svg" id="13_w16yr"] -[ext_resource type="Texture2D" uid="uid://cgmxjom200bej" path="res://common/icons/chevrons-up.svg" id="14_mbdxg"] -[ext_resource type="Texture2D" uid="uid://bhogi5kkltx51" path="res://gui/pause/assets/textures/rock_tutorial_image.png" id="14_negho"] -[ext_resource type="Texture2D" uid="uid://3fwhxkd0ycga" path="res://gui/pause/assets/textures/talion_tutorial_image.png" id="15_rcm5b"] -[ext_resource type="Texture2D" uid="uid://dhy4ewvqvlxyi" path="res://common/icons/clock.svg" id="20_ajf5p"] -[ext_resource type="Texture2D" uid="uid://c2qg7ikkylfv4" path="res://common/icons/seeds.svg" id="21_jomh8"] +[ext_resource type="PackedScene" uid="uid://cgbjmw75alfeo" path="res://gui/game/help/help.tscn" id="10_id0t5"] [sub_resource type="Gradient" id="Gradient_ykapk"] offsets = PackedFloat32Array(0.47639486, 1) @@ -71,10 +62,6 @@ _data = { &"bump": SubResource("Animation_ajf5p") } -[sub_resource type="LabelSettings" id="LabelSettings_rcm5b"] -font = ExtResource("6_2wykm") -font_size = 20 - [node name="GameGui" type="CanvasLayer" unique_id=274698556] script = ExtResource("1_udau0") @@ -196,227 +183,5 @@ layout_mode = 2 size_flags_horizontal = 1 size_flags_vertical = 8 -[node name="Help" type="VBoxContainer" parent="MarginContainer" unique_id=645268912] +[node name="Help" parent="MarginContainer" unique_id=152252336 instance=ExtResource("10_id0t5")] layout_mode = 2 -size_flags_horizontal = 8 -size_flags_vertical = 0 - -[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/Help" unique_id=58561073] -layout_mode = 2 -theme_override_constants/separation = 5 -alignment = 2 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/HBoxContainer" unique_id=147740513] -layout_mode = 2 -texture = ExtResource("12_negho") -expand_mode = 3 -stretch_mode = 5 - -[node name="Label" type="Label" parent="MarginContainer/Help/HBoxContainer" unique_id=245455638] -layout_mode = 2 -text = "HELP" -label_settings = SubResource("LabelSettings_rcm5b") - -[node name="TerrainHelp" type="FoldableContainer" parent="MarginContainer/Help" unique_id=765624548] -custom_minimum_size = Vector2(300, 0) -layout_mode = 2 -size_flags_horizontal = 8 -size_flags_vertical = 0 -title = "TERRAINS" -script = ExtResource("13_rcm5b") -help_container_name = "terrain" - -[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/Help/TerrainHelp" unique_id=276300201] -layout_mode = 2 -theme_override_constants/margin_left = 8 -theme_override_constants/margin_top = 8 -theme_override_constants/margin_right = 8 -theme_override_constants/margin_bottom = 8 - -[node name="Zones" type="VBoxContainer" parent="MarginContainer/Help/TerrainHelp/MarginContainer" unique_id=897827374] -layout_mode = 2 - -[node name="Moss" type="HBoxContainer" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones" unique_id=1245369351] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones/Moss" unique_id=590490498] -custom_minimum_size = Vector2(0, 60) -layout_mode = 2 -size_flags_horizontal = 4 -size_flags_vertical = 4 -texture = ExtResource("12_p0xoq") -expand_mode = 3 -stretch_mode = 5 - -[node name="RichText" type="RichTextLabel" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones/Moss" unique_id=1908542695] -layout_mode = 2 -size_flags_horizontal = 3 -theme = ExtResource("12_nhqnj") -theme_override_fonts/bold_font = ExtResource("6_2wykm") -theme_override_font_sizes/normal_font_size = 15 -theme_override_font_sizes/bold_font_size = 18 -bbcode_enabled = true -text = "FERTILE_LAND_TEXT" -fit_content = true -vertical_alignment = 1 - -[node name="Rock" type="HBoxContainer" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones" unique_id=1388177815] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones/Rock" unique_id=84789195] -custom_minimum_size = Vector2(0, 60) -layout_mode = 2 -size_flags_horizontal = 4 -size_flags_vertical = 4 -texture = ExtResource("14_negho") -expand_mode = 3 -stretch_mode = 5 - -[node name="RichText" type="RichTextLabel" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones/Rock" unique_id=584054118] -layout_mode = 2 -size_flags_horizontal = 3 -theme = ExtResource("12_nhqnj") -theme_override_fonts/bold_font = ExtResource("6_2wykm") -theme_override_font_sizes/normal_font_size = 15 -theme_override_font_sizes/bold_font_size = 18 -bbcode_enabled = true -text = "ROCK_TEXT" -fit_content = true -vertical_alignment = 1 - -[node name="Talion" type="HBoxContainer" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones" unique_id=786946987] -layout_mode = 2 -size_flags_horizontal = 3 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones/Talion" unique_id=1949577473] -custom_minimum_size = Vector2(0, 60) -layout_mode = 2 -size_flags_horizontal = 4 -size_flags_vertical = 4 -texture = ExtResource("15_rcm5b") -expand_mode = 3 -stretch_mode = 5 - -[node name="RichText" type="RichTextLabel" parent="MarginContainer/Help/TerrainHelp/MarginContainer/Zones/Talion" unique_id=813195094] -layout_mode = 2 -size_flags_horizontal = 3 -theme = ExtResource("12_nhqnj") -theme_override_fonts/bold_font = ExtResource("6_2wykm") -theme_override_font_sizes/normal_font_size = 15 -theme_override_font_sizes/bold_font_size = 18 -bbcode_enabled = true -text = "TALION_VEIN_TEXT" -fit_content = true -vertical_alignment = 1 - -[node name="IconHelp" type="FoldableContainer" parent="MarginContainer/Help" unique_id=506997372] -custom_minimum_size = Vector2(300, 0) -layout_mode = 2 -size_flags_horizontal = 8 -size_flags_vertical = 0 -title = "ICONS_MEANINGS" -script = ExtResource("13_rcm5b") -help_container_name = "icon" - -[node name="MarginContainer" type="MarginContainer" parent="MarginContainer/Help/IconHelp" unique_id=2076413829] -layout_mode = 2 -theme_override_constants/margin_left = 8 -theme_override_constants/margin_top = 8 -theme_override_constants/margin_right = 8 -theme_override_constants/margin_bottom = 8 - -[node name="IconsGrid" type="VBoxContainer" parent="MarginContainer/Help/IconHelp/MarginContainer" unique_id=443451416] -layout_mode = 2 -alignment = 1 - -[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid" unique_id=1230753118] -layout_mode = 2 -theme_override_constants/separation = 4 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer" unique_id=582458449] -custom_minimum_size = Vector2(25, 25) -layout_mode = 2 -size_flags_horizontal = 4 -texture = ExtResource("6_id0t5") -expand_mode = 1 -stretch_mode = 5 - -[node name="RichTextLabel" type="Label" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer" unique_id=452890750] -layout_mode = 2 -theme = ExtResource("12_nhqnj") -text = "PLANT_POINTS" -vertical_alignment = 1 - -[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid" unique_id=1347045145] -layout_mode = 2 -theme_override_constants/separation = 4 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer2" unique_id=157378534] -custom_minimum_size = Vector2(25, 25) -layout_mode = 2 -size_flags_horizontal = 4 -texture = ExtResource("13_w16yr") -expand_mode = 1 -stretch_mode = 5 - -[node name="RichTextLabel" type="Label" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer2" unique_id=787250244] -layout_mode = 2 -theme = ExtResource("12_nhqnj") -text = "DAYS" -vertical_alignment = 1 - -[node name="HBoxContainer3" type="HBoxContainer" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid" unique_id=209714175] -layout_mode = 2 -theme_override_constants/separation = 4 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer3" unique_id=1390720076] -custom_minimum_size = Vector2(25, 25) -layout_mode = 2 -size_flags_horizontal = 4 -texture = ExtResource("14_mbdxg") -expand_mode = 1 -stretch_mode = 5 - -[node name="RichTextLabel" type="Label" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer3" unique_id=1494799300] -layout_mode = 2 -theme = ExtResource("12_nhqnj") -text = "GROWING_TIME" -vertical_alignment = 1 - -[node name="HBoxContainer4" type="HBoxContainer" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid" unique_id=2039812090] -layout_mode = 2 -theme_override_constants/separation = 4 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer4" unique_id=353853877] -custom_minimum_size = Vector2(25, 25) -layout_mode = 2 -size_flags_horizontal = 4 -texture = ExtResource("20_ajf5p") -expand_mode = 1 -stretch_mode = 5 - -[node name="RichTextLabel" type="Label" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer4" unique_id=2071201389] -layout_mode = 2 -theme = ExtResource("12_nhqnj") -text = "LIFETIME" -vertical_alignment = 1 - -[node name="HBoxContainer5" type="HBoxContainer" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid" unique_id=1706837358] -layout_mode = 2 -theme_override_constants/separation = 4 - -[node name="TextureRect" type="TextureRect" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer5" unique_id=298500502] -custom_minimum_size = Vector2(25, 25) -layout_mode = 2 -size_flags_horizontal = 4 -texture = ExtResource("21_jomh8") -expand_mode = 1 -stretch_mode = 5 - -[node name="RichTextLabel" type="Label" parent="MarginContainer/Help/IconHelp/MarginContainer/IconsGrid/HBoxContainer5" unique_id=1100044131] -layout_mode = 2 -theme = ExtResource("12_nhqnj") -text = "SEEDS" -vertical_alignment = 1 diff --git a/gui/game/help/help.tscn b/gui/game/help/help.tscn new file mode 100644 index 0000000..a5fdba7 --- /dev/null +++ b/gui/game/help/help.tscn @@ -0,0 +1,280 @@ +[gd_scene format=3 uid="uid://cgbjmw75alfeo"] + +[ext_resource type="Texture2D" uid="uid://cwewx7cdy085h" path="res://common/icons/help-hexagon.svg" id="1_fajau"] +[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="2_l61dv"] +[ext_resource type="Script" uid="uid://c65cf2ksbsxwg" path="res://gui/game/help/scripts/help_container.gd" id="3_syp3u"] +[ext_resource type="Texture2D" uid="uid://bgcymkgxk7mpp" path="res://gui/pause/assets/textures/moss_tutorial_image.png" id="4_liwse"] +[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="5_mao3x"] +[ext_resource type="Texture2D" uid="uid://bhogi5kkltx51" path="res://gui/pause/assets/textures/rock_tutorial_image.png" id="6_bt3y5"] +[ext_resource type="Texture2D" uid="uid://3fwhxkd0ycga" path="res://gui/pause/assets/textures/talion_tutorial_image.png" id="7_jx4fu"] +[ext_resource type="Texture2D" uid="uid://bt3g5bmar0icf" path="res://common/icons/growth.svg" id="8_ajtcc"] +[ext_resource type="Texture2D" uid="uid://d3ksdxepcjoot" path="res://common/icons/calendar-week.svg" id="9_i5c4s"] +[ext_resource type="Texture2D" uid="uid://cgmxjom200bej" path="res://common/icons/chevrons-up.svg" id="10_0a2af"] +[ext_resource type="Texture2D" uid="uid://dhy4ewvqvlxyi" path="res://common/icons/clock.svg" id="11_tiice"] +[ext_resource type="Texture2D" uid="uid://c2qg7ikkylfv4" path="res://common/icons/seeds.svg" id="12_vb6ry"] +[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="13_r8wgh"] +[ext_resource type="Texture2D" uid="uid://cymrmhsihkj44" path="res://common/icons/recharge.svg" id="14_ccxsv"] + +[sub_resource type="LabelSettings" id="LabelSettings_rcm5b"] +font = ExtResource("2_l61dv") +font_size = 20 + +[node name="Help" type="VBoxContainer" unique_id=152252336] +size_flags_horizontal = 8 +size_flags_vertical = 0 + +[node name="HBoxContainer" type="HBoxContainer" parent="." unique_id=541877405] +layout_mode = 2 +theme_override_constants/separation = 5 +alignment = 2 + +[node name="TextureRect" type="TextureRect" parent="HBoxContainer" unique_id=629672827] +layout_mode = 2 +texture = ExtResource("1_fajau") +expand_mode = 3 +stretch_mode = 5 + +[node name="Label" type="Label" parent="HBoxContainer" unique_id=2069982782] +layout_mode = 2 +text = "HELP" +label_settings = SubResource("LabelSettings_rcm5b") + +[node name="TerrainHelp" type="FoldableContainer" parent="." unique_id=221139748] +custom_minimum_size = Vector2(300, 0) +layout_mode = 2 +size_flags_horizontal = 8 +size_flags_vertical = 0 +title = "TERRAINS" +script = ExtResource("3_syp3u") +help_container_name = "terrain" + +[node name="MarginContainer" type="MarginContainer" parent="TerrainHelp" unique_id=937055110] +layout_mode = 2 +theme_override_constants/margin_left = 8 +theme_override_constants/margin_top = 8 +theme_override_constants/margin_right = 8 +theme_override_constants/margin_bottom = 8 + +[node name="Zones" type="VBoxContainer" parent="TerrainHelp/MarginContainer" unique_id=83983981] +layout_mode = 2 + +[node name="Moss" type="HBoxContainer" parent="TerrainHelp/MarginContainer/Zones" unique_id=116883301] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="TextureRect" type="TextureRect" parent="TerrainHelp/MarginContainer/Zones/Moss" unique_id=2127894722] +custom_minimum_size = Vector2(0, 60) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +texture = ExtResource("4_liwse") +expand_mode = 3 +stretch_mode = 5 + +[node name="RichText" type="RichTextLabel" parent="TerrainHelp/MarginContainer/Zones/Moss" unique_id=941957004] +layout_mode = 2 +size_flags_horizontal = 3 +theme = ExtResource("5_mao3x") +theme_override_fonts/bold_font = ExtResource("2_l61dv") +theme_override_font_sizes/normal_font_size = 15 +theme_override_font_sizes/bold_font_size = 18 +bbcode_enabled = true +text = "FERTILE_LAND_TEXT" +fit_content = true +vertical_alignment = 1 + +[node name="Rock" type="HBoxContainer" parent="TerrainHelp/MarginContainer/Zones" unique_id=1546734905] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="TextureRect" type="TextureRect" parent="TerrainHelp/MarginContainer/Zones/Rock" unique_id=20628007] +custom_minimum_size = Vector2(0, 60) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +texture = ExtResource("6_bt3y5") +expand_mode = 3 +stretch_mode = 5 + +[node name="RichText" type="RichTextLabel" parent="TerrainHelp/MarginContainer/Zones/Rock" unique_id=782682665] +layout_mode = 2 +size_flags_horizontal = 3 +theme = ExtResource("5_mao3x") +theme_override_fonts/bold_font = ExtResource("2_l61dv") +theme_override_font_sizes/normal_font_size = 15 +theme_override_font_sizes/bold_font_size = 18 +bbcode_enabled = true +text = "ROCK_TEXT" +fit_content = true +vertical_alignment = 1 + +[node name="Talion" type="HBoxContainer" parent="TerrainHelp/MarginContainer/Zones" unique_id=1594298218] +layout_mode = 2 +size_flags_horizontal = 3 + +[node name="TextureRect" type="TextureRect" parent="TerrainHelp/MarginContainer/Zones/Talion" unique_id=247200209] +custom_minimum_size = Vector2(0, 60) +layout_mode = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +texture = ExtResource("7_jx4fu") +expand_mode = 3 +stretch_mode = 5 + +[node name="RichText" type="RichTextLabel" parent="TerrainHelp/MarginContainer/Zones/Talion" unique_id=1292601454] +layout_mode = 2 +size_flags_horizontal = 3 +theme = ExtResource("5_mao3x") +theme_override_fonts/bold_font = ExtResource("2_l61dv") +theme_override_font_sizes/normal_font_size = 15 +theme_override_font_sizes/bold_font_size = 18 +bbcode_enabled = true +text = "TALION_VEIN_TEXT" +fit_content = true +vertical_alignment = 1 + +[node name="IconHelp" type="FoldableContainer" parent="." unique_id=931940053] +custom_minimum_size = Vector2(300, 0) +layout_mode = 2 +size_flags_horizontal = 8 +size_flags_vertical = 0 +title = "ICONS_MEANINGS" +script = ExtResource("3_syp3u") +help_container_name = "icon" + +[node name="MarginContainer" type="MarginContainer" parent="IconHelp" unique_id=627387657] +layout_mode = 2 +theme_override_constants/margin_left = 8 +theme_override_constants/margin_top = 8 +theme_override_constants/margin_right = 8 +theme_override_constants/margin_bottom = 8 + +[node name="IconsGrid" type="VBoxContainer" parent="IconHelp/MarginContainer" unique_id=1344975233] +layout_mode = 2 +alignment = 1 + +[node name="HBoxContainer" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1388308447] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer" unique_id=848501211] +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("8_ajtcc") +expand_mode = 1 +stretch_mode = 5 + +[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer" unique_id=913881976] +layout_mode = 2 +theme = ExtResource("5_mao3x") +text = "PLANT_POINTS" +vertical_alignment = 1 + +[node name="HBoxContainer2" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1039110967] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer2" unique_id=1533385173] +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("9_i5c4s") +expand_mode = 1 +stretch_mode = 5 + +[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer2" unique_id=1539873337] +layout_mode = 2 +theme = ExtResource("5_mao3x") +text = "DAYS" +vertical_alignment = 1 + +[node name="HBoxContainer3" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1009856551] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer3" unique_id=483862285] +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("10_0a2af") +expand_mode = 1 +stretch_mode = 5 + +[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer3" unique_id=1118498780] +layout_mode = 2 +theme = ExtResource("5_mao3x") +text = "GROWING_TIME" +vertical_alignment = 1 + +[node name="HBoxContainer4" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1195759820] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer4" unique_id=617759410] +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("11_tiice") +expand_mode = 1 +stretch_mode = 5 + +[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer4" unique_id=44288020] +layout_mode = 2 +theme = ExtResource("5_mao3x") +text = "LIFETIME" +vertical_alignment = 1 + +[node name="HBoxContainer5" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1749624633] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer5" unique_id=1970160966] +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("12_vb6ry") +expand_mode = 1 +stretch_mode = 5 + +[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer5" unique_id=1667196444] +layout_mode = 2 +theme = ExtResource("5_mao3x") +text = "SEEDS" +vertical_alignment = 1 + +[node name="HBoxContainer6" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=65069381] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer6" unique_id=302101280] +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("13_r8wgh") +expand_mode = 1 +stretch_mode = 5 + +[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer6" unique_id=1371041548] +layout_mode = 2 +theme = ExtResource("5_mao3x") +text = "ORCHID_ENERGY" +vertical_alignment = 1 + +[node name="HBoxContainer7" type="HBoxContainer" parent="IconHelp/MarginContainer/IconsGrid" unique_id=1616445361] +layout_mode = 2 +theme_override_constants/separation = 4 + +[node name="TextureRect" type="TextureRect" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer7" unique_id=1012780398] +custom_minimum_size = Vector2(25, 25) +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("14_ccxsv") +expand_mode = 1 +stretch_mode = 5 + +[node name="RichTextLabel" type="Label" parent="IconHelp/MarginContainer/IconsGrid/HBoxContainer7" unique_id=537891031] +layout_mode = 2 +theme = ExtResource("5_mao3x") +text = "RECHARGE_NUMBER" +vertical_alignment = 1 diff --git a/gui/game/inventory_gui/assets/3d/item_screen.blend b/gui/game/inventory_gui/assets/3d/item_screen.blend index 017dafa..94d3332 100644 Binary files a/gui/game/inventory_gui/assets/3d/item_screen.blend and b/gui/game/inventory_gui/assets/3d/item_screen.blend differ diff --git a/gui/game/inventory_gui/assets/3d/item_screen.blend1 b/gui/game/inventory_gui/assets/3d/item_screen.blend1 index 4d749a8..017dafa 100644 Binary files a/gui/game/inventory_gui/assets/3d/item_screen.blend1 and b/gui/game/inventory_gui/assets/3d/item_screen.blend1 differ diff --git a/gui/game/objective_progress_bar/objective_progress_bar.tscn b/gui/game/objective_progress_bar/objective_progress_bar.tscn index 3a3f396..f4a6e13 100644 --- a/gui/game/objective_progress_bar/objective_progress_bar.tscn +++ b/gui/game/objective_progress_bar/objective_progress_bar.tscn @@ -59,6 +59,7 @@ expand_mode = 1 stretch_mode = 5 [node name="ProgressBarViewPort" type="SubViewport" parent="." unique_id=459282221] +own_world_3d = true transparent_bg = true size = Vector2i(479, 117) diff --git a/gui/game/pass_day/pass_day.tscn b/gui/game/pass_day/pass_day.tscn index 471597a..5a251fe 100644 --- a/gui/game/pass_day/pass_day.tscn +++ b/gui/game/pass_day/pass_day.tscn @@ -7,6 +7,7 @@ [ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="4_0pm4g"] [ext_resource type="Script" uid="uid://0dhj8sdpil7q" path="res://gui/tools/control_animation_player.gd" id="5_dqmg8"] [ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="6_dqmg8"] +[ext_resource type="Texture2D" uid="uid://cymrmhsihkj44" path="res://common/icons/recharge.svg" id="6_h2bel"] [ext_resource type="Texture2D" uid="uid://cihiibon53147" path="res://gui/game/pass_day/assets/day_night_sprite.svg" id="7_m84xg"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_27lg1"] @@ -55,7 +56,6 @@ _data = { [node name="PassDay" type="CanvasLayer" unique_id=335255544] layer = 3 -visible = false script = ExtResource("1_0pm4g") [node name="Blur" type="ColorRect" parent="." unique_id=546890405] @@ -72,7 +72,6 @@ script = ExtResource("2_bhfpo") [node name="PassDayInfo" type="VBoxContainer" parent="." unique_id=833110506] unique_name_in_owner = true -visible = false anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 @@ -86,6 +85,11 @@ unique_name_in_owner = true script = ExtResource("5_dqmg8") metadata/_custom_type_script = "uid://0dhj8sdpil7q" +[node name="TextureRect" type="TextureRect" parent="PassDayInfo" unique_id=1350962162] +layout_mode = 2 +size_flags_horizontal = 4 +texture = ExtResource("6_h2bel") + [node name="ChargeCount" type="Label" parent="PassDayInfo" unique_id=1326590358] unique_name_in_owner = true layout_mode = 2 diff --git a/gui/game/tutorial/scripts/tutorial.gd b/gui/game/tutorial/scripts/tutorial.gd index d794474..ac127e7 100644 --- a/gui/game/tutorial/scripts/tutorial.gd +++ b/gui/game/tutorial/scripts/tutorial.gd @@ -19,7 +19,8 @@ var indicators : Array[InGameIndicator] Step.new( "CHANGE_ZOOM_WITH_Z_X", (func (): - return GameInfo.settings_data.zoom != 1.) + return GameInfo.settings_data.zoom != 1.), + (func (): GameInfo.game_data.player_data.inventory.add_item(Detector.new())) ), Step.new( "SELECT_ITEM_WITH_SCROLL_CLICK_OR_NUMBER", @@ -39,7 +40,8 @@ var indicators : Array[InGameIndicator] Step.new( "RECHARGE_IN_THE_RECHARGE_STATION", (func (): - return region and region.data and region.data.charges != 10) + return region and region.data and not region.data.in_passing_day_animation and region.data.charges != RegionParameter.DEFAULT_CHARGE), + (func (): GameInfo.game_data.player_data.inventory.add_item(Pickaxe.new())) ), Step.new( "DIG_A_TALION_VEIN_WITH_SHOVEL", @@ -74,7 +76,8 @@ var indicators : Array[InGameIndicator] Step.new( "GAIN_FIRST_PLANT_POINT", (func (): - return region.data.get_score() != 0) + return region and region.data and not region.data.in_passing_day_animation and region.data.get_score() != 0), + (func (): GameInfo.game_data.player_data.inventory.add_item(Fork.new())) ), Step.new( "HARVEST_A_MATURE_PLANT", @@ -83,7 +86,7 @@ var indicators : Array[InGameIndicator] if e is Plant and e.harvested: return true return false) - ), + ) ] func _ready(): @@ -133,19 +136,24 @@ class Step: var text : String : get = get_text var is_step_over_callable : Callable + var on_succeeded : Callable var succeeded = false func _init( _text : String = "", - _is_step_over_callable : Callable = (func():return false) + _is_step_over_callable : Callable = (func():return false), + _on_succeeded : Callable = (func():return false) ): text = _text is_step_over_callable = _is_step_over_callable + on_succeeded = _on_succeeded func get_text() -> String: return text - + func update_succeeded() -> bool: if not succeeded: succeeded = is_step_over_callable.call() + if succeeded: + on_succeeded.call() return succeeded diff --git a/gui/pause/pause.tscn b/gui/pause/pause.tscn index a4be65a..f409f99 100644 --- a/gui/pause/pause.tscn +++ b/gui/pause/pause.tscn @@ -165,12 +165,10 @@ icon = ExtResource("7_yj6f1") [node name="Settings" parent="." unique_id=758381952 instance=ExtResource("4_58dya")] unique_name_in_owner = true -visible = false mouse_filter = 2 [node name="Controls" parent="." unique_id=358658336 instance=ExtResource("11_urlqn")] unique_name_in_owner = true -visible = false mouse_filter = 2 [node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1779993260] diff --git a/gui/pointer/pointer.tscn b/gui/pointer/pointer.tscn index ff82b33..a6d901d 100644 --- a/gui/pointer/pointer.tscn +++ b/gui/pointer/pointer.tscn @@ -153,7 +153,7 @@ opacity = 0.4 metadata/_custom_type_script = "uid://c60a1bjcuj4hd" [node name="CardCanvasLayer" type="CanvasLayer" parent="." unique_id=391042380] -layer = 2 +layer = 10 [node name="CardPosition" type="Control" parent="CardCanvasLayer" unique_id=466738082] unique_name_in_owner = true diff --git a/gui/pointer/scripts/pointer.gd b/gui/pointer/scripts/pointer.gd index eda1f1e..29b9849 100644 --- a/gui/pointer/scripts/pointer.gd +++ b/gui/pointer/scripts/pointer.gd @@ -125,11 +125,7 @@ func inspect(node: Node): current_inspect.inspect(false) current_inspect = node inspected = node - if inspected is InspectableEntity: - inspected_card_info = inspected.card_info() - elif inspected is InventoryGuiItemMouseDetector: - inspected_card_info = inspected.card_info() - elif inspected is RegionPoint: + if inspected.has_method("card_info"): inspected_card_info = inspected.card_info() else: inspected_card_info = null diff --git a/gui/vending_machine/assets/3d/vending_machine.blend b/gui/vending_machine/assets/3d/vending_machine.blend new file mode 100644 index 0000000..b83202b Binary files /dev/null and b/gui/vending_machine/assets/3d/vending_machine.blend differ diff --git a/gui/vending_machine/assets/3d/vending_machine.blend.import b/gui/vending_machine/assets/3d/vending_machine.blend.import new file mode 100644 index 0000000..ea1632d --- /dev/null +++ b/gui/vending_machine/assets/3d/vending_machine.blend.import @@ -0,0 +1,68 @@ +[remap] + +importer="scene" +importer_version=1 +type="PackedScene" +uid="uid://5l3wve81irlc" +path="res://.godot/imported/vending_machine.blend-07b605eb32be6fa48a7c007c48e05515.scn" + +[deps] + +source_file="res://gui/vending_machine/assets/3d/vending_machine.blend" +dest_files=["res://.godot/imported/vending_machine.blend-07b605eb32be6fa48a7c007c48e05515.scn"] + +[params] + +nodes/root_type="" +nodes/root_name="" +nodes/root_script=null +nodes/apply_root_scale=true +nodes/root_scale=1.0 +nodes/import_as_skeleton_bones=false +nodes/use_name_suffixes=true +nodes/use_node_type_suffixes=true +meshes/ensure_tangents=true +meshes/generate_lods=true +meshes/create_shadow_meshes=true +meshes/light_baking=1 +meshes/lightmap_texel_size=0.2 +meshes/force_disable_compression=false +skins/use_named_skins=true +animation/import=true +animation/fps=30 +animation/trimming=false +animation/remove_immutable_tracks=true +animation/import_rest_as_RESET=false +import_script/path="" +materials/extract=0 +materials/extract_format=0 +materials/extract_path="" +_subresources={ +"materials": { +"Material": { +"use_external/enabled": true, +"use_external/fallback_path": "res://common/assets/materials/default_3d.tres", +"use_external/path": "uid://dvvi1k5c5iowc" +} +} +} +blender/nodes/visible=0 +blender/nodes/active_collection_only=false +blender/nodes/punctual_lights=true +blender/nodes/cameras=true +blender/nodes/custom_properties=true +blender/nodes/modifiers=1 +blender/meshes/colors=false +blender/meshes/uvs=true +blender/meshes/normals=true +blender/meshes/export_geometry_nodes_instances=false +blender/meshes/gpu_instances=false +blender/meshes/tangents=true +blender/meshes/skins=2 +blender/meshes/export_bones_deforming_mesh_only=false +blender/materials/unpack_enabled=true +blender/materials/export_materials=1 +blender/animation/limit_playback=true +blender/animation/always_sample=true +blender/animation/group_tracks=true +gltf/naming_version=2 diff --git a/gui/vending_machine/assets/3d/vending_machine.blend1 b/gui/vending_machine/assets/3d/vending_machine.blend1 new file mode 100644 index 0000000..42eb334 Binary files /dev/null and b/gui/vending_machine/assets/3d/vending_machine.blend1 differ diff --git a/gui/vending_machine/scripts/vending_machine.gd b/gui/vending_machine/scripts/vending_machine.gd new file mode 100644 index 0000000..0b959aa --- /dev/null +++ b/gui/vending_machine/scripts/vending_machine.gd @@ -0,0 +1,88 @@ +@tool +extends CanvasLayer +class_name VendingMachine + +enum State {CHOOSE,PAY,FETCH} +enum ChooseState {NONE,FIRST,SECOND} + +@export_tool_button("Update", "Callable") var update_action = update + +@export var state : State = State.CHOOSE : set = set_state +@export var choose_state : ChooseState = ChooseState.NONE : set = set_choose_state +@export var artefact_1 : Artefact = null : set = set_artifact_1 +@export var artefact_2 : Artefact = null : set = set_artifact_2 + +func _ready(): + update() + +func update(): + set_artifact_1() + set_artifact_2() + set_state() + +func set_state(s := state): + state = s + if is_node_ready(): + %PayButton.visible = state == State.PAY + %FetchButton.visible = state == State.FETCH + + match state: + State.CHOOSE: + %IndicationLabel.text = "CHOOSE_AN_ITEM" + State.PAY: + %IndicationLabel.text = "PAY_THE_PRICE" + State.FETCH: + %IndicationLabel.text = "GET_YOUR_ITEM" + +func set_choose_state(s := choose_state): + choose_state = s + if is_node_ready(): + %VendingMachine3d.screen_1_hide = s != ChooseState.FIRST + %VendingMachine3d.screen_2_hide = s != ChooseState.SECOND + +func set_artifact_1(a := artefact_1): + artefact_1 = a + if is_node_ready() and a: + %SelectButton1.text = a.get_artefact_name() + %VendingMachine3d.object_1_scene = a.get_3d_scene() + +func set_artifact_2(a := artefact_2): + artefact_2 = a + if is_node_ready() and a: + %SelectButton2.text = a.get_artefact_name() + %VendingMachine3d.object_2_scene = a.get_3d_scene() + + +func _on_fetch_button_button_down(): + pass # TODO : Adding the artifacts + + +func _on_pay_button_button_down(): + # TODO : The payment + if state == State.PAY and choose_state != ChooseState.NONE: + state = State.FETCH + + if choose_state == ChooseState.FIRST: + %VendingMachine3d.fall_object_1() + else : + %VendingMachine3d.fall_object_2() + +func _on_select_button_1_button_down(): + choose_state = ChooseState.FIRST + if state == State.CHOOSE: + state = State.PAY + +func _on_select_button_2_button_down(): + choose_state = ChooseState.SECOND + if state == State.CHOOSE: + state = State.PAY + +func _on_select_button_bis_1_button_down(): + choose_state = ChooseState.FIRST + if state == State.CHOOSE: + state = State.PAY + +func _on_select_button_bis_2_button_down(): + choose_state = ChooseState.SECOND + if state == State.CHOOSE: + state = State.PAY diff --git a/gui/vending_machine/scripts/vending_machine.gd.uid b/gui/vending_machine/scripts/vending_machine.gd.uid new file mode 100644 index 0000000..812982d --- /dev/null +++ b/gui/vending_machine/scripts/vending_machine.gd.uid @@ -0,0 +1 @@ +uid://d4jf1hruxqe6f diff --git a/gui/vending_machine/scripts/vending_machine_3d.gd b/gui/vending_machine/scripts/vending_machine_3d.gd new file mode 100644 index 0000000..31728b3 --- /dev/null +++ b/gui/vending_machine/scripts/vending_machine_3d.gd @@ -0,0 +1,109 @@ +@tool +extends Node3D +class_name VendingMachine3d + +const LINE_OBJECT_NUMBER = 5 +const LINE_OBJECT_SEPARATION = Vector3.LEFT * 0.2 +const FALLING_OBJECT_LINE_SHIFT = Vector3.FORWARD * 0.3 + +@export_tool_button("Update", "Callable") var update_action = update + +@export_tool_button("Fall Object 1", "Callable") var fall_object_1_action = fall_object_1 +@export_tool_button("Fall Object 1", "Callable") var fall_object_2_action = fall_object_2 + +@export var object_1_scene : PackedScene = null : set = set_object_1_scene +@export var object_2_scene : PackedScene = null : set = set_object_2_scene +@export var screen_1_hide : bool = true : set = set_screen_1_hide +@export var screen_2_hide : bool = true : set = set_screen_2_hide + +# func _input(_e): +# if Input.is_action_just_pressed("action"): +# fall_object([ +# %Line1, +# %Line2, +# %Line3, +# %Line4 +# ].pick_random()) + +func _ready(): + update() + +func update(): + set_object_1_scene() + set_object_2_scene() + set_screen_1_hide() + set_screen_2_hide() + +func set_object_1_scene(scene := object_1_scene): + if scene and is_node_ready(): + fill_lines(%Line1, scene.instantiate()) + fill_lines(%Line2, scene.instantiate()) + object_1_scene = scene + +func set_object_2_scene(scene := object_2_scene): + if scene and is_node_ready(): + fill_lines(%Line3, scene.instantiate()) + fill_lines(%Line4, scene.instantiate()) + object_2_scene = scene + +func set_screen_1_hide(v := screen_1_hide): + screen_1_hide = v + if is_node_ready(): + %HideScreen1.visible = v + +func set_screen_2_hide(v := screen_2_hide): + screen_2_hide = v + if is_node_ready(): + %HideScreen2.visible = v + +func fall_object_1(): + fall_object([ + %Line1, + %Line2 + ].pick_random()) + +func fall_object_2(): + fall_object([ + %Line3, + %Line4 + ].pick_random()) + +func fall_object(from_line : Node3D): + if len(from_line.get_children()): + var falling_object = create_falling_object() + + var object = from_line.get_children().pick_random() as Node3D + falling_object.global_position = object.global_position + FALLING_OBJECT_LINE_SHIFT + + var falling_model = object.duplicate() + falling_model.position = Vector3.ZERO + falling_object.add_child(falling_model) + falling_object.freeze = false + object.queue_free() + + %FallingObjects.add_child(falling_object) + +func clear_falling_objects(): + for c in %FallingObjects.get_children(): + c.queue_free() + +func create_falling_object() -> RigidBody3D: + var falling_object = RigidBody3D.new() + var falling_collider = CollisionShape3D.new() + var falling_shape = SphereShape3D.new() + falling_shape.radius = 0.08 + falling_collider.shape = falling_shape + falling_object.add_child(falling_collider) + falling_object.gravity_scale = 0.2 + + return falling_object + +func fill_lines(line : Node3D, object : Node3D): + for c in line.get_children(): + c.queue_free() + + for i in range(LINE_OBJECT_NUMBER): + var new_object = object.duplicate() + line.add_child(new_object) + new_object.position = i * LINE_OBJECT_SEPARATION + diff --git a/gui/vending_machine/scripts/vending_machine_3d.gd.uid b/gui/vending_machine/scripts/vending_machine_3d.gd.uid new file mode 100644 index 0000000..9bf7ecb --- /dev/null +++ b/gui/vending_machine/scripts/vending_machine_3d.gd.uid @@ -0,0 +1 @@ +uid://d1prpiulsaqhn diff --git a/gui/vending_machine/vending_machine.tscn b/gui/vending_machine/vending_machine.tscn new file mode 100644 index 0000000..c5aea09 --- /dev/null +++ b/gui/vending_machine/vending_machine.tscn @@ -0,0 +1,399 @@ +[gd_scene format=3 uid="uid://du308iardw46"] + +[ext_resource type="Script" uid="uid://d4jf1hruxqe6f" path="res://gui/vending_machine/scripts/vending_machine.gd" id="1_7iup0"] +[ext_resource type="Texture2D" uid="uid://bi5jo6pf0acjb" path="res://common/icons/carambola.svg" id="1_y06tm"] +[ext_resource type="PackedScene" uid="uid://blva21dapmm68" path="res://gui/vending_machine/vending_machine_3d.tscn" id="2_54ak6"] +[ext_resource type="Script" uid="uid://c6lr0fucklsto" path="res://gui/artefacts/pile/pile.gd" id="2_dvtve"] +[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="3_54ak6"] +[ext_resource type="Script" uid="uid://c7o5p4uk556v6" path="res://gui/artefacts/seed_case/seed_case.gd" id="3_fy3vt"] +[ext_resource type="Theme" uid="uid://bgcmd213j6gk1" path="res://gui/ressources/hud.tres" id="4_se5lc"] +[ext_resource type="Texture2D" uid="uid://bmersnaoira20" path="res://common/icons/building-store.svg" id="4_yho0h"] +[ext_resource type="Texture2D" uid="uid://dcgnamu7sb3ov" path="res://common/icons/bolt.svg" id="5_rrfqi"] +[ext_resource type="PackedScene" uid="uid://dolv2637emdbw" path="res://gui/artefacts/pile/pile.blend" id="6_dhfph"] +[ext_resource type="PackedScene" uid="uid://cclvb8o3vofff" path="res://gui/artefacts/seed_case/seed_case.blend" id="7_lv3q6"] +[ext_resource type="Texture2D" uid="uid://3slhocr5wy3w" path="res://common/icons/hand-stop.svg" id="12_bfufr"] +[ext_resource type="Texture2D" uid="uid://4dwxhvjo0yye" path="res://common/icons/hand-grab.svg" id="13_ub0g7"] + +[sub_resource type="Resource" id="Resource_dhfph"] +script = ExtResource("3_fy3vt") +metadata/_custom_type_script = "uid://c7o5p4uk556v6" + +[sub_resource type="Resource" id="Resource_lv3q6"] +script = ExtResource("2_dvtve") +metadata/_custom_type_script = "uid://c6lr0fucklsto" + +[sub_resource type="ViewportTexture" id="ViewportTexture_54ak6"] +viewport_path = NodePath("CenterContainer/Particles/SubViewport") + +[sub_resource type="Curve" id="Curve_yho0h"] +_limits = [-200.0, 200.0, 0.0, 1.0] +_data = [Vector2(0, -200), 0.0, 560.0, 0, 0, Vector2(0.08235294, 92.384125), 1336.3082, 1336.3082, 0, 0, Vector2(0.34901965, 200), 0.0, 0.0, 0, 0, Vector2(0.854902, -200), 0.0, 0.0, 0, 0] +point_count = 4 + +[sub_resource type="Gradient" id="Gradient_rrfqi"] +offsets = PackedFloat32Array(0, 0.8689956, 0.98253274) +colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) + +[sub_resource type="ViewportTexture" id="ViewportTexture_yho0h"] +viewport_path = NodePath("CenterContainer/VendingMachin/VendingMachineVP") + +[sub_resource type="Environment" id="Environment_y06tm"] +ambient_light_source = 2 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_energy = 2.29 +tonemap_exposure = 0.62 + +[sub_resource type="LabelSettings" id="LabelSettings_rrfqi"] +font = ExtResource("3_54ak6") +font_size = 20 + +[sub_resource type="LabelSettings" id="LabelSettings_se5lc"] +font = ExtResource("3_54ak6") +font_size = 14 + +[sub_resource type="LabelSettings" id="LabelSettings_7iup0"] +font = ExtResource("3_54ak6") +font_size = 40 + +[sub_resource type="Animation" id="Animation_fy3vt"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("CenterContainer/VendingMachin/IndicationLabel:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("CenterContainer/VendingMachin/FetchButton:modulate") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("CenterContainer/VendingMachin/PayButton:modulate") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_41u7u"] +resource_name = "blink" +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("CenterContainer/VendingMachin/IndicationLabel:modulate") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.4666667, 1.0666666), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.5294118), Color(1, 1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("CenterContainer/VendingMachin/FetchButton:modulate") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0, 0.5, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.5294118), Color(1, 1, 1, 1)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("CenterContainer/VendingMachin/PayButton:modulate") +tracks/2/interp = 2 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0, 0.53333336, 1), +"transitions": PackedFloat32Array(1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0.5294118), Color(1, 1, 1, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_dhfph"] +_data = { +&"RESET": SubResource("Animation_fy3vt"), +&"blink": SubResource("Animation_41u7u") +} + +[node name="VendingMachine" type="CanvasLayer" unique_id=287282444] +script = ExtResource("1_7iup0") +artefact_1 = SubResource("Resource_dhfph") +artefact_2 = SubResource("Resource_lv3q6") + +[node name="CenterContainer" type="Control" parent="." unique_id=317195558] +layout_mode = 3 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -288.0 +offset_top = -324.0 +offset_right = 288.0 +offset_bottom = 324.0 +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 3 +size_flags_vertical = 3 + +[node name="Particles" type="TextureRect" parent="CenterContainer" unique_id=378633537] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -450.0 +offset_top = -450.0 +offset_right = 450.0 +offset_bottom = 450.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("ViewportTexture_54ak6") +expand_mode = 1 +stretch_mode = 5 + +[node name="SubViewport" type="SubViewport" parent="CenterContainer/Particles" unique_id=1096007664] +transparent_bg = true +size = Vector2i(900, 900) + +[node name="GPUParticles2D" type="CPUParticles2D" parent="CenterContainer/Particles/SubViewport" unique_id=1560379094] +position = Vector2(500, 500) +amount = 20 +texture = ExtResource("1_y06tm") +lifetime = 1.2 +preprocess = 1.0 +spread = 180.0 +gravity = Vector2(0, 0) +initial_velocity_min = 2.0 +initial_velocity_max = 2.0 +linear_accel_min = 5.0 +linear_accel_max = 5.0 +linear_accel_curve = SubResource("Curve_yho0h") +color_ramp = SubResource("Gradient_rrfqi") + +[node name="VendingMachin" type="TextureRect" parent="CenterContainer" unique_id=2108096957] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -322.25 +offset_top = -322.25 +offset_right = 322.25 +offset_bottom = 322.25 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("ViewportTexture_yho0h") +expand_mode = 2 +stretch_mode = 5 + +[node name="VendingMachineVP" type="SubViewport" parent="CenterContainer/VendingMachin" unique_id=824295205] +transparent_bg = true +size = Vector2i(568, 543) + +[node name="VendingMachine3d" parent="CenterContainer/VendingMachin/VendingMachineVP" unique_id=92614917 instance=ExtResource("2_54ak6")] +unique_name_in_owner = true +object_1_scene = ExtResource("7_lv3q6") +object_2_scene = ExtResource("6_dhfph") +screen_1_hide = true +screen_2_hide = true + +[node name="Camera3D" type="Camera3D" parent="CenterContainer/VendingMachin/VendingMachineVP" unique_id=1303604896] +transform = Transform3D(-1, 0, -8.742278e-08, 0, 1, 0, 8.742278e-08, 0, -1, 0, 0.375, -3) +keep_aspect = 0 +current = true +fov = 58.9 + +[node name="WorldEnvironment" type="WorldEnvironment" parent="CenterContainer/VendingMachin/VendingMachineVP" unique_id=1731409341] +environment = SubResource("Environment_y06tm") + +[node name="MachineNameLabel" type="Label" parent="CenterContainer/VendingMachin" unique_id=1373981633] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -66.0 +offset_top = -245.0 +offset_right = 126.0 +offset_bottom = -189.5 +grow_horizontal = 2 +grow_vertical = 2 +text = "ARTEFACTS_VENDING_MACHINE" +label_settings = SubResource("LabelSettings_rrfqi") +horizontal_alignment = 1 +vertical_alignment = 1 +autowrap_mode = 3 + +[node name="IndicationLabel" type="Label" parent="CenterContainer/VendingMachin" unique_id=1388081478] +unique_name_in_owner = true +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = 169.0 +offset_top = -160.0 +offset_right = 266.0 +offset_bottom = -37.0 +grow_horizontal = 2 +grow_vertical = 2 +text = "CHOOSE_AN_ITEM" +label_settings = SubResource("LabelSettings_se5lc") +horizontal_alignment = 1 +vertical_alignment = 1 +autowrap_mode = 3 + +[node name="SelectButton1" type="Button" parent="CenterContainer/VendingMachin" unique_id=2142322105] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 39.25 +offset_top = 159.25 +offset_right = 176.25 +offset_bottom = 250.25 +theme = ExtResource("4_se5lc") +theme_override_font_sizes/font_size = 14 +text = "SEED_CASE" +flat = true +autowrap_mode = 3 + +[node name="SelectButton2" type="Button" parent="CenterContainer/VendingMachin" unique_id=65989609] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 41.25 +offset_top = 273.0 +offset_right = 179.25 +offset_bottom = 372.25 +theme = ExtResource("4_se5lc") +theme_override_font_sizes/font_size = 14 +text = "PILE" +flat = true +autowrap_mode = 3 + +[node name="SelectButtonBis1" type="Button" parent="CenterContainer/VendingMachin" unique_id=741069555] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 232.25 +offset_top = 161.25 +offset_right = 466.25 +offset_bottom = 254.25 +theme = ExtResource("4_se5lc") +theme_override_font_sizes/font_size = 14 +flat = true +autowrap_mode = 3 + +[node name="SelectButtonBis2" type="Button" parent="CenterContainer/VendingMachin" unique_id=1526377722] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 221.25 +offset_top = 273.25 +offset_right = 465.5 +offset_bottom = 377.25 +theme = ExtResource("4_se5lc") +theme_override_font_sizes/font_size = 14 +flat = true +autowrap_mode = 3 + +[node name="HBoxContainer" type="HBoxContainer" parent="CenterContainer/VendingMachin" unique_id=190465213] +layout_mode = 0 +offset_left = 508.25 +offset_top = 320.25 +offset_right = 570.25 +offset_bottom = 366.25 +theme_override_constants/separation = 0 +alignment = 1 + +[node name="PriceLabel" type="Label" parent="CenterContainer/VendingMachin/HBoxContainer" unique_id=1448579465] +layout_mode = 2 +text = "3" +label_settings = SubResource("LabelSettings_7iup0") +horizontal_alignment = 1 +vertical_alignment = 1 + +[node name="PriceIcon" type="TextureRect" parent="CenterContainer/VendingMachin/HBoxContainer" unique_id=253690587] +layout_mode = 2 +size_flags_horizontal = 3 +texture = ExtResource("5_rrfqi") +expand_mode = 1 +stretch_mode = 5 + +[node name="TextureRect" type="TextureRect" parent="CenterContainer/VendingMachin" unique_id=174895788] +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = 3.0 +offset_top = -298.0 +offset_right = 42.0 +offset_bottom = -259.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("4_yho0h") +expand_mode = 1 +stretch_mode = 5 + +[node name="FetchButton" type="TextureButton" parent="CenterContainer/VendingMachin" unique_id=986015945] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 265.25 +offset_top = 478.25 +offset_right = 459.25 +offset_bottom = 567.25 +texture_normal = ExtResource("12_bfufr") +texture_pressed = ExtResource("13_ub0g7") +texture_hover = ExtResource("12_bfufr") +stretch_mode = 5 + +[node name="PayButton" type="TextureButton" parent="CenterContainer/VendingMachin" unique_id=1470524600] +unique_name_in_owner = true +layout_mode = 0 +offset_left = 491.25 +offset_top = 400.25 +offset_right = 599.25 +offset_bottom = 484.25 +texture_normal = ExtResource("12_bfufr") +texture_pressed = ExtResource("13_ub0g7") +texture_hover = ExtResource("12_bfufr") +stretch_mode = 5 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="." unique_id=1440649675] +libraries/ = SubResource("AnimationLibrary_dhfph") +autoplay = &"blink" + +[connection signal="button_down" from="CenterContainer/VendingMachin/SelectButton1" to="." method="_on_select_button_1_button_down"] +[connection signal="button_down" from="CenterContainer/VendingMachin/SelectButton2" to="." method="_on_select_button_2_button_down"] +[connection signal="button_down" from="CenterContainer/VendingMachin/SelectButtonBis1" to="." method="_on_select_button_bis_1_button_down"] +[connection signal="button_down" from="CenterContainer/VendingMachin/SelectButtonBis2" to="." method="_on_select_button_bis_2_button_down"] +[connection signal="button_down" from="CenterContainer/VendingMachin/FetchButton" to="." method="_on_fetch_button_button_down"] +[connection signal="button_down" from="CenterContainer/VendingMachin/PayButton" to="." method="_on_pay_button_button_down"] diff --git a/gui/vending_machine/vending_machine_3d.tscn b/gui/vending_machine/vending_machine_3d.tscn new file mode 100644 index 0000000..0aac8c1 --- /dev/null +++ b/gui/vending_machine/vending_machine_3d.tscn @@ -0,0 +1,62 @@ +[gd_scene format=3 uid="uid://blva21dapmm68"] + +[ext_resource type="PackedScene" uid="uid://5l3wve81irlc" path="res://gui/vending_machine/assets/3d/vending_machine.blend" id="1_28vvr"] +[ext_resource type="Script" uid="uid://d1prpiulsaqhn" path="res://gui/vending_machine/scripts/vending_machine_3d.gd" id="1_awnyh"] +[ext_resource type="PackedScene" uid="uid://cclvb8o3vofff" path="res://gui/artefacts/seed_case/seed_case.blend" id="2_7ycki"] +[ext_resource type="PackedScene" uid="uid://dolv2637emdbw" path="res://gui/artefacts/pile/pile.blend" id="3_fue4l"] + +[sub_resource type="Environment" id="Environment_28vvr"] +ambient_light_source = 2 +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_energy = 2.29 +tonemap_exposure = 0.62 + +[sub_resource type="Gradient" id="Gradient_7ycki"] +colors = PackedColorArray(0.06318334, 0.059500005, 0.17, 1, 0.06318334, 0.059500005, 0.17, 1) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_vo550"] +gradient = SubResource("Gradient_7ycki") +height = 42 + +[node name="VendingMachine3d" type="Node3D" unique_id=92614917] +script = ExtResource("1_awnyh") +object_1_scene = ExtResource("3_fue4l") +object_2_scene = ExtResource("2_7ycki") +screen_1_hide = false +screen_2_hide = false + +[node name="Model" parent="." unique_id=2067475525 instance=ExtResource("1_28vvr")] + +[node name="Line1" type="Node3D" parent="." unique_id=1631780989] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.30948043, 0.971, 0) + +[node name="Line2" type="Node3D" parent="." unique_id=29729480] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.30941665, 0.74758303, 0) + +[node name="Line3" type="Node3D" parent="." unique_id=532403895] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.30941665, 0.5122718, 0) + +[node name="Line4" type="Node3D" parent="." unique_id=290175423] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.30941665, 0.26622266, 0) + +[node name="FallingObjects" type="Node3D" parent="." unique_id=1744524061] +unique_name_in_owner = true + +[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=1595767490] +environment = SubResource("Environment_28vvr") + +[node name="HideScreen1" type="Sprite3D" parent="." unique_id=1626145809] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.89098024, 0.88590515, -0.55653703) +visible = false +texture = SubResource("GradientTexture2D_vo550") + +[node name="HideScreen2" type="Sprite3D" parent="." unique_id=121839387] +unique_name_in_owner = true +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.89098024, 0.34462702, -0.55653703) +visible = false +texture = SubResource("GradientTexture2D_vo550") diff --git a/project.godot b/project.godot index 50523ad..e4d74a7 100644 --- a/project.godot +++ b/project.godot @@ -16,7 +16,7 @@ compatibility/default_parent_skeleton_in_mesh_instance_3d=true config/name="Seeding The Wasteland" config/description="Seeding planets is a survival, managment and cosy game in which you play a little gardener robot." -config/version="alpha-1.2" +config/version="alpha-1.3" run/main_scene="uid://c5bruelvqbm1k" config/features=PackedStringArray("4.6", "Forward Plus") config/icon="uid://df0y0s666ui4h" diff --git a/stages/3d_scenes/astra_base/scripts/astra_base.gd b/stages/3d_scenes/astra_base/scripts/astra_base.gd index bd809b0..97419b1 100644 --- a/stages/3d_scenes/astra_base/scripts/astra_base.gd +++ b/stages/3d_scenes/astra_base/scripts/astra_base.gd @@ -53,7 +53,7 @@ func _ready(): func story(): AudioManager.play_sfx("Respawn") - if not INTRO_DIALOG in GameInfo.game_data.dialogs_done: + if not INTRO_DIALOG in GameInfo.game_data.dialogs_done and GameInfo.game_data.game_mode == GameData.GameMode.STORY: await get_tree().create_timer(TIME_WITHOUT_PHONE).timeout %Phone.play_audio() await %Phone.clicked @@ -84,7 +84,7 @@ func story(): func finish_scene(): GameInfo.game_data.start_run() - if GameInfo.game_data.tutorial_done: + if GameInfo.game_data.tutorial_done or GameInfo.game_data.game_mode == GameData.GameMode.INFINITE: GameInfo.game_data.ship_in_space = false SceneManager.change_to_scene_id('COCKPIT') else: diff --git a/stages/3d_scenes/cockpit_scene/scripts/cockpit.gd b/stages/3d_scenes/cockpit_scene/scripts/cockpit.gd index 0c2f8f3..7f04178 100644 --- a/stages/3d_scenes/cockpit_scene/scripts/cockpit.gd +++ b/stages/3d_scenes/cockpit_scene/scripts/cockpit.gd @@ -11,6 +11,7 @@ signal land @onready var dashboard : Dashboard = %Dashboard var choosen_run_point : RunPoint = null +var exiting = false # Called when the node enters the scene tree for the first time. func _ready(): @@ -32,14 +33,8 @@ func _ready(): %Exit.clicked.connect(_on_exit_clicked) %Exit.interactable = can_exit() - handle_dialogs() - - var player_has_teleporter : bool = GameInfo.game_data.player_data.inventory.items.find_custom( - func (i : Item): return i is ShipPortal - ) != -1 - - if not player_has_teleporter: - GameInfo.game_data.player_data.inventory.add_item(ShipPortal.new()) + if GameInfo.game_data.game_mode == GameData.GameMode.STORY: + handle_dialogs() func handle_dialogs(): if not POST_TUTORIAL_DIALOG_PATH in GameInfo.game_data.dialogs_done: @@ -94,19 +89,24 @@ func _on_right_screen_activated(): update_dashboard() func _on_exit_clicked(): - AudioManager.play_sfx("Ship_exit") - if (can_exit()): + if (can_exit() and not exiting): + AudioManager.play_sfx("Ship_exit") + exiting = true SceneManager.change_to_scene_id('REGION') func update_dashboard(): var current_region_data = GameInfo.game_data.current_region_data - if current_region_data and not "tutorial" in current_region_data.flags: - dashboard.destination_distance = RunData.RUN_POINT_MAX_LEVEL * 1000 - current_region_data.region_level * 1000 - else : - dashboard.destination_distance = (RunData.RUN_POINT_MAX_LEVEL + 1) * 1000 - dashboard.destination_title = "TO_BOREA_BASE" + if GameInfo.game_data.game_mode == GameData.GameMode.STORY: + if current_region_data and not "tutorial" in current_region_data.flags: + dashboard.destination_distance = RunData.RUN_POINT_MAX_LEVEL * 1000 - current_region_data.region_level * 1000 + else : + dashboard.destination_distance = (RunData.RUN_POINT_MAX_LEVEL + 1) * 1000 + dashboard.destination_title = "TO_BOREA_BASE" + elif GameInfo.game_data.game_mode == GameData.GameMode.INFINITE: + dashboard.destination_distance = 0 if current_region_data == null else current_region_data.region_level * 1000 + dashboard.destination_title = "TRAVELED_DISTANCE" var current_run = GameInfo.game_data.current_run diff --git a/stages/region_selection/region_point/region_point.tscn b/stages/region_selection/region_point/region_point.tscn index 56859f9..054b926 100644 --- a/stages/region_selection/region_point/region_point.tscn +++ b/stages/region_selection/region_point/region_point.tscn @@ -1,36 +1,35 @@ -[gd_scene load_steps=8 format=3 uid="uid://gxbqe5rtqi58"] +[gd_scene format=3 uid="uid://gxbqe5rtqi58"] [ext_resource type="Script" uid="uid://j8cd0qbk4bma" path="res://stages/region_selection/region_point/scripts/region_point.gd" id="1_65ijn"] [ext_resource type="Script" uid="uid://b4eimt3v08jhc" path="res://common/game_data/scripts/run/run_point.gd" id="2_34ylp"] +[ext_resource type="Script" uid="uid://ccb06rayqowp3" path="res://stages/terrain/region/scripts/modifiers/region_modifier.gd" id="2_lr77n"] [ext_resource type="Script" uid="uid://ddk7j5b8p51dk" path="res://stages/terrain/region/scripts/region_parameter.gd" id="3_dm7jk"] [ext_resource type="Texture2D" uid="uid://dqsx56wc73wry" path="res://common/icons/map-pin-check.svg" id="4_ndccb"] -[sub_resource type="Resource" id="Resource_ndccb"] +[sub_resource type="Resource" id="Resource_8kf6p"] script = ExtResource("3_dm7jk") -charges = 10 -objective = 10 -planet_seed = 4074963764 +region_name = "Obaj" +region_seed = 3836569679 [sub_resource type="Resource" id="Resource_txxa3"] script = ExtResource("2_34ylp") level = 1 -planet_parameter = SubResource("Resource_ndccb") -region_name = "Usaf" -position = 61 +region_parameter = SubResource("Resource_8kf6p") +position = 61.0 metadata/_custom_type_script = "uid://b4eimt3v08jhc" [sub_resource type="SphereShape3D" id="SphereShape3D_ys0ma"] radius = 1.0629065 -[node name="RegionPoint" type="Area3D"] +[node name="RegionPoint" type="Area3D" unique_id=1680498278] script = ExtResource("1_65ijn") run_point = SubResource("Resource_txxa3") state = 0 -[node name="CollisionShape3D" type="CollisionShape3D" parent="."] +[node name="CollisionShape3D" type="CollisionShape3D" parent="." unique_id=791907494] shape = SubResource("SphereShape3D_ys0ma") -[node name="Sprite3D" type="Sprite3D" parent="."] +[node name="Sprite3D" type="Sprite3D" parent="." unique_id=567852602] unique_name_in_owner = true modulate = Color(1, 1, 1, 0.5) pixel_size = 0.04 diff --git a/stages/terrain/region/assets/textures/garden_decontamined_background_texture.png b/stages/terrain/region/assets/textures/garden_decontamined_background_texture.png deleted file mode 100644 index 5c663ba..0000000 Binary files a/stages/terrain/region/assets/textures/garden_decontamined_background_texture.png and /dev/null differ diff --git a/stages/terrain/region/assets/textures/garden_decontamined_background_texture_old.png b/stages/terrain/region/assets/textures/garden_decontamined_background_texture_old.png deleted file mode 100644 index d5b828c..0000000 Binary files a/stages/terrain/region/assets/textures/garden_decontamined_background_texture_old.png and /dev/null differ diff --git a/stages/terrain/region/assets/textures/garden_decontamined_background_texture_old.png.import b/stages/terrain/region/assets/textures/garden_decontamined_background_texture_old.png.import deleted file mode 100644 index 88835c6..0000000 --- a/stages/terrain/region/assets/textures/garden_decontamined_background_texture_old.png.import +++ /dev/null @@ -1,40 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://ex35g5nvtsy0" -path="res://.godot/imported/garden_decontamined_background_texture_old.png-951b3e125e8b7083a60c2b7435bce68a.ctex" -metadata={ -"vram_texture": false -} - -[deps] - -source_file="res://stages/terrain/region/assets/textures/garden_decontamined_background_texture_old.png" -dest_files=["res://.godot/imported/garden_decontamined_background_texture_old.png-951b3e125e8b7083a60c2b7435bce68a.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/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture.png b/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture.png index d0dc543..cf55057 100644 Binary files a/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture.png and b/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture.png differ diff --git a/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture_2.png b/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture_2.png deleted file mode 100644 index d3cfebd..0000000 Binary files a/stages/terrain/region/assets/textures/moss_biome/moss_contamination_atlas_texture_2.png and /dev/null differ diff --git a/stages/terrain/region/assets/textures/moss_biome/moss_ground_texture.png b/stages/terrain/region/assets/textures/moss_biome/moss_ground_texture.png index 973512f..26b44a3 100644 Binary files a/stages/terrain/region/assets/textures/moss_biome/moss_ground_texture.png and b/stages/terrain/region/assets/textures/moss_biome/moss_ground_texture.png differ diff --git a/stages/terrain/region/assets/textures/moss_biome/moss_rock_atlas_texture.png b/stages/terrain/region/assets/textures/moss_biome/moss_rock_atlas_texture.png index dfc9b24..b3ac566 100644 Binary files a/stages/terrain/region/assets/textures/moss_biome/moss_rock_atlas_texture.png and b/stages/terrain/region/assets/textures/moss_biome/moss_rock_atlas_texture.png differ diff --git a/stages/terrain/region/assets/textures/moss_biome/moss_talion_atlas_texture.png b/stages/terrain/region/assets/textures/moss_biome/moss_talion_atlas_texture.png index c4ccb63..2cc3fc2 100644 Binary files a/stages/terrain/region/assets/textures/moss_biome/moss_talion_atlas_texture.png and b/stages/terrain/region/assets/textures/moss_biome/moss_talion_atlas_texture.png differ diff --git a/stages/terrain/region/assets/textures/rock_background_texture.png b/stages/terrain/region/assets/textures/rock_background_texture.png deleted file mode 100644 index 449e1df..0000000 Binary files a/stages/terrain/region/assets/textures/rock_background_texture.png and /dev/null differ diff --git a/stages/terrain/region/assets/textures/rock_cristal_texture.png b/stages/terrain/region/assets/textures/rock_cristal_texture.png deleted file mode 100644 index aa42e88..0000000 Binary files a/stages/terrain/region/assets/textures/rock_cristal_texture.png and /dev/null differ diff --git a/stages/terrain/region/assets/textures/rock_cristal_texture.png.import b/stages/terrain/region/assets/textures/rock_cristal_texture.png.import deleted file mode 100644 index 2ff3d0b..0000000 --- a/stages/terrain/region/assets/textures/rock_cristal_texture.png.import +++ /dev/null @@ -1,41 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://02nuoqleo4yu" -path.s3tc="res://.godot/imported/rock_cristal_texture.png-c34612644dbfa24e49296bfe43df46c6.s3tc.ctex" -metadata={ -"imported_formats": ["s3tc_bptc"], -"vram_texture": true -} - -[deps] - -source_file="res://stages/terrain/region/assets/textures/rock_cristal_texture.png" -dest_files=["res://.godot/imported/rock_cristal_texture.png-c34612644dbfa24e49296bfe43df46c6.s3tc.ctex"] - -[params] - -compress/mode=2 -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=true -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=0 diff --git a/stages/terrain/region/assets/textures/round_red_tiles.png b/stages/terrain/region/assets/textures/round_red_tiles.png deleted file mode 100644 index 8986d1a..0000000 Binary files a/stages/terrain/region/assets/textures/round_red_tiles.png and /dev/null differ diff --git a/stages/terrain/region/region.tscn b/stages/terrain/region/region.tscn index 01370be..ca63627 100644 --- a/stages/terrain/region/region.tscn +++ b/stages/terrain/region/region.tscn @@ -11,6 +11,7 @@ [ext_resource type="PackedScene" uid="uid://d324mlmgls4fs" path="res://entities/interactables/truck/recharge/truck_recharge.tscn" id="7_6d8m3"] [ext_resource type="PackedScene" uid="uid://b8m537op75gib" path="res://entities/interactables/door/door.tscn" id="8_2f6js"] [ext_resource type="PackedScene" uid="uid://dj7gp3crtg2yt" path="res://entities/camera/camera.tscn" id="8_fwgig"] +[ext_resource type="PackedScene" uid="uid://fnv0qhkh40mv" path="res://gui/game/announce/announce.tscn" id="8_mlppq"] [ext_resource type="Texture2D" uid="uid://rdrhi3r11ey6" path="res://common/icons/square-rounded.svg" id="10_ktnx3"] [ext_resource type="Texture2D" uid="uid://b752eqq4cm7ve" path="res://common/icons/building-factory-2.svg" id="11_fwgig"] [ext_resource type="Texture2D" uid="uid://dg00xnpp6ixls" path="res://common/icons/server-2.svg" id="12_mlppq"] @@ -115,7 +116,6 @@ camera = NodePath("../../Camera") [node name="PassDay" parent="." unique_id=1144772570 instance=ExtResource("3_ktnx3")] unique_name_in_owner = true -visible = false [node name="RegionGui" type="CanvasLayer" parent="." unique_id=2024485651] layer = 2 @@ -128,6 +128,9 @@ game_gui = NodePath("../../GameGui") [node name="GameGui" parent="." unique_id=1970837239 instance=ExtResource("4_qdnee")] +[node name="Announce" parent="." unique_id=1659074958 instance=ExtResource("8_mlppq")] +layer = 3 + [node name="Entities" type="Node2D" parent="." unique_id=2132324579] y_sort_enabled = true diff --git a/stages/terrain/region/resources/materials/default_chunk_material.tres b/stages/terrain/region/resources/materials/default_chunk_material.tres index 750bb86..67a0faf 100644 --- a/stages/terrain/region/resources/materials/default_chunk_material.tres +++ b/stages/terrain/region/resources/materials/default_chunk_material.tres @@ -1,7 +1,6 @@ -[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://bq3dmwkej5gmx"] +[gd_resource type="ShaderMaterial" format=3 uid="uid://bq3dmwkej5gmx"] [ext_resource type="Shader" uid="uid://bglep64ppn74p" path="res://common/vfx/materials/shaders/textures_data_filter.gdshader" id="1_kujx0"] -[ext_resource type="Texture2D" uid="uid://beqx4rmgthkql" path="res://stages/terrain/region/assets/textures/rock_background_texture.png" id="2_6cs2h"] [ext_resource type="Texture2D" uid="uid://bnrjnvceprxfn" path="res://stages/terrain/region/assets/textures/garden_background_texture.png" id="2_ydx6d"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_kujx0"] @@ -13,11 +12,14 @@ width = 20 height = 20 noise = SubResource("FastNoiseLite_kujx0") +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_cmstg"] +load_path = "res://.godot/imported/rock_background_texture.png-79a8569ff49f7d85f8b64d55ac1ce62d.ctex" + [resource] shader = ExtResource("1_kujx0") shader_parameter/data_texture = SubResource("NoiseTexture2D_ydx6d") shader_parameter/data_texture_size = Vector2(200, 200) shader_parameter/data_texture_threshold = 0.5 -shader_parameter/texture_0 = ExtResource("2_6cs2h") +shader_parameter/texture_0 = SubResource("CompressedTexture2D_cmstg") shader_parameter/texture_1 = ExtResource("2_ydx6d") shader_parameter/texture_scale = 5.0 diff --git a/stages/terrain/region/resources/materials/ground_contamination.tres b/stages/terrain/region/resources/materials/ground_contamination.tres index 3678f50..ea77bcf 100644 --- a/stages/terrain/region/resources/materials/ground_contamination.tres +++ b/stages/terrain/region/resources/materials/ground_contamination.tres @@ -1,8 +1,7 @@ -[gd_resource type="ShaderMaterial" load_steps=6 format=3 uid="uid://ljvaj1vab53a"] +[gd_resource type="ShaderMaterial" format=3 uid="uid://ljvaj1vab53a"] [ext_resource type="Shader" uid="uid://bglep64ppn74p" path="res://common/vfx/materials/shaders/textures_data_filter.gdshader" id="1_ye8oh"] [ext_resource type="Texture2D" uid="uid://bnrjnvceprxfn" path="res://stages/terrain/region/assets/textures/garden_background_texture.png" id="2_6hswu"] -[ext_resource type="Texture2D" uid="uid://ex35g5nvtsy0" path="res://stages/terrain/region/assets/textures/garden_decontamined_background_texture_old.png" id="2_r7pv0"] [sub_resource type="FastNoiseLite" id="FastNoiseLite_6hswu"] frequency = 0.0109 @@ -10,11 +9,14 @@ frequency = 0.0109 [sub_resource type="NoiseTexture2D" id="NoiseTexture2D_j3avn"] noise = SubResource("FastNoiseLite_6hswu") +[sub_resource type="CompressedTexture2D" id="CompressedTexture2D_nntr3"] +load_path = "res://.godot/imported/garden_decontamined_background_texture_old.png-951b3e125e8b7083a60c2b7435bce68a.ctex" + [resource] shader = ExtResource("1_ye8oh") shader_parameter/data_texture = SubResource("NoiseTexture2D_j3avn") shader_parameter/data_texture_size = Vector2(1000, 1000) shader_parameter/data_texture_threshold = 0.5 shader_parameter/texture_0 = ExtResource("2_6hswu") -shader_parameter/texture_1 = ExtResource("2_r7pv0") +shader_parameter/texture_1 = SubResource("CompressedTexture2D_nntr3") shader_parameter/texture_scale = 5.0 diff --git a/stages/terrain/region/resources/materials/moss_biome/ground_planet_tilemap.tres b/stages/terrain/region/resources/materials/moss_biome/ground_planet_tilemap.tres index 37729c4..4c92780 100644 --- a/stages/terrain/region/resources/materials/moss_biome/ground_planet_tilemap.tres +++ b/stages/terrain/region/resources/materials/moss_biome/ground_planet_tilemap.tres @@ -1,4 +1,4 @@ -[gd_resource type="ShaderMaterial" load_steps=3 format=3 uid="uid://dpxu8yeee4qi1"] +[gd_resource type="ShaderMaterial" format=3 uid="uid://dpxu8yeee4qi1"] [ext_resource type="Shader" uid="uid://q5isn3rwrir8" path="res://common/vfx/materials/shaders/texture_color_filter.gdshader" id="1_k4e5t"] [ext_resource type="Texture2D" uid="uid://bnrjnvceprxfn" path="res://stages/terrain/region/assets/textures/garden_background_texture.png" id="2_k4e5t"] diff --git a/stages/terrain/region/resources/moss_biome.tres b/stages/terrain/region/resources/moss_biome.tres index 30d0d17..ef46795 100644 --- a/stages/terrain/region/resources/moss_biome.tres +++ b/stages/terrain/region/resources/moss_biome.tres @@ -178,13 +178,11 @@ texture_region_size = Vector2i(64, 64) 9:1/0 = 0 9:1/0/terrain_set = 0 9:1/0/terrain = 1 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32) +9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -16, -16, -32, 32, -32, 32, 16, 16, 32, -32, 32) 9:1/0/terrains_peering_bit/right_side = 1 -9:1/0/terrains_peering_bit/bottom_right_corner = 1 9:1/0/terrains_peering_bit/bottom_side = 1 9:1/0/terrains_peering_bit/bottom_left_corner = 1 9:1/0/terrains_peering_bit/left_side = 1 -9:1/0/terrains_peering_bit/top_left_corner = 1 9:1/0/terrains_peering_bit/top_side = 1 9:1/0/terrains_peering_bit/top_right_corner = 1 11:1/0 = 0 @@ -284,15 +282,13 @@ texture_region_size = Vector2i(64, 64) 10:2/0 = 0 10:2/0/terrain_set = 0 10:2/0/terrain = 1 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32) +10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 16, -32, 32, -16, 32, 32, -16, 32, -32, 16) 10:2/0/terrains_peering_bit/right_side = 1 10:2/0/terrains_peering_bit/bottom_right_corner = 1 10:2/0/terrains_peering_bit/bottom_side = 1 -10:2/0/terrains_peering_bit/bottom_left_corner = 1 10:2/0/terrains_peering_bit/left_side = 1 10:2/0/terrains_peering_bit/top_left_corner = 1 10:2/0/terrains_peering_bit/top_side = 1 -10:2/0/terrains_peering_bit/top_right_corner = 1 11:2/0 = 0 11:2/0/terrain_set = 0 11:2/0/terrain = 1 @@ -675,13 +671,11 @@ texture_region_size = Vector2i(64, 64) 9:1/0 = 0 9:1/0/terrain_set = 0 9:1/0/terrain = 2 -9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32) +9:1/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -16, -16, -32, 32, -32, 32, 16, 16, 32, -32, 32) 9:1/0/terrains_peering_bit/right_side = 2 -9:1/0/terrains_peering_bit/bottom_right_corner = 2 9:1/0/terrains_peering_bit/bottom_side = 2 9:1/0/terrains_peering_bit/bottom_left_corner = 2 9:1/0/terrains_peering_bit/left_side = 2 -9:1/0/terrains_peering_bit/top_left_corner = 2 9:1/0/terrains_peering_bit/top_side = 2 9:1/0/terrains_peering_bit/top_right_corner = 2 9:2/0 = 0 @@ -746,15 +740,13 @@ texture_region_size = Vector2i(64, 64) 10:2/0 = 0 10:2/0/terrain_set = 0 10:2/0/terrain = 2 -10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 32, -32, 32, 32, -32, 32) +10:2/0/physics_layer_0/polygon_0/points = PackedVector2Array(-32, -32, 16, -32, 32, -16, 32, 32, -16, 32, -32, 16) 10:2/0/terrains_peering_bit/right_side = 2 10:2/0/terrains_peering_bit/bottom_right_corner = 2 10:2/0/terrains_peering_bit/bottom_side = 2 -10:2/0/terrains_peering_bit/bottom_left_corner = 2 10:2/0/terrains_peering_bit/left_side = 2 10:2/0/terrains_peering_bit/top_left_corner = 2 10:2/0/terrains_peering_bit/top_side = 2 -10:2/0/terrains_peering_bit/top_right_corner = 2 10:3/0 = 0 10:3/0/terrain_set = 0 10:3/0/terrain = 2 @@ -952,11 +944,9 @@ texture_region_size = Vector2i(64, 64) 9:1/0/terrain_set = 0 9:1/0/terrain = 0 9:1/0/terrains_peering_bit/right_side = 0 -9:1/0/terrains_peering_bit/bottom_right_corner = 0 9:1/0/terrains_peering_bit/bottom_side = 0 9:1/0/terrains_peering_bit/bottom_left_corner = 0 9:1/0/terrains_peering_bit/left_side = 0 -9:1/0/terrains_peering_bit/top_left_corner = 0 9:1/0/terrains_peering_bit/top_side = 0 9:1/0/terrains_peering_bit/top_right_corner = 0 10:1/0 = 0 @@ -1059,11 +1049,9 @@ texture_region_size = Vector2i(64, 64) 10:2/0/terrains_peering_bit/right_side = 0 10:2/0/terrains_peering_bit/bottom_right_corner = 0 10:2/0/terrains_peering_bit/bottom_side = 0 -10:2/0/terrains_peering_bit/bottom_left_corner = 0 10:2/0/terrains_peering_bit/left_side = 0 10:2/0/terrains_peering_bit/top_left_corner = 0 10:2/0/terrains_peering_bit/top_side = 0 -10:2/0/terrains_peering_bit/top_right_corner = 0 11:2/0 = 0 11:2/0/terrain_set = 0 11:2/0/terrain = 0 diff --git a/stages/terrain/region/scripts/region.gd b/stages/terrain/region/scripts/region.gd index 6ecdaac..c52df7b 100644 --- a/stages/terrain/region/scripts/region.gd +++ b/stages/terrain/region/scripts/region.gd @@ -84,6 +84,12 @@ func _ready(): spawn_object_random_move(%BoreaDoor) spawn_object_random_move(%ShipGarageDoor) + if not "tutorial" in data.flags: + GameInfo.game_data.player_data.inventory.add_item(Detector.new()) + GameInfo.game_data.player_data.inventory.add_item(Pickaxe.new()) + GameInfo.game_data.player_data.inventory.add_item(Fork.new()) + GameInfo.game_data.player_data.inventory.add_item(ShipPortal.new()) + func _process(_d): if player: generate_near_chunks(player) diff --git a/stages/title_screen/scripts/title_screen.gd b/stages/title_screen/scripts/title_screen.gd index d0f5438..64493bc 100644 --- a/stages/title_screen/scripts/title_screen.gd +++ b/stages/title_screen/scripts/title_screen.gd @@ -11,43 +11,52 @@ var prev_mouse_pos : Vector2 var next_mouse_pos : Vector2 func _ready(): - %Version.text = ProjectSettings.get_setting("application/config/version") - %Start.text = tr("CONTINUE") if GameInfo.game_loaded else tr("START") - %Restart.visible = GameInfo.game_loaded + %Version.text = ProjectSettings.get_setting("application/config/version") + %Start.text = tr("CONTINUE") if GameInfo.game_loaded else tr("START") + %Restart.visible = GameInfo.game_loaded + %ModeChoose.hide() func _on_start_pressed(): - if GameInfo.game_data and GameInfo.game_data.last_game_scene: - SceneManager.change_to_scene(GameInfo.game_data.last_game_scene) - else: - SceneManager.change_to_scene_id("INTRO") + if GameInfo.game_data and GameInfo.game_data.last_game_scene: + SceneManager.change_to_scene(GameInfo.game_data.last_game_scene) + else: + %ModeChoose.show() func _process(delta): - next_mouse_pos = get_viewport().get_mouse_position() - if Input.is_action_just_pressed("action"): - rotating = true - prev_mouse_pos = get_viewport().get_mouse_position() - if Input.is_action_just_released("action"): - rotating = false - planet_acceleration = Vector2( - float(next_mouse_pos.x - prev_mouse_pos.x), - float(next_mouse_pos.y - prev_mouse_pos.y) - ) - - var planet_rotation = planet_acceleration + next_mouse_pos = get_viewport().get_mouse_position() + if Input.is_action_just_pressed("action"): + rotating = true + prev_mouse_pos = get_viewport().get_mouse_position() + if Input.is_action_just_released("action"): + rotating = false + planet_acceleration = Vector2( + float(next_mouse_pos.x - prev_mouse_pos.x), + float(next_mouse_pos.y - prev_mouse_pos.y) + ) + + var planet_rotation = planet_acceleration - if rotating: - planet_rotation = Vector2( - float(next_mouse_pos.x - prev_mouse_pos.x), - float(next_mouse_pos.y - prev_mouse_pos.y) - ) - prev_mouse_pos = next_mouse_pos - else : - planet_acceleration = planet_acceleration.lerp(DEFAULT_PLANET_ACCELERATION, 0.1) + if rotating: + planet_rotation = Vector2( + float(next_mouse_pos.x - prev_mouse_pos.x), + float(next_mouse_pos.y - prev_mouse_pos.y) + ) + prev_mouse_pos = next_mouse_pos + else : + planet_acceleration = planet_acceleration.lerp(DEFAULT_PLANET_ACCELERATION, 0.1) - %Planet3d.rotate(Vector3.UP, planet_rotation.x * delta) - %Planet3d.rotate(Vector3.RIGHT, planet_rotation.y * delta) + %Planet3d.rotate(Vector3.UP, planet_rotation.x * delta) + %Planet3d.rotate(Vector3.RIGHT, planet_rotation.y * delta) func _on_restart_button_down(): - GameInfo.restart_game_data() - _on_start_pressed() + GameInfo.restart_game_data() + %ModeChoose.show() + + +func _on_story_mode_start_button_down(): + SceneManager.change_to_scene_id("INTRO") + +func _on_infinite_mode_start_button_down(): + GameInfo.game_data.game_mode = GameData.GameMode.INFINITE + SceneManager.change_to_scene_id("COCKPIT") diff --git a/stages/title_screen/title_screen.tscn b/stages/title_screen/title_screen.tscn index 6343c18..aece542 100644 --- a/stages/title_screen/title_screen.tscn +++ b/stages/title_screen/title_screen.tscn @@ -9,11 +9,21 @@ [ext_resource type="PackedScene" uid="uid://c8flevrkelpvy" path="res://gui/credits/socials/instagram.tscn" id="6_7a1qq"] [ext_resource type="PackedScene" uid="uid://bc3byq8e45ejj" path="res://gui/credits/socials/steam.tscn" id="7_nmsah"] [ext_resource type="Shader" uid="uid://bv2rghn44mrrf" path="res://stages/title_screen/resources/shaders/stars.gdshader" id="7_y6tw6"] +[ext_resource type="Shader" uid="uid://cuni3ggtw2uuy" path="res://common/vfx/materials/shaders/blur.gdshader" id="8_pjo5j"] +[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="9_5mxqx"] +[ext_resource type="Theme" uid="uid://5au2k3vf2po3" path="res://gui/ressources/menu.tres" id="10_tsp1v"] +[ext_resource type="Texture2D" uid="uid://b75k12a4wc5t4" path="res://common/icons/book-2.svg" id="11_3aitq"] +[ext_resource type="Texture2D" uid="uid://dbv5hm7lyi1f6" path="res://common/icons/infinity.svg" id="12_igvpv"] [sub_resource type="ViewportTexture" id="ViewportTexture_6yuhi"] viewport_path = NodePath("SubViewport") -[sub_resource type="FastNoiseLite" id="FastNoiseLite_yctb5"] +[sub_resource type="ShaderMaterial" id="ShaderMaterial_lwj2x"] +shader = ExtResource("8_pjo5j") +shader_parameter/strength = 5.00000023424012 +shader_parameter/mix_percentage = 0.3 + +[sub_resource type="FastNoiseLite" id="FastNoiseLite_rf16a"] frequency = 1.0 [sub_resource type="ShaderMaterial" id="ShaderMaterial_7a1qq"] @@ -130,7 +140,6 @@ size_flags_horizontal = 3 size_flags_vertical = 4 [node name="Socials" type="VBoxContainer" parent="MarginContainer" unique_id=1306915726] -visible = false layout_mode = 2 size_flags_horizontal = 8 size_flags_vertical = 8 @@ -140,14 +149,66 @@ layout_mode = 2 size_flags_horizontal = 8 [node name="SteamButton" parent="MarginContainer/Socials" unique_id=1181450581 instance=ExtResource("7_nmsah")] +visible = false layout_mode = 2 +[node name="ModeChoose" type="Control" parent="." unique_id=1527342716] +unique_name_in_owner = true +z_index = 2 +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 + +[node name="ColorRect" type="ColorRect" parent="ModeChoose" unique_id=301172574] +material = SubResource("ShaderMaterial_lwj2x") +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +color = Color(0.0352941, 0.0196078, 0.12549, 0.705882) + +[node name="VBoxContainer" type="VBoxContainer" parent="ModeChoose" unique_id=2135671035] +layout_mode = 1 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +alignment = 1 + +[node name="Label" type="Label" parent="ModeChoose/VBoxContainer" unique_id=513644546] +layout_mode = 2 +text = "CHOOSE_GAME_MODE" +label_settings = ExtResource("9_5mxqx") +horizontal_alignment = 1 + +[node name="StoryModeStart" type="Button" parent="ModeChoose/VBoxContainer" unique_id=1236564484] +layout_mode = 2 +size_flags_horizontal = 4 +theme = ExtResource("10_tsp1v") +text = "STORY_MODE" +icon = ExtResource("11_3aitq") +flat = true + +[node name="InfiniteModeStart" type="Button" parent="ModeChoose/VBoxContainer" unique_id=516318256] +layout_mode = 2 +size_flags_horizontal = 4 +theme = ExtResource("10_tsp1v") +text = "INFINITE_MODE" +icon = ExtResource("12_igvpv") +flat = true + [node name="SubViewport" type="SubViewport" parent="." unique_id=1703203942] size = Vector2i(1980, 1080) [node name="Planet3d" parent="SubViewport" unique_id=926789923 instance=ExtResource("5_7a1qq")] unique_name_in_owner = true -noise = SubResource("FastNoiseLite_yctb5") +noise = SubResource("FastNoiseLite_rf16a") [node name="Camera3D" type="Camera3D" parent="SubViewport" unique_id=806252928] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -14.369979, 0, 64.323425) @@ -168,3 +229,5 @@ shadow_blur = 3.055 [connection signal="pressed" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Start" to="." method="_on_start_pressed"] [connection signal="button_down" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Restart" to="." method="_on_restart_button_down"] +[connection signal="button_down" from="ModeChoose/VBoxContainer/StoryModeStart" to="." method="_on_story_mode_start_button_down"] +[connection signal="button_down" from="ModeChoose/VBoxContainer/InfiniteModeStart" to="." method="_on_infinite_mode_start_button_down"] diff --git a/translation/dialogs/dialogic_demeter_astra_failed_translation.csv b/translation/dialogs/dialogic_demeter_astra_failed_translation.csv index aebd5c8..f5bd062 100644 --- a/translation/dialogs/dialogic_demeter_astra_failed_translation.csv +++ b/translation/dialogs/dialogic_demeter_astra_failed_translation.csv @@ -15,7 +15,7 @@ Choice/19/disabled_text,, Choice/1a/text,Can I have some explanations on how all of this works again ?,Vous pouvez me réexpliquer comment remplir mes objectifs ? Choice/1a/disabled_text,, Text/9c/text,"When you start a region,[pause=0.2] search for the [b]Recharge Station[/b], there is always one near.","Quand tu arrives quelque part,[pause=0.2] cherche la [b]Station de Recharge[/b], il y en a toujours une pas très loin." -Text/9d/text,"Then,[pause=0.3] you'll have to find seeds by smashing some [b]Talion Veins[/b] in the stones with your shovel.","Puis,[pause=0.3] tu dois récupérer des graines en brisant des [b]Veines de Talion[/b] dans la pierre avec ta pelle." +Text/9d/text,"Then,[pause=0.3] you'll have to find seeds by smashing some [b]Talion Veins[/b] in the stones with your pickaxe.","Puis,[pause=0.3] tu dois récupérer des graines en brisant des [b]Veines de Talion[/b] dans la pierre avec ta pioche." Text/9e/text,"You can then plant seeds in the yellow moss you'll find on the ground, it's the only [b]Fertile Zones[/b].","Tu pourras planter ces graines dans la mousse jaune que tu trouvera par terre, ce sont les seules [b]Zones Fertiles[/b]." Text/9f/text,"When you are out of [b]Energy[/b], you can recharge on the [b]Recharge Station[/b], time will pass and plants will grow.","Tu pourras planter ces graines dans la mousse jaune que tu trouveras par terre, ce sont les seules [b]Zones Fertiles[/b]." Text/a0/text,"Each seed is different by their [b]Mutations[/b], and you can get same or better seed from a plant by destroying it when mature, or waiting the end of their lifetime.","Chaque graine est unique par ses [b]Mutations[/b], et tu pourras récupérer de meilleure graines en détruisant une plante mature, ou en attendant qu'elle meurt." diff --git a/translation/dialogs/dialogic_demeter_intro_translation.csv b/translation/dialogs/dialogic_demeter_intro_translation.csv index 7903cbb..816d5fb 100644 --- a/translation/dialogs/dialogic_demeter_intro_translation.csv +++ b/translation/dialogs/dialogic_demeter_intro_translation.csv @@ -28,7 +28,7 @@ Text/36/text,"But first things first,[pause=0.3] you have to learn how everythin Text/37/text,[b]Just remember the following[/b],[b]Ecoute bien[/b] Label/38/display_name,, Text/a2/text,"When you emerge from this building,[pause=0.2] search for the [b]Recharge Station[/b], I think there is one near the entrance.","Quand tu sortiras d'ici,[pause=0.2] cherche la [b]Station de Recharge[/b], il devrait y en avoir une pas très loin de la sortie." -Text/a3/text,"Then,[pause=0.3] you'll have to find seeds by smashing some [b]Talion Veins[/b] in the stones with your shovel.","Puis,[pause=0.3] tu devras récupérer des graines en brisant des [b]Veines de Talion[/b] dans la pierre avec ta pelle." +Text/a3/text,"Then,[pause=0.3] you'll have to find seeds by smashing some [b]Talion Veins[/b] in the stones with your pickaxe.","Puis,[pause=0.3] tu devras récupérer des graines en brisant des [b]Veines de Talion[/b] dans la pierre avec ta pioche." Text/a4/text,"You can then plant seeds in the yellow moss you'll find on the ground, it's the only [b]Fertile Zones[/b].","Tu pourras planter ces graines dans la mousse jaune que tu trouvera par terre, ce sont les seules [b]Zones Fertiles[/b]." Text/a5/text,"When you are out of [b]Energy[/b], you can recharge on the [b]Recharge Station[/b], time will pass and plants will grow.","Tu pourras planter ces graines dans la mousse jaune que tu trouvera par terre, ce sont les seules [b]Zones Fertiles[/b]." Text/a6/text,"Each seed is different by their [b]Mutations[/b], and you can get same or better seed from a plant by destroying it when mature, or waiting the end of their lifetime.","Chaque graine est unique par ses [b]Mutations[/b], et tu pourras récupérer de meilleure graines en détruisant une plante mature, ou en attendant qu'elle meurt." diff --git a/translation/game/gui.csv b/translation/game/gui.csv index 0036fa3..cdd3671 100644 --- a/translation/game/gui.csv +++ b/translation/game/gui.csv @@ -8,8 +8,8 @@ LIFETIME,Lifetime (in days),Durée de vie (en jour) SEEDS,Seeds,Graines TERRAINS,Terrains,Terrains FERTILE_LAND_TEXT,[b]Fertile Land[/b] Seeds can only be planted on this zone,[b]Terre fertile[/b] Des graines peuvent être plantées dans cette zone -ROCK_TEXT,[b]Rock[/b] Can be dug with a shovel,[b]Roche[/b] Peut être creusée avec une pelle -TALION_VEIN_TEXT,"[b]Talion Vein[/b] Can be dug with a shovel, contains random seeds","[b]Veine de Talion[/b] Peut être creusée avec une pelle, contient des graines aléatoire" +ROCK_TEXT,[b]Rock[/b] Can be dug with a Pickaxe,[b]Roche[/b] Peut être creusée avec une pioche +TALION_VEIN_TEXT,"[b]Talion Vein[/b] Can be dug with a pickaxe, contains random seeds","[b]Veine de Talion[/b] Peut être creusée avec une pickaxe, contient des graines aléatoire" OK,Ok,Ok GARDEN,Garden,Jardin COMMA,", ","," @@ -19,6 +19,9 @@ CONTROLS,Controls,Contrôles RESUME_GAME,Resume,Reprendre RESTART,Restart,Recommencer QUIT,Quit,Quitter +CHOOSE_GAME_MODE,Choose game mode,Choisissez le mode de jeu +STORY_MODE,Story Mode,Mode Histoire +INFINITE_MODE,Infinite Mode,Mode Infini SEED,Seed,Graine TAKE,Take,Prendre PACKAGE,Crate,Caisse de matériel @@ -118,10 +121,10 @@ DROP_SEED_WITH_KEY,"Drop current item with Q","Lâche l'item sélectionné avec USE_YOUR_DETECTOR_TO_FIND_THE_BATTERY,Use your [b]Detector[/b] to find the [b]Recharge station[/b],Utilise ton [b]Détecteur[/b] pour trouver la [b]Station de recharge[/b] RECHARGE_IN_THE_RECHARGE_STATION,Recharge on the [b]Recharge station[/b] to pass the day,Se recharger sur la [b]Station de recharge[/b] pour passer la journée TAKE_A_SEED_BY_CLICKING_ON_IT,Take a [b]Seed[/b] by clicking on it,Prend une [b]Graine[/b] en cliquant dessus -DIG_A_TALION_VEIN_WITH_SHOVEL,Dig a [b]Talion Vein[/b] with the [b]Shovel[/b],Creuser un [b]Filon de Talion[/b] avec la [b]Pelle[/b] +DIG_A_TALION_VEIN_WITH_SHOVEL,Dig a [b]Talion Vein[/b] with the [b]Pickaxe[/b],Creuser un [b]Filon de Talion[/b] avec la [b]Pioche[/b] PLANT_SEED_IN_FERTILE_ZONE,Plant a [b]Seed[/b] in the [b]Fertile Zone[/b],Planter une [b]Graine[/b] dans la [b]Zone Fertile[/b] GAIN_FIRST_PLANT_POINT,Earn your first [b]Plant Point[/b] while waiting for a plant to [b]Mature[/b] (recharging will pass days),Gagnez votre premier [b]Point de Plante[/b] en attendant qu'une plante soit [b]Mature[/b] (se recharger fera passer les jours) -HARVEST_A_MATURE_PLANT,Harvest a [b]Mature Plant[/b] using your [b]Shovel[/b],Récoltez une [b]Plante Mature[/b] en utilisant votre [b]Pelle[/b] +HARVEST_A_MATURE_PLANT,Harvest a [b]Mature Plant[/b] using your [b]Fork[/b],Récoltez une [b]Plante Mature[/b] en utilisant votre [b]Fourche[/b] %d_PLANT_POINT,%d Plant Point,%d Point de plante %d_PLANT_POINTS,%d Plant Points,%d Points de plante SCORE_%d,Score %d,Score %d @@ -216,6 +219,7 @@ MYSTERIOUS_DOOR_TEXT,"This door has a space ship logo on it... What could it be ASTRA_BASE,Astra Base,Base Astra BOREA_BASE,Borea Base,Base Boréa TO_BOREA_BASE,To Borea Base,Jusqu'à la Base Boréa +TRAVELED_DISTANCE,Traveled Distance,Distance parcourue 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 @@ -227,4 +231,13 @@ 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] PASS_THE_MYSTERIOUS_DOOR,Go through the mysterious door,Franchissez la porte mystérieuse NEXT_STOP,Next Stop,Prochain arrêt -ORBIT,Orbit,Orbite \ No newline at end of file +ORBIT,Orbit,Orbite +RECHARGE_NUMBER,Recharge Number,Nombre de recharge +ORCHID_ENERGY,Orchid's energy,Énergie d'Orchid +NEW_TOOL,New tool,Nouvel Outil +PILE,Pile,Pile, +SEED_CASE,Seed Case,Emplacement de graine +ARTEFACTS_VENDING_MACHINE,Artefacts Vending Machine,Distributeur d'Artefacts +CHOOSE_AN_ITEM,Choose an item,Choisissez un objet +PAY_THE_PRICE,Pay the price,Payez le prix +GET_YOUR_ITEM,Get your item,Récupérez votre objet \ No newline at end of file