public static void Attack(RoleCard attacker, RoleCard defender) { int damage = attacker.ATK - defender.DEF; if (damage > 0) { defender.HP -= damage; } // 依据五行相生相克 // 金攻击木或者木攻击金,木都会受到1点伤害。 // 金攻击水或者水攻击金,水都会回复1点生命, if (Ke(attacker.Element, defender.Element)) { defender.HP--; } else if (Ke(defender.Element, attacker.Element)) { attacker.HP--; } if (Shen(attacker.Element, defender.Element)) { defender.HP++; } else if (Shen(defender.Element, attacker.Element)) { attacker.HP++; } }
public void Clear() { BeginModify(); RoleCard = new RoleCard(); Images = new CozyCardImage(); EndModify(); }
private void AddCard(RoleCard card, CozyCardImage cardImage) { IsModified = true; CardImageDictionary[card.Id] = cardImage; ListOfRoleCardList[(int)card.Level].Add(card); }
public HandInfoMessage(RoleCard roleCard, List <HandCard> handCards, string recepientId) { MessageType = GameMessageType.HandInfoMessage; IsBroadcast = false; IsPrivateForEveryone = true; Role = roleCard; HandCards = handCards; RecepientId = recepientId; }
public void GetIconClasses_Should_ReturnCorrectClasses_When_ClanIsDragon_And_TypeIsRole() { const string expected = "d-none d-sm-inline-block fa fa-fw fa-asterisk fg-dark-dragon"; var card = new RoleCard { Clan = Clan.Dragon }; var viewModel = new CardsListViewModel(); var result = viewModel.GetIconClasses(card); result.Should().Be(expected); }
public async Task DeployCard(RoleCard c) { var eb = new EmbedBuilder() { Title = "Self-Assignable Role Menu", Color = Color.DarkBlue, Footer = new EmbedFooterBuilder() { Text = "Created on " + DateTime.UtcNow.ToLongDateString() + ", " + DateTime.UtcNow.ToShortTimeString() }, Timestamp = DateTime.Now }; string des = "**Here are all the Self-Assignable roles**\n\n"; List <IEmote> em = new List <IEmote>(); var sa = Context.Guild.Emotes; foreach (var r in c.RoleEmojiIDs) { des += $"{r.Emote} - <@&{r.RoleID}>\n{r.Description}\n\n"; var m = new Regex(@"\<.?\:(.*?)\:(\d*?)\>").Match(r.Emote); if (m.Success) { if (sa.Any(x => x.Id == ulong.Parse(m.Groups[2].Value))) { em.Add(sa.FirstOrDefault(x => x.Id == ulong.Parse(m.Groups[2].Value))); continue; } } if (Emote.TryParse(r.Emote, out var s)) { var name = new Regex(@"\<\:(.*?)\:(\d*?)\>").Match(r.Emote).Groups[1].Value; } else { em.Add(new Emoji(r.Emote)); } } eb.Description = des; var msg = await Context.Guild.GetTextChannel(c.ChannelID).SendMessageAsync("", false, eb.Build()); await msg.AddReactionsAsync(em.ToArray()); c.ServerID = Context.Guild.Id; c.MessageID = msg.Id; c.ChannelID = msg.Channel.Id; Rolecard = c; Global.SaveRoleCard(); }
static void Main(string[] args) { RoleCard card1 = new RoleCard() { Id = 1, Name = "王文撸", Desc = "card1", Element = Enum.FiveLine.Gold, HP = 10, ATK = 2, DEF = 1 }; RoleCard card2 = new RoleCard() { Id = 2, Name = "愤怒的泡面", Desc = @"泡面那么受欢迎并不是因为它有多么好吃,只是因为它适合一个人吃。", Element = Enum.FiveLine.Wood, HP = 10, ATK = 3, DEF = 1, Level = Enum.RoleCardLevel.Level2, }; RoleCard r1 = (RoleCard)card1.Clone(); RoleCard r2 = (RoleCard)card2.Clone(); bool b = false; while (RoleCardLogic.IsAlive(r1) && RoleCardLogic.IsAlive(r2)) { if (b) { Console.WriteLine("{0} attack {1}", r1.Name, r2.Name); RoleCardLogic.Attack(r1, r2); Console.WriteLine("撸撸.hp={0} 泡面.hp={1}\n", r1.HP, r2.HP); } else { Console.WriteLine("{0} attack {1}", r2.Name, r1.Name); RoleCardLogic.Attack(r2, r1); Console.WriteLine("撸撸.hp={0} 泡面.hp={1}\n", r1.HP, r2.HP); } b = !b; } }
public static bool IsAlive(RoleCard role) { return(role.HP > 0); }
public static void Attack(RoleCard attacker, RoleCard defender) { RoleCardAttack.Attack(attacker, defender); }
public async Task CreateRoleCard(params string[] args) { //await Context.Channel.SendMessageAsync("", false, new EmbedBuilder() //{ // Title = "Sorry bud", // Description = $"This has been disabled bucko", // Color = Color.Red //}.Build()); //return; if (!HasExecutePermission) { await Context.Channel.SendMessageAsync("", false, new EmbedBuilder() { Title = "Waaiitt a minute.. who are you?", Description = $"Looks like you dont have permission to execute this command. if this is wrong yell at quin>", Color = Color.Red }.Build()); return; } if (args.Length == 0) { await Context.Channel.SendMessageAsync("", false, new EmbedBuilder() { Title = "What? where?", Description = $"Looks like you didnt provide a channel :/ do so please!", Color = Color.Red }.Build()); return; } if (args.Length == 1) { await Context.Channel.SendMessageAsync("", false, new EmbedBuilder() { Title = "What should i add?!", Description = $"Uhhhhh. epic swissbot here, you need to tell me the roles you want to add plus there emoji/description ok bye <3", Color = Color.Red }.Build()); return; } var channel = Context.Message.MentionedChannels.First(); var redargs = args.Skip(1).ToArray(); var tmpRolecard = new RoleCard(); tmpRolecard.ChannelID = channel.Id; tmpRolecard.RoleEmojiIDs = new List <RoleCard.RoleEmoteDesc>(); if (redargs.Any(x => x.Contains(",")))//multiple { int c = 0; var msg = Context.Channel.SendMessageAsync("this message is here to test the emotes... (dont delete)").Result; foreach (var item in string.Join(' ', redargs).Split(", ")) { if (Context.Message.MentionedRoles.Count <= c) { await Context.Channel.SendMessageAsync("", false, new EmbedBuilder() { Title = "What is that?", Description = "The Role you provided is invalid :/", Color = Color.Red }.Build()); return; } IRole role = Context.Message.MentionedRoles.ToArray()[c]; c++; string emote = item.Split(' ')[1]; string description = string.Join(' ', item.Split(' ').Skip(2)); if (GuildEmote.TryParse(emote, out var outemote)) { tmpRolecard.RoleEmojiIDs.Add(new RoleCard.RoleEmoteDesc() { Description = description, Emote = emote, RoleID = role.Id }); try { await msg.AddReactionAsync(outemote); } catch (Exception ex) { await Context.Channel.SendMessageAsync("", false, new EmbedBuilder() { Title = "What is that?", Description = "The emote you provided is invalid or is broken :/", Color = Color.Red }.Build()); await msg.DeleteAsync(); return; } //Global.SaveRoleCard(); //await UpdateRoleCard(); } else { var m = new Emoji(emote); try { await msg.AddReactionAsync(m); tmpRolecard.RoleEmojiIDs.Add(new RoleCard.RoleEmoteDesc() { Description = description, Emote = m.Name, RoleID = role.Id }); //Global.SaveRoleCard(); //await UpdateRoleCard(); } catch (Exception ex) { await Context.Channel.SendMessageAsync("", false, new EmbedBuilder() { Title = "What is that?", Description = "The emote you provided is invalid or is broken :/", Color = Color.Red }.Build()); await msg.DeleteAsync(); return; } } } await msg.ModifyAsync(x => x.Content = "Ok good you used valid emotes <3 card will be created very shortly. ps il delete this in 5 seconds lol"); new Timer() { AutoReset = false, Interval = 5000, Enabled = true }.Elapsed += (object s, ElapsedEventArgs a) => { msg.DeleteAsync().Wait(); }; await DeployCard(tmpRolecard); } else//single { IRole role = Context.Message.MentionedRoles.First(); string emote = redargs[1]; string description = string.Join(' ', redargs.Skip(2)); if (Emote.TryParse(emote, out var outemote)) { tmpRolecard.RoleEmojiIDs.Add(new RoleCard.RoleEmoteDesc() { Description = description, Emote = emote, RoleID = role.Id }); //Global.SaveRoleCard(); //await UpdateRoleCard(); } else { var m = new Emoji(emote); try { var msg = Context.Channel.SendMessageAsync("Testing the emote...").Result; await msg.AddReactionAsync(m); await msg.ModifyAsync(x => x.Content = "Ok good you used a valid emote <3. ps il delete this in 5 seconds lol"); new Timer() { AutoReset = false, Interval = 5000, Enabled = true }.Elapsed += (object s, ElapsedEventArgs a) => { msg.DeleteAsync().Wait(); }; tmpRolecard.RoleEmojiIDs.Add(new RoleCard.RoleEmoteDesc() { Description = description, Emote = m.Name, RoleID = role.Id }); //Global.SaveRoleCard(); //await UpdateRoleCard(); } catch (Exception ex) { await Context.Channel.SendMessageAsync("", false, new EmbedBuilder() { Title = "What is that?", Description = "The emote you provided is invalid or is broken :/", Color = Color.Red }.Build()); return; } } await DeployCard(tmpRolecard); } }
public void isRoleCardDisplayed() { BRLogger.AssertIsTrue(RoleCard.WaitTilIsVisible(), "Verify Add new role popup"); }
public CardCreateEventArgs(RoleCard card, CozyCardImage cardimage) { Card = card; CardImage = cardimage; }