2 Commits
73 changed files with 525 additions and 68 deletions
+4 -1
View File
@@ -41,13 +41,15 @@ func _init(
@export var dead_orchid_rotation : Vector3 @export var dead_orchid_rotation : Vector3
@export var item_announced = [] @export var item_announced = []
@export var max_energy_announced = PlayerData.DEFAULT_MAX_ENERGY
@export var max_inventory_announced = PlayerData.DEFAULT_INVENTORY_SIZE
@export var dialogs_done : Array[String] = [] #Chemin des dialogues terminés @export var dialogs_done : Array[String] = [] #Chemin des dialogues terminés
@export var tutorials_done : Array[String] = [] @export var tutorials_done : Array[String] = []
func start_run() -> RunData: func start_run() -> RunData:
player_data.clear_inventory() player_data.clear_inventory()
player_data.update_with_artefacts([])
current_run = RunData.new() current_run = RunData.new()
current_run.story_step = progression_data.get_story_step().duplicate_deep() current_run.story_step = progression_data.get_story_step().duplicate_deep()
current_run.generate_next_run_points() current_run.generate_next_run_points()
@@ -55,6 +57,7 @@ func start_run() -> RunData:
func(rp : RunPoint): func(rp : RunPoint):
start_region(rp.region_parameter) start_region(rp.region_parameter)
) )
player_data.update_with_run_data(current_run)
ship_in_space = false ship_in_space = false
return current_run return current_run
+3 -3
View File
@@ -63,9 +63,9 @@ func get_all_artifacts() -> Array[Artefact]:
func get_all_story_steps() -> Array[StoryStep]: func get_all_story_steps() -> Array[StoryStep]:
return [ return [
# TutorialStoryStep.new(), TutorialStoryStep.new(),
# StartStoryStep.new(), StartStoryStep.new(),
# MercuryStoryStep.new(), MercuryStoryStep.new(),
BoreaStoryStep.new(), BoreaStoryStep.new(),
AquaStoryStep.new(), AquaStoryStep.new(),
SubterraStoryStep.new(), SubterraStoryStep.new(),
+1 -1
View File
@@ -145,6 +145,6 @@ func generate_challenge_modifiers() -> Array[RegionModifier]:
func add_artefacts(a: Artefact): func add_artefacts(a: Artefact):
artefacts.append(a) artefacts.append(a)
GameInfo.game_data.player_data.update_with_artefacts(artefacts) GameInfo.game_data.player_data.update_with_run_data(self)
#endregion #endregion
+7 -1
View File
@@ -28,8 +28,14 @@ func is_run_finished(level : int) -> bool:
func is_region_sequence_infinite() -> bool: func is_region_sequence_infinite() -> bool:
return false return false
func get_player_max_energy() -> int:
return PlayerData.DEFAULT_MAX_ENERGY
func get_player_max_inventory() -> int:
return PlayerData.DEFAULT_INVENTORY_SIZE
func get_region_sequence_length() -> int: func get_region_sequence_length() -> int:
return 2 #TO CHANGE TO 7 return 3 #TOCHANGE TO 7
func get_first_vending_machine_occurence(_level : int) -> int: func get_first_vending_machine_occurence(_level : int) -> int:
return 2 return 2
@@ -26,7 +26,7 @@ func get_destination_scene() -> Scene:
func get_ship_dialog_path(level : int, ship_in_space := true) -> String: func get_ship_dialog_path(level : int, ship_in_space := true) -> String:
if level == 0: if level == 0:
return MERCURY_DEPARTURE_DIALOG_PATH return MERCURY_DEPARTURE_DIALOG_PATH
if level == 1: if level == 2:
return VENDING_MACHINE_DIALOG_PATH return VENDING_MACHINE_DIALOG_PATH
if ship_in_space and is_run_finished(level + 1): if ship_in_space and is_run_finished(level + 1):
return VENUS_ARRIVAL_DIALOG_PATH return VENUS_ARRIVAL_DIALOG_PATH
@@ -16,6 +16,11 @@ func get_destination_text() -> String:
func get_destination_scene() -> Scene: func get_destination_scene() -> Scene:
return BoreaScene.new() return BoreaScene.new()
func get_player_max_energy() -> int:
return 4
func get_player_max_inventory() -> int:
return 3
func get_ship_dialog_path(_level : int, _ship_in_space := true) -> String: func get_ship_dialog_path(_level : int, _ship_in_space := true) -> String:
return VENUS_DEPARTURE_DIALOG_PATH return VENUS_DEPARTURE_DIALOG_PATH
@@ -16,6 +16,12 @@ func get_destination_text() -> String:
func get_destination_scene() -> Scene: func get_destination_scene() -> Scene:
return AquaScene.new() return AquaScene.new()
func get_player_max_energy() -> int:
return 4
func get_player_max_inventory() -> int:
return 4
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String: func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5: if level == 5:
return AQUA_TRAVEL_PHONE_CALL_DIALOG_PATH return AQUA_TRAVEL_PHONE_CALL_DIALOG_PATH
@@ -16,6 +16,12 @@ func get_destination_text() -> String:
func get_destination_scene() -> Scene: func get_destination_scene() -> Scene:
return SubterraScene.new() return SubterraScene.new()
func get_player_max_energy() -> int:
return 4
func get_player_max_inventory() -> int:
return 5
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String: func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5: if level == 5:
return TRAVEL_PHONE_CALL_DIALOG_PATH return TRAVEL_PHONE_CALL_DIALOG_PATH
@@ -16,6 +16,12 @@ func get_destination_text() -> String:
func get_destination_scene() -> Scene: func get_destination_scene() -> Scene:
return EstiaScene.new() return EstiaScene.new()
func get_player_max_energy() -> int:
return 5
func get_player_max_inventory() -> int:
return 5
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String: func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 5: if level == 5:
return TRAVEL_PHONE_CALL_DIALOG_PATH return TRAVEL_PHONE_CALL_DIALOG_PATH
@@ -16,6 +16,12 @@ func get_destination_text() -> String:
func get_destination_scene() -> Scene: func get_destination_scene() -> Scene:
return AstraEndScene.new() return AstraEndScene.new()
func get_player_max_energy() -> int:
return 5
func get_player_max_inventory() -> int:
return 6
func get_ship_dialog_path(level : int, _ship_in_space := true) -> String: func get_ship_dialog_path(level : int, _ship_in_space := true) -> String:
if level == 4: if level == 4:
return TRAVEL_PHONE_CALL_DIALOG_PATH return TRAVEL_PHONE_CALL_DIALOG_PATH
@@ -61,8 +61,11 @@ func spawn_player(relay_base : RelayBase):
GameInfo.game_data.incubator_used.append( GameInfo.game_data.incubator_used.append(
incubators.find(choosen_incubator) incubators.find(choosen_incubator)
) )
if len(possible_incubators) == 1:
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_ALL_CASES)
else: else:
choosen_incubator = incubators.pick_random() choosen_incubator = incubators.pick_random()
SteamConnection.unlock_achievement(SteamConnection.ACH_STW_ALL_CASES)
choosen_incubator.used = true choosen_incubator.used = true
relay_base.player.global_position = choosen_incubator.global_position + Vector3.UP relay_base.player.global_position = choosen_incubator.global_position + Vector3.UP
+2 -1
View File
@@ -15,11 +15,12 @@ const ACH_STW_REPAIR_THE_PLANET="STW_REPAIR_THE_PLANET"
const ACH_STW_HIT_10_INFINITE="STW_HIT_10_INFINITE" const ACH_STW_HIT_10_INFINITE="STW_HIT_10_INFINITE"
const ACH_STW_HIT_20_INFINITE="STW_HIT_20_INFINITE" const ACH_STW_HIT_20_INFINITE="STW_HIT_20_INFINITE"
const ACH_STW_HIT_30_INFINITE="STW_HIT_30_INFINITE" const ACH_STW_HIT_30_INFINITE="STW_HIT_30_INFINITE"
const ACH_STW_ALL_CASES="STW_ALL_CASES"
func unlock_achievement(achivement_name : String): func unlock_achievement(achivement_name : String):
if Steam.isSteamRunning(): if Steam.isSteamRunning():
var status = Steam.getAchievement(achivement_name) var status = Steam.getAchievement(achivement_name)
print_verbose("Steam Achievement %s" %achivement_name) print("Steam Achievement %s" % achivement_name)
if status.has("ret") and status.ret and not status.achieved: if status.has("ret") and status.ret and not status.achieved:
Steam.setAchievement(achivement_name) Steam.setAchievement(achivement_name)
Steam.storeStats() Steam.storeStats()
@@ -1,7 +1,8 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: Well, you've done the easiest part so far, but all the remaining relay bases along the way have been destroyed by the weather... So, you're going to have a long road ahead of you to reach me. #id:ed demeter: Well, you've done the easiest part so far, but all the remaining relay bases along the way have been destroyed by the weather... So, you're going to have a long road ahead of you to reach me. #id:ed
demeter: However, I'm glad you made it this far! I understand that waking up in that dark room must have been quite a shock. #id:ee demeter: Hopefully, you'll be glad to hear that I managed to improve the models in this base, and you'll now have 4 energy for the rest of the trip! #id:119
demeter: I'm glad you made it this far! I understand that waking up in that dark room must have been quite a shock. #id:ee
demeter: This is the first time you've come this far, or rather, the first time an iteration has reached this base. #id:ef demeter: This is the first time you've come this far, or rather, the first time an iteration has reached this base. #id:ef
- What do you mean by "an iteration"? #id:f0 - What do you mean by "an iteration"? #id:f0
demeter: Uh, I've tried several times to get you to come to me by changing many parameters of your intelligence. Each time, you got lost, you didn't achieve your objectives, or you chose to disobey me... #id:f1 demeter: Uh, I've tried several times to get you to come to me by changing many parameters of your intelligence. Each time, you got lost, you didn't achieve your objectives, or you chose to disobey me... #id:f1
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:11a
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:11b
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:11c
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:11d
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
+1 -1
View File
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:11e
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:11f
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:120
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:121
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:122
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:123
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:124
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:125
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
+1 -1
View File
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:126
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
+1 -1
View File
@@ -1,6 +1,6 @@
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/incoming_transmission.wav"
join demeter center [animation="Fade In" length="1.0"] join demeter center [animation="Fade In" length="1.0"]
demeter: This dialog is not written yet demeter: This dialog is not written yet #id:127
audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav" audio "res://common/audio_manager/assets/sfx/dialogs/sfx/closing_transmission.wav"
leave demeter [animation="Fade Out" length="1.0"] leave demeter [animation="Fade Out" length="1.0"]
[wait time="2.0"] [wait time="2.0"]
@@ -167,6 +167,7 @@ _data = {
[node name="ArtefactAnnounce" type="CanvasLayer" unique_id=1447182082] [node name="ArtefactAnnounce" type="CanvasLayer" unique_id=1447182082]
layer = 2 layer = 2
visible = false
script = ExtResource("1_2sroa") script = ExtResource("1_2sroa")
announce_artefact = SubResource("Resource_3vg7r") announce_artefact = SubResource("Resource_3vg7r")
@@ -261,7 +262,7 @@ own_world_3d = true
transparent_bg = true transparent_bg = true
size = Vector2i(300, 300) size = Vector2i(300, 300)
[node name="AnnouceObject" type="Node3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801] [node name="AnnounceObject" type="Node3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(0.49246997, -0.037707455, 0.8692438, 0.6477846, -0.65092874, -0.39512447, 0.5810579, 0.75763476, -0.2962104, 0, 0, 0) transform = Transform3D(0.49246997, -0.037707455, 0.8692438, 0.6477846, -0.65092874, -0.39512447, 0.5810579, 0.75763476, -0.2962104, 0, 0, 0)
@@ -39,6 +39,7 @@ metadata/_custom_type_script = "uid://bj4d1x8n8ina"
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0430325, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.0430325, 0)
stream = SubResource("AudioStreamRandomizer_amehi") stream = SubResource("AudioStreamRandomizer_amehi")
bus = &"Sfx"
[node name="BreakParticles" type="CPUParticles3D" parent="." unique_id=1968257379] [node name="BreakParticles" type="CPUParticles3D" parent="." unique_id=1968257379]
unique_name_in_owner = true unique_name_in_owner = true
@@ -76,11 +77,9 @@ shape = SubResource("BoxShape3D_nvfy2")
[node name="ArtefactAnnounce" parent="." unique_id=114641656 instance=ExtResource("8_3rrt0")] [node name="ArtefactAnnounce" parent="." unique_id=114641656 instance=ExtResource("8_3rrt0")]
unique_name_in_owner = true unique_name_in_owner = true
visible = true
announce_artefact = null announce_artefact = null
[node name="MutationAnnounce" parent="." unique_id=1447182082 instance=ExtResource("9_247i2")] [node name="MutationAnnounce" parent="." unique_id=1447182082 instance=ExtResource("9_247i2")]
unique_name_in_owner = true unique_name_in_owner = true
visible = false
[editable path="CristalModelCrack"] [editable path="CristalModelCrack"]
@@ -164,6 +164,7 @@ _data = {
[node name="MutationAnnounce" type="CanvasLayer" unique_id=1447182082] [node name="MutationAnnounce" type="CanvasLayer" unique_id=1447182082]
layer = 2 layer = 2
visible = false
script = ExtResource("1_02o74") script = ExtResource("1_02o74")
[node name="Container" type="Control" parent="." unique_id=250759747] [node name="Container" type="Control" parent="." unique_id=250759747]
@@ -272,11 +273,11 @@ own_world_3d = true
transparent_bg = true transparent_bg = true
size = Vector2i(300, 300) size = Vector2i(300, 300)
[node name="AnnouceObject" type="Node3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801] [node name="AnnounceObject" type="Node3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=1527573801]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(-0.66996473, 0.079749085, -0.73779225, -0.56796145, 0.58463466, 0.5788058, 0.47777697, 0.80682886, -0.34651512, 0, 0, 0) transform = Transform3D(-0.66996473, 0.079749085, -0.73779225, -0.56796145, 0.58463466, 0.5788058, 0.47777697, 0.80682886, -0.34651512, 0, 0, 0)
[node name="cristal" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport/AnnouceObject" unique_id=1362490576 instance=ExtResource("12_wy2oe")] [node name="cristal" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport/AnnounceObject" unique_id=1362490576 instance=ExtResource("12_wy2oe")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1, 0)
[node name="Camera3D" type="Camera3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=173755338] [node name="Camera3D" type="Camera3D" parent="Container/AnnounceContainer/ObjectVisualiser/SubViewport" unique_id=173755338]
@@ -50,13 +50,13 @@ func update_rotation(delta):
else : else :
object_acceleration = object_acceleration.lerp(DEFAULT_OBJECT_ACCELERATION, 0.1) object_acceleration = object_acceleration.lerp(DEFAULT_OBJECT_ACCELERATION, 0.1)
%AnnouceObject.rotate(Vector3.UP, object_rotation.x * delta) %AnnounceObject.rotate(Vector3.UP, object_rotation.x * delta)
%AnnouceObject.rotate(Vector3.RIGHT, object_rotation.y * delta) %AnnounceObject.rotate(Vector3.RIGHT, object_rotation.y * delta)
func set_announce_artefact(artefact := announce_artefact): func set_announce_artefact(artefact := announce_artefact):
if is_node_ready(): if is_node_ready():
for c in %AnnouceObject.get_children(): for c in %AnnounceObject.get_children():
c.queue_free() c.queue_free()
if is_node_ready() and artefact: if is_node_ready() and artefact:
@@ -65,7 +65,7 @@ func set_announce_artefact(artefact := announce_artefact):
%AnnounceText.text = artefact.get_artefact_name() %AnnounceText.text = artefact.get_artefact_name()
%ObjectVisualiser.info = artefact.card_info() %ObjectVisualiser.info = artefact.card_info()
%AnnouceObject.add_child( %AnnounceObject.add_child(
artefact.get_3d_scene().instantiate() artefact.get_3d_scene().instantiate()
) )
@@ -8,7 +8,7 @@ const DEFAULT_OBJECT_ACCELERATION = Vector2(3,0)
@export_tool_button("Update", "Callable") var update_action = set_announce_mutation @export_tool_button("Update", "Callable") var update_action = set_announce_mutation
var announce_objects : Array[AnnouceObject] = [] var announce_objects : Array[AnnounceObject] = []
var object_acceleration := Vector2(0,0) var object_acceleration := Vector2(0,0)
@@ -52,8 +52,8 @@ func update_rotation(delta):
else : else :
object_acceleration = object_acceleration.lerp(DEFAULT_OBJECT_ACCELERATION, 0.1) object_acceleration = object_acceleration.lerp(DEFAULT_OBJECT_ACCELERATION, 0.1)
%AnnouceObject.rotate(Vector3.UP, object_rotation.x * delta) %AnnounceObject.rotate(Vector3.UP, object_rotation.x * delta)
%AnnouceObject.rotate(Vector3.RIGHT, object_rotation.y * delta) %AnnounceObject.rotate(Vector3.RIGHT, object_rotation.y * delta)
func set_announce_mutation(mutation := announce_mutation): func set_announce_mutation(mutation := announce_mutation):
+9 -9
View File
@@ -20,20 +20,20 @@ func get_artefacts() -> Array[Artefact]:
return GameInfo.game_data.current_run.artefacts return GameInfo.game_data.current_run.artefacts
return [] return []
func update_with_artefacts(artefacts : Array[Artefact]): func update_with_run_data(run_data : RunData):
inventory.seeds_size = calculate_inventory_size(artefacts) inventory.seeds_size = calculate_inventory_size(run_data)
max_energy = calculate_max_energy(artefacts) max_energy = calculate_max_energy(run_data)
updated.emit() updated.emit()
func calculate_max_energy(artefacts : Array[Artefact]) -> int: func calculate_max_energy(run_data : RunData) -> int:
var v = DEFAULT_MAX_ENERGY var v = run_data.story_step.get_player_max_energy()
for a in artefacts: for a in run_data.artefacts:
v = a.modify_player_max_energy(v) v = a.modify_player_max_energy(v)
return v return v
func calculate_inventory_size(artefacts : Array[Artefact]) -> int: func calculate_inventory_size(run_data : RunData) -> int:
var v = DEFAULT_INVENTORY_SIZE var v = run_data.story_step.get_player_max_inventory()
for a in artefacts: for a in run_data.artefacts:
v = a.modify_player_inventory_size(v) v = a.modify_player_inventory_size(v)
return v return v
+53 -1
View File
@@ -5,12 +5,49 @@
[ext_resource type="Texture2D" uid="uid://cdpqg3pkjcw2h" path="res://stages/title_screen/assets/textures/title.png" id="3_urbel"] [ext_resource type="Texture2D" uid="uid://cdpqg3pkjcw2h" path="res://stages/title_screen/assets/textures/title.png" id="3_urbel"]
[ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="4_5k6jv"] [ext_resource type="LabelSettings" uid="uid://dqwayi8yjwau2" path="res://gui/ressources/title_label_settings.tres" id="4_5k6jv"]
[ext_resource type="PackedScene" uid="uid://c8flevrkelpvy" path="res://gui/credits/socials/instagram.tscn" id="5_urbel"] [ext_resource type="PackedScene" uid="uid://c8flevrkelpvy" path="res://gui/credits/socials/instagram.tscn" id="5_urbel"]
[ext_resource type="Texture2D" uid="uid://bcjkds8n5qu6x" path="res://common/icons/rotate-rectangle.svg" id="6_5k6jv"]
[ext_resource type="PackedScene" uid="uid://cm5b7w7j6527f" path="res://stages/title_screen/planet_3d.tscn" id="6_luv2b"] [ext_resource type="PackedScene" uid="uid://cm5b7w7j6527f" path="res://stages/title_screen/planet_3d.tscn" id="6_luv2b"]
[ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="7_urbel"] [ext_resource type="FontFile" uid="uid://qt80w6o01q5s" path="res://gui/ressources/fonts/TitanOne-Regular.ttf" id="7_urbel"]
[sub_resource type="ViewportTexture" id="ViewportTexture_urbel"] [sub_resource type="ViewportTexture" id="ViewportTexture_urbel"]
viewport_path = NodePath("SubViewport") viewport_path = NodePath("SubViewport")
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_kip8e"]
bg_color = Color(1, 0.6509804, 0.09019608, 1)
border_width_left = 6
border_width_top = 6
border_width_right = 6
border_width_bottom = 6
border_color = Color(1, 0.6509804, 0.09019608, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_a8ny4"]
bg_color = Color(0.692349, 0.477218, 0.112321, 1)
border_width_left = 6
border_width_top = 6
border_width_right = 6
border_width_bottom = 6
border_color = Color(0.694118, 0.478431, 0.113725, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_xl2r5"]
bg_color = Color(0.976471, 0.741176, 0.4, 1)
border_width_left = 6
border_width_top = 6
border_width_right = 6
border_width_bottom = 6
border_color = Color(0.975367, 0.740445, 0.401877, 1)
corner_radius_top_left = 5
corner_radius_top_right = 5
corner_radius_bottom_right = 5
corner_radius_bottom_left = 5
[sub_resource type="LabelSettings" id="LabelSettings_5k6jv"] [sub_resource type="LabelSettings" id="LabelSettings_5k6jv"]
font = ExtResource("7_urbel") font = ExtResource("7_urbel")
font_size = 20 font_size = 20
@@ -234,8 +271,21 @@ label_settings = ExtResource("4_5k6jv")
horizontal_alignment = 1 horizontal_alignment = 1
[node name="Button" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=927302743 instance=ExtResource("5_urbel")] [node name="Button" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=927302743 instance=ExtResource("5_urbel")]
visible = false
layout_mode = 2 layout_mode = 2
[node name="TitleScreen" type="Button" parent="MarginContainer/GridContainer/VBoxContainer" unique_id=1912426702]
layout_mode = 2
size_flags_horizontal = 4
theme = ExtResource("2_luv2b")
theme_override_constants/icon_max_width = 30
theme_override_font_sizes/font_size = 20
theme_override_styles/normal = SubResource("StyleBoxFlat_kip8e")
theme_override_styles/pressed = SubResource("StyleBoxFlat_a8ny4")
theme_override_styles/hover = SubResource("StyleBoxFlat_xl2r5")
text = "RETURN_TO_TITLE_SCREEN"
icon = ExtResource("6_5k6jv")
[node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=105267250] [node name="VBoxContainer2" type="VBoxContainer" parent="MarginContainer/GridContainer" unique_id=105267250]
layout_mode = 2 layout_mode = 2
size_flags_horizontal = 3 size_flags_horizontal = 3
@@ -435,7 +485,7 @@ alignment = 1
[node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine12" unique_id=2037812278] [node name="Name" type="Label" parent="MarginContainer/GridContainer/VBoxContainer2/CreditsLine12" unique_id=2037812278]
layout_mode = 2 layout_mode = 2
text = "Cesire" text = "Cesire / ItsATreee on Twitch"
label_settings = SubResource("LabelSettings_5k6jv") label_settings = SubResource("LabelSettings_5k6jv")
horizontal_alignment = 1 horizontal_alignment = 1
@@ -472,3 +522,5 @@ shadow_enabled = true
shadow_normal_bias = 0.0 shadow_normal_bias = 0.0
shadow_opacity = 0.92 shadow_opacity = 0.92
shadow_blur = 4.667 shadow_blur = 4.667
[connection signal="pressed" from="MarginContainer/GridContainer/VBoxContainer/TitleScreen" to="." method="_on_title_screen_pressed"]
+5 -1
View File
@@ -2,4 +2,8 @@ extends CanvasLayer
class_name Credits class_name Credits
func appear(): func appear():
%AnimationPlayer.play("appear") %AnimationPlayer.play("appear")
func _on_title_screen_pressed():
SceneManager.change_to_scene(TitleScene.new(), false)
+16 -9
View File
@@ -22,11 +22,6 @@ point_count = 4
offsets = PackedFloat32Array(0, 0.8689956, 0.98253274) offsets = PackedFloat32Array(0, 0.8689956, 0.98253274)
colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) 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="ViewportTexture" id="ViewportTexture_aao0q"] [sub_resource type="ViewportTexture" id="ViewportTexture_aao0q"]
viewport_path = NodePath("AnnounceContainer/HBoxContainer/ObjectVisualiser/SubViewport") viewport_path = NodePath("AnnounceContainer/HBoxContainer/ObjectVisualiser/SubViewport")
@@ -227,11 +222,22 @@ text = "NEW_TOOL"
label_settings = ExtResource("3_7nrno") label_settings = ExtResource("3_7nrno")
horizontal_alignment = 1 horizontal_alignment = 1
[node name="AnnounceText" type="Label" parent="AnnounceContainer" unique_id=1537255164] [node name="AnnounceText" type="RichTextLabel" parent="AnnounceContainer" unique_id=1992702255]
unique_name_in_owner = true unique_name_in_owner = true
layout_mode = 2 layout_mode = 2
theme_override_colors/default_color = Color(1, 0.6509804, 0.08627451, 1)
theme_override_fonts/normal_font = ExtResource("4_aao0q")
theme_override_fonts/bold_font = ExtResource("4_aao0q")
theme_override_fonts/bold_italics_font = ExtResource("4_aao0q")
theme_override_fonts/italics_font = ExtResource("4_aao0q")
theme_override_font_sizes/normal_font_size = 50
theme_override_font_sizes/bold_font_size = 60
theme_override_font_sizes/bold_italics_font_size = 50
theme_override_font_sizes/italics_font_size = 50
theme_override_font_sizes/mono_font_size = 50
bbcode_enabled = true
text = "Pelle" text = "Pelle"
label_settings = SubResource("LabelSettings_6qyp1") fit_content = true
horizontal_alignment = 1 horizontal_alignment = 1
[node name="HBoxContainer" type="GridContainer" parent="AnnounceContainer" unique_id=802355154] [node name="HBoxContainer" type="GridContainer" parent="AnnounceContainer" unique_id=802355154]
@@ -279,11 +285,12 @@ own_world_3d = true
transparent_bg = true transparent_bg = true
size = Vector2i(300, 300) size = Vector2i(300, 300)
[node name="AnnouceObject" type="Node3D" parent="AnnounceContainer/HBoxContainer/ObjectVisualiser/SubViewport" unique_id=986671004] [node name="AnnounceObject" type="Node3D" parent="AnnounceContainer/HBoxContainer/ObjectVisualiser/SubViewport" unique_id=986671004]
unique_name_in_owner = true unique_name_in_owner = true
transform = Transform3D(-0.054461285, 0.73170173, 0.6795513, -0.8508927, 0.32199714, -0.4149924, -0.52245957, -0.6008157, 0.60510355, 0, 0, 0) transform = Transform3D(0.9687702, -0.030383619, -0.24602485, -0.11000262, 0.83650446, -0.53682446, 0.22209063, 0.54715794, 0.8071189, 0, 0, 0)
[node name="Camera3D" type="Camera3D" parent="AnnounceContainer/HBoxContainer/ObjectVisualiser/SubViewport" unique_id=1788331074] [node name="Camera3D" type="Camera3D" parent="AnnounceContainer/HBoxContainer/ObjectVisualiser/SubViewport" unique_id=1788331074]
unique_name_in_owner = true
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1)
keep_aspect = 0 keep_aspect = 0
current = true current = true
+29 -7
View File
@@ -4,11 +4,11 @@ class_name Announce
const DEFAULT_OBJECT_ACCELERATION = Vector2(3,0) const DEFAULT_OBJECT_ACCELERATION = Vector2(3,0)
@export var announce_object : AnnouceObject = null : set = set_announce_object @export var announce_object : AnnounceObject = null : set = set_announce_object
@export_tool_button("Update", "Callable") var update_action = set_announce_object @export_tool_button("Update", "Callable") var update_action = set_announce_object
var announce_objects : Array[AnnouceObject] = [] var announce_objects : Array[AnnounceObject] = []
var object_acceleration := Vector2(0,0) var object_acceleration := Vector2(0,0)
@@ -33,6 +33,26 @@ func _ready():
GameInfo.game_data.item_announced.append(i.name) GameInfo.game_data.item_announced.append(i.name)
) )
if (
GameInfo.game_data.max_energy_announced != GameInfo.game_data.player_data.max_energy
):
announce_objects.append(AnnounceModel.new(
tr("UPGRADED_MAX_ENERGY_TO_%d") % GameInfo.game_data.player_data.max_energy
))
GameInfo.game_data.max_energy_announced = GameInfo.game_data.player_data.max_energy
if (
GameInfo.game_data.max_inventory_announced != GameInfo.game_data.player_data.inventory.seeds_size
):
announce_objects.append(AnnounceModel.new(
tr("UPGRADED_INVENTORY_SIZE_TO_%d") % GameInfo.game_data.player_data.inventory.seeds_size
))
GameInfo.game_data.max_inventory_announced = GameInfo.game_data.player_data.inventory.seeds_size
func _process(delta): func _process(delta):
if announce_object == null and not visible and len(announce_objects) > 0: if announce_object == null and not visible and len(announce_objects) > 0:
announce_object = announce_objects.pop_front() announce_object = announce_objects.pop_front()
@@ -71,18 +91,20 @@ func update_rotation(delta):
else : else :
object_acceleration = object_acceleration.lerp(DEFAULT_OBJECT_ACCELERATION, 0.1) object_acceleration = object_acceleration.lerp(DEFAULT_OBJECT_ACCELERATION, 0.1)
%AnnouceObject.rotate(Vector3.UP, object_rotation.x * delta) %AnnounceObject.rotate(Vector3.UP, object_rotation.x * delta)
%AnnouceObject.rotate(Vector3.RIGHT, object_rotation.y * delta) %AnnounceObject.rotate(Vector3.RIGHT, object_rotation.y * delta)
func set_announce_object(object := announce_object): func set_announce_object(object := announce_object):
Pointer.action_disabled = not object Pointer.action_disabled = not object
if is_node_ready() and object: if is_node_ready() and object:
for children in %AnnouceObject.get_children(): for children in %AnnounceObject.get_children():
children.queue_free() children.queue_free()
%AnnouceObject.add_child(object.get_3d_object()) %Camera3D.position.z = object.get_camera_z_pos()
%AnnouceObject.rotation = Vector3.ZERO
%AnnounceObject.add_child(object.get_3d_object())
%AnnounceObject.rotation = Vector3.ZERO
%AnnounceTitle.text = object.get_title() %AnnounceTitle.text = object.get_title()
%AnnounceText.text = object.get_text() %AnnounceText.text = object.get_text()
%AnnounceDesc.text = object.get_desc() %AnnounceDesc.text = object.get_desc()
@@ -0,0 +1,32 @@
@tool
extends AnnounceObject
class_name AnnounceModel
const ORCHID_3D_SCENE = preload("res://entities/player_3d/resources/3d_orchid.blend")
@export var text : String
func _init(
_text := text
):
text = _text
func get_3d_object() -> Node3D:
return ORCHID_3D_SCENE.instantiate()
func get_title() -> String:
return "MODEL_HAS_BEEN_UPGRADED"
func get_text() -> String:
return text
func get_camera_z_pos() -> float:
return 5.
func get_card_info() -> CardInfo:
return null
func _on_dismiss():
pass
# GameInfo.game_data.player_data.tool_discovered.append(tool_item.get_item_name())
@@ -0,0 +1 @@
uid://dnemq1wa14s8g
@@ -1,6 +1,6 @@
@abstract @abstract
extends Resource extends Resource
class_name AnnouceObject class_name AnnounceObject
var desc := "" var desc := ""
var image : Texture = null var image : Texture = null
@@ -17,6 +17,9 @@ func get_desc() -> String:
func get_image() -> Texture: func get_image() -> Texture:
return image return image
func get_camera_z_pos() -> float:
return 1.0
@abstract func get_card_info() -> CardInfo @abstract func get_card_info() -> CardInfo
@abstract func _on_dismiss() @abstract func _on_dismiss()
@@ -1,5 +1,5 @@
@tool @tool
extends AnnouceObject extends AnnounceObject
class_name AnnounceTool class_name AnnounceTool
const ITEM_3D_SCENE = preload("res://gui/game/inventory_gui/inventory_item/inventory_item_3d.tscn") const ITEM_3D_SCENE = preload("res://gui/game/inventory_gui/inventory_item/inventory_item_3d.tscn")
+2 -2
View File
@@ -128,7 +128,7 @@ variables={
"whoareyou": "false", "whoareyou": "false",
"whynorth": "false" "whynorth": "false"
} }
translation/id_counter=280 translation/id_counter=295
translation/locales=[] translation/locales=[]
history/visited_event_history_enabled=true history/visited_event_history_enabled=true
audio/type_sound_bus="Sfx" audio/type_sound_bus="Sfx"
@@ -264,7 +264,7 @@ zoom_out={
[internationalization] [internationalization]
locale/translation_remaps={} locale/translation_remaps={}
locale/translations=PackedStringArray("res://translation/game/gui.en.translation", "res://translation/game/gui.fr.translation", "res://translation/dialogs/dialogic_character_translations.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.fr.translation", "res://translation/dialogs/dialogic_1_waking_up_translation.en.translation", "res://translation/dialogs/dialogic_1_waking_up_translation.fr.translation", "res://translation/dialogs/dialogic_2_demeter_intro_translation.en.translation", "res://translation/dialogs/dialogic_2_demeter_intro_translation.fr.translation", "res://translation/dialogs/dialogic_3_demeter_ship_presentation_translation.en.translation", "res://translation/dialogs/dialogic_3_demeter_ship_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_4_cave_translation.en.translation", "res://translation/dialogs/dialogic_4_cave_translation.fr.translation", "res://translation/dialogs/dialogic_5_mercury_arrival_translation.en.translation", "res://translation/dialogs/dialogic_5_mercury_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_6_mercury_departure_translation.en.translation", "res://translation/dialogs/dialogic_6_mercury_departure_translation.fr.translation", "res://translation/dialogs/dialogic_7_venus_arrival_translation.en.translation", "res://translation/dialogs/dialogic_7_venus_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_8_venus_departure_translation.en.translation", "res://translation/dialogs/dialogic_8_venus_departure_translation.fr.translation", "res://translation/dialogs/dialogic_9_borea_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.fr.translation", "res://translation/dialogs/dialogic_character_translations.fr.translation", "res://translation/dialogs/dialogic_6_vending_machine_presentation_translation.en.translation", "res://translation/dialogs/dialogic_6_vending_machine_presentation_translation.fr.translation") locale/translations=PackedStringArray("res://translation/game/gui.en.translation", "res://translation/game/gui.fr.translation", "res://translation/dialogs/dialogic_character_translations.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.en.translation", "res://translation/dialogs/dialogic_demeter_ship_failed_translation.fr.translation", "res://translation/dialogs/dialogic_1_waking_up_translation.en.translation", "res://translation/dialogs/dialogic_1_waking_up_translation.fr.translation", "res://translation/dialogs/dialogic_2_demeter_intro_translation.en.translation", "res://translation/dialogs/dialogic_2_demeter_intro_translation.fr.translation", "res://translation/dialogs/dialogic_3_demeter_ship_presentation_translation.en.translation", "res://translation/dialogs/dialogic_3_demeter_ship_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_4_cave_translation.en.translation", "res://translation/dialogs/dialogic_4_cave_translation.fr.translation", "res://translation/dialogs/dialogic_5_mercury_arrival_translation.en.translation", "res://translation/dialogs/dialogic_5_mercury_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_6_mercury_departure_translation.en.translation", "res://translation/dialogs/dialogic_6_mercury_departure_translation.fr.translation", "res://translation/dialogs/dialogic_7_venus_arrival_translation.en.translation", "res://translation/dialogs/dialogic_7_venus_arrival_translation.fr.translation", "res://translation/dialogs/dialogic_8_venus_departure_translation.en.translation", "res://translation/dialogs/dialogic_8_venus_departure_translation.fr.translation", "res://translation/dialogs/dialogic_9_borea_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.en.translation", "res://translation/dialogs/dialogic_cave_translation.fr.translation", "res://translation/dialogs/dialogic_character_translations.fr.translation", "res://translation/dialogs/dialogic_6_vending_machine_presentation_translation.en.translation", "res://translation/dialogs/dialogic_6_vending_machine_presentation_translation.fr.translation", "res://translation/dialogs/dialogic_1_aqua_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_astra_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_estia_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_1_subterra_travel_phone_call_translation.en.translation", "res://translation/dialogs/dialogic_2_aqua_arrival_translation.en.translation", "res://translation/dialogs/dialogic_2_astra_top_translation.en.translation", "res://translation/dialogs/dialogic_2_estia_arrival_translation.en.translation", "res://translation/dialogs/dialogic_2_subterra_arrival_translation.en.translation", "res://translation/dialogs/dialogic_3_astra_end_translation.en.translation", "res://translation/dialogs/dialogic_91_borea_comms_up_translation.en.translation", "res://translation/dialogs/dialogic_92_borea_later_translation.en.translation", "res://translation/dialogs/dialogic_9_borea_arrival_translation.en.translation")
locale/test="fr" locale/test="fr"
[rendering] [rendering]
+1
View File
@@ -48,6 +48,7 @@ var data_last_updated = 0.
var plant_grid : PlantGrid var plant_grid : PlantGrid
# Cheat Code # Cheat Code
# TOCHANGE
func _input(_e): func _input(_e):
if ( if (
Input.is_action_pressed("drop") Input.is_action_pressed("drop")
+35
View File
@@ -181,6 +181,18 @@ tracks/8/keys = {
"update": 1, "update": 1,
"values": [1.0] "values": [1.0]
} }
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("../ColorRect:modulate:a")
tracks/9/interp = 1
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0),
"transitions": PackedFloat32Array(1),
"update": 1,
"values": [0.0]
}
[sub_resource type="Animation" id="Animation_ofiho"] [sub_resource type="Animation" id="Animation_ofiho"]
resource_name = "arrive" resource_name = "arrive"
@@ -292,6 +304,18 @@ tracks/8/keys = {
"update": 0, "update": 0,
"values": [0.0, 1.0] "values": [0.0, 1.0]
} }
tracks/9/type = "value"
tracks/9/imported = false
tracks/9/enabled = true
tracks/9/path = NodePath("../ColorRect:modulate:a")
tracks/9/interp = 2
tracks/9/loop_wrap = true
tracks/9/keys = {
"times": PackedFloat32Array(0, 0.33333334),
"transitions": PackedFloat32Array(1, 1),
"update": 0,
"values": [1.0, 0.0]
}
[sub_resource type="AnimationLibrary" id="AnimationLibrary_1xafb"] [sub_resource type="AnimationLibrary" id="AnimationLibrary_1xafb"]
_data = { _data = {
@@ -543,6 +567,17 @@ unique_name_in_owner = true
z_index = 100 z_index = 100
mouse_filter = 2 mouse_filter = 2
[node name="ColorRect" type="ColorRect" parent="." unique_id=1251793255]
modulate = Color(1, 1, 1, 0)
z_index = 2
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
color = Color(0.0627451, 0.05882353, 0.16862746, 1)
[connection signal="pressed" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Start" to="." method="_on_start_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Start" to="." method="_on_start_pressed"]
[connection signal="pressed" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/StartInfinite" to="." method="_on_start_infinite_pressed"] [connection signal="pressed" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/StartInfinite" to="." method="_on_start_infinite_pressed"]
[connection signal="button_down" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Settings" to="." method="_on_settings_button_down"] [connection signal="button_down" from="MarginContainer/GridContainer/VBoxContainer/VBoxContainer/Settings" to="." method="_on_settings_button_down"]
@@ -0,0 +1,2 @@
keys,en
Text/11d/text,This dialog is not written yet
1 keys en
2 Text/11d/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://ctlc5w8rbifq8"
[deps]
files=["res://translation/dialogs/dialogic_1_aqua_travel_phone_call_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_1_aqua_travel_phone_call_translation.csv"
dest_files=["res://translation/dialogs/dialogic_1_aqua_travel_phone_call_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/125/text,This dialog is not written yet
1 keys en
2 Text/125/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://cqtybv8p1owqd"
[deps]
files=["res://translation/dialogs/dialogic_1_astra_travel_phone_call_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_1_astra_travel_phone_call_translation.csv"
dest_files=["res://translation/dialogs/dialogic_1_astra_travel_phone_call_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/121/text,This dialog is not written yet
1 keys en
2 Text/121/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://c6g1ksxr8schj"
[deps]
files=["res://translation/dialogs/dialogic_1_estia_travel_phone_call_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_1_estia_travel_phone_call_translation.csv"
dest_files=["res://translation/dialogs/dialogic_1_estia_travel_phone_call_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/123/text,This dialog is not written yet
1 keys en
2 Text/123/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://bv6y03t164q3"
[deps]
files=["res://translation/dialogs/dialogic_1_subterra_travel_phone_call_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_1_subterra_travel_phone_call_translation.csv"
dest_files=["res://translation/dialogs/dialogic_1_subterra_travel_phone_call_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/11e/text,This dialog is not written yet
1 keys en
2 Text/11e/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://c1y36kcfp7p36"
[deps]
files=["res://translation/dialogs/dialogic_2_aqua_arrival_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_2_aqua_arrival_translation.csv"
dest_files=["res://translation/dialogs/dialogic_2_aqua_arrival_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/126/text,This dialog is not written yet
1 keys en
2 Text/126/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://bkjctlsqv2hn7"
[deps]
files=["res://translation/dialogs/dialogic_2_astra_top_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_2_astra_top_translation.csv"
dest_files=["res://translation/dialogs/dialogic_2_astra_top_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/122/text,This dialog is not written yet
1 keys en
2 Text/122/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://dakks7otu6xut"
[deps]
files=["res://translation/dialogs/dialogic_2_estia_arrival_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_2_estia_arrival_translation.csv"
dest_files=["res://translation/dialogs/dialogic_2_estia_arrival_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/124/text,This dialog is not written yet
1 keys en
2 Text/124/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://vefqqcpmdckw"
[deps]
files=["res://translation/dialogs/dialogic_2_subterra_arrival_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_2_subterra_arrival_translation.csv"
dest_files=["res://translation/dialogs/dialogic_2_subterra_arrival_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/127/text,This dialog is not written yet
1 keys en
2 Text/127/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://csvxr6673p20a"
[deps]
files=["res://translation/dialogs/dialogic_3_astra_end_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_3_astra_end_translation.csv"
dest_files=["res://translation/dialogs/dialogic_3_astra_end_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -19,7 +19,7 @@ Text/10e/text,"Anyway, you still have quite a long way to go.","Bon, tu as encor
Text/cc/text,"You now need to go a little further north, to a new relay base, [color=#FFA617]Venus Base[/color].","Tu dois maintenant aller un peu plus loin au sud, dans une nouvelle base relais, la [color=#FFA617]Base Vénus[/color]." Text/cc/text,"You now need to go a little further north, to a new relay base, [color=#FFA617]Venus Base[/color].","Tu dois maintenant aller un peu plus loin au sud, dans une nouvelle base relais, la [color=#FFA617]Base Vénus[/color]."
Text/110/text,"[b]I managed to repair the ship[/b], but I'm afraid it hasn't returned to its original state...","[b]J'ai réussi à réparer le vaisseau[/b], mais j'ai bien peur qu'il ne soit pas revenu à son état d'origine…" Text/110/text,"[b]I managed to repair the ship[/b], but I'm afraid it hasn't returned to its original state...","[b]J'ai réussi à réparer le vaisseau[/b], mais j'ai bien peur qu'il ne soit pas revenu à son état d'origine…"
Text/111/text,"[b]I also did some cleaning in your seeds[/b], they have gone bad during the time I repaired the ship. I hope you don't mind...","[b]J'ai fait du nettoyage dans tes graines[/b], elles ont pourri pendant les réparations. J'espère que ça ne te dérange pas…" Text/111/text,"[b]I also did some cleaning in your seeds[/b], they have gone bad during the time I repaired the ship. I hope you don't mind...","[b]J'ai fait du nettoyage dans tes graines[/b], elles ont pourri pendant les réparations. J'espère que ça ne te dérange pas…"
Choice/112/text,"No problem, I'll found better ones.","Pas de problème, j'en trouverai de meilleures." Choice/112/text,"No problem, I'll find better ones.","Pas de problème, j'en trouverai de meilleures."
Choice/112/disabled_text,, Choice/112/disabled_text,,
Choice/113/text,Oh no ! But I've been away just a moment !,Oh non ! Mais je ne me suis absenté qu'un instant ! Choice/113/text,Oh no ! But I've been away just a moment !,Oh non ! Mais je ne me suis absenté qu'un instant !
Choice/113/disabled_text,, Choice/113/disabled_text,,
1 keys en fr
19 Text/cc/text You now need to go a little further north, to a new relay base, [color=#FFA617]Venus Base[/color]. Tu dois maintenant aller un peu plus loin au sud, dans une nouvelle base relais, la [color=#FFA617]Base Vénus[/color].
20 Text/110/text [b]I managed to repair the ship[/b], but I'm afraid it hasn't returned to its original state... [b]J'ai réussi à réparer le vaisseau[/b], mais j'ai bien peur qu'il ne soit pas revenu à son état d'origine…
21 Text/111/text [b]I also did some cleaning in your seeds[/b], they have gone bad during the time I repaired the ship. I hope you don't mind... [b]J'ai fait du nettoyage dans tes graines[/b], elles ont pourri pendant les réparations. J'espère que ça ne te dérange pas…
22 Choice/112/text No problem, I'll found better ones. No problem, I'll find better ones. Pas de problème, j'en trouverai de meilleures.
23 Choice/112/disabled_text
24 Choice/113/text Oh no ! But I've been away just a moment ! Oh non ! Mais je ne me suis absenté qu'un instant !
25 Choice/113/disabled_text
@@ -1,6 +1,7 @@
keys,en,fr keys,en,fr
Text/ed/text,"Well, you've done the easiest part so far, but all the remaining relay bases along the way have been destroyed by the weather... So, you're going to have a long road ahead of you to reach me.","Bon, tu as fait le plus facile pour l'instant, mais toutes les bases relais restantes sur le chemin sont HS. Tu vas donc devoir faire un long trajet jusqu'à moi." Text/ed/text,"Well, you've done the easiest part so far, but all the remaining relay bases along the way have been destroyed by the weather... So, you're going to have a long road ahead of you to reach me.","Bon, tu as fait le plus facile pour l'instant, mais toutes les bases relais restantes sur le chemin sont HS. Tu vas donc devoir faire un long trajet jusqu'à moi."
Text/ee/text,"However, I'm glad you made it this far! I understand that waking up in that dark room must have been quite a shock.","Cependant, je suis heureuse que tu sois arrivé jusque-là ! Je comprends que le réveil que tu as subi dans cette salle obscure n'a pas dû être évident." Text/119/text,"Hopefully, you'll be glad to hear that I managed to improve the models in this base, and you'll now have 4 energy for the rest of the trip!","Heureusement, j'ai réussi à améliorer les modèles dans la base, et tu auras désormais 4 d'énergie pour le reste de ton voyage !"
Text/ee/text,I'm glad you made it this far! I understand that waking up in that dark room must have been quite a shock.,"Je suis heureuse que tu sois arrivé jusque-là ! Je comprends que le réveil que tu as subi dans cette salle obscure n'a pas dû être évident."
Text/ef/text,"This is the first time you've come this far, or rather, the first time an iteration has reached this base.","C'est la première fois que tu arrives aussi loin, enfin la première fois qu'une itération atteint ce lieu." Text/ef/text,"This is the first time you've come this far, or rather, the first time an iteration has reached this base.","C'est la première fois que tu arrives aussi loin, enfin la première fois qu'une itération atteint ce lieu."
Choice/f0/text,"What do you mean by ""an iteration""?","Qu'est-ce que tu entends par ""une itération"" ?" Choice/f0/text,"What do you mean by ""an iteration""?","Qu'est-ce que tu entends par ""une itération"" ?"
Choice/f0/disabled_text,, Choice/f0/disabled_text,,
1 keys en fr
2 Text/ed/text Well, you've done the easiest part so far, but all the remaining relay bases along the way have been destroyed by the weather... So, you're going to have a long road ahead of you to reach me. Bon, tu as fait le plus facile pour l'instant, mais toutes les bases relais restantes sur le chemin sont HS. Tu vas donc devoir faire un long trajet jusqu'à moi.
3 Text/ee/text Text/119/text However, I'm glad you made it this far! I understand that waking up in that dark room must have been quite a shock. Hopefully, you'll be glad to hear that I managed to improve the models in this base, and you'll now have 4 energy for the rest of the trip! Cependant, je suis heureuse que tu sois arrivé jusque-là ! Je comprends que le réveil que tu as subi dans cette salle obscure n'a pas dû être évident. Heureusement, j'ai réussi à améliorer les modèles dans la base, et tu auras désormais 4 d'énergie pour le reste de ton voyage !
4 Text/ee/text I'm glad you made it this far! I understand that waking up in that dark room must have been quite a shock. Je suis heureuse que tu sois arrivé jusque-là ! Je comprends que le réveil que tu as subi dans cette salle obscure n'a pas dû être évident.
5 Text/ef/text This is the first time you've come this far, or rather, the first time an iteration has reached this base. C'est la première fois que tu arrives aussi loin, enfin la première fois qu'une itération atteint ce lieu.
6 Choice/f0/text What do you mean by "an iteration"? Qu'est-ce que tu entends par "une itération" ?
7 Choice/f0/disabled_text
@@ -0,0 +1,2 @@
keys,en
Text/11a/text,This dialog is not written yet
1 keys en
2 Text/11a/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://ckcg62artl4ll"
[deps]
files=["res://translation/dialogs/dialogic_91_borea_comms_up_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_91_borea_comms_up_translation.csv"
dest_files=["res://translation/dialogs/dialogic_91_borea_comms_up_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/11b/text,This dialog is not written yet
1 keys en
2 Text/11b/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://cl73bfcxgbgui"
[deps]
files=["res://translation/dialogs/dialogic_92_borea_later_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_92_borea_later_translation.csv"
dest_files=["res://translation/dialogs/dialogic_92_borea_later_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
@@ -0,0 +1,2 @@
keys,en
Text/11c/text,This dialog is not written yet
1 keys en
2 Text/11c/text This dialog is not written yet
@@ -0,0 +1,19 @@
[remap]
importer="csv_translation"
type="Translation"
uid="uid://binamce5cs4pm"
[deps]
files=["res://translation/dialogs/dialogic_9_borea_arrival_translation.en.translation"]
source_file="res://translation/dialogs/dialogic_9_borea_arrival_translation.csv"
dest_files=["res://translation/dialogs/dialogic_9_borea_arrival_translation.en.translation"]
[params]
compress=1
delimiter=0
unescape_keys=false
unescape_translations=true
+3
View File
@@ -371,6 +371,9 @@ ORBIT,Orbit,Orbite
RECHARGE_NUMBER,Recharge Number,Nombre de recharge RECHARGE_NUMBER,Recharge Number,Nombre de recharge
ORCHID_ENERGY,Orchid's energy,Énergie d'Orchid ORCHID_ENERGY,Orchid's energy,Énergie d'Orchid
NEW_TOOL,New tool,Nouvel Outil NEW_TOOL,New tool,Nouvel Outil
MODEL_HAS_BEEN_UPGRADED,Model has been upgraded,Votre modèle à été amélioré
UPGRADED_MAX_ENERGY_TO_%d,Max energy set to [b]%d[/b],[b]%d[/b] d'énergie maximale
UPGRADED_INVENTORY_SIZE_TO_%d,Inventory size set to [b]%d[/b],[b]%d[/b] de taille d'inventaire
NEW_MUTATION,New Mutation,Nouvelle Mutation NEW_MUTATION,New Mutation,Nouvelle Mutation
THIS_MUTATION_CAN_NOW_APPEAR_ON_SEEDS,"This mutation can now appear on seeds","Cette mutation pourra désormais apparaître sur les graines" THIS_MUTATION_CAN_NOW_APPEAR_ON_SEEDS,"This mutation can now appear on seeds","Cette mutation pourra désormais apparaître sur les graines"
NEW_ARTEFACT,New Artefact,Nouvel Artefact NEW_ARTEFACT,New Artefact,Nouvel Artefact
1 keys en fr
371 RECHARGE_NUMBER Recharge Number Nombre de recharge
372 ORCHID_ENERGY Orchid's energy Énergie d'Orchid
373 NEW_TOOL New tool Nouvel Outil
374 MODEL_HAS_BEEN_UPGRADED Model has been upgraded Votre modèle à été amélioré
375 UPGRADED_MAX_ENERGY_TO_%d Max energy set to [b]%d[/b] [b]%d[/b] d'énergie maximale
376 UPGRADED_INVENTORY_SIZE_TO_%d Inventory size set to [b]%d[/b] [b]%d[/b] de taille d'inventaire
377 NEW_MUTATION New Mutation Nouvelle Mutation
378 THIS_MUTATION_CAN_NOW_APPEAR_ON_SEEDS This mutation can now appear on seeds Cette mutation pourra désormais apparaître sur les graines
379 NEW_ARTEFACT New Artefact Nouvel Artefact