示例#1
0
        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++;
            }
        }
示例#2
0
 public void Clear()
 {
     BeginModify();
     RoleCard = new RoleCard();
     Images   = new CozyCardImage();
     EndModify();
 }
示例#3
0
        private void AddCard(RoleCard card, CozyCardImage cardImage)
        {
            IsModified = true;

            CardImageDictionary[card.Id] = cardImage;
            ListOfRoleCardList[(int)card.Level].Add(card);
        }
示例#4
0
        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();
            }
示例#7
0
        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;
            }
        }
示例#8
0
 public static bool IsAlive(RoleCard role)
 {
     return(role.HP > 0);
 }
示例#9
0
 public static void Attack(RoleCard attacker, RoleCard defender)
 {
     RoleCardAttack.Attack(attacker, defender);
 }
示例#10
0
            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);
                }
            }
示例#11
0
 public void isRoleCardDisplayed()
 {
     BRLogger.AssertIsTrue(RoleCard.WaitTilIsVisible(), "Verify Add new role popup");
 }
示例#12
0
 public CardCreateEventArgs(RoleCard card, CozyCardImage cardimage)
 {
     Card      = card;
     CardImage = cardimage;
 }