Added stupid pokemon attacks.
Also, every person now has an element depending on their user ID. Every element has anti-element.
This commit is contained in:
parent
d9657436a4
commit
5fb1a7fa31
@ -18,7 +18,102 @@ namespace NadekoBot.Modules
|
||||
manager.CreateCommands("", cgb =>
|
||||
{
|
||||
commands.ForEach(cmd => cmd.Init(cgb));
|
||||
cgb.CreateCommand(">")
|
||||
.Description("Attack a person. Supported attacks: 'splash', 'strike', 'burn', 'surge'.\n**Usage**: @BotName strike @User")
|
||||
.Parameter("attack_type",Discord.Commands.ParameterType.Required)
|
||||
.Parameter("target",Discord.Commands.ParameterType.Required)
|
||||
.Do(async e =>
|
||||
{
|
||||
|
||||
var usr = NadekoBot.client.FindUsers(e.Server,e.GetArg("target")).FirstOrDefault();
|
||||
var usrType = GetType(usr.Id);
|
||||
string response = "";
|
||||
int dmg = GetDamage(usrType, e.GetArg("attack_type").ToLowerInvariant());
|
||||
response = e.GetArg("attack_type") + (e.GetArg("attack_type")=="splash"?"es ":"s ") + usr.Mention + " for " + dmg+".\n";
|
||||
if (dmg >= 65)
|
||||
{
|
||||
response += "It's super effective!";
|
||||
}
|
||||
else if (dmg <= 35) {
|
||||
response += "Ineffective!";
|
||||
}
|
||||
await e.Send(NadekoBot.botMention + " " + response);
|
||||
});
|
||||
|
||||
cgb.CreateCommand("poketype")
|
||||
.Parameter("target", Discord.Commands.ParameterType.Required)
|
||||
.Do(async e =>
|
||||
{
|
||||
var usr = NadekoBot.client.FindUsers(e.Server, e.GetArg("target")).FirstOrDefault();
|
||||
if (usr == null) {
|
||||
await e.Send("No such person.");
|
||||
}
|
||||
|
||||
await e.Send(usr.Name + "'s type is " + GetType(usr.Id));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private int GetDamage(PokeType targetType, string v)
|
||||
{
|
||||
var rng = new Random();
|
||||
switch (v)
|
||||
{
|
||||
case "splash": //water
|
||||
if (targetType == PokeType.FIRE)
|
||||
return rng.Next(65, 100);
|
||||
else if (targetType == PokeType.ELECTRICAL)
|
||||
return rng.Next(0, 35);
|
||||
else
|
||||
return rng.Next(40, 60);
|
||||
case "strike": //grass
|
||||
if (targetType == PokeType.ELECTRICAL)
|
||||
return rng.Next(65, 100);
|
||||
else if (targetType == PokeType.FIRE)
|
||||
return rng.Next(0, 35);
|
||||
else
|
||||
return rng.Next(40, 60);
|
||||
case "burn": //fire
|
||||
case "flame":
|
||||
if (targetType == PokeType.GRASS)
|
||||
return rng.Next(65, 100);
|
||||
else if (targetType == PokeType.WATER)
|
||||
return rng.Next(0, 35);
|
||||
else
|
||||
return rng.Next(40, 60);
|
||||
case "surge": //electrical
|
||||
case "electrocute":
|
||||
if (targetType == PokeType.WATER)
|
||||
return rng.Next(65, 100);
|
||||
else if (targetType == PokeType.GRASS)
|
||||
return rng.Next(0, 35);
|
||||
else
|
||||
return rng.Next(40, 60);
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
private PokeType GetType(long id) {
|
||||
var remainder = id % 10;
|
||||
if (remainder < 3)
|
||||
return PokeType.WATER;
|
||||
else if (remainder >= 3 && remainder < 5)
|
||||
{
|
||||
return PokeType.GRASS;
|
||||
}
|
||||
else if (remainder >= 5 && remainder < 8)
|
||||
{
|
||||
return PokeType.FIRE;
|
||||
}
|
||||
else {
|
||||
return PokeType.ELECTRICAL;
|
||||
}
|
||||
}
|
||||
|
||||
private enum PokeType
|
||||
{
|
||||
WATER, GRASS, FIRE, ELECTRICAL
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user