您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Various tweaks to improve Order of the Hammer's brass (orderofthehammer.com)
// ==UserScript== // @name BRASS online improved // @namespace tequila_j-script // @version 0.2.3 // @description Various tweaks to improve Order of the Hammer's brass (orderofthehammer.com) // @match http://brass.orderofthehammer.com/board.php // @match https://brass.orderofthehammer.com/board.php* // @match http://*.orderofthehammer.com/board.php* // @match https://*.orderofthehammer.com/board.php* // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js // @require https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js // @resource jquery-ui-theme http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/themes/humanity/jquery-ui.min.css // @resource condensed-font https://fonts.googleapis.com/css?family=Roboto+Condensed // @grant GM_addStyle // @grant GM_getResourceText // @run-at document-start // ==/UserScript== var condensedFontCSSsrc = GM_getResourceText ("condensed-font"); GM_addStyle (condensedFontCSSsrc); function urlParam(param) { var vars = {}; window.location.href.replace( location.hash, '' ).replace( /[?&]+([^=&]+)=?([^&]*)?/gi, // regexp function( m, key, value ) { // callback vars[key] = value !== undefined ? value : ''; } ); if ( param ) { return vars[param] ? vars[param] : null; } return vars; } function updateCSS() { GM_addStyle(` .dropdown { position: relative; display: inline-block; font: 12px 'Roboto Condensed', sans-serif; } .dropdown-content { display: none; position: absolute; padding: 4px; top: 0px; background-color: #f9f9f9; min-width: 160px; box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); z-index: 250; box-shadow: -5px -5px 3px #000000; } .dropdown-content li { color: black; padding: 4px 6px; text-decoration: none; display: block; } .dropdown-content li.title { color: black; padding: 4px 6px; text-decoration: none; display: block; border-bottom: 1px solid black; background-color: #d1d1d1; } .dropdown-content li.title:hover {background-color: #d1d1d1} .dropdown-content li:hover {background-color: #b1b1b1} .dropdown:hoverA .dropdown-content { display: block; } .sub-menu { margin-left: 10px; margin-top: 22px; } .sub-menu-1 { } `); //fix title menu z-index GM_addStyle(` div.play-area { position:relative; } .card-pointer { width: 20px; height: 20px; border-radius: 5px; //background: url(https://firebasestorage.googleapis.com/v0/b/brass-8ba1c.appspot.com/o/location.png?alt=media&token=78344917-5f7c-4d1f-9f22-8a70f992a006); background: url(http://i.imgur.com/wDnJWfH.png); background-size: 20px; background-repeat: no-repeat; z-index: 200; } .card-pointer-1 { } .card-pointer-2 { margin-left: 17px; } .card-pointer-3 { margin-left: 34px; } .card-pointer-4 { margin-left: 51px; } div.board-side { position: absolute; left: 960px; top: 0px; width: 400px; } div.main-board { position:relative; background-color:peru !important; } div.industry-cards { position:relative; background-color: rgba(159,89,41,0.8); padding: 10px 5px; z-index: 200; display:inline-block; border: 1px solid lightgray; } div.industry-cards-full { top: 0px; left: 0px; } div.industry-cards-compact { top:0px; left:150px; } div.industry-card { display: inline-block; } div.industry-card img { margin:5px; max-width: 25px; max-height: 30px; } div.extra-player-board-container-normal { height: 225px; width: 362px; } div.extra-player-board-container-normal div.scale-wrapper { transform: scale(0.75); transform-origin: 0 0; } div.extra-player-board tr.player-info-money { font-size: 24px ; } div.extra-player-board table tr { font-size: 14px; } div.extra-player-board-container-mini { display: inline-block; } div.extra-player-board-container-mini-3 { height: 100px; width: 180px; } div.extra-player-board-container-mini-4 { height: 75px; width: 121px; } div.extra-player-board-container-miniatures { width: 370px; } div.extra-player-board-container-miniatures div.extra-player-board-container-mini table tr { display: none; } div.extra-player-board-container-miniatures div.extra-player-board-container-mini table tr.player-info-money { display: block; } div.extra-player-board-container-mini div.scale-wrapper { transform-origin: 0 0; cursor: pointer; } div.extra-player-board-container-mini-2 div.scale-wrapper { transform: scale(0.5); } div.extra-player-board-container-mini-3 div.scale-wrapper { transform: scale(0.375); } div.extra-player-board-container-mini-3 table tr.player-info-money { font-size: 36px; } div.extra-player-board-container-mini-4 div.scale-wrapper { transform: scale(0.25); } div.extra-player-board-container-mini-4 table tr.player-info-money { font-size: 42px; } div.extra-player-board-container-mini div.extra-player-board { } `); GM_addStyle(` div#game-history { margin-top: 15px; } table.log-table { font-size: x-small; border-collapse:collapse; font-family: arial, serif; } table.log-table tr:hover { background-color: lightgrey; } table.log-table .colclass0 { } table.log-table .colclass1 { } table.log-table .colclass2 { } table.log-table .log-color-blue .time-column { } table.log-table td { border-bottom: 1px solid grey; padding: 2px 0px 2px 2px; } table.log-table td.time-column { width: 5px; } table.log-table .log-color-purple td { border-color: purple; } table.log-table .log-color-purple .time-column { background-color: purple; } table.log-table .log-color-red td { border-color: red; } table.log-table .log-color-red .time-column { background-color: red; } table.log-table .log-color-yellow td { border-color: yellow; } table.log-table .log-color-yellow .time-column { background-color: yellow; } table.log-table .log-color-green td { border-color: green; } table.log-table .log-color-green .time-column { background-color: green; } table.log-table .log-color-gray td { border-color: gray; } table.log-table .log-color-gray .time-column { background-color: gray; } table.log-table .log-color-start td { border-color: black; } table.log-table .log-color-start .time-column { background-color: black; } `) } function setSelectByText(select, text) { select.find('option').filter(function() { return this.text == text; }).prop('selected', true); return select; } function createSelect(parent) { var chooseAction = createMenuFromSelect($(parent),$('#MoveType')); if (chooseAction === undefined) return; var options = chooseAction.options; for (i = 0; i < options.length; i++) { $(options[i]).on("click", function() { var option = $(this); var chooseActionValue = $(this).data("value"); switch (chooseActionValue) { case "0": //Build Industry console.log("Industry for " + $("#dCardX").find("select:first").val()); var helper = "#dBuildOpts" + $("#dCardX").find("select:first").val(); var select = $(helper).find("select:first"); var buildIndustryOptions = createMenuFromSelect($(this),select,1); // Location card console.log(">> " + select.attr("name")); if (select.attr("name").startsWith("Tile")) { var indOptions = buildIndustryOptions.options; for (j = 0 ; j < indOptions.length; j++) { var indOption = $(indOptions[j]); var select2 = $(helper).find("select[name^=IndustrySpace]"); indOption.on("click", function() { var nextMenu = createMenuFromSelect($(this),select2,2); nextMenu.options.each(function () { var coalIsVisible = $("#dCoal select[name^='CoalSource']").is(":visible"); console.log("Coal" + coalIsVisible); var ironIsVisible = $("#dIron select[name^='IronSource']").is(":visible"); console.log("Iron" + ironIsVisible); if (coalIsVisible) { $(this).on('click', function() { var nextMenu = createMenuFromSelect($(this),$("#dCoal select[name^='CoalSource']"),3, "Coal"); if (ironIsVisible) { nextMenu.options.each(function() { $(this).on("click", function () { var nextMenu = createMenuFromSelect($(this),$("#dIron select[name^='IronSource']"),3, "Iron"); }) }) } }) } else { if (ironIsVisible) { nextMenu.options.each(function() { var nextMenu = createMenuFromSelect($(this),$("#dIron select[name^='IronSource']"),3, "Iron"); }) } } }) }) } } //industry card else { if (select.attr("name").startsWith("Industry")) { buildIndustryOptions.options.each( function() { $(this).on("click", function() { var coalIsVisible = $("#dCoal select[name^='CoalSource']").is(":visible"); console.log("Coal" + coalIsVisible); var ironIsVisible = $("#dIron select[name^='IronSource']").is(":visible"); console.log("Iron" + ironIsVisible); if (coalIsVisible) { console.log("Coal criado"); var nextMenu = createMenuFromSelect($(this),$("#dCoal select[name^='CoalSource']"),3, "Coal"); if (ironIsVisible) { nextMenu.options.each(function() { $(this).on("click", function () { var nextMenu = createMenuFromSelect($(this),$("#dIron select[name^='IronSource']"),3, "Iron"); }) }) } } else { if (ironIsVisible) { nextMenu.options.each(function() { var nextMenu = createMenuFromSelect($(this),$("#dIron select[name^='IronSource']"),3, "Iron"); }) } } }) }) } } break; case "1": //Double Action //select second card var varNextSelectName = "SecondCard"; var selectChooseSecondCard = createMenuFromSelect($(this),$("#dCardY").find("select[name=" + varNextSelectName +"]"),1); for (j = 0 ; j < selectChooseSecondCard.options.length; j++) { var srcOption = $(selectChooseSecondCard.options[j]); srcOption.on("click", function() { var nextMenu = createMenuFromSelect($(this),$("#dDoubleBuildOpts select[name^='TileTypeY']"),2); nextMenu.options.each(function () { $(this).on("click", function() { var nextMenu = createMenuFromSelect($(this),$("#dDoubleBuildOpts select[name^='IndustrySpaceY']"),3); nextMenu.options.each(function () { var coalIsVisible = $("#dCoal select[name^='CoalSource']").is(":visible"); console.log("Coal" + coalIsVisible); var ironIsVisible = $("#dIron select[name^='IronSource']").is(":visible"); console.log("Iron" + ironIsVisible); if (coalIsVisible) { $(this).on('click', function() { var nextMenu = createMenuFromSelect($(this),$("#dCoal select[name^='CoalSource']"),3, "Coal"); if (ironIsVisible) { nextMenu.options.each(function() { $(this).on("click", function () { var nextMenu = createMenuFromSelect($(this),$("#dIron select[name^='IronSource']"),3, "Iron"); }) }) } }) } else { if (ironIsVisible) { nextMenu.options.each(function() { var nextMenu = createMenuFromSelect($(this),$("#dIron select[name^='IronSource']"),3, "Iron"); }) } } }) }) }) }) } break; case "2": // Build Link var varSelectName = "LinkToBuild"; var buildLinkOptions = createMenuFromSelect($(this),$("select[name=" + varSelectName +"]"),1); buildLinkOptions.options.each(function () { var srcOption = $(this); var coalIsVisible = $("#dCoal select[name^='CoalSource']").is(":visible"); if (coalIsVisible) { $(this).on('click', function() { var nextMenu = createMenuFromSelect($(this),$("#dCoal select[name^='CoalSource']"),3, "Coal"); }) } }) break; case "3": //Develop var buildLinkOptions = createMenuFromSelect($(this),$("#dTileType select[name^='TileType']"),1); var srcOptions = buildLinkOptions.options; for (j = 0 ; j < srcOptions.length; j++) { var srcOption = $(srcOptions[j]); srcOption.on("click", function() { var chooseOption = createMenuFromSelect($(this),$("#dIron select[name^='IronSource']"),2, "Iron"); }) } break; case "4": // Loan var buildLinkOptions = createMenuFromSelect($(this),$("#dLoan select[name^='LoanAmount']"),1); break; case "5": //Sell var srcMenuOptions = createMenuFromSelect($(this),$("#dIndustrySpaceX select[name^='IndustrySpace']"),1); var srcOptions = srcMenuOptions.options; for (j = 0 ; j < srcOptions.length; j++) { var srcOption = $(srcOptions[j]); srcOption.on("click", function() { var portOption = createMenuFromSelect($(this),$("#dIndustrySpaceX select[name^='PortSpace']"),2); }) } break; } }) } } function getCards() { var cardArea = $("body > p:eq(3)").text(); var cardsTextArray = cardArea.split(":"); if (cardsTextArray.length < 2) { return []; } var cards = cardsTextArray[1].trim().replace(/\.$/,"").split(/\s*,\s*/); //var cardOptions = $("#dCardX > select:first").find("option"); //var cards = []; //if (cardOptions !== undefined) { // for (i = 0; i < cardOptions.length; i++) { // var cardOption = $(cardOptions[i]); // if (cardOption.val().startsWith("NoCardSelect")) continue; // cards.push(cardOption.html()); // }; // } return cards; } function createMenuFromSelect(srcClick, select, level, title) { if ($(srcClick).hasClass("dropdown")) return {element:srcClick, parent: $(srcClick), options: $(srcClick).children("li")}; $(srcClick).addClass("dropdown"); var parent = $('<ul/>').addClass('dropdown-content'); if (level !== undefined) parent.addClass("sub-menu").addClass("sub-menu-" + level); if (title !== undefined) { var titleEntry = $("<li/>").addClass("title").append(title); parent.append(titleEntry); } $(select).children('option').each(function() { var option = $(this); var menuOption = $('<li/>'); var optionTitle = $('<div/>'); menuOption.append(optionTitle); optionTitle.html(option.html()); menuOption.data("value",option.val()); menuOption.on('click', function(event) { event.stopPropagation(); //link to build $(select).val(option.val()) $(select).change(); //AlterForm(); }); parent.append(menuOption); }); srcClick.append(parent); srcClick.on('click', function(){ parent.slideToggle("fast"); }); parent.mouseleave(function(){ $(parent).toggle("fast"); $(parent).find("ul").hide(); }); srcClick.click(); return {element:srcClick, parent: $(parent), options: $(parent).children("li")}; } function getNumberOfPlayers() { return $(document).data('number-of-players-started'); } function getNumberOfCurrentPlayers() { return $(document).data('number-of-players-current'); } function getBoardType() { return $(document).data('board-type'); } function getCityClassName(cityName) { var sname = cityName.split(" ")[0].toLowerCase(); return "city-" + sname; } function getLoggedUser() { var u = $(document).data("logged-user"); return u; } function getCoordinates(players, boardType) { var coord = new Map(); if (players == 2) { if (boardType == "full") { coord.set("Barrow – In – Furness",{y:145, x:15, pos: 'bottom'}); coord.set("Birkenhead",{y:663, x:7, pos: 'top'}); coord.set("Blackburn",{y:302, x:420, pos: 'top'}); coord.set("Bolton",{y:450, x:404, pos: 'top'}); coord.set("Burnley",{y:288, x:636, pos: 'bottom'}); coord.set("Bury",{y:445, x:554, pos: 'top'}); coord.set("Colne",{y:187, x:683, pos: 'top'}); coord.set("Ellesmere Port",{y:803, x:141, pos: 'top'}); coord.set("Fleetwood",{y:215, x:38, pos: 'top'}); coord.set("Lancaster",{y:155, x:340, pos: 'top'}); coord.set("Liverpool",{y:492, x:32, pos: 'top'}); coord.set("Macclesfield",{y:827,x:507, pos: 'top'}); coord.set("Manchester",{y:676, x:653, pos: 'bottom'}); coord.set("Oldham",{y:551, x:671, pos: 'bottom'}); coord.set("Preston",{y:287, x:317, pos: 'top'}); coord.set("Rochdale",{y:521, x:775, pos: 'bottom'}); coord.set("Stockport",{y:754, x:157, pos: 'top'}); coord.set("Warrington & Runcorn",{y:698, x:380, pos: 'bottom'}); coord.set("Wigan",{y:550, x:341, pos: 'bottom'}); return coord; } if (boardType == "compact") { coord.set("Barrow – In – Furness",{y:87, x:432, pos: 'bottom'}); coord.set("Birkenhead",{y:663, x:7, pos: 'top'});// coord.set("Blackburn",{y:257, x:578, pos: 'top'}); coord.set("Bolton",{y:401, x:384, pos: 'top'}); coord.set("Burnley",{y:10, x:600, pos: 'bottom'}); coord.set("Bury",{y:335, x:726, pos: 'top'}); coord.set("Colne",{y:163, x:721, pos: 'top'}); coord.set("Ellesmere Port",{y:803, x:141, pos: 'top'}); coord.set("Fleetwood",{y:16, x:51, pos: 'top'}); coord.set("Lancaster",{y:179, x:242, pos: 'top'}); coord.set("Liverpool",{y:496, x:93, pos: 'top'}); coord.set("Macclesfield",{y:827,x:507, pos: 'top'});// coord.set("Manchester",{y:593, x:440, pos: 'bottom'}); coord.set("Oldham",{y:551, x:671, pos: 'bottom'});// coord.set("Preston",{y:255, x:47, pos: 'top'}); coord.set("Rochdale",{y:521, x:775, pos: 'bottom'});// coord.set("Stockport",{y:754, x:157, pos: 'top'});// coord.set("Warrington & Runcorn",{y:476, x:338, pos: 'bottom'}); coord.set("Wigan",{y:336, x:294, pos: 'bottom'});// return coord; } } if (players == 4 || players == 3 ) { if (boardType == "full") { coord.set("Barrow – In – Furness",{y:145, x:15, pos: 'bottom'}); coord.set("Birkenhead",{y:663, x:7, pos: 'top'}); coord.set("Blackburn",{y:302, x:420, pos: 'top'}); coord.set("Bolton",{y:450, x:404, pos: 'top'}); coord.set("Burnley",{y:288, x:636, pos: 'bottom'}); coord.set("Bury",{y:445, x:554, pos: 'top'}); coord.set("Colne",{y:187, x:683, pos: 'top'}); coord.set("Ellesmere Port",{y:803, x:141, pos: 'top'}); coord.set("Fleetwood",{y:215, x:38, pos: 'top'}); coord.set("Lancaster",{y:155, x:340, pos: 'top'}); coord.set("Liverpool",{y:492, x:32, pos: 'top'}); coord.set("Macclesfield",{y:827,x:507, pos: 'top'}); coord.set("Manchester",{y:676, x:653, pos: 'bottom'}); coord.set("Oldham",{y:548, x:760, pos: 'bottom'}); coord.set("Preston",{y:287, x:317, pos: 'top'}); coord.set("Rochdale",{y:521, x:775, pos: 'bottom'}); coord.set("Stockport",{y:754, x:515, pos: 'top'}); coord.set("Warrington & Runcorn",{y:698, x:380, pos: 'bottom'}); coord.set("Wigan",{y:550, x:341, pos: 'bottom'}); return coord; } if (boardType == "compact") { coord.set("Barrow – In – Furness",{y:86, x:430, pos: 'bottom'}); coord.set("Birkenhead",{y:740, x:3, pos: 'bottom'}); coord.set("Blackburn",{y:260, x:576, pos: 'bottom'}); coord.set("Bolton",{y:400, x:384, pos: 'bottom'}); coord.set("Burnley",{y:7, x:602, pos: 'top'}); coord.set("Bury",{y:335, x:722, pos: 'top'}); coord.set("Colne",{y:162, x:722, pos: 'bottom'}); coord.set("Ellesmere Port",{y:738, x:157, pos: 'top'}); coord.set("Fleetwood",{y:16, x:50, pos: 'bottom'}); coord.set("Lancaster",{y:176, x:244, pos: 'top'}); coord.set("Liverpool",{y:493, x:98, pos: 'top'}); coord.set("Macclesfield",{y:737,x:770, pos: 'bottom'}); coord.set("Manchester",{y:595, x:438, pos: 'bottom'}); coord.set("Oldham",{y:497, x:835, pos: 'bottom'}); coord.set("Preston",{y:257, x:46, pos: 'bottom'}); coord.set("Rochdale",{y:205, x:774, pos: 'top'}); coord.set("Stockport",{y:539, x:825, pos: 'top'}); coord.set("Warrington & Runcorn",{y:476, x:338, pos: 'top'}); coord.set("Wigan",{y:321, x:341, pos: 'right'}); return coord; } } return false; } function prepare() { var actionForm = $("form[action='gameaction.php']"); actionForm.addClass("user-action"); var mainActionForm = actionForm.find('div:first') if (mainActionForm.find("input").length > 0) { mainActionForm.addClass('game-action-box'); } //var board = $("body div:eq(2)"); var board = $("form[action='gameaction.php']").prev("div"); board.addClass("main-board"); var playArea = $("<div/>").addClass("play-area"); board.prev().after(playArea); var boardSwitch = board.find("div > a").first(); boardSwitch.addClass("board-switch"); //Store user name var loginBox = $("#loginbox"); if (loginBox.find("form").length == 0) {//user is logged in var userNameLine = loginBox.find("p:first").text().split(" "); username = userNameLine[userNameLine.length - 1].slice(0,-1); $(document).data("logged-user",username); console.log("Logged in as " + username); } else { console.log("User is not logged in"); } //Store number of players var gameInfoBlock = $("form[action='gameaction.php'] > p"); var gameInfoText = gameInfoBlock.text().split("\.")[0]; var numberInText = gameInfoText.match(/\d+/g); $(document).data('number-of-players-started',numberInText[0]); $(document).data('number-of-players-current',numberInText[1]); //Store type of board var boardImageType = $(".main-board > img:first"); if (boardImageType.attr("src").indexOf("0.png") >= 0) { $(document).data('board-type',"full"); } else { $(document).data('board-type',"compact"); } //assign class to player boards var playerBoardsTitle = board.find("div > div > b:contains('Game status')"); playerBoardsTitle.each(function() { var pbt = $(this); var mainDiv = pbt.parent().parent(); mainDiv.addClass("player-board"); var regExp = /\(([^)]+)\)/; var matches = regExp.exec($(pbt).children("a").text()); mainDiv.data("player-nick",matches[1]); mainDiv.find('table tr').find('td:first').addClass('info-name'); mainDiv.find('table tr').find('td:nth-child(2)').addClass('info-value'); mainDiv.find('table tr:first').addClass('player-info-money'); var tiles = mainDiv.find('div').filter(function() { var $this = $(this); return $this.css("width") == "48px" && $this.css("height") == "48px"; }) tiles.addClass('tiles'); }); var gameInfo = actionForm.children("p:first"); gameInfo.addClass("game-info"); gameInfo.nextAll("p").addClass("game-info"); } function rebuildInterface() { if (username !== undefined) { console.log("I can get the username"); return;//do nothing } var actionForm = $("form.user-action"); var boardSide = $("<div/>").addClass("board-side"); boardSide.append(actionForm); var board = $(".main-board"); var playArea = $("div.play-area"); // box stuff playArea.append(board); playArea.append(boardSide); //box its own block var gameInfoBox = $("<div/>").addClass("form-info"); var gameInfoP = $("p.game-info:first"); //gameInfoP.after(gameInfoBox); gameInfoBox.append($("p.game-info")); //Add player board information below the form var username = getLoggedUser(); var playerboard = $("<div/>").addClass("extra-player-board-container-normal"); var otherPlayerBoards = $("<div/>").addClass("extra-player-board-container-miniatures"); //add game log var gameHistory = $("<div/>").addClass("game-history").attr("id","game-history"); //set mini sizes, according number of players var currentPlayers = getNumberOfCurrentPlayers(); //alocate the mini player boards if (username !== undefined) { var playerInfo = $("div.player-board"); for (i = 0; i < playerInfo.length; i++) { var cloned = $(playerInfo[i]).clone(); cloned.css({ position: '', left: '', top: ''}); cloned.addClass("extra-player-board"); cloned.find("a").each(function(event) { var el = $(this); el.attr("disabled", true); var originalOnClick = el.prop('onclick'); el.on('click', function (evt) { if (! $(this).attr("disabled")) { originalOnClick.call(this,event) evt.preventDefault(); } else { evt.preventDefault(); } }) el.prop("onclick",null); }); var wrapbox = $("<div/>").addClass("scale-wrapper").append(cloned); //this wrapper is here because I was having problems //with height and scale, which left an empty space in screen if ($(playerInfo[i]).data("player-nick") == username) { playerboard.append(wrapbox); playerboard.find("a").attr("disabled", false); } else { var wrapper1 = $("<div/>").addClass("extra-player-board-container-mini") .addClass("extra-player-board-container-mini-"+ currentPlayers).append(wrapbox); wrapper1.on('click', function() { var bbc = $("div.extra-player-board-container-normal > div.scale-wrapper") var bboard = $(bbc).children("div.extra-player-board"); var mbc = $(this).children("div.scale-wrapper"); var mboard = $(mbc).children("div.extra-player-board"); mbc.append(bboard); $(bboard).find("a").attr('disabled', true); bbc.append(mboard); $(mboard).find("a").attr('disabled', false); }) otherPlayerBoards.append(wrapper1); } } } actionForm.append($(".game-action-board")); actionForm.append(playerboard); actionForm.append(otherPlayerBoards); actionForm.append(gameHistory); $("body").append($("<div id='gameHistoryHelper' style='display:none'/>")); actionForm.append(gameInfoBox); var boardType = getBoardType(); var numberOfPlayers = getNumberOfPlayers(); var coord = getCoordinates(numberOfPlayers,boardType); var cards = getCards(); console.log("Using " + boardType + " board for " + numberOfPlayers + " players"); if (coord == false) { console.log("I do not have coordinates for " + boardType + " board with " + numberOfPlayers + " players"); return; } var industryCardContainer = $("<div/>").addClass("industry-cards-" + boardType).addClass("industry-cards"); board.append(industryCardContainer); var indu = new Map(); //indu.set('Coal Mine',{url:"https://firebasestorage.googleapis.com/v0/b/brass-8ba1c.appspot.com/o/coal.png?alt=media&token=37a392d7-c2a6-44f3-bf7d-fc36da40d59c"}); //indu.set('Cotton Mill',{url:"https://firebasestorage.googleapis.com/v0/b/brass-8ba1c.appspot.com/o/cotton.png?alt=media&token=58270f82-d144-41af-a29e-e6abbf499e28"}); //indu.set('Iron Works',{url:"https://firebasestorage.googleapis.com/v0/b/brass-8ba1c.appspot.com/o/iron.png?alt=media&token=6dc1e5ce-a016-41d1-9be5-f0a967c80dfa"}); //indu.set('Port',{url:"https://firebasestorage.googleapis.com/v0/b/brass-8ba1c.appspot.com/o/port.png?alt=media&token=3b6b6fb0-261f-4dee-a0bd-14b0b15a05d2"}); //indu.set('Shipyard',{url:"https://firebasestorage.googleapis.com/v0/b/brass-8ba1c.appspot.com/o/shipyard.png?alt=media&token=cc8dc963-5ab0-4949-8889-db3de824db93"}); //var locationImg = "https://firebasestorage.googleapis.com/v0/b/brass-8ba1c.appspot.com/o/location.png?alt=media&token=7c5b4284-174b-49b6-8de3-852574b67ff9"; indu.set('Coal Mine',{url:"http://i.imgur.com/lhMbgOH.png"}); indu.set('Cotton Mill',{url:"http://i.imgur.com/cb1RTT2.png"}); indu.set('Iron Works',{url:"http://i.imgur.com/9iuGri6.png"}); indu.set('Port',{url:"http://i.imgur.com/4lEGb99.png"}); indu.set('Shipyard',{url:"http://i.imgur.com/kDdQ2Vm.png"}); var visualCardContainer = $("<div/>"); $(".main-board").append(visualCardContainer); var cardcounter = []; var industryCardPos = 0; for (i=0; i<cards.length; i++) { var currcard = cards[i]; console.log("Assembling card:" + currcard); var c = coord.get(currcard); if (c !== undefined ) { //var card = $("<img src='https://cdnjs.cloudflare.com/ajax/libs/emojione/2.2.7/assets/png/0023-20e3.png'></img>"); var cardU = $("<div></div>"); cardU.css({position: "absolute", top: c.y, left: c.x}); cardU.data("im",currcard); var card = $("<div></div>"); cardU.addClass("card-pointer"); cardU.addClass(getCityClassName(currcard)); cardU.append(card); visualCardContainer.append(cardU); if (cardcounter[currcard] == undefined) cardcounter[currcard] = 1; else cardcounter[currcard]++; cardU.addClass("card-pointer-" + cardcounter[currcard]); cardU.on('click', function() { var cardName = $(this).data("im"); var selectBox = $("#dCardX").find("select:first"); var sbox = setSelectByText(selectBox,cardName); sbox.change(); console.log(sbox.html()); createSelect($(this)); }); } else { var ic = indu.get(currcard); if (ic !== undefined) { var cardUContainer = $("<div/>").addClass('industry-card'); cardUContainer.data("im",currcard); var cardContainer = $("<img/>").attr("src",ic.url); cardContainer.addClass("industry-card-" + industryCardPos); cardUContainer.append(cardContainer); industryCardContainer.append(cardUContainer); industryCardPos++; cardUContainer.on('click', function() { var cardName = $(this).data("im"); var selectBox = $("#dCardX").find("select:first"); var sbox = setSelectByText(selectBox,cardName); sbox.change(); createSelect($(this)); }); } } } }; function loadLog() { var gameID = urlParam("GameID"); var iframeSource = "viewticker.php?GameID=" + gameID; $historyLog = $("<iframe />").css({display:"none"}).attr('src',iframeSource); $("body").append($historyLog); $historyLog.load(function() { logEntries = $historyLog.contents().find("table[cellpadding='4']:last > tbody"); var lastEvents = $(logEntries).slice(-(2*getNumberOfCurrentPlayers() -1)); var logTable = $("<table/>").addClass("log-table"); //revert the events body logTable.append(lastEvents.get().reverse()); //revert the events inside each body lastEvents.each(function(elem,index){ var arr = $.makeArray($("tr",this).detach()); arr.reverse(); $(this).append(arr); }); logTable.find("tbody").find("tr:last").find("td:nth-child(2)").each(function(){ var $this = $(this); $this.addClass("desc-column"); var pcolorText = $(this).html().split(" ",2) if (pcolorText.length > 1) { var infoColor = "log-color-" + pcolorText[0].toLowerCase(); $this.parents("tbody").addClass(infoColor); } }); //remove date logTable.find("tbody").find("tr").find("td:first").each(function(){ var $this = $(this); var date = $this.html().replace("<br>"," "); var localDate = new Date(date); $this.html(""); $this.addClass("time-column"); if (! isNaN(localDate.getTime())) { $this.parents("tr").attr("alt",localDate.toLocaleString()); $this.parents("tr").attr("title",localDate.toLocaleString()); } }); $("#game-history").append(logTable); }) } updateCSS(); //$( window ).load(function() { $(document).ready(function() { prepare(); rebuildInterface(); loadLog(); }); console.log("run");