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