-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCharacter.cs
172 lines (148 loc) · 5.21 KB
/
Character.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
using System;
using System.Collections.Generic;
namespace ConsoleApplicationNET
{
public class Character
{
#region Variáveis Globais
// "Game object" do player
public char charGameObject = '⨀';
// "Game object" das paredes
public char wallGameObject = '#';
// HP do personagem
public int charHP = 100;
// Int sempre verdadeiro para o do-while do CharacterMovement();
int gameOver = 0;
// Axis X do personagem
int leftAndRight = 1;
// Axis Y do personagem
int upAndDown = 1;
// Peso do inventário
public int charWeight = 35;
// O player está morto?
bool isCharacterDead;
// É a vez do player jogar?
public bool isCharacterTurn;
// A turn acabou?
public bool isTurnOver = false;
// IEnumerable para definir a quantidade de turns para o foreach.
static IEnumerable<int> Turns { get; set; }
#endregion
#region Character
// Vida do personagem
public static void CharacterLife()
{
#region Variável Local
Character chr = new Character();
#endregion
// Se o personagem morre
if (chr.charHP <= 0 && chr.isCharacterDead == true
|| chr.charHP <= 0 || chr.isCharacterDead == true)
// console:
Console.WriteLine("O personagem está morto.");
// Senão...
else
{
// Enquanto o HP do personagem estiver maior ou igual a 1
while (chr.charHP >= 1)
{
GameTurns trn = new GameTurns();
GameTurns.DecreaseTurns();
if (chr.isCharacterTurn == true)
CharacterTurn();
if (chr.charHP <= 0)
chr.isCharacterDead = true;
}
}
}
// Turn do personagem
public static void CharacterTurn()
{
#region Variável Local
Character chr = new Character();
#endregion
// Se não for a vez do jogador (quando isCharacterTurn == false)
// ou quando a turn acabou, então:
if (chr.isCharacterTurn == false || chr.isTurnOver == true)
// Console:
Console.WriteLine("Agora não é a sua turn!");
else if (chr.isTurnOver == true)
{
Console.WriteLine("A turn acabou e você perdeu uma vida.");
// O player perde uma vida.
CharacterDamage();
}
return;
}
// Movimento do personagem
public static void CharacterMovement()
{
#region Variável Local
Character chr = new Character();
MenuJogo mj = new MenuJogo();
ConsoleKeyInfo input;
WriteLines.Character_InputESC();
WriteLines.Character_InputQ();
#endregion
do
{
input = Console.ReadKey(true);
Console.SetCursorPosition(chr.leftAndRight, chr.upAndDown);
Console.WriteLine(" ");
switch (input.Key)
{
case ConsoleKey.RightArrow:
chr.leftAndRight++;
break;
case ConsoleKey.LeftArrow:
chr.leftAndRight--;
break;
case ConsoleKey.DownArrow:
chr.upAndDown++;
break;
case ConsoleKey.UpArrow:
chr.upAndDown--;
break;
case ConsoleKey.Escape:
WriteLines.Character_Movement_Space();
MenuJogo.GameMenu();
break;
case ConsoleKey.Q:
Environment.Exit(0);
break;
}
Console.SetCursorPosition(chr.leftAndRight, chr.upAndDown);
Console.Write(chr.charGameObject);
}
while (chr.gameOver == 0);
if (chr.gameOver == 1)
Console.Beep();
}
// Colisão do personagem com a parede
public static void CharacterCollision()
{
#region Variável Local
Character chr = new Character();
#endregion
// Colisão com a parede (#)
if (chr.charGameObject != /* estiver em cima de */ chr.wallGameObject)
chr.charGameObject = 'S';
// Colisão com o Exit (E)
else if (chr.wallGameObject == /* estiver em cima de */ 'E')
{
// Se ele vai colidir com um "E", a fase muda
}
}
// Dano no personagem
public static void CharacterDamage()
{
#region Variável Local
Character chr = new Character();
#endregion
// O player perde uma vida.
chr.charHP = chr.charHP - 1;
return;
}
#endregion
}
}