From b0ad9bc37c5e6d71f8abffd7e0ae4c110640f2c8 Mon Sep 17 00:00:00 2001 From: libccy Date: Thu, 26 Jan 2017 01:13:45 +0800 Subject: [PATCH] 2 --- card/swd.js | 2 +- character/hearth.js | 9 ++++++- character/ow.js | 50 +++++++++++++++++++++++++---------- character/shenhua.js | 4 +-- character/xianjian.js | 3 ++- character/yijiang.js | 3 +++ game/game.js | 51 ++++++++++++++++++++++++++---------- game/update.js | 11 +++++--- layout/long/layout.css | 52 +++++++++++++++++++++++++------------ layout/long2/layout.css | 45 ++++++++++++++++++++++---------- layout/mobile/layout.css | 6 ++--- layout/newlayout/global.css | 3 +++ mode/chess.js | 19 ++++++++++---- 13 files changed, 184 insertions(+), 74 deletions(-) diff --git a/card/swd.js b/card/swd.js index 2c3365ac7..d476d53ca 100644 --- a/card/swd.js +++ b/card/swd.js @@ -4418,7 +4418,7 @@ card.swd={ lingjiandai:'零件袋', lingjiandai_info:'出牌阶段对自己使用,获得3张随机零件', mujiaren:'木甲人', - mujiaren_info:'出牌阶段限用一次,将你手牌中的非基本牌(含此张)替换为随机的机关牌', + mujiaren_info:'出牌阶段限用一次,获得一张随机机关牌,并将你手牌中的非基本牌替换为随机的机关牌', jiguanyaoshu:'机关要术', jiguanyaoshu_skill:'巧匠', jiguanyaoshu_skill_info:'每当你于回合外失去装备区内的牌,你获得一个随机零件', diff --git a/character/hearth.js b/character/hearth.js index 9f4eabba1..fb77ffa28 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -334,7 +334,9 @@ character.hearth={ lianjin:{ enable:'phaseUse', usable:2, - filterCard:true, + filterCard:function(card){ + return get.type(card)!='hsyaoshui'; + }, check:function(card){ return 8-ai.get.value(card) }, @@ -444,6 +446,9 @@ character.hearth={ targets.sort(lib.sort.seat); } else{ + if(target.isDead()){ + return; + } targets.push(target); } player.useCard(game.createCard({name:name,suit:get.suit(card),number:card.number}),targets); @@ -452,6 +457,7 @@ character.hearth={ }, ai:{ order:9.1, + threaten:1.5, result:{ target:function(player,target,card){ var info=get.info(card); @@ -563,6 +569,7 @@ character.hearth={ } }, ai:{ + maixie:true, effect:{ target:function(card,player,target){ if(player.hasSkill('jueqing')) return [1,-2]; diff --git a/character/ow.js b/character/ow.js index fc8302759..de698e73c 100644 --- a/character/ow.js +++ b/character/ow.js @@ -84,7 +84,10 @@ character.ow={ content:function(){ player.gain(game.createCard(get.typeCard('hslingjian').randomGet()),'gain2'); }, - group:'maoding2' + group:'maoding2', + ai:{ + threaten:1.5 + } }, maoding2:{ enable:'phaseUse', @@ -96,7 +99,7 @@ character.ow={ return !target.hujia; }, selectCard:2, - usable:1, + // usable:1, content:function(){ target.changeHujia(); }, @@ -170,11 +173,12 @@ character.ow={ forced:true, popup:false, filter:function(event,player){ - return player.storage.paotai>0; + return player.storage.paotai>0&&event.num>0; }, content:function(){ - player.storage.paotai--; - if(player.storage.paotai==0){ + player.storage.paotai-=trigger.num; + if(player.storage.paotai<=0){ + player.storage.paotai=0; player.unmarkSkill('paotai'); } else{ @@ -2597,22 +2601,42 @@ character.ow={ content:function(storage,player){ var str=''; if(player.storage.shanxian_h.length){ - str+='手牌区:'+get.translation(player.storage.shanxian_h); + if(player.isUnderControl(true)){ + str+='手牌区:'+get.translation(player.storage.shanxian_h); + } + else{ + str+='手牌区:'+(player.storage.shanxian_h.length)+'张牌'; + } } if(player.storage.shanxian_e.length){ if(str.length) str+='、'; - str+='装备区:'+get.translation(player.storage.shanxian_e); + if(player.isUnderControl(true)){ + str+='装备区:'+get.translation(player.storage.shanxian_e); + } + else{ + str+='装备区:'+(player.storage.shanxian_e.length)+'张牌'; + } } return str; }, mark:function(dialog,content,player){ if(player.storage.shanxian_h.length){ - dialog.add('
手牌区
'); - dialog.addSmall(player.storage.shanxian_h); + if(player.isUnderControl(true)){ + dialog.add('
手牌区
'); + dialog.addSmall(player.storage.shanxian_h); + } + else{ + dialog.add('
手牌区:'+player.storage.shanxian_h.length+'张牌
'); + } } if(player.storage.shanxian_e.length){ - dialog.add('
装备区
'); - dialog.addSmall(player.storage.shanxian_e); + if(player.isUnderControl(true)){ + dialog.add('
装备区
'); + dialog.addSmall(player.storage.shanxian_e); + } + else{ + dialog.add('
装备区:'+player.storage.shanxian_e.length+'张牌
'); + } } }, }, @@ -2730,10 +2754,10 @@ character.ow={ zhongdun_info:'游戏开始时,你获得等同于游戏人数护甲;出牌阶段限一次,你可以弃置一张牌并将一点护甲分给一名没有护甲的其他角色', paotai:'炮台', paotai2:'炮台', - paotai_info:'出牌阶段,你可以弃置一张杀布置或升级一个炮台(最高3级);回合结束阶段,炮台有一定机率对一名随机敌人造成一点火焰伤害;每当你受到一次伤害,炮台降低一级', + paotai_info:'出牌阶段,你可以弃置一张杀布置或升级一个炮台(最高3级);回合结束阶段,炮台有一定机率对一名随机敌人造成一点火焰伤害;每当你受到一点伤害,炮台降低一级', maoding:'铆钉', maoding2:'铆钉', - maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌限阶段限一次,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲', + maoding_info:'每当你造成或受到一次伤害,你可以获得一个零件;出牌限阶段,你可以弃置两张零件牌令一名没有护甲的角色获得一点护甲', fengshi:'风矢', fengshi2:'风矢', fengshi_info:'锁定技,在一合内每当你使用一张牌,你的攻击范围+1;你的杀增加20%的概率强制命中;你的杀造成伤害后增加20%的概率令伤害+1', diff --git a/character/shenhua.js b/character/shenhua.js index 6a0ff7cb0..4d0d9f655 100644 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -2708,8 +2708,8 @@ character.shenhua={ save:true, result:{ player:function(player){ - if(player.hp<=1) return 10; - if(player.hp==2&&player.num('he')<=1) return 10; + if(player.hp==0) return 10; + if(player.hp<=2&&player.num('he')<=1) return 10; return 0; } }, diff --git a/character/xianjian.js b/character/xianjian.js index b54dca465..201c2769f 100644 --- a/character/xianjian.js +++ b/character/xianjian.js @@ -490,7 +490,7 @@ character.xianjian={ event.finish(); } 'step 2' - player.chooseCard('将两张牌置于牌堆顶(先选择的在上)',2,true); + player.chooseCard('将两张牌置于牌堆顶(先选择的在上)',2,'he',true); 'step 3' if(result.bool){ player.lose(result.cards,ui.special); @@ -540,6 +540,7 @@ character.xianjian={ } "step 1" if(result.bool){ + player.logSkill('zhangmu'); player.showCards(result.cards); trigger.untrigger(); trigger.responded=true; diff --git a/character/yijiang.js b/character/yijiang.js index a633c8542..8df082d9d 100644 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -3233,6 +3233,7 @@ character.yijiang={ huomo_sha:{ enable:'chooseToUse', viewAs:{name:'sha'}, + position:'he', viewAsFilter:function(player){ if(!player.storage.huomo) player.storage.huomo={}; if(player.storage.huomo.sha) return false; @@ -3291,6 +3292,7 @@ character.yijiang={ } return false; }, + position:'he', precontent:function(){ 'step 0' var card=event.result.cards[0]; @@ -3350,6 +3352,7 @@ character.yijiang={ 'step 2' ui.cardPile.insertBefore(event.card,ui.cardPile.firstChild); }, + position:'he', filterCard:function(card){ return get.type(card)!='basic'&&get.color(card)=='black'; }, diff --git a/game/game.js b/game/game.js index 4a0471c11..0e42db98f 100644 --- a/game/game.js +++ b/game/game.js @@ -1209,6 +1209,20 @@ game.saveConfig('fewplayer',item); if(ui.arena) ui.arena.setNumber(ui.arena.dataset.number); } + }, + player_height:{ + name:'手杀布局角色高度', + init:'default', + unfrequent:true, + item:{ + short:'减短', + default:'默认', + long:'增长', + }, + onclick:function(item){ + game.saveConfig('player_height',item); + ui.arena.dataset.player_height=item; + } }, target_shake:{ name:'目标特效', @@ -1233,20 +1247,23 @@ mark:'标记' }, onclick:function(style){ + var list=[]; for(var i=0;i.player:not(.minskin):not(*[data-position='0']){ + height: 200px !important; +} +#arena:not(.fewplayer)[data-player_height='short']>.player:not(.minskin):not(*[data-position='0']){ + height: 180px !important; +} #arena:not(.fewplayer)>.player:not(.minskin):not(*[data-position='0'])>.equips{ transform: scale(0.8); transform-origin: bottom left; } #arena:not(.fewplayer)>.player:not(.minskin):not(*[data-position='0'])>.avatar, #arena:not(.fewplayer)>.player:not(.minskin):not(*[data-position='0'])>.avatar2{ - width: 106px !important; - height: 206px !important; + width: calc(100% - 14px) !important; + height: calc(100% - 14px) !important; background-position: 50% !important; } #arena.uslim_player:not(.fewplayer)>.player:not(.minskin):not(*[data-position='0'])>.avatar, #arena.uslim_player:not(.fewplayer)>.player:not(.minskin):not(*[data-position='0'])>.avatar2{ - width: 114px !important; - height: 214px !important; + width: calc(100% - 6px) !important; + height: calc(100% - 6px) !important; background-position: 50% !important; } #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(*[data-position='0'])>.avatar, #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(*[data-position='0'])>.avatar2{ - height: 110px !important; + height: 50% !important; background-position: 0 0 !important; border-radius: 8px !important; } #arena.uslim_player:not(.fewplayer)>.player.fullskin2:not(.minskin):not(*[data-position='0'])>.avatar, #arena.uslim_player:not(.fewplayer)>.player.fullskin2:not(.minskin):not(*[data-position='0'])>.avatar2{ - height: 107px !important; + height: calc(50% + 4px) !important; } #window[data-radius_size='reduce'] #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(*[data-position='0'])>.avatar, #window[data-radius_size='reduce'] #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(*[data-position='0'])>.avatar2{ @@ -43,13 +49,25 @@ } #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(.unseen2):not(*[data-position='0'])>.avatar{ border-radius: 8px 8px 0 0 !important; - height: 124px !important; + height: calc(50% + 14px) !important; -webkit-clip-path: polygon(-10px -10px, 116px -10px, 116px 92px, 106px 92px, 0px 114px, -10px 114px); } +#arena:not(.fewplayer)[data-player_height='default']>.player.fullskin2:not(.minskin):not(.unseen2):not(*[data-position='0'])>.avatar{ + -webkit-clip-path: polygon(-10px -10px, 116px -10px, 116px 82px, 106px 82px, 0px 104px, -10px 104px); +} +#arena:not(.fewplayer)[data-player_height='short']>.player.fullskin2:not(.minskin):not(.unseen2):not(*[data-position='0'])>.avatar{ + -webkit-clip-path: polygon(-10px -10px, 116px -10px, 116px 72px, 106px 72px, 0px 94px, -10px 94px); +} #arena.uslim_player:not(.fewplayer)>.player.fullskin2:not(.minskin):not(.unseen2):not(*[data-position='0'])>.avatar{ - height: 128px !important; + height: calc(50% + 18px) !important; -webkit-clip-path: polygon(-10px -10px, 124px -10px, 124px 96px, 114px 96px, 0px 118px, -10px 118px); } +#arena.uslim_player:not(.fewplayer)[data-player_height='default']>.player.fullskin2:not(.minskin):not(.unseen2):not(*[data-position='0'])>.avatar{ + -webkit-clip-path: polygon(-10px -10px, 124px -10px, 124px 86px, 114px 86px, 0px 108px, -10px 108px); +} +#arena.uslim_player:not(.fewplayer)[data-player_height='short']>.player.fullskin2:not(.minskin):not(.unseen2):not(*[data-position='0'])>.avatar{ + -webkit-clip-path: polygon(-10px -10px, 124px -10px, 124px 76px, 114px 76px, 0px 98px, -10px 98px); +} #window[data-radius_size='reduce'] #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(.unseen2):not(*[data-position='0'])>.avatar{ border-radius: 4px 4px 0 0 !important; } @@ -61,14 +79,14 @@ } #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(.unseen):not(*[data-position='0'])>.avatar2{ border-radius: 0 0 8px 8px !important; - top: 89px !important; - height: 124px !important; + top: calc(50% - 21px) !important; + height: calc(50% + 14px) !important; background-position: 0 10px !important; -webkit-clip-path: polygon(-10px 32px, 0 32px, 106px 10px, 116px 10px, 116px 134px, -10px 134px); } #arena.uslim_player:not(.fewplayer)>.player.fullskin2:not(.minskin):not(.unseen):not(*[data-position='0'])>.avatar2{ - top: 89px !important; - height: 128px !important; + top: calc(50% - 21px) !important; + height: calc(50% + 18px) !important; -webkit-clip-path: polygon(-10px 32px, 0 32px, 114px 10px, 124px 10px, 124px 138px, -10px 138px); } #window[data-radius_size='reduce'] #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(.unseen):not(*[data-position='0'])>.avatar2{ @@ -81,7 +99,7 @@ border-radius: 0 0 16px 16px !important; } #arena:not(.fewplayer)>.player.fullskin2:not(.minskin):not(*[data-position='0'])>.avatar2{ - top: 103px !important; + top: calc(50% - 7px) !important; } #arena:not(.fewplayer)>.player:not(.minskin):not(*[data-position='0'])>.identity{ left: 102px; @@ -92,20 +110,20 @@ #arena:not(.fewplayer)>.player:not(.minskin):not(*[data-position='0'])>.hp:not(.actcount).text{ left: 89px; } -#arena:not(.fewplayer).player.fullskin2 .avatar2{ +#arena:not(.fewplayer)>.player.fullskin2 .avatar2{ z-index: 2; } -#arena:not(.fewplayer).player.unseen:not(.unseen2) .count{ +#arena:not(.fewplayer)>.player.unseen:not(.unseen2) .count{ text-align: left; border-radius:3px 0 0 3px; } -#arena:not(.fewplayer).player.unseen2 .count{ +#arena:not(.fewplayer)>.player.unseen2 .count{ border-radius: 3px; text-align: center; } #arena:not(.fewplayer) .timerbar>div{ - top: 205px; + top: calc(100% - 15px); width: 96px; left: 12px; } diff --git a/layout/long2/layout.css b/layout/long2/layout.css index ef760639d..cb37afc4f 100644 --- a/layout/long2/layout.css +++ b/layout/long2/layout.css @@ -19,19 +19,29 @@ bottom:150px; height: 40px; } +/*#control>div{ + height: 40px; + font-family: 'xinwei'; + font-size: 30px; + line-height: 34px; +}*/ #arena:not(.chess)>#me, #arena:not(.chess)>#mebg, #arena:not(.chess)>#autonode{ - bottom: 50px; - width: calc(100% - 20px); - left: 20px; - top: auto; - height: 120px; + bottom:30px; + width: calc(5000% / 47); + left:calc(-150% / 47); + top:auto; + border-radius:0 !important; + height:120px; } #arena:not(.chess)>#autonode{ width: calc(5000% / 47 - 240px); left:calc(-150% / 47 + 120px); } +#arena:not(.mobile).single-handcard #handcards1{ + width: calc(100% - 120px); +} #window.leftbar #arena:not(.chess)>#me, #window.leftbar #arena:not(.chess)>#mebg, #window.leftbar #arena:not(.chess)>#autonode, @@ -60,8 +70,8 @@ top:calc(100% - 120px); } #arena:not(.chess):not(.single-handcard) #handcards1{ - width: calc(100% - 100px); - left: 100px; + width:calc(100% - 240px); + left:calc(150% / 47 - 300% / 94 + 625% / 47 - 105px + 120px); } #handcards2{ display:none; @@ -87,18 +97,14 @@ #window[data-radius_size='reduce'] #me>.fakeme.avatar{ border-radius:0px; } -#arena>.player[data-position='0']{ - left: 0; - top: calc(100% - 220px); -} -#arena:not(.mobile):not(.single-handcard) #handcards1>div{ - left: 0; +#arena>.player[data-position='0']:not(.minskin){ + top: calc(100% - 238px); } #arena>.player:not(.minskin){ width: 120px !important; - height: 180px !important; + height: 200px !important; } #arena>.player:not(.minskin)>.equips{ transform: scale(0.8); @@ -186,6 +192,14 @@ #arena>.player:not(.minskin)>.hp:not(.actcount).text{ left: 89px; } +#arena>.player.fullskin2 .avatar2{ + z-index: 2; +} +#arena>.player .count{ + text-align: center; + border-radius: 3px; + z-index: 3; +} .timerbar>div{ top: 205px; @@ -201,6 +215,8 @@ #arena[data-number='8']>.player[data-position='5']{top:0;left:calc(-300% / 94 + 1875% / 47 - 315px + 240px);} #arena[data-number='8']>.player[data-position='6']{top:calc(8% - 32px);left:calc(-300% / 94 + 1250% / 47 - 210px + 120px);} #arena[data-number='8']>.player[data-position='7']{top:calc(30% - 120px);left:calc(-300% / 94 + 625% / 47 - 105px);} +#arena[data-number='8']>.player[data-position='0']{left:calc(-300% / 94 + 625% / 47 - 105px);} +#arena>.player[data-position='0']{left:0;} @media screen and (min-width: 1105px){ #arena[data-number='8']>.player[data-position='1']{left:calc(100% - 120px);} #arena[data-number='8']>.player[data-position='2']{left:calc(500% / 6 - 100px);} @@ -209,6 +225,7 @@ #arena[data-number='8']>.player[data-position='5']{left:calc(200% / 6 - 40px);} #arena[data-number='8']>.player[data-position='6']{left:calc(100% / 6 - 20px);} #arena[data-number='8']>.player[data-position='7']{left:0;} + #arena[data-number='8']>.player[data-position='0']{left:0;} } /*--------位置(7人)------*/ #arena[data-number='7']>.player[data-position='1']{top:calc(30% - 120px);left:calc(100% - 120px);} diff --git a/layout/mobile/layout.css b/layout/mobile/layout.css index f7c56f6c6..adc15d6ad 100644 --- a/layout/mobile/layout.css +++ b/layout/mobile/layout.css @@ -222,9 +222,9 @@ text-align: right; } #arena.uslim_player .player:not([data-position='0'])>.count{ - z-index: 3; - border-radius: 2px; - text-align: center; + z-index: 3 !important; + border-radius: 2px !important; + text-align: center !important; } #arena:not(.chess) .player[data-position='0']>.hp.actcount{ top:10px; diff --git a/layout/newlayout/global.css b/layout/newlayout/global.css index bec2f88b6..8270aa22d 100644 --- a/layout/newlayout/global.css +++ b/layout/newlayout/global.css @@ -21,6 +21,9 @@ height: 174px; left:3px; top:3px; +} +#arena:not(.mobile).uslim_player .player:not(.minskin):not(.fakeme) .avatar, +#arena.mobile.uslim_player .player:not(.minskin):not(.fakeme):not(*[data-position='0']) .avatar{ box-shadow: rgba(0, 0, 0, 0.2) 0 0 0 1px; } #window>.player.minskin>.avatar{ diff --git a/mode/chess.js b/mode/chess.js index e30de5144..a928d2160 100644 --- a/mode/chess.js +++ b/mode/chess.js @@ -4675,10 +4675,19 @@ mode.chess={ return num+get.cardCount(true,player)-get.cardCount('sha',player); } }, - attackFrom:function(from,to,distance){ - return distance-1; - } }, + trigger:{player:'useCard'}, + frequent:true, + filter:function(event){ + return event.card&&event.card.name=='sha'; + }, + usable:1, + content:function(){ + player.draw(); + }, + ai:{ + threaten:1.5 + } }, pianyi:{ trigger:{player:'phaseEnd'}, @@ -5191,7 +5200,7 @@ mode.chess={ lingdong:'灵动', lingdong_info:'回合结束阶段,你可以移动X个格,X为你回合内出杀的次数', lianshe:'箭舞', - lianshe_info:'你的攻击范围+1;回合内,你回合内,每当你使用一张不是杀的牌,你可以额外使用一张杀', + lianshe_info:'当你于一个回合中首次使用杀时,你可以摸一张牌;在你的回合内,每当你使用一张不是杀的牌,你可以额外使用一张杀', zhiming:'穿杨', zhiming_info:'锁定技,当你使用杀造成伤害时,若你不在目标的攻击范围内,此伤害+1', sanjiansheji:'散箭', @@ -5511,7 +5520,7 @@ mode.chess={ // // chess_lvbu:['male','qun',3,['']], chess_sunshangxiang:['female','wu',3,['lingdong','lianshe','gongji']], - chess_diaochan:['female','qun',3,['xingzhui','pianyi']], + chess_diaochan:['female','qun',3,['xingzhui','pianyi','biyue']], // chess_huatuo:['male','qun',3,['zhenjiu','mazui']], // chess_zhangjiao:['male','qun',3,['']], // chess_menghuo:['male','qun',3,['']],