Advertisement
Legiomax

C#_2_boss_fight

Jan 16th, 2024 (edited)
759
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 31.32 KB | Software | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7.  
  8. namespace C_Ijun
  9. {
  10.     internal class Program
  11.     {
  12.         static void Main(string[] args)
  13.         {
  14.             bool isMarker = false;
  15.             bool isShadowFlicker = false;
  16.             bool isStealHealth = false;
  17.             bool isSacriface = false;
  18.             bool isConcentrate = false;
  19.  
  20.             double healthHero = 1000;
  21.             double healthEvil = 1500;
  22.             double startedHealthEvil = healthEvil;
  23.             double resultDamage;
  24.  
  25.             float modifyDamageFirstSeries = 1.5f;
  26.             float modifyDamageSecondSeries = 2.5f;
  27.             float modifyHeal = 1.1f;
  28.  
  29.             int weakAttackDamage = 10;
  30.             int middleAttackDamage = 50;
  31.             int strongAttackDamage = 100;
  32.             int criticalAttackDamage = 250;
  33.  
  34.             int changeChanceHeroForHit = 30;
  35.             int changeChanceForHeroFlicker = 60;
  36.             int changeChanceMissByExhausted = 5;
  37.             int chanceForEvilHit;
  38.             int chanceForHeroHit;
  39.             int chanceForHealingByEvil;
  40.             int chanceForCriticalHit;
  41.             int chanceForMagicMistake;
  42.             int countHeal = 2;
  43.             int countSeriesOfAttack = 4;
  44.             int countStepsBeforeSeries = 3;
  45.             int countStepsActiveShadowFlicker = 0;
  46.             int countStepsActiveConcentrate = 0;
  47.             int countStepsPassForStealHealth = 0;
  48.             int countStepsRestartConcentrate = 0;
  49.             int countStepsRestartShadowFlicker = 0;
  50.             int countStepsRestartStealHealth = 0;
  51.             int countMissedAttacksByEvil = 0;
  52.             int countMissedForSacriface = 3;
  53.  
  54.             int flickerByEvil;
  55.             int flickerByHero;
  56.  
  57.             int highChanceForCriticalHit = 3;
  58.             int highChanceForEvilFlicker = 15;
  59.             int highChanceForHeroFlicker = 15;
  60.             int highChanceForHealingByEvil = 100;
  61.             int highChanceForMagicMistake = 15;
  62.             int highChanceEvilForHit = 100;
  63.             int highChanceHeroForHit = 100;
  64.             int highChanceAvgMissByEvil = 30;
  65.             int highChanceWeakMissByHero = 10;
  66.             int highChanceAvgMissByHero = 25;
  67.             int highChanceStrongMissByHero = 65;
  68.             int highFlickerConcentrate = 5;
  69.  
  70.             int levelEvilExhausted = 0;
  71.             int levelHeroExhausted = 0;
  72.             int lessChanceForCriticalHitByStrongAttack = 2;
  73.             int lowChanceEvilForHit = 0;
  74.             int lowChanceHeroForHit = 0;
  75.             int lowChanceForCriticalHit = 0;
  76.             int lowChanceForEvilFlicker = 0;
  77.             int lowChanceForHeroFlicker = 0;
  78.             int lowChanceForMagicMistake = 0;
  79.             int lowChanceForHealingByEvil = 0;
  80.             int lowChanceAvgMissByEvil = 25;
  81.             int lowChanceWeakMissByHero = 0;
  82.             int lowChanceAvgMissByHero = 10;
  83.             int lowChanceStrongMissByHero = 50;
  84.             int lowFlickerConcentrate = 0;
  85.  
  86.             int maxLevelExhausted = 5;
  87.             int missAttack;
  88.             int missWeakAttackByHero;
  89.             int missMiddleAttackByEvil;
  90.             int missMiddleAttackByHero;
  91.             int missStrongAttackByHero;
  92.             int multipleExhaustedNewLevelByEvil = 3;
  93.             int multipleExhaustedNewLevelByHero = 5;
  94.             int moreChanceForCriticalHitByMiddleAttack = 2;
  95.             int moreChanceForCriticalHitByStrongAttack = 5;
  96.  
  97.             int newExhaustedChanceMiss = 2;
  98.             int oneHundredPercent = 100;
  99.             int percentOfDangerousDamage = 60;
  100.             int percentOfDamageByEvil;
  101.  
  102.             int startedChanceForCriticalHit = highChanceForCriticalHit;
  103.             int startedCountStepsActiveShadowFlicker = 2;
  104.             int startedCountStepsRestartShadowFlicker = 4;
  105.             int startedCountStepsActiveConcentrate = 5;
  106.             int startedCountStepsRestartConcentrate = 4;
  107.             int startedCountStepsPassForStealHealth = 1;
  108.             int startedCountStepsRestartStealHealth = 5;
  109.             int startedCountMissedAttacksByEvil = 0;
  110.             int startedCountStepsBeforeSeries = countStepsBeforeSeries;
  111.             int startedCountSeriesOfAttack = countSeriesOfAttack;
  112.             int stepsFight = 1;
  113.             int stepExhaustedStartByEvil = 20;
  114.             int stepExhaustedStartByHero = 15;
  115.             int sumDamageByHero;
  116.  
  117.             Random randomChance = new Random();
  118.             string userChoice;
  119.  
  120.             Console.WriteLine("Ваш ход\n1 - Нанести слабый урон противнику(атака слабовата, зато наверняка попадёте)" +
  121.                               "\n2 - Нанести средний урон противнику(хорошая атака, но вдруг промахнётесь?)" +
  122.                               "\n3 - Нанести большой урон противнику(отличный выбор! Правда мало того, что скорее всего промахнётесь, можете навредить себе.)" +
  123.                               "\n4 - Нанести метку, для повышенного урона(в течение 3х следующих ходов необходимо начать серию - 4 успешных удара по врагу. Серия начинается со 2го успешного удара, максимум серии - 3 удара)" +
  124.                               "\n5 - Уйти в мерцающую тень(увеличить шанс уклонения от удара врага, действует 2 хода, доступно каждые 3 хода)" +
  125.                               "\n6 - Украсть жизнь у врага(можете подлечиться за счёт противника, но знайте, что после этого не сможете наносить удары 5 ходов)" +
  126.                               "\n7 - Жертва(Принесите часть здоровья в жертву, чтобы нанести хороший урон противнику(Доступно, если 3 раза смогли увернуться физическим уклонением. Нельзя сразу после жертвы применять похищение жизни или теневое мерцание. Если мерцание было до этого активно, то оно прекращается.)" +
  127.                               "\n8 - Концентрация(Сосредоточьтесь на противнике и нанесите выверенный удар. Повышает шанс попадания. Правда, снижает шанс уклонения.)" +
  128.                               "\n9 - Проверить статистику(Будьте осторожны, это будет за счёт хода героя)");
  129.             Console.Write("Выберите действие: ");
  130.  
  131.             while (healthHero > 0 && healthEvil > 0)
  132.             {
  133.                 chanceForCriticalHit = randomChance.Next(lowChanceForCriticalHit, highChanceForCriticalHit);
  134.                 chanceForEvilHit = randomChance.Next(lowChanceEvilForHit, highChanceEvilForHit);
  135.                 chanceForHeroHit = randomChance.Next(lowChanceHeroForHit, highChanceHeroForHit);
  136.  
  137.                 if (isConcentrate)
  138.                 {
  139.                     countStepsActiveConcentrate--;
  140.  
  141.                     if (countStepsActiveConcentrate == 0)
  142.                     {
  143.                         highChanceHeroForHit -= changeChanceHeroForHit;
  144.                         lowChanceHeroForHit -= changeChanceHeroForHit;
  145.                         isConcentrate = false;
  146.                     }
  147.                 }
  148.  
  149.                 flickerByEvil = randomChance.Next(lowChanceForEvilFlicker, highChanceForEvilFlicker);
  150.                 flickerByHero = randomChance.Next(lowChanceForHeroFlicker, highChanceForHeroFlicker);
  151.  
  152.                 if (isShadowFlicker)
  153.                 {
  154.                     countStepsActiveShadowFlicker--;
  155.  
  156.                     if (countStepsActiveShadowFlicker == 0)
  157.                     {
  158.                         highChanceForHeroFlicker -= changeChanceForHeroFlicker;
  159.                         lowChanceForHeroFlicker -= changeChanceForHeroFlicker;
  160.                         isShadowFlicker = false;
  161.                     }
  162.                 }
  163.  
  164.                 if (countStepsRestartConcentrate > 0)
  165.                 {
  166.                     countStepsRestartConcentrate--;
  167.                 }
  168.  
  169.                 if (countStepsRestartShadowFlicker > 0)
  170.                 {
  171.                     countStepsRestartShadowFlicker--;
  172.                 }
  173.  
  174.                 if (countStepsRestartStealHealth > 0)
  175.                 {
  176.                     countStepsRestartStealHealth--;
  177.  
  178.                     if (countStepsRestartStealHealth == 0)
  179.                     {
  180.                         isStealHealth = false;
  181.                     }
  182.                 }
  183.  
  184.                 if (countStepsPassForStealHealth > 0)
  185.                 {
  186.                     countStepsPassForStealHealth--;
  187.                 }
  188.                 else
  189.                 {
  190.                     isSacriface = false;
  191.                 }
  192.                 userChoice = Console.ReadLine();
  193.  
  194.                 switch (userChoice)
  195.                 {
  196.                     case "1":
  197.                         missWeakAttackByHero = randomChance.Next(lowChanceWeakMissByHero, highChanceWeakMissByHero);
  198.                         missAttack = missWeakAttackByHero + flickerByEvil;
  199.  
  200.                         if (isStealHealth == false)
  201.                         {
  202.                             if (chanceForHeroHit > missAttack)
  203.                             {
  204.                                 if (chanceForCriticalHit < missAttack)
  205.                                 {
  206.                                     resultDamage = weakAttackDamage;
  207.                                     highChanceForCriticalHit++;
  208.                                 }
  209.                                 else
  210.                                 {
  211.                                     resultDamage = criticalAttackDamage;
  212.                                     highChanceForCriticalHit = startedChanceForCriticalHit;
  213.                                     Console.Write("Критический удар! ");
  214.                                 }
  215.  
  216.                                 if (isMarker)
  217.                                 {
  218.                                     countStepsBeforeSeries = startedCountStepsBeforeSeries;
  219.                                     countSeriesOfAttack--;
  220.                                     if (countSeriesOfAttack == 1)
  221.                                     {
  222.                                         resultDamage *= modifyDamageFirstSeries;
  223.                                     }
  224.                                     else if (countSeriesOfAttack == 0)
  225.                                     {
  226.                                         resultDamage *= modifyDamageSecondSeries;
  227.                                         countSeriesOfAttack = startedCountSeriesOfAttack;
  228.                                         isMarker = false;
  229.                                     }
  230.                                 }
  231.                                 healthEvil -= resultDamage;
  232.                                 Console.WriteLine($"Попадание. HP Злодея - {healthEvil}");
  233.                             }
  234.                             else
  235.                             {
  236.                                 if (highChanceForCriticalHit > 0)
  237.                                 {
  238.                                     highChanceForCriticalHit--;
  239.                                 }
  240.  
  241.                                 if (isMarker)
  242.                                 {
  243.                                     countSeriesOfAttack = startedCountSeriesOfAttack;
  244.                                     isMarker = false;
  245.                                 }
  246.                                 Console.WriteLine("Мимо.");
  247.                             }
  248.                         }
  249.                         else
  250.                         {
  251.                             Console.WriteLine("Вы не отдохнули после вытягивания жизни.");
  252.                         }
  253.                         break;
  254.  
  255.                     case "2":
  256.                         missMiddleAttackByHero = randomChance.Next(lowChanceAvgMissByHero, highChanceAvgMissByHero);
  257.                         missAttack = missMiddleAttackByHero + flickerByEvil;
  258.  
  259.                         if (isStealHealth == false)
  260.                         {
  261.                             if (chanceForHeroHit > missAttack)
  262.                             {
  263.                                 if (chanceForCriticalHit < missAttack)
  264.                                 {
  265.                                     resultDamage = middleAttackDamage;
  266.                                     highChanceForCriticalHit += moreChanceForCriticalHitByMiddleAttack;
  267.                                 }
  268.                                 else
  269.                                 {
  270.                                     resultDamage = criticalAttackDamage;
  271.                                     highChanceForCriticalHit = startedChanceForCriticalHit;
  272.                                     Console.Write("Критический удар! ");
  273.                                 }
  274.                                 if (isMarker)
  275.                                 {
  276.                                     countStepsBeforeSeries = startedCountStepsBeforeSeries;
  277.                                     countSeriesOfAttack--;
  278.  
  279.                                     if (countSeriesOfAttack == 1)
  280.                                     {
  281.                                         resultDamage *= modifyDamageFirstSeries;
  282.                                     }
  283.                                     else if (countSeriesOfAttack == 0)
  284.                                     {
  285.                                         resultDamage *= modifyDamageSecondSeries;
  286.                                         countSeriesOfAttack = startedCountSeriesOfAttack;
  287.                                         isMarker = false;
  288.                                     }
  289.                                 }
  290.                                 healthEvil -= resultDamage;
  291.                                 Console.WriteLine($"Попадание. HP Злодея - {healthEvil}");
  292.                             }
  293.                             else
  294.                             {
  295.                                 if (highChanceForCriticalHit > 0)
  296.                                 {
  297.                                     highChanceForCriticalHit--;
  298.                                 }
  299.  
  300.                                 if (isMarker)
  301.                                 {
  302.                                     countSeriesOfAttack = startedCountSeriesOfAttack;
  303.                                     isMarker = false;
  304.                                 }
  305.                                 Console.WriteLine("Мимо.");
  306.                             }
  307.                         }
  308.                         else
  309.                         {
  310.                             Console.WriteLine("Вы не отдохнули после вытягивания жизни.");
  311.                         }
  312.                         break;
  313.  
  314.                     case "3":
  315.                         chanceForMagicMistake = randomChance.Next(lowChanceForMagicMistake, highChanceForMagicMistake);
  316.                         missStrongAttackByHero = randomChance.Next(lowChanceStrongMissByHero, highChanceStrongMissByHero);
  317.                         missAttack = missStrongAttackByHero + flickerByEvil;
  318.  
  319.                         if (isStealHealth == false)
  320.                         {
  321.                             if (chanceForHeroHit > missAttack)
  322.                             {
  323.                                 if (chanceForCriticalHit < missAttack)
  324.                                 {
  325.                                     resultDamage = strongAttackDamage;
  326.                                     highChanceForCriticalHit += moreChanceForCriticalHitByStrongAttack;
  327.                                 }
  328.                                 else
  329.                                 {
  330.                                     resultDamage = criticalAttackDamage;
  331.                                     highChanceForCriticalHit = startedChanceForCriticalHit;
  332.                                     Console.Write("Критический удар! ");
  333.                                 }
  334.  
  335.                                 if (isMarker)
  336.                                 {
  337.                                     countStepsBeforeSeries = startedCountStepsBeforeSeries;
  338.                                     countSeriesOfAttack--;
  339.  
  340.                                     if (countSeriesOfAttack == 1)
  341.                                     {
  342.                                         resultDamage *= modifyDamageFirstSeries;
  343.                                     }
  344.                                     else if (countSeriesOfAttack == 0)
  345.                                     {
  346.                                         resultDamage *= modifyDamageSecondSeries;
  347.                                         countSeriesOfAttack = startedCountSeriesOfAttack;
  348.                                         isMarker = false;
  349.                                     }
  350.                                 }
  351.                                 healthEvil -= resultDamage;
  352.                                 Console.WriteLine($"Попадание. HP Злодея - {healthEvil}");
  353.                             }
  354.                             else
  355.                             {
  356.                                 if (highChanceForCriticalHit > 1)
  357.                                 {
  358.                                     highChanceForCriticalHit -= lessChanceForCriticalHitByStrongAttack;
  359.                                 }
  360.  
  361.                                 if (isMarker)
  362.                                 {
  363.                                     countSeriesOfAttack = startedCountSeriesOfAttack;
  364.                                     isMarker = false;
  365.                                 }
  366.                                 Console.WriteLine("Мимо.");
  367.  
  368.                                 if (chanceForHeroHit <= chanceForMagicMistake)
  369.                                 {
  370.                                     healthHero -= middleAttackDamage;
  371.                                     Console.WriteLine($"Вы совершили магическую ошибку и поранили себя. HP Героя - {healthHero}");
  372.                                 }
  373.                             }
  374.                         }
  375.                         else
  376.                         {
  377.                             Console.WriteLine("Вы не отдохнули после вытягивания жизни.");
  378.                         }
  379.                         break;
  380.  
  381.                     case "4":
  382.                         countStepsBeforeSeries = startedCountStepsBeforeSeries;
  383.                         countSeriesOfAttack = startedCountSeriesOfAttack;
  384.                         isMarker = true;
  385.                         Console.WriteLine("Вы поставили метку на противника.");
  386.                         break;
  387.  
  388.                     case "5":
  389.                         if (countStepsRestartShadowFlicker == 0 && isSacriface == false)
  390.                         {
  391.                             isShadowFlicker = true;
  392.                             countStepsActiveShadowFlicker = startedCountStepsActiveShadowFlicker;
  393.                             countStepsRestartShadowFlicker = startedCountStepsRestartShadowFlicker;
  394.                             highChanceForHeroFlicker += changeChanceForHeroFlicker;
  395.                             lowChanceForHeroFlicker += changeChanceForHeroFlicker;
  396.                             flickerByHero = randomChance.Next(lowChanceForHeroFlicker, highChanceForHeroFlicker);
  397.                             Console.WriteLine("Вы ушли мерцающую тень.");
  398.                         }
  399.                         else if (countStepsRestartShadowFlicker > 0)
  400.                         {
  401.                             Console.WriteLine("Вы ещё не восстановили способность ухода в мерцающую тень.");
  402.                         }
  403.                         else if (isSacriface)
  404.                         {
  405.                             Console.WriteLine("Недавно вы приносили себя в жертву.");
  406.                         }
  407.  
  408.                         if (isMarker)
  409.                         {
  410.                             if (countSeriesOfAttack == startedCountSeriesOfAttack)
  411.                             {
  412.                                 countStepsBeforeSeries--;
  413.  
  414.                                 if (countStepsBeforeSeries == 0)
  415.                                 {
  416.                                     isMarker = false;
  417.                                 }
  418.                             }
  419.                             else
  420.                             {
  421.                                 isMarker = false;
  422.                                 countSeriesOfAttack = startedCountSeriesOfAttack;
  423.                             }
  424.                         }
  425.                         break;
  426.  
  427.                     case "6":
  428.                         if (countStepsRestartStealHealth == 0 && isSacriface == false)
  429.                         {
  430.                             healthEvil -= middleAttackDamage;
  431.                             healthHero += weakAttackDamage;
  432.                             countStepsRestartStealHealth = startedCountStepsRestartStealHealth;
  433.                             isStealHealth = true;
  434.                             Console.WriteLine($"Вы украли здоровье у врага. HP Героя - {healthHero}. HP Злодея - {healthEvil}");
  435.                         }
  436.                         else if (isSacriface)
  437.                         {
  438.                             Console.WriteLine("Недавно вы приносили себя в жертву.");
  439.                         }
  440.                         else
  441.                         {
  442.                             Console.WriteLine("Ваши способности не восстановились.");
  443.                         }
  444.  
  445.                         if (isMarker)
  446.                         {
  447.                             if (countSeriesOfAttack == startedCountSeriesOfAttack)
  448.                             {
  449.                                 countStepsBeforeSeries--;
  450.  
  451.                                 if (countStepsBeforeSeries == 0)
  452.                                 {
  453.                                     isMarker = false;
  454.                                 }
  455.                             }
  456.                             else
  457.                             {
  458.                                 isMarker = false;
  459.                                 countSeriesOfAttack = startedCountSeriesOfAttack;
  460.                             }
  461.                         }
  462.                         break;
  463.  
  464.                     case "7":
  465.                         if (countMissedAttacksByEvil >= countMissedForSacriface)
  466.                         {
  467.                             healthEvil -= criticalAttackDamage;
  468.                             healthHero -= middleAttackDamage;
  469.                             countMissedAttacksByEvil = startedCountMissedAttacksByEvil;
  470.                             countStepsPassForStealHealth = startedCountStepsPassForStealHealth;
  471.                             isSacriface = true;
  472.  
  473.                             if (isShadowFlicker)
  474.                             {
  475.                                 highChanceForHeroFlicker -= changeChanceForHeroFlicker;
  476.                                 lowChanceForHeroFlicker -= changeChanceForHeroFlicker;
  477.                                 isShadowFlicker = false;
  478.                             }
  479.                             Console.WriteLine($"Вы принесли себя в жертву, для нанесения критического урона врагу. HP Героя - {healthHero}. HP Злодея - {healthEvil}");
  480.                         }
  481.                         else
  482.                         {
  483.                             Console.WriteLine("Для принесения жертвы, вы должны увернуться 3 раза подряд, не находясь в теневом мерцании.");
  484.                         }
  485.  
  486.                         if (isMarker)
  487.                         {
  488.                             if (countSeriesOfAttack == startedCountSeriesOfAttack)
  489.                             {
  490.                                 countStepsBeforeSeries--;
  491.  
  492.                                 if (countStepsBeforeSeries == 0)
  493.                                 {
  494.                                     isMarker = false;
  495.                                 }
  496.                             }
  497.                             else
  498.                             {
  499.                                 isMarker = false;
  500.                                 countSeriesOfAttack = startedCountSeriesOfAttack;
  501.                             }
  502.                         }
  503.                         break;
  504.  
  505.                     case "8":
  506.                         if (countStepsRestartConcentrate == 0)
  507.                         {
  508.                             isConcentrate = true;
  509.                             countStepsActiveConcentrate = startedCountStepsActiveConcentrate;
  510.                             countStepsRestartConcentrate = startedCountStepsRestartConcentrate;
  511.  
  512.                             if (isShadowFlicker == false)
  513.                             {
  514.                                 flickerByHero = randomChance.Next(lowFlickerConcentrate, highFlickerConcentrate);
  515.                             }
  516.                             highChanceHeroForHit += changeChanceHeroForHit;
  517.                             lowChanceHeroForHit += changeChanceHeroForHit;
  518.                             Console.WriteLine("Шанс попадания увеличился значительно. Увернуться от удара противника стало тяжело.");
  519.                         }
  520.                         else
  521.                         {
  522.                             Console.WriteLine("Ваши способности не восстановились.");
  523.                         }
  524.  
  525.                         if (isMarker)
  526.                         {
  527.                             if (countSeriesOfAttack == startedCountSeriesOfAttack)
  528.                             {
  529.                                 countStepsBeforeSeries--;
  530.  
  531.                                 if (countStepsBeforeSeries == 0)
  532.                                 {
  533.                                     isMarker = false;
  534.                                 }
  535.                             }
  536.                             else
  537.                             {
  538.                                 isMarker = false;
  539.                                 countSeriesOfAttack = startedCountSeriesOfAttack;
  540.                             }
  541.                         }
  542.                         break;
  543.  
  544.                     case "9":
  545.                         Console.Write($"HP героя - {healthHero}\n" +
  546.                             $"HP героя - {healthEvil}\n" +
  547.                             $"Активность метки - {isMarker}\n" +
  548.                             $"Активность теневого мерцания - {isShadowFlicker}\n" +
  549.                             $"Активность сосредоточения - {isConcentrate}\n" +
  550.                             $"Применение жертвы - {isSacriface}\n" +
  551.                             $"Применение вытягивания жизни - {isStealHealth}\n" +
  552.                             $"Уровень усталости героя - {levelHeroExhausted}\n" +
  553.                             $"Уровень усталости злодея - {levelEvilExhausted}\n" +
  554.                             $"Раунд - {stepsFight}\n");
  555.                         break;
  556.  
  557.                     default:
  558.                         Console.WriteLine("Нет такого выбора.");
  559.                         break;
  560.                 }
  561.  
  562.                 if (healthEvil <= 0)
  563.                 {
  564.                     Console.WriteLine($"Злодей погиб. HP Героя - {healthHero}");
  565.                     break;
  566.                 }
  567.  
  568.                 sumDamageByHero = Convert.ToInt32(startedHealthEvil - healthEvil);
  569.                 percentOfDamageByEvil = sumDamageByHero / (Convert.ToInt32(startedHealthEvil) / oneHundredPercent);
  570.                 chanceForHealingByEvil = randomChance.Next(lowChanceForHealingByEvil, highChanceForHealingByEvil);
  571.                 missMiddleAttackByEvil = randomChance.Next(lowChanceAvgMissByEvil, highChanceAvgMissByEvil);
  572.                 missAttack = missMiddleAttackByEvil + flickerByHero;
  573.  
  574.                 if (countHeal > 0 && (percentOfDamageByEvil > chanceForHealingByEvil || percentOfDamageByEvil >= percentOfDangerousDamage))
  575.                 {
  576.                     healthEvil *= modifyHeal;
  577.                     countHeal--;
  578.                     Console.WriteLine($"Противник вылечил себя! HP Злодея - {healthEvil}");
  579.                 }
  580.                 else if (chanceForEvilHit > missAttack)
  581.                 {
  582.                     healthHero -= middleAttackDamage;
  583.                     countMissedAttacksByEvil = startedCountMissedAttacksByEvil;
  584.                     Console.WriteLine($"По вам попали. HP героя - {healthHero}");
  585.                 }
  586.                 else
  587.                 {
  588.                     if (isShadowFlicker == false)
  589.                     {
  590.                         countMissedAttacksByEvil++;
  591.                     }
  592.                     Console.WriteLine("Противник промахнулся!");
  593.                 }
  594.  
  595.                 if (healthHero <= 0)
  596.                 {
  597.                     Console.WriteLine($"Герой погиб. HP Злодея - {healthEvil}");
  598.                     break;
  599.                 }
  600.  
  601.                 if (levelHeroExhausted < maxLevelExhausted && stepsFight >= stepExhaustedStartByHero && stepsFight % multipleExhaustedNewLevelByHero == 0)
  602.                 {
  603.                     levelHeroExhausted++;
  604.                     highChanceWeakMissByHero += changeChanceMissByExhausted;
  605.                     highChanceAvgMissByHero += changeChanceMissByExhausted;
  606.                     changeChanceMissByExhausted += newExhaustedChanceMiss;
  607.                     Console.WriteLine($"Герой начинает уставать. Уровень усталости - {levelHeroExhausted}");
  608.                 }
  609.  
  610.                 if (levelEvilExhausted < maxLevelExhausted && stepsFight >= stepExhaustedStartByEvil && stepsFight % multipleExhaustedNewLevelByEvil == 0)
  611.                 {
  612.                     levelEvilExhausted++;
  613.                     highChanceAvgMissByEvil += changeChanceMissByExhausted;
  614.                     changeChanceMissByExhausted += newExhaustedChanceMiss;
  615.                     Console.WriteLine($"Злодей начинает уставать. Уровень усталости - {levelEvilExhausted}");
  616.                 }
  617.  
  618.                 stepsFight++;
  619.             }
  620.  
  621.             Console.WriteLine("Бой окончен, нажмите любую клавишу");
  622.             Console.ReadLine();
  623.         }
  624.     }
  625. }
  626.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement