public static void Postfix(RuleDrainEnergy __instance, ref bool __result) { if (__instance.Target.Descriptor.IsPartyOrPet() && settings.togglePartyAbilityDamageImmunity) { __result = true; } }
public void OnEventAboutToTrigger(RuleDrainEnergy evt) { if (evt.Initiator != Owner.Unit) { return; } evt.TargetIsImmune = true; }
public void OnEventDidTrigger(RuleDrainEnergy evt) { if (!checkPetOrMaster(evt.Target)) { return; } if (!this.TriggerOnStatDamageOrEnergyDrain) { return; } if (reduce_below0 && !evt.Target.Descriptor.State.MarkedForDeath) { return; } this.RunAction(on_self ? evt.Target : evt.Initiator); }
private int DrainEnergy(ContextActionDealDamage2.DamageInfo info) { if (this.Context.MaybeCaster == null) { UberDebug.LogError(this, (object)"Caster is missing", (object[])Array.Empty <object>()); return(0); } RuleDrainEnergy rule = new RuleDrainEnergy(this.Context.MaybeCaster, this.Target.Unit, this.EnergyDrainType, this.EnergyDrainType == EnergyDrainType.Permanent ? new TimeSpan?() : new TimeSpan?(this.Duration.Calculate(this.Context).Seconds), new DiceFormula(this.Value.DiceCountValue.Calculate(this.Context), this.Value.DiceType), this.Value.BonusValue.Calculate(this.Context)); rule.CriticalModifier = info.CriticalModifier; rule.Empower = info.Empower; rule.Maximize = info.Maximize; rule.ParentContext = this.Context; RuleDrainEnergy ruleDrainEnergy = rule; SavingThrowType?type = this.Context.SavingThrow?.Type; int num = !type.HasValue ? 1 : (int)type.Value; ruleDrainEnergy.SavingThrowType = (SavingThrowType)num; return(this.Context.TriggerRule <RuleDrainEnergy>(rule).Count); }
public void OnEventAboutToTrigger(RuleDrainEnergy evt) { }
public void OnEventDidTrigger(RuleDrainEnergy evt) { }
public void OnEventAboutToTrigger(RuleDrainEnergy evt) { evt.TargetIsImmune = true; }