Combat & Units
Combat is stat-based, auto-resolving, and intentionally not rock-paper-scissors. The player wins fights by composition, upgrades, and positioning — set in advance — rather than by manual micro at the moment of contact.
Stats and Counters
- Units have attack, defense, HP, modified by tile effects, leader buffs, and upgrades.
- No rock-paper-scissors counters. Pure stat-based combat with buff stacking.
- Army differentiation comes from base stat profiles, spawn rate, special unit options from special tiles, and visual identity — not type counters.
Combat Resolution
- Combat ticks at 3 rounds per second, each round resolving stat exchanges across both sides of a contested tile.
- Auto-resolve by default. Most fights happen without direct input — the player set the conditions; the math plays out.
- Leader presence enables an ability overlay. When the leader is on a combat tile, time does not slow, but the player can trigger the leader's active abilities (extra damage, heals, AoE on adjacent tiles) on top of the underlying combat ticks.
Pass-Through vs. Engagement
This rule is the spine of the supply-line game. Behavior diverges by unit type: Army and Defender fight, the logistics types flee, scouts have an entirely separate rule set.
| Type | Intermediate enemy / hazard tile (passing through) | Path-end leaf on enemy tile |
|---|---|---|
| Army | Take damage from defenders + tile effects, continue walking. | Engage in combat (M0 mechanic). |
| Defender (mid-redeploy) | Take damage, continue slowly. Doesn't shield the tile while in transit. | Engages — if leaf is enemy, becomes a doomed lone defender (UI may block). |
| Gather | Take damage, continue walking. Cargo drops on death as a loose pile. | Flee-once — reverses one hex along the incoming path on enemy contact, then continues normally. |
| Engineer | Take damage, continue walking. | Flee-once (same rule as Gather). |
| Scout | Damage-immune to per-round / DoT effects from tile types regardless of severity. Walks unowned and enemy territory unscathed. Dies instantly on enemy combat-unit contact (Army or Defender), explicit instant-kill effects (pit traps, Antimatter Vent, etc.), or contact with another team's scout (mutual destruction — both die). | No path-leaf engagement — direct-control. Same death conditions apply. |
Flee-once timing: flee-once fires at path-end leaf engagement, not on intermediate hostile tiles. A gatherer marching through a midpoint enemy tile takes pass-through damage and keeps going; only when its path delivers it onto a contested target does it reverse a hex.
Combat rounds per traversal: at 3 rounds/sec ticking and 2 seconds per hex traversed, units take 6 combat rounds of damage per hostile pass-through tile (scouts excepted).
Mixed-Type Stack Combat Sequence
When enemy contact happens at a contested tile, sequence per round:
- Scouts die instantly on enemy combat-unit contact (or mutual-destruct with enemy scouts).
- Flee-once phase (instant, before combat round 1): non-combat types (Gather, Engineer) attempt to reverse one hex along their incoming path. Success if the previous hex is friendly territory; failure if it's enemy or neutral — the unit stays as a combat casualty.
- Combat phase: Army + Defender units engage at 3 rounds/sec.
- Internal damage distribution per the priority cascade below.
Damage Priority Cascade
Damage on the defending side pours through three pools in strict order — each pool fully consumed before any spills into the next.
| Priority | Defending side absorbs damage on |
|---|---|
| 1 | Defender HP pool |
| 2 | Army HP pool |
| 3 | Tile claim-HP (current level pool) |
While defenders are alive, neither army nor the tile takes a hit. Defenders mid-redeploy (walking the Defender path tree) don't shield — they only function as priority-1 absorbers when stationed at their tile.
The attacking side only has Army HP as an absorber. Damage drains attacker stacks normally.
Damage distribution within a stack
Sequential / front-line dying. Each Mass stack-entity carries a Count
(units still alive) and a FrontHP (HP of the unit currently absorbing
damage):
damage_remaining = round_damage
while damage_remaining >= FrontHP and Count > 0:
damage_remaining -= FrontHP
Count -= 1
FrontHP = MaxHP // next unit steps to the front
FrontHP -= damage_remaining
Example: 50 defenders × 300 HP, 1500 damage in a round → 5 die exactly, 45 remain at full HP, no wounded. 1700 damage → 5 die + 1 wounded at 100/300 + 39 at full. The cross-stack cascade (Defender stack → Army stack → Claim-HP) follows the same "consume current pool fully before spilling" rule.
Scouts are the exception — their stacks carry only Count with no
FrontHP, since pass-through damage and DoT events skip them entirely.
Only instant-kill events decrement Count.
Comeback Defensive Bonus
The fewer tiles a player holds, the harder they defend. The bonus integrates with the cascade as a single damage-reduction multiplier on the defending side, applied to all incoming damage before it enters the Defender → Army → Claim-HP cascade. Helps both Defender-rich and Army-only setups equally.
- Scaling: tile-count disparity vs. the match leader. Curve TBD playtest; placeholder shape: holding ~10% as many tiles as the leader gives ~30% damage reduction.
- Computed per-defender-side at combat-round start; applied once to the round's total incoming damage.
Path-End Combat
The end-to-end sequence when a unit reaches the endpoint of its path on an enemy or hostile-special tile:
- Combat begins, ticking 3 rounds/sec.
- The unit deals damage to the current-level HP pool of the tile.
- If defending units are present, incoming damage splits between defenders and the tile — more defenders means less damage to the tile (a structural reason to garrison important tiles).
- When a level's HP pool reaches 0, the tile drops a level and a fresh HP pool begins for the new level.
- When the tile reaches level 0, the attacker claims it.
- If the attacker dies first, accumulated tile damage persists until regen kicks in.
Distance / Supply Falloff superseded
The previous "combat effectiveness decreases with distance from a friendly L6 tile or your leader" rule is retired. Supply is now an explicit mechanic via gather-paths, per-tile stockpiles, and engineer-maintained tiles — see Economy. Deep raids are risky because the supply chain is risky, not because the units fight worse on arrival.
If playtest shows the localized economy doesn't make deep raids feel risky enough, a falloff multiplier can be re-introduced as a stat-provider tweak without code changes.
Dormant Tile Occupation Capture
When a player is eliminated (home base destroyed), all their tiles enter Dormant state — type, level, rule, sub-config, and stockpile preserved; in-flight units, garrisons, paths, and tile self-defense removed. Decay ticks one level / tile every ~60s when the tile sits empty (any unit presence — friendly, enemy, or contested — pauses decay).
Capture works by occupation timer, not claim-HP grind:
| Phase | Behavior |
|---|---|
| Empty dormant | Decay ticks; no occupation progress. |
| Single-team occupied | Counter ticks toward the capture threshold (~30s default); decay paused. |
| Contested (2+ teams' units present) | Counter paused; decay paused; combat resolves per the cascade above (no claim-HP since dormant has none). |
| Team killed/pushed off | That team's progress resets to 0; new sole occupier (if any) starts from 0. |
| Counter reaches threshold | Tile claimed at current dormant level + remaining stockpile + rule/sub-config intact; paths reset. |
Scouts can claim dormant tiles by sitting alone — useful for fast unopposed capture of abandoned territory — but two scouts from different teams meeting on a dormant tile mutually destroy, so contested dormant tiles still require combat units.
Tile HP Regen
- A tile regenerates HP only when no enemy units are present on it.
- Regen scales with stationary Defenders garrisoning the tile and stationary Engineers on it (engineers heal more per unit). Walking units, Army, Gather, and Scouts don't contribute.
- Capped at ~10× single-unit rate so 50 stationary units don't trivialize HP recovery.
- Garrison serves both as combat shield (via the cascade) and as regen battery.
Pacing Baselines
| Parameter | Value | Status |
|---|---|---|
| Tile spawn cycle | 3 seconds (1 unit per level per cycle) | v0.2 locked |
| Unit walk speed | 2 seconds per hex traversed | v0.2 locked |
| Combat tick rate | 3 rounds per second | v0.2 locked |
| Combat rounds per single-tile passthrough | 6 rounds (= 3 rounds/sec × 2s walk) | v0.2 locked |
| Leader spawn delay | 120 seconds (player-triggered after T+120s; permanent) | v0.6 locked |
| Match length | Scales with map size | Per size tier TBD |
These are first-pass values; playtest will tune.