示例#1
0
        static void Action(IFighter fighter_1, IFighter fighter_2, int roundNumber, ref string gameStatus)
        {
            string technique;
            int    scoring;

            if (fighter_1.corner == "player")
            {
                Console.Write("  -- Wciśnij wybrany klawisz, aby zaatakować: ");
                ConsoleKeyInfo TechniqueKey = Console.ReadKey();

                Console.WriteLine($"\n\n  Atakuje {fighter_1.name}\n");
                Thread.Sleep(1000);

                Random randomForPlayer          = new Random();
                int    actionScoringDeterminant = randomForPlayer.Next(4);

                technique = Techniques.GetTechniqueForPlayer(TechniqueKey, actionScoringDeterminant);
                scoring   = Techniques.GetScoringForPlayer(TechniqueKey, fighter_1, actionScoringDeterminant);
            }
            else
            {
                Console.Write($"  Atakuje {fighter_1.name}");

                Thread.Sleep(1000); Console.Write(". ");
                Thread.Sleep(1000); Console.Write(". ");
                Thread.Sleep(1000); Console.WriteLine(". ");
                Thread.Sleep(1000); Console.WriteLine();

                Random randomForRival = new Random();
                int    scoringAndTechniqueDeterminant = randomForRival.Next(6);

                technique = Techniques.GetRandomTechnique(scoringAndTechniqueDeterminant);
                scoring   = Techniques.GetRandomScoring(fighter_1, scoringAndTechniqueDeterminant);
            }

            Console.WriteLine($"  {fighter_1.pseudonym} => {technique} => {fighter_2.pseudonym}");
            Thread.Sleep(1000);
            Console.WriteLine($"  Akcja za {scoring}");
            Thread.Sleep(1000);

            if (fighter_2.energy > scoring)
            {
                fighter_2.ReduceEnergy(scoring);
                Console.WriteLine($"  Energia zawodnika - {fighter_2.pseudonym} : {fighter_2.energy}\n");
            }
            else
            {
                fighter_2.ReduceEnergy(1000);
                Console.WriteLine($"  Energia zawodnika - {fighter_2.pseudonym} : {fighter_2.energy}\n");

                FightVerdictBeforeTime.Winn(fighter_1, fighter_2, roundNumber);
                FightVerdictBeforeTime.Loss(fighter_2, roundNumber);

                if (fighter_1.corner == "player")
                {
                    gameStatus = "Winn";
                }
                else
                {
                    gameStatus = "Loss";
                }
            }
        }