protected override void OnTakesDamage(DamageEventArgs e) { base.OnTakesDamage(e); if (!isFleeing) { fleeTakesDamageAcc += e.AdjustedDamage; if (fleeTakesDamageAcc > 1000) { isFleeing = true; CancelActiveAbilities(); ClearAbilities(); ChangeState(new Idle(this)); var ab = new WolfFlee(); ab.EndPerforming += new EventHandler(ab_EndPerforming); ab.Performer = this; ab.TargetEntity = lastChasing; ab.Mediator = this; ab.TryStartPerform(); } } }