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.
This commit is contained in:
+13
@@ -0,0 +1,13 @@
|
||||
/* Neon Rampage — small shared utilities. */
|
||||
(function () {
|
||||
'use strict';
|
||||
var US = (window.US = window.US || {});
|
||||
US.util = {
|
||||
rand: function (a, b) { return a + Math.random() * (b - a); },
|
||||
randInt: function (a, b) { return Math.floor(a + Math.random() * (b - a + 1)); },
|
||||
pick: function (arr) { return arr[Math.floor(Math.random() * arr.length)]; },
|
||||
clamp: function (v, a, b) { return v < a ? a : v > b ? b : v; },
|
||||
dist2: function (ax, ay, bx, by) { var dx = ax - bx, dy = ay - by; return dx * dx + dy * dy; },
|
||||
fmt: function (n) { return String(Math.floor(n)).replace(/\B(?=(\d{3})+(?!\d))/g, ','); }
|
||||
};
|
||||
})();
|
||||
Reference in New Issue
Block a user