public override bool FireEvent(Event E)
        {
            if (E.ID == "AIGetOffensiveMutationList")
            {
                if (IsMyActivatedAbilityAIUsable(SureStrikesActivatedAbilityID, ParentObject))
                {
                    E.AddAICommand("CommandSureStrikes");
                }
            }
            else if (E.ID == "CommandSureStrikes")
            {
                // AddPlayerMessage("Firing Sure strike commandsurestrikes");

                AwardSureStrikes = 0;


                var MMAAccess = ParentObject.GetPart <WM_MMA_CombinationStrikesI>();
                var ParentAgi = ParentObject.StatMod("Agility");

                if (ParentObject.HasPart("WM_MMA_PathDawnGlider") && IsPlayer())
                {
                    var MMAComboPathDawnAccess = ParentObject.GetPart <WM_MMA_PathDawnGlider>();
                    PlayersSurestrike();
                    MMAComboPathDawnAccess.BonusSureStrike = 0;
                    UpdateCounter();
                }
                else if (IsPlayer())
                {
                    PlayersSurestrike();
                }


                AwardSureStrikes = ParentAgi;
                var eAttacker = _ParentObject;


                if (AwardSureStrikes <= 0)
                {
                    return(base.FireEvent(E));
                }
                else
                {
                    ChainFuntion();
                    ParentObject.CooldownActivatedAbility(SureStrikesActivatedAbilityID, 80 - (AwardSureStrikes * 10));
                }

                if (IsPlayer())
                {
                    UpdateCounter();
                }
            }
            else if (E.ID == "FailedChainingSureStrikes")
            {
                var MMAAccess = ParentObject.GetPart <WM_MMA_CombinationStrikesI>();
                var eAttacker = _ParentObject;

                if (IsPlayer())
                {
                    UpdateCounter();
                }

                if (Stat.Random(1, 100) <= 20 + MMAAccess.CurrentComboICounter)
                {
                    ChainFuntion();
                    ParentObject.CooldownActivatedAbility(SureStrikesActivatedAbilityID, 80 - (AwardSureStrikes * 10));
                }

                if (IsPlayer())
                {
                    UpdateCounter();
                }
            }
            else if (E.ID == "ChainingSureStrikes")
            {
                // AddPlayerMessage("Chaining strike fires");

                var MMAAccess = ParentObject.GetPart <WM_MMA_CombinationStrikesI>();

                var eDefender = E.GetGameObjectParameter("Defender");
                var eAttacker = E.GetGameObjectParameter("Attacker");

                ChainingSureStrike(eDefender);

                if (Stat.Random(1, 100) <= 20 + (MMAAccess.CurrentComboICounter * 2))
                {
                    ChainFuntion();
                    ParentObject.CooldownActivatedAbility(SureStrikesActivatedAbilityID, 80 - (AwardSureStrikes * 10));
                }

                if (IsPlayer())
                {
                    UpdateCounter();
                }
            }
            else if (E.ID == "EndTurn")
            {
                if (IsPlayer())
                {
                    UpdateCounter();
                }
            }
            return(base.FireEvent(E));
        }