Shared tomatoes, P1 sandbox spawns, and weapons left out

- Tomato splats are kept in the match, so everyone sees everyone's
  (others' arrive in replays, which play no effects), each splatting
  with juice and a sound once.
- The sandbox's first player (solo or hosting) spawns on the arena's
  P1 mark.
- A thrown flail ball or grapple stays out when switching weapons, and
  another weapon fires while a grapple hangs on. Mines, flail balls and
  grapples go once their slot no longer holds the weapon that put them
  out (mines fizzling).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
shweetandClaude Opus 5.5 committed 2026-11-08 19:02:15 -05:00
1 parent e88fed1f4c
commit e55596b276
10 files changed
+84 -79

No files matched your search

+4 -1
View File
@@ -86,6 +86,8 @@ Match::Match()
void Match::update(Sim& sim)
{
timer -= TICK;
for (Tomato& tomato : tomatoes)
tomato.age += TICK;
// Offline, the menu's Play starts a game, and leaving the results goes back to the sandbox.
bool isPlay = !isOnline && isPlayRequested;
bool isSandbox = !isOnline && state == MATCH_OVER && isSandboxRequested;
@@ -429,7 +431,8 @@ void Match::tomatoes_update(Sim& sim)
if (i == winner || isGone[i] || tomatoCooldowns[i] > 0 || !isThrown)
continue;
tomatoCooldowns[i] = TOMATO_COOLDOWN;
sim.cues->tomato_splat(fighter.controls.cursor, i);
tomatoes[tomatoCount % TOMATO_MAX] = {.position = fighter.controls.cursor, .owner = i, .serial = tomatoCount};
tomatoCount++;
}
}