9 public static int Roll(
int num,
int sides,
int bonus = 0,
Card card =
null)
11 Dice.<>c__DisplayClass1_0 CS$<>8__locals1;
12 CS$<>8__locals1.sides = sides;
13 CS$<>8__locals1.num = num;
14 CS$<>8__locals1.bonus = bonus;
20 int num4 = card.Evalue(78);
22 num2 = 1 + Mathf.Abs(num4 / 100) + ((Mathf.Abs(num4 % 100) >
Dice.rnd(100)) ? 1 : 0);
24 for (
int i = 0; i < num2; i++)
26 int num5 =
Dice.<Roll>g__Roll|1_0(ref CS$<>8__locals1);
27 if (i == 0 || (flag && num5 > num3) || (!flag && num5 < num3))
36 public static int RollMax(
int num,
int sides,
int bonus = 0)
38 return num * sides + bonus;
42 public static int rnd(
int a)
44 return Rand.Range(0, a);
48 public Dice(
int _num = 0,
int _sides = 0,
int _bonus = 0,
Card _card =
null)
57 public static Dice Parse(
string raw)
60 string[] array = raw.Split(
',', StringSplitOptions.None);
61 if (array.Length != 0)
63 string[] array2 = array[0].Split(
'd', StringSplitOptions.None);
64 dice.num =
int.Parse(array2[0]);
65 dice.sides =
int.Parse(array2[1]);
69 dice.bonus =
int.Parse(array[1]);
77 return Dice.Roll(this.num, this.sides, this.bonus, this.card);
83 return Dice.RollMax(this.num, this.sides, this.bonus);
87 public override string ToString()
89 return this.num.ToString() +
"d" + this.sides.ToString() + ((this.bonus > 0) ? (
"+" + this.bonus.ToString()) : ((this.bonus < 0) ? (this.bonus.ToString() ??
"") :
""));
95 string key = ele.source.alias;
96 if (!
EClass.sources.calc.map.ContainsKey(key) && !ele.source.aliasRef.IsEmpty())
98 key = ele.source.alias.Split(
'_', StringSplitOptions.None)[0] +
"_";
100 if (!
EClass.sources.calc.map.ContainsKey(key))
105 int power = ele.GetPower(c);
106 int ele2 = ele.source.aliasParent.IsEmpty() ? 0 : c.Evalue(ele.source.aliasParent);
110 result =
new Dice(Mathf.Max(1, row.num.Calc(power, ele2, 0)), Mathf.Max(1, row.sides.Calc(power, ele2, 0)), row.bonus.Calc(power, ele2, 0), c);
115 result =
new Dice(0, 0, 0,
null);
121 public static Dice Create(
string id,
int power,
Card c =
null,
Act act =
null)
123 if (!
EClass.sources.calc.map.ContainsKey(
id))
130 int ele = power / 10;
133 Element orCreateElement = c.elements.GetOrCreateElement(act.source.id);
134 power2 = orCreateElement.GetPower(c);
135 ele = (orCreateElement.source.aliasParent.IsEmpty() ? 0 : c.Evalue(orCreateElement.source.aliasParent));
140 result =
new Dice(Mathf.Max(1, row.num.Calc(power2, ele, 0)), Mathf.Max(1, row.sides.Calc(power2, ele, 0)), row.bonus.Calc(power2, ele, 0), c);
144 result =
new Dice(0, 0, 0,
null);
151 internal static int <Roll>g__Roll|1_0(ref
Dice.<>c__DisplayClass1_0 A_0)
154 for (
int i = 0; i < A_0.num; i++)
156 num +=
Dice.rnd(A_0.sides) + 1;
158 return num + A_0.bonus;
162 public static Dice Null =
new Dice(0, 0, 0,
null);