Skip to content

Instantly share code, notes, and snippets.

@Pokfinner
Created March 29, 2023 18:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Pokfinner/7b5aa35422fa1c60cb27170e0ecdd294 to your computer and use it in GitHub Desktop.
Save Pokfinner/7b5aa35422fa1c60cb27170e0ecdd294 to your computer and use it in GitHub Desktop.
class Character {
constructor(nome, vida, ataque, defesa){
this.nome = nome
this.vida = vida
this.ataque = ataque
this.defesa = defesa
}
Atacar(character){
const ataque = this.ataque - character.defesa
if (ataque > 0)
{
character.vida -= ataque
console.log(`${this.nome} atacou com ${ ataque } pontos e ${ character.nome } ficou com ${ character.vida } pontos de vida.`)
}
else
{
console.log(`${this.nome} ataca e nada acontece.`)
}
}
static Info(character){
console.log(
`
Nome: ${character.nome}
Vida: ${character.vida}
Defesa: ${character.defesa}
Ataque: ${character.ataque}
`
)
}
static list = []
}
class Player extends Character {
constructor(nome, vida, ataque, defesa){
super(nome, vida, ataque, defesa)
}
Atacar(character){
if (character instanceof Player)
{
console.log(`${this.nome} não pode atacar a si mesmo. 🤣`)
return
}
const ataque = this.ataque - character.defesa
if (ataque > 0)
{
character.vida -= ataque
console.log(`${this.nome} atacou com ${ ataque } pontos e ${ character.nome } ficou com ${ character.vida } pontos de vida.`)
}
else
{
console.log(`${this.nome} ataca e nada acontece.`)
}
}
}
class Monster extends Character {
constructor(nome, vida, ataque, defesa){
super(nome, vida, ataque, defesa)
}
Atacar(character){
console.log("Monster Ataca.")
}
}
const player = new Player("Iuri", 1000, 50, 30)
Character.list.push(player)
Character.list.push(new Monster("Diego", 1000, 20, 40))
Character.Info(player)
/*
1:
Criar um Boss que extende o Monster, e que possui:
-> Lançar Feitiço: Remove defesa do adversário e retira 20 pontos de vida
-> Ao atacar, ter 1/2 de chance de dar crítico (atacar o dobro)
2:
-> Criar uma classe Game com um método de Turno()
em que o adversário joga e depois o inimigo joga.
3:
Criar uma situação de Game Over:
-> O adversário ao morrer deve inicializar o GameOver (Win)
-> O player ao morrer deve inicializar o GameOver (Loss)
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment