{ "ram": { "id": "ramming_charge", "label": "Ramming Charge", "_comment": "THE HEAD-ON OPENING. Type Offense (the type other skills will reference), 60 energy off the right orb, a 6 second recharge, five points to spend. Rank 0 = inert (no seat lights); rank ≥1 = castable. `seat: 1` is the default binding on a fresh run — keys 1-8 press the seat, not the skill.", "type": "Offense", "frame": 0, "energy": 60, "cooldown": 6, "maxPoints": 5, "requires": [], "seat": 1, "node": { "col": 1, "row": 0 }, "description": "Charge the nearest enemy at 3x speed over 1 second at ramming speed. Inflict 4x regular damage upon hit, 2x additional damage per additional skill point.", "shortDescription": "Ram the nearest hostile for 4x weapon damage.", "effect": { "_comment": "kind = the handler in js/skills/SkillEffects.js. dashBlast: lock the flight controls, drive the hull at speedMul × the ship's own max speed along the line to the aim point, and detonate on ARRIVAL (the moment it reaches the point, or when durationMs runs out — whichever lands first). The aim point is the nearest hostile's position AT CAST plus overshootPx PAST it, so the ship ends up through the enemy rather than inside it. blastRadiusPx = how far the arrival shock reaches from the ship (every hostile inside takes the hit once). damageMul is a multiple of the cannon's own damage (data/combat.json → player.weapon.damage) at rank 1; damageMulPerRank adds to it for every skill point AFTER the first — 4x at 1/5, 6x at 2/5 … 12x at 5/5.", "kind": "dashBlast", "speedMul": 3, "durationMs": 1000, "overshootPx": 90, "blastRadiusPx": 170, "damageMul": 4, "damageMulPerRank": 2, "fx": { "_comment": "The charge's own dressing (js/combat/Fx.js reads these; every key has a fallback): trailColor = the comet head's shed embers AND the arrival's ember ring, ringColor = the DAMAGE-RADIUS ring + the shock ripples, ringLifeMs = how long that radius ring lingers, sfxEvent = a COMBAT_SFX EVENT (js/combat/CombatSfx.js) played with the thunder boom ('kill') under the impact — 'hull' is the heavy armor-crack voice. The comet head itself, the lingering ~1 s ember trail and the fireball are Fx's fixed craft; these colors skin them.", "trailColor": "#ff3a4d", "trailAlpha": 0.55, "ringColor": "#ffd84d", "ringLifeMs": 480, "sfxEvent": "hull" } } }, "plate": { "id": "reinforced_plating", "_comment": "THE HULL THAT WILL NOT QUIT. Type Passive — no cast, no energy, no recharge, and it can NEVER hold a bar seat: it works from rank 1 onward. `seat` is null to say so out loud in the data.", "label": "Reinforced Plating", "type": "Passive", "frame": 1, "energy": 0, "cooldown": 0, "maxPoints": 5, "requires": [], "seat": null, "node": { "col": 3, "row": 0 }, "description": "Strengthen your ship's hull, adding a 5% increase in hull strength, with an additional 5% increase per additional skill point.", "shortDescription": "+5% hull. +5% more per point.", "effect": { "_comment": "hullPool: the armor's base hull (the ship's own stats.hullIntegrity, or data/combat.json → playerShip.hull on the range) is multiplied by 1 + hullBonusPerRank × rank — 5% at 1/5 … 25% at 5/5. THE MULTIPLIER IS RE-ROLLED FROM BASE EVERY TIME (never compounded on last frame's max), so rank-ups, level-up armor bumps (data/progression.json → reward), combat restarts and save/load can never stack it twice. The hull orb shows the bigger number.", "kind": "hullPool", "hullBonusPerRank": 0.05 } }, "regions": { "panel": { "x": 29, "y": 29, "w": 1222, "h": 662 }, "plate": { "x": 45, "y": 85, "w": 321, "h": 389 }, "tree": { "x": 380, "y": 85, "w": 855, "h": 389 }, "drawer": { "x": 45, "y": 488, "w": 1190, "h": 187 } }, "final": { "open": false, "shipsOpen": false, "door": true, "selected": null, "regions": { "panel": { "x": 29, "y": 29, "w": 1222, "h": 662 }, "plate": { "x": 45, "y": 85, "w": 321, "h": 389 }, "tree": { "x": 380, "y": 85, "w": 855, "h": 389 }, "drawer": { "x": 45, "y": 488, "w": 1190, "h": 187 } }, "scroll": { "scroll": 0, "maxScroll": 0 }, "snap": { "hasClass": true, "classId": "vanguard", "className": "VANGUARD", "accentCss": "#ff3a4d", "frame": 0, "iconKey": "class_icons", "iconReady": true, "points": 9, "spent": 1, "pending": 0, "inSession": false, "seatCount": 8, "rows": [ { "def": { "id": "ramming_charge", "classId": "vanguard", "label": "Ramming Charge", "typeId": "Offense", "type": { "id": "Offense", "label": "OFFENSE", "accent": 16726605, "accentCss": "#ff3a4d", "passive": false }, "frame": 0, "energy": 60, "cooldown": 6, "maxPoints": 5, "requires": [], "seatDefault": 1, "layout": { "col": 1, "row": 0 }, "description": "Charge the nearest enemy at 3x speed over 1 second at ramming speed. Inflict 4x regular damage upon hit, 2x additional damage per additional skill point.", "shortDescription": "Ram the nearest hostile for 4x weapon damage.", "effect": { "kind": "dashBlast", "speedMul": 3, "durationMs": 1000, "overshootPx": 90, "blastRadiusPx": 170, "damageMul": 4, "damageMulPerRank": 2, "fx": { "_comment": "The charge's own dressing (js/combat/Fx.js reads these; every key has a fallback): trailColor = the comet head's shed embers AND the arrival's ember ring, ringColor = the DAMAGE-RADIUS ring + the shock ripples, ringLifeMs = how long that radius ring lingers, sfxEvent = a COMBAT_SFX EVENT (js/combat/CombatSfx.js) played with the thunder boom ('kill') under the impact — 'hull' is the heavy armor-crack voice. The comet head itself, the lingering ~1 s ember trail and the fireball are Fx's fixed craft; these colors skin them.", "trailColor": "#ff3a4d", "trailAlpha": 0.55, "ringColor": "#ffd84d", "ringLifeMs": 480, "sfxEvent": "hull" } }, "passive": false, "castable": true }, "id": "ramming_charge", "rank": 1, "max": 5, "state": "upgradable", "locked": null, "seat": 3, "spendable": true, "pending": 0, "resettable": false }, { "def": { "id": "reinforced_plating", "classId": "vanguard", "label": "Reinforced Plating", "typeId": "Passive", "type": { "id": "Passive", "label": "PASSIVE", "accent": 12616956, "accentCss": "#c084fc", "passive": true }, "frame": 1, "energy": 0, "cooldown": 0, "maxPoints": 5, "requires": [], "seatDefault": null, "layout": { "col": 3, "row": 0 }, "description": "Strengthen your ship's hull, adding a 5% increase in hull strength, with an additional 5% increase per additional skill point.", "shortDescription": "+5% hull. +5% more per point.", "effect": { "kind": "hullPool", "hullBonusPerRank": 0.05 }, "passive": true, "castable": false }, "id": "reinforced_plating", "rank": 0, "max": 5, "state": "available", "locked": null, "seat": null, "spendable": true, "pending": 0, "resettable": false } ] }, "hits": [ { "kind": "close", "id": null, "cx": 1234, "cy": 49 }, { "kind": "tile", "id": "ramming_charge", "cx": 745, "cy": 279 }, { "kind": "tile", "id": "reinforced_plating", "cx": 997, "cy": 279 } ], "tiles": [], "texts": [], "seats": [ null, null, "ramming_charge", null, null, null, null, null ], "ranks": { "ramming_charge": 1 }, "pending": { "ramming_charge": 0 }, "points": 9, "session": false } }