- Graze slow-mo, perfect-wave FRENZY (x3 amber), ghost records, dynamic hunter titles - Daily Hub: 7-day login calendar, animated lucky wheel, boss chest keys, pet eggs with rarity tiers + pity counter and real stat perks - Seeded daily challenge (server-consistent modifiers, local top-5), hourly Golden Herd stampede, weekly Raid Colossus with damage tiers - Rebirth prestige with Ancient Gem permanent perk shop - Weapon mastery stars (+2%/level), bestiary milestone gems - Weekly season points with Bronze..Diamond rank badges - Shareable PNG result card on game over
133 lines
6.2 KiB
Markdown
133 lines
6.2 KiB
Markdown
# PRIMAL RAMPAGE — Stone Age Survival
|
||
|
||
A from-scratch, dependency-free clone of the *Unfair Shooter*-style browser
|
||
wave shooter, re-themed as **prehistoric tribe survival vs dinosaurs**:
|
||
endless campaign waves (plus an **Endless Mode** past wave 25), alpha-dinosaur
|
||
bosses every 5th wave with Jurassic-style footstep tremors, roguelite card
|
||
picks between waves, an ON FIRE heat/combo system, a full meta-progression
|
||
layer (bestiary, permanent upgrades, daily quests, achievements, pets,
|
||
hard currency), and an Arena deathmatch vs rival tribesmen bots.
|
||
|
||
Everything is original: code, **procedurally drawn canvas art** (cel-outlined
|
||
tribal hero with recoil + muzzle flash, raptors with animated tails & jaws,
|
||
triceratops, dilophosaurus frill-flare spitters, flapping pteranodons, a
|
||
sail-backed Spinosaurus boss, a T-Rex with hinged jaw…), synthesized
|
||
WebAudio SFX/music/wind ambience, and a living jungle arena. No assets were
|
||
taken from any existing game.
|
||
|
||
## Run
|
||
|
||
```bash
|
||
cd jsshooter
|
||
python3 -m http.server 8899
|
||
# open http://127.0.0.1:8899/
|
||
```
|
||
|
||
No build step — plain script tags.
|
||
|
||
## Controls
|
||
|
||
| Action | Keyboard / Mouse | Touch |
|
||
|---|---|---|
|
||
| Move | WASD / Arrows | left stick |
|
||
| Aim + fire | mouse (hold LMB or Space; auto-fire on by default) | right stick + 🔥 |
|
||
| Ultimate | R | ★ |
|
||
| Bomb | Q | 💣 |
|
||
| Pause | P / Esc | ⏸ |
|
||
|
||
## The cast
|
||
|
||
- **Retention systems**: graze slow-mo, perfect-wave FRENZY (×3 amber),
|
||
ghost-record banner, hunter titles, 7-day login calendar, daily lucky
|
||
wheel, boss chest keys, pet eggs with rarity + pity, seeded Daily
|
||
Challenge with local top-5 board, hourly Golden Herd stampede, weekly
|
||
Raid Colossus with damage tiers, Rebirth prestige (Ancient Gem perks),
|
||
weapon mastery stars, bestiary milestone gems, weekly season ranks and
|
||
a shareable result card.
|
||
- **Act biomes**: waves 1–9 in **The Green Jungle**, 10–18 descend into
|
||
**The Murk Swamp** (creeping fog banks, two extra tar pits), 19+ burn
|
||
across **The Ashlands** (pulsing lava veins that sear anyone standing on
|
||
them). Ground palette, grass and rim tint all shift per biome.
|
||
- **Beasts**: Velociraptor, Compys, Dilophosaurus (venom spit — its frill
|
||
flares before firing!), Triceratops, Stegosaurus (plate rows + thagomizer),
|
||
Pachycephalosaurus (telegraphed `!` head-butt dash), Pteranodon (splits
|
||
into chicks), Alpha Raptor. Kills leave blood decals; runners kick dust;
|
||
the player leaves alternating footprints.
|
||
- **Alphas (boss waves)**: REX THE ELDER (charges, calls raptors) → SPINO OF
|
||
THE REEDS (sail, venom barrages) → GIGA BROODMOTHER (splits into two
|
||
juveniles). Every stride shakes the screen — harder up close — with dust
|
||
rings and a deep stomp thud.
|
||
- **Arsenal**: Slingshot → Bone Blowpipe → Spear Burst → Obsidian Lance →
|
||
Fire Bomb Thrower.
|
||
- **Heroes**: Raider, Trail Runner, Bear-Clan Brute, Spirit Hunter; war-paint
|
||
skins incl. premium gem tier (Ashfang Chief, Jade Serpent, Solaris).
|
||
|
||
## Living arena & atmosphere
|
||
|
||
Campfire hub with flickering light at the world centre · tar pits that slow
|
||
anything crossing them (55%) · giant buried T-Rex skull + ribcage landmarks ·
|
||
totem stakes · a 60s **day/night cycle** (night floods the valley in
|
||
darkness, punched through by warm light around every flame; beasts move
|
||
8% faster under moonlight) · **tropical rain fronts** with lightning flashes
|
||
and rolling thunder · **Blood Moon weekend live-op** (real-calendar Sat/Sun:
|
||
amber ×2, +25% herd budget, red cast + HUD badge) · drifting cloud shadows · circling vulture shadow · floating
|
||
ash motes · wind ambience with distant beast calls · painted dusk menu scene
|
||
(volcano, brachiosaurus, raptor silhouettes). Low quality setting disables
|
||
the air layers for weak devices.
|
||
|
||
## Meta progression (commercialization layer)
|
||
|
||
- **💪 Permanent upgrades** — six amber-bought nodes applied to every run:
|
||
Wolf-Heart (+HP), Viper Fangs (+dmg%), Wind Heels (+speed%),
|
||
Young Sun (+ult rate), Vulture Eye (+amber%), Shaman Pouch (+start bombs).
|
||
- **📖 Bestiary** — 12 species entries with bilingual lore; completing one
|
||
pays Ngọn Lửa (🔥 hard currency).
|
||
- **📜 Daily quests** — 3 of 6 picked deterministically per date, login
|
||
streak counter, claim rewards (🔥 + $).
|
||
- **🏆 Achievements** — ten unlock conditions, each grants 🔥.
|
||
- **🥚 Pet raptor** — bosses may drop an egg; hatch names a companion that
|
||
follows you and snipes pebbles; persists across runs.
|
||
- **🔥 Ngọn Lửa economy + rewarded-ad stub** — post-death “watch ad” bonus
|
||
(5s fake countdown, capped 3/day); swap in a real H5 ads SDK at
|
||
`setupAdButton()` in `js/ui.js`. Server leaderboards/accounts plug in via
|
||
`US.net` hooks noted in `js/save.js`.
|
||
- **🎓 First-run tutorial** — five skippable steps; settings add screen-shake
|
||
amount slider and effects quality toggle.
|
||
|
||
## HUD
|
||
|
||
Professional panel layout: vitals card (HP gradient bar + HEAT/ON FIRE +
|
||
weapon chip + bomb icons), wave banner with pill remaining-count, full-width
|
||
boss bar with name/percent, economy card (amber + score) with pulsing combo
|
||
pill, ult dial with % readout and ready flare, danger vignette under 30% HP.
|
||
|
||
## Layout
|
||
|
||
```
|
||
index.html shell + DOM UI overlays (menus, quests, bestiary, tutorial)
|
||
style.css stone-age jungle theme + meta UI bits
|
||
js/i18n.js EN/VI strings
|
||
js/save.js profile v2: gems/upgrades/bestiary/quests/achievements/pet
|
||
js/util.js helpers
|
||
js/audio.js synth SFX + music loop + wind ambience + stomps
|
||
js/art.js procedural painters: hero, dinos, ground props, sky, menus
|
||
js/data.js weapons/heroes/skins/beasts/alphas/cards/upgrades/bestiary…
|
||
js/entities.js player/enemy/bullet/pickup/particles
|
||
js/game.js engine: campaign+arena+endless, On Fire, HUD, meta hooks
|
||
js/ui.js menus/shop tabs/cards/overlays/tutorial/ad stub
|
||
js/main.js input (keyboard/mouse/touch sticks) + bootstrap
|
||
```
|
||
|
||
## Testing
|
||
|
||
`/tmp/smoke.js` is a headless harness (DOM/canvas stubs incl. gradient
|
||
factories, pinned-target sims) that boots the real modules and simulates
|
||
campaign, boss waves, cards, shop, arena, plus the meta layer:
|
||
|
||
```bash
|
||
node /tmp/smoke.js # ALL SMOKE TESTS PASSED
|
||
```
|
||
|
||
Publishing: `cloudflared tunnel --url http://127.0.0.1:8899 --no-autoupdate`
|
||
(quick tunnels are ephemeral — restart to get a fresh URL).
|