Example #1
0
 public static void ExecuteAction(Models.Action action, Hero player)
 {
     if (action.Name != "LEVEL UP CRITICAL STRIKE")
     {
         HeroCooldownReductor.ReduceCooldowns(player);
         IPassiveActivator hero = (IPassiveActivator)player;
         hero.ActivatePassive(action.Name, player);
         ActionResult.ShowActionResult($"{player.Name} ACTIVATED {action.Name}!");
     }
     else
     {
         SwordmasterWarrior swordmaster = (SwordmasterWarrior)player;
         if (swordmaster.CriticalStrike)
         {
             var key = new ConsoleKeyInfo();
             while (key.Key != ConsoleKey.Enter)
             {
                 Console.Clear();
                 Console.ForegroundColor = ConsoleColor.Red;
                 Console.WriteLine(Constants.GameTitle);
                 Console.WriteLine($"CRITICAL STRIKE HAS ALREADY BEEN LEVELED UP! SELECT DIFFERENT ACTION!");
                 Console.WriteLine("-- PRESS ENTER TO CONTINUE TO ACTION MENU --");
                 key = Console.ReadKey();
             }
             Combat.PlayerTurn(player);
         }
         else
         {
             HeroCooldownReductor.ReduceCooldowns(player);
             IPassiveActivator hero = (IPassiveActivator)player;
             hero.ActivatePassive(action.Name, player);
             ActionResult.ShowActionResult($"{player.Name} ACTIVATED {action.Name}!");
         }
     }
 }
Example #2
0
        public static void CreateWarrior(string playerName, string typeOfWarrior)
        {
            List <Models.Action> actions = new List <Models.Action>();

            actions.Add(new Hit("HIT", Constants.BaseCooldown, Constants.BaseCost, Constants.WarriorDamage));
            if (typeOfWarrior == "SWORDMASTER")
            {
                actions.Add(new LevelUpCrit("LEVEL UP CRITICAL STRIKE", Constants.BaseCooldown, Constants.BaseCost));
                actions.Add(new MirrorImage("MIRROR IMAGE", Constants.BaseCooldown, 20, Constants.WarriorDamage));
                actions.Add(new WindFury("WINDFURY", Constants.BaseCooldown, 50, Constants.WarriorDamage * 4));
                Hero swordmaster = new SwordmasterWarrior(playerName, Constants.WarriorHealth, Constants.WarriorHealthRegen
                                                          , actions, Constants.HeroBaseArmor, Constants.WarriorStartingRage, Constants.WarriorDamage);
                players.Add(swordmaster);
            }
            else if (typeOfWarrior == "BERSERKER")
            {
                actions.Add(new GoBerserk("GO BERSERK", Constants.BaseCooldown, Constants.BaseCost, 100));
                actions.Add(new WildAxes("WILD AXES", Constants.BaseCooldown, 40, Constants.WarriorDamage * 3));
                actions.Add(new Execute("EXECUTE", Constants.BaseCooldown, 0, 700));
                Hero berserker = new BerserkerWarrior(playerName, Constants.WarriorHealth, Constants.WarriorHealthRegen
                                                      , actions, Constants.HeroBaseArmor, Constants.WarriorStartingRage, Constants.WarriorDamage);
                players.Add(berserker);
            }
            else
            {
                actions.Add(new ArmorUp("ARMOR UP", Constants.BaseCooldown, Constants.BaseCost, Constants.ProtectionWarriorArmor));
                actions.Add(new Hibernate("HIBERNATE", Constants.BaseCooldown, 40, Constants.WarriorHealthRegen * 4));
                actions.Add(new ShieldSlam("SHIELD SLAM", Constants.BaseCooldown, 30, Constants.WarriorDamage * 4));
                Hero protector = new ProtectionWarrior(playerName, Constants.WarriorHealth, Constants.WarriorHealthRegen
                                                       , actions, Constants.ProtectionWarriorArmor, Constants.WarriorStartingRage, Constants.WarriorDamage);
                players.Add(protector);
            }
        }
        public void ActivatePassiveWithLevelUpCriticalStrike()
        {
            //Arrange
            SwordmasterWarrior sut = new SwordmasterWarrior("Avanger", health, healthRegeneration, new List <Action>()
            {
                new LevelUpCrit("LEVEL UP CRITICAL STRIKE", 3, 3)
            }, armor, rage, attackPower);

            //Act
            sut.ActivatePassive("LEVEL UP CRITICAL STRIKE", sut);

            //Assert
            Assert.IsTrue(sut.CriticalStrike);
            Assert.AreEqual(0, sut.PassiveDuration);
        }
Example #4
0
        public void ExecuteAgressiveAction(Hero player, Hero enemy)
        {
            SwordmasterWarrior playerOnTurn = (SwordmasterWarrior)player;

            player.Actions.Where(a => a.Name == this.Name).First().SetCooldown(AbilityCooldownConstants.MirrorImageCooldown);
            if (playerOnTurn.CriticalStrike)
            {
                bool isCrit = CriticalChecker.CheckForCrit(player);
                if (isCrit)
                {
                    CriticalPrinter.PrintCritical(player);
                    enemy.TakeDamage(this.Damage);
                }
            }

            enemy.TakeDamage(this.Damage);
        }
Example #5
0
        public void ExecuteAgressiveAction(Hero player, Hero enemy)
        {
            enemy.StunnedDuration++;
            SwordmasterWarrior playerOnTurn = (SwordmasterWarrior)player;

            player.Actions.Where(a => a.Name == this.Name).First().SetCooldown(AbilityCooldownConstants.MirrorImageCooldown);
            if (playerOnTurn.CriticalStrike)
            {
                var random = new Random().Next(1, 101);
                if (random <= 35)
                {
                    CriticalPrinter.PrintCritical(player);
                    enemy.TakeDamage(this.Damage);
                }
            }
            else
            {
                enemy.TakeDamage(this.Damage);
            }
        }
Example #6
0
        public static bool CheckForCrit(Hero player)
        {
            var typeOfWarr = player.GetType().Name;

            if (typeOfWarr == "SwordmasterWarrior")
            {
                SwordmasterWarrior warr = (SwordmasterWarrior)player;
                if (warr.CriticalStrike)
                {
                    var chance = new Random().Next(1, 101);
                    return(chance <= 35);
                }
            }
            else if (typeOfWarr == "BerserkerWarrior")
            {
                var chance = new Random().Next(1, 101);
                return(chance <= 15);
            }

            return(false);
        }