I've become one with C#. More fair dice. fixed description ref #143
This commit is contained in:
parent
413ae9f856
commit
abc427dd44
@ -19,7 +19,7 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
internal override void Init(CommandGroupBuilder cgb)
|
internal override void Init(CommandGroupBuilder cgb)
|
||||||
{
|
{
|
||||||
cgb.CreateCommand(Module.Prefix + "roll")
|
cgb.CreateCommand(Module.Prefix + "roll")
|
||||||
.Description("Rolls 2 dice from 0-10. If you supply a number [x] it rolls up to 30 normal dice.\n**Usage**: $roll [x]")
|
.Description("Rolls 0-100. If you supply a number [x] it rolls up to 30 normal dice.\n**Usage**: $roll [x]")
|
||||||
.Parameter("num", ParameterType.Optional)
|
.Parameter("num", ParameterType.Optional)
|
||||||
.Do(Roll0to10Func());
|
.Do(Roll0to10Func());
|
||||||
cgb.CreateCommand(Module.Prefix + "nroll")
|
cgb.CreateCommand(Module.Prefix + "nroll")
|
||||||
@ -28,7 +28,13 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
.Do(Roll0to5Func());
|
.Do(Roll0to5Func());
|
||||||
}
|
}
|
||||||
|
|
||||||
private Image GetDice(int num) => Properties.Resources.ResourceManager.GetObject("_" + num) as Image;
|
private Image GetDice(int num) => num != 10
|
||||||
|
? Properties.Resources.ResourceManager.GetObject("_" + num) as Image
|
||||||
|
: new[]
|
||||||
|
{
|
||||||
|
(Properties.Resources.ResourceManager.GetObject("_" + 1) as Image),
|
||||||
|
(Properties.Resources.ResourceManager.GetObject("_" + 0) as Image),
|
||||||
|
}.Merge();
|
||||||
|
|
||||||
private Func<CommandEventArgs, Task> Roll0to10Func()
|
private Func<CommandEventArgs, Task> Roll0to10Func()
|
||||||
{
|
{
|
||||||
@ -37,30 +43,24 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
{
|
{
|
||||||
if (e.Args[0] == "")
|
if (e.Args[0] == "")
|
||||||
{
|
{
|
||||||
var num1 = r.Next(0, 10);
|
var gen = r.Next(0, 101);
|
||||||
var num2 = r.Next(0, 10);
|
|
||||||
|
|
||||||
Image[] images;
|
var num1 = gen / 10;
|
||||||
|
var num2 = gen % 10;
|
||||||
|
|
||||||
if (num1 == 0 && num2 == 0 && r.Next(0, 2) == 1)
|
var imageStream = new Image[2] { GetDice(num1), GetDice(num2) }.Merge().ToStream(ImageFormat.Png);
|
||||||
|
|
||||||
|
await e.Channel.SendFile("dice.png", imageStream);
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
images = new Image[3] { GetDice(1), GetDice(0), GetDice(0) };
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
images = new Image[2] { GetDice(num1), GetDice(num2) };
|
|
||||||
}
|
|
||||||
|
|
||||||
var bitmap = images.Merge();
|
|
||||||
await e.Channel.SendFile("dice.png", bitmap.ToStream(ImageFormat.Png));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var num = int.Parse(e.Args[0]);
|
var num = int.Parse(e.Args[0]);
|
||||||
if (num < 1) num = 1;
|
if (num < 1) num = 1;
|
||||||
if (num > 30)
|
if (num > 30)
|
||||||
{
|
{
|
||||||
await e.Channel.SendMessage("You can roll up to 30 dies at a time.");
|
await e.Channel.SendMessage("You can roll up to 30 dice at a time.");
|
||||||
num = 30;
|
num = 30;
|
||||||
}
|
}
|
||||||
var dices = new List<Image>(num);
|
var dices = new List<Image>(num);
|
||||||
@ -113,7 +113,8 @@ namespace NadekoBot.Modules.Gambling
|
|||||||
throw new ArgumentException("First argument should be bigger than the second one.");
|
throw new ArgumentException("First argument should be bigger than the second one.");
|
||||||
rolled = new Random().Next(arr[0], arr[1] + 1);
|
rolled = new Random().Next(arr[0], arr[1] + 1);
|
||||||
}
|
}
|
||||||
else {
|
else
|
||||||
|
{
|
||||||
rolled = new Random().Next(0, int.Parse(e.GetArg("range")) + 1);
|
rolled = new Random().Next(0, int.Parse(e.GetArg("range")) + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user