示例#1
0
        public override async Task MoveEffect(CombatInstance inst, List <BasicCard> targets)
        {
            foreach (BasicCard card in targets)
            {
                List <int> rolls      = RandomGen.RollDice(12, 4);
                bool       latchState = false;

                int damage = 0;
                foreach (int roll in rolls)
                {
                    damage += roll;
                }

                damage = inst.GetCardTurn().ApplyDamageBuffs(damage);
                var damages = card.TakeDamage(damage);

                //If any latches are detected, set latchState to true
                var latches = inst.SearchForMarker(inst.TurnNumber);
                if (latches.Count > 0 && latches.Contains(card))
                {
                    latchState = true;
                }

                await MessageHandler.DiceThrow(inst.Location, "12d4", rolls);

                await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} unloads a clip into {card.Signature}. {card.DamageTakenString(damages)}");

                if (latchState)
                {
                    await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} chomps down harder, causing {card.Signature} to bleed!");

                    card.AddBuff(new BuffDebuff()
                    {
                        Name              = "Chomp Wound",
                        Buff              = false,
                        Origin            = $"({inst.GetCardTurn().Signature})",
                        Description       = "receive 10 bleed damage on next attack.",
                        BleedAttackDamage = 10,
                        Attacks           = 1
                    });
                }
            }

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
示例#2
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            string str = "";

            inst.GetCardTurn().AddBuff(new BuffDebuff()
            {
                Name           = $"Demigod Of Earth ({inst.GetCardTurn().Signature})",
                Buff           = true,
                Description    = "Immune to damage for 2 turns.",
                DefenseSetBuff = 0,
                Turns          = 2
            });

            //If any latches are already detected, pin them
            var latches = inst.SearchForMarker(inst.TurnNumber);

            if (latches.Count > 0)
            {
                foreach (BasicCard card in latches)
                {
                    card.AddBuff(new BuffDebuff()
                    {
                        Name        = "Demigod Of Earth",
                        Buff        = true,
                        Origin      = $"({inst.GetCardTurn().Signature})",
                        Description = "Pinned for 2 turns.",
                        TurnSkip    = true,
                        Turns       = 2
                    });

                    str += $"\n{card.Signature} is pinned under {inst.GetCardTurn().Signature} and cannot move for 2 turns!";
                }
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} gains a massive amount of mass {str}");

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
示例#3
0
        public override async Task MoveEffect(CombatInstance inst, List <BasicCard> targets)
        {
            foreach (BasicCard card in targets)
            {
                var damage = 60;


                //If any latches are already detected, add damage
                var latches = inst.SearchForMarker(inst.TurnNumber);
                if (latches.Count > 0)
                {
                    foreach (BasicCard card2 in latches)
                    {
                        if (card2 == card)
                        {
                            damage += 60;

                            foreach (BuffDebuff eff in card2.Effects)
                            {
                                if (eff.Name.Equals($"Demigod Of Earth ({inst.GetCardTurn().Signature})") && eff.Description.Equals("Pinned for 2 turns."))
                                {
                                    damage += 50;
                                }
                            }
                        }
                    }
                }

                damage = inst.GetCardTurn().ApplyDamageBuffs(damage);
                var damages = card.TakeDamage(damage);

                await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} Stomps on {card.Signature} with the force of a mountain! {card.DamageTakenString(damages)}");
            }

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
示例#4
0
        public override async Task MoveEffect(CombatInstance inst, List <BasicCard> targets)
        {
            foreach (BasicCard card in targets)
            {
                List <int> rolls      = RandomGen.RollDice(3, 15, true);
                var        flip       = RandomGen.CoinFlip();
                bool       latchState = false;

                int damage = 0;
                foreach (int roll in rolls)
                {
                    damage += roll;
                }

                damage = inst.GetCardTurn().ApplyDamageBuffs(damage);
                var damages = card.TakeDamage(damage);

                //If any latches are already detected, remove them.
                var latches = inst.SearchForMarker(inst.TurnNumber);
                if (latches.Count > 0)
                {
                    latchState = true;
                    foreach (BasicCard card2 in latches)
                    {
                        for (int i = card2.Markers.Count - 1; i >= 0; i--)
                        {
                            if (card2.Markers[i].OriginTurnNum == inst.TurnNumber)
                            {
                                card2.Markers.RemoveAt(i);
                            }
                        }
                    }
                }

                await MessageHandler.DiceThrow(inst.Location, "3d15!", rolls);

                await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} chomps down on {card.Signature}! {card.DamageTakenString(damages)}");

                await MessageHandler.CoinFlip(inst.Location, flip);

                if (!latchState)
                {
                    if (flip)
                    {
                        await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} is latched on!");

                        card.AddMarker(new Marker(true)
                        {
                            CardOrigin    = "Ghub",
                            MoveOrigin    = "Chomp",
                            MarkerName    = "Latched",
                            OriginTurnNum = inst.TurnNumber,
                            IgnoreBool    = false,
                            MarkerBool    = true
                        });
                    }
                }
                else
                {
                    await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} is no longer latched!");
                }
            }

            inst.GetCardTurn().Actions--;
        }