Conversation
…ame and re-entry components
|
Play this branch at https://play.threadbare.game/branches/renato-sy/main/. (This launches the game from the start, not directly at the change(s) in this pull request.) |
…ing in area name and re-entry components
|
@renato-sy I see you continue pushing changes, so please let us know when you are ready to receive a review. Thanks! |
|
Okay, I think that's it; the pulls I was doing were just little things Git required to perform the merge. |
…fix parameter spacing, and remove trailing whitespace
…order definitions
|
@renato-sy sorry for the delay. I wil have to review this on Monday. For the moment, please consider that there are other entry points to Fray's End:
I think entering from any of those should display the area name. In fact all those have areas to block the exit, so maybe the entry areas should be next to them.
|
|
Yes, the different-coloured grass on the two sides of the bridge is meant to mark the boundary to the Song Sanctuary, so I agree that the trigger should be crossing that bridge from bottom to top! |
|
Okay, so are we all set, or do I need to make any changes? |
|
Sorry, I have not tested or reviewed the code changes yet! |
wjt
left a comment
There was a problem hiding this comment.
I confess that I haven't read the implementation in detail but I don't think the behaviour is correct. Walking around Fray's End I can trigger the banner repeatedly even though I've never left Fray's End!
Screencast.From.2026-09-09.13-22-21.mp4
I would approach it something like this:
- In the game state, store the current area name, and a set of areas we have seen before
- Place area name triggers (Area2D with name property) in roughly the places you have done
- When a trigger detects the player:
- If the current area name in the game state matches the trigger's name, do nothing
- Else:
- Set the current area name in the game state to the trigger's name
- If the current area has not been seen before:
- Show the "big" notification
- Add it to the set of seen areas
- Else, show the "small" notification.
With this approach, I don't think you need the "directions" property on the triggers.
|
I’ve fixed the issue you mentioned and switched the comments to English; you can check if the |
| ## Emitted when an area's unlock status changes. | ||
| signal area_changed(area_name: String, is_unlocked: bool) |
There was a problem hiding this comment.
This signal's second parameter is never false so personally I would change this to:
| ## Emitted when an area's unlock status changes. | |
| signal area_changed(area_name: String, is_unlocked: bool) | |
| ## Emitted when an area is unlocked (i.e. first encountered) | |
| signal area_unlocked(area_name: String) |
There was a problem hiding this comment.
This signal is not actually used anywhere...
I think a better design would be:
- Change this signal to
signal area_changed(area_name: String, first_visit: bool) - Have the HUD scene connect to this signal and, when it is emitted, show the appropriate balloon - this keeps the UI responsibility in one place
- Then make the triggers be an Area2D (which can have multiple shapes in different parts of the scene if desired - or a huge polygon that covers the relevant area) which only adjust the state (and don't contain a new CanvasLayer)
There was a problem hiding this comment.
So, would I move both of them to the HUD (first_unlock and re_entry)? The first one self-destructs, so I don't think there would be a problem—or I don't know, what do you think?
There was a problem hiding this comment.
I don't think that question was necessary, haha, since when I copied and pasted the instance, it instantiates right into the HUD
There was a problem hiding this comment.
I don't like how this looks with the heavy drop shadow. Personally I think we could use the same presentation as the dialogue balloons.
There was a problem hiding this comment.
Okay, I've applied the "Balloons" one. Take a look—how does the color look? Should I change it?
… in game state and UI components
|
I can review what you mentioned. |
|
Hi, I can do the review. |
|
Hi, I've been looking into this, and I've noticed the following:
|
|
Okay, I'll check right now to see what's going on. |
There was a problem hiding this comment.
The changes in project.godot are unrelated, please revert the file.
| zone_name = "Song | ||
| Sanctuary" |
There was a problem hiding this comment.
Please avoid separating the text with newlines for the presentation. The label wrapping should take care of it. Keep in mind that these zone names could be translated to other languages in the future. I learned this the hard way and had to fix all signposts #2843
| zone_name = "Song | |
| Sanctuary" | |
| zone_name = "Song Sanctuary" |
| zone_name = "Dev | ||
| Archipelago" |
There was a problem hiding this comment.
| zone_name = "Dev | |
| Archipelago" | |
| zone_name = "Dev Archipelago" |
| # SPDX-License-Identifier: MPL-2.0 | ||
| extends Node2D | ||
|
|
||
| @export_multiline var zone_name: String |
There was a problem hiding this comment.
As stated above, this shouldn't be multiline. Also, we may want to translate the zone names in the future, and the easiest way to do it is by making this match the "*_text" pattern. I have learned this week about it when working on #2945 (I had to rename a property from action to action_text. I also proposed this to be documented in godotengine/godot-docs#12394
| @export_multiline var zone_name: String | |
| @export var zone_name_text: String |
|
|
||
| [node name="LineVillePath" parent="." unique_id=1184526213 instance=ExtResource("59_6fau3")] | ||
| direcciones_salida = 87 | ||
| zone_name = "Frays end" |
There was a problem hiding this comment.
The name of this zone, as shown in several dialogues is "Fray's End".
| zone_name = "Frays end" | |
| zone_name = "Fray's end" |
| debug_color = Color(0.9610079, 0, 0.5155429, 0.41960785) | ||
|
|
||
| [node name="LineVillePath" parent="." unique_id=1184526213 instance=ExtResource("59_6fau3")] | ||
| direcciones_salida = 87 |
There was a problem hiding this comment.
This seems to be a leftover.
| direcciones_salida = 87 |
| polygon = PackedVector2Array(2937, 765, 2943, 961, 2700, 1108, 2684, 648) | ||
|
|
||
| [node name="StartPath" parent="." unique_id=1388956016 instance=ExtResource("59_6fau3")] | ||
| direcciones_salida = 49 |
There was a problem hiding this comment.
| direcciones_salida = 49 |
| polygon = PackedVector2Array(953, 1344, 1033, 1345, 1033, 1374, 951, 1374) | ||
|
|
||
| [node name="SongSanctuaryPath" parent="." unique_id=234964131 instance=ExtResource("59_6fau3")] | ||
| direcciones_salida = 194 |
There was a problem hiding this comment.
| direcciones_salida = 194 |
| polygon = PackedVector2Array(2175, 280, 2834, 283, 2682, -9, 2363, -16, 2166, 164) | ||
|
|
||
| [node name="DevArchipelagoPath" parent="." unique_id=1511301874 instance=ExtResource("59_6fau3")] | ||
| direcciones_salida = 49 |
There was a problem hiding this comment.
| direcciones_salida = 49 |
| polygon = PackedVector2Array(2810, 1772, 2574, 1766, 2573, 1717, 2810, 1716) | ||
|
|
||
| [node name="WestEndPath" parent="." unique_id=681218199 instance=ExtResource("59_6fau3")] | ||
| direcciones_salida = 168 |
There was a problem hiding this comment.
| direcciones_salida = 168 |
|
@renato-sy this is promising! Check this video. If I start the game from scratch, skip the tutorial, then go north I see "Frays End" when exiting. I think that's wrong, it should happen when entering. zones.webm |








Add an area name banner that appears when the player enters a new area. The banner is shown for a few seconds when moving between areas such as Fray's End and Song Sanctuary.
Resolves #2340