示例#1
0
 private void CharacterBody_AddTimedBuff_BuffDef_float_int(On.RoR2.CharacterBody.orig_AddTimedBuff_BuffDef_float_int orig, CharacterBody self, BuffDef buffDef, float duration, int maxStacks)
 {
     if (CanCancelBuff(self, buffDef))
     {
         return;
     }
     orig(self, buffDef, duration, maxStacks);
 }
示例#2
0
 private void CharacterBody_AddTimedBuff_BuffDef_float_int(On.RoR2.CharacterBody.orig_AddTimedBuff_BuffDef_float_int orig, CharacterBody self, BuffDef buffDef, float duration, int maxStacks)
 {
     orig(self, buffDef, duration, maxStacks);
     if (!ignoredBuffDefs.Contains(buffDef))
     {
         var modifiedDuration = GetModifiedDuration(self, buffDef.isDebuff || buffDef.isCooldown || debuffsTreatedAsBuffs.Contains(buffDef), duration);
         foreach (var timedBuff in self.timedBuffs.Where(x => x.buffIndex == buffDef.buffIndex && x.timer == duration))
         {
             timedBuff.timer = modifiedDuration;
         }
     }
 }