From 7b8729d4e0fe344f7a2a81e93e0f6cb62c84648b Mon Sep 17 00:00:00 2001 From: Robbie Antenesse Date: Wed, 13 Feb 2019 12:11:30 -0700 Subject: [PATCH] Update code styles and spacing --- gui/inventoryGUI.js | 376 ++++++++--------- gui/mapGUI.js | 92 ++--- gui/titleScreen.js | 189 ++++----- gui/tradeGUI.js | 797 +++++++++++++++++++------------------ index.html | 66 +-- javascripts/scale.fix.js | 29 +- loadAudio.js | 2 +- loadControls.js | 62 +-- loadGUIs.js | 654 ++++++++++++++++-------------- loadGameManager.js | 390 +++++++++--------- loadPrefabs.js | 41 +- loadRooms.js | 26 +- prefabs/islandPrefab.js | 358 ++++++++--------- prefabs/oceanTilePrefab.js | 125 +++--- prefabs/shipPrefab.js | 361 +++++++++-------- prefabs/wavePrefab.js | 28 +- rooms/oceanRoom.js | 268 ++++++------- start.js | 34 +- stylesheets/styles.css | 171 ++++---- 19 files changed, 2074 insertions(+), 1995 deletions(-) diff --git a/gui/inventoryGUI.js b/gui/inventoryGUI.js index 92a0014..c7f670c 100644 --- a/gui/inventoryGUI.js +++ b/gui/inventoryGUI.js @@ -1,217 +1,221 @@ function inventoryGUI() { - if (Oversimplified.DEBUG.showMessages) console.log("Ran inventoryGUI()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran inventoryGUI()"); } guiControl.inventory = { - screen: "main", - cursorPosition: 0, - show: false, - activateDelay: 0 + screen: "main", + cursorPosition: 0, + show: false, + activateDelay: 0, } guiControl.inventory.Draw = function () { - if (guiControl.inventory && guiControl.inventory.show) { - guiControl.inventory.activateDelay -= (guiControl.inventory.activateDelay > 0) ? 1 : 0; + if (guiControl.inventory && guiControl.inventory.show) { + guiControl.inventory.activateDelay -= (guiControl.inventory.activateDelay > 0) ? 1 : 0; - guiControl.drawGUIBackground(); + guiControl.drawGUIBackground(); - if (ct_down().down) { - snd_cursordown.Play(); - guiControl.inventory.cursorPosition++; - } - if (ct_up().down) { - snd_cursordown.Play(); - guiControl.inventory.cursorPosition--; - } - - if (guiControl.inventory.screen == "main") { - // Limit Cursor - if (guiControl.inventory.cursorPosition < 0) { - guiControl.inventory.cursorPosition = 3; - } - if (guiControl.inventory.cursorPosition > 3) { - guiControl.inventory.cursorPosition = 0; - } + if (ct_down().down) { + snd_cursordown.Play(); + guiControl.inventory.cursorPosition++; + } + if (ct_up().down) { + snd_cursordown.Play(); + guiControl.inventory.cursorPosition--; + } + + if (guiControl.inventory.screen == "main") { + // Limit Cursor + if (guiControl.inventory.cursorPosition < 0) { + guiControl.inventory.cursorPosition = 3; + } + if (guiControl.inventory.cursorPosition > 3) { + guiControl.inventory.cursorPosition = 0; + } - // Title - guiControl.drawPixelText("Storage", guiControl.leftBorder - pixel(2), guiControl.topOfBackground, 8, "black", 6); + // Title + guiControl.drawPixelText("Storage", guiControl.leftBorder - pixel(2), guiControl.topOfBackground, 8, "black", 6); - guiControl.drawPageArrow("left", pixel(4), guiControl.topOfBackground); - guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - pixel(4), guiControl.topOfBackground); + guiControl.drawPageArrow("left", pixel(4), guiControl.topOfBackground); + guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - pixel(4), guiControl.topOfBackground); - // Money icon - guiControl.drawIcon(7, 2, guiControl.leftBorder, guiControl.rowTop(0)); - guiControl.drawPixelText(G.inventory.moneyDisplay(), guiControl.leftBorder + pixel(guiControl.iconSize + 4), guiControl.rowTop(0) + pixel(), 8, "black", 6); - // Cargo icon - guiControl.drawIcon(1, 0, guiControl.leftBorder, guiControl.rowTop(1)); - guiControl.drawPixelText(G.inventory.CargoTotal().toString(), guiControl.leftBorder + pixel(guiControl.iconSize + 4), guiControl.rowTop(1) + pixel(), 8, "black", 6); - // Stats icon - // guiControl.drawIcon(9, 2, guiControl.leftBorder, guiControl.rowTop(2)); - guiControl.drawPixelText("Status", guiControl.leftBorder, guiControl.rowTop(2) + pixel(), 8, "black", 6); - - // Close Text - guiControl.drawPixelText("Close", guiControl.leftBorder, guiControl.rowTop(3) + pixel(), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.rowTop(guiControl.inventory.cursorPosition)); + // Money icon + guiControl.drawIcon(7, 2, guiControl.leftBorder, guiControl.rowTop(0)); + guiControl.drawPixelText(G.inventory.moneyDisplay(), guiControl.leftBorder + pixel(guiControl.iconSize + 4), guiControl.rowTop(0) + pixel(), 8, "black", 6); + // Cargo icon + guiControl.drawIcon(1, 0, guiControl.leftBorder, guiControl.rowTop(1)); + guiControl.drawPixelText(G.inventory.CargoTotal().toString(), guiControl.leftBorder + pixel(guiControl.iconSize + 4), guiControl.rowTop(1) + pixel(), 8, "black", 6); + // Stats icon + // guiControl.drawIcon(9, 2, guiControl.leftBorder, guiControl.rowTop(2)); + guiControl.drawPixelText("Status", guiControl.leftBorder, guiControl.rowTop(2) + pixel(), 8, "black", 6); + + // Close Text + guiControl.drawPixelText("Close", guiControl.leftBorder, guiControl.rowTop(3) + pixel(), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.rowTop(guiControl.inventory.cursorPosition)); - // Button Action - if (guiControl.inventory.activateDelay <= 0) { - if (ct_confirm().down) { - switch (guiControl.inventory.cursorPosition) { - case 0: - snd_select.Play(); - guiControl.inventory.screen = "money"; + // Button Action + if (guiControl.inventory.activateDelay <= 0) { + if (ct_confirm().down) { + switch (guiControl.inventory.cursorPosition) { + case 0: { + snd_select.Play(); + guiControl.inventory.screen = "money"; break; - case 1: - snd_select.Play(); - guiControl.inventory.screen = "cargo"; + } + case 1: { + snd_select.Play(); + guiControl.inventory.screen = "cargo"; break; - case 2: - snd_select.Play(); - guiControl.inventory.screen = "status"; + } + case 2: { + snd_select.Play(); + guiControl.inventory.screen = "status"; break; - default: - snd_cursorup.Play(); - guiControl.inventory.show = false; + } + default: { + snd_cursorup.Play(); + guiControl.inventory.show = false; break; - } + } + } - guiControl.inventory.cursorPosition = 0; - guiControl.inventory.activateDelay = 5; - } - if (ct_cancel().down) { - snd_cursorup.Play(); - guiControl.inventory.show = false; - } - if (ct_left().down) { - snd_cursordown.Play(); - guiControl.inventory.show = false; - guiControl.map.activateDelay = 5; - guiControl.map.show = true; - } - if (ct_right().down) { - snd_cursordown.Play(); - guiControl.inventory.show = false; - guiControl.map.activateDelay = 5; - guiControl.map.show = true; - } - } - } - else if (guiControl.inventory.screen == "money") { - // Limit Cursor - if (guiControl.inventory.cursorPosition < 0) { - guiControl.inventory.cursorPosition = 0; - } - if (guiControl.inventory.cursorPosition > 0) { - guiControl.inventory.cursorPosition = 0; - } + guiControl.inventory.cursorPosition = 0; + guiControl.inventory.activateDelay = 5; + } + if (ct_cancel().down) { + snd_cursorup.Play(); + guiControl.inventory.show = false; + } + if (ct_left().down) { + snd_cursordown.Play(); + guiControl.inventory.show = false; + guiControl.map.activateDelay = 5; + guiControl.map.show = true; + } + if (ct_right().down) { + snd_cursordown.Play(); + guiControl.inventory.show = false; + guiControl.map.activateDelay = 5; + guiControl.map.show = true; + } + } + } + else if (guiControl.inventory.screen == "money") { + // Limit Cursor + if (guiControl.inventory.cursorPosition < 0) { + guiControl.inventory.cursorPosition = 0; + } + if (guiControl.inventory.cursorPosition > 0) { + guiControl.inventory.cursorPosition = 0; + } - // Title - guiControl.drawPixelText("Money", guiControl.leftBorder + pixel(3), guiControl.topOfBackground, 8, "black", 6); + // Title + guiControl.drawPixelText("Money", guiControl.leftBorder + pixel(3), guiControl.topOfBackground, 8, "black", 6); - guiControl.drawPixelText("Actual Amt", guiControl.leftBorder - pixel(5), guiControl.rowTop(0) + pixel(), 10, "black", 4); - // Money icon - guiControl.drawIcon(7, 2, guiControl.leftBorder - pixel(5), guiControl.rowTop(1) - pixel(3)); - guiControl.drawPixelText(G.inventory.money.toString(), guiControl.leftBorder - pixel(5) + pixel(guiControl.iconSize + 2), guiControl.rowTop(1) + pixel(2) - pixel(3), 10, "black", 4); - - // Back Text - guiControl.drawPixelText("Back", guiControl.leftBorder, guiControl.rowTop(4) - pixel(3), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.rowTop(4) - pixel(4)); + guiControl.drawPixelText("Actual Amt", guiControl.leftBorder - pixel(5), guiControl.rowTop(0) + pixel(), 10, "black", 4); + // Money icon + guiControl.drawIcon(7, 2, guiControl.leftBorder - pixel(5), guiControl.rowTop(1) - pixel(3)); + guiControl.drawPixelText(G.inventory.money.toString(), guiControl.leftBorder - pixel(5) + pixel(guiControl.iconSize + 2), guiControl.rowTop(1) + pixel(2) - pixel(3), 10, "black", 4); + + // Back Text + guiControl.drawPixelText("Back", guiControl.leftBorder, guiControl.rowTop(4) - pixel(3), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.rowTop(4) - pixel(4)); - // Button Action - if (guiControl.inventory.activateDelay <= 0) { - if (ct_confirm().down || ct_cancel().down) { - snd_cursorup.Play(); - guiControl.inventory.screen = "main"; - guiControl.inventory.activateDelay = 5; - guiControl.inventory.cursorPosition = 0; - } - } - } - else if (guiControl.inventory.screen == "cargo") { - // Limit Cursor - if (guiControl.inventory.cursorPosition < 0) { - guiControl.inventory.cursorPosition = 0; - } - if (guiControl.inventory.cursorPosition > 0) { - guiControl.inventory.cursorPosition = 0; - } + // Button Action + if (guiControl.inventory.activateDelay <= 0) { + if (ct_confirm().down || ct_cancel().down) { + snd_cursorup.Play(); + guiControl.inventory.screen = "main"; + guiControl.inventory.activateDelay = 5; + guiControl.inventory.cursorPosition = 0; + } + } + } + else if (guiControl.inventory.screen == "cargo") { + // Limit Cursor + if (guiControl.inventory.cursorPosition < 0) { + guiControl.inventory.cursorPosition = 0; + } + if (guiControl.inventory.cursorPosition > 0) { + guiControl.inventory.cursorPosition = 0; + } - // Title - guiControl.drawPixelText("Cargo", guiControl.leftBorder + pixel(3), guiControl.topOfBackground, 8, "black", 6); + // Title + guiControl.drawPixelText("Cargo", guiControl.leftBorder + pixel(3), guiControl.topOfBackground, 8, "black", 6); - // Cargo icons - var cargo = G.inventory.CheckCargo(); // Contains the item ids that have more than 1 item - for (var i = 0; i < cargo.length; i++) { - guiControl.drawItem(cargo[i], guiControl.leftBorder, guiControl.rowTop(i)); - guiControl.drawPixelText(G.inventory.cargo[cargo[i]], guiControl.leftBorder + pixel(guiControl.iconSize + 4), guiControl.rowTop(i) + pixel(), 8, "black", 6); - } + // Cargo icons + var cargo = G.inventory.CheckCargo(); // Contains the item ids that have more than 1 item + for (var i = 0; i < cargo.length; i++) { + guiControl.drawItem(cargo[i], guiControl.leftBorder, guiControl.rowTop(i)); + guiControl.drawPixelText(G.inventory.cargo[cargo[i]], guiControl.leftBorder + pixel(guiControl.iconSize + 4), guiControl.rowTop(i) + pixel(), 8, "black", 6); + } - // Back Text - guiControl.drawPixelText("Back", guiControl.leftBorder, guiControl.rowTop(4) - pixel(3), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.rowTop(4) - pixel(4)); + // Back Text + guiControl.drawPixelText("Back", guiControl.leftBorder, guiControl.rowTop(4) - pixel(3), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.rowTop(4) - pixel(4)); - // Button Action - if (guiControl.inventory.activateDelay <= 0) { - if (ct_confirm().down || ct_cancel().down) { - snd_cursorup.Play(); - guiControl.inventory.screen = "main"; - guiControl.inventory.activateDelay = 5; - guiControl.inventory.cursorPosition = 1; - } - } - } - else if (guiControl.inventory.screen == "status") { - // Limit Cursor - if (guiControl.inventory.cursorPosition < 0) { - guiControl.inventory.cursorPosition = 0; - } - if (guiControl.inventory.cursorPosition > 0) { - guiControl.inventory.cursorPosition = 0; - } + // Button Action + if (guiControl.inventory.activateDelay <= 0) { + if (ct_confirm().down || ct_cancel().down) { + snd_cursorup.Play(); + guiControl.inventory.screen = "main"; + guiControl.inventory.activateDelay = 5; + guiControl.inventory.cursorPosition = 1; + } + } + } + else if (guiControl.inventory.screen == "status") { + // Limit Cursor + if (guiControl.inventory.cursorPosition < 0) { + guiControl.inventory.cursorPosition = 0; + } + if (guiControl.inventory.cursorPosition > 0) { + guiControl.inventory.cursorPosition = 0; + } - // guiControl.drawPageArrow("left", pixel(4), guiControl.topOfBackground); - // guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - pixel(4), guiControl.topOfBackground); + // guiControl.drawPageArrow("left", pixel(4), guiControl.topOfBackground); + // guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - pixel(4), guiControl.topOfBackground); - // Title - guiControl.drawPixelText("Status", guiControl.leftBorder + pixel(), guiControl.topOfBackground, 8, "black", 6); + // Title + guiControl.drawPixelText("Status", guiControl.leftBorder + pixel(), guiControl.topOfBackground, 8, "black", 6); - // Illness icon - guiControl.drawIcon(4, 1, guiControl.leftBorder - pixel(6), guiControl.rowTop(0)); - guiControl.drawPixelText(G.stats.illness.toString(), guiControl.leftBorder - pixel(6) + (guiControl.iconScaled + pixel(2)), guiControl.rowTop(0) + pixel(2), 2, "black", 4); - - guiControl.drawPixelText("This will show more data when stati can change.", guiControl.leftBorder - pixel(5), guiControl.rowTop(1), 10, "black", 4); - /*// Energy icon - guiControl.drawIcon(9, 2, guiControl.leftBorder - pixel(5), guiControl.rowTop(0) - pixel(3)); - guiControl.drawPixelText(G.stats.energy.toString(), guiControl.leftBorder - pixel(5) + pixel(guiControl.iconSize + 2), guiControl.rowTop(1) + pixel(2) - pixel(3), 2, "black", 4); - // Illness icon - guiControl.drawIcon(4, 1, guiControl.leftBorder - pixel(5) + pixel(24), guiControl.rowTop(1) - pixel(3)); - guiControl.drawPixelText(G.stats.illness.toString(), guiControl.leftBorder - pixel(5) + pixel(24) + pixel(guiControl.iconSize + 2), guiControl.rowTop(1) + pixel(2) - pixel(3), 2, "black", 4); + // Illness icon + guiControl.drawIcon(4, 1, guiControl.leftBorder - pixel(6), guiControl.rowTop(0)); + guiControl.drawPixelText(G.stats.illness.toString(), guiControl.leftBorder - pixel(6) + (guiControl.iconScaled + pixel(2)), guiControl.rowTop(0) + pixel(2), 2, "black", 4); + + guiControl.drawPixelText("This will show more data when stati can change.", guiControl.leftBorder - pixel(5), guiControl.rowTop(1), 10, "black", 4); + /*// Energy icon + guiControl.drawIcon(9, 2, guiControl.leftBorder - pixel(5), guiControl.rowTop(0) - pixel(3)); + guiControl.drawPixelText(G.stats.energy.toString(), guiControl.leftBorder - pixel(5) + pixel(guiControl.iconSize + 2), guiControl.rowTop(1) + pixel(2) - pixel(3), 2, "black", 4); + // Illness icon + guiControl.drawIcon(4, 1, guiControl.leftBorder - pixel(5) + pixel(24), guiControl.rowTop(1) - pixel(3)); + guiControl.drawPixelText(G.stats.illness.toString(), guiControl.leftBorder - pixel(5) + pixel(24) + pixel(guiControl.iconSize + 2), guiControl.rowTop(1) + pixel(2) - pixel(3), 2, "black", 4); - // Yes/No options - guiControl.drawPixelText("No", guiControl.leftBorder, guiControl.rowTop(2) - pixel(3), 3, "black", 6); - guiControl.drawPixelText("Yes", guiControl.leftBorder, guiControl.rowTop(3) - pixel(3), 3, (G.inventory.supplies > 0 && G.stats.illness > 0) ? "black" : "white", 6); - */ - // Back Text - guiControl.drawPixelText("Back", guiControl.leftBorder, guiControl.rowTop(4) - pixel(3), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.rowTop(4) - pixel(3)); + // Yes/No options + guiControl.drawPixelText("No", guiControl.leftBorder, guiControl.rowTop(2) - pixel(3), 3, "black", 6); + guiControl.drawPixelText("Yes", guiControl.leftBorder, guiControl.rowTop(3) - pixel(3), 3, (G.inventory.supplies > 0 && G.stats.illness > 0) ? "black" : "white", 6); + */ + // Back Text + guiControl.drawPixelText("Back", guiControl.leftBorder, guiControl.rowTop(4) - pixel(3), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.rowTop(4) - pixel(3)); - // Button Action - if (guiControl.inventory.activateDelay <= 0) { - if (ct_confirm().down || ct_cancel().down) { - snd_cursorup.Play(); - guiControl.inventory.screen = "main"; - guiControl.inventory.activateDelay = 5; - guiControl.inventory.cursorPosition = 2; // The position where "Supplies" is on main screen. - } - } - } - } + // Button Action + if (guiControl.inventory.activateDelay <= 0) { + if (ct_confirm().down || ct_cancel().down) { + snd_cursorup.Play(); + guiControl.inventory.screen = "main"; + guiControl.inventory.activateDelay = 5; + guiControl.inventory.cursorPosition = 2; // The position where "Supplies" is on main screen. + } + } + } + } } diff --git a/gui/mapGUI.js b/gui/mapGUI.js index a5370e4..b3b951a 100644 --- a/gui/mapGUI.js +++ b/gui/mapGUI.js @@ -1,62 +1,62 @@ function mapGUI() { - if (Oversimplified.DEBUG.showMessages) console.log("Ran mapGUI()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran mapGUI()"); } guiControl.map = { - show: false, - activateDelay: 0 + show: false, + activateDelay: 0, } guiControl.map.Draw = function () { - if (guiControl.map && guiControl.map.show) { - guiControl.map.activateDelay -= (guiControl.map.activateDelay > 0) ? 1 : 0; + if (guiControl.map && guiControl.map.show) { + guiControl.map.activateDelay -= (guiControl.map.activateDelay > 0) ? 1 : 0; - guiControl.drawGUIBackground(); - - // Title - guiControl.drawPixelText("Map", guiControl.leftBorder + pixel(10), guiControl.topOfBackground, 8, "black", 6); + guiControl.drawGUIBackground(); + + // Title + guiControl.drawPixelText("Map", guiControl.leftBorder + pixel(10), guiControl.topOfBackground, 8, "black", 6); - guiControl.drawPageArrow("left", pixel(4), guiControl.topOfBackground); - guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - pixel(4), guiControl.topOfBackground); + guiControl.drawPageArrow("left", pixel(4), guiControl.topOfBackground); + guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - pixel(4), guiControl.topOfBackground); - var saveFillStyle = OS.context.fillStyle; + var saveFillStyle = OS.context.fillStyle; - var mapLeft = guiControl.leftBorder - pixel(5); - var mapTop = guiControl.upperBorder; + var mapLeft = guiControl.leftBorder - pixel(5); + var mapTop = guiControl.upperBorder; - OS.context.fillStyle = "#0000CC"; - OS.context.fillRect(mapLeft, mapTop, pixel(50), pixel(45)); + OS.context.fillStyle = "#0000CC"; + OS.context.fillRect(mapLeft, mapTop, pixel(50), pixel(45)); - OS.context.fillStyle = "#00FF00"; - for (var m = 0; m < G.map.length; m++) { - var pixelLeft = mapLeft + pixel(G.map[m].drawX); - var pixelTop = mapTop + pixel(G.map[m].drawY); - OS.context.fillRect(pixelLeft, pixelTop, pixel(), pixel()); - } + OS.context.fillStyle = "#00FF00"; + for (var m = 0; m < G.map.length; m++) { + var pixelLeft = mapLeft + pixel(G.map[m].drawX); + var pixelTop = mapTop + pixel(G.map[m].drawY); + OS.context.fillRect(pixelLeft, pixelTop, pixel(), pixel()); + } - OS.context.fillStyle = "#FF0000"; - OS.context.fillRect(mapLeft + G.player.mapX, mapTop + G.player.mapY, pixel(), pixel()); + OS.context.fillStyle = "#FF0000"; + OS.context.fillRect(mapLeft + G.player.mapX, mapTop + G.player.mapY, pixel(), pixel()); - OS.context.fillStyle = saveFillStyle; - - // Button Action - if (guiControl.map.activateDelay <= 0) { - if (ct_confirm().down || ct_cancel().down || ct_m.down) { - snd_cursorup.Play(); - guiControl.map.show = false; - } - if (ct_left().down) { - snd_cursordown.Play(); - guiControl.map.show = false; - guiControl.inventory.activateDelay = 5; - guiControl.inventory.show = true; - } - if (ct_right().down) { - snd_cursordown.Play(); - guiControl.map.show = false; - guiControl.inventory.activateDelay = 5; - guiControl.inventory.show = true; - } - } - } + OS.context.fillStyle = saveFillStyle; + + // Button Action + if (guiControl.map.activateDelay <= 0) { + if (ct_confirm().down || ct_cancel().down || ct_m.down) { + snd_cursorup.Play(); + guiControl.map.show = false; + } + if (ct_left().down) { + snd_cursordown.Play(); + guiControl.map.show = false; + guiControl.inventory.activateDelay = 5; + guiControl.inventory.show = true; + } + if (ct_right().down) { + snd_cursordown.Play(); + guiControl.map.show = false; + guiControl.inventory.activateDelay = 5; + guiControl.inventory.show = true; + } + } + } } diff --git a/gui/titleScreen.js b/gui/titleScreen.js index 19589c8..0ef3f82 100644 --- a/gui/titleScreen.js +++ b/gui/titleScreen.js @@ -3,111 +3,114 @@ function titleScreen () { } guiControl.title = { - screen: "main", - show: true, - cursorPosition: 0, - activateDelay: 0, + screen: "main", + show: true, + cursorPosition: 0, + activateDelay: 0, - padding: pixel(2), - leftBorder: pixel(12), + padding: pixel(2), + leftBorder: pixel(12), - rowTop: function (rowNumber) { - return pixel(32) + pixel(2) + pixel((guiControl.iconSize + 2) * rowNumber); - } + rowTop: function (rowNumber) { + return pixel(32) + pixel(2) + pixel((guiControl.iconSize + 2) * rowNumber); + }, } guiControl.title.Draw = function () { - if (guiControl.title && guiControl.title.show) { - guiControl.title.activateDelay -= (guiControl.title.activateDelay > 0) ? 1 : 0; + if (guiControl.title && guiControl.title.show) { + guiControl.title.activateDelay -= (guiControl.title.activateDelay > 0) ? 1 : 0; - if (guiControl.title.screen == "main") { - if (ct_down().down) { - snd_cursordown.Play(); - guiControl.title.cursorPosition++; + if (guiControl.title.screen == "main") { + if (ct_down().down) { + snd_cursordown.Play(); + guiControl.title.cursorPosition++; + } + if (ct_up().down) { + snd_cursordown.Play(); + guiControl.title.cursorPosition--; + } + + // console.log(guiControl.title.screen); + // Limit Cursor + if (guiControl.title.cursorPosition < 0) { + guiControl.title.cursorPosition = 2; + } + if (guiControl.title.cursorPosition > 2) { + guiControl.title.cursorPosition = 0; + } + + // Title + guiControl.drawTitleImage(); + + // New Game + guiControl.drawPixelText("New Game", guiControl.title.leftBorder, guiControl.title.rowTop(0), 10, "white", 6); + // Load Game + guiControl.drawPixelText("Continue", guiControl.title.leftBorder, guiControl.title.rowTop(1), 10, (G.savedGameExists) ? "white" : "black", 6); + // Options + guiControl.drawPixelText("Options", guiControl.title.leftBorder, guiControl.title.rowTop(2) + pixel(), 8, (guiControl.optionsScreen) ? "white" : "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.title.leftBorder - (guiControl.iconScaled), guiControl.title.rowTop(guiControl.title.cursorPosition)); + + // Button Action + if (guiControl.title.activateDelay <= 0) { + if (ct_confirm().down) { + switch (guiControl.title.cursorPosition) { + case 0: { + snd_select.Play(); + mus_title.Stop(); + mus_sail.Play(); + guiControl.title.show = false; + G.gameStarted = true; + G.SaveGame(); + break; } - if (ct_up().down) { - snd_cursordown.Play(); - guiControl.title.cursorPosition--; + case 1: { + if (G.savedGameExists) { // once loading is in, allow this. + G.LoadGame(); + snd_select.Play(); + mus_title.Stop(); + mus_sail.Play(); + guiControl.title.show = false; + G.gameStarted = true; + } else { + snd_cannotbuy.Play(); + } + break; } - - // console.log(guiControl.title.screen); - // Limit Cursor - if (guiControl.title.cursorPosition < 0) { - guiControl.title.cursorPosition = 2; - } - if (guiControl.title.cursorPosition > 2) { - guiControl.title.cursorPosition = 0; + case 2: { + if (false) { // once loading is in, allow this. + snd_select.Play(); + guiControl.title.show = false; + guiControl.options.show = true; + break; + } else { + snd_cannotbuy.Play(); + } } + } - // Title - guiControl.drawTitleImage(); - - // New Game - guiControl.drawPixelText("New Game", guiControl.title.leftBorder, guiControl.title.rowTop(0), 10, "white", 6); - // Load Game - guiControl.drawPixelText("Continue", guiControl.title.leftBorder, guiControl.title.rowTop(1), 10, (G.savedGameExists) ? "white" : "black", 6); - // Options - guiControl.drawPixelText("Options", guiControl.title.leftBorder, guiControl.title.rowTop(2) + pixel(), 8, (guiControl.optionsScreen) ? "white" : "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.title.leftBorder - (guiControl.iconScaled), guiControl.title.rowTop(guiControl.title.cursorPosition)); - - // Button Action - if (guiControl.title.activateDelay <= 0) { - if (ct_confirm().down) { - switch (guiControl.title.cursorPosition) { - case 0: - snd_select.Play(); - mus_title.Stop(); - mus_sail.Play(); - guiControl.title.show = false; - G.gameStarted = true; - G.SaveGame(); - break; - case 1: - if (G.savedGameExists) { // once loading is in, allow this. - G.LoadGame(); - snd_select.Play(); - mus_title.Stop(); - mus_sail.Play(); - guiControl.title.show = false; - G.gameStarted = true; - } else { - snd_cannotbuy.Play(); - } - break; - case 2: - if (false) { // once loading is in, allow this. - snd_select.Play(); - guiControl.title.show = false; - guiControl.options.show = true; - break; - } else { - snd_cannotbuy.Play(); - } - } - - guiControl.title.cursorPosition = 0; - // console.log(guiControl.title.screen); - } - - if (ct_cancel().down) { - guiControl.title.screen = "credits"; - } - } + guiControl.title.cursorPosition = 0; + // console.log(guiControl.title.screen); } - else if (guiControl.title.screen == "credits") { - guiControl.drawPixelText("Credits", guiControl.title.leftBorder - pixel(), pixel(2), 0, "white", 6); - guiControl.drawPixelText("Music, Icons", pixel(), pixel(11), 0, "white", 4); - guiControl.drawPixelText("Paws Menu", pixel(2), pixel(17), 0, "yellow", 6); - guiControl.drawPixelText("paws.bandcamp.com", pixel(2), pixel(25), 0, "yellow", 4); - guiControl.drawPixelText("Evrthng Else", pixel(), pixel(39), 0, "white", 4); - guiControl.drawPixelText("Alamantus", pixel(2), pixel(45), 0, "yellow", 6); - guiControl.drawPixelText("alamantus.com", pixel(2), pixel(53), 0, "yellow", 4); - if (ct_confirm().down || ct_cancel().down || ct_esc.down) { - guiControl.title.screen = "main"; - } + if (ct_cancel().down) { + guiControl.title.screen = "credits"; } + } } + else if (guiControl.title.screen == "credits") { + guiControl.drawPixelText("Credits", guiControl.title.leftBorder - pixel(), pixel(2), 0, "white", 6); + guiControl.drawPixelText("Music, Icons", pixel(), pixel(11), 0, "white", 4); + guiControl.drawPixelText("Paws Menu", pixel(2), pixel(17), 0, "yellow", 6); + guiControl.drawPixelText("paws.bandcamp.com", pixel(2), pixel(25), 0, "yellow", 4); + guiControl.drawPixelText("Evrthng Else", pixel(), pixel(39), 0, "white", 4); + guiControl.drawPixelText("Alamantus", pixel(2), pixel(45), 0, "yellow", 6); + guiControl.drawPixelText("alamantus.com", pixel(2), pixel(53), 0, "yellow", 4); + + if (ct_confirm().down || ct_cancel().down || ct_esc.down) { + guiControl.title.screen = "main"; + } + } + } } diff --git a/gui/tradeGUI.js b/gui/tradeGUI.js index 8586b51..6a1d182 100644 --- a/gui/tradeGUI.js +++ b/gui/tradeGUI.js @@ -1,448 +1,461 @@ function tradeGUI() { - if (Oversimplified.DEBUG.showMessages) console.log("Ran tradeGUI()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran tradeGUI()"); } guiControl.trade = { - screen: "main", // "main", "buy", "sell", "gossip" - cursorPosition: 0, - page: 0, // horizontal page on item lists. Base 1 to match number of pages var "pages" within the gui. - itemsPerPage: 3, - show: false, - activateDelay: 0, + screen: "main", // "main", "buy", "sell", "gossip" + cursorPosition: 0, + page: 0, // horizontal page on item lists. Base 1 to match number of pages var "pages" within the gui. + itemsPerPage: 3, + show: false, + activateDelay: 0, - island: null, + island: null, - padding: pixel(2), - leftBorder: pixel(12), + padding: pixel(2), + leftBorder: pixel(12), - rowTop: function (rowNumber) { - return (guiControl.trade.padding + pixel(6) + (guiControl.trade.padding * 3)) + pixel((guiControl.iconSize + 3) * rowNumber); - } + rowTop: function (rowNumber) { + return (guiControl.trade.padding + pixel(6) + (guiControl.trade.padding * 3)) + pixel((guiControl.iconSize + 3) * rowNumber); + }, } guiControl.trade.Draw = function () { - if (guiControl.trade && guiControl.trade.show) { - guiControl.trade.activateDelay -= (guiControl.trade.activateDelay > 0) ? 1 : 0; - // console.log("trade screen island: " + guiControl.trade.island.name); - // Draw background color. - var tmp = Oversimplified.context.fillStyle; - Oversimplified.context.fillStyle = "#D9BEA5"; - Oversimplified.context.fillRect(0, 0, Oversimplified.camera.width, Oversimplified.camera.height); - Oversimplified.context.fillStyle = tmp; + if (guiControl.trade && guiControl.trade.show) { + guiControl.trade.activateDelay -= (guiControl.trade.activateDelay > 0) ? 1 : 0; + // console.log("trade screen island: " + guiControl.trade.island.name); + // Draw background color. + var tmp = Oversimplified.context.fillStyle; + Oversimplified.context.fillStyle = "#D9BEA5"; + Oversimplified.context.fillRect(0, 0, Oversimplified.camera.width, Oversimplified.camera.height); + Oversimplified.context.fillStyle = tmp; - if (ct_down().down) { - snd_cursordown.Play(); - guiControl.trade.cursorPosition++; - } - if (ct_up().down) { - snd_cursordown.Play(); - guiControl.trade.cursorPosition--; - } - if (ct_right().down) { - snd_cursordown.Play(); - guiControl.trade.page++; - } - if (ct_left().down) { - snd_cursordown.Play(); - guiControl.trade.page--; - } - - if (guiControl.trade.screen == "main") { - // console.log(guiControl.trade.screen); - // Limit Cursor - if (guiControl.trade.cursorPosition < 0) { - guiControl.trade.cursorPosition = 3; - } - if (guiControl.trade.cursorPosition > 3) { - guiControl.trade.cursorPosition = 0; - } - // Limit page - if (guiControl.trade.page < 0) { - guiControl.trade.page = 0; - } - if (guiControl.trade.page > 0) { - guiControl.trade.page = 0; - } + if (ct_down().down) { + snd_cursordown.Play(); + guiControl.trade.cursorPosition++; + } + if (ct_up().down) { + snd_cursordown.Play(); + guiControl.trade.cursorPosition--; + } + if (ct_right().down) { + snd_cursordown.Play(); + guiControl.trade.page++; + } + if (ct_left().down) { + snd_cursordown.Play(); + guiControl.trade.page--; + } + + if (guiControl.trade.screen == "main") { + // console.log(guiControl.trade.screen); + // Limit Cursor + if (guiControl.trade.cursorPosition < 0) { + guiControl.trade.cursorPosition = 3; + } + if (guiControl.trade.cursorPosition > 3) { + guiControl.trade.cursorPosition = 0; + } + // Limit page + if (guiControl.trade.page < 0) { + guiControl.trade.page = 0; + } + if (guiControl.trade.page > 0) { + guiControl.trade.page = 0; + } - // Title - guiControl.drawPixelText("On Island", (guiControl.trade.padding * 2), guiControl.trade.padding, 10, "black", 6); - // Money icon - // guiControl.drawIcon(7, 2, guiControl.trade.leftBorder, guiControl.trade.rowTop(0)); - guiControl.drawPixelText((guiControl.trade.island.CheckInventory().length > 0) ? "Buy" : "Sold Out!", guiControl.trade.leftBorder, guiControl.trade.rowTop(0) + pixel(), 10, (guiControl.trade.island.CheckInventory().length > 0) ? "black" : "white", 6); - // Supplies icon - // guiControl.drawIcon(9, 2, guiControl.trade.leftBorder, guiControl.trade.rowTop(1)); - guiControl.drawPixelText((G.inventory.CheckCargo().length > 0) ? "Sell" : "No Cargo!", guiControl.trade.leftBorder, guiControl.trade.rowTop(1) + pixel(), 10, (G.inventory.CheckCargo().length > 0) ? "black" : "white", 6); - // Cargo icon - // guiControl.drawIcon(1, 0, guiControl.trade.leftBorder, guiControl.trade.rowTop(2)); - guiControl.drawPixelText("Tavern", guiControl.trade.leftBorder, guiControl.trade.rowTop(2) + pixel(), 8, "black", 6); - - // Close Text - guiControl.drawPixelText("Leave", guiControl.trade.leftBorder, guiControl.trade.rowTop(3) + pixel(), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.trade.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(guiControl.trade.cursorPosition)); + // Title + guiControl.drawPixelText("On Island", (guiControl.trade.padding * 2), guiControl.trade.padding, 10, "black", 6); + // Money icon + // guiControl.drawIcon(7, 2, guiControl.trade.leftBorder, guiControl.trade.rowTop(0)); + guiControl.drawPixelText((guiControl.trade.island.CheckInventory().length > 0) ? "Buy" : "Sold Out!", guiControl.trade.leftBorder, guiControl.trade.rowTop(0) + pixel(), 10, (guiControl.trade.island.CheckInventory().length > 0) ? "black" : "white", 6); + // Supplies icon + // guiControl.drawIcon(9, 2, guiControl.trade.leftBorder, guiControl.trade.rowTop(1)); + guiControl.drawPixelText((G.inventory.CheckCargo().length > 0) ? "Sell" : "No Cargo!", guiControl.trade.leftBorder, guiControl.trade.rowTop(1) + pixel(), 10, (G.inventory.CheckCargo().length > 0) ? "black" : "white", 6); + // Cargo icon + // guiControl.drawIcon(1, 0, guiControl.trade.leftBorder, guiControl.trade.rowTop(2)); + guiControl.drawPixelText("Tavern", guiControl.trade.leftBorder, guiControl.trade.rowTop(2) + pixel(), 8, "black", 6); + + // Close Text + guiControl.drawPixelText("Leave", guiControl.trade.leftBorder, guiControl.trade.rowTop(3) + pixel(), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.trade.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(guiControl.trade.cursorPosition)); - // Button Action - if (guiControl.trade.activateDelay <= 0) { - if (ct_confirm().down) { - switch (guiControl.trade.cursorPosition) { - case 0: - if (guiControl.trade.island.CheckInventory().length > 0) { - snd_select.Play(); - guiControl.trade.screen = "buy"; - guiControl.trade.activateDelay = 5; - } - else { - snd_cannotbuy.Play(); - } + // Button Action + if (guiControl.trade.activateDelay <= 0) { + if (ct_confirm().down) { + switch (guiControl.trade.cursorPosition) { + case 0: { + if (guiControl.trade.island.CheckInventory().length > 0) { + snd_select.Play(); + guiControl.trade.screen = "buy"; + guiControl.trade.activateDelay = 5; + } + else { + snd_cannotbuy.Play(); + } break; - case 1: - if (G.inventory.CheckCargo().length > 0) { - snd_select.Play(); - guiControl.trade.screen = "sell"; - guiControl.trade.activateDelay = 5; - } else { - snd_cannotbuy.Play(); - } + } + case 1: { + if (G.inventory.CheckCargo().length > 0) { + snd_select.Play(); + guiControl.trade.screen = "sell"; + guiControl.trade.activateDelay = 5; + } else { + snd_cannotbuy.Play(); + } break; - case 2: - snd_select.Play(); - guiControl.trade.screen = "tavern"; - guiControl.trade.activateDelay = 5; + } + case 2: { + snd_select.Play(); + guiControl.trade.screen = "tavern"; + guiControl.trade.activateDelay = 5; break; - default: - snd_cursorup.Play(); - mus_trade.Stop(); - mus_sail.Play(); - guiControl.trade.show = false; + } + default: { + snd_cursorup.Play(); + mus_trade.Stop(); + mus_sail.Play(); + guiControl.trade.show = false; break; - } + } + } - // snd_select.Play(); - guiControl.trade.cursorPosition = 0; - guiControl.trade.page = 0; - // console.log(guiControl.trade.screen); - } - if (ct_cancel().down) { - snd_cursorup.Play(); - mus_trade.Stop(); - mus_sail.Play(); - guiControl.trade.show = false; - } - } - } - else if (guiControl.trade.screen == "buy") { - // console.log(guiControl.trade.screen); - // Limit Cursor - if (guiControl.trade.cursorPosition < 0) { - guiControl.trade.cursorPosition = 2; - } - if (guiControl.trade.cursorPosition > 2) { - guiControl.trade.cursorPosition = 0; - } + // snd_select.Play(); + guiControl.trade.cursorPosition = 0; + guiControl.trade.page = 0; + // console.log(guiControl.trade.screen); + } + if (ct_cancel().down) { + snd_cursorup.Play(); + mus_trade.Stop(); + mus_sail.Play(); + guiControl.trade.show = false; + } + } + } + else if (guiControl.trade.screen == "buy") { + // console.log(guiControl.trade.screen); + // Limit Cursor + if (guiControl.trade.cursorPosition < 0) { + guiControl.trade.cursorPosition = 2; + } + if (guiControl.trade.cursorPosition > 2) { + guiControl.trade.cursorPosition = 0; + } - // Title - guiControl.drawPixelText("Buy", guiControl.trade.leftBorder - pixel(2), guiControl.topOfBackground, 10, "black", 6); + // Title + guiControl.drawPixelText("Buy", guiControl.trade.leftBorder - pixel(2), guiControl.topOfBackground, 10, "black", 6); - // Money icon - guiControl.drawIcon(7, 2, guiControl.trade.padding, guiControl.trade.rowTop(0) - pixel(3)); - guiControl.drawPixelText(G.inventory.moneyDisplay(), guiControl.trade.padding + pixel(guiControl.iconSize + 2), guiControl.trade.rowTop(0) + pixel(2) - pixel(3), 10, "black", 4); - - // Cargo icons - var items = guiControl.trade.island.CheckInventory(); // Contains the item ids that have more than 1 item + // Money icon + guiControl.drawIcon(7, 2, guiControl.trade.padding, guiControl.trade.rowTop(0) - pixel(3)); + guiControl.drawPixelText(G.inventory.moneyDisplay(), guiControl.trade.padding + pixel(guiControl.iconSize + 2), guiControl.trade.rowTop(0) + pixel(2) - pixel(3), 10, "black", 4); + + // Cargo icons + var items = guiControl.trade.island.CheckInventory(); // Contains the item ids that have more than 1 item - // Limit page - if (guiControl.trade.page < 0) { - guiControl.trade.page = items.length - 1; - } - if (guiControl.trade.page > items.length - 1) { - guiControl.trade.page = 0; - } + // Limit page + if (guiControl.trade.page < 0) { + guiControl.trade.page = items.length - 1; + } + if (guiControl.trade.page > items.length - 1) { + guiControl.trade.page = 0; + } - if (items.length > 0) { - var itemPrice = G.economy.cargoItemWorth[items[guiControl.trade.page]] + guiControl.trade.island.priceDifferences[items[guiControl.trade.page]] - guiControl.trade.island.haggleAmount; - if (itemPrice < 1) itemPrice = 1; - var itemPriceDisplay = itemPrice.toString() + " c"; - guiControl.drawItem(items[guiControl.trade.page], guiControl.trade.leftBorder, guiControl.trade.rowTop(1) - pixel(5)); - guiControl.drawPixelText(itemPriceDisplay, guiControl.trade.leftBorder + pixel(guiControl.iconSize + 4), guiControl.trade.rowTop(1) - pixel(5) + pixel(), 8, "black", 6); + if (items.length > 0) { + var itemPrice = G.economy.cargoItemWorth[items[guiControl.trade.page]] + guiControl.trade.island.priceDifferences[items[guiControl.trade.page]] - guiControl.trade.island.haggleAmount; + if (itemPrice < 1) itemPrice = 1; + var itemPriceDisplay = itemPrice.toString() + " c"; + guiControl.drawItem(items[guiControl.trade.page], guiControl.trade.leftBorder, guiControl.trade.rowTop(1) - pixel(5)); + guiControl.drawPixelText(itemPriceDisplay, guiControl.trade.leftBorder + pixel(guiControl.iconSize + 4), guiControl.trade.rowTop(1) - pixel(5) + pixel(), 8, "black", 6); - if (items.length > 1) { - guiControl.drawPageArrow("left", guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5)); - guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5)); - } + if (items.length > 1) { + guiControl.drawPageArrow("left", guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5)); + guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5)); + } - // Amounts - guiControl.drawPixelText("Shop" + guiControl.trade.island.inventory[items[guiControl.trade.page]].toString(), OS.camera.width - pixel(20), guiControl.trade.rowTop(2) - pixel(6) + pixel(), 4, (guiControl.trade.island.CanBuyFrom(items[guiControl.trade.page], itemPrice)) ? "black" : "yellow", 4); - guiControl.drawPixelText("Own " + G.inventory.cargo[items[guiControl.trade.page]].toString(), OS.camera.width - pixel(20), guiControl.trade.rowTop(3) - pixel(6) + pixel(), 4, (G.inventory.cargo[items[guiControl.trade.page]] < G.stats.hold) ? "black" : "yellow", 4); - } else { - guiControl.drawPixelText("Sold Out!", guiControl.trade.leftBorder, guiControl.trade.rowTop(1) - pixel(5) + pixel(), 10, "black", 6); - } - - // Draw Amount of Cargo - guiControl.drawIcon(1, 1, OS.camera.width - pixel(20), guiControl.trade.rowTop(4) - pixel(5)); - guiControl.drawPixelText(G.inventory.CheckCargo().length.toString(), OS.camera.width - pixel(20) + (guiControl.iconScaled + pixel()), guiControl.trade.rowTop(4) - pixel(4), 4, (G.inventory.CheckCargo().length < G.stats.inventory) ? "black" : "yellow", 6); + // Amounts + guiControl.drawPixelText("Shop" + guiControl.trade.island.inventory[items[guiControl.trade.page]].toString(), OS.camera.width - pixel(20), guiControl.trade.rowTop(2) - pixel(6) + pixel(), 4, (guiControl.trade.island.CanBuyFrom(items[guiControl.trade.page], itemPrice)) ? "black" : "yellow", 4); + guiControl.drawPixelText("Own " + G.inventory.cargo[items[guiControl.trade.page]].toString(), OS.camera.width - pixel(20), guiControl.trade.rowTop(3) - pixel(6) + pixel(), 4, (G.inventory.cargo[items[guiControl.trade.page]] < G.stats.hold) ? "black" : "yellow", 4); + } else { + guiControl.drawPixelText("Sold Out!", guiControl.trade.leftBorder, guiControl.trade.rowTop(1) - pixel(5) + pixel(), 10, "black", 6); + } + + // Draw Amount of Cargo + guiControl.drawIcon(1, 1, OS.camera.width - pixel(20), guiControl.trade.rowTop(4) - pixel(5)); + guiControl.drawPixelText(G.inventory.CheckCargo().length.toString(), OS.camera.width - pixel(20) + (guiControl.iconScaled + pixel()), guiControl.trade.rowTop(4) - pixel(4), 4, (G.inventory.CheckCargo().length < G.stats.inventory) ? "black" : "yellow", 6); - // Yes/No Options - guiControl.drawPixelText("Haggle", guiControl.trade.leftBorder, guiControl.trade.rowTop(2) - pixel(2), 8, (guiControl.trade.island.timesHaggledToday >= G.stats.popularity) ? "yellow" : ((items.length > 0 && guiControl.trade.island.haggleAmount == 0) ? "black" : "white"), 6); - guiControl.drawPixelText((guiControl.trade.island.CanBuyFrom(items[guiControl.trade.page], itemPrice)) ? "Yes" : "Over!", guiControl.trade.leftBorder, guiControl.trade.rowTop(3) - pixel(2), 8, (items.length > 0 && G.inventory.CanBuy(items[guiControl.trade.page], itemPrice)) ? ((guiControl.trade.island.CanBuyFrom(items[guiControl.trade.page], itemPrice)) ? "black" : "yellow") : "white", 6); + // Yes/No Options + guiControl.drawPixelText("Haggle", guiControl.trade.leftBorder, guiControl.trade.rowTop(2) - pixel(2), 8, (guiControl.trade.island.timesHaggledToday >= G.stats.popularity) ? "yellow" : ((items.length > 0 && guiControl.trade.island.haggleAmount == 0) ? "black" : "white"), 6); + guiControl.drawPixelText((guiControl.trade.island.CanBuyFrom(items[guiControl.trade.page], itemPrice)) ? "Yes" : "Over!", guiControl.trade.leftBorder, guiControl.trade.rowTop(3) - pixel(2), 8, (items.length > 0 && G.inventory.CanBuy(items[guiControl.trade.page], itemPrice)) ? ((guiControl.trade.island.CanBuyFrom(items[guiControl.trade.page], itemPrice)) ? "black" : "yellow") : "white", 6); - // Back Text - guiControl.drawPixelText("Back", guiControl.trade.leftBorder, guiControl.trade.rowTop(4) - pixel(2), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.trade.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(guiControl.trade.cursorPosition + 2) - pixel(3)); + // Back Text + guiControl.drawPixelText("Back", guiControl.trade.leftBorder, guiControl.trade.rowTop(4) - pixel(2), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.trade.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(guiControl.trade.cursorPosition + 2) - pixel(3)); - // Button Action - if (guiControl.trade.activateDelay <= 0) { - if (ct_confirm().down) { - switch (guiControl.trade.cursorPosition) { - case 0: // Haggle - if (items.length > 0 && (guiControl.trade.island.timesHaggledToday <= G.stats.popularity) && // If there are items and you haven't haggled too much - guiControl.trade.island.haggleAmount == 0 && Math.floor(Math.randomRange(0, 100)) < G.stats.popularity) // Or you haven't haggled yet and get a random number less than your popularity, haggle successfully. - { - snd_sell.Play(); - guiControl.trade.island.haggleAmount = G.stats.haggling; - } else { - snd_cannotbuy.Play(); - guiControl.trade.island.timesHaggledToday++; - } + // Button Action + if (guiControl.trade.activateDelay <= 0) { + if (ct_confirm().down) { + switch (guiControl.trade.cursorPosition) { + case 0: { // Haggle + if (items.length > 0 && (guiControl.trade.island.timesHaggledToday <= G.stats.popularity) && // If there are items and you haven't haggled too much + guiControl.trade.island.haggleAmount == 0 && Math.floor(Math.randomRange(0, 100)) < G.stats.popularity) // Or you haven't haggled yet and get a random number less than your popularity, haggle successfully. + { + snd_sell.Play(); + guiControl.trade.island.haggleAmount = G.stats.haggling; + } else { + snd_cannotbuy.Play(); + guiControl.trade.island.timesHaggledToday++; + } break; - case 1: // Buy - if (items.length > 0 && - G.inventory.CanBuy(items[guiControl.trade.page], itemPrice) && - guiControl.trade.island.CanBuyFrom(items[guiControl.trade.page], itemPrice)) //If cursor is over yes and you can buy, buy it. - { - snd_buy.Play(); - guiControl.trade.island.BuyFrom(items[guiControl.trade.page], itemPrice); - } else { - snd_cannotbuy.Play(); - } + } + case 1: { // Buy + if (items.length > 0 && + G.inventory.CanBuy(items[guiControl.trade.page], itemPrice) && + guiControl.trade.island.CanBuyFrom(items[guiControl.trade.page], itemPrice)) //If cursor is over yes and you can buy, buy it. + { + snd_buy.Play(); + guiControl.trade.island.BuyFrom(items[guiControl.trade.page], itemPrice); + } else { + snd_cannotbuy.Play(); + } break; - default: - snd_cursorup.Play(); - guiControl.trade.screen = "main"; - guiControl.trade.activateDelay = 5; - guiControl.trade.cursorPosition = 0; // The position where "Buy" is on main screen. + } + default: { + snd_cursorup.Play(); + guiControl.trade.screen = "main"; + guiControl.trade.activateDelay = 5; + guiControl.trade.cursorPosition = 0; // The position where "Buy" is on main screen. break; - } - // console.log(guiControl.trade.screen); - } - if (ct_cancel().down) { - snd_cursorup.Play(); - guiControl.trade.screen = "main"; - guiControl.trade.activateDelay = 5; - guiControl.trade.cursorPosition = 0; // The position where "Buy" is on main screen. - // console.log(guiControl.trade.screen); - } - } - } - else if (guiControl.trade.screen == "sell") { - // console.log(guiControl.trade.screen); - // Limit Cursor - if (guiControl.trade.cursorPosition < 0) { - guiControl.trade.cursorPosition = 2; - } - if (guiControl.trade.cursorPosition > 2) { - guiControl.trade.cursorPosition = 0; - } + } + } + // console.log(guiControl.trade.screen); + } + if (ct_cancel().down) { + snd_cursorup.Play(); + guiControl.trade.screen = "main"; + guiControl.trade.activateDelay = 5; + guiControl.trade.cursorPosition = 0; // The position where "Buy" is on main screen. + // console.log(guiControl.trade.screen); + } + } + } + else if (guiControl.trade.screen == "sell") { + // console.log(guiControl.trade.screen); + // Limit Cursor + if (guiControl.trade.cursorPosition < 0) { + guiControl.trade.cursorPosition = 2; + } + if (guiControl.trade.cursorPosition > 2) { + guiControl.trade.cursorPosition = 0; + } - // Title - guiControl.drawPixelText("Sell", guiControl.trade.leftBorder - pixel(2), guiControl.topOfBackground, 10, "black", 6); + // Title + guiControl.drawPixelText("Sell", guiControl.trade.leftBorder - pixel(2), guiControl.topOfBackground, 10, "black", 6); - // Money icon - guiControl.drawIcon(7, 2, guiControl.trade.padding, guiControl.trade.rowTop(0) - pixel(3)); - guiControl.drawPixelText(G.inventory.moneyDisplay(), guiControl.trade.padding + pixel(guiControl.iconSize + 2), guiControl.trade.rowTop(0) + pixel(2) - pixel(3), 10, "black", 4); - - // Cargo icons - var items = G.inventory.CheckCargo(); // Contains the item ids that have more than 1 item + // Money icon + guiControl.drawIcon(7, 2, guiControl.trade.padding, guiControl.trade.rowTop(0) - pixel(3)); + guiControl.drawPixelText(G.inventory.moneyDisplay(), guiControl.trade.padding + pixel(guiControl.iconSize + 2), guiControl.trade.rowTop(0) + pixel(2) - pixel(3), 10, "black", 4); + + // Cargo icons + var items = G.inventory.CheckCargo(); // Contains the item ids that have more than 1 item - // Limit page - if (guiControl.trade.page < 0) { - guiControl.trade.page = items.length - 1; - } - if (guiControl.trade.page > items.length - 1) { - guiControl.trade.page = 0; - } + // Limit page + if (guiControl.trade.page < 0) { + guiControl.trade.page = items.length - 1; + } + if (guiControl.trade.page > items.length - 1) { + guiControl.trade.page = 0; + } - if (items.length > 0) { - var itemPrice = G.economy.cargoItemWorth[items[guiControl.trade.page]] + guiControl.trade.island.priceDifferences[items[guiControl.trade.page]]; - var priceCut = 0.5 + ((guiControl.trade.island.haggleAmount == 0) ? 0 : (G.stats.popularity * 0.01 * 0.5)); // If haggled successfully, lessen the price cut by half of your popularity's percent worth. - itemPrice = Math.round(itemPrice * priceCut); - if (itemPrice < 1) itemPrice = 1; - var itemPriceDisplay = itemPrice.toString() + " c"; - guiControl.drawItem(items[guiControl.trade.page], guiControl.trade.leftBorder, guiControl.trade.rowTop(1) - pixel(5)); - guiControl.drawPixelText(itemPriceDisplay, guiControl.trade.leftBorder + pixel(guiControl.iconSize + 4), guiControl.trade.rowTop(1) - pixel(5) + pixel(), 8, "black", 6); + if (items.length > 0) { + var itemPrice = G.economy.cargoItemWorth[items[guiControl.trade.page]] + guiControl.trade.island.priceDifferences[items[guiControl.trade.page]]; + var priceCut = 0.5 + ((guiControl.trade.island.haggleAmount == 0) ? 0 : (G.stats.popularity * 0.01 * 0.5)); // If haggled successfully, lessen the price cut by half of your popularity's percent worth. + itemPrice = Math.round(itemPrice * priceCut); + if (itemPrice < 1) itemPrice = 1; + var itemPriceDisplay = itemPrice.toString() + " c"; + guiControl.drawItem(items[guiControl.trade.page], guiControl.trade.leftBorder, guiControl.trade.rowTop(1) - pixel(5)); + guiControl.drawPixelText(itemPriceDisplay, guiControl.trade.leftBorder + pixel(guiControl.iconSize + 4), guiControl.trade.rowTop(1) - pixel(5) + pixel(), 8, "black", 6); - if (items.length > 1) { - guiControl.drawPageArrow("left", guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5)); - guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5)); - } + if (items.length > 1) { + guiControl.drawPageArrow("left", guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5)); + guiControl.drawPageArrow("right", OS.camera.width - pixel(4) - guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5)); + } - // Amounts - guiControl.drawPixelText("Shop" + guiControl.trade.island.inventory[items[guiControl.trade.page]].toString(), OS.camera.width - pixel(20), guiControl.trade.rowTop(2) - pixel(6) + pixel(), 4, (guiControl.trade.island.CanSellTo(items[guiControl.trade.page], itemPrice)) ? "black" : "yellow", 4); - guiControl.drawPixelText("Own " + G.inventory.cargo[items[guiControl.trade.page]].toString(), OS.camera.width - pixel(20), guiControl.trade.rowTop(3) - pixel(6) + pixel(), 4, (G.inventory.cargo[items[guiControl.trade.page]] > 0) ? "black" : "yellow", 4); - } else { - guiControl.drawPixelText("No Cargo!", guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5) + pixel(), 10, "black", 6); - } + // Amounts + guiControl.drawPixelText("Shop" + guiControl.trade.island.inventory[items[guiControl.trade.page]].toString(), OS.camera.width - pixel(20), guiControl.trade.rowTop(2) - pixel(6) + pixel(), 4, (guiControl.trade.island.CanSellTo(items[guiControl.trade.page], itemPrice)) ? "black" : "yellow", 4); + guiControl.drawPixelText("Own " + G.inventory.cargo[items[guiControl.trade.page]].toString(), OS.camera.width - pixel(20), guiControl.trade.rowTop(3) - pixel(6) + pixel(), 4, (G.inventory.cargo[items[guiControl.trade.page]] > 0) ? "black" : "yellow", 4); + } else { + guiControl.drawPixelText("No Cargo!", guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel(5) + pixel(), 10, "black", 6); + } - // Draw Amount of Cargo - guiControl.drawIcon(1, 1, OS.camera.width - pixel(20), guiControl.trade.rowTop(4) - pixel(5)); - guiControl.drawPixelText(G.inventory.CheckCargo().length.toString(), OS.camera.width - pixel(20) + (guiControl.iconScaled + pixel()), guiControl.trade.rowTop(4) - pixel(4), 4, (G.inventory.CheckCargo().length > 0) ? "black" : "yellow", 6); + // Draw Amount of Cargo + guiControl.drawIcon(1, 1, OS.camera.width - pixel(20), guiControl.trade.rowTop(4) - pixel(5)); + guiControl.drawPixelText(G.inventory.CheckCargo().length.toString(), OS.camera.width - pixel(20) + (guiControl.iconScaled + pixel()), guiControl.trade.rowTop(4) - pixel(4), 4, (G.inventory.CheckCargo().length > 0) ? "black" : "yellow", 6); - // Yes/No Options - guiControl.drawPixelText("Hagl?", guiControl.trade.leftBorder, guiControl.trade.rowTop(2) - pixel(2), 8, (guiControl.trade.island.timesHaggledToday >= G.stats.popularity) ? "yellow" : ((items.length > 0 && guiControl.trade.island.haggleAmount == 0) ? "black" : "white"), 6); - guiControl.drawPixelText((guiControl.trade.island.CanSellTo(items[guiControl.trade.page], itemPrice)) ? "Yes" : "Over!", guiControl.trade.leftBorder, guiControl.trade.rowTop(3) - pixel(2), 8, (items.length > 0 && G.inventory.CanSell(items[guiControl.trade.page])) ? ((guiControl.trade.island.CanSellTo(items[guiControl.trade.page], itemPrice)) ? "black" : "yellow") : "white", 6); + // Yes/No Options + guiControl.drawPixelText("Hagl?", guiControl.trade.leftBorder, guiControl.trade.rowTop(2) - pixel(2), 8, (guiControl.trade.island.timesHaggledToday >= G.stats.popularity) ? "yellow" : ((items.length > 0 && guiControl.trade.island.haggleAmount == 0) ? "black" : "white"), 6); + guiControl.drawPixelText((guiControl.trade.island.CanSellTo(items[guiControl.trade.page], itemPrice)) ? "Yes" : "Over!", guiControl.trade.leftBorder, guiControl.trade.rowTop(3) - pixel(2), 8, (items.length > 0 && G.inventory.CanSell(items[guiControl.trade.page])) ? ((guiControl.trade.island.CanSellTo(items[guiControl.trade.page], itemPrice)) ? "black" : "yellow") : "white", 6); - // Back Text - guiControl.drawPixelText("Back", guiControl.trade.leftBorder, guiControl.trade.rowTop(4) - pixel(2), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.trade.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(guiControl.trade.cursorPosition + 2) - pixel(3)); + // Back Text + guiControl.drawPixelText("Back", guiControl.trade.leftBorder, guiControl.trade.rowTop(4) - pixel(2), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.trade.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(guiControl.trade.cursorPosition + 2) - pixel(3)); - // Button Action - if (guiControl.trade.activateDelay <= 0) { - if (ct_confirm().down) { - switch (guiControl.trade.cursorPosition) { - case 0: // Haggle - if (items.length > 0 && (guiControl.trade.island.timesHaggledToday <= G.stats.popularity) && - guiControl.trade.island.haggleAmount == 0 && Math.floor(Math.randomRange(0, 100)) < G.stats.popularity) // If you haven't haggled yet and get a random number less than your popularity, haggle successfully. - { - snd_sell.Play(); - guiControl.trade.island.haggleAmount = G.stats.haggling; - } else { - snd_cannotbuy.Play(); - guiControl.trade.island.timesHaggledToday++; - } + // Button Action + if (guiControl.trade.activateDelay <= 0) { + if (ct_confirm().down) { + switch (guiControl.trade.cursorPosition) { + case 0: { // Haggle + if (items.length > 0 && (guiControl.trade.island.timesHaggledToday <= G.stats.popularity) && + guiControl.trade.island.haggleAmount == 0 && Math.floor(Math.randomRange(0, 100)) < G.stats.popularity) // If you haven't haggled yet and get a random number less than your popularity, haggle successfully. + { + snd_sell.Play(); + guiControl.trade.island.haggleAmount = G.stats.haggling; + } else { + snd_cannotbuy.Play(); + guiControl.trade.island.timesHaggledToday++; + } break; - case 1: // Sell - if (items.length > 0 && - G.inventory.CanSell(items[guiControl.trade.page]) && - guiControl.trade.island.CanSellTo(items[guiControl.trade.page], itemPrice)) //If cursor is over yes and you can buy, buy it. - { - snd_sell.Play(); - guiControl.trade.island.SellTo(items[guiControl.trade.page], itemPrice); - } else { - snd_cannotbuy.Play(); - } + } + case 1: { // Sell + if (items.length > 0 && + G.inventory.CanSell(items[guiControl.trade.page]) && + guiControl.trade.island.CanSellTo(items[guiControl.trade.page], itemPrice)) //If cursor is over yes and you can buy, buy it. + { + snd_sell.Play(); + guiControl.trade.island.SellTo(items[guiControl.trade.page], itemPrice); + } else { + snd_cannotbuy.Play(); + } break; - default: - snd_cursorup.Play(); - guiControl.trade.screen = "main"; - guiControl.trade.activateDelay = 5; - guiControl.trade.cursorPosition = 1; // The position where "Sell" is on main screen. + } + default: { + snd_cursorup.Play(); + guiControl.trade.screen = "main"; + guiControl.trade.activateDelay = 5; + guiControl.trade.cursorPosition = 1; // The position where "Sell" is on main screen. break; - } - // console.log(guiControl.trade.screen); - } - if (ct_cancel().down) { - snd_cursorup.Play(); - guiControl.trade.screen = "main"; - guiControl.trade.activateDelay = 5; - guiControl.trade.cursorPosition = 1; // The position where "Sell" is on main screen. - // console.log(guiControl.trade.screen); - } - } - } - else if (guiControl.trade.screen == "tavern") { - // Limit Cursor - if (guiControl.trade.cursorPosition < 0) { - guiControl.trade.cursorPosition = 2; - } - if (guiControl.trade.cursorPosition > 2) { - guiControl.trade.cursorPosition = 0; - } + } + } + // console.log(guiControl.trade.screen); + } + if (ct_cancel().down) { + snd_cursorup.Play(); + guiControl.trade.screen = "main"; + guiControl.trade.activateDelay = 5; + guiControl.trade.cursorPosition = 1; // The position where "Sell" is on main screen. + // console.log(guiControl.trade.screen); + } + } + } + else if (guiControl.trade.screen == "tavern") { + // Limit Cursor + if (guiControl.trade.cursorPosition < 0) { + guiControl.trade.cursorPosition = 2; + } + if (guiControl.trade.cursorPosition > 2) { + guiControl.trade.cursorPosition = 0; + } - // Title - guiControl.drawPixelText("Tavern", guiControl.leftBorder - pixel(6), guiControl.topOfBackground, 8, "black", 6); + // Title + guiControl.drawPixelText("Tavern", guiControl.leftBorder - pixel(6), guiControl.topOfBackground, 8, "black", 6); - var innPrice = G.economy.innCost + guiControl.trade.island.innPriceDifference; - guiControl.drawPixelText("Heal costs " + innPrice.toString() + " C", guiControl.leftBorder - pixel(5), guiControl.trade.rowTop(0) - pixel(), 10, "black", 4); + var innPrice = G.economy.innCost + guiControl.trade.island.innPriceDifference; + guiControl.drawPixelText("Heal costs " + innPrice.toString() + " C", guiControl.leftBorder - pixel(5), guiControl.trade.rowTop(0) - pixel(), 10, "black", 4); - // Money icon - guiControl.drawIcon(7, 2, guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel()); - guiControl.drawPixelText(G.inventory.moneyDisplay(), guiControl.trade.padding + pixel(guiControl.iconSize + 2), guiControl.trade.rowTop(1) + pixel(), 10, "black", 4); - - // Options - guiControl.drawPixelText("Gossip", guiControl.leftBorder, guiControl.trade.rowTop(2) - pixel(), 0, "black", 6); - guiControl.drawPixelText("Heal", guiControl.leftBorder, guiControl.trade.rowTop(3) - pixel(), 4, (G.inventory.money > innPrice && G.stats.illness > 0) ? "black" : "white", 6); - // Illness icon - guiControl.drawIcon(4, 1, guiControl.leftBorder + pixel(30), guiControl.trade.rowTop(3) - pixel(2)); - guiControl.drawPixelText(G.stats.illness.toString(), guiControl.leftBorder + pixel(30) + pixel(guiControl.iconSize + 2), guiControl.trade.rowTop(3), 2, (G.stats.illness == 0) ? "yellow" : "black", 4); - - // Back Text - guiControl.drawPixelText("Back", guiControl.leftBorder, guiControl.trade.rowTop(4) - pixel(), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(guiControl.trade.cursorPosition + 2) - pixel(2)); + // Money icon + guiControl.drawIcon(7, 2, guiControl.trade.padding, guiControl.trade.rowTop(1) - pixel()); + guiControl.drawPixelText(G.inventory.moneyDisplay(), guiControl.trade.padding + pixel(guiControl.iconSize + 2), guiControl.trade.rowTop(1) + pixel(), 10, "black", 4); + + // Options + guiControl.drawPixelText("Gossip", guiControl.leftBorder, guiControl.trade.rowTop(2) - pixel(), 0, "black", 6); + guiControl.drawPixelText("Heal", guiControl.leftBorder, guiControl.trade.rowTop(3) - pixel(), 4, (G.inventory.money > innPrice && G.stats.illness > 0) ? "black" : "white", 6); + // Illness icon + guiControl.drawIcon(4, 1, guiControl.leftBorder + pixel(30), guiControl.trade.rowTop(3) - pixel(2)); + guiControl.drawPixelText(G.stats.illness.toString(), guiControl.leftBorder + pixel(30) + pixel(guiControl.iconSize + 2), guiControl.trade.rowTop(3), 2, (G.stats.illness == 0) ? "yellow" : "black", 4); + + // Back Text + guiControl.drawPixelText("Back", guiControl.leftBorder, guiControl.trade.rowTop(4) - pixel(), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(guiControl.trade.cursorPosition + 2) - pixel(2)); - // Button Action - if (guiControl.trade.activateDelay <= 0) { - if (ct_confirm().down) { - switch (guiControl.trade.cursorPosition) { - case 0: - snd_select.Play(); - guiControl.trade.screen = "gossip"; - guiControl.trade.activateDelay = 5; - guiControl.trade.cursorPosition = 2; // The position where "Supplies" is on main screen. + // Button Action + if (guiControl.trade.activateDelay <= 0) { + if (ct_confirm().down) { + switch (guiControl.trade.cursorPosition) { + case 0: { + snd_select.Play(); + guiControl.trade.screen = "gossip"; + guiControl.trade.activateDelay = 5; + guiControl.trade.cursorPosition = 2; // The position where "Supplies" is on main screen. break; - case 1: - if (G.stats.illness > 0 && G.inventory.money > innPrice) { //If cursor is over yes, heal illness with supplies. - snd_heal.Play(); - guiControl.trade.island.StayAtInn(); - } else { - snd_cannotbuy.Play(); - } + } + case 1: { + if (G.stats.illness > 0 && G.inventory.money > innPrice) { //If cursor is over yes, heal illness with supplies. + snd_heal.Play(); + guiControl.trade.island.StayAtInn(); + } else { + snd_cannotbuy.Play(); + } break; - default: - snd_cursorup.Play(); - guiControl.trade.screen = "main"; - guiControl.trade.activateDelay = 5; - guiControl.trade.cursorPosition = 2; // The position where "Supplies" is on main screen. + } + default: { + snd_cursorup.Play(); + guiControl.trade.screen = "main"; + guiControl.trade.activateDelay = 5; + guiControl.trade.cursorPosition = 2; // The position where "Supplies" is on main screen. break; - } + } + } - // Give a cooldown so you don't accidentally do something you don't want. - guiControl.trade.activateDelay = 5; - } + // Give a cooldown so you don't accidentally do something you don't want. + guiControl.trade.activateDelay = 5; + } - if (ct_cancel().down) { - snd_cursorup.Play(); - guiControl.trade.screen = "main"; - guiControl.trade.activateDelay = 5; - guiControl.trade.cursorPosition = 2; // The position where "Supplies" is on main screen. - } - } - } - else if (guiControl.trade.screen == "gossip") { - // console.log(guiControl.trade.screen); - // Limit Cursor - if (guiControl.trade.cursorPosition < 0) { - guiControl.trade.cursorPosition = 0; - } - if (guiControl.trade.cursorPosition > 0) { - guiControl.trade.cursorPosition = 0; - } + if (ct_cancel().down) { + snd_cursorup.Play(); + guiControl.trade.screen = "main"; + guiControl.trade.activateDelay = 5; + guiControl.trade.cursorPosition = 2; // The position where "Supplies" is on main screen. + } + } + } + else if (guiControl.trade.screen == "gossip") { + // console.log(guiControl.trade.screen); + // Limit Cursor + if (guiControl.trade.cursorPosition < 0) { + guiControl.trade.cursorPosition = 0; + } + if (guiControl.trade.cursorPosition > 0) { + guiControl.trade.cursorPosition = 0; + } - // Title - guiControl.drawPixelText("Gossip", guiControl.trade.padding, guiControl.topOfBackground, 10, "black", 6); + // Title + guiControl.drawPixelText("Gossip", guiControl.trade.padding, guiControl.topOfBackground, 10, "black", 6); - guiControl.drawPixelText("Use the map with M to find new islands to trade with!", guiControl.trade.padding, guiControl.trade.rowTop(0) - pixel(2), 0, "black", 4); - - // Back Text - guiControl.drawPixelText("Back", guiControl.trade.leftBorder, guiControl.trade.rowTop(4) - pixel(2), 8, "black", 6); - - // Draw cursor - guiControl.drawCursor(guiControl.trade.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(4) - pixel(3)); + guiControl.drawPixelText("Use the map with M to find new islands to trade with!", guiControl.trade.padding, guiControl.trade.rowTop(0) - pixel(2), 0, "black", 4); + + // Back Text + guiControl.drawPixelText("Back", guiControl.trade.leftBorder, guiControl.trade.rowTop(4) - pixel(2), 8, "black", 6); + + // Draw cursor + guiControl.drawCursor(guiControl.trade.leftBorder - (guiControl.iconScaled), guiControl.trade.rowTop(4) - pixel(3)); - // Button Action - if (guiControl.trade.activateDelay <= 0) { - if (ct_confirm().down || ct_cancel().down) { - snd_cursorup.Play(); - guiControl.trade.screen = "tavern"; - guiControl.trade.activateDelay = 5; - guiControl.trade.cursorPosition = 0; - } - } - } - } + // Button Action + if (guiControl.trade.activateDelay <= 0) { + if (ct_confirm().down || ct_cancel().down) { + snd_cursorup.Play(); + guiControl.trade.screen = "tavern"; + guiControl.trade.activateDelay = 5; + guiControl.trade.cursorPosition = 0; + } + } + } + } } diff --git a/index.html b/index.html index f469b79..3872d0c 100644 --- a/index.html +++ b/index.html @@ -15,38 +15,41 @@ -
-
-

Trade Winds

-

An exploration and trade game built with OversimplifiedJS

+
+
+

Trade Winds

+

An exploration and trade game built with OversimplifiedJS

- + -

This project is maintained by Alamantus GameDev

+

This project is maintained by Alamantus GameDev

-
-
-

Play

-

You may need to refresh the page if all of the assets do not load.

- - Your browser is really old, dude - no canvas support! Update this thing! - -
-
- -
-

-About

+
+
+

Play

+

You may need to refresh the page if all of the assets do not load.

+ + Your browser is really old, dude - no canvas support! Update this thing! + +
+
+ +
+

+ + About +

This page contains the in-dev version of the game, and the most recent stable version will be on Itch.io.

-Controls

+Controls + In-Game Controls
    @@ -100,12 +103,11 @@

    The game saves at the start of each day. If you stop in the middle of the day, you will lose your progress for that day.

    There's no end game yet, but you can sail around and trade as long as you want. Try to make as much money as you can!

    -
- -
- - - + + + + + \ No newline at end of file diff --git a/javascripts/scale.fix.js b/javascripts/scale.fix.js index 08716c0..b7b85e7 100644 --- a/javascripts/scale.fix.js +++ b/javascripts/scale.fix.js @@ -1,20 +1,19 @@ fixScale = function(doc) { - var addEvent = 'addEventListener', - type = 'gesturestart', - qsa = 'querySelectorAll', - scales = [1, 1], - meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : []; + var addEvent = 'addEventListener', + type = 'gesturestart', + qsa = 'querySelectorAll', + scales = [1, 1], + meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : []; - function fix() { - meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1]; - doc.removeEventListener(type, fix, true); - } - - if ((meta = meta[meta.length - 1]) && addEvent in doc) { - fix(); - scales = [.25, 1.6]; - doc[addEvent](type, fix, true); - } + function fix() { + meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1]; + doc.removeEventListener(type, fix, true); + } + if ((meta = meta[meta.length - 1]) && addEvent in doc) { + fix(); + scales = [.25, 1.6]; + doc[addEvent](type, fix, true); + } }; \ No newline at end of file diff --git a/loadAudio.js b/loadAudio.js index 3f9ec77..878b3e9 100644 --- a/loadAudio.js +++ b/loadAudio.js @@ -15,5 +15,5 @@ var snd_sell = new OS.E.AddSound("Sell", {wav: "audio/sounds/Sell.wav", mp3: "au var snd_wave = new OS.E.AddSound("Wave Crash", {wav: "audio/sounds/Wave_Crash.wav", mp3: "audio/sounds/Wave_Crash.mp3"}); function loadAudio() { - if (Oversimplified.DEBUG.showMessages) console.log("Ran loadAudio()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran loadAudio()"); } diff --git a/loadControls.js b/loadControls.js index 1fa809c..3c45824 100644 --- a/loadControls.js +++ b/loadControls.js @@ -15,53 +15,53 @@ var ct_m = OS.C.Add("M", OS.Keycode.m); var ct_esc = OS.C.Add("Cancel", OS.Keycode.escape); function loadControls () { - if (Oversimplified.DEBUG.showMessages) console.log("Ran loadControls()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran loadControls()"); } function ct_up () { - return { - held : ct_wasd_up.held || ct_arrow_up.held, - down : ct_wasd_up.down || ct_arrow_up.down, - up : ct_wasd_up.up || ct_arrow_up.up - } + return { + held : ct_wasd_up.held || ct_arrow_up.held, + down : ct_wasd_up.down || ct_arrow_up.down, + up : ct_wasd_up.up || ct_arrow_up.up, + } } function ct_left () { - return { - held : ct_wasd_left.held || ct_arrow_left.held, - down : ct_wasd_left.down || ct_arrow_left.down, - up : ct_wasd_left.up || ct_arrow_left.up - } + return { + held : ct_wasd_left.held || ct_arrow_left.held, + down : ct_wasd_left.down || ct_arrow_left.down, + up : ct_wasd_left.up || ct_arrow_left.up, + } } function ct_down () { - return { - held : ct_wasd_down.held || ct_arrow_down.held, - down : ct_wasd_down.down || ct_arrow_down.down, - up : ct_wasd_down.up || ct_arrow_down.up - } + return { + held : ct_wasd_down.held || ct_arrow_down.held, + down : ct_wasd_down.down || ct_arrow_down.down, + up : ct_wasd_down.up || ct_arrow_down.up, + } } function ct_right () { - return { - held : ct_wasd_right.held || ct_arrow_right.held, - down : ct_wasd_right.down || ct_arrow_right.down, - up : ct_wasd_right.up || ct_arrow_right.up - } + return { + held : ct_wasd_right.held || ct_arrow_right.held, + down : ct_wasd_right.down || ct_arrow_right.down, + up : ct_wasd_right.up || ct_arrow_right.up, + } } function ct_confirm () { - return { - held : ct_space.held || ct_z.held, - down : ct_space.down || ct_z.down, - up : ct_space.up || ct_z.up - } + return { + held : ct_space.held || ct_z.held, + down : ct_space.down || ct_z.down, + up : ct_space.up || ct_z.up, + } } function ct_cancel () { - return { - held : ct_shift.held || ct_x.held, - down : ct_shift.down || ct_x.down, - up : ct_shift.up || ct_x.up - } + return { + held : ct_shift.held || ct_x.held, + down : ct_shift.down || ct_x.down, + up : ct_shift.up || ct_x.up, + } } diff --git a/loadGUIs.js b/loadGUIs.js index 8312339..545e3bd 100644 --- a/loadGUIs.js +++ b/loadGUIs.js @@ -1,79 +1,79 @@ function loadGUIs() { - OS.AddScript("gui/titleScreen.js"); - OS.AddScript("gui/inventoryGUI.js"); - OS.AddScript("gui/mapGUI.js"); - OS.AddScript("gui/tradeGUI.js"); + OS.AddScript("gui/titleScreen.js"); + OS.AddScript("gui/inventoryGUI.js"); + OS.AddScript("gui/mapGUI.js"); + OS.AddScript("gui/tradeGUI.js"); - if (Oversimplified.DEBUG.showMessages) console.log("Ran loadGUIs()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran loadGUIs()"); } var guiControl = { - topOfBackground: pixel(2 + 2), - upperBorder: pixel(13 + 2), - lowerBorder: pixel(3 + 2), - leftBorder: pixel(10 + 2), - rightBorder: pixel(5 + 2), - iconSize: 8, - iconScaled: pixel(8), + topOfBackground: pixel(2 + 2), + upperBorder: pixel(13 + 2), + lowerBorder: pixel(3 + 2), + leftBorder: pixel(10 + 2), + rightBorder: pixel(5 + 2), + iconSize: 8, + iconScaled: pixel(8), - drawEnergyBar: function () { - var percentage = G.stats.energy / G.stats.maxEnergy; - var barHeight = pixel(2); - var maxBarWidth = 32; - var barWidth = pixel(Math.round(maxBarWidth * percentage)); + drawEnergyBar: function () { + var percentage = G.stats.energy / G.stats.maxEnergy; + var barHeight = pixel(2); + var maxBarWidth = 32; + var barWidth = pixel(Math.round(maxBarWidth * percentage)); - var saveFillStyle = OS.context.fillStyle; - OS.context.fillStyle = "#0055FF"; - OS.context.fillRect(64, OS.camera.height - barHeight - pixel(4), barWidth, barHeight); - OS.context.fillStyle = saveFillStyle; - }, - drawClock: function () { - var screenX = OS.camera.width - pixel(9) - pixel(2); - var screenY = OS.camera.height - pixel(9) - pixel(2); - var percentOfClock = guiControl.clockTimerCount / guiControl.clockTimerCutoff; - var clockFrameX = guiControl.gui_sheet.clock.x + (Math.floor(pixel(4) * percentOfClock) * pixel(9)); - OS.context.drawImage(guiControl.gui_sheet, clockFrameX, guiControl.gui_sheet.clock.y, pixel(9), pixel(9), screenX, screenY, pixel(9), pixel(9)); - }, - drawSpeedGauge: function () { - var screenX = pixel(4); - var screenY = OS.camera.height - guiControl.iconScaled - pixel(4); - var sheetX = guiControl.gui_sheet.gauge.x + (G.player.currentSpeed * guiControl.iconScaled); - var sheetY = guiControl.gui_sheet.gauge.y; - OS.context.drawImage(guiControl.gui_sheet, sheetX, sheetY, guiControl.iconScaled, guiControl.iconScaled, screenX, screenY, guiControl.iconScaled, guiControl.iconScaled); - }, + var saveFillStyle = OS.context.fillStyle; + OS.context.fillStyle = "#0055FF"; + OS.context.fillRect(64, OS.camera.height - barHeight - pixel(4), barWidth, barHeight); + OS.context.fillStyle = saveFillStyle; + }, + drawClock: function () { + var screenX = OS.camera.width - pixel(9) - pixel(2); + var screenY = OS.camera.height - pixel(9) - pixel(2); + var percentOfClock = guiControl.clockTimerCount / guiControl.clockTimerCutoff; + var clockFrameX = guiControl.gui_sheet.clock.x + (Math.floor(pixel(4) * percentOfClock) * pixel(9)); + OS.context.drawImage(guiControl.gui_sheet, clockFrameX, guiControl.gui_sheet.clock.y, pixel(9), pixel(9), screenX, screenY, pixel(9), pixel(9)); + }, + drawSpeedGauge: function () { + var screenX = pixel(4); + var screenY = OS.camera.height - guiControl.iconScaled - pixel(4); + var sheetX = guiControl.gui_sheet.gauge.x + (G.player.currentSpeed * guiControl.iconScaled); + var sheetY = guiControl.gui_sheet.gauge.y; + OS.context.drawImage(guiControl.gui_sheet, sheetX, sheetY, guiControl.iconScaled, guiControl.iconScaled, screenX, screenY, guiControl.iconScaled, guiControl.iconScaled); + }, - iconPosition: function (cellPosition) { - return (guiControl.iconScaled * cellPosition); - }, - rowTop: function (rowNumber) { - return guiControl.upperBorder + pixel((guiControl.iconSize + 2) * rowNumber); - }, + iconPosition: function (cellPosition) { + return (guiControl.iconScaled * cellPosition); + }, + rowTop: function (rowNumber) { + return guiControl.upperBorder + pixel((guiControl.iconSize + 2) * rowNumber); + }, - drawIcon: function (cellX, cellY, xPosition, yPosition) { - var iconSheetX = guiControl.gui_sheet.icons.x + guiControl.iconPosition(cellX); - var iconSheetY = guiControl.gui_sheet.icons.y + guiControl.iconPosition(cellY); - OS.context.drawImage(guiControl.gui_sheet, iconSheetX, iconSheetY, guiControl.iconScaled, guiControl.iconScaled, xPosition, yPosition, guiControl.iconScaled, guiControl.iconScaled); - }, - drawItem: function (itemId, xPosition, yPosition) { - var cellX = itemId % 4; - var cellY = Math.floor(itemId / 4); - var itemSheetX = guiControl.gui_sheet.items.x + guiControl.iconPosition(cellX); - var itemSheetY = guiControl.gui_sheet.items.y + guiControl.iconPosition(cellY); - OS.context.drawImage(guiControl.gui_sheet, itemSheetX, itemSheetY, guiControl.iconScaled, guiControl.iconScaled, xPosition, yPosition, guiControl.iconScaled, guiControl.iconScaled); - }, - drawTitleImage: function () { - OS.context.drawImage(guiControl.gui_sheet, guiControl.gui_sheet.titleImage.x, guiControl.gui_sheet.titleImage.y, guiControl.gui_sheet.titleImage.width, guiControl.gui_sheet.titleImage.height, 0, 0, guiControl.gui_sheet.titleImage.width, guiControl.gui_sheet.titleImage.height); - }, - drawGUIBackground: function () { - OS.context.drawImage(guiControl.gui_sheet, guiControl.gui_sheet.guiBackground.x, guiControl.gui_sheet.guiBackground.y, guiControl.gui_sheet.guiBackground.width, guiControl.gui_sheet.guiBackground.height, pixel(2), pixel(2), guiControl.gui_sheet.guiBackground.width, guiControl.gui_sheet.guiBackground.height); - }, - drawCursor: function (xPosition, yPosition) { - OS.context.drawImage(guiControl.gui_sheet, guiControl.gui_sheet.guiCursor.x, guiControl.gui_sheet.guiCursor.y, guiControl.iconScaled, guiControl.iconScaled, xPosition, yPosition, guiControl.iconScaled, guiControl.iconScaled); - }, - drawPageArrow: function (direction, xPosition, yPosition) { - var arrowSheetX = guiControl.gui_sheet.arrows.x + ((direction == "left") ? 0 : pixel(4)); - OS.context.drawImage(guiControl.gui_sheet, arrowSheetX, guiControl.gui_sheet.arrows.y, pixel(4), pixel(7), xPosition, yPosition, pixel(4), pixel(7)); - } + drawIcon: function (cellX, cellY, xPosition, yPosition) { + var iconSheetX = guiControl.gui_sheet.icons.x + guiControl.iconPosition(cellX); + var iconSheetY = guiControl.gui_sheet.icons.y + guiControl.iconPosition(cellY); + OS.context.drawImage(guiControl.gui_sheet, iconSheetX, iconSheetY, guiControl.iconScaled, guiControl.iconScaled, xPosition, yPosition, guiControl.iconScaled, guiControl.iconScaled); + }, + drawItem: function (itemId, xPosition, yPosition) { + var cellX = itemId % 4; + var cellY = Math.floor(itemId / 4); + var itemSheetX = guiControl.gui_sheet.items.x + guiControl.iconPosition(cellX); + var itemSheetY = guiControl.gui_sheet.items.y + guiControl.iconPosition(cellY); + OS.context.drawImage(guiControl.gui_sheet, itemSheetX, itemSheetY, guiControl.iconScaled, guiControl.iconScaled, xPosition, yPosition, guiControl.iconScaled, guiControl.iconScaled); + }, + drawTitleImage: function () { + OS.context.drawImage(guiControl.gui_sheet, guiControl.gui_sheet.titleImage.x, guiControl.gui_sheet.titleImage.y, guiControl.gui_sheet.titleImage.width, guiControl.gui_sheet.titleImage.height, 0, 0, guiControl.gui_sheet.titleImage.width, guiControl.gui_sheet.titleImage.height); + }, + drawGUIBackground: function () { + OS.context.drawImage(guiControl.gui_sheet, guiControl.gui_sheet.guiBackground.x, guiControl.gui_sheet.guiBackground.y, guiControl.gui_sheet.guiBackground.width, guiControl.gui_sheet.guiBackground.height, pixel(2), pixel(2), guiControl.gui_sheet.guiBackground.width, guiControl.gui_sheet.guiBackground.height); + }, + drawCursor: function (xPosition, yPosition) { + OS.context.drawImage(guiControl.gui_sheet, guiControl.gui_sheet.guiCursor.x, guiControl.gui_sheet.guiCursor.y, guiControl.iconScaled, guiControl.iconScaled, xPosition, yPosition, guiControl.iconScaled, guiControl.iconScaled); + }, + drawPageArrow: function (direction, xPosition, yPosition) { + var arrowSheetX = guiControl.gui_sheet.arrows.x + ((direction == "left") ? 0 : pixel(4)); + OS.context.drawImage(guiControl.gui_sheet, arrowSheetX, guiControl.gui_sheet.arrows.y, pixel(4), pixel(7), xPosition, yPosition, pixel(4), pixel(7)); + } } guiControl.gui_sheet = new Image(); guiControl.gui_sheet.src = "images/gui_sheet.png"; @@ -100,247 +100,289 @@ guiControl.drawPixelText = function (text, x, y, wrapWidth, color, size) { // Remember to set the pixel scale for x and y when you call the function! // 4x4 font modified from http://pixeljoint.com/forum/forum_posts.asp?TID=18755&PID=185995#185995 // 5x6 font modified from http://atariage.com/forums/topic/165697-fonts/page-4#entry2081600 - text = text.toString().toUpperCase(); - - var letterSizeX = pixel((size == 6) ? size - 1 : size); - var letterSizeY = pixel(size); - var maxWrapWidth = Math.floor(OS.camera.width / (letterSizeX + pixel(1))); - - wrapWidth = (wrapWidth <= 0 || wrapWidth > maxWrapWidth) ? maxWrapWidth : wrapWidth; - - // var alphabet = guiControl.alphabet_sheet[color + size.toString()]; + text = text.toString().toUpperCase(); + + var letterSizeX = pixel((size == 6) ? size - 1 : size); + var letterSizeY = pixel(size); + var maxWrapWidth = Math.floor(OS.camera.width / (letterSizeX + pixel(1))); + + wrapWidth = (wrapWidth <= 0 || wrapWidth > maxWrapWidth) ? maxWrapWidth : wrapWidth; + + // var alphabet = guiControl.alphabet_sheet[color + size.toString()]; - // Make words wrap nicely, but let punctuation wrap. - var wordsInText = text.split(" "); - if (wordsInText.length > 1) { - var indexToBreak = 0; - var replacementText = ""; - var punctuation = [".", ",", "-", "?", "!"]; - for (var w = 0; w < wordsInText.length; w++) { - // console.log("\"" + wordsInText[w].charAt(wordsInText[w].length - 1) + "\""); - - if (punctuation.indexOf(wordsInText[w]) == -1 && punctuation.indexOf(wordsInText[w].charAt(wordsInText[w].length - 1)) != -1) { - // If the last character of a word is punctuation, separate it out - wordsInText.splice(w + 1, 0, wordsInText[w].charAt(wordsInText[w].length - 1)); - // console.log("punctuation:" + wordsInText[w].charAt(wordsInText[w].length - 1)); - wordsInText[w] = wordsInText[w].substr(0, wordsInText[w].length - 1); - // console.log("Turns to:" + wordsInText[w]); - w--; - } else if (replacementText.substr(indexToBreak).length + wordsInText[w].length + 1 <= wrapWidth) { - // console.log("Adding: \"" + wordsInText[w] + " \" to \"" + replacementText.substr(indexToBreak) + "\""); - // console.log(replacementText.substr(indexToBreak).length + wordsInText[w].length + " < " + wrapWidth); - // console.log("\"" + replacementText.substr(indexToBreak) + "\""); - replacementText += wordsInText[w]; + // Make words wrap nicely, but let punctuation wrap. + var wordsInText = text.split(" "); + if (wordsInText.length > 1) { + var indexToBreak = 0; + var replacementText = ""; + var punctuation = [".", ",", "-", "?", "!"]; + for (var w = 0; w < wordsInText.length; w++) { + // console.log("\"" + wordsInText[w].charAt(wordsInText[w].length - 1) + "\""); + + if (punctuation.indexOf(wordsInText[w]) == -1 && punctuation.indexOf(wordsInText[w].charAt(wordsInText[w].length - 1)) != -1) { + // If the last character of a word is punctuation, separate it out + wordsInText.splice(w + 1, 0, wordsInText[w].charAt(wordsInText[w].length - 1)); + // console.log("punctuation:" + wordsInText[w].charAt(wordsInText[w].length - 1)); + wordsInText[w] = wordsInText[w].substr(0, wordsInText[w].length - 1); + // console.log("Turns to:" + wordsInText[w]); + w--; + } else if (replacementText.substr(indexToBreak).length + wordsInText[w].length + 1 <= wrapWidth) { + // console.log("Adding: \"" + wordsInText[w] + " \" to \"" + replacementText.substr(indexToBreak) + "\""); + // console.log(replacementText.substr(indexToBreak).length + wordsInText[w].length + " < " + wrapWidth); + // console.log("\"" + replacementText.substr(indexToBreak) + "\""); + replacementText += wordsInText[w]; - if (punctuation.indexOf(wordsInText[w + 1]) == -1) { // If the next word in the array is not punctuation, - replacementText += " "; // Then add a space after. - } - // console.log("Turns to: \"" + replacementText.substr(indexToBreak) + "\""); - } else if (replacementText.substr(indexToBreak).length + wordsInText[w].length <= wrapWidth) { - // console.log("Adding: \"" + wordsInText[w] + "\" to \"" + replacementText.substr(indexToBreak) + "\""); - // console.log(replacementText.substr(indexToBreak).length + wordsInText[w].length + " < " + wrapWidth); - // console.log("\"" + replacementText.substr(indexToBreak) + "\""); - replacementText += wordsInText[w]; - // console.log("Turns to: \"" + replacementText.substr(indexToBreak) + "\""); - indexToBreak = replacementText.length; - } else { - // console.log("Checking: \"" + replacementText.substr(indexToBreak) + wordsInText[w] + "\""); - // console.log(replacementText.substr(indexToBreak).length + wordsInText[w].length + " > " + wrapWidth); - // console.log("\"" + replacementText.substr(indexToBreak) + "\""); - // indexToBreak = replacementText.length - 1; - var numberOfSpaces = wrapWidth - replacementText.substr(indexToBreak).length; - for (var s = 0; s < numberOfSpaces; s++) { - replacementText += " "; - } - // console.log("Turns to: \"" + replacementText.substr(indexToBreak) + "\""); - indexToBreak = replacementText.length; - w--; - // replacementText += wordsInText[w]; + if (punctuation.indexOf(wordsInText[w + 1]) == -1) { // If the next word in the array is not punctuation, + replacementText += " "; // Then add a space after. + } + // console.log("Turns to: \"" + replacementText.substr(indexToBreak) + "\""); + } else if (replacementText.substr(indexToBreak).length + wordsInText[w].length <= wrapWidth) { + // console.log("Adding: \"" + wordsInText[w] + "\" to \"" + replacementText.substr(indexToBreak) + "\""); + // console.log(replacementText.substr(indexToBreak).length + wordsInText[w].length + " < " + wrapWidth); + // console.log("\"" + replacementText.substr(indexToBreak) + "\""); + replacementText += wordsInText[w]; + // console.log("Turns to: \"" + replacementText.substr(indexToBreak) + "\""); + indexToBreak = replacementText.length; + } else { + // console.log("Checking: \"" + replacementText.substr(indexToBreak) + wordsInText[w] + "\""); + // console.log(replacementText.substr(indexToBreak).length + wordsInText[w].length + " > " + wrapWidth); + // console.log("\"" + replacementText.substr(indexToBreak) + "\""); + // indexToBreak = replacementText.length - 1; + var numberOfSpaces = wrapWidth - replacementText.substr(indexToBreak).length; + for (var s = 0; s < numberOfSpaces; s++) { + replacementText += " "; + } + // console.log("Turns to: \"" + replacementText.substr(indexToBreak) + "\""); + indexToBreak = replacementText.length; + w--; + // replacementText += wordsInText[w]; + } + // console.log("----"); + } + text = replacementText; + } + + for (var i = 0; i < text.length; i++) { + var letterCellX, letterCellY; + switch (text.charAt(i)) { + case "A": { + letterCellX = 0; + letterCellY = 0; + break; } - // console.log("----"); - } - text = replacementText; - } + case "B": { + letterCellX = 1; + letterCellY = 0; + break; + } + case "C": { + letterCellX = 2; + letterCellY = 0; + break; + } + case "D": { + letterCellX = 3; + letterCellY = 0; + break; + } + case "E": { + letterCellX = 4; + letterCellY = 0; + break; + } + case "F": { + letterCellX = 5; + letterCellY = 0; + break; + } + case "G": { + letterCellX = 0; + letterCellY = 1; + break; + } + case "H": { + letterCellX = 1; + letterCellY = 1; + break; + } + case "I": { + letterCellX = 2; + letterCellY = 1; + break; + } + case "J": { + letterCellX = 3; + letterCellY = 1; + break; + } + case "K": { + letterCellX = 4; + letterCellY = 1; + break; + } + case "L": { + letterCellX = 5; + letterCellY = 1; + break; + } + case "M": { + letterCellX = 0; + letterCellY = 2; + break; + } + case "N": { + letterCellX = 1; + letterCellY = 2; + break; + } + case "O": { + letterCellX = 2; + letterCellY = 2; + break; + } + case "P": { + letterCellX = 3; + letterCellY = 2; + break; + } + case "Q": { + letterCellX = 4; + letterCellY = 2; + break; + } + case "R": { + letterCellX = 5; + letterCellY = 2; + break; + } + case "S": { + letterCellX = 0; + letterCellY = 3; + break; + } + case "T": { + letterCellX = 1; + letterCellY = 3; + break; + } + case "U": { + letterCellX = 2; + letterCellY = 3; + break; + } + case "V": { + letterCellX = 3; + letterCellY = 3; + break; + } + case "W": { + letterCellX = 4; + letterCellY = 3; + break; + } + case "X": { + letterCellX = 5; + letterCellY = 3; + break; + } + case "Y": { + letterCellX = 0; + letterCellY = 4; + break; + } + case "Z": { + letterCellX = 1; + letterCellY = 4; + break; + } + case "1": { + letterCellX = 2; + letterCellY = 4; + break; + } + case "2": { + letterCellX = 3; + letterCellY = 4; + break; + } + case "3": { + letterCellX = 4; + letterCellY = 4; + break; + } + case "4": { + letterCellX = 5; + letterCellY = 4; + break; + } + case "5": { + letterCellX = 0; + letterCellY = 5; + break; + } + case "6": { + letterCellX = 1; + letterCellY = 5; + break; + } + case "7": { + letterCellX = 2; + letterCellY = 5; + break; + } + case "8": { + letterCellX = 3; + letterCellY = 5; + break; + } + case "9": { + letterCellX = 4; + letterCellY = 5; + break; + } + case "0": { + letterCellX = 5; + letterCellY = 5; + break; + } + case ".": { + letterCellX = 0; + letterCellY = 6; + break; + } + case ",": { + letterCellX = 1; + letterCellY = 6; + break; + } + case "-": { + letterCellX = 2; + letterCellY = 6; + break; + } + case "?": { + letterCellX = 3; + letterCellY = 6; + break; + } + case "!": { + letterCellX = 4; + letterCellY = 6; + break; + } + default: {// Default to Space + letterCellX = 5; + letterCellY = 6; + break; + } + } - for (var i = 0; i < text.length; i++) { - var letterCellX, letterCellY; - switch (text.charAt(i)) { - case "A": - letterCellX = 0; - letterCellY = 0; - break; - case "B": - letterCellX = 1; - letterCellY = 0; - break; - case "C": - letterCellX = 2; - letterCellY = 0; - break; - case "D": - letterCellX = 3; - letterCellY = 0; - break; - case "E": - letterCellX = 4; - letterCellY = 0; - break; - case "F": - letterCellX = 5; - letterCellY = 0; - break; - case "G": - letterCellX = 0; - letterCellY = 1; - break; - case "H": - letterCellX = 1; - letterCellY = 1; - break; - case "I": - letterCellX = 2; - letterCellY = 1; - break; - case "J": - letterCellX = 3; - letterCellY = 1; - break; - case "K": - letterCellX = 4; - letterCellY = 1; - break; - case "L": - letterCellX = 5; - letterCellY = 1; - break; - case "M": - letterCellX = 0; - letterCellY = 2; - break; - case "N": - letterCellX = 1; - letterCellY = 2; - break; - case "O": - letterCellX = 2; - letterCellY = 2; - break; - case "P": - letterCellX = 3; - letterCellY = 2; - break; - case "Q": - letterCellX = 4; - letterCellY = 2; - break; - case "R": - letterCellX = 5; - letterCellY = 2; - break; - case "S": - letterCellX = 0; - letterCellY = 3; - break; - case "T": - letterCellX = 1; - letterCellY = 3; - break; - case "U": - letterCellX = 2; - letterCellY = 3; - break; - case "V": - letterCellX = 3; - letterCellY = 3; - break; - case "W": - letterCellX = 4; - letterCellY = 3; - break; - case "X": - letterCellX = 5; - letterCellY = 3; - break; - case "Y": - letterCellX = 0; - letterCellY = 4; - break; - case "Z": - letterCellX = 1; - letterCellY = 4; - break; - case "1": - letterCellX = 2; - letterCellY = 4; - break; - case "2": - letterCellX = 3; - letterCellY = 4; - break; - case "3": - letterCellX = 4; - letterCellY = 4; - break; - case "4": - letterCellX = 5; - letterCellY = 4; - break; - case "5": - letterCellX = 0; - letterCellY = 5; - break; - case "6": - letterCellX = 1; - letterCellY = 5; - break; - case "7": - letterCellX = 2; - letterCellY = 5; - break; - case "8": - letterCellX = 3; - letterCellY = 5; - break; - case "9": - letterCellX = 4; - letterCellY = 5; - break; - case "0": - letterCellX = 5; - letterCellY = 5; - break; - case ".": - letterCellX = 0; - letterCellY = 6; - break; - case ",": - letterCellX = 1; - letterCellY = 6; - break; - case "-": - letterCellX = 2; - letterCellY = 6; - break; - case "?": - letterCellX = 3; - letterCellY = 6; - break; - case "!": - letterCellX = 4; - letterCellY = 6; - break; - default: // Default to Space - letterCellX = 5; - letterCellY = 6; - break; - } - - var lineNumber = Math.floor(i/wrapWidth); - var horizontal = i - (wrapWidth * lineNumber); - var letterSheetX = guiControl.alphabet_sheet[color + size.toString()].x + (letterSizeX * letterCellX); - var letterSheetY = guiControl.alphabet_sheet[color + size.toString()].y + (letterSizeY * letterCellY); - var letterX = x + (letterSizeX * horizontal) + pixel(horizontal); //Places a space between characters horizontally - var letterY = y + (letterSizeY * lineNumber) + pixel(lineNumber); //Places a space between characters vertically - OS.context.drawImage(guiControl.alphabet_sheet, letterSheetX, letterSheetY, letterSizeX, letterSizeY, letterX, letterY, letterSizeX, letterSizeY); - } + var lineNumber = Math.floor(i/wrapWidth); + var horizontal = i - (wrapWidth * lineNumber); + var letterSheetX = guiControl.alphabet_sheet[color + size.toString()].x + (letterSizeX * letterCellX); + var letterSheetY = guiControl.alphabet_sheet[color + size.toString()].y + (letterSizeY * letterCellY); + var letterX = x + (letterSizeX * horizontal) + pixel(horizontal); //Places a space between characters horizontally + var letterY = y + (letterSizeY * lineNumber) + pixel(lineNumber); //Places a space between characters vertically + OS.context.drawImage(guiControl.alphabet_sheet, letterSheetX, letterSheetY, letterSizeX, letterSizeY, letterX, letterY, letterSizeX, letterSizeY); + } } diff --git a/loadGameManager.js b/loadGameManager.js index 97a0490..24d69cc 100644 --- a/loadGameManager.js +++ b/loadGameManager.js @@ -3,220 +3,220 @@ G = Game; G.gameStarted = false; G.savedGameExists = (OS.Load("TradeWindsSave")) ? true : false; -G.player = {}; // Just a reference until G.player is created at rm_Ocean's load time. -G.oceanParticle = {}; // One ocean particle will exist at any time and move around the boat. -G.map = []; // List of island objects, generated/loaded and saved at game start, loaded on room start. -G.currentScreen = ""; // For pause screen, stats screen, inventory screen +G.player = {}; // Just a reference until G.player is created at rm_Ocean's load time. +G.oceanParticle = {}; // One ocean particle will exist at any time and move around the boat. +G.map = []; // List of island objects, generated/loaded and saved at game start, loaded on room start. +G.currentScreen = ""; // For pause screen, stats screen, inventory screen G.inventory = { - money: 100, - supplies: 20, // How much stuff you have to maintain your crew's illness with. - cargo: [0, 0, 0, 0, // Keeps track of how much of each item you have. - 0, 0, 0, 0, // Requires a check to make sure you can't buy more different kinds than you can hold. - 0, 0, 0, 0, - 0, 0, 0, 0], - moneyDisplay: function () { - var moneyString = ""; - if (G.inventory.money >= 1000000) { - moneyString = G.inventory.money.toString().substr(0, 1); - if (parseInt(G.inventory.money.toString().substr(1, 1)) > 0) { - moneyString += "." + G.inventory.money.toString().substr(1, 1); - } - } - if (G.inventory.money >= 1000000000000) { - moneyString += "T"; - } else if (G.inventory.money >= 1000000000) { - moneyString += "B"; - } else if (G.inventory.money >= 1000000) { - moneyString += "M"; - } else { - moneyString = G.inventory.money.toString(); - } + money: 100, + supplies: 20, // How much stuff you have to maintain your crew's illness with. + cargo: [0, 0, 0, 0, // Keeps track of how much of each item you have. + 0, 0, 0, 0, // Requires a check to make sure you can't buy more different kinds than you can hold. + 0, 0, 0, 0, + 0, 0, 0, 0], + moneyDisplay: function () { + var moneyString = ""; + if (G.inventory.money >= 1000000) { + moneyString = G.inventory.money.toString().substr(0, 1); + if (parseInt(G.inventory.money.toString().substr(1, 1)) > 0) { + moneyString += "." + G.inventory.money.toString().substr(1, 1); + } + } + if (G.inventory.money >= 1000000000000) { + moneyString += "T"; + } else if (G.inventory.money >= 1000000000) { + moneyString += "B"; + } else if (G.inventory.money >= 1000000) { + moneyString += "M"; + } else { + moneyString = G.inventory.money.toString(); + } - return moneyString; - }, - CheckCargo: function () { // Returns an array of indices that have cargo - var indicesWithCargo = []; - for (var i = 0; i < G.inventory.cargo.length; i++) { - if (G.inventory.cargo[i] > 0) { - indicesWithCargo.push(i); - } - } - return indicesWithCargo; - }, - CargoTotal: function () { - var cargo = G.inventory.CheckCargo(); - var cargoTotal = 0; - for (var i = 0; i < cargo.length; i++) { - cargoTotal += G.inventory.cargo[cargo[i]]; - } - return cargoTotal; - }, - CanBuy: function (itemIndex, price) { - if (G.inventory.cargo[itemIndex] < G.stats.hold && G.inventory.money > price && - (G.inventory.cargo[itemIndex] > 0 || G.inventory.CheckCargo().length < G.stats.inventory)) - { - return true; - } else { - return false; - } - }, - CanSell: function (itemIndex) { - return G.inventory.cargo[itemIndex] > 0; - } + return moneyString; + }, + CheckCargo: function () { // Returns an array of indices that have cargo + var indicesWithCargo = []; + for (var i = 0; i < G.inventory.cargo.length; i++) { + if (G.inventory.cargo[i] > 0) { + indicesWithCargo.push(i); + } + } + return indicesWithCargo; + }, + CargoTotal: function () { + var cargo = G.inventory.CheckCargo(); + var cargoTotal = 0; + for (var i = 0; i < cargo.length; i++) { + cargoTotal += G.inventory.cargo[cargo[i]]; + } + return cargoTotal; + }, + CanBuy: function (itemIndex, price) { + if (G.inventory.cargo[itemIndex] < G.stats.hold && G.inventory.money > price && + (G.inventory.cargo[itemIndex] > 0 || G.inventory.CheckCargo().length < G.stats.inventory)) + { + return true; + } else { + return false; + } + }, + CanSell: function (itemIndex) { + return G.inventory.cargo[itemIndex] > 0; + } }; G.stats = { - inventory: 3, // Maximum number of different things the cargo can hold. - hold: 20, // Maximum number of each individual kind of thing in the inventory. - speed: 1, // How many pixels you move. - hull: 3, // Your HP, pretty much. How many times you can crash without exploding. - maxHull: 3, // How much your hull can refill to. - popularity: 5, // Haggle success rate in percentage. - haggling: 10, // How much you can increase the asking price by. - crew: 2, // How many crew members you have. Influences how fast your energy recovers. - energy: 25, // Drains rate determined by current speed. When drained, currentSpeed reduces until you have enough energy to continue. - maxEnergy: 50, // How much to refill your energy to. Can increase with upgrades. - illness: 0 // Your crew's overall health. When this is low, your ship slows down. + inventory: 3, // Maximum number of different things the cargo can hold. + hold: 20, // Maximum number of each individual kind of thing in the inventory. + speed: 1, // How many pixels you move. + hull: 3, // Your HP, pretty much. How many times you can crash without exploding. + maxHull: 3, // How much your hull can refill to. + popularity: 5, // Haggle success rate in percentage. + haggling: 10, // How much you can increase the asking price by. + crew: 2, // How many crew members you have. Influences how fast your energy recovers. + energy: 25, // Drains rate determined by current speed. When drained, currentSpeed reduces until you have enough energy to continue. + maxEnergy: 50, // How much to refill your energy to. Can increase with upgrades. + illness: 0, // Your crew's overall health. When this is low, your ship slows down. }; -G.economy = { // Aww yea, supply and demand. +G.economy = { // Aww yea, supply and demand. // Items are determined by their index, and their position on the sheet determines their index. // So the second item on the top row is index 1, and to get its value, you get `G.economy.cargoItemWorth[1]` - innCost: 50, - innStays: 0, - cargoItemWorth: [10, 20, 30, 30, //Can be adjusted based on sales. - 40, 20, 50, 80, - 65, 20, 20, 30, - 30, 60, 45, 70], - maxPriceChange: 10, - cargoSold: [0, 0, 0, 0, // The more you sell, the lower the price gets - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], - cargoBought: [0, 0, 0, 0, // The more you buy, the higher the price gets - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], - UpdateEconomy: function () { - // console.log(G.economy.cargoItemWorth); - for (var i = 0; i < G.economy.cargoItemWorth.length; i++) { - var totalPriceDifference = 0; - for (var m = 0; m < G.map.length; m++) { - // console.log("map: " + G.map[m].island); - totalPriceDifference += G.map[m].island.priceDifferences[i]; - // console.log(G.map[m].island.priceDifferences[i]); - } - G.economy.cargoItemWorth[i] += Math.round(totalPriceDifference / G.map.length); // Apply the average price difference for the item. - } - var totalInnCost = 0; - for (var m = 0; m < G.map.length; m++) { - totalInnCost += G.map[m].island.innPriceDifference; - } - G.economy.innCost += Math.round(totalInnCost / G.map.length); // Apply the average inn price. - // console.log(G.economy.cargoItemWorth); - } + innCost: 50, + innStays: 0, + cargoItemWorth: [10, 20, 30, 30, //Can be adjusted based on sales. + 40, 20, 50, 80, + 65, 20, 20, 30, + 30, 60, 45, 70], + maxPriceChange: 10, + cargoSold: [0, 0, 0, 0, // The more you sell, the lower the price gets + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], + cargoBought: [0, 0, 0, 0, // The more you buy, the higher the price gets + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], + UpdateEconomy: function () { + // console.log(G.economy.cargoItemWorth); + for (var i = 0; i < G.economy.cargoItemWorth.length; i++) { + var totalPriceDifference = 0; + for (var m = 0; m < G.map.length; m++) { + // console.log("map: " + G.map[m].island); + totalPriceDifference += G.map[m].island.priceDifferences[i]; + // console.log(G.map[m].island.priceDifferences[i]); + } + G.economy.cargoItemWorth[i] += Math.round(totalPriceDifference / G.map.length); // Apply the average price difference for the item. + } + var totalInnCost = 0; + for (var m = 0; m < G.map.length; m++) { + totalInnCost += G.map[m].island.innPriceDifference; + } + G.economy.innCost += Math.round(totalInnCost / G.map.length); // Apply the average inn price. + // console.log(G.economy.cargoItemWorth); + }, }; G.SaveGame = function () { - var saveObject = { - playerX: G.player.x, - playerY: G.player.y, - money: G.inventory.money, - supplies: G.inventory.supplies, - cargo: G.inventory.cargo.slice(), - stats: { - inventory: G.stats.inventory, - hold: G.stats.hold, - speed: G.stats.speed, - hull: G.stats.hull, - maxHull: G.stats.maxHull, - popularity: G.stats.popularity, - haggling: G.stats.haggling, - crew: G.stats.crew, - energy: G.stats.energy, - maxEnergy: G.stats.maxEnergy, - illness: G.stats.illness - }, - economy: { - innCost: G.economy.innCost, - innStays: G.economy.innStays, - itemWorth: G.economy.cargoItemWorth.slice(), - cargoSold: G.economy.cargoSold.slice(), - cargoBought: G.economy.cargoBought.slice() - }, - map: [] - }; - for (var i = 0; i < G.map.length; i++) { - saveObject.map.push({ - drawX: G.map[i].drawX, - drawY: G.map[i].drawY, - drawWidth: G.map[i].drawWidth, - drawHeight: G.map[i].drawHeight, - inventory: G.map[i].island.inventory.slice(), - innPriceDifference: G.map[i].island.innPriceDifference, - innStays: G.map[i].island.innStays, - priceDifferences: G.map[i].island.priceDifferences.slice(), - itemsSold: G.map[i].island.itemsSold.slice(), - itemsBought: G.map[i].island.itemsBought.slice() - }); - } + var saveObject = { + playerX: G.player.x, + playerY: G.player.y, + money: G.inventory.money, + supplies: G.inventory.supplies, + cargo: G.inventory.cargo.slice(), + stats: { + inventory: G.stats.inventory, + hold: G.stats.hold, + speed: G.stats.speed, + hull: G.stats.hull, + maxHull: G.stats.maxHull, + popularity: G.stats.popularity, + haggling: G.stats.haggling, + crew: G.stats.crew, + energy: G.stats.energy, + maxEnergy: G.stats.maxEnergy, + illness: G.stats.illness, + }, + economy: { + innCost: G.economy.innCost, + innStays: G.economy.innStays, + itemWorth: G.economy.cargoItemWorth.slice(), + cargoSold: G.economy.cargoSold.slice(), + cargoBought: G.economy.cargoBought.slice(), + }, + map: [], + }; + for (var i = 0; i < G.map.length; i++) { + saveObject.map.push({ + drawX: G.map[i].drawX, + drawY: G.map[i].drawY, + drawWidth: G.map[i].drawWidth, + drawHeight: G.map[i].drawHeight, + inventory: G.map[i].island.inventory.slice(), + innPriceDifference: G.map[i].island.innPriceDifference, + innStays: G.map[i].island.innStays, + priceDifferences: G.map[i].island.priceDifferences.slice(), + itemsSold: G.map[i].island.itemsSold.slice(), + itemsBought: G.map[i].island.itemsBought.slice(), + }); + } - if (OS.Save("TradeWindsSave", JSON.stringify(saveObject))) { - console.log("Game Saved!"); - } + if (OS.Save("TradeWindsSave", JSON.stringify(saveObject))) { + console.log("Game Saved!"); + } } G.LoadGame = function () { - var loadObject = OS.Load("TradeWindsSave"); - if (loadObject) { - loadObject = JSON.parse(loadObject); - G.player.x = loadObject.playerX; - G.player.y = loadObject.playerY; - G.inventory.money = loadObject.money; - G.inventory.supplies = loadObject.supplies; - G.inventory.cargo = loadObject.cargo.slice(); - G.stats.inventory = loadObject.stats.inventory; - G.stats.hold = loadObject.stats.hold; - G.stats.speed = loadObject.stats.speed; - G.stats.hull = loadObject.stats.hull; - G.stats.maxHull = loadObject.stats.maxHull; - G.stats.popularity = loadObject.stats.popularity; - G.stats.haggling = loadObject.stats.haggling; - G.stats.crew = loadObject.stats.crew; - G.stats.energy = loadObject.stats.energy; - G.stats.maxEnergy = loadObject.stats.maxEnergy; - G.stats.illness = loadObject.stats.illness; - G.economy.innCost = loadObject.economy.innCost; - G.economy.innStays = loadObject.economy.innStays; - G.economy.cargoItemWorth = loadObject.economy.itemWorth.slice(); - G.economy.cargoSold = loadObject.economy.cargoSold.slice(); - G.economy.cargoBought = loadObject.economy.cargoBought.slice(); + var loadObject = OS.Load("TradeWindsSave"); + if (loadObject) { + loadObject = JSON.parse(loadObject); + G.player.x = loadObject.playerX; + G.player.y = loadObject.playerY; + G.inventory.money = loadObject.money; + G.inventory.supplies = loadObject.supplies; + G.inventory.cargo = loadObject.cargo.slice(); + G.stats.inventory = loadObject.stats.inventory; + G.stats.hold = loadObject.stats.hold; + G.stats.speed = loadObject.stats.speed; + G.stats.hull = loadObject.stats.hull; + G.stats.maxHull = loadObject.stats.maxHull; + G.stats.popularity = loadObject.stats.popularity; + G.stats.haggling = loadObject.stats.haggling; + G.stats.crew = loadObject.stats.crew; + G.stats.energy = loadObject.stats.energy; + G.stats.maxEnergy = loadObject.stats.maxEnergy; + G.stats.illness = loadObject.stats.illness; + G.economy.innCost = loadObject.economy.innCost; + G.economy.innStays = loadObject.economy.innStays; + G.economy.cargoItemWorth = loadObject.economy.itemWorth.slice(); + G.economy.cargoSold = loadObject.economy.cargoSold.slice(); + G.economy.cargoBought = loadObject.economy.cargoBought.slice(); - for (var i = 0; i < loadObject.map.length; i++) { - G.map[i].drawX = loadObject.map[i].drawX; - G.map[i].drawY = loadObject.map[i].drawY; - G.map[i].drawWidth = loadObject.map[i].drawWidth; - G.map[i].drawHeight = loadObject.map[i].drawHeight; - G.map[i].island.x = rm_Ocean.squareSize * loadObject.map[i].drawX; - G.map[i].island.y = rm_Ocean.squareSize * loadObject.map[i].drawY; - G.map[i].island.inventory = loadObject.map[i].inventory.slice(); - G.map[i].island.innPriceDifference = loadObject.map[i].innPriceDifference; - G.map[i].island.innStays = loadObject.map[i].innStays; - G.map[i].island.priceDifferences = loadObject.map[i].priceDifferences.slice(); - G.map[i].island.itemsSold = loadObject.map[i].itemsSold.slice(); - G.map[i].island.itemsBought = loadObject.map[i].itemsBought.slice(); - } - loadObject = null; - console.log("Game Loaded!"); - } else { - console.log("Could not load game!"); - return false; - } + for (var i = 0; i < loadObject.map.length; i++) { + G.map[i].drawX = loadObject.map[i].drawX; + G.map[i].drawY = loadObject.map[i].drawY; + G.map[i].drawWidth = loadObject.map[i].drawWidth; + G.map[i].drawHeight = loadObject.map[i].drawHeight; + G.map[i].island.x = rm_Ocean.squareSize * loadObject.map[i].drawX; + G.map[i].island.y = rm_Ocean.squareSize * loadObject.map[i].drawY; + G.map[i].island.inventory = loadObject.map[i].inventory.slice(); + G.map[i].island.innPriceDifference = loadObject.map[i].innPriceDifference; + G.map[i].island.innStays = loadObject.map[i].innStays; + G.map[i].island.priceDifferences = loadObject.map[i].priceDifferences.slice(); + G.map[i].island.itemsSold = loadObject.map[i].itemsSold.slice(); + G.map[i].island.itemsBought = loadObject.map[i].itemsBought.slice(); + } + loadObject = null; + console.log("Game Loaded!"); + } else { + console.log("Could not load game!"); + return false; + } } function loadGameManager () { - for (var i = 0; i < G.economy.cargoItemWorth.length; i++) { - G.economy.cargoItemWorth[i] += Math.round(Math.randomRange(-5, 5)); - } + for (var i = 0; i < G.economy.cargoItemWorth.length; i++) { + G.economy.cargoItemWorth[i] += Math.round(Math.randomRange(-5, 5)); + } if (Oversimplified.DEBUG.showMessages) console.log("Ran loadGameManager()"); } diff --git a/loadPrefabs.js b/loadPrefabs.js index eaf5c83..de3dc8d 100644 --- a/loadPrefabs.js +++ b/loadPrefabs.js @@ -1,33 +1,32 @@ var prefabsLoaded = 0; var prefabsToLoad = 4; function loadPrefabs() { - OS.AddScript("prefabs/shipPrefab.js"); - OS.AddScript("prefabs/islandPrefab.js"); - OS.AddScript("prefabs/oceanTilePrefab.js"); - OS.AddScript("prefabs/wavePrefab.js"); + OS.AddScript("prefabs/shipPrefab.js"); + OS.AddScript("prefabs/islandPrefab.js"); + OS.AddScript("prefabs/oceanTilePrefab.js"); + OS.AddScript("prefabs/wavePrefab.js"); - // Delay switching to Ocean room until everything is loaded. - WaitForPrefabsToLoad(); + // Delay switching to Ocean room until everything is loaded. + WaitForPrefabsToLoad(); - if (Oversimplified.DEBUG.showMessages) console.log("Ran loadPrefabs()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran loadPrefabs()"); } // Callback function that prevents Ocean room from loading before everything it references is loaded. WaitForPrefabsToLoad = function () { - console.log("waiting for " + (prefabsToLoad - prefabsLoaded).toString() + " prefabs to load"); - if (prefabsLoaded < prefabsToLoad || !window["oceanRoom"]) - { - setTimeout(function(){WaitForPrefabsToLoad()}, 0.1); + console.log("waiting for " + (prefabsToLoad - prefabsLoaded).toString() + " prefabs to load"); + if (prefabsLoaded < prefabsToLoad || !window["oceanRoom"]) { + setTimeout(function(){WaitForPrefabsToLoad()}, 0.1); + } else { + // Create player and ocean objects in rm_Ocean. + G.player = rm_Ocean.AddObject(OS.P["Ship"]); + G.oceanParticle = rm_Ocean.AddObject(OS.P["Ocean Particle"]); + + if (G.player.xBound) { // Force rm_Ocean to wait until G.player is completely loaded! + // Load the rooms only after the prefabs are loaded. + rm_Ocean.SetAsCurrentRoom(); } else { - // Create player and ocean objects in rm_Ocean. - G.player = rm_Ocean.AddObject(OS.P["Ship"]); - G.oceanParticle = rm_Ocean.AddObject(OS.P["Ocean Particle"]); - - if (G.player.xBound) { // Force rm_Ocean to wait until G.player is completely loaded! - // Load the rooms only after the prefabs are loaded. - rm_Ocean.SetAsCurrentRoom(); - } else { - setTimeout(function(){WaitForPrefabsToLoad()}, 0.1); - } + setTimeout(function(){WaitForPrefabsToLoad()}, 0.1); } + } } diff --git a/loadRooms.js b/loadRooms.js index d2958b7..b319639 100644 --- a/loadRooms.js +++ b/loadRooms.js @@ -1,20 +1,20 @@ var rm_Load = OS.R.Add("Default"); var rm_Ocean = OS.R.Add("Ocean Room", { - // Putting my room "constants" here. - width: pixel(64) * 50, //50x45 map of 64x64 squares. This will allow a single pixel on the map to represent a 64x square and fit comfortably on screen. - height: pixel(64) * 44, - backgroundColor: "#1b2632", - squaresX: 50, - squaresY: 44, - squareSize: pixel(64), - numberOfIslands: 10, - clockTimerCutoff: ((1 / OS.S.defaultStep) * 60) * 5 // 5 minute day. + // Putting my room "constants" here. + width: pixel(64) * 50, //50x45 map of 64x64 squares. This will allow a single pixel on the map to represent a 64x square and fit comfortably on screen. + height: pixel(64) * 44, + backgroundColor: "#1b2632", + squaresX: 50, + squaresY: 44, + squareSize: pixel(64), + numberOfIslands: 10, + clockTimerCutoff: ((1 / OS.S.defaultStep) * 60) * 5, // 5 minute day. }); function loadRooms() { - OS.AddScript("rooms/oceanRoom.js"); - - rm_Load.SetAsCurrentRoom(); + OS.AddScript("rooms/oceanRoom.js"); + + rm_Load.SetAsCurrentRoom(); - if (Oversimplified.DEBUG.showMessages) console.log("Ran loadRooms()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran loadRooms()"); } diff --git a/prefabs/islandPrefab.js b/prefabs/islandPrefab.js index 6e20ab1..4326d55 100644 --- a/prefabs/islandPrefab.js +++ b/prefabs/islandPrefab.js @@ -1,243 +1,243 @@ var ani_island_1 = OS.A.Add("Island 1", 256, 256, {}); function islandPrefab() { - if (Oversimplified.DEBUG.showMessages) console.log("Ran islandPrefab()"); - prefabsLoaded++; + if (Oversimplified.DEBUG.showMessages) console.log("Ran islandPrefab()"); + prefabsLoaded++; } var pr_island = OS.P.Add("Island", { - solid: true, - imageSrc: "images/island.png", - animations: [ani_island_1], - depth: -50, + solid: true, + imageSrc: "images/island.png", + animations: [ani_island_1], + depth: -50, - mapX: 0, - mapY: 0, - mapWidth: 1, - mapHeight: 1, - mapColor: "#00AB00", + mapX: 0, + mapY: 0, + mapWidth: 1, + mapHeight: 1, + mapColor: "#00AB00", - canTrade: true, - haggleAmount: 0, - timesHaggledToday: 0, - itemsSoldToday: [0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], - itemsBoughtToday: [0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], - - money: 0, - inventory: [0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], - - storageSpace: [0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], - innPriceDifference: 0, - innStays: 0, - priceDifferences: [0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], - itemsSold: [0, 0, 0, 0, // The more you sell, the lower the price gets - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], - itemsBought: [0, 0, 0, 0, // The more you buy, the higher the price gets - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0], + canTrade: true, + haggleAmount: 0, + timesHaggledToday: 0, + itemsSoldToday: [0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], + itemsBoughtToday: [0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], + + money: 0, + inventory: [0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], + + storageSpace: [0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], + innPriceDifference: 0, + innStays: 0, + priceDifferences: [0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], + itemsSold: [0, 0, 0, 0, // The more you sell, the lower the price gets + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], + itemsBought: [0, 0, 0, 0, // The more you buy, the higher the price gets + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], - storageFee: 10, - storageFeeMultiplier: 0.1, - storage: [0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0] + storageFee: 10, + storageFeeMultiplier: 0.1, + storage: [0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0], }); pr_island.DoFirst = function () { - this.GetMapPosition(); - this.SetUp(); + this.GetMapPosition(); + this.SetUp(); } pr_island.GetMapPosition = function () { - this.mapX = (this.x / OS.S.pixelScale) / (OS.camera.width / OS.S.pixelScale); - this.mapY = (this.y / OS.S.pixelScale) / (OS.camera.height / OS.S.pixelScale); + this.mapX = (this.x / OS.S.pixelScale) / (OS.camera.width / OS.S.pixelScale); + this.mapY = (this.y / OS.S.pixelScale) / (OS.camera.height / OS.S.pixelScale); } pr_island.SetUp = function () { - for (var i = 0; i < 16; i++) { - this.storageSpace[i] = Math.round(Math.randomRange(20, 35)); + for (var i = 0; i < 16; i++) { + this.storageSpace[i] = Math.round(Math.randomRange(20, 35)); - if (this.storageSpace[i] > 30) { - this.inventory[i] = Math.round(this.storageSpace[i] - Math.randomRange(0, 30)); - } else if (Math.randomRange(0, 100) < 25) { - this.inventory[i] = Math.round(Math.randomRange(0, this.storageSpace[i])); - } - } - // console.log(this.name + " stock: " + this.inventory); + if (this.storageSpace[i] > 30) { + this.inventory[i] = Math.round(this.storageSpace[i] - Math.randomRange(0, 30)); + } else if (Math.randomRange(0, 100) < 25) { + this.inventory[i] = Math.round(Math.randomRange(0, this.storageSpace[i])); + } + } + // console.log(this.name + " stock: " + this.inventory); - this.AdjustPrices(); - // console.log(this.name + " pricing: " + this.priceDifferences); + this.AdjustPrices(); + // console.log(this.name + " pricing: " + this.priceDifferences); - if (this.CheckInventory().length < 4) { - this.SetUp(); - } else { - for (var i = 0; i < 16; i++) { - // Generate the amount of money the shop has based on what it has. - this.money += (G.economy.cargoItemWorth[i] + this.priceDifferences[i]) * this.inventory[i]; - } - - // Minimum amount of money is 100. - if (this.money < 100) this.money = 100; - } + if (this.CheckInventory().length < 4) { + this.SetUp(); + } else { + for (var i = 0; i < 16; i++) { + // Generate the amount of money the shop has based on what it has. + this.money += (G.economy.cargoItemWorth[i] + this.priceDifferences[i]) * this.inventory[i]; + } + + // Minimum amount of money is 100. + if (this.money < 100) this.money = 100; + } } pr_island.AdjustPrices = function () { - for (var i = 0; i < 16; i++) { - // Save the previous price difference so the change doesn't get above a certain thereshold. - var previousPrice = newPriceDifference = this.priceDifferences[i]; + for (var i = 0; i < 16; i++) { + // Save the previous price difference so the change doesn't get above a certain thereshold. + var previousPrice = newPriceDifference = this.priceDifferences[i]; - if (this.inventory[i] > (this.storageSpace[i] / 2)) { - newPriceDifference -= Math.round(this.inventory[i] * Math.randomRange(1, 3)); - } - else if (this.inventory[i] < (this.storageSpace[i] / 4)) { - newPriceDifference += Math.round((this.storageSpace[i] - this.inventory[i]) * Math.randomRange(1, 3)); - } - else { - newPriceDifference += Math.round(Math.randomRange(-2, 2)); - } + if (this.inventory[i] > (this.storageSpace[i] / 2)) { + newPriceDifference -= Math.round(this.inventory[i] * Math.randomRange(1, 3)); + } + else if (this.inventory[i] < (this.storageSpace[i] / 4)) { + newPriceDifference += Math.round((this.storageSpace[i] - this.inventory[i]) * Math.randomRange(1, 3)); + } + else { + newPriceDifference += Math.round(Math.randomRange(-2, 2)); + } - newPriceDifference = Math.round(newPriceDifference * ((this.itemsBought[i] + 1) / (this.itemsSold[i] + 1))); + newPriceDifference = Math.round(newPriceDifference * ((this.itemsBought[i] + 1) / (this.itemsSold[i] + 1))); - if (Math.abs(newPriceDifference) > Math.abs(previousPrice) + G.economy.maxPriceChange) { - // Prevent price from changing more than the limit. - newPriceDifference = previousPrice + ((previousPrice < 0) ? -G.economy.maxPriceChange : G.economy.maxPriceChange); - } + if (Math.abs(newPriceDifference) > Math.abs(previousPrice) + G.economy.maxPriceChange) { + // Prevent price from changing more than the limit. + newPriceDifference = previousPrice + ((previousPrice < 0) ? -G.economy.maxPriceChange : G.economy.maxPriceChange); + } - if (G.economy.cargoItemWorth[i] + newPriceDifference < 0) { - newPriceDifference = -G.economy.cargoItemWorth[i] + 1; - } + if (G.economy.cargoItemWorth[i] + newPriceDifference < 0) { + newPriceDifference = -G.economy.cargoItemWorth[i] + 1; + } - this.priceDifferences[i] = newPriceDifference; - } + this.priceDifferences[i] = newPriceDifference; + } - var priceDifferencesOrdered = this.priceDifferences.slice().sort(sortNumber); - this.innPriceDifference += Math.round(Math.randomRange(priceDifferencesOrdered[0], priceDifferencesOrdered[priceDifferencesOrdered.length -1])) - Math.round(Math.randomRange(0, this.innStays)); + var priceDifferencesOrdered = this.priceDifferences.slice().sort(sortNumber); + this.innPriceDifference += Math.round(Math.randomRange(priceDifferencesOrdered[0], priceDifferencesOrdered[priceDifferencesOrdered.length -1])) - Math.round(Math.randomRange(0, this.innStays)); } pr_island.SimulateTrade = function () { // This will be run on a timer that runs when not trading. - for (var i = 0; i < 16; i++) { - var amount = 0; - if (this.inventory[i] > 0) { - amount = Math.round(Math.randomRange(-this.storageSpace[i], this.storageSpace[i])); - this.inventory[i] += amount; + for (var i = 0; i < 16; i++) { + var amount = 0; + if (this.inventory[i] > 0) { + amount = Math.round(Math.randomRange(-this.storageSpace[i], this.storageSpace[i])); + this.inventory[i] += amount; - if (this.inventory[i] < 0) { - this.inventory[i] = 0; - } - if (this.inventory[i] > this.storageSpace[i]) { - this.inventory[i] = this.storageSpace[i]; - } - } else { - if (Math.randomRange(0, 100) < 15) { - amount = Math.round(Math.randomRange(0, this.storageSpace[i])); - this.inventory[i] = amount; - } - } - // If the amount is positive, then subtract half the amount from the money (because they bought stuff) - // Otherwise, add the negative amount (because they sold that much) - this.money += (-amount * (G.economy.cargoItemWorth[i] + this.priceDifferences[i])) * ((amount > 0) ? 0.5 : 1); - } + if (this.inventory[i] < 0) { + this.inventory[i] = 0; + } + if (this.inventory[i] > this.storageSpace[i]) { + this.inventory[i] = this.storageSpace[i]; + } + } else { + if (Math.randomRange(0, 100) < 15) { + amount = Math.round(Math.randomRange(0, this.storageSpace[i])); + this.inventory[i] = amount; + } + } + // If the amount is positive, then subtract half the amount from the money (because they bought stuff) + // Otherwise, add the negative amount (because they sold that much) + this.money += (-amount * (G.economy.cargoItemWorth[i] + this.priceDifferences[i])) * ((amount > 0) ? 0.5 : 1); + } - if (this.money <= 0) this.money = 100; // If they run out of money, give them some. + if (this.money <= 0) this.money = 100; // If they run out of money, give them some. - this.AdjustPrices(); + this.AdjustPrices(); } pr_island.NewDay = function () { - this.haggleAmount = 0; + this.haggleAmount = 0; this.timesHaggledToday = 0; - this.itemsSoldToday = [0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0]; - this.itemsBoughtToday = [0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0, - 0, 0, 0, 0]; + this.itemsSoldToday = [0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0]; + this.itemsBoughtToday = [0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0]; this.SimulateTrade(); } -pr_island.CheckInventory = function () { // Returns an array of indices that have cargo - var indicesWithCargo = []; - for (var i = 0; i < this.inventory.length; i++) { - if (this.inventory[i] > 0) { - indicesWithCargo.push(i); - } - } - return indicesWithCargo; +pr_island.CheckInventory = function () { // Returns an array of indices that have cargo + var indicesWithCargo = []; + for (var i = 0; i < this.inventory.length; i++) { + if (this.inventory[i] > 0) { + indicesWithCargo.push(i); + } + } + return indicesWithCargo; } pr_island.TradeWith = function () { - // Change music to Trade. - // console.log(this.inventory); - mus_sail.Stop(); - mus_trade.Play(); - guiControl.trade.island = this; - guiControl.trade.haggleAmount = 0; - guiControl.trade.activateDelay = 5; - guiControl.trade.show = true; + // Change music to Trade. + // console.log(this.inventory); + mus_sail.Stop(); + mus_trade.Play(); + guiControl.trade.island = this; + guiControl.trade.haggleAmount = 0; + guiControl.trade.activateDelay = 5; + guiControl.trade.show = true; } pr_island.CanSellTo = function (itemIndex, price) { - if (this.inventory[itemIndex] < this.storageSpace[itemIndex] && price < this.money) { - // If there's space in the inventory and there's enough money. - return true; - } - return false; + if (this.inventory[itemIndex] < this.storageSpace[itemIndex] && price < this.money) { + // If there's space in the inventory and there's enough money. + return true; + } + return false; } pr_island.SellTo = function (itemIndex, price) { - // Play Buy sound. - this.inventory[itemIndex]++; - this.itemsBought[itemIndex]++; - this.money -= price; + // Play Buy sound. + this.inventory[itemIndex]++; + this.itemsBought[itemIndex]++; + this.money -= price; - G.inventory.cargo[itemIndex]--; - G.inventory.money += price; - G.economy.cargoSold[itemIndex]++; + G.inventory.cargo[itemIndex]--; + G.inventory.money += price; + G.economy.cargoSold[itemIndex]++; } pr_island.CanBuyFrom = function (itemIndex, price) { - if (this.inventory[itemIndex] > 0) { // If there's enough of the item - return true; - } - return false; + if (this.inventory[itemIndex] > 0) { // If there's enough of the item + return true; + } + return false; } pr_island.BuyFrom = function (itemIndex, price) { - // Play Sell sound. - this.inventory[itemIndex]--; - this.itemsSold[itemIndex]++; - this.money += price; + // Play Sell sound. + this.inventory[itemIndex]--; + this.itemsSold[itemIndex]++; + this.money += price; - G.inventory.cargo[itemIndex]++; - G.inventory.money -= price; - G.economy.cargoBought[itemIndex]++; + G.inventory.cargo[itemIndex]++; + G.inventory.money -= price; + G.economy.cargoBought[itemIndex]++; } pr_island.StayAtInn = function () { - // Play Sell sound. - this.innStays++; + // Play Sell sound. + this.innStays++; - G.stats.illness--; - G.inventory.money -= G.economy.innCost + this.innPriceDifference; - G.economy.innStays++; + G.stats.illness--; + G.inventory.money -= G.economy.innCost + this.innPriceDifference; + G.economy.innStays++; } diff --git a/prefabs/oceanTilePrefab.js b/prefabs/oceanTilePrefab.js index 31bb292..027aa6e 100644 --- a/prefabs/oceanTilePrefab.js +++ b/prefabs/oceanTilePrefab.js @@ -1,84 +1,93 @@ -var ani_ocean = OS.A.Add("Ocean", 256, 256, {columns: 10, speed: 1/60}); +var ani_ocean = OS.A.Add("Ocean", 256, 256, { columns: 10, speed: 1/60 }); function oceanTilePrefab() { - if (Oversimplified.DEBUG.showMessages) console.log("Ran oceanTilePrefab()"); - prefabsLoaded++; + if (Oversimplified.DEBUG.showMessages) console.log("Ran oceanTilePrefab()"); + prefabsLoaded++; } var pr_ocean = OS.P.Add("Ocean Particle", { - imageSrc: "images/ocean_sheet.png", - animations: [ani_ocean], - depth: -100, // Draw below everything. + imageSrc: "images/ocean_sheet.png", + animations: [ani_ocean], + depth: -100, // Draw below everything. - positionCheckStep: 30, - positionCheckProgress: 30, - doCheckPosition: false, + positionCheckStep: 30, + positionCheckProgress: 30, + doCheckPosition: false, - moveTimer: 0, + moveTimer: 0, }); pr_ocean.BeforeDo = function () { - this.positionCheckProgress++; - if (this.positionCheckProgress >= this.positionCheckStep) { - this.positionCheckProgress = 0; - this.doCheckPosition = true; - } + this.positionCheckProgress++; + if (this.positionCheckProgress >= this.positionCheckStep) { + this.positionCheckProgress = 0; + this.doCheckPosition = true; + } } pr_ocean.Do = function () { - // Move around randomly. - this.moveTimer++; - if (this.moveTimer >= 120) { - this.x += 1 * pixel(Math.round(Math.randomRange(-1, 1))); - this.y += 1 * pixel(Math.round(Math.randomRange(-1, 1))); - this.moveTimer = 0; - } + // Move around randomly. + this.moveTimer++; + if (this.moveTimer >= 120) { + this.x += 1 * pixel(Math.round(Math.randomRange(-1, 1))); + this.y += 1 * pixel(Math.round(Math.randomRange(-1, 1))); + this.moveTimer = 0; + } } pr_ocean.CheckPosition = function (checkX, checkY, direction) { - if (this.doCheckPosition) { - // If it's completely off the screen, then update position. - if ((Math.abs(this.x - checkX) > (OS.camera.width + this.xBound)) || - (Math.abs(this.y - checkY) > (OS.camera.height + this.yBound))) - { - switch (direction) { - case 0: - this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge(); - this.y = checkY + randomSmidge(); + if (this.doCheckPosition) { + // If it's completely off the screen, then update position. + if ((Math.abs(this.x - checkX) > (OS.camera.width + this.xBound)) || + (Math.abs(this.y - checkY) > (OS.camera.height + this.yBound))) + { + switch (direction) { + case 0: { + this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge(); + this.y = checkY + randomSmidge(); break; - case 45: - this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge(); - this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge(); + } + case 45: { + this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge(); + this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge(); break; - case 90: - this.x = checkX + randomSmidge(); - this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge(); + } + case 90: { + this.x = checkX + randomSmidge(); + this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge(); break; - case 135: - this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge(); - this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge(); + } + case 135: { + this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge(); + this.y = checkY - (OS.camera.height + this.yBound) + randomSmidge(); break; - case 180: - this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge(); - this.y = checkY + randomSmidge(); + } + case 180: { + this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge(); + this.y = checkY + randomSmidge(); break; - case 225: - this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge(); - this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge(); + } + case 225: { + this.x = checkX - (OS.camera.width + this.xBound) + randomSmidge(); + this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge(); break; - case 270: - this.x = checkX + randomSmidge(); - this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge(); + } + case 270: { + this.x = checkX + randomSmidge(); + this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge(); break; - case 315: - this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge(); - this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge(); + } + case 315: { + this.x = checkX + (OS.camera.width + this.xBound) + randomSmidge(); + this.y = checkY + (OS.camera.height + this.yBound) + randomSmidge(); break; - default: - console.log("No valid direction"); + } + default: { + console.log("No valid direction"); break; - } - } + } + } + } - this.doCheckPosition = false; - } + this.doCheckPosition = false; + } } diff --git a/prefabs/shipPrefab.js b/prefabs/shipPrefab.js index 13e043f..e00a7e4 100644 --- a/prefabs/shipPrefab.js +++ b/prefabs/shipPrefab.js @@ -8,224 +8,233 @@ var ani_ship_d = OS.A.Add("Ship Down", 64, 64, {columns: 2, speed: 1/60, yOffset var ani_ship_dr = OS.A.Add("Ship Down-Right", 64, 64, {columns: 2, speed: 1/60, yOffset: 64 * 2}); function shipPrefab() { - if (Oversimplified.DEBUG.showMessages) console.log("Ran shipPrefab()"); - prefabsLoaded++; + if (Oversimplified.DEBUG.showMessages) console.log("Ran shipPrefab()"); + prefabsLoaded++; } var pr_ship = OS.P.Add("Ship", { - solid: true, - imageSrc: "images/ship_sheet.png", - maskImageSrc: "images/ship_mask.png", - animations: [ani_ship_r, ani_ship_ur, ani_ship_u, ani_ship_ul, ani_ship_l, ani_ship_dl, ani_ship_d, ani_ship_dr], - - direction: 0, - currentSpeed: 0, - pointInFront : {x: 0, y: 0 }, - moveStepSize: 3, - moveStepAmount: 5 * OS.R[OS.R.currentRoom].stepSpeed, - moveStepProgress: 0, - doTakeStep: false, + solid: true, + imageSrc: "images/ship_sheet.png", + maskImageSrc: "images/ship_mask.png", + animations: [ani_ship_r, ani_ship_ur, ani_ship_u, ani_ship_ul, ani_ship_l, ani_ship_dl, ani_ship_d, ani_ship_dr], + + direction: 0, + currentSpeed: 0, + pointInFront : {x: 0, y: 0 }, + moveStepSize: 3, + moveStepAmount: 5 * OS.R[OS.R.currentRoom].stepSpeed, + moveStepProgress: 0, + doTakeStep: false, - energyRefillTimer: 0, + energyRefillTimer: 0, - drawSickIndicator: 0, - drawSickIndicatorTime: secondsWorthOfFrames(1.5) + drawSickIndicator: 0, + drawSickIndicatorTime: secondsWorthOfFrames(1.5), }); pr_ship.BeforeDo = function () { - if (G.gameStarted) { - this.GetMapPosition(); - } + if (G.gameStarted) { + this.GetMapPosition(); + } } pr_ship.Do = function () { - if (G.gameStarted) { - if (guiControl && guiControl.inventory && guiControl.map && guiControl.trade) { // Force it to wait until loaded. - if (!guiControl.inventory.show && !guiControl.map.show && !guiControl.trade.show) { - if (ct_left().down) { - this.direction += 45; - } else if (ct_right().down) { - this.direction -= 45; - } - this.direction = Math.clampAngle(this.direction); - - if (ct_up().down) { - this.currentSpeed++; - } else if (ct_down().down) { - this.currentSpeed--; - } - this.AdjustSpeedBasedOnEnergy(); + if (G.gameStarted) { + if (guiControl && guiControl.inventory && guiControl.map && guiControl.trade) { // Force it to wait until loaded. + if (!guiControl.inventory.show && !guiControl.map.show && !guiControl.trade.show) { + if (ct_left().down) { + this.direction += 45; + } else if (ct_right().down) { + this.direction -= 45; + } + this.direction = Math.clampAngle(this.direction); + + if (ct_up().down) { + this.currentSpeed++; + } else if (ct_down().down) { + this.currentSpeed--; + } + this.AdjustSpeedBasedOnEnergy(); - this.CheckInteraction(); - } - } + this.CheckInteraction(); + } + } - this.currentSpeed = Math.clamp(this.currentSpeed, 0, 4); - - this.moveStepProgress += this.currentSpeed * this.moveStepAmount; - if (this.moveStepProgress >= this.moveStepSize) { - this.moveStepProgress -= this.moveStepSize; - this.doTakeStep = true; - } else { - this.doTakeStep = false; - } + this.currentSpeed = Math.clamp(this.currentSpeed, 0, 4); + + this.moveStepProgress += this.currentSpeed * this.moveStepAmount; + if (this.moveStepProgress >= this.moveStepSize) { + this.moveStepProgress -= this.moveStepSize; + this.doTakeStep = true; + } else { + this.doTakeStep = false; + } - this.SeamlessScroll(); - // console.log(G.player.name + " created at " + G.player.x + ", " + G.player.y); - } + this.SeamlessScroll(); + // console.log(G.player.name + " created at " + G.player.x + ", " + G.player.y); + } } pr_ship.AfterDo = function () { - if (G.gameStarted) { - this.CheckMovement(); - this.UpdateEnergy(); - } + if (G.gameStarted) { + this.CheckMovement(); + this.UpdateEnergy(); + } } pr_ship.DrawAbove = function () { - if (G.gameStarted) { - this.drawSickIndicator--; - if (this.drawSickIndicator < 0) { - this.drawSickIndicator = 0; - } - if (this.drawSickIndicator > 0) { - var sickIndicatorHeight = Math.round((this.drawSickIndicatorTime - this.drawSickIndicator) / 2) / OS.S.pixelScale; - var sickIndicatorY = this.y - sickIndicatorHeight - Oversimplified.camera.y - (guiControl.iconScaled / 2); - guiControl.drawIcon(4, 1, this.x - Oversimplified.camera.x - (guiControl.iconScaled / 2), sickIndicatorY); - } - } + if (G.gameStarted) { + this.drawSickIndicator--; + if (this.drawSickIndicator < 0) { + this.drawSickIndicator = 0; + } + if (this.drawSickIndicator > 0) { + var sickIndicatorHeight = Math.round((this.drawSickIndicatorTime - this.drawSickIndicator) / 2) / OS.S.pixelScale; + var sickIndicatorY = this.y - sickIndicatorHeight - Oversimplified.camera.y - (guiControl.iconScaled / 2); + guiControl.drawIcon(4, 1, this.x - Oversimplified.camera.x - (guiControl.iconScaled / 2), sickIndicatorY); + } + } } pr_ship.GetMapPosition = function () { - this.mapX = pixel(Math.round(this.x / pixel(64))); - this.mapY = pixel(Math.round(this.y / pixel(64))); - // console.log(this.mapX + ", " + this.mapY); + this.mapX = pixel(Math.round(this.x / pixel(64))); + this.mapY = pixel(Math.round(this.y / pixel(64))); + // console.log(this.mapX + ", " + this.mapY); } pr_ship.CheckInteraction = function () { - if (ct_confirm().down) { - var objectsFound = OS.GameObjectsAtPoint(this.pointInFront.x, this.pointInFront.y); - if (objectsFound.length > 0) { - for (var i = 0; i < objectsFound.length; i++) { - if (objectsFound[i].canTrade) { - // console.log("interacting with island: " + objectsFound[i].name); - objectsFound[i].TradeWith(); - } - } - } - } + if (ct_confirm().down) { + var objectsFound = OS.GameObjectsAtPoint(this.pointInFront.x, this.pointInFront.y); + if (objectsFound.length > 0) { + for (var i = 0; i < objectsFound.length; i++) { + if (objectsFound[i].canTrade) { + // console.log("interacting with island: " + objectsFound[i].name); + objectsFound[i].TradeWith(); + } + } + } + } } pr_ship.CheckMovement = function () { - var moveAmount = pixel(G.stats.speed + this.currentSpeed); - var movedSuccessfully = false; - switch (this.direction) { - case 0: - if (this.sprite.currentAnimation != "Ship Right") this.SetAnimation("Ship Right"); - if (this.doTakeStep) movedSuccessfully = this.SimpleMove(moveAmount, 0, true, pixel(4)); - this.pointInFront.x = this.x + this.xBound + pixel(2) + moveAmount; - this.pointInFront.y = this.y; - break; - case 45: - if (this.sprite.currentAnimation != "Ship Up-Right") this.SetAnimation("Ship Up-Right"); - if (this.doTakeStep) movedSuccessfully = this.SimpleMove(moveAmount, -moveAmount, true, pixel(4)); - this.pointInFront.x = this.x + this.xBound + pixel(2) + moveAmount; - this.pointInFront.y = this.y - this.yBound - pixel(2) - moveAmount; - break; - case 90: - if (this.sprite.currentAnimation != "Ship Up") this.SetAnimation("Ship Up"); - if (this.doTakeStep) movedSuccessfully = this.SimpleMove(0, -moveAmount, true, pixel(4)); - this.pointInFront.x = this.x; - this.pointInFront.y = this.y - this.yBound - pixel(2) - moveAmount; - break; - case 135: - if (this.sprite.currentAnimation != "Ship Up-Left") this.SetAnimation("Ship Up-Left"); - if (this.doTakeStep) movedSuccessfully = this.SimpleMove(-moveAmount, -moveAmount, true, pixel(4)); - this.pointInFront.x = this.x - this.xBound - pixel(2) - moveAmount; - this.pointInFront.y = this.y - this.yBound - pixel(2) - moveAmount; - break; - case 180: - if (this.sprite.currentAnimation != "Ship Left") this.SetAnimation("Ship Left"); - if (this.doTakeStep) movedSuccessfully = this.SimpleMove(-moveAmount, 0, true, pixel(4)); - this.pointInFront.x = this.x - this.xBound - pixel(2) - moveAmount; - this.pointInFront.y = this.y; - break; - case 225: - if (this.sprite.currentAnimation != "Ship Down-Left") this.SetAnimation("Ship Down-Left"); - if (this.doTakeStep) movedSuccessfully = this.SimpleMove(-moveAmount, moveAmount, true, pixel(4)); - this.pointInFront.x = this.x - this.xBound - pixel(2) - moveAmount; - this.pointInFront.y = this.y + this.yBound + pixel(2) + moveAmount; - break; - case 270: - if (this.sprite.currentAnimation != "Ship Down") this.SetAnimation("Ship Down"); - if (this.doTakeStep) movedSuccessfully = this.SimpleMove(0, moveAmount, true, pixel(4)); - this.pointInFront.x = this.x; - this.pointInFront.y = this.y + this.yBound + pixel(2) + moveAmount; - break; - case 315: - if (this.sprite.currentAnimation != "Ship Down-Right") this.SetAnimation("Ship Down-Right"); - if (this.doTakeStep) movedSuccessfully = this.SimpleMove(moveAmount, moveAmount, true, pixel(4)); - this.pointInFront.x = this.x + this.xBound + pixel(2) + moveAmount; - this.pointInFront.y = this.y + this.yBound + pixel(2) + moveAmount; - break; - default: - console.log("No valid direction"); - break; - } + var moveAmount = pixel(G.stats.speed + this.currentSpeed); + var movedSuccessfully = false; + switch (this.direction) { + case 0: { + if (this.sprite.currentAnimation != "Ship Right") this.SetAnimation("Ship Right"); + if (this.doTakeStep) movedSuccessfully = this.SimpleMove(moveAmount, 0, true, pixel(4)); + this.pointInFront.x = this.x + this.xBound + pixel(2) + moveAmount; + this.pointInFront.y = this.y; + break; + } + case 45: { + if (this.sprite.currentAnimation != "Ship Up-Right") this.SetAnimation("Ship Up-Right"); + if (this.doTakeStep) movedSuccessfully = this.SimpleMove(moveAmount, -moveAmount, true, pixel(4)); + this.pointInFront.x = this.x + this.xBound + pixel(2) + moveAmount; + this.pointInFront.y = this.y - this.yBound - pixel(2) - moveAmount; + break; + } + case 90: { + if (this.sprite.currentAnimation != "Ship Up") this.SetAnimation("Ship Up"); + if (this.doTakeStep) movedSuccessfully = this.SimpleMove(0, -moveAmount, true, pixel(4)); + this.pointInFront.x = this.x; + this.pointInFront.y = this.y - this.yBound - pixel(2) - moveAmount; + break; + } + case 135: { + if (this.sprite.currentAnimation != "Ship Up-Left") this.SetAnimation("Ship Up-Left"); + if (this.doTakeStep) movedSuccessfully = this.SimpleMove(-moveAmount, -moveAmount, true, pixel(4)); + this.pointInFront.x = this.x - this.xBound - pixel(2) - moveAmount; + this.pointInFront.y = this.y - this.yBound - pixel(2) - moveAmount; + break; + } + case 180: { + if (this.sprite.currentAnimation != "Ship Left") this.SetAnimation("Ship Left"); + if (this.doTakeStep) movedSuccessfully = this.SimpleMove(-moveAmount, 0, true, pixel(4)); + this.pointInFront.x = this.x - this.xBound - pixel(2) - moveAmount; + this.pointInFront.y = this.y; + break; + } + case 225: { + if (this.sprite.currentAnimation != "Ship Down-Left") this.SetAnimation("Ship Down-Left"); + if (this.doTakeStep) movedSuccessfully = this.SimpleMove(-moveAmount, moveAmount, true, pixel(4)); + this.pointInFront.x = this.x - this.xBound - pixel(2) - moveAmount; + this.pointInFront.y = this.y + this.yBound + pixel(2) + moveAmount; + break; + } + case 270: { + if (this.sprite.currentAnimation != "Ship Down") this.SetAnimation("Ship Down"); + if (this.doTakeStep) movedSuccessfully = this.SimpleMove(0, moveAmount, true, pixel(4)); + this.pointInFront.x = this.x; + this.pointInFront.y = this.y + this.yBound + pixel(2) + moveAmount; + break; + } + case 315: { + if (this.sprite.currentAnimation != "Ship Down-Right") this.SetAnimation("Ship Down-Right"); + if (this.doTakeStep) movedSuccessfully = this.SimpleMove(moveAmount, moveAmount, true, pixel(4)); + this.pointInFront.x = this.x + this.xBound + pixel(2) + moveAmount; + this.pointInFront.y = this.y + this.yBound + pixel(2) + moveAmount; + break; + } + default: { + console.log("No valid direction"); + break; + } + } - if (this.doTakeStep && !movedSuccessfully) { - this.currentSpeed = 0; - } + if (this.doTakeStep && !movedSuccessfully) { + this.currentSpeed = 0; + } } pr_ship.UpdateEnergy = function () { - this.energyRefillTimer++; - if (this.energyRefillTimer >= (100 / G.stats.crew) + ((G.stats.illness) * (100 / G.stats.crew))) { - G.stats.energy += G.stats.crew; - this.energyRefillTimer = 0; - } + this.energyRefillTimer++; + if (this.energyRefillTimer >= (100 / G.stats.crew) + ((G.stats.illness) * (100 / G.stats.crew))) { + G.stats.energy += G.stats.crew; + this.energyRefillTimer = 0; + } - if (this.doTakeStep) { - G.stats.energy -= ((this.currentSpeed / G.stats.speed) + ((G.stats.illness) * 0.1)) * 0.25; - } + if (this.doTakeStep) { + G.stats.energy -= ((this.currentSpeed / G.stats.speed) + ((G.stats.illness) * 0.1)) * 0.25; + } - if (G.stats.energy < 0) G.stats.energy = 0; - if (G.stats.energy > G.stats.maxEnergy) G.stats.energy = G.stats.maxEnergy; + if (G.stats.energy < 0) G.stats.energy = 0; + if (G.stats.energy > G.stats.maxEnergy) G.stats.energy = G.stats.maxEnergy; } pr_ship.SeamlessScroll = function () { - if (this.x <= rm_Ocean.mapLeftTrigger) { - this.x = rm_Ocean.mapLeftTriggerTarget; - OS.SetCamera({x: rm_Ocean.width}); - } - else if (this.x >= rm_Ocean.mapRightTrigger) { - this.x = rm_Ocean.mapRightTriggerTarget; - OS.SetCamera({x: 0}); - } - else if (this.y <= rm_Ocean.mapUpTrigger) { - this.y = rm_Ocean.mapUpTriggerTarget; - OS.SetCamera({y: rm_Ocean.height}); - } - else if (this.y >= rm_Ocean.mapDownTrigger) { - this.y = rm_Ocean.mapDownTriggerTarget; - OS.SetCamera({y: 0}); - } + if (this.x <= rm_Ocean.mapLeftTrigger) { + this.x = rm_Ocean.mapLeftTriggerTarget; + OS.SetCamera({x: rm_Ocean.width}); + } + else if (this.x >= rm_Ocean.mapRightTrigger) { + this.x = rm_Ocean.mapRightTriggerTarget; + OS.SetCamera({x: 0}); + } + else if (this.y <= rm_Ocean.mapUpTrigger) { + this.y = rm_Ocean.mapUpTriggerTarget; + OS.SetCamera({y: rm_Ocean.height}); + } + else if (this.y >= rm_Ocean.mapDownTrigger) { + this.y = rm_Ocean.mapDownTriggerTarget; + OS.SetCamera({y: 0}); + } } pr_ship.AdjustSpeedBasedOnEnergy = function () { - if (this.currentSpeed > 3 && G.stats.energy < (G.stats.maxEnergy * 0.3) || - this.currentSpeed > 2 && G.stats.energy < (G.stats.maxEnergy * 0.15) || - this.currentSpeed > 1 && G.stats.energy < (G.stats.maxEnergy * 0.05)) - { - this.currentSpeed--; - } + if (this.currentSpeed > 3 && G.stats.energy < (G.stats.maxEnergy * 0.3) || + this.currentSpeed > 2 && G.stats.energy < (G.stats.maxEnergy * 0.15) || + this.currentSpeed > 1 && G.stats.energy < (G.stats.maxEnergy * 0.05)) + { + this.currentSpeed--; + } } pr_ship.CheckIllnessIncrease = function () { - var percentChance = G.stats.crew + ((this.currentSpeed / (G.stats.energy + 0.001)) * G.stats.illness); // +0.001 on the off-chance that energy reaches 0. - if (Math.randomRange(0, 100) < percentChance) { - snd_illness.Play(); - G.stats.illness++; - this.drawSickIndicator += secondsWorthOfFrames(1.5); - } + var percentChance = G.stats.crew + ((this.currentSpeed / (G.stats.energy + 0.001)) * G.stats.illness); // +0.001 on the off-chance that energy reaches 0. + if (Math.randomRange(0, 100) < percentChance) { + snd_illness.Play(); + G.stats.illness++; + this.drawSickIndicator += secondsWorthOfFrames(1.5); + } } diff --git a/prefabs/wavePrefab.js b/prefabs/wavePrefab.js index 7ef69d7..99cf6fe 100644 --- a/prefabs/wavePrefab.js +++ b/prefabs/wavePrefab.js @@ -1,27 +1,27 @@ var ani_wave = OS.A.Add("Wave", 64, 64, {columns: 10, speed: 1/10}); function wavePrefab() { - if (Oversimplified.DEBUG.showMessages) console.log("Ran wavePrefab()"); - prefabsLoaded++; + if (Oversimplified.DEBUG.showMessages) console.log("Ran wavePrefab()"); + prefabsLoaded++; } var pr_wave = OS.P.Add("Wave Particle", { - imageSrc: "images/wave_sheet.png", - animations: [ani_wave], - depth: -90, // Draw above ocean, below everything else. + imageSrc: "images/wave_sheet.png", + animations: [ani_wave], + depth: -90, // Draw above ocean, below everything else. - lifeTimer: 100, + lifeTimer: 100, }); pr_wave.DoFirst = function () { - if (!snd_wave.IsPlaying()) { - snd_wave.Play(); - } + if (!snd_wave.IsPlaying()) { + snd_wave.Play(); + } } pr_wave.Do = function () { - // Move around randomly. - this.lifeTimer--; - if (this.lifeTimer <= 0) { - this.Destroy(); - } + // Move around randomly. + this.lifeTimer--; + if (this.lifeTimer <= 0) { + this.Destroy(); + } } \ No newline at end of file diff --git a/rooms/oceanRoom.js b/rooms/oceanRoom.js index f9cdd0b..4bb1ec3 100644 --- a/rooms/oceanRoom.js +++ b/rooms/oceanRoom.js @@ -1,177 +1,177 @@ function oceanRoom () { - if (Oversimplified.DEBUG.showMessages) console.log("Ran oceanRoom()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran oceanRoom()"); } rm_Ocean.waveTimer = Math.round(Math.randomRange(30, 150)); rm_Ocean.clockTimerCount = 1; // Set it to 1 so it doesn't check for player illness immediately! rm_Ocean.DoFirst = function () { - mus_title.Play(); + mus_title.Play(); - // G.player and G.oceanParticle are created in loadPrefabs.js + // G.player and G.oceanParticle are created in loadPrefabs.js - rm_Ocean.GenerateMap(); + rm_Ocean.GenerateMap(); - console.log("player xBound: " + G.player.xBound); - G.player.x = (this.squareSize * (this.squaresX / 2)) - (this.squareSize / 2) - G.player.xBound; - G.player.y = (this.squareSize * (this.squaresY / 2)); - // console.log(G.player.name + " created at " + G.player.x + ", " + G.player.y); + console.log("player xBound: " + G.player.xBound); + G.player.x = (this.squareSize * (this.squaresX / 2)) - (this.squareSize / 2) - G.player.xBound; + G.player.y = (this.squareSize * (this.squaresY / 2)); + // console.log(G.player.name + " created at " + G.player.x + ", " + G.player.y); - G.oceanParticle.x = G.player.x + randomSmidge(); - G.oceanParticle.y = G.player.y + randomSmidge(); + G.oceanParticle.x = G.player.x + randomSmidge(); + G.oceanParticle.y = G.player.y + randomSmidge(); - // Reset camera whenever room starts - OS.SetCamera({ - x: G.player.x - (OS.camera.width / 2), - y: G.player.y - (OS.camera.height / 2), - objectToFollow: G.player - }); + // Reset camera whenever room starts + OS.SetCamera({ + x: G.player.x - (OS.camera.width / 2), + y: G.player.y - (OS.camera.height / 2), + objectToFollow: G.player, + }); - this.mapLeftTrigger = OS.camera.hBorder; - this.mapLeftTriggerTarget = this.width - (OS.camera.width - OS.camera.hBorder); - this.mapRightTrigger = this.width - OS.camera.hBorder; - this.mapRightTriggerTarget = OS.camera.width - OS.camera.hBorder; - this.mapUpTrigger = OS.camera.vBorder; - this.mapUpTriggerTarget = this.height - (OS.camera.height - OS.camera.vBorder); - this.mapDownTrigger = this.height - OS.camera.vBorder; - this.mapDownTriggerTarget = OS.camera.height - OS.camera.vBorder; + this.mapLeftTrigger = OS.camera.hBorder; + this.mapLeftTriggerTarget = this.width - (OS.camera.width - OS.camera.hBorder); + this.mapRightTrigger = this.width - OS.camera.hBorder; + this.mapRightTriggerTarget = OS.camera.width - OS.camera.hBorder; + this.mapUpTrigger = OS.camera.vBorder; + this.mapUpTriggerTarget = this.height - (OS.camera.height - OS.camera.vBorder); + this.mapDownTrigger = this.height - OS.camera.vBorder; + this.mapDownTriggerTarget = OS.camera.height - OS.camera.vBorder; - // G.economy.UpdateEconomy(); + // G.economy.UpdateEconomy(); } rm_Ocean.Do = function () { - if (G.gameStarted) { - if (guiControl && guiControl.inventory && guiControl.map && guiControl.trade) { // Force it to wait until loaded. - if (!guiControl.inventory.show && !guiControl.map.show && !guiControl.trade.show) { - // Move G.oceanParticle around based on player's movement. - if (G.oceanParticle.CheckPosition) G.oceanParticle.CheckPosition(G.player.x, G.player.y, G.player.direction); + if (G.gameStarted) { + if (guiControl && guiControl.inventory && guiControl.map && guiControl.trade) { // Force it to wait until loaded. + if (!guiControl.inventory.show && !guiControl.map.show && !guiControl.trade.show) { + // Move G.oceanParticle around based on player's movement. + if (G.oceanParticle.CheckPosition) G.oceanParticle.CheckPosition(G.player.x, G.player.y, G.player.direction); - if (ct_cancel().down) { - snd_select.Play(); - guiControl.inventory.activateDelay = 5; - guiControl.inventory.show = true; - } - if (ct_m.down) { - snd_select.Play(); - guiControl.map.activateDelay = 5; - guiControl.map.show = true; - } - } + if (ct_cancel().down) { + snd_select.Play(); + guiControl.inventory.activateDelay = 5; + guiControl.inventory.show = true; } - - this.RunClock(); - } - // Make waves even if the game hasn't started, but not when on trade screen. - if (guiControl && guiControl.trade) { // Force it to wait until loaded. - if (!guiControl.trade.show) { - this.waveTimer--; - if (this.waveTimer <= 0) { - var wave = this.AddObject(OS.P["Wave Particle"]); - wave.x = G.player.x + (randomSmidge() * 4); - wave.y = G.player.y + (randomSmidge() * 4); - - this.waveTimer = Math.round(Math.randomRange(30, 150)); - } + if (ct_m.down) { + snd_select.Play(); + guiControl.map.activateDelay = 5; + guiControl.map.show = true; } + } } + + this.RunClock(); + } + // Make waves even if the game hasn't started, but not when on trade screen. + if (guiControl && guiControl.trade) { // Force it to wait until loaded. + if (!guiControl.trade.show) { + this.waveTimer--; + if (this.waveTimer <= 0) { + var wave = this.AddObject(OS.P["Wave Particle"]); + wave.x = G.player.x + (randomSmidge() * 4); + wave.y = G.player.y + (randomSmidge() * 4); + + this.waveTimer = Math.round(Math.randomRange(30, 150)); + } + } + } } rm_Ocean.DrawAbove = function () { - if (G.gameStarted) { - this.DrawNightDarkness(); + if (G.gameStarted) { + this.DrawNightDarkness(); - guiControl.drawSpeedGauge(); + guiControl.drawSpeedGauge(); - guiControl.drawEnergyBar(); + guiControl.drawEnergyBar(); - guiControl.drawClock(); + guiControl.drawClock(); - guiControl.inventory.Draw(); - guiControl.map.Draw(); - guiControl.trade.Draw(); - } else { - guiControl.title.Draw(); - } + guiControl.inventory.Draw(); + guiControl.map.Draw(); + guiControl.trade.Draw(); + } else { + guiControl.title.Draw(); + } } rm_Ocean.DoLast = function () { - // Clear Objects on room exit. This is best practice unless you need persistent objects. - //rm_Ocean.objects = {}; + // Clear Objects on room exit. This is best practice unless you need persistent objects. + //rm_Ocean.objects = {}; } rm_Ocean.RunClock = function () { - if (guiControl.trade && !guiControl.trade.show) { // Only advance time when not trading. - rm_Ocean.clockTimerCount++; - if (rm_Ocean.clockTimerCount > rm_Ocean.clockTimerCutoff) { - rm_Ocean.clockTimerCount = 0; - // Play New_Day sound. - G.economy.UpdateEconomy(); + if (guiControl.trade && !guiControl.trade.show) { // Only advance time when not trading. + rm_Ocean.clockTimerCount++; + if (rm_Ocean.clockTimerCount > rm_Ocean.clockTimerCutoff) { + rm_Ocean.clockTimerCount = 0; + // Play New_Day sound. + G.economy.UpdateEconomy(); - for (var i = 0; i < G.map.length; i++) { - G.map[i].island.NewDay(); - } + for (var i = 0; i < G.map.length; i++) { + G.map[i].island.NewDay(); + } - G.SaveGame(); - } - - if (rm_Ocean.clockTimerCount == 0 || - rm_Ocean.clockTimerCount == Math.round(rm_Ocean.clockTimerCutoff * 0.33) || - rm_Ocean.clockTimerCount == Math.round(rm_Ocean.clockTimerCutoff * 0.66)) { - G.player.CheckIllnessIncrease(); - } + G.SaveGame(); } + + if (rm_Ocean.clockTimerCount == 0 || + rm_Ocean.clockTimerCount == Math.round(rm_Ocean.clockTimerCutoff * 0.33) || + rm_Ocean.clockTimerCount == Math.round(rm_Ocean.clockTimerCutoff * 0.66)) { + G.player.CheckIllnessIncrease(); + } + } } rm_Ocean.DrawNightDarkness = function () { - var alphaFormula = (Math.sin((((this.clockTimerCount / (this.clockTimerCutoff * Math.PI)) * 10) * 1.5) - 2) - 0.4); - if (alphaFormula < 0) alphaFormula = 0; - - if (alphaFormula > 0) { - var saveGlobalAlpha = OS.context.globalAlpha; - var tmp = Oversimplified.context.fillStyle; - OS.context.globalAlpha = alphaFormula; - Oversimplified.context.fillStyle = "#112189"; - Oversimplified.context.fillRect(0, 0, Oversimplified.camera.width, Oversimplified.camera.height); - Oversimplified.context.fillStyle = tmp; - Oversimplified.context.globalAlpha = saveGlobalAlpha; - } + var alphaFormula = (Math.sin((((this.clockTimerCount / (this.clockTimerCutoff * Math.PI)) * 10) * 1.5) - 2) - 0.4); + if (alphaFormula < 0) alphaFormula = 0; + + if (alphaFormula > 0) { + var saveGlobalAlpha = OS.context.globalAlpha; + var tmp = Oversimplified.context.fillStyle; + OS.context.globalAlpha = alphaFormula; + Oversimplified.context.fillStyle = "#112189"; + Oversimplified.context.fillRect(0, 0, Oversimplified.camera.width, Oversimplified.camera.height); + Oversimplified.context.fillStyle = tmp; + Oversimplified.context.globalAlpha = saveGlobalAlpha; + } } rm_Ocean.GenerateMap = function () { - var xSquares = [25]; - var ySquares = [22]; - while (xSquares.length < this.numberOfIslands) { - var randomNumber = Math.round(Math.randomRange(2, this.squaresX - 2)); - var found = false; - for (var i = 0; i < xSquares.length; i++) { - if (xSquares[i] - ((this.squaresX / this.numberOfIslands) / 2) < randomNumber && randomNumber < xSquares[i] + ((this.squaresX / this.numberOfIslands) / 2)) { - found = true; - break; - } - } - if (!found) xSquares.push(randomNumber); - } - while (ySquares.length < this.numberOfIslands) { - var randomNumber = Math.round(Math.randomRange(2, this.squaresY - 2)); - var found = false; - for (var i = 0; i < ySquares.length; i++) { - if (ySquares[i] - ((this.squaresY / this.numberOfIslands) / 2) < randomNumber && randomNumber < ySquares[i] + ((this.squaresY / this.numberOfIslands) / 2)) { - found = true; - break; - } - } - if (!found) ySquares.push(randomNumber); - } - - for (var i = 0; i < this.numberOfIslands; i++) { - G.map[i] = { - island: rm_Ocean.AddObject(OS.P["Island"], { - x: this.squareSize * xSquares[i], - y: this.squareSize * ySquares[i] - }), - drawX: xSquares[i], - drawY: ySquares[i], - drawWidth: 1, - drawHeight: 1 - }; - } + var xSquares = [25]; + var ySquares = [22]; + while (xSquares.length < this.numberOfIslands) { + var randomNumber = Math.round(Math.randomRange(2, this.squaresX - 2)); + var found = false; + for (var i = 0; i < xSquares.length; i++) { + if (xSquares[i] - ((this.squaresX / this.numberOfIslands) / 2) < randomNumber && randomNumber < xSquares[i] + ((this.squaresX / this.numberOfIslands) / 2)) { + found = true; + break; + } + } + if (!found) xSquares.push(randomNumber); + } + while (ySquares.length < this.numberOfIslands) { + var randomNumber = Math.round(Math.randomRange(2, this.squaresY - 2)); + var found = false; + for (var i = 0; i < ySquares.length; i++) { + if (ySquares[i] - ((this.squaresY / this.numberOfIslands) / 2) < randomNumber && randomNumber < ySquares[i] + ((this.squaresY / this.numberOfIslands) / 2)) { + found = true; + break; + } + } + if (!found) ySquares.push(randomNumber); + } + + for (var i = 0; i < this.numberOfIslands; i++) { + G.map[i] = { + island: rm_Ocean.AddObject(OS.P["Island"], { + x: this.squareSize * xSquares[i], + y: this.squareSize * ySquares[i] + }), + drawX: xSquares[i], + drawY: ySquares[i], + drawWidth: 1, + drawHeight: 1, + }; + } } diff --git a/start.js b/start.js index c7de84e..2e4a6cc 100644 --- a/start.js +++ b/start.js @@ -3,36 +3,36 @@ OS.S.numberOfScriptsToLoad = 16; OS.S.pixelScale = 4; // Oversimplified.DEBUG.showMessages = false; OS.SetCamera({ - width: pixel(160), // 640 - height: pixel(120), // 480 - hBorder: pixel(64), - vBorder: pixel(48)}); + width: pixel(160), // 640 + height: pixel(120), // 480 + hBorder: pixel(64), + vBorder: pixel(48), +}); -function start() -{ - OS.AddScript("loadControls.js"); - OS.AddScript("loadAudio.js"); - OS.AddScript("loadGameManager.js"); - OS.AddScript("loadGUIs.js"); - OS.AddScript("loadPrefabs.js"); - OS.AddScript("loadRooms.js"); +function start() { + OS.AddScript("loadControls.js"); + OS.AddScript("loadAudio.js"); + OS.AddScript("loadGameManager.js"); + OS.AddScript("loadGUIs.js"); + OS.AddScript("loadPrefabs.js"); + OS.AddScript("loadRooms.js"); - if (Oversimplified.DEBUG.showMessages) console.log("Ran start()"); + if (Oversimplified.DEBUG.showMessages) console.log("Ran start()"); } function pixel(number) { - return ((typeof number !== 'undefined') ? number : 1) * OS.S.pixelScale; + return ((typeof number !== 'undefined') ? number : 1) * OS.S.pixelScale; } function secondsWorthOfFrames(seconds) { - return seconds * (1 / OS.R[OS.R.currentRoom].stepSpeed); + return seconds * (1 / OS.R[OS.R.currentRoom].stepSpeed); } function randomSmidge() { // Return a random amount between -10 and 10 on the pixel scale. - return (pixel(Math.round(Math.randomRange(-10, 10)))); + return (pixel(Math.round(Math.randomRange(-10, 10)))); } function sortNumber(a, b) { - return a - b; + return a - b; } diff --git a/stylesheets/styles.css b/stylesheets/styles.css index 647f08d..f38c863 100644 --- a/stylesheets/styles.css +++ b/stylesheets/styles.css @@ -28,13 +28,12 @@ time, mark, audio, video { body { padding:10px 50px 0 0; font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 14px; - color: #232323; - background-color: #FBFAF7; - margin: 0; - line-height: 1.8em; - -webkit-font-smoothing: antialiased; - + font-size: 14px; + color: #232323; + background-color: #FBFAF7; + margin: 0; + line-height: 1.8em; + -webkit-font-smoothing: antialiased; } h1, h2, h3, h4, h5, h6 { @@ -47,32 +46,32 @@ p, ul, ol, table, dl { } h1, h2, h3 { - font-family: Arvo, Monaco, serif; + font-family: Arvo, Monaco, serif; line-height:1.3; - font-weight: normal; + font-weight: normal; } h1,h2, h3 { - display: block; - border-bottom: 1px solid #ccc; - padding-bottom: 5px; + display: block; + border-bottom: 1px solid #ccc; + padding-bottom: 5px; } h1 { - font-size: 30px; + font-size: 30px; } h2 { - font-size: 24px; + font-size: 24px; } h3 { - font-size: 18px; + font-size: 18px; } h4, h5, h6 { - font-family: Arvo, Monaco, serif; - font-weight: 700; + font-family: Arvo, Monaco, serif; + font-weight: 700; } a { @@ -82,15 +81,15 @@ a { } a:hover { - text-decoration: underline; + text-decoration: underline; } a small { - font-size: 12px; + font-size: 12px; } em { - font-style: italic; + font-style: italic; } strong { @@ -116,7 +115,7 @@ blockquote { } dl, dt, dd, dl p { - font-color: #444; + font-color: #444; } dl dt { @@ -163,19 +162,19 @@ p img { /* Code blocks */ code, pre { - font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; + font-family: Monaco, "Bitstream Vera Sans Mono", "Lucida Console", Terminal, monospace; color:#000; font-size:14px; } pre { - padding: 4px 12px; + padding: 4px 12px; background: #FDFEFB; border-radius:4px; border:1px solid #D7D8C8; overflow: auto; overflow-y: hidden; - margin-bottom: 32px; + margin-bottom: 32px; } @@ -193,8 +192,8 @@ table { th { font-family: 'Arvo', Helvetica, Arial, sans-serif; - font-size: 18px; - font-weight: normal; + font-size: 18px; + font-weight: normal; padding: 10px; background: #232323; color: #FDFEFB; @@ -202,7 +201,7 @@ th { td { padding: 10px; - background: #ccc; + background: #ccc; } @@ -215,47 +214,47 @@ td { /* Header */ header { - background-color: #171717; - color: #FDFDFB; + background-color: #171717; + color: #FDFDFB; width:170px; float:left; position:fixed; - border: 1px solid #000; - -webkit-border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-topright: 4px; - -moz-border-radius-bottomright: 4px; - border-top-right-radius: 4px; - border-bottom-right-radius: 4px; - padding: 34px 25px 22px 50px; - margin: 30px 25px 0 0; - -webkit-font-smoothing: antialiased; + border: 1px solid #000; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -moz-border-radius-topright: 4px; + -moz-border-radius-bottomright: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + padding: 34px 25px 22px 50px; + margin: 30px 25px 0 0; + -webkit-font-smoothing: antialiased; } p.header { - font-size: 16px; + font-size: 16px; } h1.header { - font-family: Arvo, sans-serif; - font-size: 30px; - font-weight: 300; - line-height: 1.3em; - border-bottom: none; - margin-top: 0; + font-family: Arvo, sans-serif; + font-size: 30px; + font-weight: 300; + line-height: 1.3em; + border-bottom: none; + margin-top: 0; } h1.header, a.header, a.name, header a{ - color: #fff; + color: #fff; } a.header { - text-decoration: underline; + text-decoration: underline; } a.name { - white-space: nowrap; + white-space: nowrap; } header ul { @@ -264,32 +263,32 @@ header ul { } header li { - list-style-type: none; + list-style-type: none; width:132px; height:15px; - margin-bottom: 12px; - line-height: 1em; - padding: 6px 6px 6px 7px; + margin-bottom: 12px; + line-height: 1em; + padding: 6px 6px 6px 7px; - background: #AF0011; - background: -moz-linear-gradient(top, #AF0011 0%, #820011 100%); + background: #AF0011; + background: -moz-linear-gradient(top, #AF0011 0%, #820011 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); background: -webkit-linear-gradient(top, #AF0011 0%,#820011 100%); background: -o-linear-gradient(top, #AF0011 0%,#820011 100%); background: -ms-linear-gradient(top, #AF0011 0%,#820011 100%); background: linear-gradient(top, #AF0011 0%,#820011 100%); - border-radius:4px; + border-radius:4px; border:1px solid #0D0D0D; - -webkit-box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1); - box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1); + -webkit-box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1); + box-shadow: inset 0px 1px 1px 0 rgba(233,2,38, 1); } header li:hover { - background: #C3001D; - background: -moz-linear-gradient(top, #C3001D 0%, #950119 100%); + background: #C3001D; + background: -moz-linear-gradient(top, #C3001D 0%, #950119 100%); background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#f8f8f8), color-stop(100%,#dddddd)); background: -webkit-linear-gradient(top, #C3001D 0%,#950119 100%); background: -o-linear-gradient(top, #C3001D 0%,#950119 100%); @@ -298,21 +297,21 @@ header li:hover { } a.buttons { - -webkit-font-smoothing: antialiased; - background: url(../images/arrow-down.png) no-repeat; - font-weight: normal; - text-shadow: rgba(0, 0, 0, 0.4) 0 -1px 0; - padding: 2px 2px 2px 22px; - height: 30px; + -webkit-font-smoothing: antialiased; + background: url(../images/arrow-down.png) no-repeat; + font-weight: normal; + text-shadow: rgba(0, 0, 0, 0.4) 0 -1px 0; + padding: 2px 2px 2px 22px; + height: 30px; } a.github { - background: url(../images/octocat-small.png) no-repeat 1px; + background: url(../images/octocat-small.png) no-repeat 1px; } a.buttons:hover { - color: #fff; - text-decoration: none; + color: #fff; + text-decoration: none; } @@ -332,7 +331,7 @@ footer { float:left; position:fixed; bottom:10px; - padding-left: 50px; + padding-left: 50px; } @media print, screen and (max-width: 960px) { @@ -348,11 +347,11 @@ footer { width:auto; } - footer { - border-top: 1px solid #ccc; - margin:0 84px 0 50px; - padding:0; - } + footer { + border-top: 1px solid #ccc; + margin:0 84px 0 50px; + padding:0; + } header { padding-right:320px; @@ -381,17 +380,17 @@ footer { header { padding:10px 20px 0; - margin-right: 0; + margin-right: 0; } - section { + section { padding:10px 0 10px 20px; margin:0 0 30px; } - footer { - margin: 0 0 0 30px; - } + footer { + margin: 0 0 0 30px; + } header ul, header p.view { position:static; @@ -404,13 +403,13 @@ footer { display:none; } - footer { - margin: 0 0 0 20px; - } + footer { + margin: 0 0 0 20px; + } - footer a{ - display:block; - } + footer a{ + display:block; + } }