Bem, depois de criarmos o get, que faz com que podemos utilizar a propriedade level em outras classes, pensei em replicar a mesma coisa que fizemos na classe guerreiro nos outros personagens
//arqueiro
obterInsignia() {
if(this.level >= 6 && this.destreza >= 6 && this.level >= 6) {
return 'Mestre das flechas'
}
return super.obterInsignia()
}
//mago
obterInsignia() {
if(this.level >= 6 && this.levelMagico >= 6 && this.inteligencia >= 6) {
return Mestre do ${this.elementoMagico}
}
return super.obterInsignia()
}
alterando esses dois métodos pensei que não iria precisar inserir essa condição no método da classe ArqueiroMago porém a condição não estava sendo respeitada e o arqueiroMago continuava sendo mestre mesmo em um level baixo até que fiz a seguinte alteração:
obterInsignia(){
if ( this.level >= 6){
return`${this.ladoArqueiro.obterInsignia()} e ${this.ladoMago.obterInsignia()} `
}
return super.obterInsignia()
}
depois disso alterando o level para abaixo de 6 o arqueiroMago deixava de ser mestre, mas minha duvida é a seguinte porque isso não acontecia antes, pois this.ladoArqueiro.obterInsignia() e this.ladoMago.obterInsignia() já contem essa condição