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)); }
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)); }
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)); }
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)); }
public override ActiveSkill UseSkill() { return(TargetingFunction.UseAttack(this, _attack)); }
public override bool UseSkill() { return(TargetingFunction.UseAttack(this, attack)); }