Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* jshint esversion: 6 */
- /*
- ����������������� ����������
- game_uiaction - �������� ������
- game_roles - ������� � ���������� ����� ���� {'role': '������� ��������'}
- game_names - ����� �������
- game_update_link - ������ ��� ��������� ���������
- game_me - ����� ������
- */
- var game_to = false;
- var log_step = false;
- var logs_v = -1; //0 = ������������ ��� ���������; -1 = �������� ���������
- var logs = [];
- //////////////////////////////МОИ ПЕРЕМЕННЫЕ DOM/////////////////////////////////////////////
- var topwrapper = document.createElement('div');
- topwrapper.setAttribute('id', 'top-wrapper');
- document.body.append(topwrapper);
- var citadelWrapper = document.createElement('div');
- citadelWrapper.setAttribute('id', 'citadelWrapper');
- document.querySelector('#top-wrapper').append(citadelWrapper);
- var citadelCardsMyCitadel = document.createElement('div');
- citadelCardsMyCitadel.setAttribute('class', 'cards-container myCitadel');
- document.querySelector('#citadelWrapper').append(citadelCardsMyCitadel);
- var roleOrder = document.getElementById("role-order");
- roleOrder.classList.add("firstLine");
- var gameActions = document.getElementById("game-actions");
- gameActions.classList.add("firstLine");
- var topWrapperDivs = document.querySelectorAll('.firstLine');
- for (var i = 0; i < topWrapperDivs.length; i++) {
- topwrapper.appendChild(topWrapperDivs[i]);
- }
- //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- function game_update() {
- game_update_real(game_uiaction, '');
- }
- function game_update_uiaction(uiaction) {
- game_uiaction = uiaction;
- game_update_real(uiaction, '');
- }
- function game_update_params(params) {
- game_update_real('', params);
- }
- function game_translate(s) {
- s = s.replace(/[~@#+&^%=]/, '');
- for (var r in game_roles) {
- s = s.replace('[' + r + ']', game_roles[r]);
- }
- for (var r in game_names) {
- s = s.replace('{' + r + '}', game_names[r]);
- }
- return s;
- }
- function game_log_step() {
- var stop = false;
- var tradeSlice = " ";
- var rolesArray = [];
- while (!stop && (logs_v + 1 < logs.length)) {
- logs_v++;
- var s = logs[logs_v];
- if (-1 != s.indexOf('~')) {
- var r = s.replace('~', '').match(/\[([a-z]+)\]/);
- if (r) {
- r = r[1];
- $('div.role').removeClass('role-current');
- $('div#role-' + r).addClass('role-current');
- }
- } else {
- var r = s.match(/\[([a-z]+)\] \{([\-]?[0-9]+)\}/);
- if (r) {
- trade = document.getElementById('role-' + r[1]).firstChild.data;
- tradeSlice = trade.slice(0, 1);
- tradeFull = trade.slice(0);
- $('div#role-' + r[1] + ' span.role-player').html(game_names[r[2]]);
- $('div#role-' + r[1] + ' span.role-player').show();
- if ($('div#role-' + r[1] + ' span.role-player').text().length > 0) {
- document.getElementById('role-' + r[1]).firstChild.data = tradeSlice;
- }
- if (document.getElementById('role-' + r[1]).firstChild.data.length > 7) {
- $('div#role-' + r[1]).css("fontSize", 14);
- }
- stop = true;
- }
- if (-1 != s.indexOf('@')) {
- $('div.role').removeClass('role-current');
- $('div.role span.role-player').html("");
- $('div.role span.role-player').hide();
- $('.role-penalty').hide();
- $('.role-closed').hide();
- var roles = document.querySelectorAll('.role');
- for (var key in game_roles) {
- rolesArray.push(game_roles[key]);
- }
- for (var i = 0; i < roles.length; i++) {
- roles[i].firstChild.data = rolesArray[i];
- }
- stop = false;
- }
- if (-1 != s.indexOf('^')) {
- var re = /\[([a-z]+)\]/g;
- var rm = [];
- var m;
- while (m = re.exec(s)) {
- rm.push(m[1]);
- }
- if (rm.length >= 2) {
- $('div#role-closed-' + rm[1]).fadeIn("slow");
- stop = true;
- }
- } else if (-1 != s.indexOf('%')) {
- var re = /\[([a-z]+)\]/g;
- var rm = [];
- var m;
- while (m = re.exec(s)) {
- rm.push(m[1]);
- }
- if (rm.length >= 2) {
- $('div#role-penalty-' + rm[1]).fadeIn("slow");
- stop = true;
- }
- } else if (-1 != s.indexOf('+')) {
- var coins = s.substr(s.indexOf('+') + 1, 1);
- if (r && coins) {
- $('div#role-coin-' + r[1]).html(coins);
- if ($('div#role-penalty-' + r[1]).css('display') === "block") {
- $('div#role-penalty-' + r[1]).fadeOut('fast', function () {
- $('div#role-coin-' + r[1]).fadeIn("slow").fadeOut("slow", function () {
- $('div#role-penalty-' + r[1]).fadeIn('fast');
- });
- });
- } else {
- $('div#role-coin-' + r[1]).fadeIn("slow").fadeOut("slow");
- }
- stop = false;
- }
- } else if (-1 != s.indexOf('#')) {
- var cards = s.substr(s.indexOf('#') + 1, 1);
- if (r && cards) {
- $('div#role-card-' + r[1]).html(cards);
- if ($('div#role-closed-' + r[1]).css('display') === "block") {
- $('div#role-closed-' + r[1]).fadeOut('fast', function () {
- $('div#role-card-' + r[1]).fadeIn("slow").fadeOut("slow", function () {
- $('div#role-closed-' + r[1]).fadeIn('fast');
- });
- });
- } else {
- $('div#role-card-' + r[1]).fadeIn("slow").fadeOut("slow");
- }
- stop = false;
- }
- } else if (-1 != s.indexOf('&')) {}
- }
- $('#game-log-current').html(game_translate(s));
- }
- if (logs_v + 1 < logs.length) {
- log_step = setTimeout(game_log_step, 1000);
- } else {
- log_step = false;
- }
- }
- function game_update_log(l) {
- if (l.length > logs.length) {
- var c = document.getElementById('log');
- for (var i = logs.length; i < l.length; i++) {
- var s = l[i];
- $('#game-log-full').prepend($("<div>" + game_translate(s) + "</div>"));
- }
- logs = l;
- if (logs_v < 0) {
- logs_v = logs.length - 1;
- }
- if (logs_v == 0 && logs.length) {
- $('#game-log-current').html(game_translate(logs[0]));
- }
- if (!log_step) {
- log_step = setTimeout(game_log_step, 1000);
- }
- }
- }
- function game_update_real(uiaction, params) {
- if (game_to) {
- clearTimeout(game_to);
- game_to = false;
- }
- var lnk = game_update_link;
- if ('' != uiaction) lnk += "&uiaction=" + uiaction;
- lnk += params;
- $.getJSON(lnk, function (data) {
- game_names = data['names'];
- game_uiaction = data['uiaction'];
- $('#game-go').html(data['divs']['go']);
- if ($('#coin').length) {
- $('#top-wrapper').find('#coin').html('<span>' + data['gold'] + '</span>');
- } else {
- $('#top-wrapper').append('<div id="coin" class="firstLine"><span>' + data['gold'] + '</span></div>');
- $('#coin').insertAfter('#role-order');
- }
- $('#game-action-title').html(data['action-title'] ? '<div class="action-title">' + data['action-title'] + '</div>' : '');
- $('#game-actions').html(data['divs']['actions']);
- $('#game-hand').html(data['divs']['hand']);
- $('#hand').children('div').addClass("handcards");
- ////////////////////////////////////////////////////РАБОТА НАД РАЗДАЧЕЙ ИМЕН ИГРОКАМ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- data['divs']['citadels'].forEach((element, index) => {
- if (index === game_me) {
- if ($('#citadelWrapper').find('td').length) {
- $('#citadelWrapper').find('td').html(
- '<div class="player-name' + (index == game_me ? ' player-me' : '') +
- (index == data['minister'] ? ' player-minister' : '') +
- '">' + game_names[index] + '</div>'
- );
- } else {
- $('#citadelWrapper').prepend(
- '<td>' +
- '<div class="player-name' + (index == game_me ? ' player-me' : '') +
- (index == data['minister'] ? ' player-minister' : '') +
- '">' + game_names[index] + '</div>' +
- '</td>'
- );
- }
- } else {
- if ($('.player-' + index).length) {
- } else {
- $('#game-citadels').append('<div class="gridLayout player-' + index +'"><div class="cards-container cards-container-' + index +'"></div></div>');
- $('.player-' + index +'').prepend(
- '<td class="name">' +
- '<div class="player-name' + (index == game_me ? ' player-me' : '') +
- (index == data['minister'] ? ' player-minister' : '') +
- '">' + game_names[index] + '</div>' +
- '</td>');
- }
- }
- });
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////РАБОТА НАД РАЗДАЧЕЙ КВАДРАТИКОВ ИГРОКАМ//////////////////////////////////////////////
- function strip_tags(str) { // Strip HTML and PHP tags from a string
- return str.replace(/<\/?[^>]+>/gi, ' ').trim();
- }
- // $('body').find('.cards-container').html('');
- $('#game-citadels').addClass('citGridLayout');
- for (let i = 0; i < data['divs']['citadels'].length; i++) {
- var splitsAI = [];
- var splitsCitadelsAI = [];
- splitsAI = data['divs']['citadels-pict'][i].split('</div>').filter(Boolean);
- splitsCitadelsAI = data['divs']['citadels'][i].split('</div>').filter(Boolean);
- splitsAI.forEach((element, index) => {
- if (i === game_me) {
- if ($('#citadelWrapper').find('#card-container-' + index).length) {
- // console.log("HI!");
- }
- else {
- $('#citadelWrapper').find('.cards-container').append(
- '<div id="card-container-' + index + '" class="stack">' + element + '</div>' +
- '<span class="citName" data-id="#dialog' + index + '">' + strip_tags(splitsCitadelsAI[index]).slice(0, -1).trim() + '</span>'
- + '<div style="display: none" id="dialog' + index + '" class="box"><img class="pic popupcard"src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Playing_card_heart_A.svg/384px-Playing_card_heart_A.svg.png"alt="card"></div>'
- );
- $('.cards-container.myCitadel').find('#card-container-' + index).css('background-color', $('.cards-container.myCitadel').find('.card-stack-' + index).find('#card').children().first().css('fill'));
- }
- } else {
- if ($('.player-' + i).find('#card-container-' + index).length) {
- // console.log("HI AI!");
- }
- else {
- $('#game-citadels').find('.cards-container-' + i +'').append(
- '<div id="card-container-' + index + '" class="stack">' + element + '</div>' +
- '<span class="citName" data-id="#dialog' + index + '">' + strip_tags(splitsCitadelsAI[index]).slice(0, -1).trim() + '</span>'
- + '<div style="display: none" id="dialog' + index + '" class="box"><img class="pic popupcard"src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/57/Playing_card_heart_A.svg/384px-Playing_card_heart_A.svg.png"alt="card"></div>'
- );
- $('.player-' + i).find('#card-container-' + index).css('background-color', $('.player-' + i).find('.card-stack-' + index).find('#card').children().first().css('fill'));
- }}});
- }
- $('.player-2').find('.name').css('order', 2);
- $('.player-4').find('.name').css('order', 2);
- $('.player-me').parent().addClass('name');
- $('#citadelWrapper').addClass('gridLayout');
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- game_update_log(data['logs']);
- if (!data['gameover']) {
- game_to = setTimeout(game_update, 4000);
- }
- });
- }
- $(function () {
- // $('#game-log').accordion({
- // collapsible: true
- // });
- $('#game-log').hide();
- $('#game-log-full').detach().appendTo('#game-citadels');
- $('.role-penalty').hide();
- $('.role-closed').hide();
- $('.role-coin').hide();
- $('.role-card').hide();
- /////////////////////////////////////////////////
- $('#top-wrapper').insertAfter('#game-log');
- $('#citadelWrapper').insertBefore('#game-actions');
- $('#citadelWrapper').append($('.myCitadel'));
- var isPopup = false;
- jQuery(document).ajaxComplete(function ($) {
- jQuery(document).ready(function ($) {
- $(".citName").click(function (e) {
- $(this).parent().find('.box').show();
- $('body').css('overflow','hidden');
- isPopup = true;
- });
- $(".box").click(function (e) {
- $(this).parent().find('.box').hide();
- $('body').css('overflow','visible');
- isPopup = false;
- });
- $(".stack").click(function () {
- var width2 = $(this).find("span").width();
- $(this).animate({
- 'max-width': width2 + 10
- }, 500);
- $(this).find("div").first().hide();
- $(this).find(".citName").show();
- }).mouseleave(function () {
- $(this).find("div").first().show();
- $(this).find(".citName").hide();
- $(this).animate({
- 'max-width': '30px'
- }, 200);
- });
- });
- });
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement