Пример #1
0
 public override void RunAction()
 {
     if (this.Target.Unit == null || this.Context.MaybeCaster == null)
     {
         UberDebug.LogError((object)"Target unit is missing", (object[])Array.Empty <object>());
     }
     else
     {
         int value = this.Target.Unit.Ensure <UnitPartSeedStorage>().getRandom(1, 100);
         if (this.Target.Unit.IsInCombat && in_combat_bonus != null)
         {
             value += in_combat_bonus.Calculate(this.Context);
         }
         //Main.logger.Log("Rolled: " + value.ToString());
         Common.AddBattleLogMessage(this.Target.Unit.CharacterName + " rolls " + value.ToString() + " on d100 for " + this.Context.Name);
         for (int i = 0; i < actions.Length; i++)
         {
             if (thresholds[i] >= value)
             {
                 if (actions[i] != null)
                 {
                     actions[i].Run();
                 }
                 return;
             }
         }
     }
 }
Пример #2
0
        public override void RunAction()
        {
            var caster = this.Context.MaybeCaster;

            var unit = this.Target.Unit;

            if (unit == null || caster == null)
            {
                return;
            }
            var distance = distance_dice.Calculate(this.Context);

            unit.Ensure <UnitPartForceMove>().Push((unit.Position - caster.Position).normalized, distance.Feet().Meters, provoke_aoo);
        }
 public int getBleedAmount()
 {
     return(dice_value.Calculate(this.Fact.MaybeContext));
 }