|
|
@@ -41,7 +41,7 @@ function resetControls() { |
|
|
button.classList.add("move-button") |
|
|
button.classList.add("move-button") |
|
|
button.id = "move-" + dir; |
|
|
button.id = "move-" + dir; |
|
|
button.classList.add("missing"); |
|
|
button.classList.add("missing"); |
|
|
button.setAttribute("disabled", "true"); |
|
|
|
|
|
|
|
|
disableButton(button); |
|
|
button.textContent = dirs[dir]; |
|
|
button.textContent = dirs[dir]; |
|
|
moveHolder.appendChild(button); |
|
|
moveHolder.appendChild(button); |
|
|
|
|
|
|
|
|
@@ -159,8 +159,7 @@ function updateRoom() { |
|
|
|
|
|
|
|
|
Object.entries(dirs).forEach(([dir, name]) => { |
|
|
Object.entries(dirs).forEach(([dir, name]) => { |
|
|
const button = document.querySelector("#move-" + dir); |
|
|
const button = document.querySelector("#move-" + dir); |
|
|
button.classList.add("disabled"); |
|
|
|
|
|
button.setAttribute("disabled", "true"); |
|
|
|
|
|
|
|
|
disableButton(button); |
|
|
button.textContent = dirs[dir]; |
|
|
button.textContent = dirs[dir]; |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
@@ -178,18 +177,25 @@ function updateRoom() { |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
button.classList.remove("missing"); |
|
|
button.classList.remove("missing"); |
|
|
button.classList.add("disabled"); |
|
|
|
|
|
|
|
|
disableButton(button); |
|
|
button.textContent = dest.name; |
|
|
button.textContent = dest.name; |
|
|
|
|
|
|
|
|
// if any condition fails, don't enable/add a listener |
|
|
|
|
|
|
|
|
button.addEventListener("mouseenter", () => { |
|
|
|
|
|
showActionDescription(exit.desc); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
button.addEventListener("mouseleave", () => { |
|
|
|
|
|
removeActionDescription(); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
// if any condition fails, don't turn it on and allow clicks |
|
|
if (exit.conditions) { |
|
|
if (exit.conditions) { |
|
|
if (!exit.conditions.every(cond => cond(room,state))) { |
|
|
if (!exit.conditions.every(cond => cond(room,state))) { |
|
|
return; |
|
|
return; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
button.classList.remove("disabled"); |
|
|
|
|
|
button.removeAttribute("disabled"); |
|
|
|
|
|
|
|
|
enableButton(button); |
|
|
|
|
|
|
|
|
if (moveListeners[dir]) { |
|
|
if (moveListeners[dir]) { |
|
|
button.removeEventListener("click", moveListeners[dir]); |
|
|
button.removeEventListener("click", moveListeners[dir]); |
|
|
@@ -203,14 +209,6 @@ function updateRoom() { |
|
|
button.addEventListener("click", moveFunc); |
|
|
button.addEventListener("click", moveFunc); |
|
|
|
|
|
|
|
|
moveListeners[dir] = moveFunc; |
|
|
moveListeners[dir] = moveFunc; |
|
|
|
|
|
|
|
|
button.addEventListener("mouseenter", () => { |
|
|
|
|
|
showActionDescription(exit.desc); |
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
button.addEventListener("mouseleave", () => { |
|
|
|
|
|
removeActionDescription(); |
|
|
|
|
|
}); |
|
|
|
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@@ -235,8 +233,10 @@ function updateRoom() { |
|
|
button.textContent = action.name; |
|
|
button.textContent = action.name; |
|
|
|
|
|
|
|
|
button.addEventListener("click", () => { |
|
|
button.addEventListener("click", () => { |
|
|
action.execute(room); |
|
|
|
|
|
refresh(); |
|
|
|
|
|
|
|
|
if (!button.classList.contains("disabled")) { |
|
|
|
|
|
action.execute(room); |
|
|
|
|
|
refresh(); |
|
|
|
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
button.addEventListener("mouseenter", () => { |
|
|
button.addEventListener("mouseenter", () => { |
|
|
@@ -258,11 +258,9 @@ function updateRoom() { |
|
|
|
|
|
|
|
|
if (action.conditions) { |
|
|
if (action.conditions) { |
|
|
if (!action.conditions.every(cond => cond(room))) { |
|
|
if (!action.conditions.every(cond => cond(room))) { |
|
|
button.classList.add("disabled"); |
|
|
|
|
|
button.setAttribute("disabled", true); |
|
|
|
|
|
|
|
|
disableButton(button); |
|
|
} else { |
|
|
} else { |
|
|
button.classList.remove("disabled"); |
|
|
|
|
|
button.removeAttribute("disabled"); |
|
|
|
|
|
|
|
|
enableButton(button); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@@ -281,3 +279,13 @@ function updateRoom() { |
|
|
added.forEach(button => actionHolder.appendChild(button)); |
|
|
added.forEach(button => actionHolder.appendChild(button)); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function disableButton(button) { |
|
|
|
|
|
button.setAttribute("tabindex", "-1"); |
|
|
|
|
|
button.classList.add("disabled"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function enableButton(button) { |
|
|
|
|
|
button.removeAttribute("tabindex"); |
|
|
|
|
|
button.classList.remove("disabled"); |
|
|
|
|
|
} |