public override Targeter GetTargeter() { var movement = unit.movement.current; var freeMovement = movement - usedMovement; var energyMovement = GetPaidMovement(movement, unit.energy.current); return(new MoveAbilityTargeter(unit, this, freeMovement, energyMovement, onComplete: t => PostDefaultAbilityEvent(t.selections.ToArray()) ) { pather = Pathers.For(rangeMode), cc = CostCalculators.For(rangeMode) }); }
public PathConfirmAbilityTargeter(Unit unit, TargetAbility ability, float maxCost, Action <Targeter> onComplete, Action <Targeter> onCancel = null) : base(unit, ability, onComplete, onCancel) { pather ??= Pathers.For(ability.rangeMode); cc ??= CostCalculators.For(ability.rangeMode); field = Pathing.GetCostField(unit.tile, maxCost: maxCost, pather: pather, costCalculator: cc); }
public override IEnumerable <Tile> GetTargets() { var movement = unit.movement.current; var freeMovement = movement - usedMovement; var energyMovement = GetPaidMovement(movement, unit.energy.current); var maxCost = freeMovement + energyMovement; var res = Pathing.GetCostField(unit.tile, maxCost: maxCost, pather: Pathers.For(rangeMode), costCalculator: CostCalculators.For(rangeMode)).tiles.Keys; return(res); }