Skip to content

Latest commit

 

History

History
81 lines (72 loc) · 5.23 KB

File metadata and controls

81 lines (72 loc) · 5.23 KB

JackForge — WarMachine to Pathfinder 'Jack Converter (reforged)

A cross-platform (Avalonia/.NET) reimagining of Victor's 2013 "'Jack Converter" (Warmachine to Iron Kingdoms d20 'Jack Converter, recovered by reverse-engineering the original ClickOnce .NET assembly). Gritty steampunk "schematic review tool" GUI.

Tabs

  1. PF1e — Pathfinder 1st Edition. Faithful port of the recovered 3.5-era logic (PF1 was largely a 3.5 update). See Conversion/Pf1Converter.cs.
  2. PF2e — Pathfinder 2nd Edition. New system. Built by the benchmark-via-CR method (Victor's choice): PF1 CR -> clamped creature level -> read Paizo "Building Creatures" benchmark numbers by assigned High/Moderate/Low role. See Conversion/Pf2Converter.cs, Conversion/Pf2Benchmarks.cs.
  3. APF1e — Advanced PF1e. Victor's dream "box-out" system: HP spread across hit locations (Head, Torso, 2 Arms, 2 Legs) like a WarMachine damage grid. See Conversion/BoxOut.cs.

Locked design decisions (from Victor)

  • APF1e HP split: fixed ruleset-wide percentages. Current constants (tunable in BoxOutConverter): Head 12%, Torso 34%, each Arm 15%, each Leg 12%. Torso absorbs rounding.
  • Box-out consequences (formalized):
    • Arm destroyed -> that arm's weapon unusable; both arms -> no melee.
    • Leg destroyed -> Speed halved; both -> immobilized/prone.
    • Head/Cortex destroyed -> 'jack inert (wrecked).
    • Torso/Boiler destroyed -> wrecked + boiler explosion (Reflex save, AoE fire).
    • Myrmidon Energy Field = temp HP, depleted before any location can be hit.
    • Colossals = two structures (Left/Right); wrecked when both Torsos (or both Heads) gone.
  • PF2e method: benchmark via CR.
  • Exports: PF1e -> Foundry SBC (Paizo DEFENSE/OFFENSE/STATISTICS text, Con —). PF2e -> Foundry pf2e-bestiary-import (bracketed action costs, blank-line separators, ability modifiers, construct immunities; Mindless only for cortex-less vectors).

Tunable "house" numbers (defaults, flagged for Victor's review)

  • Box-out percentages (above).
  • Boiler explosion: Light 6d6/10ft, Heavy 10d6/15ft, Colossal 20d6/20ft; DC = 10 + HD/2 + size.
  • PF2e Hardness = clamp(ARM - 11, 3, 25).
  • PF2e stat-role thresholds (Str/AC/attack tiers off WM stats) in Pf2Converter.

Calibration — RESOLVED (Victor: "recalibrate outright")

The original formula is kept only as a displayed raw score. Pf1Converter.Calibrate derives the playable CR from clean threat signals - chassis base (L5/H8/Col16) + hit-box adjustment + armor bump, clamped to per-type bands (L 4-8, H 7-12, Col 15-21) - then draws AC/HP/attack/saves from Pathfinder's Monster-Statistics-by-CR table (Pf1ByCr.cs). PF2e level = calibrated CR.

Earlier attempt (raw x 0.38) was replaced after full-roster validation: it inherited the original's arc-node and Cyriss-vector inflation (Lancer CR10 vs identical Charger CR6; Prime Axiom CR22 > Stormwall). The clean formula is immune to that. All 16 reference jacks validate (--validate): lights CR4-6, heavies CR7-10, colossals CR16-17; Juggernaut==Destroyer; box-out HP sums exact.

Open tuning (surfaced by validation)

  • Energy Field values (33 light / 55 heavy, from the original tool) are now oversized vs recalibrated HP (Griffon: 33 field on 40 HP). Consider rescaling to ~30-40% of body HP (real-WM proportion).
  • Field coverage: only Retribution jacks get one; Cyriss vectors (incl. colossal Prime Axiom) do not. Victor's vision mentioned "Myrmidon Colossals" having a field - decision pending.

Status

  • Reverse-engineer original (source saved to Apps & Scripts/Jack/*.RECOVERED.cs)
  • Conversion engine: PF1e, PF2e, APF1e — verified via JackForge.exe --selftest
  • Foundry exporters (SBC + bestiary-import)
  • Steampunk GUI (3 icon tabs, shared input, IK logo header, Convert + Send-to-Foundry) — runs
  • Recalibration to legal Pathfinder ranges (anchored to PF Monster-by-CR table)
  • Box-out split retuned to real WM grid proportions (torso ~54%)
  • Full-roster validation: all 16 real jacks pass (--validate); caught + fixed node/vector CR inflation
  • Unique/character jacks: "Unique 'Jack?" toggle + manual CR adjustment (applies after band clamp, cascades to all tabs)
  • Serric Steel = IK adamantine: export keeps clean DR #/adamantine; flavor shown only in app readout
  • Energy Field: myrmidon-only, temp HP = jack HP rounded to nearest 10; per-myrmidon "Field Power" text field (special power active while the field holds), shown in the box-out
  • Vector hover: per-vector dropdown (None / Clumsy / Average), shown for Cyriss vectors. Grants a low Fly speed = land Speed (ignores ground terrain) and +1 CR. Clumsy = light trimodal vectors; Average = purpose-built hovering vectors; heavy trimodal = None. Fly line flows to both exports.
  • (Optional) "Induction Trait" text field for vectors — offered, not yet built
  • Polish; self-contained publish per-OS
  • Optional: pull official Iron Kingdoms d20 warjack stats as a second cross-check

Build / run

cd src/JackForge
dotnet build
dotnet run                 # launches the app
dotnet run -- --selftest   # headless engine check

Reference research (gitignored scratch): WarMachine test jacks, PF2e benchmarks, Foundry formats.