예제 #1
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            List <int> rolls = RandomGen.RollDice(4, 15, true);
            await MessageHandler.DiceThrow(inst.Location, "4d15!", rolls);

            int damage = 0;

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

            damage = inst.GetCardTurn().ApplyDamageBuffs(damage);
            string str      = "";
            var    totalDam = 0;

            List <BasicCard> targets = inst.GetAOEEnemyTargets();

            foreach (BasicCard card in targets)
            {
                var tempDam = card.TakeDamage(damage);
                totalDam += tempDam[0];
                str      += $"\n{card.DamageTakenString(tempDam)}";
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} fires a magical arrow!{str}\n{inst.GetCardTurn().Signature} dealt a total of {totalDam} damage.");

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
예제 #2
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            List <int> hitRoll = RandomGen.RollDice(1, 4);
            await MessageHandler.DiceThrow(inst.Location, "1d4", hitRoll);

            if (hitRoll[0] == 4)
            {
                List <int> rolls = RandomGen.RollDice(6, 10);
                await MessageHandler.DiceThrow(inst.Location, "6d10", rolls);

                int damage = 0;

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

                damage = inst.GetCardTurn().ApplyDamageBuffs(damage);
                string str      = "";
                var    totalDam = 0;

                List <BasicCard> targets = inst.GetAOEEnemyTargets();

                foreach (BasicCard card in targets)
                {
                    var tempDam = card.TakeDamage(damage);
                    totalDam += tempDam[0];
                    str      += $"\n{card.DamageTakenString(tempDam)}";

                    card.AddBuff(new BuffDebuff()
                    {
                        Name        = "Prone",
                        Buff        = false,
                        Origin      = $"({inst.GetCardTurn().Signature})",
                        Description = "disabled.",
                        TurnSkip    = true,
                        Turns       = 1
                    });
                }

                await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} hits the party with a swing of his arm!{str}\n{inst.GetCardTurn().Signature} dealt a total of {totalDam} damage.");
            }
            else
            {
                await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} missed!");
            }

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
예제 #3
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            List <int> rolls = RandomGen.RollDice(3, 10);
            await MessageHandler.DiceThrow(inst.Location, "3d10", rolls);

            int healing = 0;

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

            healing = inst.GetCardTurn().ApplyHealingBuffs(healing, true);
            string str       = "";
            var    totalHeal = 0;

            List <BasicCard> allyTargets = inst.GetAOEAllyTargets();

            foreach (BasicCard card in allyTargets)
            {
                var tempHeal = card.Heal(healing, true);
                totalHeal += tempHeal;
                str       += $"\n{card.Signature} heals {tempHeal} HP!";
            }

            List <BasicCard> targets = inst.GetAOEEnemyTargets();

            foreach (BasicCard card in targets)
            {
                card.AddBuff(new BuffDebuff()
                {
                    Name                = "Drunkard",
                    Buff                = false,
                    Origin              = $"({inst.GetCardTurn().Signature})",
                    Description         = "Drunk! Deal 30% less damage on your next attack.",
                    DamagePercentDebuff = 0.30,
                    Attacks             = 1
                });
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} douses the battlefield in wine!{str}\n{inst.GetCardTurn().Signature} healed a total of {totalHeal} health. All enemies have their next attack reduced by 30%.");

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
예제 #4
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            int damage = 40;

            damage = inst.GetCardTurn().ApplyDamageBuffs(damage);
            string str      = "";
            var    totalDam = 0;

            List <BasicCard> targets = inst.GetAOEEnemyTargets();

            foreach (BasicCard card in targets)
            {
                var tempDam = card.TakeDamage(damage);
                totalDam += tempDam[0];
                str      += $"\n{card.DamageTakenString(tempDam)}";

                card.AddBuff(new BuffDebuff()
                {
                    Name              = "Crushed",
                    Buff              = false,
                    Origin            = $"({inst.GetCardTurn().Signature})",
                    Description       = "Disabled.",
                    TurnSkip          = true,
                    BleedAttackDamage = 10,
                    Turns             = 1
                });

                card.AddBuff(new BuffDebuff()
                {
                    Name              = "Crushed",
                    Buff              = false,
                    Origin            = $"({inst.GetCardTurn().Signature})",
                    Description       = "Bleeding for 10 damage.",
                    TurnSkip          = true,
                    BleedAttackDamage = 10,
                    Attacks           = 1
                });
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} crushes the enemy team with sharpened teeth!{str}\n{inst.GetCardTurn().Signature} dealt a total of {totalDam} damage and disabled all enemy players for 1 turn.");

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
예제 #5
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            int healing = 10;

            healing = inst.GetCardTurn().ApplyHealingBuffs(healing, true);
            string str       = "";
            var    totalHeal = 0;

            List <BasicCard> targets = inst.GetAOEEnemyTargets();

            foreach (BasicCard card in targets)
            {
                var tempHeal = card.Heal(healing, true);
                totalHeal += tempHeal;
                str       += $"\n{card.Signature} heals {tempHeal} HP!";
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} lets out a cute little squeal!{str}\n{inst.GetCardTurn().Signature} healed a total of {totalHeal} health.");

            inst.GetCardTurn().Actions--;
        }
예제 #6
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            List <int> rolls = RandomGen.RollDice(3, 10);
            await MessageHandler.DiceThrow(inst.Location, "3d10", rolls);

            int healing = 0;

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

            healing = inst.GetCardTurn().ApplyHealingBuffs(healing, true);
            string str       = "";
            var    totalHeal = 0;

            List <BasicCard> targets = inst.GetAOEEnemyTargets();

            foreach (BasicCard card in targets)
            {
                var tempHeal = card.Heal(healing, true);
                totalHeal += tempHeal;
                str       += $"\n{card.Signature} heals {tempHeal} HP!";

                card.AddBuff(new BuffDebuff()
                {
                    Name              = "Birdsong",
                    Buff              = true,
                    Origin            = $"({inst.GetCardTurn().Signature})",
                    Description       = "20% increased damage.",
                    DamagePercentBuff = 0.20,
                    Attacks           = 1
                });
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} chirps up a storm!{str}\n{inst.GetCardTurn().Signature} healed a total of {totalHeal} health and all allies gain 20% increased damage on their next attack.");

            inst.GetCardTurn().Actions--;
        }
예제 #7
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            List <BasicCard> targets = inst.GetAOEEnemyTargets();
            int damage = targets.Count * 5;

            damage = inst.GetCardTurn().ApplyDamageBuffs(damage);
            string str      = "";
            var    totalDam = 0;

            foreach (BasicCard card in targets)
            {
                var tempDam = card.TakeDamage(damage);
                totalDam += tempDam[0];
                str      += $"\n{card.DamageTakenString(tempDam)}";
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} starts a torrent.{str}\n{inst.GetCardTurn().Signature} dealt a total of {totalDam} damage.");

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
예제 #8
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            List <BasicCard> targets = inst.GetAOEEnemyTargets();

            foreach (BasicCard card in targets)
            {
                card.AddBuff(new BuffDebuff()
                {
                    Name        = "Ringing Ears",
                    Buff        = false,
                    Origin      = $"({inst.GetCardTurn().Signature})",
                    Description = "Silenced.",
                    Silenced    = true,
                    Turns       = 1
                });
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} lets out an ungodly screech, silencing the enemy team.");

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }
예제 #9
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            List <int> rolls = RandomGen.RollDice(6, 6);
            await MessageHandler.DiceThrow(inst.Location, "6d6", rolls);

            var flip = RandomGen.CoinFlip();
            await MessageHandler.CoinFlip(inst.Location, flip);

            int damage = 0;

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

            damage = inst.GetCardTurn().ApplyDamageBuffs(damage);
            string str      = "";
            var    totalDam = 0;

            List <BasicCard> targets = inst.GetAOEEnemyTargets();

            foreach (BasicCard card in targets)
            {
                var tempDam = card.TakeDamage(damage);
                totalDam += tempDam[0];
                str      += $"\n{card.DamageTakenString(tempDam)}";
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} calls upon Artemis to barrage the enemy!{str}\n{inst.GetCardTurn().Signature} dealt a total of {totalDam} damage.");

            if (!flip)
            {
                OnCooldown      = true;
                CurrentCooldown = Cooldown;
            }
            inst.GetCardTurn().Actions--;
        }
예제 #10
0
        public override async Task MoveEffect(CombatInstance inst)
        {
            List <BasicCard> targets = inst.GetAOEEnemyTargets();

            foreach (BasicCard card in targets)
            {
                card.AddBuff(new BuffDebuff()
                {
                    Name             = "Burning",
                    Buff             = false,
                    Origin           = $"({inst.GetCardTurn().Signature})",
                    Description      = "8 damage each round.",
                    DamagePerRound   = 8,
                    DPRAlternateText = "burning damage.",
                    Rounds           = 3
                });
            }

            await MessageHandler.SendMessage(inst.Location, $"{inst.GetCardTurn().Signature} sets the enemy team aflame!");

            OnCooldown      = true;
            CurrentCooldown = Cooldown;
            inst.GetCardTurn().Actions--;
        }