示例#1
0
 public static void Postfix(RuleDrainEnergy __instance, ref bool __result)
 {
     if (__instance.Target.Descriptor.IsPartyOrPet() && settings.togglePartyAbilityDamageImmunity)
     {
         __result = true;
     }
 }
示例#2
0
 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);
 }
示例#4
0
        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)
 {
 }
示例#6
0
 public void OnEventDidTrigger(RuleDrainEnergy evt)
 {
 }
 public void OnEventAboutToTrigger(RuleDrainEnergy evt)
 {
     evt.TargetIsImmune = true;
 }