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
- -
- - - + + + + + \ 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; + } }