есть задача сделать функцию, которая будет фиксировать "Здоровье-HP" в игре-файтинге.
вроде выходит(вложение) - но припустим "HP"=65, и потом должно каждый раз при вызове функции уменьшаться...оно не уменьшается а становится this.hp=fighter.getHealth() (припустим 90). (естественно потому что я так прописал в коде),
но КАК СДЕЛАТЬ ЧТОБЫ ПЕРЕМЕННАЯ
this.hp уменьшалась каждый раз с последнего значения, а не с fighter.getHealth() - но первый раз должно браться с fighter.getHealth()
то есть, каждый раз когда я вызываю console.log(
attack(myFighter2)) число жизней должно или уменьшаться или оставаться прежним.
если можно без особого спама и нравоучений-только учусь и нуждаюсь в небольшой подсказке.
function Fighter(name, damage, strenght, agility, hp) {
this.name = name;
this.damage = damage;
this.strength = strenght;
this.agility = agility;
this.hp = hp;
this.getName=function() {
return this.name;
}
this.getDamage=function() {
return this.damage;
}
this.getStrenght=function() {
return this.strength;
}
this.getAgility=function() {
return this.agility;
}
this.getHealth=function() {
return this.hp;
}
}
const myFighter1 = new Fighter('Maximus',25,1,1,100);
let name1 = myFighter1.getName();
let damage1 = myFighter1.getDamage();
let strenght1 = myFighter1.getStrenght();
let agility1 = myFighter1.getAgility();
let health1 = myFighter1.getHealth();
const myFighter2 = new Fighter('Commod',25,25,25,90);
let name2 = myFighter2.getName();
let damage2 = myFighter2.getDamage();
let strenght2 = myFighter2.getStrenght();
let agility2 = myFighter2.getAgility();
let health2 = myFighter2.getHealth();
//console.log(name2)
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
function attack(fighter) {
let hp=fighter.getHealth();
let damage=fighter.getDamage();
let success = 100-(fighter.getAgility()+fighter.getStrenght());
let rand_number = getRandomInt(101);
if (rand_number < success) {
hp=hp-damage;
return hp
} else {
hp=hp-0;
return hp
}
}
console.log(attack(myFighter2));
console.log(attack(myFighter2));
console.log(attack(myFighter2));