From faca78a16e156e7d0533048cbbbca4ccb0d7b1d4 Mon Sep 17 00:00:00 2001 From: t510599 Date: Sun, 3 Jun 2018 00:12:07 +0800 Subject: [PATCH] Fixed bugs & UI improvement 1. fixed wrong description of card "surprise" 2. LogPlayerChoose() improvement 3. chooseTrade() will send "0" if there is no card in hand 4. added dialog when giving up 5. removed debug messages 6. now cards are in same height --- web/gameCore.js | 52 +++++++++++++++++++++++++------------------------ web/gameUI.css | 1 + 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/web/gameCore.js b/web/gameCore.js index 3c50251..da2667b 100644 --- a/web/gameCore.js +++ b/web/gameCore.js @@ -6,6 +6,7 @@ var socketReady = false; var lock = true; var debugMode = false; var dialogDisplay = false; +var playerChooseStatus = false; var curName = ""; var eneName = ""; var drawID = ""; @@ -29,7 +30,7 @@ var myself = $('#myself'); /* text */ // cards var cards = {'1': '攻擊', '2': '防禦', '3': '治癒', '4': '補給', '5': '強奪', '6': '奇襲', '7': '交易', '8': '洞悉', '9': '妙策', '10': '掃射', '11': '加護', '12': '劇毒', '13': '詛咒', '14': '反制', '15': '狂亂', '16': '逆轉'}; -var cardsDescription = {"1":"對敵方造成兩點傷害","2":"回復一點生命
被動:抵擋攻擊類卡片","3":"回復兩點生命","4":"抽取兩張手牌","5":"從敵方手牌中選擇一張加入自己的手牌","6":"對敵方造成兩點傷害,並使其隨機損失一張手牌","7":"選取一張手牌與敵方交換","8":"抽取三張手牌
被動:抵擋攻擊類卡片,並抽取一張手牌、抵擋強奪的效果","9":"從牌庫中隨機挑出三張卡片,選擇一張加入手牌","10":"對敵方造成零~五點傷害","11":"回復三點生命,並解除中毒","12":"使敵方中毒:每個回合,玩家會損失一點生命","13":"使其損失四點生命,並隨機損失一張手牌","14":"使敵方生命減半
被動:抵擋攻擊類卡片,並反彈其傷害和效果","15":"回復三點生命,並對敵方造成三點傷害","16":"使自己與敵方的生命交換"} +var cardsDescription = {"1":"對敵方造成兩點傷害","2":"回復一點生命
被動:抵擋攻擊類卡片","3":"回復兩點生命","4":"抽取兩張手牌","5":"從敵方手牌中選擇一張加入自己的手牌","6":"對敵方造成一點傷害,並使其隨機損失一張手牌","7":"選取一張手牌與敵方交換","8":"抽取三張手牌
被動:抵擋攻擊類卡片,並抽取一張手牌、抵擋強奪的效果","9":"從牌庫中隨機挑出三張卡片,選擇一張加入手牌","10":"對敵方造成零~五點傷害","11":"回復三點生命,並解除中毒","12":"使敵方中毒:每個回合,玩家會損失一點生命","13":"使其損失四點生命,並隨機損失一張手牌","14":"使敵方生命減半
被動:抵擋攻擊類卡片,並反彈其傷害和效果","15":"回復三點生命,並對敵方造成三點傷害","16":"使自己與敵方的生命交換"} var characters = {'1': '安', '2': '圭月', '3': '梅', '4': '小兔', '5': '銀', '6': '正作', '7': 'W', '8': '桑德', '9': '海爾', '10': '雪村'}; @@ -151,12 +152,10 @@ function wsHandler(dataJson) { Log(dataJson); break; case "robbed": - robbedCard = dataJson.data[1]; // card ID - LogPlayerChoose("robbed",robbedCard); + LogPlayerChoose("robbed",dataJson.data); break; case "tradeChoose": - tradeChoose = dataJson.data[1]; // card ID - LogPlayerChoose("tradeChoose",tradeChoose); + LogPlayerChoose("tradeChoose",dataJson.data); break; case "poisonDamaged": poisonDamage = dataJson.data[1]; // posion level @@ -254,6 +253,12 @@ $('#skip').click(function() { }); $('#giveup').click(function() { + dialog.children(".header").html('你放棄人生了,SAD'); + dialog.children(".content").html('

'+eneName+'

'+curName+'

'); + dialog.children(".actions").html(''); + timerInitialize(); // also remember to stop the timer + modalOpen(); + resultListener(); quit(); }); @@ -275,12 +280,7 @@ log.addEventListener("mouseleave", function() { MouseOn = false; }); function Log(msgJson) { var node = logTemplate; - if(now === "player") { // to distinguish if this is self log or enemy log - node = node.replace("{{ isSelf }}","right"); - } else if (now === "enemy") { - node = node.replace("{{ isSelf }}",""); - } - + node = (now === "player") ? node.replace("{{ isSelf }}","right") : node.replace("{{ isSelf }}",""); // to distinguish if this is self log or enemy log node = node.replace("{{ content }}",messages[msgJson['msg']].format(msgJson['data'])); log.insertAdjacentHTML("beforeend",node); // insert to log if (!MouseOn) { // if mouse isn't over the div, scroll to bottom @@ -298,21 +298,22 @@ function LogPlayerDraw() { drawID = ""; } -function LogPlayerChoose(type,dataID) { - var node = logTemplate.replace("{{ isSelf }}","right"); - var tmpName = ""; - if(now === "player") { // to distinguish if this is self log or enemy log - node = node.replace("{{ isSelf }}","right"); - tmpName = curName; - } else if (now === "enemy") { - node = node.replace("{{ isSelf }}",""); - tmpName = eneName; +function LogPlayerChoose(type,data) { + var node = logTemplate; + var name = data[0]; + var chooseID = data[1]; + if (playerChooseStatus || type === "robbed") { + node = (now === "player") ? node.replace("{{ isSelf }}","right") : node.replace("{{ isSelf }}",""); // to distinguish if this is self log or enemy log + } else { + node = (now === "player") ? node.replace("{{ isSelf }}","") : node.replace("{{ isSelf }}","right"); // if this is the second one playerChoose message, then this is another one's choice } - node = node.replace("{{ content }}",messages[type].format([tmpName,cards[dataID]])); // msgJson['data'][0] player name, msgJson['data'][1] card id + + node = node.replace("{{ content }}",messages[type].format([name,cards[chooseID]])); // msgJson['data'][0] player name, msgJson['data'][1] card id log.insertAdjacentHTML("beforeend",node); // insert to log if (!MouseOn) { // if mouse isn't over the div, scroll to bottom log.scrollTop = log.scrollHeight; // scroll to bottom } + playerChooseStatus = (playerChooseStatus && type !== "robbed") ? false : true; // to count this is first playerChoose message or second one on the turn } function LogPlayerPoisonDamaged() { @@ -499,7 +500,9 @@ function chooseRob(data) { } function chooseTrade(data,tradeID=null) { - console.log(tradeChoose); + if (data.length == 0) { + send(0); + } if (tradeID) { var text = "

對手選擇了"+cards[tradeID]+"

"; } else { @@ -603,7 +606,6 @@ function playerLose() { function modalClose() { if (dialogDisplay) { ts('#modal').modal('hide'); - console.log('close'); dialogDisplay = false; } } @@ -611,7 +613,6 @@ function modalClose() { function modalOpen() { if (!dialogDisplay) { ts('#modal').modal('show'); - console.log('open'); dialogDisplay = true; } } @@ -672,8 +673,9 @@ $(document).ready(() => { var characterID = localStorage.getItem('character'); if(!roomID || !characterID){ roomID = "n"; - characterID = "1"; // default charactor + characterID = Math.floor(Math.random()*10 + 1).toString(); // randomly choose a player } + curName = characters[characterID]; setPlayerName(characters[characterID]); init(); var retry = setInterval(() => { diff --git a/web/gameUI.css b/web/gameUI.css index d5a14f0..5e4c67d 100644 --- a/web/gameUI.css +++ b/web/gameUI.css @@ -1,5 +1,6 @@ .cards.container > .ts.card { width: 220px !important; + height: 146px !important; display: inline-flex !important; white-space: normal; margin-left: 8px;