#127: dialogs wait for the reader, and say who is talking
A line now stays until it is DISMISSED - there is no timer under it at all. A prologue whose lines expire on their own reads at the game's pace rather than at the reader's, and that was most of what made the opening feel rushed even after #125 slowed the beats down. The beats that are about the guide talking already hold while the banner is speaking, so dismissing a line is what advances the prologue. A player who never clicks is still never stuck: each beat's own deadline is the way out, and the test pins that the deadline sits past the floor. A dismissed line eats the press, so clicking to continue does not also steer the fleet on the way through. The speaker's name sits in a notch cut out of the top border at the left, the way a label is riveted to a panel - the frame is one polygon, so the fill and the stroke cannot disagree about where that notch is. Everything up to the breach is the convoy's controller; after it there is nobody left to talk to, so the closing lines are the ship's own log, which is the point being made. The tick strip along the bottom is gone. It read as an underline attached to the last line rather than as part of the frame. What replaces it is a blinking caret at the bottom right - the one thing that says a click is what moves this on. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
ddc3de595e
commit
902d6922e7
3 changed files with 170 additions and 58 deletions
|
|
@ -63,6 +63,10 @@ const SHAKE_MAX: float = 34.0
|
|||
# How far past the horizon the lens reaches. Generous: the bend is what
|
||||
# sells the hole, and it falls off to nothing on its own well before this.
|
||||
const BREACH_LENS_SCALE: float = 7.0
|
||||
# #127: who is talking. The guide is the convoy's controller for everything
|
||||
# up to the breach; after it there is nobody left to talk to, so the closing
|
||||
# lines are the ship's own log - which is the point being made.
|
||||
const SHIP_LOG: String = "KESTREL - LOG"
|
||||
const VORTEX_COLORS: Array = [
|
||||
Color(0.55, 0.35, 1.0), Color(0.25, 0.9, 1.0), Color(1.0, 0.35, 0.8),
|
||||
Color(1.0, 0.8, 0.3), Color(0.4, 1.0, 0.6),
|
||||
|
|
@ -227,31 +231,31 @@ func _begin(next: int) -> void:
|
|||
# takes for CONVOY and CONVOY_FORMATION to line up.
|
||||
_apply_convoy_formation()
|
||||
fleet.spawn_ships(CONVOY.size(), start_at, CONVOY)
|
||||
narration.say("Convoy Kestrel, you are carrying the season's shipment to the World Ship.", 5.0)
|
||||
narration.say("Hold your heading and keep the holds intact. We will be watching.", 4.5)
|
||||
narration.say("Convoy Kestrel, you are carrying the season's shipment to the World Ship.")
|
||||
narration.say("Hold your heading and keep the holds intact. We will be watching.")
|
||||
Beat.RUN:
|
||||
narration.say("World Ship bears ahead. Fly on.", 3.5)
|
||||
narration.say("World Ship bears ahead. Fly on.")
|
||||
Beat.AMBUSH:
|
||||
_spawn_ambush()
|
||||
narration.say("Contacts ahead - raiders, a light group. Break them and continue.", 4.5)
|
||||
narration.say("Contacts ahead - raiders, a light group. Break them and continue.")
|
||||
Beat.CLEAR:
|
||||
narration.say("Clean work, Kestrel. Resume your heading.", 3.5)
|
||||
narration.say("Clean work, Kestrel. Resume your heading.")
|
||||
Beat.GAUNTLET:
|
||||
_spawn_belt()
|
||||
narration.say("Debris belt across your lane. Take it slow - there is no way around.", 5.0)
|
||||
narration.say("Debris belt across your lane. Take it slow - there is no way around.")
|
||||
Beat.BREACH:
|
||||
GameState.intro_locks_movement = true
|
||||
breach_at = fleet.get_centroid() + Vector2(0.0, -900.0)
|
||||
_open_breach()
|
||||
narration.say("Kestrel, your heading is - something is opening ahead of you -", 4.0)
|
||||
narration.say("Kestrel, your heading is - something is opening ahead of you -", "CONVOY CONTROL")
|
||||
Beat.VORTEX:
|
||||
vortex_time = 0.0
|
||||
narration.clear()
|
||||
Beat.AFTERMATH:
|
||||
GameState.intro_locks_movement = false
|
||||
shake = 0.0
|
||||
narration.say("It seems you've lost your way through the space, lost and abandoned.", 5.0)
|
||||
narration.say("No communication with the World Ship can be heard.", 5.0)
|
||||
narration.say("It seems you've lost your way through the space, lost and abandoned.", SHIP_LOG)
|
||||
narration.say("No communication with the World Ship can be heard.", SHIP_LOG)
|
||||
|
||||
|
||||
func _deadline() -> float:
|
||||
|
|
|
|||
Loading…
Reference in a new issue