name = "combat" title = "combat system" body = """ starting a fight use any attack move on a target to start combat. you need to be on the same tile and altitude (both flying or both grounded). example: punch left goblin stamina all moves cost stamina. attacks and defenses both drain your stamina pool. when you run out, you can't use moves until it regenerates. stamina refills slowly over time. combat timing attacks have three phases: telegraph (enemy sees your wind-up message) timing window (defender has time to counter) resolve (damage is dealt or countered) telegraph time is built into the hit_time. for example, a punch has a 3000ms hit time - the telegraph goes out immediately, then after 3000ms the attack resolves. defenses and counters each attack can be countered by specific defenses. timing matters - your defense must be active when the attack resolves. defenses have: active window (how long the defense can counter attacks) recovery time (cooldown before you can defend again) correct defense (counter) = 0 damage. wrong defense = normal damage. no defense at all = 1.5x damage. attack switching during the telegraph phase (PENDING state), you can switch to a different attack. your old stamina cost is refunded and the new attack starts fresh. use this to adapt if your opponent reads your move. idle timeout if no damage lands for 30 seconds, combat fizzles out automatically. this prevents stalled encounters from blocking the world. available moves attacks: punch (left/right), roundhouse, sweep defenses: dodge (left/right), parry (high/low), duck, jump use 'skills' to see all moves, 'help ' for details on timing and counters. some moves are locked until you meet requirements. altitude and flying flying makes you immune to ground-based attacks and vice versa. use this tactically - 'fly' to take off, 'fly' again to land. attacks auto-miss when attacker and defender are at different altitudes. """