Skip to content

Latest commit

 

History

History
100 lines (52 loc) · 8.5 KB

File metadata and controls

100 lines (52 loc) · 8.5 KB

Ashfall — Lore

"The sky did not fall. It exhaled."

The Ashfall

Thirty winters ago the mountain called Kar-Thren breathed.

No eruption. No fire. A cold exhale — a grey veil that rose from the caldera, climbed the jet streams, and never left. Scholars named it Ashfall: a slow, planet-wide winter of fine, glass-sharp ash that dimmed the sun to a penny behind wax paper. Crops failed in a season. Rivers ran grey. The old kingdoms tried to wait it out behind walls. They crumbled anyway — not from siege, but from hunger, then from each other.

By the third year the ash had settled into everything: lungs, lungs, ledgers. Maps stopped being drawn. Caravans learned to move only when the wind was with them. Those who survived did so because they learned three things: cover your mouth, keep moving, and never trust a clear sky.

In the tenth year the wind finally shifted. A basin in the dead heart of the continent — a natural amphitheatre of basalt and ash-packed earth, 60 units across to the old surveyors — was scoured clean by a freak shear. For the first time in a decade, stone showed. Grass, impossibly, returned. Water pooled again.

People came. First the desperate. Then the ambitious. Then the armed.

They called it the Arena.

The Arena

The Arena is not a metaphor. It is a place.

A perfect, flat circle of hard earth ringed by low basalt walls, open to the ash sky. At its centre, strange orbs of condensed aether pulse faintly green — remnants of whatever Kar-Thren exhaled, crystallized and scattered like seed. Touching one steadies the hand, sharpens the eye, buys a few more breaths without coughing. Enough orbs and the ash inside you recedes. The old monks would have called it xp. The fighters just call it staying alive.

The orbs were not the only thing the ash left behind. From the tree line come Orcs — or what the ash made of the men and boar that breathed it longest. They move in waves: first a scouting few, then more, then harder still, until the basin is scoured again. Between waves there is a breath — an intermission — when even the wounded can stand and the air is, briefly, kind.

The Arena runs on a rhythm every child in the basin knows by heart:

LOBBY → COUNTDOWN (3 — 2 — 1) → PLAYING → INTERMISSION → PLAYING → GAME OVER

The countdown is law. No blade is drawn before GO. The dead lie still — frozen, untouchable by orb or mercy — until they crawl back on their own. Only the living can win.

The Arena does not care who you were before the ash. Inside, everyone is measured the same way: by how long they stand and how brightly they burn before they fall.

The Four Who Remain

When the first palisade went up, four figures walked out of the ash and did not introduce themselves. The basin gave them names.

The Knight — Stone That Walks

Barely a knight anymore. Plate gone dull, tabard ash-grey, sword notched to a saw. He was the last of a border order that held a pass long after the pass ceased to matter. He does not run — he advances. His kit is simple because it has to be: one good swing, one brutal Shield Bash — a four-unit dash that scatters whatever stands in front of him and leaves them stunned for a full second. Slow, but when he connects, the basin feels it.

Base: 150 HP, slow and heavy. Signature: Bash (dash + cone knockback + stun).

The Archer — Hooded Adventurer

She was a courier before the ash — the kind who could put an arrow through a moving rider's throat at a hundred paces and still make the delivery. Her hood is Quaternius green, her bow procedural and plain, her shots clean. She taught the basin that distance is a kind of armor. Her Multishot fans five arrows in a tight spread — the air itself seems to hesitate.

Base: 80 HP, fastest on foot. Signature: Multishot (5-arrow fan).

The Mage — The Last Wizard

Old enough to remember a sky that was blue. He carried a staff through the ash because the staff was the only thing that did not clog. Where others see orbs as sustenance, he sees fuel. His Firewave throws three fireballs in a cone; whatever they kiss keeps burning for three seconds after. He does not need to aim well. The fire does the rest.

Base: 90 HP, measured pace. Signature: Firewave (3 fireballs + burn DoT).

The Demon — What the Ash Kept

Not a demon, the children insist. Just a man who breathed too much and changed shape — taller, horned, carrying a trident that was once a hayfork. He speaks rarely. When he lifts his weapon, Chain Lightning jumps from foe to foe, four targets, each a little weaker than the last, until the whole wave smells of ozone.

Base: 80 HP, restless speed. Signature: Chain Lightning (4 hops, −20% per hop).

Every fighter levels the same way: orb by orb, kill by kill. At each level the Arena offers three upgrade cards — Vitality, Swift, Heavy Hand, Sharpshooter, Quick Draw, Focused, Looter, Scholar, and deeper, skill-twisting rites like Shield Breaker, Concussive Bash, Volley, Piercing Arrows, Inferno, Sear, Overcharge, Chain Power. Pick one; the others turn to ash. Hesitate more than ten seconds and the Arena picks for you. PvP never waits.

The Duel, the Team, the Free-For-All

Not everyone came to survive the waves. Some came to settle things.

Out of the old intermission custom — that breath between waves when blades are lowered — grew a second law: the PvP Arena. Same basin, same orbs if you want them, but the enemies are optional. A toggle, thrown before the gates close, decides whether the Orcs are invited. When the toggle is off, it is just fighters and stone.

Three rites are observed:

Duel — Two enter. Best of rounds. First to claim the allotted kills in a round takes it; first to the required rounds takes the match. No teams, no mercy, no third blade.

Team — Two sides, evened as fairly as the basin can manage. Your team is your color. Damage knows no friend-from-foe within a team only if you make it so — the Arena assigns sides at the gate and paints the nametag true. First team to the round target wins the round; rounds decide the match.

Free-For-All (FFA) — Everyone for themselves, up to twelve in the basin. No alliances that the Arena will honor. Highest score when the ash settles, or first to the kill threshold — the crowd decides before the first countdown.

Every mode is rounds-based. A round is a clean fight: countdown, then steel. When a round ends, the basin resets — positions, health, cooldowns wiped — and the next countdown begins. First to roundsToWin claims the day. The scoreboard remembers.

The Lobby — The Gate Before the Blade

You do not simply walk into a duel. You wait at the Lobby — a staging ground outside the basalt ring where fighters gather, stamp their mode on a board, and queue.

The Lobby is its own room, with its own keeper. You name your preferred mode — duel, team, ffa — and whether you want the old enemies shambling at the edges (pve: true/false). You queue. When enough have queued for the same rite, the keeper redirects you: a sealed reservation, a room ID, a promise that your seat is held. You step through and the gate closes behind you.

If you arrive alone and the basin beyond is empty and cold from a finished match, the Arena does not leave you stranded — it starts a fresh countdown for you, alone, rather than make you beg a ghost to click Play Again. The Arena is many things, but it is not cruel without purpose.

The ash still falls — slower now, finer, almost beautiful in the low sun. It coats the basalt, the swords, the orbs. Children of the basin draw circles in it and call them arenas of their own. The fighters know better: the only arena that matters is the one that measures you and does not lie.

Welcome to Ashfall. Choose your champion. Pick your mode. Queue. The countdown is already ticking.


Notes for Builders (non-diegetic)

  • Arena size: 60×60, same as the survival mode. Roles and numbers (HP, damage, cooldowns) are defined in src/shared/classes.js and src/shared/skills.js; upgrades in src/shared/progression.js.
  • Arena PvE toggle defaults off for pure PvP; when on, the wave system (src/shared/waves.js) runs identically to survival.
  • Rounds default to best-of-3 (roundsToWin = 2 for first-to-2, configurable to 1/3/5). Lobby matchmaking is Colyseus matchMaker reservation (queue → create → reserve → redirect).
  • Persistence (when it lands in Phase 6): data/players/<name>.json will remember level/deck between sessions. For now, every match starts Level 1.