SHOW:
|
|
- or go back to the newest paste.
1 | using System; | |
2 | ||
3 | namespace C_sharp_Light | |
4 | { | |
5 | class Program | |
6 | { | |
7 | static void Main(string[] args) | |
8 | { | |
9 | Random rand = new Random(); | |
10 | ||
11 | - | int playerHp = rand.Next(185,215); |
11 | + | int playerHp = rand.Next(185, 215); |
12 | - | int playerManaMax = rand.Next(80,180); |
12 | + | int playerManaMax = rand.Next(80, 180); |
13 | int playerMana = playerManaMax; | |
14 | - | int playerForce = rand.Next(1, 11); |
14 | + | int playerForce = rand.Next(1, 11); |
15 | ||
16 | int bossHp = rand.Next(185, 215); | |
17 | int bossManaMax = rand.Next(80, 180); | |
18 | int bossMana = bossManaMax; | |
19 | - | int bossForce = rand.Next(1,11); |
19 | + | int bossForce = rand.Next(1, 11); |
20 | //Fire Ball, Regain, FireStorm, Skip, ForceUp, IceSpike | |
21 | ||
22 | int manaFireBall = 10; | |
23 | int damageFireBall = 18; | |
24 | ||
25 | int manaRegain = 35; | |
26 | int recoveryOfRegain = 40; | |
27 | ||
28 | int manaFireStorm = 40; | |
29 | int damageFireStorm = 30; | |
30 | int requiredForceFireStorm = 7; | |
31 | - | Console.WriteLine("Заклинания:\n" + |
31 | + | |
32 | - | "1 - Огненный шар - 10 манны; урон базовый 18\n" + |
32 | + | int recoveryManeOfSkip = 40; |
33 | - | "2 - Восстановление - 35 манны; восстановление 40\n" + |
33 | + | |
34 | - | "3 - Огненный шторм (сила >= 7) - 40 манны; базовый урон 30 (всем)\n" + |
34 | + | int manaForceUp = 10; |
35 | - | "4 - пропуск хода - восстановление манны 40 +- 5\n" + |
35 | + | int improveForce = 1; |
36 | - | "5 - Заклинание силы - 10 манны; +1 силы \n" + |
36 | + | |
37 | - | "6 - Шипы из льда (сила > 4) - 30 манны; Базовый урон 45"); |
37 | + | int manaIceSpike = 30; |
38 | int damageIceSpike = 45; | |
39 | int requiredForceIceSpike = 5; | |
40 | ||
41 | int damage; | |
42 | int recoveryHp; | |
43 | while (playerHp > 0 && bossHp > 0) | |
44 | { | |
45 | Console.Clear(); | |
46 | ||
47 | // Описание заклинаний игрока | |
48 | Console.SetCursorPosition(0, 15); | |
49 | Console.ForegroundColor = ConsoleColor.Red; | |
50 | Console.WriteLine($"Заклинания:\n" + | |
51 | $"1 - Огненный шар - {manaFireBall} манны; урон базовый {damageFireBall}\n" + | |
52 | $"2 - Восстановление - {manaRegain} манны; восстановление {recoveryOfRegain}\n" + | |
53 | $"3 - Огненный шторм (требования: сила >= {requiredForceFireStorm}) - {manaFireStorm} манны; базовый урон {damageFireStorm} (всем)\n" + | |
54 | $"4 - пропуск хода - восстановление манны {recoveryManeOfSkip} +- 5\n" + | |
55 | $"5 - Заклинание силы - {manaForceUp} манны; +{improveForce} силы \n" + | |
56 | $"6 - Шипы из льда (требования: сила >= {requiredForceIceSpike}) - манны{manaIceSpike}; Базовый урон {damageIceSpike}"); | |
57 | ||
58 | // Вывод информации о боссе и о игроке | |
59 | Console.ForegroundColor = ConsoleColor.Blue; | |
60 | { | |
61 | Console.SetCursorPosition(0, 0); | |
62 | Console.Write($"Здоровье игрока = {playerHp}"); | |
63 | Console.SetCursorPosition(28, 0); | |
64 | Console.Write($"Здоровье Ктулху = {bossHp}"); | |
65 | } | |
66 | { | |
67 | - | if ((playerMana - 10) >= 0) |
67 | + | |
68 | Console.Write($"Манна игрока = {playerMana}"); | |
69 | - | playerMana -= 10; |
69 | + | |
70 | - | damage = 18 + rand.Next(playerForce / 2 + playerForce); |
70 | + | |
71 | } | |
72 | { | |
73 | Console.SetCursorPosition(0, 2); | |
74 | Console.Write($"Сила игрока = {playerForce}"); | |
75 | Console.SetCursorPosition(28, 2); | |
76 | Console.Write($"Сила Ктулху = {bossForce}"); | |
77 | } | |
78 | - | if ((playerMana - 35) >= 0) |
78 | + | |
79 | // Ход игрока | |
80 | - | recoveryHp = 40; |
80 | + | |
81 | Console.Write("\n\nВаш ход. Какое заклинание вы выберите? - "); | |
82 | - | playerMana -= 35; |
82 | + | |
83 | switch (Convert.ToInt32(Console.ReadLine())) | |
84 | { | |
85 | case 1: | |
86 | if ((playerMana - manaFireBall) >= 0) | |
87 | { | |
88 | playerMana -= manaFireBall; | |
89 | - | if (playerForce >= 7) |
89 | + | damage = damageFireBall + rand.Next(playerForce / 2 + playerForce); |
90 | bossHp -= damage; | |
91 | - | if ((playerMana - 40) >= 0) |
91 | + | |
92 | } | |
93 | - | playerMana -= 40; |
93 | + | |
94 | - | damage = 30 + rand.Next(playerForce * 3); |
94 | + | |
95 | Console.WriteLine("У вас недостаточно манны. Пропускайте ход"); | |
96 | } | |
97 | break; | |
98 | case 2: | |
99 | if ((playerMana - manaRegain) >= 0) | |
100 | { | |
101 | recoveryHp = recoveryOfRegain; | |
102 | playerHp += recoveryHp; | |
103 | playerMana -= manaRegain; | |
104 | Console.WriteLine($"Вы восстанавливайте себе {recoveryHp} здоровья"); | |
105 | } | |
106 | - | int recoveryMana = rand.Next(35,46); |
106 | + | |
107 | { | |
108 | Console.WriteLine("У вас недостаточно манны. Пропускайте ход"); | |
109 | } | |
110 | break; | |
111 | case 3: | |
112 | if (playerForce >= requiredForceFireStorm) | |
113 | - | if ((playerMana - 10) >= 0) |
113 | + | |
114 | if ((playerMana - manaFireStorm) >= 0) | |
115 | - | playerForce++; |
115 | + | |
116 | - | playerMana -= 10; |
116 | + | playerMana -= manaFireStorm; |
117 | damage = damageFireStorm + rand.Next(playerForce * 3); | |
118 | bossHp -= damage; | |
119 | playerHp -= damage; | |
120 | Console.WriteLine($"Ваш огненный шторм нанос урон в {damage} единиц всем"); | |
121 | } | |
122 | else | |
123 | - | if (playerForce > 4) |
123 | + | |
124 | Console.WriteLine("У вас недостаточно манны. Пропускайте ход"); | |
125 | - | if ((playerMana - 30) >= 0) |
125 | + | |
126 | } | |
127 | - | playerMana -= 30; |
127 | + | |
128 | - | damage = 45 + rand.Next(playerForce / 2 + playerForce); |
128 | + | |
129 | Console.WriteLine("У вас недостаточно силы, вы пропускайте ход"); | |
130 | } | |
131 | break; | |
132 | case 4: | |
133 | int recoveryMana = rand.Next(recoveryManeOfSkip - 5, recoveryManeOfSkip + 6); | |
134 | Console.WriteLine($"Вы отдыхайте и восстанавливайте себе {recoveryMana} манны"); | |
135 | playerMana += recoveryMana; | |
136 | if (playerMana > playerManaMax) | |
137 | playerMana = playerManaMax; | |
138 | break; | |
139 | case 5: | |
140 | if ((playerMana - manaForceUp) >= 0) | |
141 | { | |
142 | playerForce += improveForce; | |
143 | playerMana -= manaForceUp; | |
144 | Console.WriteLine($"Вы поднимайте свою силу на 1"); | |
145 | } | |
146 | - | |
146 | + | |
147 | { | |
148 | Console.WriteLine("У вас недостаточно манны, вы пропускайте ход"); | |
149 | } | |
150 | break; | |
151 | case 6: | |
152 | if (playerForce >= requiredForceIceSpike) | |
153 | { | |
154 | if ((playerMana - manaIceSpike) >= 0) | |
155 | { | |
156 | playerMana -= manaIceSpike; | |
157 | damage = damageIceSpike + rand.Next(playerForce / 2 + playerForce); | |
158 | bossHp -= damage; | |
159 | Console.WriteLine($"Ваши шипы наносят {damage} ктухлу"); | |
160 | } | |
161 | else | |
162 | { | |
163 | Console.WriteLine("У вас недостаточно манны, вы пропускайте ход"); | |
164 | } | |
165 | } | |
166 | else | |
167 | - | damage = 45 + rand.Next(-bossForce / 2, bossForce)*3; |
167 | + | |
168 | Console.WriteLine("У вас недостаточно силы, вы пропускайте ход"); | |
169 | } | |
170 | break; | |
171 | } | |
172 | ||
173 | // Ход ктулху | |
174 | Console.WriteLine(); | |
175 | Console.ForegroundColor = ConsoleColor.White; | |
176 | Console.Write("Ктулху выбирает - "); | |
177 | if (bossMana >= 20) | |
178 | { | |
179 | ||
180 | switch (rand.Next(0, 4)) | |
181 | { | |
182 | case 0: | |
183 | damage = 15 + rand.Next(-bossForce / 2, bossForce); | |
184 | Console.WriteLine("Удар щупальцем - 15 базовый урон"); | |
185 | playerHp -= damage; | |
186 | Console.WriteLine($"Ктулху нанес урон в {damage} единиц."); | |
187 | break; | |
188 | case 1: | |
189 | Console.WriteLine("Проклятие утраты силы (постоянное)"); | |
190 | Console.WriteLine($"Ктухлу понизил вашу силу на 1"); | |
191 | playerForce--; | |
192 | break; | |
193 | case 2: | |
194 | Console.WriteLine("Восстанавливает себя - базовое восстановление 20"); | |
195 | recoveryHp = rand.Next(20, 20 + bossForce * 3); | |
196 | bossHp += recoveryHp; | |
197 | Console.WriteLine($"Ктулху восстановил себе здоровье на {recoveryHp} "); | |
198 | break; | |
199 | case 3: | |
200 | damage = 45 + rand.Next(-bossForce / 2, bossForce) * 3; | |
201 | Console.WriteLine("Серия ударов щупальцев - 45 базовый урон"); | |
202 | playerHp -= damage; | |
203 | Console.WriteLine($"Ктулху нанес урон в {damage} единиц."); | |
204 | break; | |
205 | } | |
206 | bossMana -= 20; | |
207 | } | |
208 | else | |
209 | { | |
210 | int recoveryMana = rand.Next(15, 81); | |
211 | Console.WriteLine($"Ктулху отдыхает и восстанавливает свою манну в {recoveryMana} единиц"); | |
212 | bossMana += recoveryMana; | |
213 | if (bossMana > bossManaMax) | |
214 | bossMana = bossManaMax; | |
215 | } | |
216 | Console.ReadKey(); | |
217 | } | |
218 | ||
219 | //Вывод результата битвы | |
220 | Console.Clear(); | |
221 | if (playerHp <= 0 && bossHp <= 0) | |
222 | Console.WriteLine("Ничья"); | |
223 | else if (playerHp <= 0) | |
224 | Console.WriteLine("Вы проиграли"); | |
225 | else | |
226 | Console.WriteLine("Ктулху проиграл"); | |
227 | ||
228 | Console.ReadKey(); | |
229 | } | |
230 | } | |
231 | } |