public static void HitAvoid(Timeline t, CombatUnit caster, CombatUnit targetUnit) { EvadeType e = targetUnit.EvadeMethod(CombatUnit.actionAngle(caster, targetUnit)); switch (e) { case EvadeType.miss: Miss(t, caster, targetUnit); break; case EvadeType.shield: ShieldGuard(t, caster, targetUnit); break; case EvadeType.weapon: WeaponGuard(t, caster, targetUnit); break; case EvadeType.accessory: AccessoryGuard(t, caster, targetUnit); break; } }