public override bool Satisfied() { Field source = unit.field; Field target = option.field; Vec2 way = target.ToVec2().Minus(source.ToVec2()); if (!way.DivisibleBy(2)) { return(false); } way.DivideBy(2); Field midField = source.board.GetField(source.ToVec2().Plus(way)); if (midField.IsEmpty()) { return(false); } //if (!midField.unit.IsAllyOf(unit)) return false; return(true); }