Files
primal-rampage/README.md
T
Primal Rampage Bot 2024ea48b5 Primal Rampage — prehistoric survival wave shooter
Vanilla JS + Canvas 2D, zero dependencies.

Gameplay: campaign waves vs 12 dino species + 3 bosses, arena mode,
7 weapons, hero talents, pets, ult/bombs, card roguelite picks.
World: day/night cycle, weather fronts (rain+lightning), Blood Moon
weekends, 3 act biomes (jungle -> swamp -> ashlands with lava veins).
Meta: gems economy, upgrade tree, quests, bestiary, achievements,
shop (weapons/heroes/skins incl. premium), revive, ad-cap system,
endless scaling past wave 25, live-painted shop/bestiary icons,
pro main menu, auto-aim toggle (F). Headless smoke suite included.
2026-08-23 04:26:58 +00:00

126 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
- **Act biomes**: waves 19 in **The Green Jungle**, 1018 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).