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; } } } }
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)); }