From 779da6ab142a95a7e8357b34c53d1afde16d5336 Mon Sep 17 00:00:00 2001 From: libccy Date: Tue, 1 Dec 2015 13:46:28 +0800 Subject: [PATCH] ui --- card/swd.js | 2 +- character/boss.js | 30 +++++++- character/refresh.js | 2 +- character/sp.js | 2 +- character/yijiang.js | 26 +++++++ game/config.js | 28 ++++---- game/game.js | 133 +++++++++++++++++++----------------- game/package.js | 16 +++++ layout/default/layout.css | 40 +++++++++-- layout/default/menu.css | 2 +- layout/mobile/layout.css | 15 +++- layout/mode/boss.css | 2 +- layout/newlayout/global.css | 2 +- mode/boss.js | 20 +++--- mode/chess.js | 6 +- mode/guozhan.js | 11 +++ mode/versus.js | 36 +++++----- theme/music/style.css | 9 +++ theme/simple/style.css | 7 ++ 19 files changed, 270 insertions(+), 119 deletions(-) diff --git a/card/swd.js b/card/swd.js index 18f4adfda..ada93b41e 100755 --- a/card/swd.js +++ b/card/swd.js @@ -1136,7 +1136,7 @@ card.swd={ // pantao_info:'出牌阶段,对自己使用,回复两点体力。', langeguaiyi:'蓝格怪衣', langeguaiyi_bg:'格', - langeguaiyi_info:'?', + langeguaiyi_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复一点体力;方片:你摸一张牌;梅花:你弃置一名其他角色的一张牌;黑桃:无事发生', longfan:'龙帆', longfan_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复一点体力;方片:你摸一张牌;梅花:你弃置一名其他角色的一张牌;黑桃:无事发生', // longfan_info:'0000:翻面;1111:弃手牌;2222:弃装备牌;3333:受伤害;4444:流失体力;5555:连环;6666:摸牌;7777:回复体力;8888:弃置判定牌;9999:置衡', diff --git a/character/boss.js b/character/boss.js index 36fdeee1e..21f09df45 100644 --- a/character/boss.js +++ b/character/boss.js @@ -8,10 +8,10 @@ character.boss={ // boss_zhugeliang:['male','shu',4,[],['boss','bossallowed'],'qun'], boss_huangyueying:['female','shu',4,['boss_gongshen','boss_jizhi','qicai','boss_guiyin'],['boss','bossallowed'],'wei'], boss_pangtong:['male','shu',4,['boss_tianyu','qiwu','niepan','boss_yuhuo'],['boss','bossallowed'],'zhu'], - boss_zhaoyun:['male','shu',1,['boss_juejing','longhun'],['boss','bossallowed'],'qun'], + boss_zhaoyun:['male','shu',1,['boss_juejing','longhun','zhanjiang'],['boss','bossallowed'],'qun'], boss_zhouyu:['male','wu',6,['huoshen','boss_honglian','boss_xianyin'],['boss','bossallowed'],'zhu'], boss_lvbu1:['male','qun',8,['mashu','wushuang','boss_baonu'],['boss','bossallowed'],'wei'], - boss_lvbu2:['male','qun',4,['mashu','wushuang','swd_xiuluo','shenwei','shenji'],['hiddenboss'],'qun'], + boss_lvbu2:['male','qun',4,['mashu','wushuang','swd_xiuluo','shenwei','shenji'],['hiddenboss','bossallowed'],'qun'], boss_caiwenji:['female','qun',4,['beige','boss_hujia','boss_guihan'],['boss','bossallowed'],'wei'], boss_zhangjiao:['male','qun',8,['boss_leiji','tiandao','jidian'],['boss','bossallowed'],'shu'], boss_zuoci:['male','qun',0,['huanhua'],['boss','bossallowed'],'shu'], @@ -22,6 +22,28 @@ character.boss={ // boss_shuijing:['male','qun',8,[],['boss','bossallowed'],'wei'], }, skill:{ + zhanjiang:{ + trigger:{player:'phaseBegin'}, + filter:function(event,player){ + for(var i=0;itarget.hp){ if(target.num('h')<=3) return -1; diff --git a/character/yijiang.js b/character/yijiang.js index ea17eb251..806818d40 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -201,6 +201,32 @@ character.yijiang={ range[1]++; } }, + }, + group:'lihuo2' + }, + lihuo2:{ + trigger:{source:'damageEnd'}, + forced:true, + popup:false, + filter:function(event,player){ + return event.parent.skill=='lihuo'; + }, + content:function(){ + player.addTempSkill('lihuo3','phaseAfter'); + } + }, + lihuo3:{ + trigger:{player:'useCardAfter'}, + filter:function(event,player){ + return event.card.name=='sha'; + }, + forced:true, + silent:true, + audio:false, + content:function(){ + player.loseHp(); + player.removeSkill('lihuo3'); + delete player.tempSkills.lihuo3; } }, chunlao:{ diff --git a/game/config.js b/game/config.js index 0be84465a..04d71603d 100755 --- a/game/config.js +++ b/game/config.js @@ -26,17 +26,17 @@ window.config={ 'music_danji','music_random','music_off'] }, translate:{ - identity:'身份', - guozhan:'国战', - versus:'对决', - stone:'炉石', - changjing:'场景', - mowang:'魔王', - boss:'挑战', - chess:'战棋', - infinity:'无限', - qunyingzhuan:'群英', - swd:'剧情', + // identity:'身份', + // guozhan:'国战', + // versus:'对决', + // stone:'炉石', + // changjing:'场景', + // mowang:'魔王', + // boss:'挑战', + // chess:'战棋', + // infinity:'无限', + // qunyingzhuan:'群英', + // swd:'剧情', character_play_config:'技能卡牌', soldier_play_config:'士兵模式', @@ -323,14 +323,15 @@ window.config={ // ['relianying','zhiheng'], ['lianying','rende'], ['lianying','yinguo'], - // ['lianying','sajin'], ['lianying','qingjian'], + ['boss_juejing','rende'], + ['boss_juejing','yinguo'], + ['boss_juejing','qingjian'], ['shangshi','rende'], ['shangshi','yinguo'], ['shangshi','qingjian'], ['rende','relianying'], ['yinguo','relianying'], - // ['sajin','relianying'], ['shenxing','relianying'], ['qingjian','relianying'], ['rende','yuling'], @@ -355,3 +356,4 @@ window.card={}; window.character={}; window.play={}; window.background={}; +window.music={}; diff --git a/game/game.js b/game/game.js index 13ab09748..be2897ab7 100755 --- a/game/game.js +++ b/game/game.js @@ -91,14 +91,16 @@ } else{ ui.arena.classList.remove('low_performance'); - var hs=ui.me.querySelectorAll('.handcards>.card'); - for(var i=0;i.card'); + for(var i=0;i明忠
  • 本模式需要8名玩家进行游戏,使用的身份牌为:1主公、2忠臣、4反贼和1内奸。游戏开始时,每名玩家随机获得一个身份,由系统随机选择一名忠臣身份的玩家亮出身份(将忠臣牌正面朝上放在面前),其他身份(包括主公)的玩家不亮出身份。
  • '+ '首先由亮出身份的忠臣玩家随机获得六张武将牌,挑选一名角色,并将选好的武将牌展示给其他玩家。之后其余每名玩家随机获得三张武将牌,各自从其中挑选一张同时亮出
  • '+ '亮出身份牌的忠臣增加1点体力上限。角色濒死和死亡的结算及胜利条件与普通身份局相同。', + }, + help2:{ '战棋模式': '
    对阵模式
    • n人对战n人的模式,由单人控制,开始游戏后随机分配位置与出牌顺序
    • '+ '每人在出牌阶段有一次移动的机会,可移动的最大距离为2
    • '+ @@ -2273,6 +2270,7 @@ lib.config.all.characters=[]; lib.config.all.cards=[]; lib.config.all.plays=[]; + lib.config.all.mode=[]; var charlist=['standard','wind','fire','woods','mountain','guozhan','sp','yijiang','extra','refresh']; for(i in character.pack){ @@ -2287,15 +2285,33 @@ lib.config.all.plays.push(i); lib.translate[i+'_play_config']=play.pack[i]; } + for(i in mode.pack){ + lib.config.all.mode.push(i); + lib.translate[i]=mode.pack[i]; + } if(background&&background.pack){ for(i in background.pack){ lib.configMenu.appearence.config.image_background.item[i]=background.pack[i]; } - delete window.background; + } + if(music&&music.pack){ + for(i in music.pack){ + lib.configMenu.audio.config.background_music.item[i]=music.pack[i]; + } } delete character.pack; delete card.pack; delete play.pack; + delete mode.pack; + delete window.background; + delete window.music; + + if(lib.config.all.mode.indexOf('chess')!=-1){ + for(var i in lib.help2){ + lib.help[i]=lib.help2[i]; + } + } + delete lib.help2; lib.init.js('mode',lib.config.mode); lib.init.js('card',lib.config.all.cards); @@ -7957,24 +7973,6 @@ ui.controls.remove(this); this.delete(); - // if(!this._nomove){ - // var that=this; - // setTimeout(function(){ - // var nc=true; - // for(var i=0;idiv{height: 100%;position: relative;margin: 0;padding: 0;} @@ -439,8 +448,8 @@ margin-bottom: 5px; .player>.avatar>.action:not(.freecolor){ text-shadow: black 0 0 1px, rgba(10, 155, 67, 1) 0 0 5px, rgba(10, 155, 67, 1) 0 0 10px; } -.player>.avatar:not(.glow2)>.action{opacity: 0} -#arena.chess:not(.selecting) .player>.avatar.glow2>.action{opacity: 0} +.player:not(.current_action) .avatar>.action{opacity: 0} +#arena.chess:not(.selecting) .player.current_action .avatar>.action{opacity: 0} .player.controlfakeme{width:100px;height:120px;top:calc(100% - 140px)} .player.controlfakeme>.avatar{width: 100%;height: 100%;box-shadow: none;left: 0;top: 0} .player{z-index: 2;width: 240px;height: 120px;} @@ -616,8 +625,14 @@ margin-bottom: 5px; .unseen2>.avatar2,.unseen2>.name2{opacity: 0 !important;} .player[data-position='0'].unseen>.avatar, .player[data-position='0'].unseen2>.avatar2, -.player[data-position='0'].unseen>.name, -.player[data-position='0'].unseen2>.name{opacity: 0.2 !important} +.player[data-position='0'].unseen>.name:not(.name2):not(.name_seat), +.player[data-position='0'].unseen2>.name2{opacity: 0.2 !important} +.player>.name_seat{ + opacity: 0; +} +.player:not([data-position='0']).unseen.unseen2>.name_seat{ + opacity: 1 !important; +} .linked>.avatar,.linked>.avatar2{transform:rotate(-90deg);} .linked>.avatar2{top: 5px;} .linked>.identity{top: 88px;} @@ -766,6 +781,16 @@ margin-bottom: 5px; opacity: 0; transform: scale(0.2) !important; } + +#me>.fakeme.avatar{ + width:120px; + height:120px; + border-radius:8px; + top:10px; + left:10px; + background-size:cover; +} + .card.removing{transform:scale(0);} #me>div>div>.card.removing{margin-left: -52px;margin-right: -52px;} .card.thrown.removing{width: 104px;height: 104px;transform:none} @@ -1181,7 +1206,8 @@ div:hover>.wunature{ .glow{ box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 133, 255, 0.4) 0 0 5px, rgba(0, 133, 255, 0.5) 0 0 12px, rgba(0, 133, 255, 0.8) 0 0 15px !important; } -.glow2:not(.player.glow_phase)>.avatar{ +.glow2:not(.player.glow_phase)>.avatar, +.player.current_action .avatar{ /*-webkit-animation:control_glow 4s infinite;*/ box-shadow: rgba(0, 0, 0, 0.3) 0 0 0 1px, rgba(10, 155, 67, 1) 0 0 15px, rgba(10, 155, 67, 1) 0 0 15px !important; } diff --git a/layout/default/menu.css b/layout/default/menu.css index abffa9bce..7ba55a25a 100644 --- a/layout/default/menu.css +++ b/layout/default/menu.css @@ -404,7 +404,7 @@ .menubutton.active{ background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1)); } -#system>div>.pressdown,.controlpressdown,.pressdown_delay{ +#system>div>.pressdown{ transform: scale(0.97); } .controlpressdownx{ diff --git a/layout/mobile/layout.css b/layout/mobile/layout.css index 2cbf88e52..e1638c245 100644 --- a/layout/mobile/layout.css +++ b/layout/mobile/layout.css @@ -112,10 +112,14 @@ } #arena:not(.chess) .player[data-position='0']:not(.minskin)>.count{ bottom:10px; + border-radius: 0 2px 2px 0; + left:-1px; + z-index: 3; + text-align: right; } #arena:not(.chess).slim_player .player[data-position='0']:not(.minskin)>.count{ border-radius: 0 2px 2px 0; - left:-4px; + left:-1px; z-index: 3; text-align: right; } @@ -186,6 +190,15 @@ top: 40px !important; } +#me>.fakeme.avatar{ + width:120px; + height:120px; + border-radius:0px; + top:0; + left:0; + background-size:cover; +} + @media screen and (min-height: 800px) and (orientation:landscape) { #arena{height: 780px;top: calc(50% - 350px);} #arena:not(.chess)>#me, diff --git a/layout/mode/boss.css b/layout/mode/boss.css index eb5bfc0f5..935cbd297 100755 --- a/layout/mode/boss.css +++ b/layout/mode/boss.css @@ -40,7 +40,7 @@ position:relative; margin:10px; left:0; - top:0; + top:4px; width:180px; height:216px; transition: all 0.3s; diff --git a/layout/newlayout/global.css b/layout/newlayout/global.css index 277636f61..78d4532c6 100644 --- a/layout/newlayout/global.css +++ b/layout/newlayout/global.css @@ -185,7 +185,7 @@ left:-3px; padding:2px; line-height:20px; - width:10px; + width:8px; text-align:left; border-radius:2px; z-index:1; diff --git a/mode/boss.js b/mode/boss.js index dca5c5498..a4ca56052 100755 --- a/mode/boss.js +++ b/mode/boss.js @@ -217,13 +217,13 @@ mode.boss={ if(game.me!==boss){ game.singleHandcard=true; ui.arena.classList.add('single-handcard'); - ui.fakeme=ui.create.div('.player.controlfakeme'); - ui.fakeme.dataset.position=0; - ui.fakeme.line=lib.element.player.line; - ui.fakemebg=ui.create.div('.avatar',ui.fakeme).hide(); - ui.refresh(ui.fakemebg); + ui.fakeme=ui.create.div('.fakeme.avatar',ui.me); + // ui.fakeme.dataset.position=0; + // ui.fakeme.line=lib.element.player.line; + // ui.fakemebg=ui.create.div('.avatar',ui.fakeme).hide(); + // ui.refresh(ui.fakemebg); game.onSwapControl(); - ui.fakemebg.show(); + // ui.fakemebg.show(); lib.setPopped(ui.create.system('查看手牌',null,true),function(){ var uiintro=ui.create.dialog('hidden'); @@ -383,14 +383,14 @@ mode.boss={ if(ui.fakeme&&ui.fakeme.current!=name){ ui.fakeme.current=name; if(ui.versushighlight&&ui.versushighlight!=game.me){ - ui.versushighlight.node.avatar.classList.remove('glow2'); + ui.versushighlight.classList.remove('current_action'); } ui.versushighlight=game.me; - game.me.node.avatar.classList.add('glow2'); + game.me.classList.add('current_action'); // game.me.line(ui.fakeme,{opacity:0.5,dashed:true}); - ui.fakemebg.style.backgroundImage=game.me.node.avatar.style.backgroundImage; - ui.fakemebg.style.backgroundSize='cover'; + ui.fakeme.style.backgroundImage=game.me.node.avatar.style.backgroundImage; + // ui.fakeme.style.backgroundSize='cover'; } ui.updateh(true); }, diff --git a/mode/chess.js b/mode/chess.js index 49e38064d..068bad7ee 100755 --- a/mode/chess.js +++ b/mode/chess.js @@ -1133,6 +1133,7 @@ mode.chess={ _status.friends.push(player); if(!game.me.name){ game.me=player; + game.me.classList.add('current_action'); ui.me.lastChild.show(); ui.create.fakeme(); ui.handcards1=player.node.handcards1.animate('start').fix(); @@ -1959,6 +1960,7 @@ mode.chess={ else{ event.trigger('gameStart'); game.gameDraw(p); + game.me.classList.add('current_action'); if(get.config('chess_mode')=='leader'){ game.phaseLoopOrdered(p); } @@ -3697,8 +3699,8 @@ mode.chess={ }, modeSwapPlayer:function(player){ var content=[game.me.dataset.position,player.dataset.position]; - game.me.node.avatar.classList.remove('glow2'); - player.node.avatar.classList.add('glow2'); + game.me.classList.remove('current_action'); + player.classList.add('current_action'); game.addVideo('chessSwap',null,content); game.swapControl(player); player.chessFocus(); diff --git a/mode/guozhan.js b/mode/guozhan.js index 6089ec547..6f6a87df9 100755 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -80,6 +80,10 @@ mode.guozhan={ _status.auto=true; ui.auto.classList.add('glow'); } + for(var i=0;i=4){ - ui.fakemebg.show(); + // ui.fakemebg.show(); game.onSwapControl(); } @@ -959,22 +962,23 @@ mode.versus={ if(ui.fakeme&&ui.fakeme.current!=name){ ui.fakeme.current=name; if(ui.versushighlight&&ui.versushighlight!=game.me){ - ui.versushighlight.node.avatar.classList.remove('glow2'); + ui.versushighlight.classList.remove('current_action'); } ui.versushighlight=game.me; - game.me.node.avatar.classList.add('glow2'); + game.me.classList.add('current_action'); // game.me.line(ui.fakeme,{opacity:0.5,dashed:true}); - var info=lib.character[name]; - if(lib.config.layout=='newlayout'&&info[4]&&info[4].contains('fullskin')){ - ui.fakeme.classList.add('fullskin'); - ui.fakemebg.style.backgroundImage='url("image/character/'+name+'.jpg")'; - ui.fakemebg.style.backgroundSize='cover'; - } - else{ - ui.fakeme.classList.remove('fullskin'); - ui.fakemebg.setBackground(name,'character'); - } + ui.fakeme.style.backgroundImage=game.me.node.avatar.style.backgroundImage; + // var info=lib.character[name]; + // if(lib.config.layout=='newlayout'&&info[4]&&info[4].contains('fullskin')){ + // // ui.fakeme.classList.add('fullskin'); + // ui.fakeme.style.backgroundImage='url("image/character/'+name+'.jpg")'; + // ui.fakeme.style.backgroundSize='cover'; + // } + // else{ + // ui.fakeme.classList.remove('fullskin'); + // ui.fakemebg.setBackground(name,'character'); + // } } }, modeSwapPlayer:function(player){ diff --git a/theme/music/style.css b/theme/music/style.css index 7a2b4b2bd..7ba238d24 100755 --- a/theme/music/style.css +++ b/theme/music/style.css @@ -10,6 +10,9 @@ html{ background-image: linear-gradient(#4b4b4b, #464646); border-radius: 8px; } +/*.player.current_action{ + background-image: linear-gradient(rgba(57, 123, 4,1), rgb(48, 103, 3)); +}*/ #window>.dialog.popped{ border-radius: 6px; } @@ -36,6 +39,12 @@ html{ #me>div>div>.card,#arena>.card:not(*:empty){ box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px, rgba(0, 0, 0, 0.45) 0 3px 10px; } + +#system>div>.glow { + background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1)); + box-shadow: rgba(0, 0, 0, 0.4) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px !important; +} + .fire{ color: rgb(255,119,63); } diff --git a/theme/simple/style.css b/theme/simple/style.css index 3983f378e..147e895c3 100755 --- a/theme/simple/style.css +++ b/theme/simple/style.css @@ -21,6 +21,9 @@ body{ background-image: linear-gradient(rgba(0,0,0,0.4), rgba(0,0,0,0.4)); border-radius: 8px; } +/*.player.current_action{ + background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1)); +}*/ .menubutton{ border-radius: 4px; } @@ -72,6 +75,10 @@ body{ background-size: cover; } +#system>div>.glow{ + background-image: linear-gradient(rgba(47,101,150,1), rgba(43, 90, 132,1)); + box-shadow: rgba(0, 0, 0, 0.4) 0 0 0 1px, rgba(0, 0, 0, 0.2) 0 3px 10px !important; +} .menupaused{ opacity: 0.3;