56 lines
3.8 KiB
JSON
56 lines
3.8 KiB
JSON
{
|
|
"_readme": [
|
|
"Drop-in art for Spire Climb.",
|
|
"CREATURES: a dedicated placeholder sheet ships at the creatureSheet.path below",
|
|
" (spireclimb-creatures.png, 1500x600 = 10 frames of 300x300, 5 cols x 2 rows,",
|
|
" row-major frame order). Regenerate it with `node genSpireClimbCreatures.js`, or",
|
|
" paint over it keeping the same layout/frame order. The 'creatures' map ties each",
|
|
" enemy id to its frame index.",
|
|
"CARDS: still procedural until you add a sheet. To add card art:",
|
|
" 1. Drop spireclimb-cards.png into /assets/images/.",
|
|
" 2. Set cardSheet.path below + frameWidth/frameHeight.",
|
|
" 3. Map each card id to its 0-based frame index in 'cards'.",
|
|
"Cards show the illustration inside the procedural card frame's art window (no",
|
|
"border/text needed). Recommended card frame 250x160 (art-window aspect). See",
|
|
"src/games/spireclimb/sprites.md for the full sprite spec + frame maps.",
|
|
"PLAYER SHEETS: one horizontal strip per class (warrior, rogue), 3 frames of",
|
|
" 300x300 each (total sheet size 900x300). Frame order: 0=idle, 1=attack, 2=hit.",
|
|
" Drop spireclimb-warrior.png and spireclimb-rogue.png into /assets/images/.",
|
|
" The game reads playerSheets below to load and display them."
|
|
],
|
|
"cardSheet": { "key": "spireclimb-cards", "path": "assets/images/spireclimb-cards.png", "frameWidth": 250, "frameHeight": 160 },
|
|
"creatureSheet": { "key": "spireclimb-creatures", "path": "assets/images/spireclimb-creatures.png", "frameWidth": 300, "frameHeight": 300 },
|
|
"playerSheets": {
|
|
"warrior": { "key": "spireclimb-warrior", "path": "assets/images/spireclimb-warrior.png", "frameWidth": 300, "frameHeight": 300 },
|
|
"rogue": { "key": "spireclimb-rogue", "path": "assets/images/spireclimb-rogue.png", "frameWidth": 300, "frameHeight": 300 }
|
|
},
|
|
|
|
"cards": {
|
|
"strike": 0, "defend": 1, "bash": 2, "neutralize": 3, "survivor": 4,
|
|
"ironwave": 5, "pommelstrike": 6, "cleave": 7, "shrugitoff": 8, "clothesline": 9,
|
|
"inflame": 10, "uppercut": 11, "ghostlyarmor": 12, "bodyslam": 13, "metallicize": 14,
|
|
"whirlwind": 15, "limitbreak": 16, "demonform": 17,
|
|
"daggerthrow": 18, "poisonedstab": 19, "deadlypoison": 20, "backflip": 21, "sneakyhit": 22,
|
|
"footwork": 23, "bladedance": 24, "caltrops": 25, "bouncingblade": 26, "crippling": 27, "catalyst": 28,
|
|
"bandage": 29, "flashofsteel": 30,
|
|
"wound": 31, "dazed": 32, "burn": 33,
|
|
"anger": 34, "clash": 35, "flex": 36, "headbutt": 37, "heavyblade": 38, "twinstrike": 39, "thunderclap": 40, "wildstrike": 41,
|
|
"bloodletting": 42, "carnage": 43, "disarm": 44, "entrench": 45, "hemokinesis": 46, "intimidate": 47, "pummel": 48, "secondwind": 49, "seeingred": 50, "shockwave": 51,
|
|
"barricade": 52, "bludgeon": 53, "fiendfire": 54, "immolate": 55, "impervious": 56, "offering": 57, "reaper": 58,
|
|
"acrobatics": 59, "bane": 60, "cloakdagger": 61, "daggerspray": 62, "deflect": 63, "flyingknee": 64, "outmaneuver": 65, "prepared": 66, "quickslash": 67, "slice": 68, "suckerpunch": 69,
|
|
"backstab": 70, "dash": 71, "eviscerate": 72, "finisher": 73, "flechettes": 74, "legsweep": 75, "noxiousfumes": 76, "riddlewithholes": 77,
|
|
"thousandcuts": 78, "adrenaline": 79, "diedidie": 80, "envenom": 81, "grandfinale": 82,
|
|
"shiv": 83, "bite": 84, "blind": 85, "deepbreath": 86, "dramaticEntrance": 87, "finesse": 88, "goodinstincts": 89, "swiftstrike": 90
|
|
},
|
|
|
|
"creatures": {
|
|
"jawworm": 0, "cultist": 1, "louse": 2, "fungi": 3, "spikeslime": 4,
|
|
"sentry": 5, "gremlinnob": 6, "lagavulin": 7,
|
|
"guardian": 8, "slimeboss": 9,
|
|
"centurion": 10, "mystic": 11, "byrd": 12, "snecko": 13,
|
|
"taskmaster": 14, "bookwyrm": 15, "automaton": 16,
|
|
"darkling": 17, "spiker": 18, "maw": 19, "wraith": 20,
|
|
"nemesis": 21, "giant": 22, "awakened": 23
|
|
}
|
|
}
|