diff --git a/exercicios/entregas/carla-marques/Equipamentos.js b/exercicios/entregas/carla-marques/Equipamentos.js new file mode 100644 index 0000000..de59229 --- /dev/null +++ b/exercicios/entregas/carla-marques/Equipamentos.js @@ -0,0 +1,16 @@ +class Equipamentos { + static equipamentos = []; + constructor(bastao_baseball, frigideira, machado, pistola, garrafa_dagua, comida, primeiros_socorro) { + this.bastao_baseball = bastao_baseball; + this.frigideira = frigideira; + this.machado = machado; + this.pistola = pistola; + this.garrafa_dagua = garrafa_dagua; + this.comida = comida; + this.primeiros_socorro = primeiros_socorro; + Equipamentos.equipamentos.push(this); + + } +} + +module.exports = {Equipamentos}; \ No newline at end of file diff --git a/exercicios/entregas/carla-marques/Habilidades.js b/exercicios/entregas/carla-marques/Habilidades.js new file mode 100644 index 0000000..d49af70 --- /dev/null +++ b/exercicios/entregas/carla-marques/Habilidades.js @@ -0,0 +1,7 @@ +class Habilidades{ + constructor(nivel){ + this.nivel = nivel; + } +} + +module.exports = {Habilidades}; \ No newline at end of file diff --git a/exercicios/entregas/carla-marques/Partida.js b/exercicios/entregas/carla-marques/Partida.js new file mode 100644 index 0000000..5d56b78 --- /dev/null +++ b/exercicios/entregas/carla-marques/Partida.js @@ -0,0 +1,16 @@ +class Partida{ + static sobreviventes = []; + static zumbis = []; + static rodada = 0; + static vencedor = null; + static fim = false; + addSobrevivente(sobrevivente){ + Partida.sobreviventes.push(sobrevivente); + } + addZumbi(zumbi){ + Partida.zumbis.push(zumbi); + } + +} + +module.exports = Partida; \ No newline at end of file diff --git a/exercicios/entregas/exemplo-nome-sobrenome/resolucao.js b/exercicios/entregas/carla-marques/Registro.js similarity index 100% rename from exercicios/entregas/exemplo-nome-sobrenome/resolucao.js rename to exercicios/entregas/carla-marques/Registro.js diff --git a/exercicios/entregas/carla-marques/Sobrevivente.js b/exercicios/entregas/carla-marques/Sobrevivente.js new file mode 100644 index 0000000..ff18a4e --- /dev/null +++ b/exercicios/entregas/carla-marques/Sobrevivente.js @@ -0,0 +1,123 @@ +const { Equipamentos } = require('./Equipamentos'); + +class Sobrevivente { + static niveis = ['Azul', 'Amarelo', 'Laranja', 'Vermelho']; + + constructor(nome) { + this.nome = nome; + this.ferimentos = 0; + this.xp = 0; + this.nivel = Sobrevivente.niveis[0]; + this.equipamentos = new Equipamentos(); + this.equipamento_mao = []; + this.equipamento_mochila = []; + this.habilidades = []; + } + + addEquipamentos(equipamento) { + if (equipamento instanceof Equipamentos) { + this.equipamentos = equipamento; + } else { + console.log('Não é um equipamento'); + } + } + + addEquipamentosMao(atributoEquipamento) { + if (this.equipamento_mao.length < 2 && !this.equipamento_mao.includes(atributoEquipamento)) { + this.equipamento_mao.push(atributoEquipamento); + console.log('Equipamento adicionado na mão'); + } else { + console.log('Equipamento já adicionado na mão ou mão cheia'); + } + } + + addEquipamentosMochila(atributoEquipamento) { + if (this.equipamento_mochila.length < 5 && !this.equipamento_mochila.includes(atributoEquipamento)) { + this.equipamento_mochila.push(atributoEquipamento); + console.log('Equipamento adicionado na mochila'); + } else { + console.log('Mochila cheia ou equipamento já adicionado'); + } + } + + removeEquipamentosMao(atributoEquipamento) { + const index = this.equipamento_mao.indexOf(atributoEquipamento); + if (index !== -1) { + this.equipamento_mao.splice(index, 1); + console.log('Equipamento removido da mão'); + } else { + console.log('Equipamento não encontrado na mão'); + } + } + + removeEquipamentosMochila(atributoEquipamento) { + const index = this.equipamento_mochila.indexOf(atributoEquipamento); + if (index !== -1) { + this.equipamento_mochila.splice(index, 1); + console.log('Equipamento removido da mochila'); + } else { + console.log('Equipamento não encontrado na mochila'); + } + } + + addXP() { + this.xp += 1; + if (this.xp >= 6 && this.xp < 18) { + this.nivel = Sobrevivente.niveis[1]; + } else if (this.xp >= 18 && this.xp < 42) { + this.nivel = Sobrevivente.niveis[2]; + } else if (this.xp >= 42) { + this.nivel = Sobrevivente.niveis[3]; + } + } + + addFerimentos() { + this.ferimentos += 1; + if (this.ferimentos >= 3) { + console.log(`${this.nome} morreu!`); + } + } + + curarFerimentos() { + if (this.ferimentos > 0) { + this.ferimentos -= 1; + console.log(`${this.nome} foi curado e agora tem ${this.ferimentos} ferimentos.`); + } else { + console.log(`${this.nome} não tem ferimentos para curar.`); + } + } + + atacar() { + if (this.equipamento_mao.length > 0) { + console.log(`${this.nome} está atacando com ${this.equipamento_mao[0]}`); + } else { + console.log(`${this.nome} está atacando com as mãos.`); + } + } + + habilitadesPotenciais() { + if (this.nivel === Sobrevivente.niveis[1]) { + this.habilidades.push('+1 Ação'); + } else if (this.nivel === Sobrevivente.niveis[2]) { + this.habilidades.push('Tesouro escondido', '+1 Ação de Movimento'); + } else if (this.nivel === Sobrevivente.niveis[3]) { + this.habilidades.push('+1 Dano', '+1 equipamento em mãos', '+1 vida'); + } + } +} + +// Teste +const sobrevivente = new Sobrevivente('Carla'); +console.log(sobrevivente.nome); // Carla +equip = new Equipamentos('baseball', 'frigideira', null, null, null, null, null); +console.log(equip); +sobrevivente.addEquipamentos(equip); +sobrevivente.addEquipamentosMao('bastao_baseball'); +sobrevivente.addEquipamentosMochila('comida'); +console.log(sobrevivente.equipamentos) +sobrevivente.addXP(); +sobrevivente.addFerimentos(); +sobrevivente.curarFerimentos(); +sobrevivente.atacar(); +sobrevivente.habilitadesPotenciais(); +console.log(sobrevivente.habilidades); diff --git a/exercicios/entregas/carla-marques/Zumbi.js b/exercicios/entregas/carla-marques/Zumbi.js new file mode 100644 index 0000000..e69de29 diff --git a/exercicios/entregas/carla-marques/resolucao.js b/exercicios/entregas/carla-marques/resolucao.js new file mode 100644 index 0000000..e69de29