diff --git a/card/hearth.js b/card/hearth.js index d6a322f8c..9e43c6835 100644 --- a/card/hearth.js +++ b/card/hearth.js @@ -463,6 +463,9 @@ card.hearth={ return 0; }, }, + tag:{ + recover:1 + } } }, shenenshu:{ @@ -551,6 +554,9 @@ card.hearth={ if(target.hp==1) return 2.5; return 2; } + }, + tag:{ + recover:1 } } }, @@ -563,7 +569,14 @@ card.hearth={ content:function(){ "step 0" target.chooseToDiscard([1,2],'he').ai=function(card){ - if(ai.get.damageEffect(target,player,target,'thunder')>=0) return 0; + if(ai.get.damageEffect(target,player,target,'thunder')>=0){ + if(target.hasSkillTag('maixie')){ + if(ui.selected.cards.length) return 0; + } + else{ + return 0; + } + } if(target.hasSkillTag('maixie')&&target.hp>1&&ui.selected.cards.length){ return 0; } diff --git a/card/swd.js b/card/swd.js index 005bb3c83..cbd261385 100755 --- a/card/swd.js +++ b/card/swd.js @@ -818,6 +818,9 @@ card.swd={ target.hp0){ return 1+trigger.judge(button.link); } @@ -3583,7 +3586,7 @@ card.swd={ donghuangzhong_info:'回合结束阶段,你可以弃置一张手牌,并选择一名角色将一张随机判定牌置入其判定区', xuanyuanjian_info:'锁定技,每当你即将造成一次伤害,你令此伤害加一并变为雷属性,此伤害结算后,你流失一点体力并摸一张牌。任何时候,若你体力值不超过2,则立即失去轩辕剑', pangufu_info:'锁定技,每当你造成一次伤害,受伤角色须弃置一张牌', - haotianta_info:'任意一名角色进行判定前,你可以观看牌堆顶的3张牌,并选择一张作为判定结果,此结果不可被更改,也不能触发技能。每回合最多发动3次', + haotianta_info:'锁定技,任意一名角色进行判定前,你观看牌堆顶的3张牌,并选择一张作为判定结果,此结果不可被更改,也不能触发技能。每回合最多发动一次', shennongding_info:'出牌阶段,你可以弃置两张手牌,然后回复一点体力。每阶段限一次', kongdongyin_info:'令你抵挡一次死亡,将体力回复至1,并摸一张牌,发动后进入弃牌堆', kunlunjingc_info:'出牌阶段限一次,你可以观看牌堆顶的三张牌,然后用一张手牌替换其中的一张', diff --git a/character/rank.js b/character/rank.js index 61d8ea45d..040a64ccd 100644 --- a/character/rank.js +++ b/character/rank.js @@ -121,6 +121,7 @@ window.characterRank={ 'ow_kuangshu', ], am:[ + 'pal_wangpengxu', 'guohuanghou', 'sunziliufang', 'hs_blingtron', diff --git a/character/sp.js b/character/sp.js index db7479481..68c3e3d4b 100755 --- a/character/sp.js +++ b/character/sp.js @@ -60,6 +60,7 @@ character.sp={ tadun:['male','qun',4,['luanzhan']], yanbaihu:['male','qun',4,['zhidao','jili']], chengyu:['male','wei',3,['shefu','benyu']], + wanglang:['male','wei',3,[]], }, perfectPair:{ zhugejin:['zhugeke'], diff --git a/character/xianjian.js b/character/xianjian.js index 91e664993..07e05b672 100755 --- a/character/xianjian.js +++ b/character/xianjian.js @@ -5,21 +5,20 @@ character.xianjian={ pal_zhaoliner:['female','wei',3,['huimeng','tianshe']], pal_linyueru:['female','wei',3,['guiyuan','qijian']], - pal_wangxiaohu:['male','qun',4,['guiyuan','qijian']], - pal_sumei:['female','shu',3,['guiyuan','qijian']], - pal_shenqishuang:['female','wei',3,['guiyuan','qijian']], + pal_wangxiaohu:['male','qun',4,[]], + pal_sumei:['female','shu',3,[]], + pal_shenqishuang:['female','wei',3,[]], pal_jingtian:['male','wu',3,['sajin','jubao']], pal_xuejian:['female','shu',3,['shuangren','shenmu','duci']], - pal_longkui:['female','wei',3,['shuangren','shenmu','duci']], - // pal_longkuigui:['female','shu',3,['shuangren','shenmu','duci']], + pal_longkui:['female','wei',3,['fenxing','diewu','lingyu']], pal_zixuan:['female','wei',3,['shuiyun','wangyou','changnian']], pal_changqing:['male','wei',4,['luanjian','tianfu']], pal_nangonghuang:['male','wei',3,[]], pal_wenhui:['female','shu',4,[]], - pal_wangpengxu:['female','shu',3,[]], + pal_wangpengxu:['female','shu',3,['duxinshu','feixu']], pal_xingxuan:['male','wei',3,[]], pal_leiyuange:['male','wei',3,[]], @@ -31,6 +30,240 @@ character.xianjian={ }, skill:{ + diesha:{ + trigger:{source:'damageEnd'}, + forced:true, + filter:function(event){ + return event.player.isAlive()&&event.card&&event.card.name=='sha'; + }, + content:function(){ + trigger.player.loseHp(); + player.recover(); + }, + ai:{ + threaten:1.5 + } + }, + guijiang:{ + enable:'phaseUse', + usable:1, + filterTarget:function(card,player,target){ + return target!=player&&!target.hasSkill('guijiang2'); + }, + filterCard:{color:'black'}, + filter:function(event,player){ + return player.num('h',{color:'black'}); + }, + check:function(card){ + return 5-ai.get.value(card); + }, + content:function(){ + target.addSkill('guijiang2'); + target.storage.guijiang2=player; + }, + ai:{ + order:4, + threaten:1.2, + expose:0.2, + result:{ + target:function(player,target){ + if(target.hp==1) return -1; + if(target.hp==2) return -0.5; + return 0; + } + } + } + }, + guijiang2:{ + mark:true, + intro:{ + content:'不能成为回复牌的目标' + }, + trigger:{global:['dieBegin','phaseBegin']}, + forced:true, + popup:false, + filter:function(event,player){ + return event.player==player.storage.guijiang2; + }, + content:function(){ + player.removeSkill('guijiang2'); + }, + mod:{ + targetEnabled:function(card){ + if(get.tag(card,'recover')) return false; + }, + } + }, + _guijiang2:{ + mod:{ + cardSavable:function(card,player){ + if(_status.event.dying.hasSkill('guijiang2')) return false; + } + } + }, + fenxing:{ + trigger:{player:'phaseBegin'}, + forced:true, + unique:true, + forceunique:true, + filter:function(){ + return Math.random()<5; + }, + content:function(){ + var node; + if(player.name=='pal_longkui'){ + node=player.node.avatar; + } + else if(player.name2=='pal_longkui'){ + node=player.node.avatar2; + } + if(player.storage.fenxing){ + player.storage.fenxing=false; + player.removeSkill('guijiang'); + player.removeSkill('diesha'); + player.addSkill('diewu'); + player.addSkill('lingyu'); + node.setBackground('pal_longkui','character'); + } + else{ + player.storage.fenxing=true; + player.removeSkill('diewu'); + player.removeSkill('lingyu'); + player.addSkill('guijiang'); + player.addSkill('diesha'); + node.setBackground('pal_longkuigui','character'); + } + }, + }, + diewu:{ + enable:'phaseUse', + filter:function(event,player){ + return player.num('h','sha')>0; + }, + filterCard:{name:'sha'}, + filterTarget:function(card,player,target){ + return target!=player; + }, + prepare:function(cards,player,targets){ + player.$give(cards,targets[0]); + }, + discard:false, + content:function(){ + target.gain(cards); + if(!player.hasSkill('diewu2')){ + player.draw(); + player.addTempSkill('diewu2','phaseAfter'); + } + }, + ai:{ + order:2, + expose:0.2, + result:{ + target:function(player,target){ + if(!player.hasSkill('diewu2')) return 1; + return 0; + } + } + } + }, + diewu2:{}, + lingyu:{ + trigger:{player:'phaseEnd'}, + direct:true, + filter:function(event,player){ + for(var i=0;i0; + }, + prompt:function(event){ + return '是否对'+get.translation(event.player)+'发动【飞絮】?' + }, + content:function(){ + player.line(trigger.player,'green'); + trigger.player.draw(); + }, + ai:{ + mingzhi:false, + threaten:2, + expose:0.2, + } + }, xuanyan:{ // trigger:{source:'damageBefore'}, // forced:true, @@ -1363,6 +1596,16 @@ character.xianjian={ } }, translate:{ + pal_wangxiaohu:'王小虎', + pal_sumei:'苏媚', + pal_shenqishuang:'沈欺霜', + pal_longkui:'龙葵', + pal_nangonghuang:'南宫煌', + pal_wenhui:'温慧', + pal_wangpengxu:'王蓬絮', + pal_xingxuan:'星璇', + pal_leiyuange:'雷元戈', + pal_zhaoliner:'赵灵儿', pal_linyueru:'林月如', pal_xuejian:'雪见', @@ -1376,6 +1619,21 @@ character.xianjian={ pal_changqing:'长卿', pal_xuanxiao:'玄霄', + fenxing:'分形', + fenxing_info:'锁定技,回合开始阶段,你有50%概率变身为另一形态', + guijiang:'鬼降', + guijiang2:'鬼降', + guijiang_info:'出牌阶段限一次,你可以弃置一张黑色牌,令一名其他角色无法成为回复牌的目标直到你下一回合开始', + diesha:'叠杀', + diesha_info:'锁定技,每当你使用杀造成伤害,受伤害角色失去一点体力,你回复一点体力', + lingyu:'灵愈', + lingyu_info:'回合结束阶段,你可以令一名其他角色回复一点体力', + diewu:'蝶舞', + diewu_info:'出牌阶段,你可以将一张【杀】交给一名角色,若你于此阶段内首次如此做,你摸一张牌', + duxinshu:'读心', + duxinshu_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后可以用一张手牌替换其中的一张', + feixu:'飞絮', + feixu_info:'每当一名角色使用或打出一张闪,你可以令其摸一张牌', xuanyan:'玄炎', xuanyan2:'玄炎', xuanyan_info:'锁定技,你的火属性伤害+1;你造成火属性伤害后流失1点体力', diff --git a/character/yxs.js b/character/yxs.js index 83b19de69..dbf702ee4 100755 --- a/character/yxs.js +++ b/character/yxs.js @@ -832,7 +832,7 @@ character.yxs={ tuqiang:{ trigger:{player:'respond'}, filter:function(event,player){ - return event.card.name=='shan'; + return event.card&&event.card.name=='shan'; }, frequent:true, content:function(){ diff --git a/game/asset.js b/game/asset.js index cc1bf6c2e..ad3cba8f2 100644 --- a/game/asset.js +++ b/game/asset.js @@ -960,6 +960,7 @@ window.noname_asset_list=[ 'image/character/treasure_shiyuansu.jpg', 'image/character/treasure_wuyashenxiang.jpg', 'image/character/wangji.jpg', + 'image/character/wanglang.jpg', 'image/character/wangyi.jpg', 'image/character/weiyan.jpg', 'image/character/wenpin.jpg', diff --git a/game/game.js b/game/game.js index f383d0e05..e2dc3a935 100755 --- a/game/game.js +++ b/game/game.js @@ -3867,7 +3867,7 @@ } } else{ - game.print('dublicate '+j+' in character '+i+':\n'+k+'\n'+': '+lib[j][k]+'\n'+character[i][j][k]); + console.log('dublicate '+j+' in character '+i+':\n'+k+'\n'+': '+lib[j][k]+'\n'+character[i][j][k]); } } } @@ -3949,7 +3949,7 @@ } else{ if(lib[j][k]==undefined) lib[j][k]=lib.init.eval(card[i][j][k]); - else game.print('dublicate '+j+' in card '+i+':\n'+k+'\n'+lib[j][k]+'\n'+card[i][j][k]); + else console.log('dublicate '+j+' in card '+i+':\n'+k+'\n'+lib[j][k]+'\n'+card[i][j][k]); if(j=='card'&&lib[j][k].derivation){ if(!lib.cardPack.mode_derivation){ lib.cardPack.mode_derivation=[k]; @@ -4018,7 +4018,7 @@ } else{ if(lib[j][k]!=undefined){ - game.print('dublicate '+j+' in play '+i+':\n'+k+'\n'+': '+lib[j][k]+'\n'+play[i][j][k]); + console.log('dublicate '+j+' in play '+i+':\n'+k+'\n'+': '+lib[j][k]+'\n'+play[i][j][k]); } lib[j][k]=lib.init.eval(play[i][j][k]); } @@ -16960,6 +16960,7 @@ dialog.add(ui.create.div('.placeholder')); for(var i=0;i'+get.translation(game.players[i])+''); @@ -17992,7 +17993,7 @@ lib[j][k]=lib.init.eval(character[i][j][k]); } else{ - game.print('dublicate '+j+' in character '+i+':\n'+k+'\n'+': '+lib[j][k]+'\n'+character[i][j][k]); + console.log('dublicate '+j+' in character '+i+':\n'+k+'\n'+': '+lib[j][k]+'\n'+character[i][j][k]); } } } @@ -18016,7 +18017,7 @@ } else{ if(lib[j][k]==undefined) lib[j][k]=lib.init.eval(card[i][j][k]); - else game.print('dublicate '+j+' in card '+i+':\n'+k+'\n'+lib[j][k]+'\n'+card[i][j][k]); + else console.log('dublicate '+j+' in card '+i+':\n'+k+'\n'+lib[j][k]+'\n'+card[i][j][k]); } } } @@ -26719,6 +26720,7 @@ } if(modes.length==7){ modes.pop(); + rows--; } for(var k=0;k