示例#1
0
    // public

    public void OnBadlyInjured()
    {
        if (Spellcaster.HaveSpellSlot(Magic.Level.First))
        {
            Spellcaster.UseSpellSlot(Magic.Level.First);
            CureWounds.Cast(Me);
        }
    }
示例#2
0
    private bool TreatWounded()
    {
        var nearby_wounded = Me.Senses.Actors
                             .Where(f => Me.Actions.Decider.IsFriendOrNeutral(f) && f.Health.BadlyInjured() && Vector3.Distance(transform.position, f.transform.position) < Me.Actions.Movement.StoppingDistance())
                             .ToList();

        if (nearby_wounded.Count > 0)
        {
            Actor wounded = nearby_wounded.OrderBy(f => f.Health.CurrentHealthPercentage()).Reverse().ToList().First();

            if (wounded != null && Spellcaster.HaveSpellSlot(Magic.Level.First))
            {
                Spellcaster.UseSpellSlot(Magic.Level.First);
                CureWounds.Cast(wounded);
                return(true);
            }
        }

        return(false);
    }