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)); }