public async Task Roll(params string[] s) { AnimaCharacter character = CharacterRepository.FindCurrentByMention <AnimaCharacter>(Context.Message.Author.Mention); if (character == null) { await Context.Channel.SendMessageAsync("Error 404: Character not found or not loaded!"); return; } string statBonusStr = s.FirstOrDefault(x => x.StartsWith("+") || x.StartsWith("-")); int bonus = Convert.ToInt32(statBonusStr); string stat = string.Join(" ", s).ToLower(); if (!string.IsNullOrWhiteSpace(statBonusStr)) { stat = stat.Replace($" {statBonusStr}", ""); } if (stat == null || stat == string.Empty) { await Context.Message.DeleteAsync(); await Context.Channel.SendMessageAsync(character.KeywordsHelp()); } else { await Context.Message.DeleteAsync(); await Context.Channel.SendMessageAsync(string.Format("{0} {1}", Context.User.Mention, character.Roll(stat, bonus))); } }
public async Task SetKi(string s) { AnimaCharacter character = CharacterRepository.FindCurrentByMention <AnimaCharacter>(Context.Message.Author.Mention); _ = Context.Message.DeleteAsync(); if (s == "reset") { character.CurrentKi = character.TotalKiPoints; } else if (s.Contains("+") || s.Contains("-")) { character.CurrentKi += Convert.ToInt32(s); } else { character.CurrentKi = Convert.ToInt32(s); } var msg = await Context.Channel.SendMessageAsync($"{Context.User.Mention} {character.Name}'s ki set to {character.CurrentKi}"); await Task.Delay(3000); _ = msg.DeleteAsync(); }
public async Task Status() { AnimaCharacter character = CharacterRepository.FindCurrentByMention <AnimaCharacter>(Context.Message.Author.Mention); if (character == null) { await Context.Channel.SendMessageAsync("Error 404: Character not found or not loaded!"); return; } _ = Context.Message.DeleteAsync(); var embed = new EmbedBuilder { Title = character.Name }; embed.WithThumbnailUrl(character.ImageUrl) .AddField("Hp", $"{character.CurrentHp}/{character.Hp}", true) .AddField("Fatigue", $"{character.CurrentFatigue}/{character.Fatigue}", true) .AddField("Points de Ki", $"{character.CurrentKi}/{character.TotalKiPoints}", true) .AddField("Zéon", $"{character.CurrentZeon}/{character.ZeonPoints}", true) .AddField("Ppp libres", $"{character.CurrentPpp}/{character.PppFree}", true); await Context.User.SendMessageAsync("", false, embed.Build()); }
public async Task SetCharacterStance(string s = "") { _ = Context.Message.DeleteAsync(); L5RCharacter character = CharacterRepository.FindCurrentByMention <L5RCharacter>(Context.Message.Author.Mention); if (character == null) { await Context.Channel.SendMessageAsync("Error 404: Character not found or not loaded!"); return; } try { character.SetCurrentStance(s); } catch (Exception ex) { await Context.Channel.SendMessageAsync($"{Context.User.Mention} {ex.Message}"); } var msg = await Context.Channel.SendMessageAsync($"{Context.User.Mention} Posture modifiée!"); await Task.Delay(3000); _ = msg.DeleteAsync(); }
public async Task ResetCurrentStat() { AnimaCharacter character = CharacterRepository.FindCurrentByMention <AnimaCharacter>(Context.Message.Author.Mention); _ = Context.Message.DeleteAsync(); character.CurrentHp = character.Hp; character.CurrentFatigue = character.Fatigue; character.CurrentZeon = character.ZeonPoints; character.CurrentPpp = character.PppFree; character.CurrentKi = character.TotalKiPoints; var msg = await Context.Channel.SendMessageAsync($"{Context.User.Mention} {character.Name} reset"); await Task.Delay(3000); _ = msg.DeleteAsync(); }
private async Task ReactionAddedOrRemoved(Cacheable <IUserMessage, ulong> cache, ISocketMessageChannel channel, SocketReaction reaction) { if (reaction.User.Value.IsBot) { return; } if (ReactionMessages.Contains(cache.Id)) { AnimaCharacter character = CharacterRepository.FindCurrentByMention <AnimaCharacter>(reaction.User.Value.Mention); if (character == null) { await channel.SendMessageAsync("Error 404: Character not found or not loaded!"); return; } await channel.SendMessageAsync(string.Format("{0} {1}", reaction.User.Value.Mention, character.Roll(EmotesAction[reaction.Emote].ToLower(), 0))); } if (HelpMessages.ContainsKey(cache.Id)) { if (reaction.Emote.Name == "\U000025c0")//Previous page { var msg = await cache.GetOrDownloadAsync(); await msg.ModifyAsync(x => { x.Content = ""; x.Embed = HelpMessages[cache.Id].GetPreviousPage().Build(); }); } else if (reaction.Emote.Name == "\U000025b6")//Next page { var msg = await cache.GetOrDownloadAsync(); await msg.ModifyAsync(x => { x.Content = ""; x.Embed = HelpMessages[cache.Id].GetNextPage().Build(); }); } } }
public async Task CharacterRoll(params string[] s) { L5RDiceHelper.GuildEmotes = Context.Guild.Emotes; L5RCharacter character = CharacterRepository.FindCurrentByMention <L5RCharacter>(Context.Message.Author.Mention); if (character == null) { await Context.Channel.SendMessageAsync("Error 404: Character not found or not loaded!"); return; } string ring = ""; if (character.Rings.ContainsKey(s.Last())) { ring = s.Last(); } string rawStat = string.Join(" ", s).ToLower(); if (!string.IsNullOrWhiteSpace(ring)) { rawStat = rawStat.Replace($" {ring}", ""); } if (rawStat == null || rawStat == string.Empty) { await Context.Message.DeleteAsync(); await Context.Channel.SendMessageAsync(character.KeywordsHelp()); } else { MessageReference msgRef = new MessageReference(Context.Message.Id); await Context.Channel.SendMessageAsync(character.Roll(rawStat, ring), messageReference : msgRef); } }
public async Task Info(params string[] s) { PlayableCharacter character = CharacterRepository.FindCurrentByMention <PlayableCharacter>(Context.Message.Author.Mention); if (character == null) { await Context.Channel.SendMessageAsync("Error 404: Character not found or not loaded!"); return; } string stat = string.Join(" ", s).ToLower(); if (stat == null || stat == string.Empty) { await Context.Message.DeleteAsync(); await Context.Channel.SendMessageAsync(character.KeywordsHelp()); } else { RollableStat rollableStat; try { rollableStat = character.AllStats.FindByRawStat(stat); await Context.Message.DeleteAsync(); await Context.Channel.SendMessageAsync(Context.User.Mention + " " + rollableStat.Name + " : " + rollableStat.Value); } catch (Exception) { await Context.Channel.SendMessageAsync("Error 404: Stat not found (" + stat + ")"); } } }
public async Task SetCharImage() { PlayableCharacter character = CharacterRepository.FindCurrentByMention <PlayableCharacter>(Context.Message.Author.Mention); if (character == null) { _ = Context.Message.DeleteAsync(); await Context.Channel.SendMessageAsync("Error 404: Character not found or not loaded!"); return; } if (Context.Message.Attachments.Any()) { var url = Context.Message.Attachments.First().Url; character.ImageUrl = url; await Context.Channel.SendMessageAsync($"{Context.Message.Author.Mention} Image updated!"); } else { _ = Context.Message.DeleteAsync(); await Context.Channel.SendMessageAsync("File not found. Please upload an image while using this command."); } }