main
commit
893d2b0e04
|
@ -0,0 +1,13 @@
|
||||||
|
<head>
|
||||||
|
<link rel="stylesheet" href="style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>Text Adventure</h1>
|
||||||
|
<div id="userText">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
<p id="command">></p><input type="text" id="userInput" name="inputBox">
|
||||||
|
<script src="verbhandler.js"></script>
|
||||||
|
<script src="index.js"></script>
|
||||||
|
<script src="inventory.js"></script>
|
||||||
|
</body>
|
|
@ -0,0 +1,65 @@
|
||||||
|
const userInput = document.getElementById("userInput");
|
||||||
|
var locations;
|
||||||
|
var currentLocation;
|
||||||
|
let gameOver;
|
||||||
|
|
||||||
|
async function parseJson() {
|
||||||
|
const result = await fetch("./locations.json")
|
||||||
|
locations = await result.json()
|
||||||
|
}
|
||||||
|
|
||||||
|
async function main() {
|
||||||
|
await parseJson();
|
||||||
|
currentLocation = Object.keys(locations)[0]
|
||||||
|
printBold(locations[currentLocation].onEntry)
|
||||||
|
}
|
||||||
|
|
||||||
|
main()
|
||||||
|
|
||||||
|
userInput.onkeypress = function (event) {
|
||||||
|
if (event.keyCode == 13) {
|
||||||
|
printText(userInput.value)
|
||||||
|
commandInput()
|
||||||
|
userInput.value = ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function printText(text) {
|
||||||
|
let p = document.createElement("p");
|
||||||
|
const div = document.getElementById("userText");
|
||||||
|
div.appendChild(p)
|
||||||
|
p.innerHTML = text
|
||||||
|
|
||||||
|
let scroll = document.getElementById("userText");
|
||||||
|
scroll.scrollTop = scroll.scrollHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
function printBold(text) {
|
||||||
|
printText(text.bold())
|
||||||
|
}
|
||||||
|
|
||||||
|
function look() {
|
||||||
|
if (userInput.value.toLowerCase() === "look") {
|
||||||
|
printBold(Object.keys(locations[currentLocation].objects).join(", "))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function listLocation() {
|
||||||
|
if (userInput.value.toLowerCase() === "location") {
|
||||||
|
printBold(currentLocation)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function win() {
|
||||||
|
if (userInput.value.toLowerCase() === "win") {
|
||||||
|
printBold("You Won! Refresh to play again!")
|
||||||
|
document.getElementById("userInput").disabled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function isgameOver() {
|
||||||
|
if (gameOver === true) {
|
||||||
|
printBold("Game Over. Refresh to play again!")
|
||||||
|
document.getElementById("userInput").disabled = true;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
inventory = []
|
||||||
|
|
||||||
|
function checkInventory() {
|
||||||
|
if (userInput.value.toLowerCase() === "inventory"){
|
||||||
|
if (inventory.length === 0) {
|
||||||
|
printBold("You have nothing.")
|
||||||
|
} else {
|
||||||
|
printBold(inventory.join(", "));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function pickUp() {
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,44 @@
|
||||||
|
{
|
||||||
|
"Computer Room": {
|
||||||
|
"objects": {
|
||||||
|
"Computer": {
|
||||||
|
"interactable": true
|
||||||
|
},
|
||||||
|
"Northern Door": {
|
||||||
|
"interactable": true,
|
||||||
|
"gotoroom": "hallway"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"verbs": {
|
||||||
|
"go north": {
|
||||||
|
|
||||||
|
},
|
||||||
|
"use computer": {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onEntry": "You are in a dark room. With only a COMPUTER, and a monitor dimly illuminating the room. Type LOOK to see your surroundings."
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
"hallway": {
|
||||||
|
"objects": {
|
||||||
|
"Northern Door": {
|
||||||
|
"interactable": true
|
||||||
|
},
|
||||||
|
"Western Door": {
|
||||||
|
"interactable": false
|
||||||
|
},
|
||||||
|
"Vase": {
|
||||||
|
"interactable": true,
|
||||||
|
"contains": {
|
||||||
|
"key": {
|
||||||
|
"grabable": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"onEntry": "You have entered a brightly lit hallway. In the hallway you notice a VASE and two doors. One to the east and one to the north."
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
body {
|
||||||
|
text-align: center;
|
||||||
|
background-color: rgb(60, 60, 60);
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
#userText {
|
||||||
|
margin-left: 25%;
|
||||||
|
justify-content: center;
|
||||||
|
background-color: grey;
|
||||||
|
text-align: left;
|
||||||
|
height: 35%;
|
||||||
|
width: 50%;
|
||||||
|
overflow-y: scroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
#userInput {
|
||||||
|
width: 50%;
|
||||||
|
padding: 10px;
|
||||||
|
border:none;
|
||||||
|
margin-top: 10px;
|
||||||
|
margin-right: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#command {
|
||||||
|
display:inline;
|
||||||
|
font-weight: bolder;
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"folders": [
|
||||||
|
{
|
||||||
|
"path": "."
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"settings": {}
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
function commandInput() {
|
||||||
|
let input = userInput.value.toLocaleLowerCase()
|
||||||
|
if (input === "inventory") {
|
||||||
|
checkInventory()
|
||||||
|
} else if (input === "look") {
|
||||||
|
look()
|
||||||
|
} else if (input === "location") {
|
||||||
|
listLocation()
|
||||||
|
} else if (input === 'win') {
|
||||||
|
win()
|
||||||
|
} else {
|
||||||
|
verbHandler()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function verbHandler() {
|
||||||
|
let verbs = Object.keys(locations[currentLocation].verbs)
|
||||||
|
if (verbs.includes(userInput.value.toLowerCase())) {
|
||||||
|
// Something
|
||||||
|
} else {
|
||||||
|
printBold("Invalid Action.")
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue