# Ars magica dice roller bot # by Steinkel # say sr -> roll stress die # say dr -> roll simple die # see the rest of commands # /j #sr # v1.2 # + Substracting your skill to the roll -- sr-3 # v1.1 # + Adding your skill to the roll -- sr+3 # + Quality die roll # + Improved colors alias sr { $dr = stressRoll(); echo("stress die = $dr"); } alias d10 { $d10 = d10(); echo("simple die = $d10"); } alias dr { $d10 = d10(); echo("simple die = $d10"); } alias 2d10 { @resul = nd10(2); echoArray(@resul); } alias 3d10 { @resul = nd10(3); echoArray(@resul); } alias 4d10 { @resul = nd10(4); echoArray(@resul); } alias 5d10 { @resul = nd10(5); echoArray(@resul); } $SR_REGEX = '[Ss][Rr]\s*((\+|\-)(\d+))?'; $DR_REGEX = '[Dd][Rr]\s*((\+|\-)(\d+))?'; $QR_REGEX = '[Qq][Rr]\s*((\+|\-)(\d+))?'; on public { if ($parms ismatch $SR_REGEX) { @data = matched(); $dr = stressRoll(); $mod = "+0"; $res = $dr; if($dr ismatch '\d+') { #add/subs result if(@data[1] ismatch '\+') { $res = $dr + @data[2]; } else { $res = $dr - @data[2]; } $mod = @data[0]; } say("\u $nick \u rolled \b stress \b die $dr$mod = \c15,5 $res "); } else if ($parms ismatch $DR_REGEX) { @data = matched(); $dr = d10(); $mod = "+0"; $res = $dr; if($dr ismatch '\d+') { #add result if(@data[1] ismatch '\+') { $res = $dr + @data[2]; } else { $res = $dr - @data[2]; } $mod = @data[0]; } say("\u $nick \u rolled \b normal \b die $dr$mod = \c0,14 $res "); } else if ($parms ismatch $QR_REGEX) { @data = matched(); $dr = qualityRoll(); $mod = "+0"; $res = $dr; if($dr ismatch '\d+') { #add result if(@data[1] ismatch '\+') { $res = $dr + @data[2]; } else { $res = $dr - @data[2]; } $mod = @data[0]; } say("\u $nick \u rolled \b normal \b die $dr$mod = \c0,13 $res "); } } sub stressRoll { echo("roll stress die"); $d10 = d10(); $pot2 = 0; while ($d10 == 1) { echo("rolled a 1, multipli by 2 the result"); $pot2 = $pot2 + 1; $d10 = d10(); } echo("last roll is $d10"); $result = $d10 * pot2($pot2); echo("resul is $result"); if (($d10 == 10) && (pot == 0)) { $result = "possible botch, please reroll botch dices"; } return $result; } sub qualityRoll { echo("roll quality die"); $d10 = d10(); $pot2 = 0; while ($d10 == 1) { echo("rolled a 1, multipli by 2 the result"); $pot2 = $pot2 + 1; $d10 = d10(); } echo("last roll is $d10"); $result = $d10 * pot2($pot2); echo("resul is $result"); return $result; } sub pot2 { $resul = 1; while ($1 > 0) { $resul = 2 * $resul; $1--; } return $resul; } sub d10 { $d10 = rand(10) + 1; return $d10; } sub nd10 { $i = 0; while ($i < $1) { #roll $d10 = d10(); @resul[$i] = $d10; $i++; } return @resul; } sub echoArray { $i = 1; foreach $item ($1) { echo ("simple die $i --> $item"); $i++; } }