Sharpen upgrades, mark the convoy's destination, and give the world sound
#204 the Beam Collimator widens the beam instead of adding range to one that already crosses the screen; beam width becomes a per-shot vessel stat. #205 the Energy Propulser gains three upgrades - dash recharge, dash reach, and boosted-cruise drain - which turns three constants into vessel stats. #206 three further doctrines carry the fleet from ten to twenty. #207 the prologue's World Ship gets a marker, through the scanner's own guidance arrow rather than a second one. #208 #210 #213 #214 four new synthesised sounds: the breach opening, cargo reaching the hold, a rock breaking, and a gas bomb blooming. #215 building health bars are larger, plated and framed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019AJMdB7iuHuLFZM1aBu3GD
This commit is contained in:
parent
2239235993
commit
78836882af
33 changed files with 716 additions and 52 deletions
|
|
@ -68,6 +68,10 @@ func take_damage(amount: int) -> bool:
|
|||
|
||||
func shatter(drop_ore: bool) -> void:
|
||||
AsteroidExplosionVFX.spawn(get_tree().root, position)
|
||||
# #213. Here rather than in take_damage(), so a rock broken by a ramming
|
||||
# hull is heard too - and NOT in AsteroidField's despawn, which frees
|
||||
# rocks the player has simply flown away from.
|
||||
Sfx.play(get_tree(), Sfx.ASTEROID_BREAK)
|
||||
if drop_ore:
|
||||
_drop_ore()
|
||||
queue_free()
|
||||
|
|
|
|||
|
|
@ -330,6 +330,13 @@ func _begin(next: int) -> void:
|
|||
match beat:
|
||||
Beat.BRIEF:
|
||||
start_at = fleet.get_centroid()
|
||||
# #207: the World Ship is 16000 units north and never on screen,
|
||||
# so "straight ahead" was a line of dialogue with nothing behind
|
||||
# it. The flight marker gives it a place.
|
||||
GameState.intro_destination = {
|
||||
"name": "World Ship",
|
||||
"world_position": WORLD_SHIP_AT,
|
||||
}
|
||||
GameState.intro_fleet_size = CONVOY.size()
|
||||
# #125: the convoy flies in its own spread-out box, escorts on
|
||||
# the corners. spawn_ships seats vessel i in formation slot i,
|
||||
|
|
@ -358,8 +365,15 @@ func _begin(next: int) -> void:
|
|||
GameState.intro_locks_movement = true
|
||||
breach_at = fleet.get_centroid() + Vector2(0.0, -900.0)
|
||||
_open_breach()
|
||||
# #208: on the beat that OPENS it, not the one that falls through
|
||||
# it - the sound is what tells the player something has happened
|
||||
# while the guide is still saying it has not.
|
||||
Sfx.play(get_tree(), Sfx.BLACK_HOLE)
|
||||
narration.say("Kestrel, your course is - something is opening ahead of you -", "CONVOY CONTROL")
|
||||
Beat.VORTEX:
|
||||
# Nothing to steer toward any more: the breach has the convoy, and
|
||||
# what is on the other side is not the World Ship.
|
||||
GameState.intro_destination = {}
|
||||
vortex_time = 0.0
|
||||
_ensure_survivor_hull()
|
||||
narration.clear()
|
||||
|
|
|
|||
Loading…
Reference in a new issue