Pong Studio Pong Studio
ENKOVI
Get updates
← All posts Devlog

Nine ways to reward a wave: designing break-time in Town Guardians

June 22, 2026

The moment the last yokai in a wave drops, the game changes tone. The fighting stops and break-time begins — the beat between waves where you collect a reward and reshape your run. It would have been easy to make this a single “here’s your loot” popup. We built nine different formats instead, and then layered five rare events on top of them. This is why.

One reward, nine ways to hand it over

The reward itself is only half the experience. How you receive it — whether you choose, gamble, or just watch — changes how the moment feels. So break-time draws from nine format types:

  • Auto Roulette — it spins on its own; you watch where it lands.
  • Instant Reward — no interaction at all; it just applies.
  • Card Flip — several face-down cards; you pick one and flip it.
  • Dice Roll — roll a 1 through 6, each face a different reward.
  • Mystery Box — several boxes, some of them deliberately empty (a configurable chance of a blank).
  • Coin Toss — heads wins big, tails wins nothing.
  • Mini Puzzle — solve something small for a bonus.
  • Reward Choice — several rewards shown openly; you pick.
  • Enhance Chance — choose an effect and the ally to put it on.

Why nine and not one? Because a run that hands you rewards the same way every time flattens into a checklist. Variety in delivery keeps break-time feeling like an event rather than an inventory transaction. A coin toss and an open choice can grant the identical reward and still produce completely different feelings — one is a held breath, the other is a small act of strategy.

There’s also an honesty dial built in. Some formats are pure upside (instant reward, open choice). Others carry real risk — the mystery box can be empty, the coin toss can pay nothing. Mixing safe and risky formats means not every break-time is a guaranteed win, which is exactly what keeps the wins meaningful.

Two pools: with replacement, or without

Under every format sits a small but important rule: how the draw pool behaves. A pool can be exclusive — once a reward is drawn it’s removed, so you never see the same thing twice in a set — or duplicable, where repeats are possible. Exclusive pools guarantee variety and feel fair; duplicable pools allow lucky streaks and near-misses. Choosing the right pool type per event is a quiet lever on how generous or how spicy a moment reads.

Five events that only show up when you’ve earned them

The nine formats are the vocabulary. The five fixed events are the sentences — special break-time moments that only trigger when specific battle conditions are met, using those formats as their delivery mechanism:

  • Light in the Chaos — a Chaos Shard summon. Its cost climbs with each use, and a hard system cap limits how many times it can appear in a single break-time, so it never becomes a free vending machine.
  • Whisper of the Ancient Dragon — the Dragon Scale gamble, tilted toward Epic and Legend outcomes. When a Legendary lands, the game plays a dragon’s roar. (A small production detail we’re strict about: the event’s probability values must sum to exactly 10,000 — the system flags an error if they don’t, so a mis-authored table can’t quietly ship broken odds.)
  • Call of the World Tree — an ally rank-up delivered as an open choice: three random allies, each offered at +1, +2, or +3.
  • Junction of Growth — triggered whenever any ally’s rank crosses a multiple of three. It offers three class-appropriate passive skill cards. Concrete examples from the table: Steadfast Will grants a shield worth 5% of max HP every 10 seconds; Sharpened Sense adds 15% crit; Weakness Read deals 20% more damage to enemies below half health.
  • Divine Spirit Meteor Shower — the rarest of the five, with an extremely low chance per wave clear. It’s a card flip across five meteors, each hiding a promotable character. When it fires, it’s a genuine event.

The point of separating these from the regular reward pool is that upgrade offers can only surprise you so much — they’re a known category. The fixed events break that pattern. They’re the difference between “another reward” and “this run just became a story.”

Who owns what

A system this stateful needs a clear line of authority. In Town Guardians, the battle logic is the client’s job — one orchestrator drives break-time, with focused sub-systems handling summons, the gamble, rank-ups, promotions, and passive selection. The server owns the truth: the event data and the mission counting that decides which events are eligible. Keeping that split clean is what lets us tune an event’s feel on the client without touching the server’s source of record.

We also recently simplified the whole thing. Event conditions used to route through an intermediate mission table; we removed that middleman and now define trigger conditions directly on the event data with explicit fields for trigger type, condition value, and target. Fewer joins at runtime, and — more importantly — one obvious place to read and change what makes an event fire.

Nine formats, two pool types, five fixed events, one clean authority split. It sounds like a lot for the gap between two waves. But that gap is where a run’s personality lives, and we’d rather over-invest in the moment players remember than under-invest in the fighting they expect.


Want to know the moment our next game is playable? Get launch updates →