Criando uma aplicativo RPG com pilares POO.
- Abstração
- Herança
- Encapsulamento
- Polimosfismo
Abaixo temos o Diagrama de Classe do aplicativo RPG.
Aqui criamos uma classe Character para abstrair as caracteristicas básico dos personagens.
A classe Hero herdou todos as Atribuitos e Métodos da classe Character.
// -------------------
// Exemplo de Herança
// -------------------
internal class Hero : Character
{
public Hero(string name, int health, int attack, int defense,
ClassType classtype, Races races) : base(name, health, attack,
defense, classtype, races)
{
}
void Luck()
{
//ToDo
}
void Range()
{
//ToDo
}
}
A mudança da vida do personagem só pode ser alterando dentro do classe onde esse atributo foi criado.
// --------------------------
// Exemplo de Encapsulamento
// --------------------------
public bool Defending(int attack)
{
int ataque = attack + Dices.OneDice(20);
int defesa = Defense + Dices.OneDice(20);
int dano = ataque - defesa;
bool returnDefending = false;
if (dano > 0)
{
_health -= dano;
if (_health < 0)
_health = 0;
returnDefending = true;
}
return returnDefending;
}
Aqui mudamos a método ToString( ) da classe base Object.
// ------------------------
// Exemplo de Polimosfismo
// ------------------------
public override string ToString()
{
return ($"Name: {Name}\n
Health: {Health}\n
Attack: {Attack}\n
Defense: {Defense}\n
ClassType: {ClassType}\n
Races: {Races}");
}