protected Func <BattleUnit, bool> DefaultUnitRule(Effector effect) { return((BattleUnit targetBattler) => { if (!effect.AcceptsEmptyGrids()) { if (targetBattler == null) { return false; } if (effect.TargetsHostiles()) { return actor.align != targetBattler.unit.align; } else { return actor.align == targetBattler.unit.align; } } else if (!effect.AcceptsFullGrids()) { return targetBattler == null; } else { return true; } }); }