Esempio n. 1
0
        /// <summary>
        /// Атака оружием игрока. Если во время выбораоружия ввести 333 - вызываем супер-атаку
        /// </summary>
        /// <param name="player"> Игрок </param>
        /// <param name="enemyCount"> Количество противников </param>
        /// <returns> Массив с уроном для противников </returns>
        public static int[] PlayerWeaponsAttack(Player player, int enemyCount)
        {
            var type = player.SelectType();

            Window.PrintArray(player.GetCharacteristicsOfWeapons(type));
            int index = Program.Parse(Console.ReadLine(), 0);

            if (index == 333)
            {
                return(player.SuperAttack(enemyCount));
            }

            /* Мы выбрали какой-либо тип оружия, но метод атаки является обобщенным,
             * он принимает в себя не один вид оружия, а сразу все три.
             * И в зависимости от выбранного типа атакует этим оружием. */
            var bow   = player.Bow;
            var sword = player.GetSword(index < player.Swords.Count ? index : 0);
            var spell = player.GetSpell(index < player.Spells.Count ? index : 0);
            // массив с индексами противников, которых атакуем
            var enInd = type == Weapons.WeaponsType.Sword ? GetEnemyIndexs() : new[] { 0 };

            return(player.Attack(enemyCount, type, bow, spell, sword, enInd));
        }