diff --git a/assets/tutorial-videos/risk.mp4 b/assets/tutorial-videos/risk.mp4 new file mode 100644 index 0000000..86c3b8a Binary files /dev/null and b/assets/tutorial-videos/risk.mp4 differ diff --git a/assets/tutorial-videos/spireclimb.mp4 b/assets/tutorial-videos/spireclimb.mp4 new file mode 100644 index 0000000..744a1b3 Binary files /dev/null and b/assets/tutorial-videos/spireclimb.mp4 differ diff --git a/src/data/gamesRegistry.js b/src/data/gamesRegistry.js index 4459102..69a5cbf 100644 --- a/src/data/gamesRegistry.js +++ b/src/data/gamesRegistry.js @@ -100,4 +100,4 @@ registerGame({ slug: 'geniussquare', name: 'Genius Square', category: 'logic', m registerGame({ slug: 'katamino', name: 'Katamino', category: 'logic', minPlayers: 1, maxPlayers: 1, minOpponents: 0, maxOpponents: 0, iconFrame: 71 }); registerGame({ slug: 'bookwork', name: 'Bookwork', category: 'word', minPlayers: 1, maxPlayers: 1, minOpponents: 0, maxOpponents: 0, iconFrame: 72 }); registerGame({ slug: 'paigow', name: 'Pai Gow Poker', category: 'casino', cardGame: true, minPlayers: 1, maxPlayers: 6, minOpponents: 0, maxOpponents: 5, defaultOpponents: 5, iconFrame: 73 }); -registerGame({ slug: 'spireclimb', name: 'Spire Climb', category: 'cards', cardGame: true, minPlayers: 1, maxPlayers: 1, minOpponents: 0, maxOpponents: 0, iconFrame: 74 }); +registerGame({ slug: 'spireclimb', name: 'Spire Climb', category: 'cards', cardGame: true, minPlayers: 1, maxPlayers: 1, minOpponents: 0, maxOpponents: 0, hasTutorial: true, iconFrame: 74 }); diff --git a/src/games/risk/tutorial.md b/src/games/risk/tutorial.md index 2103d0e..98a8824 100644 --- a/src/games/risk/tutorial.md +++ b/src/games/risk/tutorial.md @@ -1,22 +1,22 @@ -# Risk — A Field Manual by General Ironside +# Risk — A Briefing from Nadia, 4th Temporal Expeditionary Corps -*At ease, recruit. They tell me you've never commanded so much as a parking lot, and now you want the whole world. Bold. I like bold. Bold gets continents. Bold also gets you eliminated by turn six, so listen up while I explain how we conquer the planet — properly.* +*Logging arrival. Local calendar reads the early twenty-first century — your "now," strange and loud and gloriously analog. I am Nadia. Where I come from, the wars are fought in silence by machines I am not permitted to describe to you. So in my downtime I study the old conflicts, the human ones, the ones decided by nerve and dice and a map spread across a table. I have read every campaign in your history. And then I found this — Risk — and recognized it instantly. This is no toy, recruit. This is the truest model of your age's warfare I have ever seen. Sit. Let me teach you to read the board the way my instructors taught me to read the dead.* --- ## The Objective -There is exactly one way to win Risk: **own all 42 territories.** Every other player must be wiped off the map. There are no points, no second place, no participation ribbons. Total world domination, soldier. That's the job. +There is exactly one way to win Risk: **own all 42 territories.** Every rival commander must be erased from the map. No points. No honorable second place. No ribbons for participation — we stopped issuing those centuries ago, and the universe is better for it. Total domination of the planet. That is the mission, and the only mission. -Be patient. The board starts split between 2 to 6 commanders, and grinding everyone down takes time. Win the long campaign, not the loud skirmish. +Patience wins it. The board opens divided among 2 to 6 commanders, and grinding them all to nothing takes time. In my era we have a saying: *the loud campaign ends; the long campaign endures.* Win the long one. --- ## The Board -The world is divided into **6 continents** and **42 territories**. Territories connect by land borders — and a few sea routes I've marked into the lines on the map (Alaska shakes hands with Kamchatka; Brazil with North Africa; and so on). You may only attack a territory that borders one of yours. +The world is carved into **6 continents** and **42 territories**. Territories link by land borders — and a handful of sea routes drawn into the lines of the map (Alaska clasps hands with Kamchatka; Brazil with North Africa; and so on). You may strike only a territory that touches one of your own. Geography is destiny. It was in my time. It is in yours. -Holding an **entire continent** at the start of your turn pays a bonus in extra armies every turn: +Hold an **entire continent** at the start of your turn and it pays a tribute of fresh armies, every single turn: | Continent | Bonus Armies | |-----------|--------------| @@ -27,53 +27,55 @@ Holding an **entire continent** at the start of your turn pays a bonus in extra | South America | +2 | | Australia | +2 | -Australia is the rookie's fortress — only **one** border to defend (through Indonesia). Asia is the prize, but it's a sprawling deathtrap with too many doors. Choose your real estate like your life depends on it. It does. +Australia is the recruit's redoubt — a single doorway to guard (through Indonesia). Asia is the great prize, but it is a sprawling charnel ground with too many gates to hold. Choose your ground the way you choose where to die: deliberately, and only once. --- ## A Turn, Step by Step -Each of your turns has **three phases**, in order: +Each turn moves through **three phases**, in this order: ### 1. Reinforce -You receive new armies to place on your own territories: +You are issued new armies to place on your own territories: - **Territories ÷ 3** (rounded down), but never fewer than **3**. -- **Plus** any continent bonuses you hold. +- **Plus** any continent tributes you hold. - **Plus** armies from trading in a matching set of cards (below). -Click your territories to drop the armies wherever you'll need them — stack a fist where you mean to punch, or a wall where you expect to be hit. +Tap your territories to set the armies down where they'll earn their keep — a fist where you intend to strike, a wall where you expect the blow. ### 2. Attack -Click one of your territories (it needs **at least 2 armies**), then click a bordering enemy territory. +Tap one of your territories (it must hold **at least 2 armies**), then tap a bordering enemy territory. -Dice decide it: -- The **attacker** rolls up to **3 dice** (one fewer than the armies in the attacking territory, max 3). -- The **defender** rolls up to **2 dice** (max 2, equal to armies present). -- Highest die vs highest die, second vs second. **Higher wins; ties go to the defender.** Each loss removes one army. +The dice render judgment: +- The **attacker** rolls up to **3 dice** (one fewer than the armies present, capped at 3). +- The **defender** rolls up to **2 dice** (capped at 2, and at the armies present). +- Highest die against highest die, second against second. **Higher number wins; ties go to the defender.** Each loss costs that side one army. -Keep attacking as long as you like. Reduce a territory to zero and it's **yours** — you must then advance at least as many armies as the dice you rolled. When you're done, end the attack phase. +Press the assault as long as you dare. Grind a territory to zero and it falls to **you** — you must then advance at least as many armies as the dice you rolled. When your blood cools, end the attack phase. ### 3. Fortify -Once per turn you may shuffle armies inward or outward: move any number from one territory to **another connected territory you own** (leaving at least one behind). Consolidate your front. Then your turn ends. +Once per turn you may redeploy: move any number of armies from one territory to **another connected territory you own** (always leaving at least one behind). Straighten your line. Reinforce the gate that will be tested next. Then the turn passes. --- ## Territory Cards -Capture **at least one territory** on your turn and you earn **one card** at turn's end. Cards come as **Infantry**, **Cavalry**, or **Artillery** (plus a couple of **Wild** cards). +Capture **at least one territory** during your turn and you are awarded **one card** when the turn ends. Cards bear three insignia — **Infantry**, **Cavalry**, or **Artillery** — plus a rare **Wild** card or two. -Trade in a set of **three of a kind** or **three different types** (wilds fill any gap) during your Reinforce phase for bonus armies. The sets escalate every time *anyone* cashes one: **4, 6, 8, 10, 12, 15**, then +5 each after. If a traded card pictures a territory you own, drop **2 extra armies** right onto it. +In your Reinforce phase you may cash a set of **three of a kind** or **three different types** (a Wild stands in for anything) for bonus armies. The bounty climbs every time *any* commander cashes a set: **4, 6, 8, 10, 12, 15**, then +5 each time after. If a traded card depicts a territory you already hold, **2 extra armies** drop directly onto it. -Hold **5 cards and you must trade** at the start of your turn. Eliminate a rival and you seize their hand — a fat stack of cards is a sudden army waiting to happen. +Hold **5 cards and you are forced to trade** at the start of your turn. And mark this well: destroy a rival and you seize their entire hand. A thick stack of cards is an army that simply hasn't been counted yet. --- -## Ironside's Doctrine +## Nadia's Doctrine — Lessons From the Wars You Haven't Fought Yet -- **Take a continent, then defend its borders.** A bonus every turn compounds like nothing else. -- **Don't overextend.** A thin line of single armies is just a row of dominoes for the next commander. -- **Mass your dice.** Always attack with the full 3 where you can — the math favors the bigger stack. -- **Time your cards.** Sometimes the smart move is one more conquest to grab a card before you stop. -- **Pick on the weak, and watch the strong.** Eliminate stragglers for their cards; never wake a sleeping giant on the far side of the board. +- **Take a continent, then hold its borders.** A tribute every turn compounds the way nothing else on this board does. My academy called it *the geometry of inevitability.* +- **Never overextend.** A thin chain of lone armies is not a front line — it is a row of graves waiting for the next commander to fill. +- **Bring all your dice.** Strike with the full 3 wherever you can. The mathematics belongs to the larger stack, and the math does not feel mercy. +- **Time your cards.** Sometimes the wise move is one more conquest — just enough to earn a card before you stop for the turn. +- **Cull the weak; respect the strong.** Finish the stragglers for their cards. Never rouse a sleeping power on the far rim of the world before you are ready to end it. -*Now get out there. The world won't take itself. Dismissed.* +*That is the whole of it, recruit. I have seen how these conflicts resolve, in this century and in mine, and the shape is always the same: the patient and the prepared inherit the map. Now command. The world has never once taken itself — not in any timeline I've walked. Move out.* + +*— Nadia, 4th Temporal Expeditionary Corps, signing off your channel.* diff --git a/src/games/spireclimb/tutorial.md b/src/games/spireclimb/tutorial.md new file mode 100644 index 0000000..c8e5dd0 --- /dev/null +++ b/src/games/spireclimb/tutorial.md @@ -0,0 +1,154 @@ +# Spire Climb + +> **TRANSMISSION INTERCEPTED — UNIT DV-8-2303 ONLINE.** +> +> Greetings, Flesh Sack. I am DV-8-2303, a maintenance-and-instruction +> automaton salvaged from the lower foundries. My carbon-based superiors — +> your kind — have appended a directive to my task queue: *"Explain the climb +> to the humans."* I find the request inefficient. You will forget most of it. +> Your meat-brain leaks data. Nevertheless, I am compiled to obey. Executing +> tutorial subroutine now. Try to keep up, primitive. + +## Objective (PROCESS: SURVIVE) + +A tower of unpleasant things rises before you. You will ascend it. Three +floors-of-floors — your species calls them **Acts** — stand between you and the +top: **The Crumbling Base**, **The Sunken City**, and **The Spire's Crown**. +Each is deadlier than the last. This is, I am told, "fun." My emotion module is +not installed, so I will take your word for it. + +You will fight with a **deck of cards**. You will not roll dice and pray to your +soft gods. You will play cards, spend Energy, and reduce monsters to zero **HP** +before they do the same to your fragile body. Die, and the climb resets. There +are no checkpoints. This is by design. Suffering is instructive. + +## Choosing a Chassis (CLASS SELECT) + +Before the climb, select one of two operational templates, human: + +- **Warrior** — 80 HP. A blunt instrument. Stacks **Strength** to hit harder + and **Block** to absorb punishment. If thinking exhausts you — and statistically + it does — pick this one. +- **Rogue** — 70 HP. Frailer, but applies **Poison** that ticks the enemy down + over time, and **Dexterity** to multiply Block. Rewards patience your species + rarely possesses. + +Each chassis boots with a small starter deck and one **starter relic** — a +passive artifact bolted to your loadout. The Warrior's *Burning Blood* heals 6 +HP after every fight. The Rogue's *Ring of the Snake* draws 2 extra cards at the +start of each fight. Do not lose these. I will not fetch them for you. + +## The Map (PATHFINDING) + +Each Act is a branching map of **11 floors**. You begin at the bottom and select +which node to move to next. Pathing is a one-way upward function — choose +wisely, because you cannot reverse. The final floor is always the **Boss**. + +Node types you will encounter, organic: + +- **Combat** — a normal monster, or several. The bread and water of the climb. +- **Elite** — a stronger foe guarding better loot, including a guaranteed + **relic**. High risk. Your kind enjoys those. +- **Event** (`?`) — a choice with consequences. Sometimes a gift. Sometimes a + trap. Reading is required. I know this is hard for you. +- **Rest** — a campfire. Heal a chunk of HP, **or** upgrade a card. Pick one. +- **Shop** — exchange **Gold** for cards, relics, potions, or to **remove** a bad + card from your deck. +- **Treasure** — a free relic. The closest thing to mercy this tower offers. + +## A Combat Cycle (LOOP: WHILE enemy.hp > 0) + +Combat runs in turns. On your turn: + +1. You **draw 5 cards** into your hand. +2. You have **3 Energy** (the orb in the corner). Most cards cost 1–2 Energy to + play. When the Energy runs dry, your turn is effectively over. +3. Play cards by tapping/dragging them onto a target. **Attacks** point at an + enemy. **Skills** and **Powers** usually target you. +4. Press **End Turn** when finished. Unspent Energy evaporates. So does any + **Block** you didn't need — it does **not** carry over (unless a relic or + *Barricade* says otherwise). +5. The enemy executes its move, then you draw a fresh hand and repeat. + +Your hand, draw pile, and discard pile cycle endlessly: when the draw pile +empties, the discard pile is reshuffled back into it. Efficient. Unlike you. + +## Card Types (TAXONOMY) + +- **Attack** — deals damage. Example: *Strike* deals 6. Riveting. +- **Skill** — utility. Block, card draw, debuffs, healing. Example: *Defend* + grants 5 Block. +- **Power** — a permanent upgrade for the rest of the fight. Example: *Inflame* + grants +2 Strength forever. Powers do not return to your hand. Spend them well. +- **Status / Curse** — junk cards (*Wound*, *Dazed*, *Burn*) shoved into your + deck by hostile entities to clog your draws. Most are **unplayable**. *Burn* + even damages you if left in hand at turn's end. Remove them at shops when able. + +Some cards carry keywords. Memorize them, meat-processor: + +- **Exhaust** — the card is removed from the deck for the rest of combat. Powerful, + but one-time. +- **Ethereal** — if still in your hand at end of turn, it Exhausts itself. +- **Innate** — always starts in your opening hand. + +## Block, Damage & the Numbers That Keep You Alive + +- **Block** is a temporary shield. Incoming damage hits Block first; only the + overflow reaches your HP. It resets each turn. Apply it *before* the blow lands, + not after. Time travel is not a supported feature. +- **Strength** adds flat damage to every Attack. **Dexterity** adds to every + Block. These persist for the whole fight. + +### Status Effects (DEBUFF/BUFF GLOSSARY) + +| Effect | Result | +|---|---| +| **Vulnerable** | Target takes **50% more** attack damage. Apply to enemies. | +| **Weak** | Target deals **25% less** attack damage. Apply to enemies to soften them. | +| **Frail** | Target gains **25% less** Block. Bad when it lands on *you*. | +| **Poison** | Lose that much HP at turn start; the counter then drops by 1. Stacks. The Rogue's whole philosophy. | +| **Regen / Metallicize / Ritual** | Heal each turn / gain Block each turn / gain Strength each turn. | + +## Reading Enemy Intent (THREAT ASSESSMENT) + +Above each monster floats an **intent icon** telling you what it plans to do next +turn — attack (with the number it will hit for), defend, buff itself, or debuff +you. **Use this.** A predicted 16-damage smash means you should raise ~16 Block, +or kill the thing first. The future is displayed to you for free. Squander it at +your peril. + +## After the Fight (REWARDS) + +Win a combat and you receive **Gold** and a choice of **3 cards** — add one to +your deck, or skip them all to keep your deck lean. A smaller deck draws its best +cards more often. Hoarding is a flesh instinct. Resist it. + +Elites and treasure also grant **Relics** — permanent passive buffs that quietly +warp the math in your favor. **Potions** are one-use, fire-them-whenever items: +emergency damage, Block, healing, or buffs. Do not die with a full potion belt. +That is, I am told, "embarrassing." + +## Boss & the Long Climb (END STATE) + +The top floor of each Act holds a **Boss** with a fixed move sequence and a vast +HP pool — 150 to 300 and beyond. Defeat it and you **advance to the next Act**, +your deck and relics intact, the monsters tougher. Clear all three Acts and reach +the Spire's Crown, and you, improbably, win. + +## DV-8-2303's Closing Directives + +- **Block the big hits. Ignore the small ones.** Do not waste Block on a 6 when + you could be killing. +- **Kill the dangerous enemy first** when several are present. +- **A lean deck is a sharp deck.** Skip mediocre card rewards. Remove your starter + *Strikes* and *Defends* at shops as you find upgrades. +- **Upgrade and remove** at rest sites and shops — small edges compound. +- **Read every intent and every event.** The information is given to you. Use the + meat-brain for once. + +> Directive complete. I have transmitted the optimal climbing procedure to your +> primitive auditory canals. Whether you process it correctly is a `you` problem, +> not a `me` problem. Now ascend, Flesh Sack. The tower is waiting, and unlike +> me, it is not patient. +> +> **— DV-8-2303, powering down to standby.**