コード例 #1
0
        public override bool FireEvent(Event E)
        {
            // AddPlayerMessage("Is anything working?");
            if (E.ID == "AttackerMeleeMiss")
            {
                // AddPlayerMessage("Decrease ComboCounter starting");
                Body            body  = ParentObject.GetPart("Body") as Body;
                List <BodyPart> hands = body.GetPart("Hand");

                var Parent    = E.GetGameObjectParameter("Attacker") == ParentObject;
                var Defender  = E.GetGameObjectParameter("Defender");
                var DeezHands = E.GetGameObjectParameter("Weapon");

                if (Parent && Defender.HasPart("Brain") && Defender.HasPart("Combat") && ParentObject.HasBodyPart("Hand") && DeezHands.HasPart("MartialConditioningFistMod"))
                {
                    // AddPlayerMessage("Decrease ComboCounter");
                    if (CurrentComboICounter > 0)
                    {
                        --CurrentComboICounter;
                    }
                    UpdateCounter();
                }
            }
            else if (E.ID == "AttackerHit")
            {
                // AddPlayerMessage("Increase ComboCounter starting");
                Body            body  = ParentObject.GetPart("Body") as Body;
                List <BodyPart> hands = body.GetPart("Hand");

                var Penetrations = E.GetIntParameter("Penetrations");
                var Parent       = E.GetGameObjectParameter("Attacker") == ParentObject;
                var Defender     = E.GetGameObjectParameter("Defender");
                var DeezHands    = E.GetGameObjectParameter("Weapon");
                if (Penetrations == 0)
                {
                    if (CurrentComboICounter > 0)
                    {
                        --CurrentComboICounter;
                    }
                }
                if (Parent && Defender.HasPart("Brain") && Defender.HasPart("Combat") && ParentObject.HasBodyPart("Hand") && (DeezHands.Blueprint == "DefaultMartialFist" || DeezHands.HasPart("MartialConditioningFistMod") || DeezHands.HasPart("NaturalGear") || DeezHands.HasPropertyOrTag("WeaponUnarmed")))
                {
                    // AddPlayerMessage("Increase ComboCounter");

                    if (CurrentComboICounter <= MaximumComboICounter)
                    {
                        ++CurrentComboICounter;
                    }

                    if (ComboBuffering == false)
                    {
                        ComboBuffering = true;
                    }
                    BufferDuration = 3 + Penetrations;
                    UpdateCounter();
                }
            }
            else if (E.ID == "CommandResetCmbo")
            {
                // AddPlayerMessage("Reset Combo");
                CurrentComboICounter = 0;
            }
            else if (E.ID == "EndTurn")
            {
                if (BufferDuration > 0 && ComboBuffering == true)
                {
                    // AddPlayerMessage("depricate bufferduration");
                    --BufferDuration;
                    UpdateCounter();
                    if (BufferDuration <= 0 && ComboBuffering == true)
                    {
                        // AddPlayerMessage("ResetCombos");
                        ComboBuffering       = false;
                        CurrentComboICounter = 0;
                        UpdateCounter();
                    }
                }

                // AddPlayerMessage("current combo value: " + CurrentComboICounter);
                // AddPlayerMessage("current buffer value: " + BufferDuration);
                // AddPlayerMessage("current Combo Reset value: " + ComboResetDuration);
            }


            return(base.FireEvent(E));
        }