// 大きなミニマップ // ver 0.0.2.1 : 地下の不完全だった箇所を修正。普通にプレイしてると関係ないので修正だけ。 // ver 0.0.2 : 地下の事を忘れて居た…と言うわけで修正。 // ver 0.0.1 //wayward v1.9.2 対応 //option var BIGminiMap_key = "n"; // マップを開くキー。a-zのみ。 //モンスター表示 var miniMap_DisplayMonster = true; //true : 表示, false : 非表示 var miniMap_MonsterColor = "#990000"; //"#RRGGBB" RGB 00-FF(16進数) var BIGminiMap_Grid = true; //true : 表示, false : 非表示 var BIGminiMap_GridColor = "#000000"; //"#RRGGBB" RGB 00-FF(16進数) var BIGminiMap_SquareSize = 14; //大きなミニマップの一マスのサイズ。 //本体 BIGminiMap_key = BIGminiMap_key.toUpperCase().charCodeAt(); var BIGminiMap_lookFlag = true; var BIGminiMap_cartographyFlag = false; var BIGminiMap_offsetX; var BIGminiMap_offsetY; var BIGminiMap_BlackBox; if(document.getElementById('mod_minimap') !== null){ var delTargetElement=document.getElementById('mod_minimap'); delTargetElement.parentNode.removeChild(delTargetElement); $('#mod_minimap_BIGminiMapWindow').dialog("destroy"); $('#mod_minimap_BIGminiMapWindow').dialog('widget').remove(); } var BIGminiMap_MapSize = BIGminiMap_Grid ? (BIGminiMap_SquareSize + 1) * 38 + 1 : BIGminiMap_SquareSize * 38; $("#afterload").prepend('
'); $("#mod_minimap").prepend('
'); $('#mod_minimap_BIGminiMapWindow').append(''); var mod_minimap_BIGminiMapCanvas = document.getElementById('mod_minimap_BIGminiMapCanvas').getContext('2d'); $('#mod_minimap_BIGminiMapWindow').dialog({ width: 620, height: 620, autoOpen: false, closeOnEscape: false, //modal: true, title: "BIGminiMap", }); function UpdateBIGminiMap(){ if (BIGminiMap_Grid){ mod_minimap_BIGminiMapCanvas.fillStyle = BIGminiMap_GridColor; mod_minimap_BIGminiMapCanvas.fillRect(0, 0, BIGminiMap_MapSize, BIGminiMap_MapSize); } var mapUnderground = !BIGminiMap_cartographyFlag && player.x >= game.mapSize ? game.mapSize : 0; if (BIGminiMap_cartographyFlag || BIGminiMap_lookFlag) { var mapX = BIGminiMap_offsetX - 19; var mapY = BIGminiMap_offsetY - 19; } else { var mapX = player.x - 19; var mapY = player.y - 19; } if (mapX < 0 + mapUnderground) { mapX += game.mapSize; } if (mapY < 0) { mapY += game.mapSize; } for (var x = 0; 38 > x; x++) { for (var y = 0; 38 > y; y++) { mod_minimap_BIGminiMapCanvas.fillStyle = tiletypes[tile[(mapX + x) % game.mapSize + mapUnderground][(mapY + y) % game.mapSize].type].color; if (BIGminiMap_Grid) { mod_minimap_BIGminiMapCanvas.fillRect(x * (BIGminiMap_SquareSize + 1) + 1, y * (BIGminiMap_SquareSize + 1) + 1, BIGminiMap_SquareSize, BIGminiMap_SquareSize); } else { mod_minimap_BIGminiMapCanvas.fillRect(x * BIGminiMap_SquareSize, y * BIGminiMap_SquareSize, BIGminiMap_SquareSize, BIGminiMap_SquareSize); } } } if (BIGminiMap_cartographyFlag) { mod_minimap_BIGminiMapCanvas.fillStyle = "#000000"; for (var x = 0; 38 > x; x++) { for (var y = 0; 38 > y; y++) { if (BIGminiMap_BlackBox[x][y]){ if (BIGminiMap_Grid) { mod_minimap_BIGminiMapCanvas.fillRect(x * (BIGminiMap_SquareSize + 1) + 1, y * (BIGminiMap_SquareSize + 1) + 1, BIGminiMap_SquareSize, BIGminiMap_SquareSize); } else { mod_minimap_BIGminiMapCanvas.fillRect(x * BIGminiMap_SquareSize, y * BIGminiMap_SquareSize, BIGminiMap_SquareSize, BIGminiMap_SquareSize); } } } } mod_minimap_BIGminiMapCanvas.fillStyle = "#00ff00"; } else { if (miniMap_DisplayMonster){ mod_minimap_BIGminiMapCanvas.fillStyle = miniMap_MonsterColor; for (var x = 0; 38 > x; x++){ for (var y = 0; 38 > y; y++){ if (miniMap_DisplayMonster && tile[(mapX + x) % game.mapSize + mapUnderground][(mapY + y) % game.mapSize].monster){ if (BIGminiMap_Grid) { mod_minimap_BIGminiMapCanvas.fillRect(x * (BIGminiMap_SquareSize + 1) + 1, y * (BIGminiMap_SquareSize + 1) + 1, BIGminiMap_SquareSize, BIGminiMap_SquareSize); } else { mod_minimap_BIGminiMapCanvas.fillRect(x * BIGminiMap_SquareSize, y * BIGminiMap_SquareSize, BIGminiMap_SquareSize, BIGminiMap_SquareSize); } } } } } mod_minimap_BIGminiMapCanvas.fillStyle = "#ff0000"; } if (!BIGminiMap_lookFlag) { if (BIGminiMap_Grid) { mod_minimap_BIGminiMapCanvas.fillRect(19 * (BIGminiMap_SquareSize + 1) + 1, 19 * (BIGminiMap_SquareSize + 1) + 1, BIGminiMap_SquareSize, BIGminiMap_SquareSize); } else { mod_minimap_BIGminiMapCanvas.fillRect(19 * BIGminiMap_SquareSize, 19 * BIGminiMap_SquareSize, BIGminiMap_SquareSize, BIGminiMap_SquareSize); } } } function makeMiniMap(offsetX, offsetY, cartography) { //19 centers the view around the player/offset BIGminiMap_lookFlag = true; BIGminiMap_cartographyFlag = false; var mapX = offsetX ? offsetX - 19 : player.x - 19; var mapY = offsetY ? offsetY - 19 : player.y - 19; var mapUnderground = !cartography && player.x >= game.mapSize ? game.mapSize : 0; if (mapX < 0) { mapX += game.mapSize; } if (mapY < 0) { mapY += game.mapSize; } var miniMapW = 38; var miniMapH = 38; var color = "#ff0000"; for (var x = 0; miniMapW > x; x++){ for (var y = 0; miniMapH > y; y++){ miniMapCanvas.fillStyle = tiletypes[tile[(mapX + x) % game.mapSize + mapUnderground][(mapY + y) % game.mapSize].type].color; miniMapCanvas.fillRect(x * 6, y * 6, 6, 6); } } if (cartography) { BIGminiMap_cartographyFlag = true; BIGminiMap_lookFlag = false; BIGminiMap_BlackBox = new Array(38); for(var i = 0; 38 > i; i++){ BIGminiMap_BlackBox[i] = new Array(38); } BIGminiMap_offsetX = offsetX; BIGminiMap_offsetY = offsetY; color = "#00ff00"; //Blue center for treasure var chance; miniMapCanvas.fillStyle = "#000000"; for (var x = 0; x < 38; x++) { for (var y = 0; y < 38; y++) { chance = Math.floor(Math.random() * 99 + 1); //The lower your skill, the more black boxes if (player.skills.cartography.percent <= (chance - 50)) { miniMapCanvas.fillRect(x * 6, y * 6, 6, 6); BIGminiMap_BlackBox[x][y] = true; } } } } else { if (miniMap_DisplayMonster){ miniMapCanvas.fillStyle = miniMap_MonsterColor; for (var x = 0; miniMapW > x; x++){ for (var y = 0; miniMapH > y; y++){ if (tile[(mapX + x) % game.mapSize + mapUnderground][(mapY + y) % game.mapSize].monster) { miniMapCanvas.fillRect(x * 6, y * 6, 6, 6); } } } } } //Show your character in the middle if (!offsetX && !offsetY || cartography) { BIGminiMap_lookFlag = false; miniMapCanvas.fillStyle = color; miniMapCanvas.fillRect(114, 114, 6, 6); } else { BIGminiMap_offsetX = offsetX; BIGminiMap_offsetY = offsetY; } if ($('#mod_minimap_BIGminiMapWindow').dialog('isOpen')) { UpdateBIGminiMap(); } } ui.$document.unbind("keyup").bind("keyup", function (e) { //Don't trap keyups while in craft filter input //this is needed because window only refreshes on //keyup events if (ui.$craftFilter.is(":focus")) { if (e.keyCode == 27) { //if ESC, clear and unfocus ui.$craftFilter.val(''); ui.$craftFilter.keyup(); ui.$craftFilter.blur(); } else if (e.keyCode == 13) { // if ENTER, just unfocus ui.$craftFilter.blur(); } return true; } else if (ui.$invFilter.is(":focus")) { if (e.keyCode == 27) { //if ESC, clear and unfocus ui.$invFilter.val(''); ui.$invFilter.keyup(); ui.$invFilter.blur(); } else if (e.keyCode == 13) { // if ENTER, just unfocus ui.$invFilter.blur(); } return true; } else if (ui.$code.is(":focus")) { return true; } if (ui.keyState[68] || ui.keyState[39] || ui.keyState[65] || ui.keyState[37] || ui.keyState[87] || ui.keyState[38] || ui.keyState[83] || ui.keyState[40] || ui.keyState[32] || ui.keyState[49] || ui.keyState[50] || ui.keyState[51] || ui.keyState[52] || ui.keyState[53] || ui.keyState[54] || ui.keyState[55] || ui.keyState[56] || ui.keyState[57] || ui.keyState[48] || ui.keyState[72] || ui.keyState[74] || ui.keyState[75] || ui.keyState[76] || ui.keyState[190] || ui.keyState[27] || ui.keyState[73] || ui.keyState[191] || ui.keyState[88] || ui.keyState[77] || ui.keyState[79] || ui.keyState[18] || ui.keyState[16] || ui.keyState[69] || ui.keyState[67] || ui.keyState[81] || ui.keyState[BIGminiMap_key]) { //Spacebar if (ui.keyState[32]) { if (!game.start) { ui.$mainMenu.dialog('open'); } } if (ui.keyState[27]) { //esc ui.$itemMenu.hide(); toggleDialog(ui.$mainMenu); //main menu } //Bounce all other keypresses when dead if (player.died) { ui.keyState[e.keyCode] = 0; return false; } if (ui.keyState[73]) { //i toggleDialog(ui.$inventoryWindow); //inventory //Disable filter autofocus ui.$invFilter.trigger('blur'); } if (ui.keyState[69]) { //e toggleDialog(ui.$equipmentWindow); //equipment } if (ui.keyState[67]) { //c toggleDialog(ui.$craftWindow); //crafts //Disable filter autofocus ui.$craftFilter.trigger('blur'); } if (ui.keyState[191]) { /// if (ui.$hintWindow.dialog("isOpen") !== true) { ui.$itemMenu.hide(); ui.hintDisplay("welcometowayward"); //help } else { ui.$hintWindow.dialog("close"); } } if (ui.keyState[88]) { //x toggleDialog(ui.$skillsWindow); //skills player.skillGain(false, false, false); } if (ui.keyState[77]) { //m toggleDialog(ui.$messagesWindow); //messages } if (ui.keyState[79]) { //o toggleDialog(ui.$optionsWindow); //options } if (ui.keyState[81]) { //q toggleActionsMenu(); //actions } if (ui.keyState[BIGminiMap_key]) { if ($('#mod_minimap_BIGminiMapWindow').dialog('isOpen')) { $('#mod_minimap_BIGminiMapWindow').dialog('close'); } else { UpdateBIGminiMap(); $('#mod_minimap_BIGminiMapWindow').dialog('open'); } } e.preventDefault(); } ui.keyState[e.keyCode] = 0; return true; }); ui.$document.unbind("keydown").bind("keydown", function (e) { //Don't trap key presses while in craft filter input if (ui.$craftFilter.is(":focus")) { return true; } else if (ui.$invFilter.is(":focus")) { return true; } else if (ui.$code.is(":focus")) { return true; } //Don't don't allow key presses if hint modal is opened if (ui.$hintWindow.dialog("isOpen") === true) { return true; } // only register a keydown if meta is not pressed // this is a workaround for a bug when pressing CMD // key combos in OS X under Chrome if (e.metaKey) { ui.keyState[e.keyCode] = 0; } else { ui.keyState[e.keyCode] = 1; } //Disable shift modifier on Firefox if (BrowserDetect.browser === "Firefox" && ui.keyState[16]) { ui.keyState[16] = 0; } //Don't capture keys on game menu, unless it's ESC if (ui.$mainMenu.dialog("isOpen") === true && !ui.keyState[27]) { ui.keyState[e.keyCode] = 0; } if (ui.keyState[68] || ui.keyState[39] || ui.keyState[65] || ui.keyState[37] || ui.keyState[87] || ui.keyState[38] || ui.keyState[83] || ui.keyState[40] || ui.keyState[32] || ui.keyState[49] || ui.keyState[50] || ui.keyState[51] || ui.keyState[52] || ui.keyState[53] || ui.keyState[54] || ui.keyState[55] || ui.keyState[56] || ui.keyState[57] || ui.keyState[48] || ui.keyState[72] || ui.keyState[74] || ui.keyState[75] || ui.keyState[76] || ui.keyState[190] || ui.keyState[27] || ui.keyState[73] || ui.keyState[191] || ui.keyState[88] || ui.keyState[77] || ui.keyState[79] || ui.keyState[18] || ui.keyState[16] || ui.keyState[69] || ui.keyState[67] || ui.keyState[81] || ui.keyState[BIGminiMap_key]) { e.preventDefault(); } return true; }); passTurn(false);