Megabots — Combat Formulas
Concrete formulas for the calculations defined in combat-flow.md.
Numbers marked [tunable] are proposals to balance later; entries marked [decision]
are interpretations of ambiguous notes — veto and they get reworked.
Model shape (locked in):
- HP ~100 scale — small readable numbers, tier D move atks (10–30) fit directly
- Damage — percentage mitigation via durability
- Chances — additive percentage points, clamped
- Priority — base − weight + mobility bonus + move/effect modifiers
Stat Ranges (tier D → S) [tunable]
| Stat | Range | Notes |
|---|---|---|
| Chassis health | 80–150 | |
| Chassis durability | 4–20 | air sits at the floor (4 at tier D) |
| Part durability (head/arms/legs) | 2–10 | resists part-disable, feeds bot durability |
| Part attack power | 10–50 | sits next to move atk 10–30 (tier D) |
| Chassis weight | 20–60 | |
| Part weight | 10–40 | |
| Chassis max weight | 100–200 | |
| Charges | 5–20 | from notes |
| Move atk | 10–30 (D) … up to ~80 (S) | |
| Move CC atk | 2–20 | from notes |
Derived Bot Stats
botWeight = chassisWeight + Σ partWeights (must be ≤ chassis maxWeight)
— draconic resonance: if head, arms, AND legs are all draconic,
each draconic part's weight counts at ×0.75 [tunable]
— avian chassis: −4 [tunable]
botDurability = chassisDurability + mean(partDurabilities) [decision: durability
attribute aggregates chassis + parts,
like weight does]
+ 2 if bipedal chassis
mobility = legsMobility − waterCCStacks (floor 0; at 0 the bot
− SAT_MOB × saturatedElements cannot change zones)
saturatedElements = how many elements are stacked to STACK_CAP (see [C6])
With these ranges: botWeight ≈ 50–180, botDurability ≈ 7–30.
Core resonance law (assembly legality — adopted round 29)
Every megabot must carry **at least one attached part whose element matches
its core element**. An assembly with no core-matching part is illegal (same
tier as the max-weight and cobra locks). Because commons inherit their part's
element, this guarantees every legal bot has at least one STAB move — full
damage (no ×0.88 off-element penalty) and elemental CC access. Adopting this
removed Foolsfire (fire core, all-electric parts) from the roster.
Chassis-type bonuses [tunable]
Each chassis type contributes one assembly-time identity bonus:
| Chassis type | Bonus |
|---|---|
| Avian | −4 botWeight (lightest frames; counts for priority and max-weight checks) |
| Bipedal | +2 botDurability (most durable stance) |
| Quadruped | +10 elemental CC application chance (C6) on its attacks |
| Lizard | +10 active-effect trigger chances (C7) on its attacks |
The lizard bonus is why cobra locks to lizard chassis — it feeds the held/ensnare
game directly.
Mono-family set bonuses [tunable]
Requires all three part slots filled with the same family (cobra exempt — its
lock is inherent; rule tightened in sim round 5 so slot-stripped duos don't qualify):
| Family | Set bonus |
|---|---|
| Draconic | Resonance — each part's weight counts at ×0.75 (existing rule) |
| Felix | Predator Flow — +5 priority every turn |
| Canid | Pack Bond — +3 to all effect affinities (held/part-disable/trip) |
| Raptor | Apex Frenzy — +3 attack power on all parts |
| Cobra | (inherent — the cobra lock IS its set: buffed breath, hex + ensnare exclusivity) |
Family × chassis-type pairings [tunable]
Cross-synergies for mixed builds — each needs 2+ parts of the family on that
chassis type, and each is a niche counter-tool rather than raw power:
| Pairing | Name | Bonus | Counters |
|---|---|---|---|
| Felix + avian | Skystalker | +10 trip chance | heavy low-priority builds (trip = damage + held) |
| Draconic + quadruped | Wyrmmount | CQ breath debuff softened to ×0.85 (was "removed"; nerfed round 19, doc synced round 27) | CQ brawlers who close to shut breath down |
| Canid + bipedal | Wrestler's Stance | +10 held on grapple moves | kiters (held cancels their zone change) |
| Raptor + lizard | Ambusher | +10 part-disable chance | combo/synergy builds (disabled part = broken chain) |
| Canid + quadruped | Packcaller | hex moves +10 CC application chance (stacks with quadruped's inherent +10) | makes the CC/hex controller viable OUTSIDE cobra |
The Packcaller pairing exists so the hex syncro isn't cobra-exclusive: e.g.
Terrafang head + Terrahound legs + Boulderpaw arms on Terrahulk (all earth, all
canid, quadruped) = mono-canid set + quadruped C6 bonus + Packcaller — a legitimate
second CC-controller lineage with a completely different silhouette (tanky, slow,
grapple-backed) from the light serpent.
Mono-family sets reward commitment; pairings reward reading the matchup and mixing
against it. A build can hold at most one set bonus OR benefit from pairings — a
full mono set on its paired chassis type gets both (e.g. all-draconic on quadruped).
[C1] Move Availability (boolean, per move, at selection)
A move is enabled iff ALL of:
1. its part is not disabled
2. no active effect blocks it
- "held" blocks any direction option requiring a zone change
3. charges ≥ estimatedCost(move) (base cost + attacker effect modifiers, see C8)
4. at least one direction option is valid:
- direction allowed by move type (grapple cannot retreat;
per-move restrictions e.g. Charge Headbutt)
- hold (no zone change) is always a direction option for a move usable in
the current zone — beam explicitly may attack without a zone change
- mobility ≥ zones the option requires
- zone gate satisfied for the zone the attack fires FROM (per C4 ordering):
CQ: grapple/cut/strike ok, breath debuffed (see C5),
beam NOT usable (adopted round 28 — no point-blank beam; a
cornered beam bot must retreat-fire, which fires from Mid),
ensnare NOT usable (mid/long only — an advance landing in CQ
is invalid, so ensnare can only advance from long range)
Mid: grapple/cut/strike require mobility ≥ 2; ensnare ok
Long: grapple/cut/strike require mobility = 3 AND only strike may
fire from Long — cut, grapple and breath are NOT usable at
Long (adopted round 28: weapon-envelope walls; advance
options that fire from Mid remain legal)
Hex: usable from ANY zone, no mobility gate, no zone penalties
[decision — its cost is the tempo loss, not positioning]
Glitch (electric CC) resolves here: if the attacker has electric CC, roll
GLITCH_CHANCE = 35 × electricStacks, capped 90 [tunable] after selection confirm; on success the
selected move is replaced by a random *enabled* move `[decision: glitch resolves at
selection time, not during resolution]`.
If nothing is enabled → Struggle (10 atk, no element, no CC, 0 charges).
[C2] Priority (once per turn)
priority = 100 [tunable base]
− botWeight / 2 [tunable divisor]
+ mobilityBonus mobility 3: +15 [tunable]
mobility 1–2: 0 (per notes, only
mobility 3 grants priority)
+ moveModifiers e.g. +20 Hot Scratch retreating,
+10 Charge Headbutt advancing
+ BEAM_LR_BONUS (+10) if beam fired from long range [tunable]
+ max(0, 10 − weightGap) if attacker core holds a priority-kind matchup
edge over defender core; weightGap = how much lighter the defender
is (see Type Matchups)
+ activeEffectModifiers
− SAT_PRIO (18) × saturatedElements [tunable] saturation penalty, see [C6]
Range check: weight 50–180 → base term 10–75; move bonuses (+2/+10/+20) are meaningful
but don't dominate. Higher acts first; tie → random roll.
Saturation is the counterplay to fixed turn order (round 42). Before it, priority
was almost entirely a property of the *chassis you built*: two bots kept the same gap
for the whole fight, so whoever won the first roll won every roll, and CC bought
nothing but chip damage. A saturated element costs 18 priority — larger than most
build-vs-build gaps — and because it also costs a point of mobility it can knock a
frame off the mobility-3 tier for another 15. Saturating a light, fast opponent
therefore swings 33 points and reliably flips the order. That is deliberate: driving
a stack to the cap is expensive and slow, and it should buy the tempo, not just the
burn ticks.
[C3] Premove (per bot, immediately before resolving)
Step 1 — NOT POSSIBLE check (no rolls):
NOT POSSIBLE if: part disabled ∨ move blocked by active effect ∨ charges < cost (re-checked here because the first mover may have changed the situation)
Combo chains (adopted round 40): combo fatigue now allows **up to 2
consecutive fired payoffs** before the lock (was 1) — e.g. Flashburn's
lance → jab ×1.5 → slash S2 ×1.75 line is legal; the third consecutive
payoff is fatigue-blocked. The no-repeat guardrail (same registry move
can't prime itself) still applies, so chains need distinct moves each
priming the next — sim impact was minimal (apex 62.8, TTK/FM unchanged)
because only deliberately-built lines can ride it.
Combo reliability (adopted round 39): a PRIMED move (its synergy keys
matched) gets +5 hit, multiplied ×1.5 for the second mover — the
counter-combo: reading the first mover's opening rewards anticipation and
deliberately trims first-mover advantage (target ~51-52%, revised from
53-55). Primed moves also punch through guards: deflect chance against
them is reduced 35%. Adopted after live duels showed primed S2 payoffs
whiffing/deflecting after the setup turn was already spent.
Pacing (retuned round 39): DMG_SCALE 0.75 → 0.58 — skilled TTK ~6,
beginner ~7-9. Per-turn DoT ticks were rescaled with it (burn 4→3, sap
self-heal halved to 50%) because fixed ticks outgrow a lower damage scale.
Step 2 — hit roll (d100 vs hitChance):
hitChance = 90 [tunable base — set for medium
variance, see balance-targets.md]
− 3 × defenderMobility [tunable] generic dodge
− 15 if the ATTACKER is held ("swinging while restrained")
− 5 per voluntary empty part slot ("unstable frame"; cobra exempt)
− zonePenalty:
breath from long range: 10 × defenderMobility (opp mobility/10 → pct points)
beam from long range: 5 × defenderMobility [tunable] "slight"
otherwise: 0
− 12 × defenderMobility if defender is OVERCLOCKED [tunable ×12 — adopted
round 33, see Hex Overclock]
− 10 if defender is FADING [tunable — adopted round 36:
a landed strike on a DOUBLE
retreat grants one round of
hit-and-fade evasion]
+ effectHitModifiers (both bots)
clamped to [5, 100]
Step 3 — deflect roll (only if hit; d100 vs deflectChance):
deflectChance = defenderBotDurability × 1.0 [tunable] durability points as pct clamped to [0, 40]
Outcome: fail step 2 → MISS; pass 2 + pass 3 → DEFLECTED; pass 2 + fail 3 → HIT.
[decision: two sequential rolls, not one combined table]
Synergies (combo layer)
Synergies are PART-LEVEL GRANTS (round 17): moves live in a shared registry
(part-types/moves/tier-d.yaml) as pure stat blocks — commons inherit the
carrying part's element — and a part's synergies: map binds combos onto the
moves it carries. The same common move carries different combos on different
parts ("pseudo-signatures").
Each bot tracks its own last move: {type, element, slot, family, landed?, ccApplied?}.
A move's synergy triggers iff the bot's previous turn's move matched the trigger
AND landed (HIT or DEFLECTED) — next turn only; a miss, NOT POSSIBLE, inspect, or
Struggle breaks the chain.
Trigger keys (a move's synergy names one or two — round 16 combo web):
- move type — e.g. "after any breath move"
- element — e.g. "after any fire move"
- slot — e.g. "after any head move" (cross-part sequencing)
- family — e.g. "after any raptor move" (mixed-family combo routes)
- CC application — "after successfully applying any elemental CC"
Tiered ("perfect combo"): matching ANY key fires the base payoff; matching ALL
keys of a multi-key trigger upgrades it — damage ×1.5→×1.75 (repriced round 24:
single-move dual-match makes tier-2 near-default for lance kits), additive payoffs
+10 (e.g. +15 held→+25). [tunable]
Payoffs [tunable] — a synergy pays out in exactly one of the three resolution
currencies:
- damage: ×1.5 (applied in C5, before mitigation)
- elemental CC application: +10–15 cc_atk, or +15 flat to the C6 chance
(e.g. a breath's CC application buffed after another elemental move)
- effect chance: +15 to a named C7 effect roll
(e.g. a grapple's held roll buffed after any ice move)
- hex standard synergy (universal rule, all hex moves): after a successful CC
application, the hex's effectiveCCAtk is ×2 (C6)
Guardrails [decision]:
- Combo fatigue — after a synergy payoff fires, the bot's NEXT move cannot
trigger a synergy (payoffs are a rhythm, not a steady state; added in sim round 5
to break perma-uptime mono-element chains)
- A synergy never triggers off a repeat of the same move — keyed on the REGISTRY
move id (round 24: two parts carrying the same common count as the same move;
instance-identity keying had let same-name copies chain)
- At tier D, avoid keying a move's synergy on its own part's native type
(no strike-after-strike on legs) — synergies should reward sequencing ACROSS
parts/types, not alternating two spammable moves
Type Matchups
Sixteen directed advantage edges — every element holds an edge over 2 others, suffers
2, and is neutral into 3. Each edge has a kind that determines which currency the
advantage pays in [tunable kinds]:
| Attacker element | Advantage over | Kind |
|---|---|---|
| fire | plant | damage |
| fire | metal | damage ("melts" — round 19 swap: replaced fire>ice; fire is the designated anti-tank/anti-apex tech, and ice — the weakest lineage — loses a predator. Metal now suffers 3 edges (water/air/fire), ice suffers 1 (metal): deliberate asymmetry.) |
| water | fire | damage |
| water | metal | elemental CC ("rust") |
| plant | water | elemental CC ("absorption") |
| plant | earth | damage |
| earth | fire | damage |
| earth | electric | elemental CC ("grounding") |
| ice | plant | elemental CC ("frost sticks") |
| ice | air | priority |
| electric | water | damage |
| electric | air | priority |
| air | earth | damage ("wind scours stone" — retyped from priority in sim round 14: priority was worthless currency against slow heavy earth; the edge never functioned) |
| ~~air~~ | ~~metal~~ | REMOVED round 20 — metal was over-preyed (water rust + air corrosion + fire melt + off-balance); metal now carries the standard 2-predator budget (water, fire) |
| metal | ice | damage |
| metal | electric | elemental CC ("caging") |
Keying + STAB:
- damage / CC edges key on move element vs defender core, and are scaled by
STAB (move element == attacker core):
- with STAB: full effect
- without STAB: half the damage effect; CC edges are moot (elemental CC already
requires core match)
- priority edges key on attacker core vs defender core (bot-level, applied
in C2 regardless of the move selected)
Magnitudes [tunable]:
| Kind | Attacking with the edge | Attacking into your counter |
|---|---|---|
| damage | ×1.33 (×1.15 without STAB) | ×0.75 (×0.87 without STAB) |
| elemental CC | +15 to C6 chance | −15 to C6 chance |
| priority | max(0, 10 − weightGap) in C2, where weightGap = how much LIGHTER the defender's botWeight is (0 if defender is heavier) | — (no reverse penalty) |
Priority edges represent raw speed — so they can be engineered away: a dedicated
light build closes the gap point-for-point (e.g. a min-weight air kiter evens out
an electric core's edge). Side effect to watch: ice>air is a priority edge and air
is usually lighter, so that edge mostly matters against mid-weight air builds.
[C5] Damage
rawAtk = moveAtk + partAtk + flatBuffs (move/part secondary effects)
modifiers (multiplicative, in order):
× 0.88 if part element ≠ core element (the 12% mismatch debuff)
× (1 − 0.25 × iceStacks) if attacker has ice CC [tunable] "lowers atk of all parts"
× 1.20 if strike with no zone change this turn — keyed on INTENT (hold
direction); attack-then-move retreats count as moving [tunable]
× 1.50 if the move's synergy trigger matched [tunable] (see Synergies)
× 1.33 / × 0.75 damage-kind type matchup, full with STAB, halved without
(see Type Matchups)
× 0.70 if breath fired from CQ [decision: the CQ 30% breath debuff
is a damage debuff, not accuracy]
damage = rawAtk × (1 − defenderBotDurability / 100) (durability 7–30 → 7–30% mitigation)
× 0.75 GLOBAL_SCALE [sim-tuned round 13 for the pace mandate: expert ≤5
turns, regular ~5; was 0.5]
× 1.25 if defender is HELD ("vulnerable while restrained")
× 0.5 if DEFLECTED
→ round, floor at 1
Ensnare moves carry low atk values by design (≈5–15 at tier D [tunable]) — their
payoff is the held roll in C7, not damage.
Hex moves skip C5 entirely (atk 0, no damage, no KO check) — their payoff is C6.
Hexes also do not roll C7 active effects (pure CC projection, no contact —
round 16 audit fix: ranged hexes were applying 2-turn binds from Long, inverting
"no artillery in a bear hug").
[C6] Elemental CC Chance
ccChance = 0 if move element ≠ attacker core element (hard rule from notes)
or move has no element (Struggle)
or is beam or ensnare (no elemental CC)
otherwise:
ccChance = typeBase + 2 × effectiveCCAtk − defenderBotDurability
± 15 for a CC-kind type matchup edge (see Type Matchups)
+ 10 if the attacker's chassis is quadruped (chassis-type bonus)
typeBase [tunable]: hex 60 · breath 25 · cut 20 · grapple 12 · strike 12 · beam —
(grapple/strike raised 5→12 in sim round 5: contact elements must transfer,
or the wrestler element→grapple loop never comes online)
(hex 60 targets a 75–85% net application — near-sure; counterplay is deflect,
the stack cap, and core mismatch, not the roll)
effectiveCCAtk = move ccAtk + direction bonuses (e.g. Squirt Gun +10 retreating)
+ synergy cc_atk bonuses; ×2 for a hex following the bot's own
successful CC application (hex standard synergy)
clamped to [0, 90]
× 0.5 if DEFLECTED
Worked example: Metallic Shriek (breath, ccAtk 10, +5 advancing) vs botDurability 10,
metal core match: 25 + 2×15 − 10 = 45%.
Elemental CC magnitudes on application [tunable]
Elemental CC stacks — each successful application adds a stack, and magnitudes below
are per stack (cap 3 stacks per element [tunable]). All CC is cleared when the
battle ends (alongside charge recharge).
| Element | Effect per stack |
|---|---|
| Earth | +8 botWeight ("encrust" — caked in stone: priority drops, grapple weight-comparisons and priority-edge weightGap shift); crack: strikes vs the encrusted target chip +5/stack bonus damage [tunable]; stagger: +8/stack held chance against it and its OWN attacks lose 4/stack hit [tunable] — all adopted round 37 (encrust had been the weakest CC payoff; the whole earth class sat 41.7% avg) |
| Fire | −7 botDurability ("melts armor" — this is what deletes metal cores); burn: 4 HP/stack at end of turn, pure damage, no drain [tunable] — adopted round 34; sear (round 38): fire moves vs a HELD target deal +50% from CQ (any fire move) or from LONG (fire beam only) [tunable] — grill the pinned. Rejected r38: +CC-chance vs held (inert — land-rate isn't fire's bottleneck) and heat-beam CC (declined: beams stay CC-inert) |
| Water | −1 mobility; +1 charge cost per 2 stacks ("waterlogged actuators"); undertow: 4 dmg/stack whenever the stacked bot changes zones (drowning the runner) |
| Electric | +35 glitch chance: random-move swap at selection (see C1); scramble (round 37b): electric CC applied from a RETREATING cast also scrambles the target's servos — its attacks lose 6 × stacks hit for one round [tunable] (cast-and-fade tech: rewards the retreat-hex/hiss game of the glass electric books) |
| Metal | +20 to part-disable chances against this bot (C7) |
| Plant | +10 to spontaneous-grapple chance against this bot (C7); bind: any held applied to a plant-stacked target lasts 2 turns instead of 1; sap: 2 HP/stack drained at end of each turn, healed to the opponent ([tunable] — 1 at the old slow pace, re-raised to 2 for round-13 pace); coil-sap: sap doubles while the target is held ("the coils tighten"); root-rip: a landed plant move made with an actual zone change triggers an immediate extra sap tick |
| Ice | −25% atk on all parts (C5); −4 botDurability ("brittleness") — front-loaded per stack: at 5-turn pace, defense-per-stack is ice's value |
| Air | +10 to trip chance against this bot (C7) |
(Magnitudes raised after sim round 2 — stacks weren't converting to wins.)
Saturation (round 42) [tunable]
An element sitting at the 3-stack cap makes the bot saturated in that element.
Saturation is counted per element, so a bot burning *and* waterlogged to the cap is
saturated twice over. On top of every per-stack effect above, each saturated element
costs the afflicted frame:
- −1 mobility (
SAT_MOB) — which also feeds hit chance against it, the contested
zone tug, the firing-zone gates, and the mobility-3 priority tier
- −18 priority (
SAT_PRIO) — see [C2]
The reason: every effect in the table above scales *smoothly* per stack, so nothing
observable changed at the cap except that further applications were wasted. A player
could land a full BURNING stack and still be out-ordered by exactly the same margin
every turn, which made first-mover advantage feel like a property of the matchup
rather than something play could bend. Saturation is the threshold where CC stops
being attrition and starts taking tempo.
The battle UI marks it: a saturated condition on the status line is shouted and
flagged (BURN3!) where an unsaturated one is quiet (burn2).
[C7] Active Effect Trigger Chances
Every candidate effect gets a chance — including held from a landed grapple:
chance(effect) = moveEffectChance (printed on the move, if any)
+ partTypeEffectChance (family affinity of the PART PERFORMING the
move — see family table below)
+ ccContribution (metal +20/stack / plant +10 / air +10,
if the defender has that CC)
+ activeEffectModifiers
+ 10 if the attacker's chassis is lizard (chassis-type bonus)
− defenderBotDurability / 2 (durability as reducer)
− 15 × disables the defender has ALREADY suffered this battle
(part-disable rolls only — anti-snowball, adopted round 40b:
repeat disables were shutting down sparse bots entirely;
disables last 2 of the victim's turns)
clamped to [0, 85]
× 0.5 if DEFLECTED
Roll every non-zero chance; if several succeed, apply only the highest-chance one.
Hex Overclock (adopted round 33)
A LANDED hex OVERCLOCKS its caster for one round: until the end of the next
turn, attacks against the caster take −12 × casterMobility hit chance
[tunable ×12]. "Fast frames redline harder" — the payoff scales with
the caster's mobility, so light controllers (the frames that die during
the stack ramp) get the most protection while heavy hex tanks get the
least. Duration uses the held convention (applied at 2, ticked at end of
turn, so it survives exactly one full opposing action window). Landing a
new hex refreshes it. The overclock requires only a HIT, not a CC application.
Sim history: round 32b/32c A/Bs — rush-denial wards and multi-effect hex
procs both failed to make light controllers viable (buffs compounded on
bulky casters instead); the mobility-scaled overclock (A/B'd as 'veil') was the only mechanism that
did (glass electric probe 20.9% → 41.6%). Adoption rebalanced Bramblemaw
and Verdanox in the same round (round 33).
Elemental Flow (adopted round 35)
Water and air have FLOW: consecutive landed moves of the element chain, and
the chain buffs the next same-element move's damage by **+FLOW% per chained
move, capped at 2 chained** [tunable: water 25%, air 20%]. From the 3rd
consecutive flow move on, the caster pays OVERFLOW HP per move
[tunable: 4] — the flow drags the frame.
Direction identity [decision]: water's current PRESSES — the chain builds
and pays only while holding or ADVANCING; air rides the SLIPSTREAM — holding
or RETREATING. A move in the off direction (or a miss, an off-element move,
venting, or struggling) resets the chain.
Kin elements (round 36c): ice does not break a WATER chain and fire does
not break an AIR chain — the chain SLEEPS through the kin move (no extend,
no buff), and it may sleep only ONCE: two kin moves in a row break it. Ice
is water asleep; fire feeds the updraft. This un-taxes water/ice slush kits
(Skipjack +4.2) without letting a chain idle forever. This keeps a non-flow option open:
retreat-kiting water (Undertow) and advance-diving air simply never interact
with flow or overflow.
Design history: round 35 — water's ceiling was the electric-ruled meta
(electric > water damage edge; water walked into x1.33 from the whole top
tier). Flow gives mono-element aggression a ramp to race the burst: Deluge
(heavy water hexer-brawler) and Zephyrax joined Railvolt in a 3-element
apex trio within 0.4 points.
Partial builds policy (round 38, user decision)
A voluntary empty slot is legal only if the roster carries a FILLED
COUNTERPART syncro (same chassis/other parts, the gap filled by an
existing part): Nullwing's counterpart is Zephyrax; Flashburn's is
Brandlance (round 38). Cobra-locked builds (Undertow, Verdanox) are
exempt — their armlessness is mandatory, not a choice.
Momentum riders (adopted round 36)
Striker-side riders from the round-36 striker-vs-distance pass:
- Momentum slash: a cut made while ADVANCING (with actual movement —
clamp rule) deals +10% damage `[tunable — 15 at adoption, tuned down
in r36b: it leaks to raptor slashes]`. The blade rides the close.
- Hit-and-fade: a landed strike on a DOUBLE retreat (retreat2) grants
the striker one round of −10 hit against it [tunable] — struck and
gone. Same duration convention as overclock/held (set 2, end-of-turn tick).
- Clinch guard (round 36b): an advancing grapple that APPLIES HELD
grants the grappler one round of −20% incoming damage and **+6 temp
durability** [tunable] (the durability bonus flows into deflect,
CC-resist, and disable rolls). Held-gated on purpose: an ungated version
fed Sparkfang's grip-primed S2 web to 65-69% — the guard must be earned
by landing the hold, which rewards +held affinity (the wrestlers) rather
than combo-poking.
Calibration note: both riders leak to cut/strike-heavy distance kits
(raptor slashes), so values above 15/10 feed the apex more than the striker
class — 25% advancing cut moved Railvolt +3.8 while strikers gained nothing
extra. At 15/10: striker-vs-distance 46.0 → 47.8, apex +1.4.
Hex riders and self-buffs
Hex moves may carry riders that trigger only when the move is used **with a zone
change**, in the chosen direction:
- Debuff riders deepen the payload (e.g.
+5 cc_atk if advancing) - Self-buff riders are small, one-turn, self-targeted tempo effects
(e.g. +10 priority next turn if retreating, `−1 charge cost on next move
if advancing) [tunable]`
Distribution guardrails [decision]:
- A part never carries two hex moves — every part keeps one damaging option
(so no part goes fully dead vs a mismatched core or capped stacks)
- Hex concentrates in identity carriers: cobra parts and canid heads;
target ≈15–20% of the tier move pool, kept off draconic/raptor (damage identities)
- Cobra lock: a cobra head requires a lizard chassis + cobra legs, and the build has
no arms — 4 wheel moves instead of 6, much lighter, compensated by buffed breath
cc_atk and hex/ensnare exclusivity
- Any build may leave part slots empty (2 fewer wheel moves per empty slot, weight
saved) — but each VOLUNTARY empty slot costs −5 hit chance ("unstable frame",
C3); cobra's forced armlessness is exempt. Empty duos also no longer qualify
for mono-family set bonuses.
Part-family effect affinities [tunable]
Applied from the family of the part performing the move:
| Family | Affinity |
|---|---|
| Felix | +5 trip |
| Canid | +2 held, +2 part-disable, +2 trip (balanced) |
| Cobra | +10 held |
| Draconic | none — its perk is draconic resonance (see Derived Bot Stats) |
| Raptor | +5 part-disable |
Candidate effects [tunable]
| Effect | Trigger source | Base | On success |
|---|---|---|---|
| Held | grapple move hit | 50 [tunable] + 15 if attackerWeight > defenderWeight [tunable] + part grapple-chance bonuses + move grapple-chance bonuses (opponent durability applies via the generic −durability/2 reducer) | held ("clinched"): defender cannot change zone, cannot use beam/breath/ensnare/hex (no artillery in a bear hug — melee and Struggle only), takes +25% damage, and suffers −15 hit on its own move while held; lasts 1 turn (2 vs a plant-stacked target — "bind"); constriction (round 20): a held bot takes 3 squeeze damage [tunable] at end of turn — EXCEPT metal cores, which are immune unless water-stacked ("you can't crush steel; rusted joints seize"); when held ends, defender charge costs +1 for one turn (C8) |
| Held | ensnare move hit | 50 [tunable] + part grapple-chance bonuses + move grapple-chance bonuses — no weight bonus at range (durability reducer applies as above) | same as held from grapple |
| Part disable | cut or beam hit | 20 − 2 × targetPartDurability (+20/stack if metal CC; +12 if the move is a metal cut — "metal bites machinery", round 21) | random non-chassis part disabled 2 turns [decision: random part — no targeting in notes] |
| Trip | any hit vs defender with air CC | 10 per air stack | damage = 5% of defender max HP + applies held |
| Spontaneous grapple | any hit vs defender with plant CC | 10 per plant stack | applies held |
[C8] Charge Cost
cost = tierBase D:1 · C:2 · B:3 · A:4 · S:5 [tunable]
+ 1 if a zone change was performed this move [tunable]
+ 1 if beam fired from long range ("kite tax")
+ 1 per 2 water CC stacks on the attacker ("waterlogged")
+ 1 if attacker is in the post-grapple debuff turn ("charge usage
debuffed slightly")
+ move/part secondary effect modifiers
floored at 1 (Struggle is the only 0-cost action)
Paid in full on HIT / DEFLECTED / MISS; nothing on NOT POSSIBLE.
Vent (action, adopted sim round 10): skip the turn to recover 3 charges at
a cost of 5 HP [tunable]. Denied while plant-stacked ("vines clog the
vents"). Ice cores vent at 0 HP ("cold cores run cool" — round 11 buff:
Rimewall +5, Snowghost +6). Breaks the synergy chain. Ice vent-denial was A/B'd
and rejected (no measurable effect).
Worked Turn Fragment
Bot A (metal core, botDurability 12, weight 110, mobility 2) uses Metallic Shriek
advancing from Mid → CQ vs Bot B (botDurability 10, mobility 1, HP 100):
- C2:
100 − 55 + 0 + 5(advancing? no — that's cc atk, not priority) = 45vs Bot B's priority - C3: hit =
90 − 3×1 = 87%→ roll 40 → hit; deflect =10%→ roll 77 → clean HIT - C4: advancing → zone change first (Mid → CQ), then attack
- C5: raw =
10 + partAtk 15 = 25, breath from CQ →×0.70 = 17.5,
mitigation ×(1 − 0.10) = 15.75 → 16 damage
- C6:
25 + 2×(10+5) − 10 = 45%→ roll 30 → metal CC applied to Bot B - C7: no candidates non-zero (no cut/beam, no air/plant CC on B) → nothing
- C8:
1 (tier D) + 1 (zone change) = 2 charges
Decisions (confirmed)
1. ✔ Bot durability aggregates chassis + mean of part durabilities (like weight aggregates)
2. ✔ CQ breath "30% debuff" = damage debuff (×0.70), not accuracy
3. ✔ Glitch (electric) resolves at selection time, swapping to a random enabled move
4. ✱ REVISED — held from grapple is rolled (C7 candidates): base + weight-comparison
bonus + part/move grapple-chance bonuses, reduced by opponent durability
5. ✔ Cut/beam part-disable hits a random non-chassis part (no targeting)
6. ✱ REVISED — elemental CC stacks (cap 3 [tunable]); all CC cleared when the
battle ends
7. ✔ Two sequential premove rolls (hit, then deflect) rather than one combined table