public static Embed FieldMon(BasicMon mon) { int r = mon.HPGradient()[0]; int g = mon.HPGradient()[1]; int b = mon.HPGradient()[2]; string statuses = ""; if (mon.Status.Paraylzed) { statuses += "<:Paralyzed:716427812558602250>"; } if (mon.Status.Burned) { statuses += "<:Burn:717232618327769141>"; } var user = UserHandler.GetUser(mon.OwnerID); var builder = new EmbedBuilder() .WithFooter(user.Name, user.AvatarUrl) .WithTitle($"Lv. {mon.Level}") .WithThumbnailUrl(mon.ArtURL) .WithColor(r, g, b) .WithAuthor($"{UserHandler.GetUser(mon.OwnerID).Char.Name}'s {mon.Nickname} {mon.GenderSymbol}") .WithDescription($"{mon.CurrentHP}/{mon.TotalHP} HP {statuses}"); var embed = builder.Build(); return(embed); }
public async Task SpawnMon([Remainder] string str) { ContextIds idList = new ContextIds(Context); UserAccount user = UserHandler.GetUser(idList.UserId); //Tests each case to make sure all circumstances for the execution of this command are valid (character exists, in correct location) try { await UserHandler.CharacterExists(idList); await UserHandler.ValidCharacterLocation(idList); } catch (InvalidCharacterStateException) { return; } if (!user.Char.IsPartyFull()) { BasicMon mon = MonRegister.StringToMonRegister(str); mon.CatcherID = user.UserId; mon.OwnerID = user.UserId; user.Char.Party.Add(mon); await MessageHandler.SendMessage(idList, $"{mon.Nickname} has been added to your party."); } else { await MessageHandler.SendMessage(idList, "Your party is full!"); } }
public static Embed MonSendOut(UserAccount user, BasicMon mon) { var builder = new EmbedBuilder() .WithTitle($"{user.Name} sends out **{mon.Nickname}**!") .WithThumbnailUrl(mon.ArtURL) .WithColor(255, 62, 62); var embed = builder.Build(); return(embed); }
public static Embed FightScreen(BasicMon mon) { var builder = new EmbedBuilder() .WithTitle(mon.Nickname) .WithColor(62, 255, 62) .WithThumbnailUrl(mon.ArtURL) .WithImageUrl("https://cdn.discordapp.com/attachments/452818546175770624/626432333414924288/fight_screen.png"); var embed = builder.Build(); return(embed); }
public static Embed FieldMon(BasicMon mon) { var builder = new EmbedBuilder() .WithTitle($"Lv. {mon.Level}") .WithThumbnailUrl(mon.ArtURL) .WithColor(255, 62, 62) .WithAuthor($"{mon.Nickname} {mon.GenderSymbol}") .WithDescription($"{mon.CurrentHP}/{mon.TotalHP} HP"); var embed = builder.Build(); return(embed); }
public static Embed MoveScreen(BasicMon mon) { var builder = new EmbedBuilder() .WithTitle("**Moves**") .WithColor(62, 255, 62) .AddField(mon.ActiveMoves[0].Name, mon.ActiveMoves[0].Description + $"\nPP: {mon.ActiveMoves[0].CurrentPP}/{mon.ActiveMoves[0].MaxPP}", true) .AddField(mon.ActiveMoves[1].Name, mon.ActiveMoves[1].Description + $"\nPP: {mon.ActiveMoves[1].CurrentPP}/{mon.ActiveMoves[1].MaxPP}", true) .AddField(mon.ActiveMoves[2].Name, mon.ActiveMoves[2].Description + $"\nPP: {mon.ActiveMoves[2].CurrentPP}/{mon.ActiveMoves[2].MaxPP}", true) .AddField(mon.ActiveMoves[3].Name, mon.ActiveMoves[3].Description + $"\nPP: {mon.ActiveMoves[3].CurrentPP}/{mon.ActiveMoves[3].MaxPP}", true); var embed = builder.Build(); return(embed); }
public static Embed MonSendOut(UserAccount user, BasicMon mon) { int r = mon.HPGradient()[0]; int g = mon.HPGradient()[1]; int b = mon.HPGradient()[2]; var builder = new EmbedBuilder() .WithTitle($"{user.Name} sends out **{mon.Nickname}**!") .WithThumbnailUrl(mon.ArtURL) .WithFooter(user.Name, user.AvatarUrl) .WithColor(r, g, b); var embed = builder.Build(); return(embed); }
public static Embed MoveScreenNew(BasicMon mon) { var user = UserHandler.GetUser(mon.OwnerID); var builder = new EmbedBuilder() .WithFooter(user.Name, user.AvatarUrl) .WithTitle("**Moves**") .WithColor(62, 255, 62) .WithThumbnailUrl(mon.ArtURL) .AddField("1\u20E3 " + mon.ActiveMoves[0].Name, mon.ActiveMoves[0].Description + $"\nPP: {mon.ActiveMoves[0].CurrentPP}/{mon.ActiveMoves[0].MaxPP}", false) .AddField("2\u20E3 " + mon.ActiveMoves[1].Name, mon.ActiveMoves[1].Description + $"\nPP: {mon.ActiveMoves[1].CurrentPP}/{mon.ActiveMoves[1].MaxPP}", false) .AddField("3\u20E3 " + mon.ActiveMoves[2].Name, mon.ActiveMoves[2].Description + $"\nPP: {mon.ActiveMoves[2].CurrentPP}/{mon.ActiveMoves[2].MaxPP}", false) .AddField("4\u20E3 " + mon.ActiveMoves[3].Name, mon.ActiveMoves[3].Description + $"\nPP: {mon.ActiveMoves[3].CurrentPP}/{mon.ActiveMoves[3].MaxPP}", false); var embed = builder.Build(); return(embed); }
public static Embed MonStats(BasicMon mon) { var moves = ""; foreach (BasicMove move in mon.ActiveMoves) { if (move.Name != "None") { moves += $"**{move.Name}**, "; } } moves = moves.Substring(0, moves.Length - 2); var user = UserHandler.GetUser(mon.OwnerID); var builder = new EmbedBuilder() .WithTitle(mon.TypingToString()) .WithDescription($"DEX NO. {mon.DexNum}") .WithColor(139, 87, 42) .WithTimestamp(DateTimeOffset.FromUnixTimeMilliseconds(1560726232528)) .WithFooter(footer => { footer .WithText($"Caught By {UserHandler.GetUser(mon.CatcherID).Name}"); }) .WithImageUrl(mon.ArtURL) .WithAuthor(author => { author .WithName(mon.Species) .WithIconUrl(mon.ArtURL); }) .AddField("Level", mon.Level, true) .AddField("HP", $"{mon.CurrentHP}/{mon.TotalHP}", true) .AddField("Stats", mon.CurStatsToString()) .AddField("Moves", moves) .AddField("Nature", mon.Nature, true) .AddField("Ability", "**NOT IMPLEMENTED YET**", true) .AddField("Held Item", "**NOT IMPLEMENTED YET**", true) .AddField("Gender", mon.Gender, true) .AddField("IVs", mon.IvsToString()) .AddField("EVs", mon.EvsToString()); var embed = builder.Build(); return(embed); }
public static Embed TargetingScreen(UserAccount user, BasicMon mon) { var builder = new EmbedBuilder() .WithTitle("**Choose A Target**") .WithColor(62, 255, 62) .WithFooter($"Pg. {user.Char.TargetPage+1}/{Math.Ceiling(mon.SelectedMove.ValidTargets.Count/9.0)}"); for (int i = user.Char.TargetPage * 9; i < mon.SelectedMove.ValidTargets.Count; i++) { if (i > (user.Char.TargetPage * 9) + 8) { break; } var target = mon.SelectedMove.ValidTargets[i]; builder.AddField($"{i+1}\u20E3 - {UserHandler.GetUser(target.OwnerID).Char.Name}'s {target.Nickname}", false); } var embed = builder.Build(); return(embed); }
public async Task QuickDuel(string mon, string mon2, SocketGuildUser target) { var fromUser = UserHandler.GetUser(Context.User.Id); var toUser = UserHandler.GetUser(target.Id); ContextIds ids = new ContextIds(Context); fromUser.Char = new Character(true); fromUser.Char.CurrentGuildId = ids.GuildId; fromUser.Char.CurrentGuildName = Context.Guild.Name; fromUser.Char.Name = fromUser.Name; mon = mon.ToLower(); BasicMon m = MonRegister.StringToMonRegister(mon); m.CatcherID = fromUser.UserId; m.OwnerID = fromUser.UserId; fromUser.Char.Party.Add(m); fromUser.HasCharacter = true; await MessageHandler.SendMessage(ids, $"{fromUser.Mention}, you have chosen {m.Nickname} as your partner! Good luck on your adventure."); fromUser.PromptState = -1; toUser.Char = new Character(true); toUser.Char.CurrentGuildId = ids.GuildId; toUser.Char.CurrentGuildName = target.Guild.Name; toUser.Char.Name = toUser.Name; mon2 = mon2.ToLower(); BasicMon m2 = MonRegister.StringToMonRegister(mon2); m2.CatcherID = toUser.UserId; m2.OwnerID = toUser.UserId; toUser.Char.Party.Add(m2); toUser.HasCharacter = true; await MessageHandler.SendMessage(ids, $"{toUser.Mention}, you have chosen {m2.Nickname} as your partner! Good luck on your adventure."); toUser.PromptState = -1; CombatInstance2 combat = new CombatInstance2(ids, fromUser, toUser); CombatHandler2.StoreInstance(CombatHandler2.NumberOfInstances(), combat); await combat.StartCombat(); }
public static Embed MonDex(BasicMon mon) { var builder = new EmbedBuilder() .WithTitle(mon.TypingToString()) .WithColor(139, 87, 42) .WithFooter(footer => { footer .WithText($"Dex No. {mon.DexNum}"); }) .WithImageUrl(mon.ArtURL) .WithAuthor(author => { author .WithName(mon.Species) .WithIconUrl(mon.ArtURL); }) .AddField("Stats", mon.BaseStatsToString()) .AddField("Dex Entry", mon.DexEntry); var embed = builder.Build(); return(embed); }
public async Task QuickStart([Remainder] string text) { ContextIds ids = new ContextIds(Context); var user = UserHandler.GetUser(ids.UserId); user.Char = new Character(true); user.Char.CurrentGuildId = ids.GuildId; user.Char.CurrentGuildName = Context.Guild.Name; user.Char.Name = user.Name; text = text.ToLower(); BasicMon mon = MonRegister.StringToMonRegister(text); mon.CatcherID = user.UserId; mon.OwnerID = user.UserId; user.Char.Party.Add(mon); user.HasCharacter = true; await MessageHandler.SendMessage(ids, $"{user.Mention}, you have chosen {mon.Nickname} as your partner! Good luck on your adventure."); user.PromptState = -1; }
public static async Task FaintWinner(ContextIds context, UserAccount user, BasicMon mon) { await MessageHandler.SendMessage(context, $"{mon.Nickname} fainted! {user.Mention} wins!"); }
public static async Task PartyMenu(UserAccount user, IUserMessage message, IEmote emote, ContextIds idList) { switch (emote.Name.ToLower()) { case "back1": user.RemoveAllReactionMessages(5); user.RemoveAllReactionMessages(1); await message.RemoveAllReactionsAsync(); await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.MainMenu(user); m.Content = ""; }); await MessageHandler.MenuEmojis(message); user.ReactionMessages.Add(message.Id, 1); user.Char.SwapMode = false; user.Char.SwapMonNum = -1; break; case "1\u20E3": case "2\u20E3": case "3\u20E3": case "4\u20E3": case "5\u20E3": case "6\u20E3": int num = int.Parse(emote.Name.ToLower().Substring(0, 1)); if (user.Char.Party.Count >= num) { if (!user.Char.SwapMode) { await MessageHandler.NotImplemented(idList, "monstats"); } else { if (user.Char.SwapMonNum == -1) { user.Char.SwapMonNum = num - 1; await message.ModifyAsync(m => { m.Content = $"**Who should {user.Char.Party[num-1].Nickname} be swapped with?**"; }); } else { if (num - 1 != user.Char.SwapMonNum) { BasicMon temp = user.Char.Party[num - 1]; user.Char.Party[num - 1] = user.Char.Party[user.Char.SwapMonNum]; user.Char.Party[user.Char.SwapMonNum] = temp; string url = MessageHandler.GetImageURL(ImageGenerator.PartyMenu(user.Char.Party)).Result; await message.ModifyAsync(m => { m.Embed = MonEmbedBuilder.PartyMenu(url, user); m.Content = ""; }); user.Char.SwapMode = false; user.Char.SwapMonNum = -1; } } } } break; case "swap": if (!user.Char.SwapMode) { await message.ModifyAsync(m => { m.Content = "**Swapping Mode Enabled**"; }); user.Char.SwapMode = true; user.Char.SwapMonNum = -1; } else { //Careful- m.Content string has an invisible EMPTY CHARACTER in it. Looks like this --> await message.ModifyAsync(m => { m.Content = ""; }); user.Char.SwapMode = false; user.Char.SwapMonNum = -1; } break; default: break; } }
public static async Task TakesDamage(ContextIds context, BasicMon mon, string addon) { await MessageHandler.SendEmbedMessage(context, $"{mon.Nickname} takes damage!" + addon, MonEmbedBuilder.FieldMon(mon)); }
public static async Task UseMoveNew(ContextIds context, BasicMon target, string addon) { await MessageHandler.SendEmbedMessage(context, addon, MonEmbedBuilder.FieldMon(target)); }
public static async Task UseMove(ContextIds context, BasicMon mon, BasicMon target, string move, string addon) { await MessageHandler.SendEmbedMessage(context, $"**{mon.Nickname}** used **{move}**!" + addon, MonEmbedBuilder.FieldMon(target)); }