Combat Phase - deodand-inc/crawler GitHub Wiki
Combat phase can be entered when an encounter occurs during:
- exploration phase
- overworld phase
combat sequence
- each side rolls initiative (1d6)
- highest initiative roll acts first
- a tie means action resolution occurs simultaneously
- if required, check morale
- movement per round (only defensive movement for those meleed)
- missile fire combat:
- choose targets
- roll 1d20 to hit (result is adjusted by dex adjustment, range, cover, and magic)
- damage is rolled
- magic spells (roll saving throws as needed: 1d20)
- melee
- choose opponent
- roll 1d20 to hit (result is adjusted by str adjustment, magic weapons)
- the next highest initiative acts second, and so on until all sides have completed melee
- DM handles surrenders, retreats as they occur
These steps are repeated as many times as necessary to finish the melee. Once combat is no longer relevant, return to exploration phase
Defensive Movement
Once engaged in melee only these forms of movement are allowed by any opponent/side
- before initiative the intent to use defensive movement must be announced
- Fighting Withdrawal: back up slowly, the entity is limited to 1/2 their movement rate per round. Not possible when entities/terrain are behind. The entity can still attack if after using fighting withdrawal they are still in range of an opponent.
- Retreat: backwards movement of over 1/2 movement rate is considered a retreat. Attacks against those retreating receive a +2 to hit! The retreater cannot attack this round once electing to retreat.
Meleed entities that slay all of their opponents are no longer meleed.
How to Attack
in combat an attack can be made with a spell, ranged weapon, or melee weapon. Party characters only attack once.
Spell attacks
- automatically hit if in range or area of affect.
- targets of specific spells must roll a saving throw.
Missile fire attacks
- if (1d20 + DexModifer + Range + Cover + Magic) => AC;
- then ((Entity)HitPoints - (RollWeaponDamage))
Melee attacks
- if (1d20 + StrModifer + MagicWeapon) => AC;
- then ((Entity)HitPoints - (RollWeaponDamage + StrModifer + MagicWeapon)