Пример #1
0
    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)
        });
    }
Пример #2
0
 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);
 }
Пример #3
0
    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);
    }