예제 #1
0
 private void AddWindedDebuff(On.RoR2.CharacterBody.orig_RemoveBuff orig, CharacterBody self, BuffIndex buffType)
 {
     orig(self, buffType);
     if (buffType == SecondWindBuff)
     {
         self.AddTimedBuffAuthority(WindedDebuff, windedDebuffDuration);
     }
 }
예제 #2
0
 private void CharacterBody_RemoveBuff(On.RoR2.CharacterBody.orig_RemoveBuff orig, CharacterBody self, BuffIndex buffType)
 {
     if (buffType == Sundial.solarBuff)
     {
         self.baseArmor -= 10;
     }
     orig(self, buffType);
 }
        //-----------------------------------------------

        private void On_BuffEnd(On.RoR2.CharacterBody.orig_RemoveBuff orig, CharacterBody self, BuffIndex bufftype) //returns to normal form after equip time ends
        {
            orig(self, bufftype);
            if (bufftype.Equals(ImpExtractBuff))
            {
                self.masterObject.GetComponent <ImpExtractComponent>().RemoveImp(true);
                //IL.RoR2.UI.ContextManager.Update -= IL_DrawHUD;
            }
        }
예제 #4
0
        private void DamageBoostReset(On.RoR2.CharacterBody.orig_RemoveBuff orig, CharacterBody self, BuffIndex buffType)
        //Resets the cachedDamageComponent variable, preventing it from getting stuck on a value from a high-damage attack
        {
            orig(self, buffType);

            if (buffType == PatheticBloodBuff || buffType == WeakBloodBuff || buffType == AverageBloodBuff || buffType == StrongBloodBuff || buffType == InsaneBloodBuff || buffType == DevotedBloodBuff)
            {
                var cachedDamageComponent = self.gameObject.GetComponent <DamageComponent>();
                cachedDamageComponent.cachedDamage = 0;
            }
        }
        private void CharacterBody_RemoveBuff(On.RoR2.CharacterBody.orig_RemoveBuff orig, CharacterBody self, BuffIndex buffType)
        {
            orig(self, buffType);
            if (buffType == Modules.Buffs.scaredBuildingDebuff)
            {
                Modules.Helpers.GetModelAnimator(self).enabled = true;
            }
            else if (buffType == Modules.Buffs.scaredDebuff)
            {
                if (self.skillLocator.primary)
                {
                    self.skillLocator.primary.UnsetSkillOverride(self, Modules.Skills.NoAttackSkillDef, GenericSkill.SkillOverridePriority.Replacement);
                }
                if (self.skillLocator.secondary)
                {
                    self.skillLocator.secondary.UnsetSkillOverride(self, Modules.Skills.NoAttackSkillDef, GenericSkill.SkillOverridePriority.Replacement);
                }
                if (self.skillLocator.utility)
                {
                    self.skillLocator.utility.UnsetSkillOverride(self, Modules.Skills.NoAttackSkillDef, GenericSkill.SkillOverridePriority.Replacement);
                }
                if (self.skillLocator.special)
                {
                    self.skillLocator.special.UnsetSkillOverride(self, Modules.Skills.NoAttackSkillDef, GenericSkill.SkillOverridePriority.Replacement);
                }

                if (self.inventory && self.inventory.activeEquipmentSlot > 190)
                {
                    byte newSlot = (byte)(self.inventory.activeEquipmentSlot - 200);
                    self.inventory.SetActiveEquipmentSlot(newSlot);
                }
                var interactor = self.gameObject.GetComponent <Interactor>();
                if (interactor)
                {
                    interactor.maxInteractionDistance = Math.Abs(interactor.maxInteractionDistance);
                }
            }
        }