// public public void OnBadlyInjured() { if (Spellcaster.HaveSpellSlot(Magic.Level.First)) { Spellcaster.UseSpellSlot(Magic.Level.First); CureWounds.Cast(Me); } }
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); }