Ejemplo n.º 1
0
    public override ActiveSkill UseSkill()
    {
        bool atLeastOneTargetInRange = false;

        IEnumerable <Attackable> targets = TargetingFunction.DetectSurroundings(this, _massHeal.IsValidTarget).Cast <Attackable>();

        foreach (Attackable target in targets)
        {
            bool targetInRange = _massHeal.IsUsable(this, target);
            atLeastOneTargetInRange = atLeastOneTargetInRange || targetInRange;
            if (targetInRange)
            {
                if (_massHeal.Cooldown <= 0 && target.MaxHp - target.Hp > _massHeal.heal)
                {
                    foreach (Attackable ally in targets)
                    {
                        bool IsInAoe = Vector3.Distance(ally.transform.position, target.transform.position) < _massHeal.aoe;
                        if (IsInAoe)
                        {
                            _massHeal.ApplyOnTarget(target);
                        }
                    }
                    _massHeal.Cooldown = 1.0f;
                    return(_massHeal);
                }
            }
        }

        return(TargetingFunction.UseAttack(this, _attack));
    }
Ejemplo n.º 2
0
    public override ActiveSkill UseSkill()
    {
        bool atLeastOneTargetInRange = false;

        IEnumerable <Corpse> targets = TargetingFunction.DetectSurroundings(this, _infest.IsValidTarget).Cast <Corpse>();

        foreach (Corpse target in targets)
        {
            bool targetInRange = TargetingFunction.IsInRangeorMelee(this, target, _infest.Range);
            atLeastOneTargetInRange = atLeastOneTargetInRange || targetInRange;
            if (targetInRange)
            {
                if (target.DecompositionTime > _infest.BaseExecutionTime)
                {
                    _infest.ApplyOnTarget(target);
                    return(_infest);
                }
            }
        }

        return(TargetingFunction.UseAttack(this, _attack));
    }
Ejemplo n.º 3
0
    public override ActiveSkill UseSkill()
    {
        bool atLeastOneTargetInRange = false;

        IEnumerable <Attackable> targets = TargetingFunction.DetectSurroundings(this, _heal.IsValidTarget).Cast <Attackable>();

        foreach (Attackable target in targets)
        {
            bool targetInRange = _heal.IsUsable(this, target);
            atLeastOneTargetInRange = atLeastOneTargetInRange || targetInRange;
            if (targetInRange)
            {
                if (_heal.Cooldown <= 0 && target.MaxHp - target.Hp > _heal.heal)
                {
                    _heal.ApplyOnTarget(target);
                    _heal.Cooldown = 1.0f;
                    return(_heal);
                }
            }
        }

        return(TargetingFunction.UseAttack(this, _attack));
    }
Ejemplo n.º 4
0
    public override bool UseSkill()
    {
        bool atLeastOneTargetInRange = false;

        List <Attackable> targets = TargetingFunction.DetectSurroundings(this, heal.isValidTarget);

        foreach (Attackable target in targets)
        {
            bool targetInRange = heal.IsUsable(this, target);
            atLeastOneTargetInRange = atLeastOneTargetInRange || targetInRange;
            if (targetInRange)
            {
                if (heal.cooldown <= 0 && target.MaxHp - target.Hp > heal.heal)
                {
                    heal.ApplyOnTarget(target);
                    heal.cooldown = 1.0f;
                    return(true);
                }
            }
        }

        return(TargetingFunction.UseAttack(this, attack));
    }
Ejemplo n.º 5
0
 public override ActiveSkill UseSkill()
 {
     return(TargetingFunction.UseAttack(this, _attack));
 }
Ejemplo n.º 6
0
 public override bool UseSkill()
 {
     return(TargetingFunction.UseAttack(this, attack));
 }