From 0409a8bc8bf40673ea2d4509ec6d454ca2b2815b Mon Sep 17 00:00:00 2001 From: Altaezio Date: Thu, 30 Jul 2026 11:57:03 +0200 Subject: [PATCH] abandon not possible everywhere + drag fixes + text fixes --- common/scene_manager/scripts/scene.gd | 5 ++++- common/scene_manager/scripts/scenes/cave_scene.gd | 5 ++++- .../scene_manager/scripts/scenes/cockpit_scene.gd | 5 ++++- common/scene_manager/scripts/scenes/region_scene.gd | 5 ++++- .../scripts/scenes/vending_machine_scene.gd | 5 ++++- .../scripts/plant_mutation/rhizome_mutation.gd | 2 +- gui/pause/scripts/pause.gd | 3 ++- gui/pointer/scripts/pointer.gd | 13 ++++++++++--- .../dialogic_91_borea_comms_up_translation.csv | 2 +- .../dialogic_9_borea_arrival_translation.csv | 2 +- 10 files changed, 35 insertions(+), 12 deletions(-) diff --git a/common/scene_manager/scripts/scene.gd b/common/scene_manager/scripts/scene.gd index 19a6d73..ff6214a 100644 --- a/common/scene_manager/scripts/scene.gd +++ b/common/scene_manager/scripts/scene.gd @@ -36,4 +36,7 @@ func get_scene_icon() -> Texture: return DEFAULT_SCENE_ICON func _on_generated(_generated_scene : Node): - pass \ No newline at end of file + pass + +func can_abandon() -> bool: + return false diff --git a/common/scene_manager/scripts/scenes/cave_scene.gd b/common/scene_manager/scripts/scenes/cave_scene.gd index dc815a2..306a20f 100644 --- a/common/scene_manager/scripts/scenes/cave_scene.gd +++ b/common/scene_manager/scripts/scenes/cave_scene.gd @@ -28,4 +28,7 @@ func get_scene_icon() -> Texture: func _on_generated(generated_scene : Node): var cave : Cave = generated_scene as Cave - cave.setup_room(cave_room_seed) \ No newline at end of file + cave.setup_room(cave_room_seed) + +func can_abandon() -> bool: + return true diff --git a/common/scene_manager/scripts/scenes/cockpit_scene.gd b/common/scene_manager/scripts/scenes/cockpit_scene.gd index f0d090c..5444187 100644 --- a/common/scene_manager/scripts/scenes/cockpit_scene.gd +++ b/common/scene_manager/scripts/scenes/cockpit_scene.gd @@ -18,4 +18,7 @@ func get_scene_title() -> String: return tr("INTERNODE") func get_scene_icon() -> Texture: - return preload("res://common/icons/rocket.svg") \ No newline at end of file + return preload("res://common/icons/rocket.svg") + +func can_abandon() -> bool: + return true diff --git a/common/scene_manager/scripts/scenes/region_scene.gd b/common/scene_manager/scripts/scenes/region_scene.gd index 1df3ac7..8432498 100644 --- a/common/scene_manager/scripts/scenes/region_scene.gd +++ b/common/scene_manager/scripts/scenes/region_scene.gd @@ -27,4 +27,7 @@ func get_scene_title() -> String: func _on_generated(generated_scene : Node): var region : Region = generated_scene as Region - region.finish_generation() \ No newline at end of file + region.finish_generation() + +func can_abandon() -> bool: + return true diff --git a/common/scene_manager/scripts/scenes/vending_machine_scene.gd b/common/scene_manager/scripts/scenes/vending_machine_scene.gd index ab2a24c..f7bec2f 100644 --- a/common/scene_manager/scripts/scenes/vending_machine_scene.gd +++ b/common/scene_manager/scripts/scenes/vending_machine_scene.gd @@ -28,4 +28,7 @@ func get_scene_icon() -> Texture: func _on_generated(generated_scene : Node): var vending_machine_room : VendingMachineRoom = generated_scene as VendingMachineRoom - vending_machine_room.setup_room(vending_machine_room_seed) \ No newline at end of file + vending_machine_room.setup_room(vending_machine_room_seed) + +func can_abandon() -> bool: + return true diff --git a/entities/plants/scripts/plant_mutation/rhizome_mutation.gd b/entities/plants/scripts/plant_mutation/rhizome_mutation.gd index 0e97e5a..26bc1f9 100644 --- a/entities/plants/scripts/plant_mutation/rhizome_mutation.gd +++ b/entities/plants/scripts/plant_mutation/rhizome_mutation.gd @@ -31,4 +31,4 @@ func _start_maturation_effect(plant: Plant): particles.emit() func get_digging_radius() -> int: - return level + return 1 + level diff --git a/gui/pause/scripts/pause.gd b/gui/pause/scripts/pause.gd index 8c909aa..ad2dace 100644 --- a/gui/pause/scripts/pause.gd +++ b/gui/pause/scripts/pause.gd @@ -24,7 +24,8 @@ func set_pause(p): Input.mouse_mode = mouse_mode_before_pause if p: - %GiveUp.visible = GameInfo.game_data and GameInfo.game_data.current_region_data and SceneManager.actual_scene and SceneManager.actual_scene.get_scene_id() != "TITLE" + %GiveUp.visible = (GameInfo.game_data and GameInfo.game_data.current_region_data and + SceneManager.actual_scene and SceneManager.actual_scene.can_abandon()) %TitleScreen.visible = not (SceneManager.actual_scene and SceneManager.actual_scene.get_scene_id() == "TITLE") diff --git a/gui/pointer/scripts/pointer.gd b/gui/pointer/scripts/pointer.gd index 2236a79..e91549a 100644 --- a/gui/pointer/scripts/pointer.gd +++ b/gui/pointer/scripts/pointer.gd @@ -11,6 +11,7 @@ const CARD_VISUALISATION_TIME = 0.3 const CARD_UP_PADDING = 50 const PRESS_TIME_DRAG := 0.15 +const MAX_DIST_INSPECT := ItemObject.ITEM_AREA_WIDTH @export var default_cursor: Texture2D @export var action_cursor: Texture2D @@ -29,6 +30,7 @@ var can_use_item: bool = false var press_time := 0. var press_action_done := false var dragging_inspected := false +var no_inspect_previously_dragged := false var action_disabled := false @@ -277,8 +279,10 @@ func update_cursor(): Input.set_custom_mouse_cursor(cursor, Input.CURSOR_ARROW, hotspot) func stop_inspect(node: Node): - if not dragging_inspected: + if not dragging_inspected or node != inspected: all_inspected.erase(node) + else: + no_inspect_previously_dragged = true if node is InventoryGuiItemMouseDetector: inspected_inventory_slot = null @@ -305,6 +309,7 @@ func start_dragging(): all_inspected.clear() all_inspected.append(inspected) can_interact = false + no_inspect_previously_dragged = false func stop_dragging(): if dragging_inspected: @@ -348,6 +353,8 @@ func stop_dragging(): inspect(inspected_inventory_slot) AudioManager.play_sfx("PickUp") else: # over the ground -> just leave the dragged item where it is - all_inspected.clear() - inspect(inspected) + if no_inspect_previously_dragged and not started_dragging_from_slot: + all_inspected.clear() + pass started_dragging_from_slot = null + no_inspect_previously_dragged = false diff --git a/translation/dialogs/dialogic_91_borea_comms_up_translation.csv b/translation/dialogs/dialogic_91_borea_comms_up_translation.csv index 9b02518..4c43684 100644 --- a/translation/dialogs/dialogic_91_borea_comms_up_translation.csv +++ b/translation/dialogs/dialogic_91_borea_comms_up_translation.csv @@ -34,7 +34,7 @@ Text/1c2/text,"For the moment, I am waiting for their reply. You will certainly Choice/1c3/text,What are these other AIs?,Quels sont ces autres IAs ? Choice/1c3/disabled_text,, Text/1c4/text,"There are five of them, one for each human base on this planet. After the energy wave, I lost contact with the one at the [color=#FFA617][b]Astra[/b][/color] base, [color=#FFA617][b]Zeus[/b][/color], but I continued communicating with the others for many years before losing contact.","Il y en a cinq, une pour chaque base humaine sur cette planète. Après la vague d'énergie, j'ai perdu le contact avec celle de la base [color=#FFA617][b]Astra[/b][/color], [color=#FFA617][b]Zeus[/b][/color], mais j'ai continué à discuter avec les autres pendant de nombreuses années avant de perdre le contact." -Text/1c5/text,"I suppose some may have gone into standby mode, or perhaps time has damaged the underground cable network.","Je suppose que certaines se sont mises en veille, ou que le temps a abîmé le réseau de câbles sousterrains." +Text/1c5/text,"I suppose some may have gone into standby mode, or perhaps time has damaged the underground cable network.","Je suppose que certaines se sont mises en veille, ou que le temps a abîmé le réseau de câbles souterrains." Text/1c6/text,"The signal we just sent should wake them up, and I'm counting on Hades to restore underground communications as soon as he receives it.","Le signal que nous venons d'envoyer devrait les réveiller, et je compte sur [color=#FFA617][b]Hadès[/b][/color] pour remettre en ordre les communications souterraines dès qu'il aura reçu le signal." Text/1c7/text,"Once contact is re-established, we'll organize the planet's repair and try to reach the humans again to let them know a return is possible.","Après avoir repris contact, nous organiserons la réparation de la planète et tenteront de recontacter les humains pour leur annoncer un retour possible." Text/1c8/text,"Well, I see this is taking a bit longer than expected. I'm putting you into standby mode and will wake you up when everything is ready.","Bon, je vois que cela prend un peu plus de temps que prévu. Je te mets en veille et je te réveillerai quand tout sera prêt." diff --git a/translation/dialogs/dialogic_9_borea_arrival_translation.csv b/translation/dialogs/dialogic_9_borea_arrival_translation.csv index 17b6fd1..b097ae5 100644 --- a/translation/dialogs/dialogic_9_borea_arrival_translation.csv +++ b/translation/dialogs/dialogic_9_borea_arrival_translation.csv @@ -2,7 +2,7 @@ keys,en,fr Text/1e3/text,Welcome to the [color=#FFA617][b]Borea[/b][/color] [color=#FFA617][b]Orchid[/b][/color] base. You are the first person in years to set foot in this room...,"Bienvenue à la base [color=#FFA617][b]Boréa[/b][/color] [color=#FFA617][b]Orchid[/b][/color], tu es le premier depuis des années à fouler cette salle..." Choice/1e4/text,"Okay, so why did you bring me here?","Ok, maintenant pourquoi m'avez-vous fait venir ?" Choice/1e4/disabled_text,, -Choice/1e5/text,I didn't expect to see you like this, are you trapped?,"Je ne m'attendais pas à te voir ainsi, es-tu enfermée ?" +Choice/1e5/text,"I didn't expect to see you like this, are you trapped?","Je ne m'attendais pas à te voir ainsi, es-tu enfermée ?" Choice/1e5/disabled_text,, Text/1e6/text,"No, not at all. The body you see here is just a physical representation of myself, and it was never designed to move around with it...","Non pas du tout, le corps que tu vois ainsi est juste une représentation physique de ma personne, et celle-ci n'a jamais eu pour vocation de se déplacer à l'air libre... " Text/1e7/text,"It was built in the image of human beings, and I have to say, it wouldn't be very practical, why use motorized legs to get around when you can have wheels?","Elle a été construite à l'image des êtres humains, et je dois dire qu'elle ne serait pas pratique, pourquoi utiliser des sortes d'échasses motorisées pour se déplacer quand on peut avoir des roues ?"