View difference between Paste ID: v4dTGudq and wPMhzvaf
SHOW: | | - or go back to the newest paste.
1
using System;
2
3
internal class Program
4
{
5
    static void Main(string[] args)
6
    {
7
        const string MagicFireballCommand = "Fireball";
8
        const string MagicHealthRegenCommand = "Regen";
9
        const string MagicVampireCommand = "Vampire";
10
        const string MagicSplitDamageCommand = "Split damage";
11
        const string NormalPunchCommand = "Punch";
12
        const string RunAwayCommand = "Run!";
13
14
        Random random = new Random();
15
16
        int minPlayerDamage = 1;
17
        int maxPlayerDamage = 20;
18
        int playerDamage;
19
        int minStartPlayerHealth = 50;
20
        int maxStartPlayerHealth = 100;
21
        int manaPlayer = 10;
22
        int maxManaPlayer = 50;
23-
        int playerHealth = random.Next(minStartPlayerHealth, maxStartPlayerHealth);
23+
24
        float playerHealth = random.Next(minStartPlayerHealth, maxStartPlayerHealth);
25
26
        int minEnemyDamage = 2;
27
        int maxEnemyDamage = 30;
28
        int enemyDamage;
29
        int minStartEnemyHealth = 80;
30
        int maxStartEnemyHealth = 200;
31
        int enemyHealth = random.Next(minStartEnemyHealth, maxStartEnemyHealth);
32
33-
        int needManaForFierball = 15;
33+
34-
        int quantityRegenHealth = 10;
34+
        int quantityRegenHealth = 35;
35-
        int vampireDamage;
35+
36
        int numberOfMagicVampireAttack = 0;
37
        int numberOfRunAwayCommand = 0;
38
39
        int minNumberForCriticalDamage = 1;
40
        int maxNumberForCriticalDamage = 5;
41
        int minCoefficentCriticalDamage = 2;
42
        int maxCoefficentCriticalDamage = 4;
43
        int coefficentCriticalDamage;
44
        int probablyCriticalDamage;
45
        int needNumberForCriticalDamage;
46-
        while (playerHealth > 0 && enemyHealth > 0)
46+
47
        while (playerHealth > 0 && enemyHealth > 0 && numberOfRunAwayCommand == 0)
48
        {
49
            string? userInput;
50
            int quantityManaForMagicFireball = 3;
51
            int quantityManaForMagicVampire = 5;
52
            int quantityManaForMagicHealthRegen = 5;
53
            int quantityManaForMagicSplitDamage = 4;
54
            int coefficentSplitDamage = 2;
55
56
            probablyCriticalDamage = random.Next(minNumberForCriticalDamage, maxNumberForCriticalDamage);
57
            needNumberForCriticalDamage = random.Next(minNumberForCriticalDamage, maxNumberForCriticalDamage);
58
            coefficentCriticalDamage = random.Next(minCoefficentCriticalDamage, maxCoefficentCriticalDamage);
59
            playerDamage = random.Next(minPlayerDamage, maxPlayerDamage);
60
            enemyDamage = random.Next(minEnemyDamage, maxEnemyDamage);
61-
                $"{NormalPunchCommand} - нанести обычный удар." +
61+
62-
                $"{MagicFireballCommand} - удар огненным шаром. Необходимо 15 ед маны.\n" +
62+
63-
                $"{MagicVampireCommand} - забрать половину нанесенного урона себе. Необходимо 20 маны и" +
63+
64
            Console.WriteLine();
65-
                $"{MagicHealthRegenCommand} - восстановить {quantityRegenHealth} жизней.\n" +
65+
66-
                $"{MagicSplitDamageCommand} - уменьшить урон наносимый противником в 2 раза.\n" +
66+
67
                $"{NormalPunchCommand} - нанести обычный удар.\n" +
68
                $"{MagicFireballCommand} - удар огненным шаром. Необходимо {quantityManaForMagicFireball} ед маны.\n" +
69
                $"{MagicVampireCommand} - забрать половину нанесенного урона себе. Необходимо {quantityManaForMagicVampire} маны и" +
70-
            Console.Write("Введите команду:");
70+
71
                $"{MagicHealthRegenCommand} - восстановить {quantityRegenHealth} жизней. Необходимо {quantityManaForMagicHealthRegen} маны\n" +
72
                $"{MagicSplitDamageCommand} - уменьшить урон наносимый противником в 2 раза. Можно использовать " +
73
                $"только после применения {MagicVampireCommand}. Необходимо {quantityManaForMagicSplitDamage} маны\n" +
74
                $"{RunAwayCommand} - сбежать с поля боя.");
75
            Console.WriteLine();
76
77
            Console.Write("Введите команду: ");
78
            userInput = Console.ReadLine();
79
80
            switch (userInput)
81
            {
82
                case NormalPunchCommand:
83
                    if (probablyCriticalDamage == needNumberForCriticalDamage)
84
                    {
85
                        playerDamage *= coefficentCriticalDamage;
86
                        enemyHealth -= playerDamage;
87
                    }
88
                    else
89
                    {
90-
                    if (manaPlayer >= needManaForFierball)
90+
91
                    }
92
93-
                        manaPlayer -= needManaForFierball;
93+
94
95
                case MagicFireballCommand:
96
                    if (manaPlayer >= quantityManaForMagicFireball)
97
                    {
98
                        manaPlayer -= quantityManaForMagicFireball;
99
                        enemyHealth -= fireballDamage;
100
                        manaPlayer -= quantityManaForMagicFireball;
101
                    }
102
                    else
103
                    {
104
                        if (probablyCriticalDamage == needNumberForCriticalDamage)
105
                        {
106
                            playerDamage *= coefficentCriticalDamage;
107
                            enemyHealth -= playerDamage;
108
                        }
109
                        else
110
                        {
111-
                    if (manaPlayer >= 20 && playerHealth <= playerHealth * coefficentVampireHealthRegen)
111+
112
                        }
113
                    }
114
115
                    break;
116
117
                case MagicVampireCommand:
118
                    if (manaPlayer >= quantityManaForMagicVampire && playerHealth <= maxStartPlayerHealth * coefficentVampireHealthRegen && numberOfMagicVampireAttack <= manaPlayer)
119
                    {
120
                        manaPlayer -= quantityManaForMagicVampire;
121
                        enemyHealth -= playerDamage;
122
                        playerHealth += playerDamage * coefficentVampireHealthRegen;
123
                        numberOfMagicVampireAttack++;
124
                    }
125
                    else
126
                    {
127
                        if (probablyCriticalDamage == needNumberForCriticalDamage)
128
                        {
129
                            playerDamage *= coefficentCriticalDamage;
130
                            enemyHealth -= playerDamage;
131
                        }
132
                        else
133
                        {
134-
            Console.WriteLine($"Босс победил.\n " +
134+
135-
                $"Ваши жизни {playerHealth}" +
135+
136
                    }
137
138
                    break;
139
140-
            Console.WriteLine($"Вы победили!\n " +
140+
                case MagicHealthRegenCommand:
141-
             $"Ваши жизни {playerHealth}" +
141+
                    if (manaPlayer >= quantityManaForMagicHealthRegen)
142
                    {
143
                        playerHealth += quantityRegenHealth;
144
                        manaPlayer -= quantityManaForMagicHealthRegen;
145
146-
            Console.WriteLine($"Ничья. Оба мертвы.\n " +
146+
                        if (playerHealth > maxStartPlayerHealth)
147-
             $"Ваши жизни {playerHealth}" +
147+
148
                            playerHealth = maxStartPlayerHealth;
149
                        }
150
                    }
151
                    else
152
                    {
153
                        if (probablyCriticalDamage == needNumberForCriticalDamage)
154
                        {
155
                            playerDamage *= coefficentCriticalDamage;
156
                            enemyHealth -= playerDamage;
157
                        }
158
                        else
159
                        {
160
                            enemyHealth -= playerDamage;
161
                        }
162
                    }
163
164
                    break;
165
166
                case MagicSplitDamageCommand:
167
                    if (numberOfMagicVampireAttack > 0 && quantityManaForMagicSplitDamage <= manaPlayer)
168
                    {
169
                        enemyDamage = enemyDamage / coefficentSplitDamage;
170
                        manaPlayer -= quantityManaForMagicSplitDamage;
171
                    }
172
                    else
173
                    {
174
                        if (probablyCriticalDamage == needNumberForCriticalDamage)
175
                        {
176
                            playerDamage *= coefficentCriticalDamage;
177
                            enemyHealth -= playerDamage;
178
                        }
179
                        else
180
                        {
181
                            enemyHealth -= playerDamage;
182
                        }
183
                    }
184
185
                    break;
186
187
                case RunAwayCommand:
188
                    numberOfRunAwayCommand++;
189
                    Console.Clear();
190
191
                    break;
192
193
                default:
194
                    Console.WriteLine("Вы промахнулись и нанесли 0 единиц урона.\nНажмите любую клавишу...");
195
                    Console.ReadKey();
196
197
                    break;
198
            }
199
200
            if (manaPlayer > maxManaPlayer)
201
            {
202
                manaPlayer = maxManaPlayer;
203
            }
204
205
            if (playerHealth > maxStartPlayerHealth)
206
            {
207
                playerHealth = maxStartPlayerHealth;
208
            }
209
210
            if (numberOfRunAwayCommand > 0)
211
            {
212
                Console.WriteLine($"Вы сбежали с поля боя.\n" +
213
                $"Ваши жизни {playerHealth}\n" +
214
                $"Жизни противника: {enemyHealth}\n" +
215
                $"Нажмите любую клавишу...");
216
                Console.ReadKey();
217
                return;
218
            }
219
220
            if (probablyCriticalDamage == needNumberForCriticalDamage)
221
            {
222
                enemyDamage *= coefficentCriticalDamage;
223
                playerHealth -= enemyDamage;
224
            }
225
            else
226
            {
227
                playerHealth -= enemyDamage;
228
            }
229
230
            manaPlayer += manaPlayerRegen;
231
232
            Console.Clear();
233
        }
234
235
        if (playerHealth <= 0 && enemyHealth > 0)
236
        {
237
            Console.WriteLine($"Босс победил.\n" +
238
                $"Ваши жизни {playerHealth}\n" +
239
                $"Жизни противника: {enemyHealth}\n");
240
        }
241
        else if (playerHealth > 0 && enemyHealth <= 0)
242
        {
243
            Console.WriteLine($"Вы победили!\n" +
244
             $"Ваши жизни {playerHealth}\n" +
245
            $"Жизни противника: {enemyHealth}\n");
246
        }
247
        else if (playerHealth <= 0 && enemyHealth <= 0)
248
        {
249
            Console.WriteLine($"Ничья. Оба мертвы.\n" +
250
             $"Ваши жизни {playerHealth}\n" +
251
            $"Жизни противника: {enemyHealth}\n");
252
        }
253
254
        Console.ReadKey();
255
    }
256
}