Learn Basic JavaScript by Building a Role Playing Game - Step 147

Tell us what’s happening:

In your attack function, below the health variable, create an if statement. Set the condition to call the isMonsterHit function.

if (isMonsterHit) {
// this code is not passing,help me please
}

Your code so far

<!-- file: index.html -->

/* file: styles.css */

/* file: script.js */
// User Editable Region

function attack() {
  text.innerText = "The " + monsters[fighting].name + " attacks.";
  text.innerText += " You attack it with your " + weapons[currentWeapon].name + ".";
  health -= getMonsterAttackValue(monsters[fighting].level);
  if(isMonsterHit){

  };
  monsterHealth -= weapons[currentWeapon].power + Math.floor(Math.random() * xp) + 1;
  healthText.innerText = health;
  monsterHealthText.innerText = monsterHealth;
  if (health <= 0) {
    lose();
  } else if (monsterHealth <= 0) {
    if (fighting === 2) {
      winGame();
    } else {
      defeatMonster();
    }
  }
}

// User Editable Region

Your browser information:

User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36

Challenge Information:

Learn Basic JavaScript by Building a Role Playing Game - Step 147

Hello Sadie,

The problem with your if statement is that it is not actually calling the isMonterHit function. To call a function you need to add the parentheses after your function’s name like so:

randomFunction()

The rest of your if statement is fine so it should work as intended.
Hope you understand it well, cheers.

1 Like

You need to call isMonsterHit() within the if () condition.

1 Like

Thanks a lot for the solution.