Hi I think I am starting to get a little lost. I solved the problem again but I am not sure how the currentWeapon section of my code comes into play. In the code above the challenge it does not seem to have a variable that updates and I am just a little confused.
Here is the challenge question
" On a new line, add the string You attack it with your <weapon>. to the text value, replacing <weapon> with the player’s current weapon."
Here is the code I submitted
function attack() {
text.innerText = "The " + monsters[fighting].name + " attacks.";
text.innerText += " You attack it with your " + weapons[currentWeapon].name + ".";
This is a theory questions, we don’t need the code.
let currentWeapon = 0
0 is the initial position in the array “weapons”, the stick
When you buy or sell a weapon, you add or subtract the available positions in the weapons array. If you have all four weapons, positions 0 - 3 (remember computers start to count at 0) are available. Though I’m not sure how many weapons you can own here? If it’s only one, the position in the array is your current value.
weapons[currentWeapon] checks the active weapons’ value = uses the weapon object it finds at the given array position.
It doesn’t check itself, it gets checked.
This happens with weapons[currentWeapon value = position of weapon object in array].
That value of currentWeapon starts with 0 and gets updated with every purchase.
I have come across a user that had a similar issue with understanding how fighting and the monsters array work. With valid arguments that the code doesn’t make sense.
We might have a case of “tutorial code” here that looks different on the outside than what happens underneath. Take this with a grain of salt. The good news is that once you are writing “free” code in the wild, your editor will point the mistake out or the app simply stop working.