diff --git a/audio/die/shen_simayi.mp3 b/audio/die/shen_simayi.mp3 index db600bae6..4cf78d742 100644 Binary files a/audio/die/shen_simayi.mp3 and b/audio/die/shen_simayi.mp3 differ diff --git a/audio/skill/jilue_fangzhu1.mp3 b/audio/skill/jilue_fangzhu1.mp3 new file mode 100644 index 000000000..c7f3d8887 Binary files /dev/null and b/audio/skill/jilue_fangzhu1.mp3 differ diff --git a/audio/skill/jilue_guicai1.mp3 b/audio/skill/jilue_guicai1.mp3 new file mode 100644 index 000000000..5e2cda797 Binary files /dev/null and b/audio/skill/jilue_guicai1.mp3 differ diff --git a/audio/skill/jilue_jizhi1.mp3 b/audio/skill/jilue_jizhi1.mp3 new file mode 100644 index 000000000..b660d4e8b Binary files /dev/null and b/audio/skill/jilue_jizhi1.mp3 differ diff --git a/audio/skill/jilue_zhiheng1.mp3 b/audio/skill/jilue_zhiheng1.mp3 new file mode 100644 index 000000000..07f5bf176 Binary files /dev/null and b/audio/skill/jilue_zhiheng1.mp3 differ diff --git a/audio/skill/lianpo1.mp3 b/audio/skill/lianpo1.mp3 new file mode 100644 index 000000000..0ff84667e Binary files /dev/null and b/audio/skill/lianpo1.mp3 differ diff --git a/audio/skill/lianpo2.mp3 b/audio/skill/lianpo2.mp3 new file mode 100644 index 000000000..bb88de42e Binary files /dev/null and b/audio/skill/lianpo2.mp3 differ diff --git a/audio/skill/renjie21.mp3 b/audio/skill/renjie21.mp3 new file mode 100644 index 000000000..d2eb13815 Binary files /dev/null and b/audio/skill/renjie21.mp3 differ diff --git a/audio/skill/renjie22.mp3 b/audio/skill/renjie22.mp3 new file mode 100644 index 000000000..9bab5f62e Binary files /dev/null and b/audio/skill/renjie22.mp3 differ diff --git a/audio/skill/sbaiyin1.mp3 b/audio/skill/sbaiyin1.mp3 new file mode 100644 index 000000000..c7916ce8b Binary files /dev/null and b/audio/skill/sbaiyin1.mp3 differ diff --git a/audio/skill/sbaiyin2.mp3 b/audio/skill/sbaiyin2.mp3 new file mode 100644 index 000000000..d81ccad61 Binary files /dev/null and b/audio/skill/sbaiyin2.mp3 differ diff --git a/audio/skill/wansha_shen_simayi1.mp3 b/audio/skill/wansha_shen_simayi1.mp3 index 0a6aa2367..bb0aa3ed3 100644 Binary files a/audio/skill/wansha_shen_simayi1.mp3 and b/audio/skill/wansha_shen_simayi1.mp3 differ diff --git a/audio/skill/wansha_shen_simayi2.mp3 b/audio/skill/wansha_shen_simayi2.mp3 index 0a6aa2367..bb0aa3ed3 100644 Binary files a/audio/skill/wansha_shen_simayi2.mp3 and b/audio/skill/wansha_shen_simayi2.mp3 differ diff --git a/card/gwent.js b/card/gwent.js index 2099e2318..3f86f7afb 100644 --- a/card/gwent.js +++ b/card/gwent.js @@ -1341,6 +1341,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ subtype:'spell_silver', enable:true, usable:1, + updateUsable:'phaseUse', forceUsable:true, filterTarget:function(card,player,target){ return target==player; diff --git a/card/standard.js b/card/standard.js index 47e574338..bd621a717 100644 --- a/card/standard.js +++ b/card/standard.js @@ -67,6 +67,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ type:'basic', enable:true, usable:1, + updateUsable:'phaseUse', range:{attack:1}, selectTarget:1, filterTarget:function(card,player,target){return player!=target}, diff --git a/card/swd.js b/card/swd.js index 1eaafcf05..93cf2113b 100644 --- a/card/swd.js +++ b/card/swd.js @@ -1,5479 +1,5480 @@ -'use strict'; -game.import('card',function(lib,game,ui,get,ai,_status){ - return { - name:'swd', - card:{ - hufu:{ - fullskin:true, - type:'basic', - global:['g_hufu_sha','g_hufu_shan','g_hufu_jiu'], - savable:function(card,player,dying){ - return dying==player; - }, - ai:{ - value:[7.5,5,2], - useful:[7.5,5,2], - } - }, - // yihuajiemu:{ - // fullskin:true, - // type:'trick', - // enable:true, - // singleCard:true, - // filterTarget:function(card,player,target){ - // if(target.isMin()) return false; - // if(ui.selected.targets.length){ - // return target.getCards('e',{subtype:'equip5'}).length==0; - // } - // else{ - // return target.getCards('e',{subtype:'equip5'}).length>0; - // } - // }, - // selectTarget:2, - // multitarget:true, - // complexTarget:true, - // multicheck:function(){ - // return game.hasPlayer(function(current){ - // return current.getEquip(5); - // })&&game.hasPlayer(function(current){ - // return !current.getEquip(5); - // }); - // }, - // content:function(){ - // if(target.getEquip(5)){ - // target.$give(target.getEquip(5),event.addedTarget); - // event.addedTarget.equip(target.getEquip(5)); - // game.delay(); - // } - // }, - // ai:{ - // order:1, - // result:{ - // target:function(player,target){ - // if(target.getCards('e',{subtype:'equip5'}).length){ - // if(get.attitude(target,player)>0){ - // return -0.5; - // } - // return -1; - // } - // return 1; - // } - // }, - // tag:{ - // loseCard:1 - // } - // } - // }, - liuxinghuoyu:{ - fullskin:true, - type:'trick', - enable:true, - filterTarget:true, - cardcolor:'red', - cardnature:'fire', - content:function(){ - "step 0" - if(target.countCards('he')<2){ - event.directfalse=true; - } - else{ - target.chooseToDiscard('he',2).ai=function(card){ - if(target.hasSkillTag('nofire')) return 0; - if(get.damageEffect(target,player,target,'fire')>=0) return 0; - if(player.hasSkillTag('notricksource')) return 0; - if(target.hasSkillTag('notrick')) return 0; - if(card.name=='tao') return 0; - if(target.hp==1&&card.name=='jiu') return 0; - if(target.hp==1&&get.type(card)!='basic'){ - return 10-get.value(card); - } - return 8-get.value(card); - }; - } - "step 1" - if(event.directfalse||!result.bool){ - target.damage('fire'); - } - }, - ai:{ - basic:{ - order:4, - value:7, - useful:2, - }, - result:{ - target:function(player,target){ - if(target.hasSkillTag('nofire')) return 0; - if(get.damageEffect(target,player,player)<0&&get.attitude(player,target)>0){ - return -2; - } - var nh=target.countCards('he'); - if(target==player) nh--; - switch(nh){ - case 0:case 1:return -2; - case 2:return -1.5; - case 3:return -1; - default:return -0.7; - } - } - }, - tag:{ - damage:1, - fireDamage:1, - natureDamage:1, - discard:1, - loseCard:1, - position:'he', - } - } - }, - dujian:{ - fullskin:true, - type:'basic', - enable:true, - filterTarget:function(card,player,target){ - return target.countCards('h')>0; - }, - content:function(){ - "step 0" - if(target.countCards('h')==0||player.countCards('h')==0){ - event.finish(); - return; - } - player.chooseCard(true); - "step 1" - event.card1=result.cards[0]; - var rand=Math.random()<0.5; - target.chooseCard(true).ai=function(card){ - if(rand) return Math.random(); - return get.value(card); - }; - "step 2" - event.card2=result.cards[0]; - ui.arena.classList.add('thrownhighlight'); - game.addVideo('thrownhighlight1'); - player.$compare(event.card1,target,event.card2); - game.delay(4); - "step 3" - game.log(player,'展示了',event.card1); - game.log(target,'展示了',event.card2); - if(get.color(event.card2)==get.color(event.card1)){ - player.discard(event.card1).animate=false; - target.$gain2(event.card2); - var clone=event.card1.clone; - if(clone){ - clone.style.transition='all 0.5s'; - clone.style.transform='scale(1.2)'; - clone.delete(); - game.addVideo('deletenode',player,get.cardsInfo([clone])); - } - target.loseHp(); - } - else{ - player.$gain2(event.card1); - target.$gain2(event.card2); - target.addTempSkill('dujian2'); - } - ui.arena.classList.remove('thrownhighlight'); - game.addVideo('thrownhighlight2'); - }, - ai:{ - basic:{ - order:2, - value:3, - useful:1, - }, - result:{ - player:function(player,target){ - if(player.countCards('h')<=Math.min(5,Math.max(2,player.hp))&&_status.event.name=='chooseToUse'){ - if(typeof _status.event.filterCard=='function'&& - _status.event.filterCard({name:'dujian'})){ - return -10; - } - if(_status.event.skill){ - var viewAs=get.info(_status.event.skill).viewAs; - if(viewAs=='dujian') return -10; - if(viewAs&&viewAs.name=='dujian') return -10; - } - } - return 0; - }, - target:function(player,target){ - if(target.hasSkill('dujian2')||target.countCards('h')==0) return 0; - if(player.countCards('h')<=1) return 0; - return -1.5; - } - }, - tag:{ - loseHp:1 - } - } - }, - yangpijuan:{ - fullskin:true, - type:'trick', - enable:true, - toself:true, - filterTarget:function(card,player,target){ - return target==player; - }, - modTarget:true, - content:function(){ - 'step 0' - var choice; - if(target.countCards('h','shan')==0||target.countCards('h','sha')==0||target.hp<=1){ - choice='basic'; - } - else{ - var e2=target.getEquip(2); - var e3=target.getEquip(3); - if((e2&&e3)||((e2||e3)&&target.needsToDiscard()<=1)||Math.random()<0.5){ - choice='trick'; - } - else{ - choice='equip'; - } - } - target.chooseControl('basic','trick','equip',function(){ - return choice; - }).set('prompt','选择一种卡牌类型'); - 'step 1' - var list=get.inpile(result.control,'trick'); - list=list.randomGets(3); - for(var i=0;i=0) return 0; - return 1; - } - else{ - if(get.attitude(player,target)>0) return 0; - if(get.damageEffect(target,player,target)>=0) return 0; - return -1; - } - } - }, - } - }, - yuruyi:{ - type:'equip', - subtype:'equip5', - skills:['yuruyi'], - fullskin:true, - ai:{ - basic:{ - equipValue:6 - } - }, - }, - fengyinzhidan:{ - type:'basic', - enable:true, - fullskin:true, - filterTarget:function(card,player,target){ - return target==player; - }, - selectTarget:-1, - modTarget:true, - // usable:1, - content:function(){ - 'step 0' - event.num=2; - var list=[]; - event.list=list; - for(var i=0;i0&&info.selectTarget[1]>=info.selectTarget[0]){ - list.push(lib.inpile[i]); - } - } - else if(typeof info.selectTarget=='number'){ - list.push(lib.inpile[i]); - } - } - } - } - 'step 1' - var list=event.list; - while(list.length){ - var card={name:list.randomRemove()}; - var info=get.info(card); - var targets=game.filterPlayer(function(current){ - return lib.filter.filterTarget(card,target,current); - }); - if(targets.length){ - targets.sort(lib.sort.seat); - if(info.selectTarget==-1){ - target.useCard(card,targets,'noai'); - } - else{ - var num=info.selectTarget; - if(Array.isArray(num)){ - if(targets.length0){ - event.redo(); - } - break; - } - } - }, - ai:{ - order:9, - value:8, - useful:3, - result:{ - target:1 - } - } - }, - yuchanqian:{ - fullskin:true, - type:'jiqi', - addinfo:'杀', - autoViewAs:'sha', - global:['g_yuchan_swap','g_yuchan_equip'], - ai:{ - value:6, - useful:[5,1] - } - }, - yuchankun:{ - fullskin:true, - type:'jiqi', - addinfo:'药', - autoViewAs:'caoyao', - global:['g_yuchan_swap','g_yuchan_equip'], - ai:{ - value:6, - useful:[7,2] - } - }, - yuchanzhen:{ - fullskin:true, - type:'jiqi', - autoViewAs:'jiu', - addinfo:'酒', - global:['g_yuchan_swap','g_yuchan_equip'], - savable:function(card,player,dying){ - return dying==player; - }, - ai:{ - value:6, - useful:[4,1] - } - }, - yuchanxun:{ - fullskin:true, - type:'jiqi', - autoViewAs:'tao', - addinfo:'桃', - global:['g_yuchan_swap','g_yuchan_equip'], - savable:true, - ai:{ - value:6, - useful:[8,6.5] - } - }, - yuchankan:{ - fullskin:true, - type:'jiqi', - autoViewAs:'shenmiguo', - global:['g_yuchan_swap','g_yuchan_equip'], - addinfo:'果', - ai:{ - order:1, - useful:4, - value:6, - result:{ - player:function(){ - var cardname=_status.event.cardname; - if(cardname=='tiesuo') return 0; - if(cardname=='jiu') return 0; - if(cardname=='tianxianjiu') return 0; - if(cardname=='toulianghuanzhu') return 0; - if(cardname=='shijieshu') return 0; - if(cardname=='xietianzi') return 0; - if(cardname=='huogong') return 0; - if(cardname=='shandianjian') return 0; - return 1; - } - }, - } - }, - yuchanli:{ - fullskin:true, - type:'jiqi', - autoViewAs:'tianxianjiu', - global:['g_yuchan_swap','g_yuchan_equip'], - addinfo:'仙', - savable:function(card,player,dying){ - return dying==player; - }, - ai:{ - value:6, - useful:1 - } - }, - yuchangen:{ - fullskin:true, - type:'jiqi', - addinfo:'蛋', - autoViewAs:'fengyinzhidan', - global:['g_yuchan_swap','g_yuchan_equip'], - ai:{ - value:6, - useful:1 - } - }, - yuchandui:{ - fullskin:true, - type:'jiqi', - addinfo:'雪', - autoViewAs:'xuejibingbao', - global:['g_yuchan_swap','g_yuchan_equip'], - ai:{ - value:6, - useful:4 - } - }, - mujiaren:{ - fullskin:true, - enable:true, - type:'jiguan', - usable:1, - forceUsable:true, - wuxieable:true, - selectTarget:-1, - filterTarget:function(card,player,target){ - return target==player; - }, - content:function(){ - 'step 0' - var cards=target.getCards('h',function(card){ - return get.type(card)!='basic'; - }); - if(cards.length){ - target.lose(cards)._triggered=null; - } - event.num=1+cards.length; - 'step 1' - var cards=[]; - var list=get.typeCard('jiguan'); - for(var i=0;i=0) return 0; - return 8-get.useful(card); - }); - } - else{ - target.damage('fire'); - event.parent.preResult=true; - event.finish(); - } - "step 1" - if(result.bool==false){ - target.damage('fire'); - event.parent.preResult=true; - } - }, - contentAfter:function(){ - if(!event.preResult) player.draw(); - }, - ai:{ - wuxie:function(target,card,player,viewer){ - if(get.attitude(viewer,target)>0){ - if(target.countCards('h')>0||target.hp>1) return 0; - } - }, - basic:{ - order:9, - useful:1 - }, - result:{ - target:function(player,target){ - if(player.hasUnknown(2)) return 0; - var nh=target.countCards('h'); - if(get.mode()=='identity'){ - if(target.isZhu&&nh<=1&&target.hp<=1) return -100; - } - if(nh==0) return -1; - if(nh==1) return -0.7 - return -0.5; - }, - }, - tag:{ - discard:1, - loseCard:1, - damage:1, - natureDamage:1, - fireDamage:1, - multitarget:1, - multineg:1, - } - } - }, - donghuangzhong:{ - fullskin:true, - type:'equip', - subtype:'equip5', - nomod:true, - nopower:true, - unique:true, - skills:['donghuangzhong'], - ai:{ - equipValue:7 - } - }, - xuanyuanjian:{ - fullskin:true, - type:'equip', - subtype:'equip1', - nomod:true, - nopower:true, - unique:true, - skills:['xuanyuanjian','xuanyuanjian2','xuanyuanjian3'], - enable:function(card,player){ - return player.hasSkill('xuanyuan')||player.hp>2; - }, - distance:{attackFrom:-2}, - onEquip:function(){ - if(!player.hasSkill('xuanyuan')&&player.hp<=2){ - player.discard(card); - } - else{ - player.changeHujia(); - } - }, - ai:{ - equipValue:9 - } - }, - pangufu:{ - fullskin:true, - type:'equip', - subtype:'equip1', - skills:['pangufu'], - nomod:true, - nopower:true, - unique:true, - distance:{attackFrom:-3}, - ai:{ - equipValue:8 - } - }, - lianyaohu:{ - fullskin:true, - type:'equip', - subtype:'equip5', - equipDelay:false, - loseDelay:false, - nomod:true, - nopower:true, - unique:true, - onEquip:function(){ - player.markSkill('lianyaohu_skill'); - }, - onLose:function(){ - player.unmarkSkill('lianyaohu_skill'); - }, - clearLose:true, - ai:{ - equipValue:6 - }, - skills:['lianhua','shouna','lianyaohu_skill'] - }, - haotianta:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['haotianta'], - nomod:true, - nopower:true, - unique:true, - ai:{ - equipValue:7 - } - }, - fuxiqin:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['kongxin'], - nomod:true, - nopower:true, - unique:true, - ai:{ - equipValue:6 - } - }, - shennongding:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['shennongding'], - nomod:true, - nopower:true, - unique:true, - ai:{ - equipValue:6 - } - }, - kongdongyin:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['kongdongyin'], - nomod:true, - nopower:true, - unique:true, - ai:{ - equipValue:function(card,player){ - if(player.hp==2) return 7; - if(player.hp==1) return 10; - return 5; - }, - basic:{ - equipValue:7 - } - } - }, - kunlunjingc:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['kunlunjingc'], - nomod:true, - nopower:true, - unique:true, - ai:{ - equipValue:6 - } - }, - nvwashi:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['nvwashi'], - nomod:true, - nopower:true, - unique:true, - ai:{ - equipValue:5 - } - }, - guisheqi:{ - fullskin:true, - type:'trick', - enable:true, - filterTarget:true, - content:function(){ - target.changeHujia(); - }, - ai:{ - basic:{ - order:5, - useful:3, - value:[6,2,1] - }, - result:{ - target:function(player,target){ - return 2/Math.max(1,Math.sqrt(target.hp)); - }, - }, - } - }, - jiguanfeng:{ - fullskin:true, - type:'jiguan', - enable:true, - wuxieable:true, - filterTarget:function(card,player,target){ - return target!=player; - }, - content:function(){ - "step 0" - var next=target.chooseToRespond({name:'shan'}); - next.autochoose=lib.filter.autoRespondShan; - "step 1" - if(result.bool==false){ - if(!target.hasSkill('fengyin')){ - target.addTempSkill('fengyin',{player:'phaseBegin'}); - } - target.damage(); - } - else{ - event.finish(); - } - }, - ai:{ - basic:{ - order:9, - useful:3, - value:6.5, - }, - result:{ - target:-2, - }, - tag:{ - respond:1, - respondShan:1, - // damage:1, - } - } - }, - jiguanyuan:{ - fullskin:true, - type:'jiguan', - wuxieable:true, - enable:function(card,player){ - var hs=player.getCards('he'); - return hs.length>1||(hs.length==1&&hs[0]!=card); - }, - filterTarget:function(card,player,target){ - return target!=player&&!target.hasSkill('jiguanyuan'); - }, - content:function(){ - 'step 0' - if(player.countCards('he')){ - player.chooseCard(true,'he').set('prompt2','你将'+ - get.translation(cards)+'和选择牌置于'+get.translation(target)+ - '的武将牌上,然后摸一张牌;'+get.translation(target)+ - '于下一结束阶段获得武将牌上的牌'); - } - else{ - event.finish(); - } - 'step 1' - player.$throw(result.cards); - player.lose(result.cards,ui.special); - ui.special.appendChild(cards[0]); - event.togive=[cards[0],result.cards[0]]; - game.delay(); - 'step 2' - // target.gain(event.togive).delay=false; - target.$gain2(event.togive); - target.storage.jiguanyuan=event.togive; - target.addSkill('jiguanyuan'); - game.log(target,'从',player,'获得了',event.togive); - player.draw(); - }, - ai:{ - basic:{ - order:2, - useful:2, - value:7 - }, - result:{ - target:function(player,target){ - var players=game.filterPlayer(function(current){ - return (current!=player&&!current.isTurnedOver()&& - get.attitude(player,current)>=3&&get.attitude(current,player)>=3) - }); - players.sort(lib.sort.seat); - if(target==players[0]) return 2; - return 0.5; - }, - }, - } - }, - shenmiguo_old:{ - fullskin:true, - type:'trick', - enable:true, - selectTarget:-1, - filterTarget:function(card,player,target){ - return target==player; - }, - modTarget:true, - content:function(){ - var list=[]; - for(var i in lib.card){ - if(lib.card[i].derivation){ - list.push(i); - } - } - if(get.mode()=='stone'){ - list.remove('hslingjian_jinjilengdong'); - } - if(list.length){ - target.gain(game.createCard(list.randomGet()),'draw'); - } - }, - ai:{ - basic:{ - order:7.3, - useful:2, - value:6 - }, - result:{ - target:2, - }, - } - }, - shenmiguo:{ - fullskin:true, - type:'basic', - global:'g_shenmiguo', - content:function(){ - if(Array.isArray(player.storage.shenmiguo)){ - player.useCard(player.storage.shenmiguo[0],player.storage.shenmiguo[1]); - } - }, - ai:{ - order:1, - useful:6, - value:6, - result:{ - player:function(){ - var cardname=_status.event.cardname; - if(get.tag({name:cardname},'norepeat')) return 0; - return 1; - } - }, - } - }, - qinglianxindeng:{ - fullskin:true, - type:'equip', - subtype:'equip2', - skills:['qinglianxindeng'], - ai:{ - basic:{ - equipValue:8 - } - }, - }, - lingjiandai:{ - fullskin:true, - enable:true, - type:'jiguan', - wuxieable:true, - filterTarget:function(card,player,target){ - return target==player; - }, - selectTarget:-1, - modTarget:true, - content:function(){ - var list=get.typeCard('hslingjian'); - if(list.length){ - list=list.randomGets(3); - for(var i=0;i0; - }, - content:function(){ - target.discard(target.getCards('he').randomGet()); - }, - ai:{ - order:9, - result:{ - target:-1, - }, - useful:[2,0.5], - value:[2,0.5], - } - }, - hslingjian_zhongxinghujia:{ - type:'hslingjian', - fullimage:true, - vanish:true, - enable:true, - derivation:true, - derivationpack:'swd', - filterTarget:function(card,player,target){ - return !target.isMin(); - }, - content:function(){ - 'step 0' - var list=[]; - for(var i=0;i6) return num; - } - } - if(hs.length>4) return num+0.5; - } - else{ - if(hs.length){ - if(hs.length<=3) return num; - return num+0.5; - } - } - return num+1; - } - } - }, - useful:[2,0.5], - value:[2,0.5], - } - }, - hslingjian_xingtigaizao:{ - type:'hslingjian', - fullimage:true, - vanish:true, - enable:true, - derivation:true, - derivationpack:'swd', - filterTarget:function(card,player,target){ - return target==player; - }, - selectTarget:-1, - content:function(){ - target.draw(); - target.addSkill('hslingjian_xingtigaizao'); - if(typeof target.storage.hslingjian_xingtigaizao=='number'){ - target.storage.hslingjian_xingtigaizao++; - } - else{ - target.storage.hslingjian_xingtigaizao=1; - } - }, - ai:{ - order:9, - result:{ - target:function(player,target){ - if(!player.needsToDiscard()) return 1; - return 0; - } - }, - useful:[2,0.5], - value:[2,0.5], - } - }, - hslingjian_shijianhuisu:{ - type:'hslingjian', - fullimage:true, - vanish:true, - enable:true, - derivation:true, - derivationpack:'swd', - filterTarget:function(card,player,target){ - return target!=player&&target.countCards('e')>0; - }, - content:function(){ - var es=target.getCards('e'); - target.gain(es); - target.$gain2(es); - }, - ai:{ - order:5, - result:{ - target:function(player,target){ - if(target.hasSkillTag('noe')||target.hasSkillTag('reverseEquip')) return target.countCards('e')*2; - if(target.getEquip('baiyin')&&target.isDamaged()) return 2; - if(target.getEquip('xuanyuanjian')||target.getEquip('qiankundai')) return 1; - if(target.hasSkill('jiguanyaoshu_skill')) return 0.5; - var num=0; - var es=target.getCards('e'); - for(var i=0;i4) return -1.2*num; - else if(target.hp==4) return -1*num; - else if(target.hp==3) return -0.9*num; - else if(target.hp==2) return -0.5*num; - else{ - if(target.maxHp>2){ - if(target.hujia) return 0.5*num; - return num; - } - return 0; - } - }, - }, - useful:[2,0.5], - value:[2,0.5], - } - }, - hslingjian_shengxiuhaojiao:{ - type:'hslingjian', - fullimage:true, - vanish:true, - enable:true, - derivation:true, - derivationpack:'swd', - filterTarget:function(card,player,target){ - return !target.hasSkill('hslingjian_chaofeng'); - }, - content:function(){ - target.addTempSkill('hslingjian_chaofeng',{player:'phaseBegin'}); - }, - ai:{ - order:2, - result:{ - target:function(player,target){ - if(get.distance(player,target,'absolute')<=1) return 0; - if(target.countCards('h')<=target.hp) return -0.1; - return -1; - } - }, - useful:[2,0.5], - value:[2,0.5], - } - }, - hslingjian_yinmilichang:{ - type:'hslingjian', - fullimage:true, - vanish:true, - enable:true, - derivation:true, - derivationpack:'swd', - filterTarget:function(card,player,target){ - return player!=target&&!target.hasSkill('qianxing'); - }, - content:function(){ - target.tempHide(); - }, - ai:{ - order:2, - result:{ - target:function(player,target){ - if(get.distance(player,target,'absolute')<=1) return 0; - if(target.hp==1) return 2; - if(target.hp==2&&target.countCards('h')<=2) return 1.2; - return 1; - } - }, - useful:[2,0.5], - value:[2,0.5], - } - }, - xingjunyan:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['xingjunyan'], - ai:{ - basic:{ - equipValue:4 - }, - }, - }, - qinglonglingzhu:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['qinglonglingzhu'], - ai:{ - basic:{ - equipValue:5 - }, - }, - }, - baihupifeng:{ - fullskin:true, - type:"equip", - subtype:"equip2", - skills:['baihupifeng'], - ai:{ - equipValue:function(card,player){ - if(player.hp<=2) return 8; - return 6; - }, - basic:{ - equipValue:7 - }, - }, - }, - fengxueren:{ - fullskin:true, - type:"equip", - subtype:"equip1", - distance:{attackFrom:-1}, - skills:['fengxueren'], - ai:{ - basic:{ - equipValue:5 - }, - }, - }, - chilongya:{ - fullskin:true, - type:"equip", - subtype:"equip1", - distance:{attackFrom:-1}, - skills:['chilongya'], - ai:{ - basic:{ - equipValue:4 - }, - }, - }, - daihuofenglun:{ - type:'equip', - subtype:'equip4', - fullskin:true, - cardnature:'fire', - distance:{globalFrom:-2,globalTo:-1}, - ai:{ - basic:{ - equipValue:4 - }, - }, - }, - xiayuncailing:{ - type:'equip', - subtype:'equip3', - fullskin:true, - distance:{globalFrom:1,globalTo:2}, - }, - shentoumianju:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['shentou'], - ai:{ - basic:{ - equipValue:7, - } - } - }, - xianluhui:{ - fullskin:true, - type:'trick', - enable:true, - selectTarget:-1, - reverseOrder:true, - filterTarget:function(card,player,target){ - return target.isDamaged(); - }, - content:function(){ - target.changeHujia(); - }, - ai:{ - tag:{ - multitarget:1, - }, - basic:{ - order:7, - useful:3, - value:3, - }, - result:{ - target:function(player,target){ - if(target.hp<=1) return 1.5; - if(target.hp==2) return 1.2; - return 1; - }, - }, - } - }, - xiangyuye:{ - type:'basic', - enable:true, - fullskin:true, - filterTarget:function(card,player,target){ - return get.distance(player,target,'attack')>1; - }, - content:function(){ - "step 0" - if(!target.countCards('h',{color:'black'})){ - target.loseHp(); - event.finish(); - } - else{ - target.chooseToDiscard({color:'black'},'弃置一张黑色手牌或受流失一点体力').ai=function(card){ - return 8-get.value(card); - }; - } - "step 1" - if(!result.bool){ - target.loseHp(); - } - }, - ai:{ - basic:{ - order:9, - value:3, - useful:1, - }, - result:{ - target:-2 - }, - tag:{ - discard:1, - loseHp:1 - } - } - }, - caoyao:{ - fullskin:true, - type:'basic', - range:{global:1}, - enable:true, - filterTarget:function(card,player,target){ - return target.hp0}, - notarget:true, - mode:['identity','guozhan'], - fullskin:true, - content:function(){ - "step 0" - var list=[]; - for(var i=0;i3) return 7; - } - return -10; - }, - result:{ - player:function(player){ - for(var i=0;i3) return 2; - } - return -10; - } - }, - } - }, - tianxianjiu:{ - fullskin:true, - type:'basic', - toself:true, - enable:function(event,player){ - return !player.hasSkill('tianxianjiu'); - }, - savable:function(card,player,dying){ - return dying==player; - }, - usable:1, - selectTarget:-1, - logv:false, - modTarget:true, - filterTarget:function(card,player,target){ - return target==player; - }, - content:function(){ - "step 0" - if(target.isDying()) target.recover(); - else{ - target.addTempSkill('tianxianjiu',['phaseAfter','shaAfter']); - if(cards&&cards.length){ - card=cards[0]; - } - if(target==targets[0]&&card.clone&&(card.clone.parentNode==player.parentNode||card.clone.parentNode==ui.arena)){ - card.clone.moveDelete(target); - game.addVideo('gain2',target,get.cardsInfo([card])); - } - if(!target.node.jiu&&lib.config.jiu_effect){ - target.node.jiu=ui.create.div('.playerjiu',target.node.avatar); - target.node.jiu2=ui.create.div('.playerjiu',target.node.avatar2); - } - } - }, - ai:{ - basic:{ - useful:function(card,i){ - if(_status.event.player.hp>1){ - if(i==0) return 5; - return 1; - } - if(i==0) return 7.3; - return 3; - }, - value:function(card,player,i){ - if(player.hp>1){ - if(i==0) return 5; - return 1; - } - if(i==0) return 7.3; - return 3; - }, - }, - order:function(){ - return get.order({name:'sha'})+0.2; - }, - result:{ - target:function(player,target){ - if(target&&target.isDying()) return 2; - if(lib.config.mode=='stone'&&!player.isMin()){ - if(player.getActCount()+1>=player.actcount) return false; - } - var shas=player.getCards('h','sha'); - if(shas.length>1&&player.getCardUsable('sha')>1){ - return 0; - } - var card; - if(shas.length){ - for(var i=0;i0); - })){ - return 1; - } - } - return 0; - }, - }, - } - }, - huanpodan:{ - fullskin:true, - type:'basic', - enable:true, - logv:false, - filterTarget:function(card,player,target){ - return !target.hasSkill('huanpodan_skill'); - }, - content:function(){ - target.addSkill('huanpodan_skill'); - if(cards&&cards.length){ - card=cards[0]; - } - if(target==targets[0]&&card.clone&&(card.clone.parentNode==player.parentNode||card.clone.parentNode==ui.arena)){ - card.clone.moveDelete(target); - game.addVideo('gain2',target,get.cardsInfo([card])); - } - }, - ai:{ - basic:{ - value:8, - useful:4, - }, - order:2, - result:{ - target:function(player,target){ - return 1/Math.sqrt(1+target.hp); - }, - }, - } - }, - langeguaiyi:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['longfan'], - ai:{ - basic:{ - equipValue:7, - } - } - }, - guiyoujie:{ - fullskin:true, - type:'delay', - filterTarget:function(card,player,target){ - return (lib.filter.judge(card,player,target)&&player!=target); - }, - judge:function(card){ - if(get.color(card)=='black') return -3; - return 0; - }, - effect:function(){ - if(result.bool==false){ - player.loseHp(); - player.randomDiscard(); - } - }, - ai:{ - basic:{ - order:1, - useful:1, - value:6, - }, - result:{ - target:function(player,target){ - if(target.hasSkillTag('noturn')) return 0; - return -3; - } - }, - } - }, - yufulu:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['touzhi'], - ai:{ - basic:{ - equipValue:5 - } - } - }, - xixueguizhihuan:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['xixue'], - ai:{ - basic:{ - equipValue:5 - } - } - }, - zhufangshenshi:{ - fullskin:true, - type:'trick', - enable:true, - global:'g_zhufangshenshi', - filterTarget:function(card,player,target){ - return target!=player; - }, - content:function(){ - player.storage.zhufangshenshi=target; - player.addTempSkill('zhufangshenshi'); - }, - ai:{ - tag:{ - norepeat:1 - }, - value:4, - wuxie:function(){ - return 0; - }, - useful:[2,1], - basic:{ - order:7, - }, - result:{ - player:function(player,target){ - if(get.attitude(player,target)<0){ - if(get.distance(player,target)>1) return 1; - return 0.6; - } - return 0.3; - } - } - }, - }, - jingleishan:{ - fullskin:true, - type:'trick', - enable:true, - selectTarget:-1, - reverseOrder:true, - cardcolor:'black', - cardnature:'thunder', - filterTarget:function(card,player,target){ - return target!=player; - }, - content:function(){ - "step 0" - var next=target.chooseToRespond({name:'sha'}); - next.ai=function(card){ - if(get.damageEffect(target,player,target,'thunder')>=0) return 0; - if(player.hasSkillTag('notricksource')) return 0; - if(target.hasSkillTag('notrick')) return 0; - return 11-get.value(card); - }; - next.autochoose=lib.filter.autoRespondSha; - "step 1" - if(result.bool==false){ - target.damage('thunder'); - } - }, - ai:{ - wuxie:function(target,card,player,viewer){ - if(get.attitude(viewer,target)>0&&target.countCards('h','sha')){ - if(!target.countCards('h')||target.hp==1||Math.random()<0.7) return 0; - } - }, - basic:{ - order:9, - useful:[5,1], - value:5 - }, - result:{ - target:function(player,target){ - if(target.hasSkillTag('nothunder')) return 0; - if(target.hasUnknown(2)) return 0; - var nh=target.countCards('h'); - if(lib.config.mode=='identity'){ - if(target.isZhu&&nh<=2&&target.hp<=1) return -100; - } - if(nh==0) return -2; - if(nh==1) return -1.7 - return -1.5; - }, - }, - tag:{ - respond:1, - respondSha:1, - damage:1, - natureDamage:1, - thunderDamage:1, - multitarget:1, - multineg:1, - } - } - }, - chiyuxi:{ - fullskin:true, - type:'trick', - enable:true, - selectTarget:-1, - reverseOrder:true, - cardcolor:'red', - cardnature:'fire', - filterTarget:function(card,player,target){ - return target!=player; - }, - content:function(){ - "step 0" - var next=target.chooseToRespond({name:'shan'}); - next.ai=function(card){ - if(get.damageEffect(target,player,target,'fire')>=0) return 0; - if(player.hasSkillTag('notricksource')) return 0; - if(target.hasSkillTag('notrick')) return 0; - if(target.hasSkillTag('noShan')){ - return -1; - } - return 11-get.value(card); - }; - next.autochoose=lib.filter.autoRespondShan; - "step 1" - if(result.bool==false){ - target.damage('fire'); - } - }, - ai:{ - wuxie:function(target,card,player,viewer){ - if(get.attitude(viewer,target)>0&&target.countCards('h','shan')){ - if(!target.countCards('h')||target.hp==1||Math.random()<0.7) return 0; - } - }, - basic:{ - order:9, - useful:1, - value:5 - }, - result:{ - target:function(player,target){ - if(target.hasSkillTag('nofire')) return 0; - if(player.hasUnknown(2)) return 0; - var nh=target.countCards('h'); - if(lib.config.mode=='identity'){ - if(target.isZhu&&nh<=2&&target.hp<=1) return -100; - } - if(nh==0) return -2; - if(nh==1) return -1.7 - return -1.5; - }, - }, - tag:{ - respond:1, - respondShan:1, - damage:1, - natureDamage:1, - fireDamage:1, - multitarget:1, - multineg:1, - } - } - }, - guangshatianyi:{ - fullskin:true, - type:'equip', - subtype:'equip2', - skills:['guangshatianyi'], - ai:{ - basic:{ - equipValue:6 - } - } - }, - guilingzhitao:{ - type:'equip', - fullskin:true, - subtype:'equip5', - skills:['nigong'], - ai:{ - equipValue:function(card,player){ - if(!player.storage.nigong) return 5; - return 5+player.storage.nigong; - }, - basic:{ - equipValue:5 - } - }, - equipDelay:false, - loseDelay:false, - clearLose:true, - onLose:function(){ - player.storage.nigong=0; - player.unmarkSkill('nigong'); - }, - onEquip:function(){ - player.storage.nigong=0; - player.markSkill('nigong'); - } - }, - qipoguyu:{ - type:'equip', - subtype:'equip5', - skills:['xujin'], - equipDelay:false, - loseDelay:false, - clearLose:true, - onLose:function(){ - player.storage.xujin=0; - }, - onEquip:function(){ - player.storage.xujin=0; - } - }, - sadengjinhuan:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['sadengjinhuan'], - ai:{ - basic:{ - equipValue:5.5 - } - }, - }, - sifeizhenmian:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['yiluan'], - ai:{ - basic:{ - equipValue:6 - } - }, - }, - shuchui:{ - fullskin:true, - type:'equip', - subtype:'equip5', - skills:['shuchui'], - ai:{ - basic:{ - equipValue:5.5 - } - }, - }, - ximohu:{ - type:'equip', - subtype:'equip5', - skills:['ximohu'], - ai:{ - basic:{ - equipValue:6 - } - }, - }, - guiyanfadao:{ - fullskin:true, - type:'equip', - subtype:'equip1', - distance:{attackFrom:-1}, - ai:{ - basic:{ - equipValue:3 - } - }, - skills:['guiyanfadao'] - }, - qiankundai:{ - fullskin:true, - type:'equip', - subtype:'equip5', - onLose:function(){ - player.draw(); - }, - skills:['qiankundai'], - ai:{ - order:9.5, - equipValue:function(card,player){ - if(player.countCards('h','qiankundai')) return 6; - return 1; - }, - basic:{ - equipValue:5, - } - } - }, - }, - skill:{ - qiankundai:{ - mod:{ - maxHandcard:function(player,num){ - return num+1; - } - }, - }, - g_hufu_sha:{ - enable:['chooseToRespond','chooseToUse'], - filter:function(event,player){ - return player.countCards('h','hufu')>0; - }, - filterCard:{name:'hufu'}, - viewAs:{name:'sha'}, - prompt:'将一张玉符当杀使用或打出', - check:function(card){return 1}, - ai:{ - order:1, - useful:7.5, - value:7.5 - } - }, - g_hufu_shan:{ - enable:['chooseToRespond','chooseToUse'], - filter:function(event,player){ - return player.countCards('h','hufu')>0; - }, - filterCard:{name:'hufu'}, - viewAs:{name:'shan'}, - prompt:'将一张玉符当闪使用或打出', - check:function(){return 1}, - ai:{ - order:1, - useful:7.5, - value:7.5 - } - }, - g_hufu_jiu:{ - enable:['chooseToRespond','chooseToUse'], - filter:function(event,player){ - return player.countCards('h','hufu')>0; - }, - filterCard:{name:'hufu'}, - viewAs:{name:'jiu'}, - prompt:'将一张玉符当酒使用', - check:function(){return 1}, - }, - zhiluxiaohu:{ - trigger:{source:'damageAfter'}, - forced:true, - popup:false, - filter:function(event,player){ - return event.card&&event.card.name=='sha'&&event.getParent(3).name=='zhiluxiaohu'; - }, - content:function(){ - player.draw(); - } - }, - zhufangshenshi:{ - mod:{ - targetInRange:function(card,player,target,now){ - if(player.storage.zhufangshenshi==target) return true; - }, - }, - mark:true, - intro:{ - content:'player' - }, - onremove:true, - }, - g_zhufangshenshi:{ - trigger:{player:'useCardAfter'}, - forced:true, - popup:false, - filter:function(event,player){ - return event.card.name=='zhufangshenshi'; - }, - content:function(){ - player.draw(); - } - }, - huanpodan_skill:{ - mark:true, - intro:{ - content:'防止一次死亡,改为弃置所有牌,将体力值变为1并摸一张牌' - }, - trigger:{player:'dieBefore'}, - forced:true, - content:function(){ - 'step 0' - trigger.cancel(); - player.discard(player.getCards('he')); - player.removeSkill('huanpodan_skill'); - 'step 1' - player.changeHp(1-player.hp); - 'step 2' - player.draw(); - } - }, - dujian2:{}, - g_yuchan_swap:{ - trigger:{player:'useCardAfter'}, - silent:true, - priority:-1, - content:function(){ - var hs=player.getCards('h'); - var list=['yuchanqian','yuchankun','yuchanzhen','yuchanxun','yuchangen','yuchanli','yuchankan','yuchandui']; - for(var i=0;i0; - } - } - return false; - }, - filterCard:{type:'basic'}, - selectCard:[1,Infinity], - prompt:'弃置任意张基本牌并摸等量的牌', - check:function(card){ - return 6-get.value(card) - }, - content:function(){ - player.draw(cards.length); - }, - ai:{ - order:1, - result:{ - player:1 - }, - }, - }, - yuchanqian_equip1:{}, - yuchanqian_equip2:{}, - yuchanqian_equip3:{}, - yuchanqian_equip4:{}, - yuchanqian_equip5:{}, - yuchankun_equip1:{}, - yuchankun_equip2:{}, - yuchankun_equip3:{}, - yuchankun_equip4:{}, - yuchankun_equip5:{}, - yuchanzhen_equip1:{}, - yuchanzhen_equip2:{}, - yuchanzhen_equip3:{}, - yuchanzhen_equip4:{}, - yuchanzhen_equip5:{}, - yuchanxun_equip1:{}, - yuchanxun_equip2:{}, - yuchanxun_equip3:{}, - yuchanxun_equip4:{}, - yuchanxun_equip5:{}, - yuchankan_equip1:{}, - yuchankan_equip2:{}, - yuchankan_equip3:{}, - yuchankan_equip4:{}, - yuchankan_equip5:{}, - yuchanli_equip1:{}, - yuchanli_equip2:{}, - yuchanli_equip3:{}, - yuchanli_equip4:{}, - yuchanli_equip5:{}, - yuchangen_equip1:{}, - yuchangen_equip2:{}, - yuchangen_equip3:{}, - yuchangen_equip4:{}, - yuchangen_equip5:{}, - yuchandui_equip1:{}, - yuchandui_equip2:{}, - yuchandui_equip3:{}, - yuchandui_equip4:{}, - yuchandui_equip5:{}, - lianyaohu_skill:{ - mark:true, - intro:{ - content:function(storage,player){ - var card=player.getEquip('lianyaohu'); - if(card&&card.storage.shouna&&card.storage.shouna.length){ - return '共有'+get.cnNumber(card.storage.shouna.length)+'张牌'; - } - return '共有〇张牌'; - }, - mark:function(dialog,storage,player){ - var card=player.getEquip('lianyaohu'); - if(card&&card.storage.shouna&&card.storage.shouna.length){ - dialog.addAuto(card.storage.shouna); - } - else{ - return '共有〇张牌'; - } - }, - markcount:function(storage,player){ - var card=player.getEquip('lianyaohu'); - if(card&&card.storage.shouna) return card.storage.shouna.length; - return 0; - } - } - }, - g_shencaojie:{ - trigger:{source:'damageBegin',player:'damageBegin'}, - direct:true, - filter:function(event,player){ - if(get.type(event.card)!='trick') return false; - if(player.hasCard('shencaojie')) return true; - return false; - }, - content:function(){ - player.chooseToUse(get.prompt('shencaojie',trigger.player).replace(/发动/,'使用'),function(card,player){ - if(card.name!='shencaojie') return false; - return lib.filter.cardEnabled(card,player,'forceEnable'); - },trigger.player,-1).targetRequired=true; - } - }, - g_shenmiguo:{ - trigger:{player:'useCardAfter'}, - direct:true, - filter:function(event,player){ - if(event.parent.name=='g_shenmiguo') return false; - if(_status.currentPhase!=player) return false; - if(event.parent.parent.name!='phaseUse') return false; - if(!event.targets||!event.card) return false; - if(event.card.name=='shenmiguo') return false; - if(event.card.name=='yuchankan') return false; - if(player.hasSkill('shenmiguo2')) return false; - if(get.info(event.card).complexTarget) return false; - if(!lib.filter.cardEnabled(event.card,player,event.parent)) return false; - var type=get.type(event.card); - if(type!='basic'&&type!='trick') return false; - var card=game.createCard(event.card.name,event.card.suit,event.card.number,event.card.nature); - var targets=event._targets||event.targets; - for(var i=0;i1; - }, - content:function(){ - var value=get.value(ui.cardPile.firstChild); - var num=Math.min(20,ui.cardPile.childElementCount); - var list=[],list2=[],list3=[]; - for(var i=1;ivalue){ - list.push(ui.cardPile.childNodes[i]); - if(val>value+1&&val>=7){ - list2.push(ui.cardPile.childNodes[i]); - } - if(val>value+1&&val>=8){ - list3.push(ui.cardPile.childNodes[i]); - } - } - } - var card; - if(list3.length){ - card=list3.randomGet(); - } - else if(list2.length){ - card=list2.randomGet(); - } - else if(list.length){ - card=list.randomGet(); - } - if(card){ - ui.cardPile.insertBefore(card,ui.cardPile.firstChild); - } - } - }, - shuchui:{ - enable:'phaseUse', - usable:1, - filterTarget:function(card,player,target){ - return player.canUse('sha',target); - }, - filter:function(event,player){ - return player.countCards('h','sha')>0&&lib.filter.cardUsable({name:'sha'},player); - }, - content:function(){ - 'step 0' - player.addSkill('shuchui2'); - player.storage.shuchui2=false; - event.num=0; - 'step 1' - var card=player.getCards('h','sha')[0]; - if(card){ - player.useCard(card,target); - } - else{ - if(player.storage.shuchui2){ - player.draw(); - } - player.removeSkill('shuchui2'); - event.finish(); - } - 'step 2' - if(event.num++<2&&target.isAlive()){ - event.goto(1); - } - else{ - if(player.storage.shuchui2){ - player.draw(); - } - player.removeSkill('shuchui2'); - } - }, - ai:{ - order:function(){ - return get.order({name:'sha'})+0.11; - }, - result:{ - target:function(player,target){ - return get.effect(target,{name:'sha'},player,target); - } - } - } - }, - shuchui2:{ - trigger:{source:'damageEnd'}, - forced:true, - popup:false, - onremove:true, - filter:function(event,player){ - return event.card&&event.card.name=='sha'&&!player.storage.shuchui2; - }, - content:function(){ - player.storage.shuchui2=true; - } - }, - xuejibingbao:{ - trigger:{player:'phaseDrawBegin'}, - forced:true, - mark:true, - temp:true, - intro:{ - content:'摸牌阶段摸牌数+1' - }, - nopop:true, - content:function(){ - trigger.num++; - player.storage.xuejibingbao--; - if(player.storage.xuejibingbao<=0){ - player.removeSkill('xuejibingbao'); - delete player.storage.xuejibingbao; - } - else{ - player.updateMarks(); - } - } - }, - gouhunluo:{ - mark:true, - intro:{ - content:function(storage,player){ - if(storage==1){ - '在'+get.translation(player.storage.gouhunluo2)+'的下个准备阶段失去一点体力并弃置所有手牌' - } - return '在'+storage+'轮后'+get.translation(player.storage.gouhunluo2)+'的准备阶段失去一点体力并弃置所有手牌' - } - }, - nopop:true, - temp:true, - trigger:{global:'phaseBegin'}, - forced:true, - popup:false, - filter:function(event,player){ - return player.storage.gouhunluo2==event.player; - }, - content:function(){ - 'step 0' - player.storage.gouhunluo--; - if(player.storage.gouhunluo<=0){ - player.logSkill('gouhunluo'); - player.loseHp(); - player.removeSkill('gouhunluo'); - delete player.storage.gouhunluo; - delete player.storage.gouhunluo2; - } - else{ - player.updateMarks(); - event.finish(); - } - 'step 1' - var es=player.getCards('h'); - if(es.length){ - player.discard(es); - } - }, - group:'gouhunluo2' - }, - gouhunluo2:{ - trigger:{global:'dieBegin'}, - forced:true, - popup:false, - filter:function(event,player){ - return player.storage.gouhunluo2==event.player; - }, - content:function(){ - player.removeSkill('gouhunluo'); - delete player.storage.gouhunluo; - delete player.storage.gouhunluo2; - } - }, - jiguanyuan:{ - mark:'card', - intro:{ - content:'cards' - }, - trigger:{player:'phaseEnd'}, - forced:true, - temp:true, - popup:false, - content:function(){ - player.gain(player.storage.jiguanyuan,'gain2'); - player.removeSkill('jiguanyuan'); - delete player.storage.jiguanyuan; - } - }, - g_qinglongzhigui:{ - trigger:{player:'phaseBegin'}, - forced:true, - filter:function(event,player){ - return player.countCards('h','qinglongzhigui')>0; - }, - content:function(){ - 'step 0' - player.showCards(get.translation(player)+'发动了【青龙之圭】',player.getCards('h','qinglongzhigui')); - player.draw(2); - 'step 1' - player.chooseToDiscard('he',true); - } - }, - g_baishouzhihu:{ - trigger:{player:'discardEnd'}, - direct:true, - filter:function(event,player){ - return player.countCards('h','baishouzhihu')>0; - }, - content:function(){ - "step 0" - player.chooseTarget([1,1],get.prompt('baishouzhihu'),function(card,player,target){ - if(player==target) return false; - return target.countCards('he')>0; - }).ai=function(target){ - return -get.attitude(player,target); - }; - "step 1" - if(result.bool){ - player.showCards(get.translation(player)+'发动了【白兽之琥】',player.getCards('h','baishouzhihu')); - player.logSkill('_baishouzhihu',result.targets); - result.targets[0].randomDiscard(); - // player.discardPlayerCard(result.targets[0],'he',true); - } - else{ - event.finish(); - } - }, - }, - g_zhuquezhizhang:{ - trigger:{player:'damageEnd'}, - forced:true, - filter:function(event,player){ - return event.source&&event.source!=player&&event.source.isAlive()&&player.countCards('h','zhuquezhizhang')>0; - }, - logTarget:'source', - check:function(event,player){ - return get.damageEffect(event.source,player,player,'fire')>0; - }, - content:function(){ - 'step 0' - player.showCards(get.translation(player)+'发动了【朱雀之璋】',player.getCards('h','zhuquezhizhang')); - trigger.source.damage('fire'); - 'step 1' - game.delay(); - } - }, - g_xuanwuzhihuang:{ - trigger:{source:'damageEnd'}, - forced:true, - filter:function(event,player){ - return player.countCards('h','xuanwuzhihuang')>0&&event.num>0&&player.hp0; - }, - content:function(){ - player.showCards(get.translation(player)+'发动了【黄麟之琮】',player.getCards('h','huanglinzhicong')); - player.changeHujia(); - player.update(); - }, - }, - g_cangchizhibi:{ - trigger:{player:'phaseBegin'}, - direct:true, - filter:function(event,player){ - return player.countCards('h','cangchizhibi')>0; - }, - content:function(){ - 'step 0' - player.chooseTarget([1,3],get.prompt('cangchizhibi')).ai=function(target){ - var att=get.attitude(player,target); - if(target.isLinked()){ - return att; - } - return -att; - }; - 'step 1' - if(result.bool){ - player.showCards(get.translation(player)+'发动了【苍螭之璧】',player.getCards('h','cangchizhibi')); - player.logSkill('_cangchizhibi',result.targets); - for(var i=0;i0&&player.hujia==0 - }, - content:function(){ - 'step 0' - var next=player.chooseToDiscard('he',{color:'black'},get.prompt('huanglinzhicong_duanzao')); - next.ai=function(card){ - return 8-get.value(card); - }; - next.logSkill='huanglinzhicong_equip1' - 'step 1' - if(result.bool){ - player.changeHujia(); - } - } - }, - huanglinzhicong_equip2:{ - inherit:'huanglinzhicong_equip1' - }, - huanglinzhicong_equip3:{ - inherit:'huanglinzhicong_equip1' - }, - huanglinzhicong_equip4:{ - inherit:'huanglinzhicong_equip1' - }, - huanglinzhicong_equip5:{ - inherit:'huanglinzhicong_equip1' - }, - xuanwuzhihuang_equip1:{ - trigger:{player:'phaseEnd'}, - direct:true, - filter:function(event,player){ - return player.countCards('he',{color:'red'})>0&&player.hp0; - }, - content:function(){ - "step 0" - player.chooseCardTarget({ - position:'he', - filterTarget:function(card,player,target){ - return player!=target&&target.hp>=player.hp; - }, - filterCard:function(card,player){ - return get.color(card)=='red'&&lib.filter.cardDiscardable(card,player); - }, - ai1:function(card){ - return 9-get.value(card); - }, - ai2:function(target){ - return get.damageEffect(target,player,player,'fire'); - }, - prompt:get.prompt('zhuquezhizhang_duanzao') - }); - "step 1" - if(result.bool){ - event.target=result.targets[0]; - player.logSkill('zhuquezhizhang_equip1',event.target,'fire'); - player.discard(result.cards); - } - else{ - event.finish(); - } - "step 2" - if(event.target){ - event.target.damage('fire'); - } - }, - }, - zhuquezhizhang_equip2:{ - inherit:'zhuquezhizhang_equip1' - }, - zhuquezhizhang_equip3:{ - inherit:'zhuquezhizhang_equip1' - }, - zhuquezhizhang_equip4:{ - inherit:'zhuquezhizhang_equip1' - }, - zhuquezhizhang_equip5:{ - inherit:'zhuquezhizhang_equip1' - }, - baishouzhihu_equip1:{ - trigger:{player:'phaseEnd'}, - direct:true, - content:function(){ - "step 0" - player.chooseTarget([1,1],get.prompt('baishouzhihu_duanzao'),function(card,player,target){ - if(player==target) return false; - return target.countCards('he')>0; - }).ai=function(target){ - return -get.attitude(player,target); - }; - "step 1" - if(result.bool){ - player.logSkill('baishouzhihu_equip1',result.targets); - result.targets[0].randomDiscard(); - // player.discardPlayerCard(result.targets[0],'he',true); - } - else{ - event.finish(); - } - }, - }, - baishouzhihu_equip2:{ - inherit:'baishouzhihu_equip1' - }, - baishouzhihu_equip3:{ - inherit:'baishouzhihu_equip1' - }, - baishouzhihu_equip4:{ - inherit:'baishouzhihu_equip1' - }, - baishouzhihu_equip5:{ - inherit:'baishouzhihu_equip1' - }, - qinglongzhigui_equip1:{ - trigger:{player:'phaseEnd'}, - forced:true, - content:function(){ - player.draw(); - } - }, - qinglongzhigui_equip2:{ - inherit:'qinglongzhigui_equip1' - }, - qinglongzhigui_equip3:{ - inherit:'qinglongzhigui_equip1' - }, - qinglongzhigui_equip4:{ - inherit:'qinglongzhigui_equip1' - }, - qinglongzhigui_equip5:{ - inherit:'qinglongzhigui_equip1' - }, - kunlunjingc:{ - enable:'phaseUse', - usable:1, - filter:function(event,player){ - return player.countCards('h')>0; - }, - delay:false, - content:function(){ - 'step 0' - var cards=get.cards(3); - event.cards=cards; - player.chooseCardButton('选择一张牌',cards,true); - 'step 1' - event.card=result.links[0]; - player.chooseCard('h',true,'用一张手牌替换'+get.translation(event.card)); - 'step 2' - if(result.bool){ - event.cards[event.cards.indexOf(event.card)]=result.cards[0]; - player.lose(result.cards,ui.special); - var cardx=ui.create.card(); - cardx.classList.add('infohidden'); - cardx.classList.add('infoflip'); - player.$throw(cardx,1000,'nobroadcast'); - } - else{ - event.finish(); - } - 'step 3' - player.gain(event.card); - player.$draw(); - for(var i=event.cards.length-1;i>=0;i--){ - event.cards[i].fix(); - ui.cardPile.insertBefore(event.cards[i],ui.cardPile.firstChild); - } - game.delay(); - }, - ai:{ - order:10, - result:{ - player:1 - } - } - }, - lianhua:{ - enable:'phaseUse', - filter:function(event,player){ - var hu=player.getEquip('lianyaohu'); - if(hu&&hu.storage.shouna&&hu.storage.shouna.length>1){ - return true; - } - return false; - }, - usable:1, - delay:false, - content:function(){ - "step 0" - event.hu=player.getEquip('lianyaohu'); - player.chooseCardButton('弃置两张壶中的牌,然后从牌堆中获得一张类别不同的牌',2,event.hu.storage.shouna).ai=function(){ - return 1; - } - "step 1" - if(result.bool){ - var type=[]; - player.$throw(result.links); - game.log(player,'弃置了',result.links); - for(var i=0;i0; - }, - usable:1, - filterCard:true, - check:function(card){ - return 6-get.value(card); - }, - filterTarget:function(card,player,target){ - return target!=player&&target.countCards('h')>0; - }, - content:function(){ - 'step 0' - var card=target.getCards('h').randomGet(); - var hu=player.getEquip('lianyaohu'); - if(card&&hu){ - if(!hu.storage.shouna){ - hu.storage.shouna=[]; - } - target.$give(card,player); - target.lose(card,ui.special); - event.card=card; - event.hu=hu; - } - 'step 1' - if(!event.card.destroyed){ - event.hu.storage.shouna.push(event.card); - player.updateMarks(); - } - }, - ai:{ - order:5, - result:{ - target:function(player,target){ - return -1/Math.sqrt(1+target.countCards('h')); - } - } - } - }, - shouna_old:{ - trigger:{global:'discardAfter'}, - filter:function(event,player){ - if(player.hasSkill('shouna2')) return false; - if(_status.currentPhase==event.player) return false; - if(event.player==player) return false; - for(var i=0;i0; - }, - content:function(){ - 'step 0' - player.chooseCardTarget({ - filterTarget:true, - filterCard:function(card,player,event){ - if(get.color(card)!='red') return false; - return lib.filter.cardDiscardable(card,player,event); - }, - ai1:function(card){ - return 8-get.useful(card); - }, - ai2:function(target){ - return -get.attitude(player,target); - }, - prompt:get.prompt('donghuangzhong') - }); - 'step 1' - if(result.bool){ - player.logSkill('donghuangzhong',result.targets); - player.discard(result.cards); - event.target=result.targets[0]; - } - else{ - event.finish(); - } - 'step 2' - var target=event.target; - var list=[]; - for(var i=0;i0; - }, - content:function(){ - trigger.player.chooseToDiscard(true,'he'); - } - }, - shouhua:{ - mode:['identity','infinity'], - enable:'phaseUse', - filter:function(event,player){ - return player==game.me; - }, - usable:1, - filterTarget:function(card,player,target){ - return target!=game.zhu&&target!=game.me&&target.hp0){ - return 1+trigger.judge(button.link); - } - if(get.attitude(player,trigger.player)<0){ - return 1-trigger.judge(button.link); - } - return 0; - }; - "step 1" - if(!result.bool){ - event.finish(); - return; - } - player.logSkill('haotianta',trigger.player); - var card=result.links[0]; - event.cards.remove(card); - var judgestr=get.translation(trigger.player)+'的'+trigger.judgestr+'判定'; - event.videoId=lib.status.videoId++; - event.dialog=ui.create.dialog(judgestr); - event.dialog.classList.add('center'); - event.dialog.videoId=event.videoId; - - game.addVideo('judge1',player,[get.cardInfo(card),judgestr,event.videoId]); - for(var i=0;i0){ - trigger.result.bool=true; - trigger.player.popup('洗具'); - } - if(trigger.result.judge<0){ - trigger.result.bool=false; - trigger.player.popup('杯具'); - } - game.log(trigger.player,'的判定结果为',card); - trigger.direct=true; - trigger.position.appendChild(card); - game.delay(2); - } - else{ - event.finish(); - } - "step 2" - ui.arena.classList.remove('thrownhighlight'); - event.dialog.close(); - game.addVideo('judge2',null,event.videoId); - ui.clear(); - var card=trigger.result.card; - trigger.position.appendChild(card); - trigger.result.node.delete(); - game.delay(); - }, - ai:{ - tag:{ - rejudge:1 - } - } - }, - shennongding:{ - enable:'phaseUse', - usable:1, - filterCard:true, - selectCard:2, - check:function(card){ - if(get.tag(card,'recover')>=1) return 0; - return 7-get.value(card); - }, - filter:function(event,player){ - return player.hp=2; - }, - content:function(){ - player.recover(); - }, - ai:{ - result:{ - player:function(player){ - return get.recoverEffect(player); - } - }, - order:2.5 - } - }, - kongdongyin:{ - trigger:{player:'dieBefore'}, - forced:true, - filter:function(event,player){ - return player.maxHp>0; - }, - content:function(){ - trigger.cancel(); - player.hp=1; - player.draw(); - player.discard(player.getCards('e',{subtype:'equip5'})); - game.delay(); - } - }, - - nvwashi:{ - trigger:{global:'dying'}, - priority:6, - filter:function(event,player){ - return event.player.hp<=0&&player.hp>1; - }, - check:function(event,player){ - return get.attitude(player,event.player)>=3&&!event.player.hasSkillTag('nosave'); - }, - logTarget:'player', - content:function(){ - "step 0" - trigger.player.recover(); - "step 1" - player.loseHp(); - }, - ai:{ - threaten:1.2, - expose:0.2 - } - }, - kongxin:{ - enable:'phaseUse', - usable:1, - filterTarget:function(card,player,target){ - return target!=player&&target.countCards('h'); - }, - filter:function(event,player){ - return player.countCards('h')?true:false; - }, - content:function(){ - "step 0" - player.chooseToCompare(target); - "step 1" - if(result.bool){ - event.bool=true; - player.chooseTarget('选择一个目标视为'+get.translation(target)+'对其使用一张杀',function(card,player,target2){ - return player!=target2&&target.canUse('sha',target2); - }).ai=function(target2){ - return get.effect(target2,{name:'sha'},target,player); - } - } - else{ - target.discardPlayerCard(player); - } - "step 2" - if(event.bool&&result.bool){ - target.useCard({name:'sha'},result.targets); - } - }, - ai:{ - order:7, - result:{ - target:function(player,target){ - if(player.countCards('h')<=1) return 0; - if(get.attitude(player,target)>=0) return 0; - if(game.hasPlayer(function(current){ - return (player!=current&&target.canUse('sha',current)&& - get.effect(current,{name:'sha'},target,player)>0) - })){ - return -1; - } - return 0; - } - } - } - }, - kongxin2:{ - trigger:{player:'dying'}, - priority:10, - forced:true, - popup:false, - filter:function(event,player){ - return player==game.me; - }, - content:function(){ - player.removeSkill('kongxin2'); - game.swapPlayer(player); - player.storage.kongxin.lockOut=false; - player.storage.kongxin.out(); - if(player==game.me) game.swapPlayer(player.storage.kongxin); - if(lib.config.mode=='identity') player.storage.kongxin.setIdentity(); - delete player.storage.kongxin; - }, - }, - qinglianxindeng:{ - trigger:{player:'damageBefore'}, - forced:true, - priority:15, - filter:function(event,player){ - if(event.source&&event.source.hasSkillTag('unequip',false,{ - name:event.card?event.card.name:null, - target:player, - card:event.card - })) return false; - return get.type(event.card,'trick')=='trick'; - }, - content:function(){ - trigger.cancel(); - }, - ai:{ - notrick:true, - effect:{ - target:function(card,player,target,current){ - if(player.hasSkillTag('unequip',false,{ - name:card?card.name:null, - target:player, - card:card - })) return; - if(get.type(card)=='trick'&&get.tag(card,'damage')){ - return 'zeroplayertarget'; - } - }, - } - } - }, - yiluan:{ - enable:'phaseUse', - usable:1, - filterTarget:function(card,player,target){ - return target!=player&&target.countCards('h'); - }, - content:function(){ - 'step 0' - target.judge(); - 'step 1' - if(result.suit!='heart'){ - var hs=target.getCards('h'); - while(hs.length){ - var chosen=hs.randomRemove(); - if(target.hasUseTarget(chosen)&&!get.info(chosen).multitarget){ - var list=game.filterPlayer(function(current){ - return lib.filter.targetEnabled2(chosen,target,current); - }); - if(list.length){ - target.useCard(chosen,list.randomGet()); - event.finish(); - break; - } - } - } - } - }, - ai:{ - order:10, - result:{ - target:function(player,target){ - if(!target.countCards('h')) return 0; - return -1; - } - } - } - }, - hslingjian_xuanfengzhiren_equip1:{ - trigger:{source:'damageEnd'}, - forced:true, - filter:function(event){ - if(event._notrigger.contains(event.player)) return false; - return event.card&&event.card.name=='sha'&&event.player.countCards('he'); - }, - content:function(){ - trigger.player.discard(trigger.player.getCards('he').randomGet()); - } - }, - hslingjian_xuanfengzhiren_equip2:{ - trigger:{player:'damageEnd'}, - forced:true, - filter:function(event){ - return event.card&&event.card.name=='sha'&&event.source&&event.source.countCards('he'); - }, - content:function(){ - trigger.source.discard(trigger.source.getCards('he').randomGet()); - } - }, - hslingjian_xuanfengzhiren_equip3:{ - trigger:{player:'loseAfter'}, - forced:true, - filter:function(event,player){ - return _status.currentPhase!=player&&!player.hasSkill('hslingjian_xuanfengzhiren_equip3_dist'); - }, - content:function(){ - player.addTempSkill('hslingjian_xuanfengzhiren_equip3_dist'); - } - }, - hslingjian_xuanfengzhiren_equip3_dist:{ - mod:{ - globalTo:function(from,to,distance){ - return distance+1; - } - } - }, - hslingjian_xuanfengzhiren_equip4:{ - trigger:{player:'loseAfter'}, - forced:true, - filter:function(event,player){ - return _status.currentPhase==player&&!player.hasSkill('hslingjian_xuanfengzhiren_equip4_dist'); - }, - content:function(){ - player.addTempSkill('hslingjian_xuanfengzhiren_equip4_dist'); - } - }, - hslingjian_xuanfengzhiren_equip4_dist:{ - mod:{ - globalFrom:function(from,to,distance){ - return distance-1; - } - } - }, - hslingjian_xuanfengzhiren_equip5:{ - enable:'phaseUse', - usable:1, - filterCard:true, - position:'he', - filter:function(event,player){ - return player.countCards('he')>0; - }, - filterTarget:function(card,player,target){ - return target.countCards('he')>0; - }, - check:function(card){ - return 5-get.value(card); - }, - content:function(){ - target.discard(target.getCards('he').randomGet()); - }, - ai:{ - order:5, - result:{ - target:function(player,target){ - var dh=player.countCards('he')-target.countCards('he'); - if(dh>0){ - return -Math.sqrt(dh); - } - return 0; - } - } - } - }, - hslingjian_zhongxinghujia_equip1:{ - trigger:{source:'damageEnd'}, - check:function(event,player){ - return !player.getEquip(2); - }, - filter:function(event){ - return event.card&&event.card.name=='sha'; - }, - content:function(){ - var card=game.createCard(get.inpile('equip2').randomGet()); - player.equip(card); - player.$draw(card); - game.delay(); - } - }, - hslingjian_zhongxinghujia_equip2:{ - trigger:{player:'damageEnd'}, - check:function(event,player){ - return get.attitude(player,event.source)<0; - }, - filter:function(event){ - return event.card&&event.card.name=='sha'&&event.source&&event.source.getEquip(2); - }, - content:function(){ - player.line(trigger.source,'green'); - trigger.source.discard(trigger.source.getEquip(2)); - } - }, - hslingjian_zhongxinghujia_equip3:{ - mod:{ - globalTo:function(from,to,distance){ - if(to.getEquip(2)) return distance+1; - } - } - }, - hslingjian_zhongxinghujia_equip4:{ - mod:{ - globalFrom:function(from,to,distance){ - if(from.getEquip(2)) return distance-1; - } - } - }, - hslingjian_zhongxinghujia_equip5:{ - enable:'phaseUse', - usable:1, - filterCard:true, - position:'he', - filterTarget:true, - selectCard:2, - filter:function(event,player){ - return player.countCards('he')>=2; - }, - check:function(card){ - return 5-get.value(card); - }, - content:function(){ - var card=game.createCard(get.inpile('equip2').randomGet()); - target.equip(card); - target.$draw(card); - game.delay(); - }, - ai:{ - order:1, - result:{ - target:function(player,target){ - if(target.getEquip(2)) return 0; - return 1; - } - } - } - }, - hslingjian_jinjilengdong_equip1:{ - trigger:{source:'damageEnd'}, - check:function(event,player){ - if(event.player.hasSkillTag('noturn')) return 0; - if(event.player.isTurnedOver()){ - return get.attitude(player,event.player)>0; - } - return get.attitude(player,event.player)<=0; - }, - filter:function(event){ - if(event._notrigger.contains(event.player)) return false; - return event.card&&event.card.name=='sha'&&event.player&&event.player.isAlive(); - }, - logTarget:'player', - content:function(){ - trigger.player.draw(2); - trigger.player.turnOver(); - } - }, - hslingjian_jinjilengdong_equip2:{ - trigger:{player:'damageEnd'}, - check:function(event,player){ - if(event.player.hasSkillTag('noturn')) return 0; - if(event.player.isTurnedOver()){ - return get.attitude(player,event.source)>0; - } - return get.attitude(player,event.source)<=0; - }, - filter:function(event){ - return event.card&&event.card.name=='sha'&&event.source&&event.source.isAlive(); - }, - logTarget:'source', - content:function(){ - player.line(trigger.source,'green'); - trigger.source.draw(2); - trigger.source.turnOver(); - } - }, - hslingjian_jinjilengdong_equip3:{ - mod:{ - globalTo:function(from,to,distance){ - if(to.isTurnedOver()) return distance+2; - } - } - }, - hslingjian_jinjilengdong_equip4:{ - mod:{ - globalFrom:function(from,to,distance){ - if(from.isTurnedOver()) return distance-2; - } - } - }, - hslingjian_jinjilengdong_equip5:{ - trigger:{player:'phaseAfter'}, - direct:true, - filter:function(event,player){ - return !player.isTurnedOver(); - }, - content:function(){ - "step 0" - player.chooseTarget(get.prompt('hslingjian_jinjilengdong_duanzao'),function(card,player,target){ - return player!=target&&!target.isTurnedOver(); - }).ai=function(target){ - if(target.hasSkillTag('noturn')) return 0; - return Math.max(0,-get.attitude(player,target)-2); - }; - "step 1" - if(result.bool){ - player.logSkill('hslingjian_jinjilengdong_equip5',result.targets); - player.turnOver(); - result.targets[0].turnOver(); - game.asyncDraw([player,result.targets[0]],2); - } - }, - }, - hslingjian_yinmilichang_equip1:{ - trigger:{source:'damageEnd'}, - direct:true, - filter:function(event){ - return event.card&&event.card.name=='sha'; - }, - content:function(){ - 'step 0' - player.chooseTarget(get.prompt('hslingjian_yinmilichang_duanzao'),function(card,player,target){ - return target!=player&&!target.hasSkill('qianxing'); - }).ai=function(target){ - var att=get.attitude(player,target); - if(get.distance(player,target,'absolute')<=1) return 0; - if(target.hp==1) return 2*att; - if(target.hp==2&&target.countCards('h')<=2) return 1.2*att; - return att; - } - 'step 1' - if(result.bool){ - player.logSkill('hslingjian_yinmilichang_equip1',result.targets); - result.targets[0].tempHide(); - } - } - }, - hslingjian_yinmilichang_equip2:{ - trigger:{player:'damageEnd'}, - forced:true, - filter:function(event,player){ - return !player.hasSkill('qianxing'); - }, - content:function(){ - player.addTempSkill('qianxing'); - } - }, - hslingjian_yinmilichang_equip3:{ - mod:{ - globalTo:function(from,to,distance){ - if(to.hp==1) return distance+1; - } - } - }, - hslingjian_yinmilichang_equip4:{ - mod:{ - globalFrom:function(from,to,distance){ - if(from.hp==1) return distance-1; - } - } - }, - hslingjian_yinmilichang_equip5:{ - mod:{ - targetEnabled:function(card,player,target,now){ - if(target.countCards('h')==0){ - if(card.name=='sha'||card.name=='juedou') return false; - } - } - }, - ai:{ - noh:true, - skillTagFilter:function(player,tag){ - if(tag=='noh'){ - if(player.countCards('h')!=1) return false; - } - } - } - }, - hslingjian_xingtigaizao_equip1:{ - trigger:{source:'damageEnd'}, - forced:true, - filter:function(event){ - return event.card&&event.card.name=='sha'; - }, - content:function(){ - player.draw(); - } - }, - hslingjian_xingtigaizao_equip2:{ - trigger:{player:'damageEnd'}, - forced:true, - filter:function(event){ - return event.card&&event.card.name=='sha'; - }, - content:function(){ - player.draw(); - } - }, - hslingjian_xingtigaizao_equip3:{ - mod:{ - globalTo:function(from,to,distance){ - return distance+1; - }, - globalFrom:function(from,to,distance){ - return distance+1; - } - } - }, - hslingjian_xingtigaizao_equip4:{ - mod:{ - globalTo:function(from,to,distance){ - return distance-1; - }, - globalFrom:function(from,to,distance){ - return distance-1; - } - } - }, - hslingjian_xingtigaizao_equip5:{ - mod:{ - maxHandcard:function(player,num){ - return num-1; - } - }, - trigger:{player:'phaseDrawBegin'}, - forced:true, - content:function(){ - trigger.num++; - } - }, - hslingjian_shengxiuhaojiao_equip1:{ - trigger:{player:'shaBegin'}, - forced:true, - filter:function(event,player){ - return event.target.hasSkill('hslingjian_chaofeng'); - }, - content:function(){ - trigger.directHit=true; - } - }, - hslingjian_shengxiuhaojiao_equip2:{ - mod:{ - targetEnabled:function(card,player,target){ - if(player.hasSkill('hslingjian_chaofeng')) return false; - } - } - }, - hslingjian_shengxiuhaojiao_equip3:{ - mod:{ - globalTo:function(from,to,distance){ - if(to.hp0; - }, - position:'he', - content:function(){ - var es=target.getCards('e'); - target.gain(es); - target.$gain2(es); - }, - check:function(card){ - return 4-get.value(card); - }, - ai:{ - order:5, - result:{ - target:function(player,target){ - if(target.hasSkillTag('noe')) return target.countCards('e')*2; - return -target.countCards('e'); - } - }, - } - }, - jiguanyaoshu_skill_old:{ - enable:'phaseUse', - filter:function(event,player){ - return player.countCards('h',{type:['trick','delay']})>0; - }, - filterCard:{type:['trick','delay']}, - check:function(card){ - return 5-get.value(card); - }, - viewAs:{name:'jiguanshu'} - }, - jiguanyaoshu_skill:{ - trigger:{player:'loseEnd'}, - forced:true, - filter:function(event,player){ - if(_status.currentPhase==player) return false; - for(var i=0;i10) return 10+(value-10)/10; - if(value<9) return 8+value/10; - return value; - }; - if(typeof lib.card[name].ai.equipValue=='number'){ - lib.card[name].ai.equipValue=getValue(lib.card[name].ai.equipValue,dvalue); - } - else if(typeof lib.card[name].ai.equipValue=='function'){ - lib.card[name].ai.equipValue=function(){ - return getValue(lib.card[equipname].ai.equipValue.apply(this,arguments),dvalue); - } - } - else if(lib.card[name].ai.basic&&typeof lib.card[name].ai.basic.equipValue=='number'){ - lib.card[name].ai.basic.equipValue=getValue(lib.card[name].ai.basic.equipValue,dvalue); - } - else if(lib.card[name].ai.basic&&typeof lib.card[name].ai.basic.equipValue=='function'){ - lib.card[name].ai.basic.equipValue=function(){ - return getValue(lib.card[equipname].ai.basic.equipValue.apply(this,arguments),dvalue); - } - } - else{ - if(dvalue==3){ - lib.card[name].ai.equipValue=7; - } - else{ - lib.card[name].ai.equipValue=dvalue; - } - } - if(Array.isArray(lib.card[name].skills)){ - lib.card[name].skills=lib.card[name].skills.slice(0); - } - else{ - lib.card[name].skills=[]; - } - // lib.card[name].filterTarget=function(card,player,target){ - // return !target.isMin(); - // }; - // lib.card[name].selectTarget=1; - // lib.card[name].range={global:1}; - var str=lib.translate[cards[0].name+'_duanzao']; - var str2=get.translation(equip.name,'skill'); - lib.translate[name]=str+str2; - str2=lib.translate[equip.name+'_info']||''; - if(str2[str2.length-1]=='.'||str2[str2.length-1]=='。'){ - str2=str2.slice(0,str2.length-1); - } - for(var i=0;i'+lib.translate[lingjians[i]]+''; - for(var j=0;j'; - if(type=='jiqi') break; - } - str+=''; - } - return str; - }, - check:function(card){ - if(get.type(card)=='jiqi'){ - if(_status.event.player.needsToDiscard()){ - return 0.5; - } - return 0; - } - var num=1+get.value(card); - if(get.position(card)=='e'){ - num+=0.1; - } - return num; - }, - filterCard:function(card){ - var type=get.type(card); - if(type=='equip'){ - if(!lib.inpile.contains(card.name)) return false; - if(lib.card[card.name].nopower) return false; - if(lib.card[card.name].unique) return false; - if(card.nopower) return false; - } - if(ui.selected.cards.length){ - var type2=get.type(ui.selected.cards[0]); - if(type2=='equip'){ - return type=='hslingjian'||type=='jiqi'; - } - else{ - return type=='equip'; - } - } - else{ - return type=='equip'||type=='hslingjian'||type=='jiqi'; - } - }, - selectCard:2, - complexCard:true, - filter:function(event,player){ - if(!player.countCards('h',{type:['hslingjian','jiqi']})) return false; - var es=player.getCards('he',{type:'equip'}); - for(var i=0;i0; - if(event.target.hp==1) return att>0; - if(event.target.hasSkillTag('maixie')){ - return att<=0; - } - if(player.hasSkill('tianxianjiu')) return false; - return att<=0; - }, - filter:function(event,player){ - return !event.target.isTurnedOver(); - }, - logTarget:'target', - content:function(){ - trigger.unhurt=true; - trigger.target.turnOver(); - trigger.target.draw(); - } - }, - chilongya:{ - trigger:{source:'damageBegin'}, - forced:true, - filter:function(event){ - return event.nature=='fire'&&event.notLink(); - }, - content:function(){ - trigger.num++; - } - }, - chilongya2:{ - trigger:{source:'damageBegin'}, - filter:function(event,player){ - return (event.card&&event.card.name=='sha'); - }, - popup:false, - forced:true, - content:function(){ - if(Math.random()<0.5){ - trigger.num++; - trigger.player.addSkill('chilongfengxue'); - } - } - }, - chilongfengxue:{ - trigger:{global:'shaAfter'}, - forced:true, - popup:false, - content:function(){ - player.draw(); - player.removeSkill('chilongfengxue'); - } - }, - shentou:{ - enable:'phaseUse', - usable:1, - filterCard:true, - filter:function(event,player){ - var nh=player.countCards('h'); - if(nh==0) return false; - return game.hasPlayer(function(current){ - return current!=player&¤t.countCards('h')>nh; - }); - }, - check:function(card){ - return 8-get.value(card); - }, - filterTarget:function(card,player,target){ - if(target.countCards('h')==0) return false; - if(target==player) return false; - if(target.countCards('h')<=player.countCards('h')) return false; - return true; - }, - content:function(){ - "step 0" - player.judge(function(card){ - if(get.suit(card)=='club') return -1; - return 1; - }); - "step 1" - if(result.bool){ - var card=target.getCards('h').randomGet(); - if(card){ - player.gain(card,target); - target.$giveAuto(card,player); - } - } - }, - ai:{ - basic:{ - order:5 - }, - result:{ - player:0.3, - target:-1, - } - } - }, - old_longfan:{ - enable:'phaseUse', - usable:1, - prompt:'?', - filterTarget:true, - content:function(){ - "step 0" - if(event.isMine()){ - event.longfan=ui.create.control('〇','〇','〇','〇',function(){ - event.longfan.status--; - }); - event.longfan.status=4; - for(var i=0;i1) event.count(1); - if(event.longfan.status>2) event.count(2); - if(event.longfan.status>3) event.count(3); - },200); - event.count=function(num){ - event.longfan.childNodes[num].num=(event.longfan.childNodes[num].num+1)%10; - if(event.longfan.childNodes[num].num==2) event.longfan.childNodes[num].innerHTML='二'; - else event.longfan.childNodes[num].innerHTML=get.cnNumber(event.longfan.childNodes[num].num); - } - game.pause(); - } - else{ - event.finish(); - var x=Math.random(); - if(x<0.1) target.draw(); - else if(x<0.2) target.chooseToDiscard(true); - else if(x<0.3) target.loseHp(); - else if(x<0.4) target.recover(); - else if(x<0.6){ - if(get.attitude(player,target)>0) target.draw(); - else target.chooseToDiscard(true); - } - else if(x<0.8){ - if(get.attitude(player,target)>0) target.recover(); - else target.loseHp(); - } - } - "step 1" - var str=''; - for(var i=0;iplayer.hp?2:0; - case 'diamond':return 1; - case 'club':return 1; - case 'spade':return 0; - } - }); - "step 1" - switch(result.suit){ - case 'heart':player.recover();break; - case 'diamond':player.draw();break; - case 'club':{ - var targets=player.getEnemies(); - for(var i=0;i0; - }, - discard:false, - prepare:'give', - filterTarget:function(card,player,target){ - if(player==target) return false; - return true; - }, - content:function(){ - target.damage(); - target.gain(cards,player); - // game.delay(); - }, - check:function(card){ - return 10-get.value(card); - }, - position:'he', - ai:{ - basic:{ - order:8 - }, - result:{ - target:-1 - } - } - }, - xixue:{ - trigger:{source:'damageEnd'}, - forced:true, - filter:function(event,player){ - return event.card&&event.card.name=='sha'&&player.hp1/3) return false; - return true; - }, - content:function(){ - trigger.num--; - } - }, - nigong:{ - trigger:{player:'damageAfter'}, - group:['nigong2','nigong3'], - forced:true, - content:function(){ - player.storage.nigong+=trigger.num; - if(player.storage.nigong>4){ - player.storage.nigong=4; - } - player.updateMarks(); - }, - ai:{ - effect:function(card,player,target){ - if(get.tag(card,'damage')&&!target.hujia) return [1,0.5]; - } - }, - intro:{ - content:'已积攒#点伤害' - } - }, - nigong2:{ - enable:'phaseUse', - filter:function(event,player){ - return player.storage.nigong>1; - }, - filterTarget:function(card,player,target){ - return player!=target; - }, - prompt:function(event){ - var str='弃置所有逆攻标记,'; - if(event.player.storage.nigong%2!=0){ - str+='摸一张牌,'; - } - str+='并对一名其他角色造成'+get.cnNumber(Math.floor(event.player.storage.nigong/2))+'点伤害'; - return str; - }, - content:function(){ - if(player.storage.nigong%2!=0){ - player.draw(); - } - target.damage(Math.floor(player.storage.nigong/2)); - player.storage.nigong=0; - player.updateMarks(); - }, - ai:{ - order:10, - result:{ - target:function(player,target){ - var num=get.damageEffect(target,player,target); - if(player.storage.nigong>=4&&num>0){ - num=0; - } - return num; - } - } - } - }, - nigong3:{ - enable:'phaseUse', - filter:function(event,player){ - return player.storage.nigong==1; - }, - content:function(){ - player.draw(); - player.storage.nigong=0; - player.updateMarks(); - }, - ai:{ - order:10, - result:{ - player:1 - } - } - }, - sadengjinhuan:{ - trigger:{player:'shaMiss'}, - check:function(event,player){ - return get.attitude(player,event.target)<0; - }, - content:function(){ - "step 0" - player.judge(function(card){ - return get.color(card)=='red'?1:0; - }) - "step 1" - if(result.bool){ - trigger.target.chooseToRespond({name:'shan'},'萨登荆环:请额外打出一张闪响应杀').autochoose=lib.filter.autoRespondShan; - } - else{ - event.finish(); - } - "step 2" - if(!result.bool){ - trigger.untrigger(); - trigger.trigger('shaHit'); - trigger._result.bool=false; - } - } - }, - ximohu:{ - trigger:{player:'damageBefore'}, - forced:true, - filter:function(event){ - return event.nature=='thunder'; - }, - content:function(){ - trigger.cancel(); - player.recover(trigger.num); - }, - ai:{ - effect:function(card){ - if(get.tag(card,'thunderDamage')) return [0,2]; - } - } - }, - guiyanfadao:{ - trigger:{player:'shaHit'}, - check:function(event,player){ - var att=get.attitude(player,event.target); - if(player.hasSkill('jiu')) return att>0; - if(event.target.hasSkillTag('maixie_hp')||event.target.hasSkillTag('maixie_defend')){ - return att<=0; - } - if(player.hasSkill('tianxianjiu')) return false; - if(event.target.hujia>0) return att<0; - if(event.target.hp==1) return att>0; - return false; - }, - content:function(){ - trigger.unhurt=true; - trigger.target.loseHp(); - } - }, - guiyanfadao2:{ - trigger:{player:'useCardAfter'}, - forced:true, - popup:false, - content:function(){ - delete player.storage.zhuque_skill.nature; - } - }, - tianxianjiu:{ - trigger:{source:'damageEnd'}, - filter:function(event){ - return (event.card&&(event.card.name=='sha')); - }, - forced:true, - temp:true, - vanish:true, - onremove:function(player){ - if(player.node.jiu){ - player.node.jiu.delete(); - player.node.jiu2.delete(); - delete player.node.jiu; - delete player.node.jiu2; - } - }, - content:function(){ - player.draw(2); - player.removeSkill('tianxianjiu'); - }, - ai:{ - damageBonus:true - } - }, - }, - cardType:{ - hslingjian:0.5, - jiqi:0.4, - jiguan:0.45 - }, - help:{ - '轩辕剑':'
  • 零件、祭器牌可用于煅造装备,煅造得到强化装备,并装备给距离1以内的角色
  • '+ - '煅造装备时失去牌以及装备牌的过程不触发任何技能(如枭姬、祈禳)
  • '+ - '进行洗牌时强化装备将从弃牌堆中消失,不进入牌堆
  • '+ - '专属、特殊装备无法被强化' - }, - translate:{ - qiankundai:'乾坤袋', - qiankundai_info:'你的手牌上限+1。当你失去该装备时,你摸一张牌。', - hufu:'玉符', - hufu_bg:'符', - g_hufu_sha:'符杀', - g_hufu_shan:'符闪', - g_hufu_jiu:'符酒', - hufu_info:'你可以将一张玉符当作杀、闪或酒使用或打出', - // yihuajiemu:'移花接木', - // yihuajiemu_info:'对一名装备区内有宝物的角色使用,将其宝物牌转移至另一名角色', - liuxinghuoyu:'流星火羽', - liuxinghuoyu_info:'出牌阶段,对一名角色使用,令目标弃置2张牌,或受到一点火焰伤害', - g_yuchan_equip:'玉蝉', - yuchanqian_duanzao:'玉蝉', - yuchanqian_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanqian_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanqian_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanqian_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanqian_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankun_duanzao:'玉蝉', - yuchankun_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankun_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankun_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankun_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankun_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanzhen_duanzao:'玉蝉', - yuchanzhen_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanzhen_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanzhen_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanzhen_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanzhen_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanxun_duanzao:'玉蝉', - yuchanxun_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanxun_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanxun_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanxun_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanxun_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankan_duanzao:'玉蝉', - yuchankan_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankan_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankan_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankan_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchankan_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanli_duanzao:'玉蝉', - yuchanli_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanli_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanli_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanli_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanli_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchangen_duanzao:'玉蝉', - yuchangen_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchangen_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchangen_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchangen_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchangen_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchandui_duanzao:'玉蝉', - yuchandui_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchandui_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchandui_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchandui_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchandui_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', - yuchanqian:'乾玉蝉', - yuchanqian_info:'在你行动时可当作杀使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', - yuchankun:'坤玉蝉', - yuchankun_info:'在你行动时可当作草药使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', - yuchanzhen:'震玉蝉', - yuchanzhen_info:'在你行动时可当作酒使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', - yuchanxun:'巽玉蝉', - yuchanxun_info:'在你行动时可当作桃使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', - yuchankan:'坎玉蝉', - yuchankan_info:'在你行动时可当作神秘果使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', - yuchanli:'离玉蝉', - yuchanli_info:'在你行动时可当作天仙酒使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', - yuchangen:'艮玉蝉', - yuchangen_info:'在你行动时可当作封印之蛋使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', - yuchandui:'兑玉蝉', - yuchandui_info:'在你行动时可当作雪肌冰鲍使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', - yangpijuan:'羊皮卷', - yangpijuan_info:'出牌阶段对自己使用,选择一种卡牌类别,发现一张该类别的卡牌', - // pantao:'蟠桃', - // pantao_info:'出牌阶段对自己使用,或对濒死角色使用,目标回复两点体力并获得一点护甲', - shencaojie:'神草结', - shencaojie_info:'你的锦囊牌即将造成伤害时对目标使用,令此伤害+1;你即将受到锦囊牌伤害时对自己使用,令此伤害-1', - yuruyi:'玉如意', - yuruyi_ab:'如意', - yuruyi_info:'你有更高的机率摸到好牌', - fengyinzhidan:'封印之蛋', - fengyinzhidan_info:'随机使用两张普通锦囊牌(随机指定目标)', - shuchui:'鼠槌', - shuchui_info:'出牌阶段限一次,你可以指定一名攻击范围内的角色,依次将手牌中的至多3张杀对该角色使用,若杀造成了伤害,你摸一张牌', - zhiluxiaohu:'指路小狐', - zhiluxiaohu_info:'出牌阶段对自己使用,视为对一名随机敌方角色使用一张杀,若此杀造成伤害,你摸一张牌', - xuejibingbao:'雪肌冰鲍', - xuejibingbao_info:'出牌阶段对一名角色使用,该角色摸牌阶段摸牌数+1,持续2个回合', - gouhunluo:'勾魂锣', - gouhunluo_info:'出牌阶段对一名角色使用,在3轮后你的准备阶段令该角色失去1点体力并弃置所有手牌', - jiguan:'机关', - jiqi:'祭器', - qinglongzhigui:'青龙之圭', - g_qinglongzhigui:'青龙之圭', - qinglongzhigui_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,你摸两张牌然后弃置一张牌', - qinglongzhigui_duanzao:'云屏', - qinglongzhigui_equip1_info:'结束阶段,你摸一张牌', - qinglongzhigui_equip2_info:'结束阶段,你摸一张牌', - qinglongzhigui_equip3_info:'结束阶段,你摸一张牌', - qinglongzhigui_equip4_info:'结束阶段,你摸一张牌', - qinglongzhigui_equip5_info:'结束阶段,你摸一张牌', - baishouzhihu:'白兽之琥', - g_baishouzhihu:'白兽之琥', - baishouzhihu_info:'可用于煅造装备;此牌在你手牌中时,每当你弃置卡牌,你可以弃置一名其他角色的一张随机牌', - baishouzhihu_duanzao:'风牙', - baishouzhihu_equip1_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', - baishouzhihu_equip2_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', - baishouzhihu_equip3_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', - baishouzhihu_equip4_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', - baishouzhihu_equip5_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', - zhuquezhizhang:'朱雀之璋', - g_zhuquezhizhang:'朱雀之璋', - zhuquezhizhang_info:'可用于煅造装备;此牌在你手牌中时,每当你受到其他角色造成的伤害,你对伤害来源造成一点火属性伤害', - zhuquezhizhang_duanzao:'炽翎', - zhuquezhizhang_equip1_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', - zhuquezhizhang_equip2_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', - zhuquezhizhang_equip3_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', - zhuquezhizhang_equip4_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', - zhuquezhizhang_equip5_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', - xuanwuzhihuang:'玄武之璜', - g_xuanwuzhihuang:'玄武之璜', - xuanwuzhihuang_duanzao:'寒晶', - xuanwuzhihuang_info:'可用于煅造装备;此牌在你手牌中时,每当你造成伤害,你回复等量的体力', - xuanwuzhihuang_equip1_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', - xuanwuzhihuang_equip2_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', - xuanwuzhihuang_equip3_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', - xuanwuzhihuang_equip4_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', - xuanwuzhihuang_equip5_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', - huanglinzhicong:'黄麟之琮', - g_huanglinzhicong:'黄麟之琮', - huanglinzhicong_duanzao:'玄甲', - huanglinzhicong_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,若你没有护甲,你获得一点护甲', - huanglinzhicong_equip1_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', - huanglinzhicong_equip2_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', - huanglinzhicong_equip3_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', - huanglinzhicong_equip4_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', - huanglinzhicong_equip5_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', - cangchizhibi:'苍螭之璧', - g_cangchizhibi:'苍螭之璧', - cangchizhibi_duanzao:'灵枢', - cangchizhibi_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,你可以选择至多3名角色横置或重置之', - cangchizhibi_equip1_info:'结束阶段,你可以横置或重置一名角色', - cangchizhibi_equip2_info:'结束阶段,你可以横置或重置一名角色', - cangchizhibi_equip3_info:'结束阶段,你可以横置或重置一名角色', - cangchizhibi_equip4_info:'结束阶段,你可以横置或重置一名角色', - cangchizhibi_equip5_info:'结束阶段,你可以横置或重置一名角色', - - guisheqi:'龟蛇旗', - guisheqi_info:'出牌阶段对一名角色使用,目标获得一点护甲', - jiguanfeng:'机关蜂', - jiguanfeng_info:'出牌阶段对一名其他角色使用,目标需打出一张闪,否则非锁定技失效直到下一回合开始,并受到一点伤害', - jiguanyuan:'机关鸢', - jiguanyuan_info:'出牌阶段对一名其他角色使用,你将此牌和一张其它牌置于一名其他角色的武将牌上,然后摸一张牌;该角色于下一结束阶段获得武将牌上的牌', - jiguantong:'机关火筒', - jiguantong_ab:'火筒', - jiguantong_info:'出牌阶段对所有其他角色使用,目标弃置一张手牌,或受到一点火焰伤害;若没有人选择受到伤害,使用者摸一张牌', - jiutiansuanchi:'九天算尺', - jiutiansuanchi_info:'每当你使用杀造成伤害,你可以弃置一张牌并展示受伤害角色的一张手牌,若此牌与你弃置的牌花色或点数相同,此杀的伤害+2', - shenmiguo:'神秘果', - shenmiguo_info:'出牌阶段内,当你使用一张基本牌或普通锦囊牌后使用,令此牌再结算一次。每阶段限用一次', - qinglianxindeng:'青莲心灯', - qinglianxindeng_info:'你防止锦囊牌造成的伤害', - hslingjian_xuanfengzhiren_duanzao:'风刃', - hslingjian_xuanfengzhiren_duanzao2:'风', - hslingjian_xuanfengzhiren_equip1_info:'每当你用杀造成一次伤害,受伤害角色随机弃置一张牌', - hslingjian_xuanfengzhiren_equip2_info:'每当你受到杀造成的伤害,伤害来源随机弃置一张牌', - hslingjian_xuanfengzhiren_equip3_info:'当你于回合外失去牌后,你本回合的防御距离+1', - hslingjian_xuanfengzhiren_equip4_info:'当你于回合内失去牌后,你本回合的进攻距离+1', - hslingjian_xuanfengzhiren_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后随机弃置一名其他角色的一张牌', - hslingjian_zhongxinghujia_duanzao:'重甲', - hslingjian_zhongxinghujia_duanzao2:'护', - hslingjian_zhongxinghujia_equip1_info:'每当你用杀造成一次伤害,你可以随机装备一件防具牌', - hslingjian_zhongxinghujia_equip2_info:'每当你受到杀造成的伤害,你可以弃置伤害来源的防具牌', - hslingjian_zhongxinghujia_equip3_info:'当你的装备区内有防具牌时,你的防御距离+1', - hslingjian_zhongxinghujia_equip4_info:'当你的装备区内有防具牌时,你的进攻距离+1', - hslingjian_zhongxinghujia_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色随机装备一件防具', - hslingjian_jinjilengdong_duanzao:'冰冻', - hslingjian_jinjilengdong_duanzao2:'冰', - hslingjian_jinjilengdong_equip1_info:'每当你用杀造成一次伤害,你可以令目标摸两张牌并翻面', - hslingjian_jinjilengdong_equip2_info:'每当你受到杀造成的伤害,你可以令伤害来源摸两张牌并翻面', - hslingjian_jinjilengdong_equip3_info:'你的武将牌背面朝上时防御距离+2', - hslingjian_jinjilengdong_equip4_info:'你的武将牌背面朝上时进攻距离+2', - hslingjian_jinjilengdong_equip5_info:'回合结束后,若你的武将牌正面朝上,你可以与一名武将牌正面朝上的其他角色同时翻面,然后各摸两张牌', - hslingjian_yinmilichang_duanzao:'隐力', - hslingjian_yinmilichang_duanzao2:'隐', - hslingjian_yinmilichang_equip1_info:'每当你用杀造成一次伤害,你可以令一名其他角色获得潜行直到其下一回合开始', - hslingjian_yinmilichang_equip2_info:'每当你受到一次伤害,你本回合内获得潜行', - hslingjian_yinmilichang_equip3_info:'当你的体力值为1时,你的防御距离+1', - hslingjian_yinmilichang_equip4_info:'当你的体力值为1时,你的进攻距离+1', - hslingjian_yinmilichang_equip5_info:'当你没有手牌时,你不能成为杀或决斗的目标', - hslingjian_xingtigaizao_duanzao:'移形', - hslingjian_xingtigaizao_duanzao2:'形', - hslingjian_xingtigaizao_equip1_info:'每当你用杀造成一次伤害,你摸一张牌', - hslingjian_xingtigaizao_equip2_info:'每当你受到杀造成的伤害,你摸一张牌', - hslingjian_xingtigaizao_equip3_info:'你的防御距离+1,进攻距离-1', - hslingjian_xingtigaizao_equip4_info:'你的防御距离-1,进攻距离+1', - hslingjian_xingtigaizao_equip5_info:'你于摸牌阶段额外摸一张牌;你的手牌上限-1', - hslingjian_shengxiuhaojiao_duanzao:'号角', - hslingjian_shengxiuhaojiao_duanzao2:'角', - hslingjian_shengxiuhaojiao_equip1_info:'有嘲讽的角色不能闪避你的杀', - hslingjian_shengxiuhaojiao_equip2_info:'有嘲讽的角色不能对你使用杀', - hslingjian_shengxiuhaojiao_equip3_info:'若你的手牌数大于你的体力值,你的防御距离+1', - hslingjian_shengxiuhaojiao_equip4_info:'若你的手牌数大于你的体力值,你的进攻距离+1', - hslingjian_shengxiuhaojiao_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色获得或解除嘲讽', - hslingjian_shijianhuisu_duanzao:'回溯', - hslingjian_shijianhuisu_duanzao2:'溯', - hslingjian_shijianhuisu_equip1_info:'当你装备一张防具牌时,你摸一张牌', - hslingjian_shijianhuisu_equip2_info:'当你装备一张武器牌时,你摸一张牌', - hslingjian_shijianhuisu_equip3_info:'当你的装备区内没有其他牌时,你的防御距离+1', - hslingjian_shijianhuisu_equip4_info:'当你的装备区内没有其他牌时,你的进攻距离+1', - hslingjian_shijianhuisu_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后令一名其他角色将其装备区内的牌收回手牌', - _lingjianduanzao:'煅造', - _lingjianduanzao_info:'出牌阶段,你可以将一张装备牌和一张可煅造的牌合成为一件强化装备,并装备给距离1以内的一名角色', - jiguanshu:'机关鼠', - jiguanshu_info:'出牌阶段对自己使用,用随机祭器强化装备区内的一张随机装备,然后用随机零件强化其余的装备', - lingjiandai:'零件袋', - lingjiandai_info:'出牌阶段对自己使用,获得3张随机零件', - mujiaren:'木甲人', - mujiaren_info:'出牌阶段限用一次,将你手牌中的非基本牌(含此张)替换为随机的机关牌', - jiguanyaoshu:'机关要术', - jiguanyaoshu_skill:'巧匠', - jiguanyaoshu_skill_info:'每当你于回合外失去装备区内的牌,你获得一个随机零件', - jiguanyaoshu_info:'出牌阶段对距离1以内的一名角色使用,目标随机装备一件装备牌并获得技能巧匠(每当你于回合外失去装备区内的牌,你获得一个随机零件)', - hslingjian:'零件', - hslingjian_xuanfengzhiren:'旋风之刃', - hslingjian_xuanfengzhiren_info:'可用于煅造装备;随机弃置一名角色的一张牌', - hslingjian_zhongxinghujia:'重型护甲', - hslingjian_zhongxinghujia_info:'可用于煅造装备;令一名角色装备一件随机防具,然后随机弃置其一张手牌', - hslingjian_jinjilengdong:'紧急冷冻', - hslingjian_jinjilengdong_bg:'冻', - hslingjian_jinjilengdong_info:'可用于煅造装备;令一名武将牌正面朝上的其他角色获得两点护甲并翻面,该角色不能使用卡牌,也不能成为卡牌的目标直到武将牌翻回正面', - hslingjian_yinmilichang:'隐秘力场', - hslingjian_yinmilichang_info:'可用于煅造装备;令一名其他角色获得技能潜行,直到其下一回合开始', - hslingjian_xingtigaizao:'型体改造', - hslingjian_xingtigaizao_info:'可用于煅造装备;摸一张牌,本回合手牌上限-1', - hslingjian_shengxiuhaojiao:'生锈号角', - hslingjian_shengxiuhaojiao_info:'可用于煅造装备;令一名角色获得技能嘲讽,直到其下一回合开始', - hslingjian_shijianhuisu:'时间回溯', - hslingjian_shijianhuisu_info:'可用于煅造装备;令一名其他角色将其装备牌收回手牌', - hslingjian_chaofeng:'嘲讽', - hslingjian_chaofeng_info:'锁定技,与你相邻的角色只能选择你为出杀目标', - qinglonglingzhu:'青龙灵珠', - qinglonglingzhu_ab:'灵珠', - qinglonglingzhu_info:'每当你造成一次属性伤害,你可以获得对方的一张牌', - xingjunyan:'星君眼', - xingjunyan_info:'你的杀造成的伤害+1;杀对你造成的伤害+1', - guiyanfadao:'鬼眼法刀', - guiyanfadao_bg:'眼', - guiyanfadao_info:'每当你使用杀命中目标,你可以防止伤害,改为令目标失去一点体力', - tianxianjiu:'天仙酒', - tianxianjiu_bg:'仙', - tianxianjiu_info:'出牌阶段对自己使用,你使用的下一张杀造成伤害后可以摸两张牌;濒死阶段,对自己使用,回复1点体力', - // xiangyuye:'翔羽叶', - // xiangyuye_info:'出牌阶段,对一名攻击范围外的角色使用,令其弃置一张黑色手牌或流失一点体力', - // huanpodan:'还魄丹', - // huanpodan_bg:'魄', - // huanpodan_info:'出牌阶段对一名角色使用,在目标即将死亡时防止其死亡,改为令其弃置所有牌,将体力值回复至1并摸一张牌', - // huanpodan_skill:'还魄丹', - // huanpodan_skill_bg:'丹', - // huanpodan_skill_info:'防止一次死亡,改为弃置所有牌,将体力值变为1并摸一张牌', - ximohu:'吸魔壶', - ximohu_bg:'魔', - // ximohu_info:'锁定技,你将即将受到的雷属性伤害转化为你的体力值', - sadengjinhuan:'萨登荆环', - sadengjinhuan_ab:'荆环', - sadengjinhuan_info:'当你的杀被闪避后,可以进行一次判定,若结果为红色目标需再打出一张闪', - sadengjinhuan_bg:'荆', - qipoguyu:'奇魄古玉', - xujin:'蓄劲', - xujin2:'蓄劲', - // qipoguyu_info:'装备后获得蓄劲技能', - xujin_info:'回合开始前,若你的蓄劲标记数小于当前的体力值,你可以跳过此回合,并获得一枚蓄劲标记。锁定技,每当你即将造成伤害,你令此伤害+X,然后弃置一枚蓄劲标记,X为你拥有的蓄劲标记数', - guilingzhitao:'归灵指套', - nigong:'逆攻', - nigong2:'逆攻', - nigong3:'逆攻', - nigong4:'逆攻', - guilingzhitao_info:'每当你受到一点伤害,你获得一个逆攻标记,标记数不能超过4。出牌阶段,你可以弃置所有逆攻标记并令对一名其他角色造成标记数一半的伤害(若非整数则向下取整并摸一张牌)', - nigong_info:'每当你受到一点伤害,你获得一个逆攻标记,标记数不能超过4。出牌阶段,你可以弃置所有逆攻标记并令对一名其他角色造成标记数一半的伤害(若非整数则向下取整并摸一张牌)', - baihupifeng:'白狐披风', - baihupifeng_bg:'狐', - baihupifeng_info:'结束阶段,若你的体力值是全场最小的之一,你可以回复一点体力', - fengxueren:'封雪刃', - fengxueren_bg:'雪', - fengxueren_info:'你使用杀击中目标后,若目标武将牌正面朝上,你可以防止伤害,然后令目标摸一张牌并翻面', - chilongya:'赤龙牙', - chilongya_info:'锁定技,你的火属性伤害+1', - daihuofenglun:'带火风轮', - daihuofenglun_ab:'风轮', - daihuofenglun_bg:'轮', - daihuofenglun_info:'你的进攻距离+2,你的防御距离-1', - xiayuncailing:'霞云彩绫', - xiayuncailing_ab:'彩绫', - xiayuncailing_bg:'云', - xiayuncailing_info:'你的进攻距离-1,你的防御距离+2', - shentoumianju:'神偷面具', - shentoumianju_bg:'偷', - shentoumianju_info:'出牌阶段,你可以指定一名手牌比你多的角色,弃置一张手牌并进行一次判定,若结果不为梅花,你获得其一张手牌', - shentou:'神偷', - shentou_info:'出牌阶段,你可以进行一次判定,若结果不为梅花,你获得任意一名角色的一张手牌', - xianluhui:'仙炉灰', - xianluhui_info:'令所有已受伤角色获得一点护甲', - caoyao:'草药', - caoyao_info:'出牌阶段,对距离为1以内的角色使用,回复一点体力。', - langeguaiyi:'蓝格怪衣', - langeguaiyi_bg:'格', - langeguaiyi_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复一点体力;方片:你摸一张牌;梅花:你令一名随机敌方角色随机弃置一张牌;黑桃:无事发生', - longfan:'龙帆', - longfan_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复一点体力;方片:你摸一张牌;梅花:你令一名随机敌方角色随机弃置一张牌;黑桃:无事发生', - // longfan_info:'0000:翻面;1111:弃手牌;2222:弃装备牌;3333:受伤害;4444:流失体力;5555:连环;6666:摸牌;7777:回复体力;8888:弃置判定牌;9999:置衡', - guiyoujie:'鬼幽结', - guiyoujie_bg:'结', - guiyoujie_info:'出牌阶段,对一名其他角色使用。若判定结果为黑色,其失去一点体力并随机弃置一张牌', - yufulu:'御夫录', - yufulu_info:'出牌阶段,可弃置一张武器牌令一名角色受到一点伤害,然后该角色获得此武器牌', - touzhi:'投掷', - touzhi_info:'出牌阶段,可弃置一张武器牌令一名角色受到一点伤害,然后该角色获得此武器牌', - xixueguizhihuan:'吸血鬼指环', - xixueguizhihuan_ab:'血环', - xixueguizhihuan_info:'锁定技,每当你使用杀造成一点伤害,你回复一点体力', - xixue:'吸血', - xixue_info:'锁定技,每当你使用杀造成一点伤害,你回复一点体力', - zhufangshenshi:'祠符', - zhufangshenshi_info:'出牌阶段,对一名其他角色使用,本回合内对其使用卡牌无视距离,结算后摸一张牌', - jingleishan:'惊雷闪', - jingleishan_info:'出牌阶段,对所有其他角色使用。每名目标角色需打出一张【杀】,否则受到1点雷电伤害。', - chiyuxi:'炽羽袭', - chiyuxi_info:'出牌阶段,对所有其他角色使用。每名目标角色需打出一张【闪】,否则受到1点火焰伤害。', - guangshatianyi:'光纱天衣', - guangshatianyi_bg:'纱', - guangshatianyi_info:'锁定技,每当你即将受到伤害,有三分之一的概率令伤害减一', - sifeizhenmian:'四非真面', - sifeizhenmian_info:'出牌阶段限一次,你可以令一名有手牌的其他角色进行一次判定,若结果为不为红桃且目标有可用的手牌,目标随机使用一张手牌(随机指定目标)', - yiluan:'意乱', - yiluan_info:'出牌阶段限一次,你可以令一名有手牌的其他角色进行一次判定,若结果为不为红桃且目标有可用的手牌,目标随机使用一张手牌(随机指定目标)', - donghuangzhong:'东皇钟', - xuanyuanjian:'轩辕剑', - xuanyuanjian2:'轩辕剑', - pangufu:'盘古斧', - lianyaohu:'炼妖壶', - lianyaohu_skill:'炼妖壶', - lianyaohu_skill_bg:'壶', - haotianta:'昊天塔', - fuxiqin:'伏羲琴', - shennongding:'神农鼎', - kongdongyin:'崆峒印', - kunlunjingc:'昆仑镜', - nvwashi:'女娲石', - donghuangzhong_bg:'钟', - lianyaohu_bg:'壶', - haotianta_bg:'塔', - fuxiqin_bg:'琴', - shennongding_bg:'鼎', - kongdongyin_bg:'印', - kunlunjingc_bg:'镜', - nvwashi_bg:'石', - kongxin:'控心', - lianhua:'炼化', - // dujian:'毒箭', - // dujian_info:'出牌阶段,对一名有手牌或装备牌的角色使用,令其展示一张手牌,若与你选择的手牌颜色相同,其流失一点体力', - lianhua_info:'出牌阶段限一次,你可以弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌', - shouna:'收纳', - shouna_info:'出牌阶段限一次,你可以弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶', - donghuangzhong_info:'结束阶段,你可以弃置一张红色手牌,并选择一名角色将一张随机单体延时锦囊置入其判定区', - xuanyuanjian_info:'装备时获得一点护甲;每当你即将造成一次伤害,你令此伤害加一并变为雷属性,并在伤害结算后流失一点体力。任何时候,若你体力值不超过2,则立即失去轩辕剑', - pangufu_info:'锁定技,每当你造成一次伤害,受伤角色须弃置一张牌', - haotianta_info:'锁定技,任意一名角色进行判定前,你观看牌堆顶的2张牌,并选择一张作为判定结果,此结果不可被更改,也不能触发技能', - shennongding_info:'出牌阶段,你可以弃置两张手牌,然后回复一点体力。每阶段限一次', - kongdongyin_info:'令你抵挡一次死亡,将体力回复至1,并摸一张牌,发动后进入弃牌堆', - kunlunjingc_info:'出牌阶段限一次,你可以观看牌堆顶的三张牌,然后用一张手牌替换其中的一张', - nvwashi_info:'当一名角色濒死时,若你的体力值大于1,你可以失去一点体力并令其回复一点体力', - kongxin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌', - fuxiqin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌', - lianyaohu_info:'出牌阶段各限一次,你可以选择一项:1.弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶;2.弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌', - }, - list:[ - ['heart',1,'hufu'], - ['spade',1,'hufu'], - ['club',1,'qiankundai'], - // ['heart',3,'yihuajiemu'], - // ['diamond',1,'yihuajiemu'], - // ['diamond',7,'yihuajiemu'], - - ['diamond',3,'liuxinghuoyu','fire'], - ['heart',6,'liuxinghuoyu','fire'], - ['heart',9,'liuxinghuoyu','fire'], - - ['spade',1,'baihupifeng'], - ['club',1,'fengxueren'], - ['diamond',1,'langeguaiyi'], - ['heart',1,'daihuofenglun','fire'], - - ['diamond',2,'xiayuncailing'], - // ['heart',2,'pantao'], - // ['heart',2,'huanpodan'], - - ['club',3,'caoyao'], - ['diamond',3,'chilongya','fire'], - ['spade',3,'guiyoujie'], - - ['club',4,'caoyao'], - ['spade',4,'zhufangshenshi'], - // ['spade',4,'huanpodan'], - - ['club',5,'caoyao'], - ['spade',5,'xixueguizhihuan'], - // ['diamond',5,'huanpodan'], - - ['club',6,'shentoumianju'], - ['spade',6,'yufulu'], - - ['diamond',7,'chiyuxi','fire'], - ['club',7,'jingleishan','thunder'], - ['spade',7,'guilingzhitao'], - - ['spade',8,'zhufangshenshi'], - // ['club',8,'xiangyuye','poison'], - - ['spade',9,'yangpijuan'], - ['club',9,'guiyoujie'], - // ['diamond',9,'xiangyuye','poison'], - - // ['diamond',9,'tianxianjiu'], - ['heart',9,'tianxianjiu'], - ['diamond',2,'tianxianjiu'], - - ['spade',2,'qinglonglingzhu'], - ['spade',7,'xingjunyan'], - - //['spade',10,'qipoguyu'], - //['diamond',10,'xiangyuye','poison'], - ['club',7,'yangpijuan'], - - // ['spade',11,'xiangyuye','poison'], - - ['spade',12,'guiyanfadao','poison'], - - ['spade',13,'xianluhui'], - ['diamond',3,'guangshatianyi'], - ['club',13,'sadengjinhuan'], - - ['club',2,'lingjiandai'], - // ['spade',3,'lingjiandai'], - // ['heart',5,'lingjiandai'], - ['diamond',8,'lingjiandai'], - - ['club',2,'jiguanshu'], - // ['spade',2,'jiguanshu'], - // ['heart',2,'jiguanshu'], - ['diamond',2,'jiguanshu'], - - ['club',3,'jiguanyaoshu'], - ['spade',3,'jiguanyaoshu'], - // ['heart',3,'jiguanyaoshu'], - // ['diamond',3,'jiguanyaoshu'], - - ['spade',4,'sifeizhenmian'], - ['heart',13,'qinglianxindeng'], - ['club',3,'jiguanyuan'], - ['diamond',2,'jiguanyuan'], - ['diamond',4,'jiguantong'], - ['club',7,'jiguantong'], - // ['spade',1,'shenmiguo'], - ['spade',2,'shenmiguo'], - ['heart',1,'shenmiguo'], - ['club',3,'jiguanfeng'], - ['spade',4,'jiguanfeng'], - ['spade',9,'guisheqi'], - ['club',7,'guisheqi'], - - ['diamond',13,'donghuangzhong'], - ['diamond',13,'fuxiqin'], - ['spade',13,'kunlunjingc'], - ['spade',13,'xuanyuanjian'], - ['spade',13,'pangufu'], - ['club',13,'lianyaohu'], - ['diamond',13,'haotianta'], - ['club',13,'shennongding'], - ['heart',13,'nvwashi'], - ['heart',13,'kongdongyin'], - - ['heart',6,'qinglongzhigui'], - ['diamond',6,'zhuquezhizhang'], - ['spade',6,'baishouzhihu'], - ['club',6,'xuanwuzhihuang'], - ['spade',7,'cangchizhibi'], - ['heart',5,'huanglinzhicong'], - - ['spade',9,'gouhunluo'], - ['club',7,'gouhunluo'], - - ['spade',1,'xuejibingbao'], - ['club',1,'xuejibingbao'], - - ['heart',3,'zhiluxiaohu'], - ['diamond',4,'zhiluxiaohu'], - - ['club',7,'mujiaren'], - ['heart',6,'mujiaren'], - ['diamond',11,'mujiaren'], - - ['club',6,'shuchui'], - - // ['club',1,'fengyinzhidan'], - // ['diamond',1,'fengyinzhidan'], - // ['heart',1,'fengyinzhidan'], - ['spade',1,'fengyinzhidan'], - - ['heart',9,'yuruyi'], - - ['club',4,'shencaojie'], - ['diamond',4,'shencaojie'], - ['spade',4,'shencaojie'], - - ['spade',1,'yuchanqian'], - ['club',2,'yuchankun'], - ['diamond',3,'yuchanzhen'], - ['heart',4,'yuchanxun'], - ['spade',5,'yuchankan'], - ['club',6,'yuchanli'], - ['diamond',7,'yuchangen'], - ['heart',8,'yuchandui'], - - // ['spade',3,'dujian','poison'], - // ['club',11,'dujian','poison'], - // ['club',12,'dujian','poison'], - ], - }; -}); +'use strict'; +game.import('card',function(lib,game,ui,get,ai,_status){ + return { + name:'swd', + card:{ + hufu:{ + fullskin:true, + type:'basic', + global:['g_hufu_sha','g_hufu_shan','g_hufu_jiu'], + savable:function(card,player,dying){ + return dying==player; + }, + ai:{ + value:[7.5,5,2], + useful:[7.5,5,2], + } + }, + // yihuajiemu:{ + // fullskin:true, + // type:'trick', + // enable:true, + // singleCard:true, + // filterTarget:function(card,player,target){ + // if(target.isMin()) return false; + // if(ui.selected.targets.length){ + // return target.getCards('e',{subtype:'equip5'}).length==0; + // } + // else{ + // return target.getCards('e',{subtype:'equip5'}).length>0; + // } + // }, + // selectTarget:2, + // multitarget:true, + // complexTarget:true, + // multicheck:function(){ + // return game.hasPlayer(function(current){ + // return current.getEquip(5); + // })&&game.hasPlayer(function(current){ + // return !current.getEquip(5); + // }); + // }, + // content:function(){ + // if(target.getEquip(5)){ + // target.$give(target.getEquip(5),event.addedTarget); + // event.addedTarget.equip(target.getEquip(5)); + // game.delay(); + // } + // }, + // ai:{ + // order:1, + // result:{ + // target:function(player,target){ + // if(target.getCards('e',{subtype:'equip5'}).length){ + // if(get.attitude(target,player)>0){ + // return -0.5; + // } + // return -1; + // } + // return 1; + // } + // }, + // tag:{ + // loseCard:1 + // } + // } + // }, + liuxinghuoyu:{ + fullskin:true, + type:'trick', + enable:true, + filterTarget:true, + cardcolor:'red', + cardnature:'fire', + content:function(){ + "step 0" + if(target.countCards('he')<2){ + event.directfalse=true; + } + else{ + target.chooseToDiscard('he',2).ai=function(card){ + if(target.hasSkillTag('nofire')) return 0; + if(get.damageEffect(target,player,target,'fire')>=0) return 0; + if(player.hasSkillTag('notricksource')) return 0; + if(target.hasSkillTag('notrick')) return 0; + if(card.name=='tao') return 0; + if(target.hp==1&&card.name=='jiu') return 0; + if(target.hp==1&&get.type(card)!='basic'){ + return 10-get.value(card); + } + return 8-get.value(card); + }; + } + "step 1" + if(event.directfalse||!result.bool){ + target.damage('fire'); + } + }, + ai:{ + basic:{ + order:4, + value:7, + useful:2, + }, + result:{ + target:function(player,target){ + if(target.hasSkillTag('nofire')) return 0; + if(get.damageEffect(target,player,player)<0&&get.attitude(player,target)>0){ + return -2; + } + var nh=target.countCards('he'); + if(target==player) nh--; + switch(nh){ + case 0:case 1:return -2; + case 2:return -1.5; + case 3:return -1; + default:return -0.7; + } + } + }, + tag:{ + damage:1, + fireDamage:1, + natureDamage:1, + discard:1, + loseCard:1, + position:'he', + } + } + }, + dujian:{ + fullskin:true, + type:'basic', + enable:true, + filterTarget:function(card,player,target){ + return target.countCards('h')>0; + }, + content:function(){ + "step 0" + if(target.countCards('h')==0||player.countCards('h')==0){ + event.finish(); + return; + } + player.chooseCard(true); + "step 1" + event.card1=result.cards[0]; + var rand=Math.random()<0.5; + target.chooseCard(true).ai=function(card){ + if(rand) return Math.random(); + return get.value(card); + }; + "step 2" + event.card2=result.cards[0]; + ui.arena.classList.add('thrownhighlight'); + game.addVideo('thrownhighlight1'); + player.$compare(event.card1,target,event.card2); + game.delay(4); + "step 3" + game.log(player,'展示了',event.card1); + game.log(target,'展示了',event.card2); + if(get.color(event.card2)==get.color(event.card1)){ + player.discard(event.card1).animate=false; + target.$gain2(event.card2); + var clone=event.card1.clone; + if(clone){ + clone.style.transition='all 0.5s'; + clone.style.transform='scale(1.2)'; + clone.delete(); + game.addVideo('deletenode',player,get.cardsInfo([clone])); + } + target.loseHp(); + } + else{ + player.$gain2(event.card1); + target.$gain2(event.card2); + target.addTempSkill('dujian2'); + } + ui.arena.classList.remove('thrownhighlight'); + game.addVideo('thrownhighlight2'); + }, + ai:{ + basic:{ + order:2, + value:3, + useful:1, + }, + result:{ + player:function(player,target){ + if(player.countCards('h')<=Math.min(5,Math.max(2,player.hp))&&_status.event.name=='chooseToUse'){ + if(typeof _status.event.filterCard=='function'&& + _status.event.filterCard({name:'dujian'})){ + return -10; + } + if(_status.event.skill){ + var viewAs=get.info(_status.event.skill).viewAs; + if(viewAs=='dujian') return -10; + if(viewAs&&viewAs.name=='dujian') return -10; + } + } + return 0; + }, + target:function(player,target){ + if(target.hasSkill('dujian2')||target.countCards('h')==0) return 0; + if(player.countCards('h')<=1) return 0; + return -1.5; + } + }, + tag:{ + loseHp:1 + } + } + }, + yangpijuan:{ + fullskin:true, + type:'trick', + enable:true, + toself:true, + filterTarget:function(card,player,target){ + return target==player; + }, + modTarget:true, + content:function(){ + 'step 0' + var choice; + if(target.countCards('h','shan')==0||target.countCards('h','sha')==0||target.hp<=1){ + choice='basic'; + } + else{ + var e2=target.getEquip(2); + var e3=target.getEquip(3); + if((e2&&e3)||((e2||e3)&&target.needsToDiscard()<=1)||Math.random()<0.5){ + choice='trick'; + } + else{ + choice='equip'; + } + } + target.chooseControl('basic','trick','equip',function(){ + return choice; + }).set('prompt','选择一种卡牌类型'); + 'step 1' + var list=get.inpile(result.control,'trick'); + list=list.randomGets(3); + for(var i=0;i=0) return 0; + return 1; + } + else{ + if(get.attitude(player,target)>0) return 0; + if(get.damageEffect(target,player,target)>=0) return 0; + return -1; + } + } + }, + } + }, + yuruyi:{ + type:'equip', + subtype:'equip5', + skills:['yuruyi'], + fullskin:true, + ai:{ + basic:{ + equipValue:6 + } + }, + }, + fengyinzhidan:{ + type:'basic', + enable:true, + fullskin:true, + filterTarget:function(card,player,target){ + return target==player; + }, + selectTarget:-1, + modTarget:true, + // usable:1, + content:function(){ + 'step 0' + event.num=2; + var list=[]; + event.list=list; + for(var i=0;i0&&info.selectTarget[1]>=info.selectTarget[0]){ + list.push(lib.inpile[i]); + } + } + else if(typeof info.selectTarget=='number'){ + list.push(lib.inpile[i]); + } + } + } + } + 'step 1' + var list=event.list; + while(list.length){ + var card={name:list.randomRemove()}; + var info=get.info(card); + var targets=game.filterPlayer(function(current){ + return lib.filter.filterTarget(card,target,current); + }); + if(targets.length){ + targets.sort(lib.sort.seat); + if(info.selectTarget==-1){ + target.useCard(card,targets,'noai'); + } + else{ + var num=info.selectTarget; + if(Array.isArray(num)){ + if(targets.length0){ + event.redo(); + } + break; + } + } + }, + ai:{ + order:9, + value:8, + useful:3, + result:{ + target:1 + } + } + }, + yuchanqian:{ + fullskin:true, + type:'jiqi', + addinfo:'杀', + autoViewAs:'sha', + global:['g_yuchan_swap','g_yuchan_equip'], + ai:{ + value:6, + useful:[5,1] + } + }, + yuchankun:{ + fullskin:true, + type:'jiqi', + addinfo:'药', + autoViewAs:'caoyao', + global:['g_yuchan_swap','g_yuchan_equip'], + ai:{ + value:6, + useful:[7,2] + } + }, + yuchanzhen:{ + fullskin:true, + type:'jiqi', + autoViewAs:'jiu', + addinfo:'酒', + global:['g_yuchan_swap','g_yuchan_equip'], + savable:function(card,player,dying){ + return dying==player; + }, + ai:{ + value:6, + useful:[4,1] + } + }, + yuchanxun:{ + fullskin:true, + type:'jiqi', + autoViewAs:'tao', + addinfo:'桃', + global:['g_yuchan_swap','g_yuchan_equip'], + savable:true, + ai:{ + value:6, + useful:[8,6.5] + } + }, + yuchankan:{ + fullskin:true, + type:'jiqi', + autoViewAs:'shenmiguo', + global:['g_yuchan_swap','g_yuchan_equip'], + addinfo:'果', + ai:{ + order:1, + useful:4, + value:6, + result:{ + player:function(){ + var cardname=_status.event.cardname; + if(cardname=='tiesuo') return 0; + if(cardname=='jiu') return 0; + if(cardname=='tianxianjiu') return 0; + if(cardname=='toulianghuanzhu') return 0; + if(cardname=='shijieshu') return 0; + if(cardname=='xietianzi') return 0; + if(cardname=='huogong') return 0; + if(cardname=='shandianjian') return 0; + return 1; + } + }, + } + }, + yuchanli:{ + fullskin:true, + type:'jiqi', + autoViewAs:'tianxianjiu', + global:['g_yuchan_swap','g_yuchan_equip'], + addinfo:'仙', + savable:function(card,player,dying){ + return dying==player; + }, + ai:{ + value:6, + useful:1 + } + }, + yuchangen:{ + fullskin:true, + type:'jiqi', + addinfo:'蛋', + autoViewAs:'fengyinzhidan', + global:['g_yuchan_swap','g_yuchan_equip'], + ai:{ + value:6, + useful:1 + } + }, + yuchandui:{ + fullskin:true, + type:'jiqi', + addinfo:'雪', + autoViewAs:'xuejibingbao', + global:['g_yuchan_swap','g_yuchan_equip'], + ai:{ + value:6, + useful:4 + } + }, + mujiaren:{ + fullskin:true, + enable:true, + type:'jiguan', + usable:1, + updateUsable:'phaseUse', + forceUsable:true, + wuxieable:true, + selectTarget:-1, + filterTarget:function(card,player,target){ + return target==player; + }, + content:function(){ + 'step 0' + var cards=target.getCards('h',function(card){ + return get.type(card)!='basic'; + }); + if(cards.length){ + target.lose(cards)._triggered=null; + } + event.num=1+cards.length; + 'step 1' + var cards=[]; + var list=get.typeCard('jiguan'); + for(var i=0;i=0) return 0; + return 8-get.useful(card); + }); + } + else{ + target.damage('fire'); + event.parent.preResult=true; + event.finish(); + } + "step 1" + if(result.bool==false){ + target.damage('fire'); + event.parent.preResult=true; + } + }, + contentAfter:function(){ + if(!event.preResult) player.draw(); + }, + ai:{ + wuxie:function(target,card,player,viewer){ + if(get.attitude(viewer,target)>0){ + if(target.countCards('h')>0||target.hp>1) return 0; + } + }, + basic:{ + order:9, + useful:1 + }, + result:{ + target:function(player,target){ + if(player.hasUnknown(2)) return 0; + var nh=target.countCards('h'); + if(get.mode()=='identity'){ + if(target.isZhu&&nh<=1&&target.hp<=1) return -100; + } + if(nh==0) return -1; + if(nh==1) return -0.7 + return -0.5; + }, + }, + tag:{ + discard:1, + loseCard:1, + damage:1, + natureDamage:1, + fireDamage:1, + multitarget:1, + multineg:1, + } + } + }, + donghuangzhong:{ + fullskin:true, + type:'equip', + subtype:'equip5', + nomod:true, + nopower:true, + unique:true, + skills:['donghuangzhong'], + ai:{ + equipValue:7 + } + }, + xuanyuanjian:{ + fullskin:true, + type:'equip', + subtype:'equip1', + nomod:true, + nopower:true, + unique:true, + skills:['xuanyuanjian','xuanyuanjian2','xuanyuanjian3'], + enable:function(card,player){ + return player.hasSkill('xuanyuan')||player.hp>2; + }, + distance:{attackFrom:-2}, + onEquip:function(){ + if(!player.hasSkill('xuanyuan')&&player.hp<=2){ + player.discard(card); + } + else{ + player.changeHujia(); + } + }, + ai:{ + equipValue:9 + } + }, + pangufu:{ + fullskin:true, + type:'equip', + subtype:'equip1', + skills:['pangufu'], + nomod:true, + nopower:true, + unique:true, + distance:{attackFrom:-3}, + ai:{ + equipValue:8 + } + }, + lianyaohu:{ + fullskin:true, + type:'equip', + subtype:'equip5', + equipDelay:false, + loseDelay:false, + nomod:true, + nopower:true, + unique:true, + onEquip:function(){ + player.markSkill('lianyaohu_skill'); + }, + onLose:function(){ + player.unmarkSkill('lianyaohu_skill'); + }, + clearLose:true, + ai:{ + equipValue:6 + }, + skills:['lianhua','shouna','lianyaohu_skill'] + }, + haotianta:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['haotianta'], + nomod:true, + nopower:true, + unique:true, + ai:{ + equipValue:7 + } + }, + fuxiqin:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['kongxin'], + nomod:true, + nopower:true, + unique:true, + ai:{ + equipValue:6 + } + }, + shennongding:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['shennongding'], + nomod:true, + nopower:true, + unique:true, + ai:{ + equipValue:6 + } + }, + kongdongyin:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['kongdongyin'], + nomod:true, + nopower:true, + unique:true, + ai:{ + equipValue:function(card,player){ + if(player.hp==2) return 7; + if(player.hp==1) return 10; + return 5; + }, + basic:{ + equipValue:7 + } + } + }, + kunlunjingc:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['kunlunjingc'], + nomod:true, + nopower:true, + unique:true, + ai:{ + equipValue:6 + } + }, + nvwashi:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['nvwashi'], + nomod:true, + nopower:true, + unique:true, + ai:{ + equipValue:5 + } + }, + guisheqi:{ + fullskin:true, + type:'trick', + enable:true, + filterTarget:true, + content:function(){ + target.changeHujia(); + }, + ai:{ + basic:{ + order:5, + useful:3, + value:[6,2,1] + }, + result:{ + target:function(player,target){ + return 2/Math.max(1,Math.sqrt(target.hp)); + }, + }, + } + }, + jiguanfeng:{ + fullskin:true, + type:'jiguan', + enable:true, + wuxieable:true, + filterTarget:function(card,player,target){ + return target!=player; + }, + content:function(){ + "step 0" + var next=target.chooseToRespond({name:'shan'}); + next.autochoose=lib.filter.autoRespondShan; + "step 1" + if(result.bool==false){ + if(!target.hasSkill('fengyin')){ + target.addTempSkill('fengyin',{player:'phaseBegin'}); + } + target.damage(); + } + else{ + event.finish(); + } + }, + ai:{ + basic:{ + order:9, + useful:3, + value:6.5, + }, + result:{ + target:-2, + }, + tag:{ + respond:1, + respondShan:1, + // damage:1, + } + } + }, + jiguanyuan:{ + fullskin:true, + type:'jiguan', + wuxieable:true, + enable:function(card,player){ + var hs=player.getCards('he'); + return hs.length>1||(hs.length==1&&hs[0]!=card); + }, + filterTarget:function(card,player,target){ + return target!=player&&!target.hasSkill('jiguanyuan'); + }, + content:function(){ + 'step 0' + if(player.countCards('he')){ + player.chooseCard(true,'he').set('prompt2','你将'+ + get.translation(cards)+'和选择牌置于'+get.translation(target)+ + '的武将牌上,然后摸一张牌;'+get.translation(target)+ + '于下一结束阶段获得武将牌上的牌'); + } + else{ + event.finish(); + } + 'step 1' + player.$throw(result.cards); + player.lose(result.cards,ui.special); + ui.special.appendChild(cards[0]); + event.togive=[cards[0],result.cards[0]]; + game.delay(); + 'step 2' + // target.gain(event.togive).delay=false; + target.$gain2(event.togive); + target.storage.jiguanyuan=event.togive; + target.addSkill('jiguanyuan'); + game.log(target,'从',player,'获得了',event.togive); + player.draw(); + }, + ai:{ + basic:{ + order:2, + useful:2, + value:7 + }, + result:{ + target:function(player,target){ + var players=game.filterPlayer(function(current){ + return (current!=player&&!current.isTurnedOver()&& + get.attitude(player,current)>=3&&get.attitude(current,player)>=3) + }); + players.sort(lib.sort.seat); + if(target==players[0]) return 2; + return 0.5; + }, + }, + } + }, + shenmiguo_old:{ + fullskin:true, + type:'trick', + enable:true, + selectTarget:-1, + filterTarget:function(card,player,target){ + return target==player; + }, + modTarget:true, + content:function(){ + var list=[]; + for(var i in lib.card){ + if(lib.card[i].derivation){ + list.push(i); + } + } + if(get.mode()=='stone'){ + list.remove('hslingjian_jinjilengdong'); + } + if(list.length){ + target.gain(game.createCard(list.randomGet()),'draw'); + } + }, + ai:{ + basic:{ + order:7.3, + useful:2, + value:6 + }, + result:{ + target:2, + }, + } + }, + shenmiguo:{ + fullskin:true, + type:'basic', + global:'g_shenmiguo', + content:function(){ + if(Array.isArray(player.storage.shenmiguo)){ + player.useCard(player.storage.shenmiguo[0],player.storage.shenmiguo[1]); + } + }, + ai:{ + order:1, + useful:6, + value:6, + result:{ + player:function(){ + var cardname=_status.event.cardname; + if(get.tag({name:cardname},'norepeat')) return 0; + return 1; + } + }, + } + }, + qinglianxindeng:{ + fullskin:true, + type:'equip', + subtype:'equip2', + skills:['qinglianxindeng'], + ai:{ + basic:{ + equipValue:8 + } + }, + }, + lingjiandai:{ + fullskin:true, + enable:true, + type:'jiguan', + wuxieable:true, + filterTarget:function(card,player,target){ + return target==player; + }, + selectTarget:-1, + modTarget:true, + content:function(){ + var list=get.typeCard('hslingjian'); + if(list.length){ + list=list.randomGets(3); + for(var i=0;i0; + }, + content:function(){ + target.discard(target.getCards('he').randomGet()); + }, + ai:{ + order:9, + result:{ + target:-1, + }, + useful:[2,0.5], + value:[2,0.5], + } + }, + hslingjian_zhongxinghujia:{ + type:'hslingjian', + fullimage:true, + vanish:true, + enable:true, + derivation:true, + derivationpack:'swd', + filterTarget:function(card,player,target){ + return !target.isMin(); + }, + content:function(){ + 'step 0' + var list=[]; + for(var i=0;i6) return num; + } + } + if(hs.length>4) return num+0.5; + } + else{ + if(hs.length){ + if(hs.length<=3) return num; + return num+0.5; + } + } + return num+1; + } + } + }, + useful:[2,0.5], + value:[2,0.5], + } + }, + hslingjian_xingtigaizao:{ + type:'hslingjian', + fullimage:true, + vanish:true, + enable:true, + derivation:true, + derivationpack:'swd', + filterTarget:function(card,player,target){ + return target==player; + }, + selectTarget:-1, + content:function(){ + target.draw(); + target.addSkill('hslingjian_xingtigaizao'); + if(typeof target.storage.hslingjian_xingtigaizao=='number'){ + target.storage.hslingjian_xingtigaizao++; + } + else{ + target.storage.hslingjian_xingtigaizao=1; + } + }, + ai:{ + order:9, + result:{ + target:function(player,target){ + if(!player.needsToDiscard()) return 1; + return 0; + } + }, + useful:[2,0.5], + value:[2,0.5], + } + }, + hslingjian_shijianhuisu:{ + type:'hslingjian', + fullimage:true, + vanish:true, + enable:true, + derivation:true, + derivationpack:'swd', + filterTarget:function(card,player,target){ + return target!=player&&target.countCards('e')>0; + }, + content:function(){ + var es=target.getCards('e'); + target.gain(es); + target.$gain2(es); + }, + ai:{ + order:5, + result:{ + target:function(player,target){ + if(target.hasSkillTag('noe')||target.hasSkillTag('reverseEquip')) return target.countCards('e')*2; + if(target.getEquip('baiyin')&&target.isDamaged()) return 2; + if(target.getEquip('xuanyuanjian')||target.getEquip('qiankundai')) return 1; + if(target.hasSkill('jiguanyaoshu_skill')) return 0.5; + var num=0; + var es=target.getCards('e'); + for(var i=0;i4) return -1.2*num; + else if(target.hp==4) return -1*num; + else if(target.hp==3) return -0.9*num; + else if(target.hp==2) return -0.5*num; + else{ + if(target.maxHp>2){ + if(target.hujia) return 0.5*num; + return num; + } + return 0; + } + }, + }, + useful:[2,0.5], + value:[2,0.5], + } + }, + hslingjian_shengxiuhaojiao:{ + type:'hslingjian', + fullimage:true, + vanish:true, + enable:true, + derivation:true, + derivationpack:'swd', + filterTarget:function(card,player,target){ + return !target.hasSkill('hslingjian_chaofeng'); + }, + content:function(){ + target.addTempSkill('hslingjian_chaofeng',{player:'phaseBegin'}); + }, + ai:{ + order:2, + result:{ + target:function(player,target){ + if(get.distance(player,target,'absolute')<=1) return 0; + if(target.countCards('h')<=target.hp) return -0.1; + return -1; + } + }, + useful:[2,0.5], + value:[2,0.5], + } + }, + hslingjian_yinmilichang:{ + type:'hslingjian', + fullimage:true, + vanish:true, + enable:true, + derivation:true, + derivationpack:'swd', + filterTarget:function(card,player,target){ + return player!=target&&!target.hasSkill('qianxing'); + }, + content:function(){ + target.tempHide(); + }, + ai:{ + order:2, + result:{ + target:function(player,target){ + if(get.distance(player,target,'absolute')<=1) return 0; + if(target.hp==1) return 2; + if(target.hp==2&&target.countCards('h')<=2) return 1.2; + return 1; + } + }, + useful:[2,0.5], + value:[2,0.5], + } + }, + xingjunyan:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['xingjunyan'], + ai:{ + basic:{ + equipValue:4 + }, + }, + }, + qinglonglingzhu:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['qinglonglingzhu'], + ai:{ + basic:{ + equipValue:5 + }, + }, + }, + baihupifeng:{ + fullskin:true, + type:"equip", + subtype:"equip2", + skills:['baihupifeng'], + ai:{ + equipValue:function(card,player){ + if(player.hp<=2) return 8; + return 6; + }, + basic:{ + equipValue:7 + }, + }, + }, + fengxueren:{ + fullskin:true, + type:"equip", + subtype:"equip1", + distance:{attackFrom:-1}, + skills:['fengxueren'], + ai:{ + basic:{ + equipValue:5 + }, + }, + }, + chilongya:{ + fullskin:true, + type:"equip", + subtype:"equip1", + distance:{attackFrom:-1}, + skills:['chilongya'], + ai:{ + basic:{ + equipValue:4 + }, + }, + }, + daihuofenglun:{ + type:'equip', + subtype:'equip4', + fullskin:true, + cardnature:'fire', + distance:{globalFrom:-2,globalTo:-1}, + ai:{ + basic:{ + equipValue:4 + }, + }, + }, + xiayuncailing:{ + type:'equip', + subtype:'equip3', + fullskin:true, + distance:{globalFrom:1,globalTo:2}, + }, + shentoumianju:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['shentou'], + ai:{ + basic:{ + equipValue:7, + } + } + }, + xianluhui:{ + fullskin:true, + type:'trick', + enable:true, + selectTarget:-1, + reverseOrder:true, + filterTarget:function(card,player,target){ + return target.isDamaged(); + }, + content:function(){ + target.changeHujia(); + }, + ai:{ + tag:{ + multitarget:1, + }, + basic:{ + order:7, + useful:3, + value:3, + }, + result:{ + target:function(player,target){ + if(target.hp<=1) return 1.5; + if(target.hp==2) return 1.2; + return 1; + }, + }, + } + }, + xiangyuye:{ + type:'basic', + enable:true, + fullskin:true, + filterTarget:function(card,player,target){ + return get.distance(player,target,'attack')>1; + }, + content:function(){ + "step 0" + if(!target.countCards('h',{color:'black'})){ + target.loseHp(); + event.finish(); + } + else{ + target.chooseToDiscard({color:'black'},'弃置一张黑色手牌或受流失一点体力').ai=function(card){ + return 8-get.value(card); + }; + } + "step 1" + if(!result.bool){ + target.loseHp(); + } + }, + ai:{ + basic:{ + order:9, + value:3, + useful:1, + }, + result:{ + target:-2 + }, + tag:{ + discard:1, + loseHp:1 + } + } + }, + caoyao:{ + fullskin:true, + type:'basic', + range:{global:1}, + enable:true, + filterTarget:function(card,player,target){ + return target.hp0}, + notarget:true, + mode:['identity','guozhan'], + fullskin:true, + content:function(){ + "step 0" + var list=[]; + for(var i=0;i3) return 7; + } + return -10; + }, + result:{ + player:function(player){ + for(var i=0;i3) return 2; + } + return -10; + } + }, + } + }, + tianxianjiu:{ + fullskin:true, + type:'basic', + toself:true, + enable:function(event,player){ + return !player.hasSkill('tianxianjiu'); + }, + savable:function(card,player,dying){ + return dying==player; + }, + usable:1, + selectTarget:-1, + logv:false, + modTarget:true, + filterTarget:function(card,player,target){ + return target==player; + }, + content:function(){ + "step 0" + if(target.isDying()) target.recover(); + else{ + target.addTempSkill('tianxianjiu',['phaseAfter','shaAfter']); + if(cards&&cards.length){ + card=cards[0]; + } + if(target==targets[0]&&card.clone&&(card.clone.parentNode==player.parentNode||card.clone.parentNode==ui.arena)){ + card.clone.moveDelete(target); + game.addVideo('gain2',target,get.cardsInfo([card])); + } + if(!target.node.jiu&&lib.config.jiu_effect){ + target.node.jiu=ui.create.div('.playerjiu',target.node.avatar); + target.node.jiu2=ui.create.div('.playerjiu',target.node.avatar2); + } + } + }, + ai:{ + basic:{ + useful:function(card,i){ + if(_status.event.player.hp>1){ + if(i==0) return 5; + return 1; + } + if(i==0) return 7.3; + return 3; + }, + value:function(card,player,i){ + if(player.hp>1){ + if(i==0) return 5; + return 1; + } + if(i==0) return 7.3; + return 3; + }, + }, + order:function(){ + return get.order({name:'sha'})+0.2; + }, + result:{ + target:function(player,target){ + if(target&&target.isDying()) return 2; + if(lib.config.mode=='stone'&&!player.isMin()){ + if(player.getActCount()+1>=player.actcount) return false; + } + var shas=player.getCards('h','sha'); + if(shas.length>1&&player.getCardUsable('sha')>1){ + return 0; + } + var card; + if(shas.length){ + for(var i=0;i0); + })){ + return 1; + } + } + return 0; + }, + }, + } + }, + huanpodan:{ + fullskin:true, + type:'basic', + enable:true, + logv:false, + filterTarget:function(card,player,target){ + return !target.hasSkill('huanpodan_skill'); + }, + content:function(){ + target.addSkill('huanpodan_skill'); + if(cards&&cards.length){ + card=cards[0]; + } + if(target==targets[0]&&card.clone&&(card.clone.parentNode==player.parentNode||card.clone.parentNode==ui.arena)){ + card.clone.moveDelete(target); + game.addVideo('gain2',target,get.cardsInfo([card])); + } + }, + ai:{ + basic:{ + value:8, + useful:4, + }, + order:2, + result:{ + target:function(player,target){ + return 1/Math.sqrt(1+target.hp); + }, + }, + } + }, + langeguaiyi:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['longfan'], + ai:{ + basic:{ + equipValue:7, + } + } + }, + guiyoujie:{ + fullskin:true, + type:'delay', + filterTarget:function(card,player,target){ + return (lib.filter.judge(card,player,target)&&player!=target); + }, + judge:function(card){ + if(get.color(card)=='black') return -3; + return 0; + }, + effect:function(){ + if(result.bool==false){ + player.loseHp(); + player.randomDiscard(); + } + }, + ai:{ + basic:{ + order:1, + useful:1, + value:6, + }, + result:{ + target:function(player,target){ + if(target.hasSkillTag('noturn')) return 0; + return -3; + } + }, + } + }, + yufulu:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['touzhi'], + ai:{ + basic:{ + equipValue:5 + } + } + }, + xixueguizhihuan:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['xixue'], + ai:{ + basic:{ + equipValue:5 + } + } + }, + zhufangshenshi:{ + fullskin:true, + type:'trick', + enable:true, + global:'g_zhufangshenshi', + filterTarget:function(card,player,target){ + return target!=player; + }, + content:function(){ + player.storage.zhufangshenshi=target; + player.addTempSkill('zhufangshenshi'); + }, + ai:{ + tag:{ + norepeat:1 + }, + value:4, + wuxie:function(){ + return 0; + }, + useful:[2,1], + basic:{ + order:7, + }, + result:{ + player:function(player,target){ + if(get.attitude(player,target)<0){ + if(get.distance(player,target)>1) return 1; + return 0.6; + } + return 0.3; + } + } + }, + }, + jingleishan:{ + fullskin:true, + type:'trick', + enable:true, + selectTarget:-1, + reverseOrder:true, + cardcolor:'black', + cardnature:'thunder', + filterTarget:function(card,player,target){ + return target!=player; + }, + content:function(){ + "step 0" + var next=target.chooseToRespond({name:'sha'}); + next.ai=function(card){ + if(get.damageEffect(target,player,target,'thunder')>=0) return 0; + if(player.hasSkillTag('notricksource')) return 0; + if(target.hasSkillTag('notrick')) return 0; + return 11-get.value(card); + }; + next.autochoose=lib.filter.autoRespondSha; + "step 1" + if(result.bool==false){ + target.damage('thunder'); + } + }, + ai:{ + wuxie:function(target,card,player,viewer){ + if(get.attitude(viewer,target)>0&&target.countCards('h','sha')){ + if(!target.countCards('h')||target.hp==1||Math.random()<0.7) return 0; + } + }, + basic:{ + order:9, + useful:[5,1], + value:5 + }, + result:{ + target:function(player,target){ + if(target.hasSkillTag('nothunder')) return 0; + if(target.hasUnknown(2)) return 0; + var nh=target.countCards('h'); + if(lib.config.mode=='identity'){ + if(target.isZhu&&nh<=2&&target.hp<=1) return -100; + } + if(nh==0) return -2; + if(nh==1) return -1.7 + return -1.5; + }, + }, + tag:{ + respond:1, + respondSha:1, + damage:1, + natureDamage:1, + thunderDamage:1, + multitarget:1, + multineg:1, + } + } + }, + chiyuxi:{ + fullskin:true, + type:'trick', + enable:true, + selectTarget:-1, + reverseOrder:true, + cardcolor:'red', + cardnature:'fire', + filterTarget:function(card,player,target){ + return target!=player; + }, + content:function(){ + "step 0" + var next=target.chooseToRespond({name:'shan'}); + next.ai=function(card){ + if(get.damageEffect(target,player,target,'fire')>=0) return 0; + if(player.hasSkillTag('notricksource')) return 0; + if(target.hasSkillTag('notrick')) return 0; + if(target.hasSkillTag('noShan')){ + return -1; + } + return 11-get.value(card); + }; + next.autochoose=lib.filter.autoRespondShan; + "step 1" + if(result.bool==false){ + target.damage('fire'); + } + }, + ai:{ + wuxie:function(target,card,player,viewer){ + if(get.attitude(viewer,target)>0&&target.countCards('h','shan')){ + if(!target.countCards('h')||target.hp==1||Math.random()<0.7) return 0; + } + }, + basic:{ + order:9, + useful:1, + value:5 + }, + result:{ + target:function(player,target){ + if(target.hasSkillTag('nofire')) return 0; + if(player.hasUnknown(2)) return 0; + var nh=target.countCards('h'); + if(lib.config.mode=='identity'){ + if(target.isZhu&&nh<=2&&target.hp<=1) return -100; + } + if(nh==0) return -2; + if(nh==1) return -1.7 + return -1.5; + }, + }, + tag:{ + respond:1, + respondShan:1, + damage:1, + natureDamage:1, + fireDamage:1, + multitarget:1, + multineg:1, + } + } + }, + guangshatianyi:{ + fullskin:true, + type:'equip', + subtype:'equip2', + skills:['guangshatianyi'], + ai:{ + basic:{ + equipValue:6 + } + } + }, + guilingzhitao:{ + type:'equip', + fullskin:true, + subtype:'equip5', + skills:['nigong'], + ai:{ + equipValue:function(card,player){ + if(!player.storage.nigong) return 5; + return 5+player.storage.nigong; + }, + basic:{ + equipValue:5 + } + }, + equipDelay:false, + loseDelay:false, + clearLose:true, + onLose:function(){ + player.storage.nigong=0; + player.unmarkSkill('nigong'); + }, + onEquip:function(){ + player.storage.nigong=0; + player.markSkill('nigong'); + } + }, + qipoguyu:{ + type:'equip', + subtype:'equip5', + skills:['xujin'], + equipDelay:false, + loseDelay:false, + clearLose:true, + onLose:function(){ + player.storage.xujin=0; + }, + onEquip:function(){ + player.storage.xujin=0; + } + }, + sadengjinhuan:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['sadengjinhuan'], + ai:{ + basic:{ + equipValue:5.5 + } + }, + }, + sifeizhenmian:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['yiluan'], + ai:{ + basic:{ + equipValue:6 + } + }, + }, + shuchui:{ + fullskin:true, + type:'equip', + subtype:'equip5', + skills:['shuchui'], + ai:{ + basic:{ + equipValue:5.5 + } + }, + }, + ximohu:{ + type:'equip', + subtype:'equip5', + skills:['ximohu'], + ai:{ + basic:{ + equipValue:6 + } + }, + }, + guiyanfadao:{ + fullskin:true, + type:'equip', + subtype:'equip1', + distance:{attackFrom:-1}, + ai:{ + basic:{ + equipValue:3 + } + }, + skills:['guiyanfadao'] + }, + qiankundai:{ + fullskin:true, + type:'equip', + subtype:'equip5', + onLose:function(){ + player.draw(); + }, + skills:['qiankundai'], + ai:{ + order:9.5, + equipValue:function(card,player){ + if(player.countCards('h','qiankundai')) return 6; + return 1; + }, + basic:{ + equipValue:5, + } + } + }, + }, + skill:{ + qiankundai:{ + mod:{ + maxHandcard:function(player,num){ + return num+1; + } + }, + }, + g_hufu_sha:{ + enable:['chooseToRespond','chooseToUse'], + filter:function(event,player){ + return player.countCards('h','hufu')>0; + }, + filterCard:{name:'hufu'}, + viewAs:{name:'sha'}, + prompt:'将一张玉符当杀使用或打出', + check:function(card){return 1}, + ai:{ + order:1, + useful:7.5, + value:7.5 + } + }, + g_hufu_shan:{ + enable:['chooseToRespond','chooseToUse'], + filter:function(event,player){ + return player.countCards('h','hufu')>0; + }, + filterCard:{name:'hufu'}, + viewAs:{name:'shan'}, + prompt:'将一张玉符当闪使用或打出', + check:function(){return 1}, + ai:{ + order:1, + useful:7.5, + value:7.5 + } + }, + g_hufu_jiu:{ + enable:['chooseToRespond','chooseToUse'], + filter:function(event,player){ + return player.countCards('h','hufu')>0; + }, + filterCard:{name:'hufu'}, + viewAs:{name:'jiu'}, + prompt:'将一张玉符当酒使用', + check:function(){return 1}, + }, + zhiluxiaohu:{ + trigger:{source:'damageAfter'}, + forced:true, + popup:false, + filter:function(event,player){ + return event.card&&event.card.name=='sha'&&event.getParent(3).name=='zhiluxiaohu'; + }, + content:function(){ + player.draw(); + } + }, + zhufangshenshi:{ + mod:{ + targetInRange:function(card,player,target,now){ + if(player.storage.zhufangshenshi==target) return true; + }, + }, + mark:true, + intro:{ + content:'player' + }, + onremove:true, + }, + g_zhufangshenshi:{ + trigger:{player:'useCardAfter'}, + forced:true, + popup:false, + filter:function(event,player){ + return event.card.name=='zhufangshenshi'; + }, + content:function(){ + player.draw(); + } + }, + huanpodan_skill:{ + mark:true, + intro:{ + content:'防止一次死亡,改为弃置所有牌,将体力值变为1并摸一张牌' + }, + trigger:{player:'dieBefore'}, + forced:true, + content:function(){ + 'step 0' + trigger.cancel(); + player.discard(player.getCards('he')); + player.removeSkill('huanpodan_skill'); + 'step 1' + player.changeHp(1-player.hp); + 'step 2' + player.draw(); + } + }, + dujian2:{}, + g_yuchan_swap:{ + trigger:{player:'useCardAfter'}, + silent:true, + priority:-1, + content:function(){ + var hs=player.getCards('h'); + var list=['yuchanqian','yuchankun','yuchanzhen','yuchanxun','yuchangen','yuchanli','yuchankan','yuchandui']; + for(var i=0;i0; + } + } + return false; + }, + filterCard:{type:'basic'}, + selectCard:[1,Infinity], + prompt:'弃置任意张基本牌并摸等量的牌', + check:function(card){ + return 6-get.value(card) + }, + content:function(){ + player.draw(cards.length); + }, + ai:{ + order:1, + result:{ + player:1 + }, + }, + }, + yuchanqian_equip1:{}, + yuchanqian_equip2:{}, + yuchanqian_equip3:{}, + yuchanqian_equip4:{}, + yuchanqian_equip5:{}, + yuchankun_equip1:{}, + yuchankun_equip2:{}, + yuchankun_equip3:{}, + yuchankun_equip4:{}, + yuchankun_equip5:{}, + yuchanzhen_equip1:{}, + yuchanzhen_equip2:{}, + yuchanzhen_equip3:{}, + yuchanzhen_equip4:{}, + yuchanzhen_equip5:{}, + yuchanxun_equip1:{}, + yuchanxun_equip2:{}, + yuchanxun_equip3:{}, + yuchanxun_equip4:{}, + yuchanxun_equip5:{}, + yuchankan_equip1:{}, + yuchankan_equip2:{}, + yuchankan_equip3:{}, + yuchankan_equip4:{}, + yuchankan_equip5:{}, + yuchanli_equip1:{}, + yuchanli_equip2:{}, + yuchanli_equip3:{}, + yuchanli_equip4:{}, + yuchanli_equip5:{}, + yuchangen_equip1:{}, + yuchangen_equip2:{}, + yuchangen_equip3:{}, + yuchangen_equip4:{}, + yuchangen_equip5:{}, + yuchandui_equip1:{}, + yuchandui_equip2:{}, + yuchandui_equip3:{}, + yuchandui_equip4:{}, + yuchandui_equip5:{}, + lianyaohu_skill:{ + mark:true, + intro:{ + content:function(storage,player){ + var card=player.getEquip('lianyaohu'); + if(card&&card.storage.shouna&&card.storage.shouna.length){ + return '共有'+get.cnNumber(card.storage.shouna.length)+'张牌'; + } + return '共有〇张牌'; + }, + mark:function(dialog,storage,player){ + var card=player.getEquip('lianyaohu'); + if(card&&card.storage.shouna&&card.storage.shouna.length){ + dialog.addAuto(card.storage.shouna); + } + else{ + return '共有〇张牌'; + } + }, + markcount:function(storage,player){ + var card=player.getEquip('lianyaohu'); + if(card&&card.storage.shouna) return card.storage.shouna.length; + return 0; + } + } + }, + g_shencaojie:{ + trigger:{source:'damageBegin',player:'damageBegin'}, + direct:true, + filter:function(event,player){ + if(get.type(event.card)!='trick') return false; + if(player.hasCard('shencaojie')) return true; + return false; + }, + content:function(){ + player.chooseToUse(get.prompt('shencaojie',trigger.player).replace(/发动/,'使用'),function(card,player){ + if(card.name!='shencaojie') return false; + return lib.filter.cardEnabled(card,player,'forceEnable'); + },trigger.player,-1).targetRequired=true; + } + }, + g_shenmiguo:{ + trigger:{player:'useCardAfter'}, + direct:true, + filter:function(event,player){ + if(event.parent.name=='g_shenmiguo') return false; + if(_status.currentPhase!=player) return false; + if(event.parent.parent.name!='phaseUse') return false; + if(!event.targets||!event.card) return false; + if(event.card.name=='shenmiguo') return false; + if(event.card.name=='yuchankan') return false; + if(player.hasSkill('shenmiguo2')) return false; + if(get.info(event.card).complexTarget) return false; + if(!lib.filter.cardEnabled(event.card,player,event.parent)) return false; + var type=get.type(event.card); + if(type!='basic'&&type!='trick') return false; + var card=game.createCard(event.card.name,event.card.suit,event.card.number,event.card.nature); + var targets=event._targets||event.targets; + for(var i=0;i1; + }, + content:function(){ + var value=get.value(ui.cardPile.firstChild); + var num=Math.min(20,ui.cardPile.childElementCount); + var list=[],list2=[],list3=[]; + for(var i=1;ivalue){ + list.push(ui.cardPile.childNodes[i]); + if(val>value+1&&val>=7){ + list2.push(ui.cardPile.childNodes[i]); + } + if(val>value+1&&val>=8){ + list3.push(ui.cardPile.childNodes[i]); + } + } + } + var card; + if(list3.length){ + card=list3.randomGet(); + } + else if(list2.length){ + card=list2.randomGet(); + } + else if(list.length){ + card=list.randomGet(); + } + if(card){ + ui.cardPile.insertBefore(card,ui.cardPile.firstChild); + } + } + }, + shuchui:{ + enable:'phaseUse', + usable:1, + filterTarget:function(card,player,target){ + return player.canUse('sha',target); + }, + filter:function(event,player){ + return player.countCards('h','sha')>0&&lib.filter.cardUsable({name:'sha'},player); + }, + content:function(){ + 'step 0' + player.addSkill('shuchui2'); + player.storage.shuchui2=false; + event.num=0; + 'step 1' + var card=player.getCards('h','sha')[0]; + if(card){ + player.useCard(card,target); + } + else{ + if(player.storage.shuchui2){ + player.draw(); + } + player.removeSkill('shuchui2'); + event.finish(); + } + 'step 2' + if(event.num++<2&&target.isAlive()){ + event.goto(1); + } + else{ + if(player.storage.shuchui2){ + player.draw(); + } + player.removeSkill('shuchui2'); + } + }, + ai:{ + order:function(){ + return get.order({name:'sha'})+0.11; + }, + result:{ + target:function(player,target){ + return get.effect(target,{name:'sha'},player,target); + } + } + } + }, + shuchui2:{ + trigger:{source:'damageEnd'}, + forced:true, + popup:false, + onremove:true, + filter:function(event,player){ + return event.card&&event.card.name=='sha'&&!player.storage.shuchui2; + }, + content:function(){ + player.storage.shuchui2=true; + } + }, + xuejibingbao:{ + trigger:{player:'phaseDrawBegin'}, + forced:true, + mark:true, + temp:true, + intro:{ + content:'摸牌阶段摸牌数+1' + }, + nopop:true, + content:function(){ + trigger.num++; + player.storage.xuejibingbao--; + if(player.storage.xuejibingbao<=0){ + player.removeSkill('xuejibingbao'); + delete player.storage.xuejibingbao; + } + else{ + player.updateMarks(); + } + } + }, + gouhunluo:{ + mark:true, + intro:{ + content:function(storage,player){ + if(storage==1){ + '在'+get.translation(player.storage.gouhunluo2)+'的下个准备阶段失去一点体力并弃置所有手牌' + } + return '在'+storage+'轮后'+get.translation(player.storage.gouhunluo2)+'的准备阶段失去一点体力并弃置所有手牌' + } + }, + nopop:true, + temp:true, + trigger:{global:'phaseBegin'}, + forced:true, + popup:false, + filter:function(event,player){ + return player.storage.gouhunluo2==event.player; + }, + content:function(){ + 'step 0' + player.storage.gouhunluo--; + if(player.storage.gouhunluo<=0){ + player.logSkill('gouhunluo'); + player.loseHp(); + player.removeSkill('gouhunluo'); + delete player.storage.gouhunluo; + delete player.storage.gouhunluo2; + } + else{ + player.updateMarks(); + event.finish(); + } + 'step 1' + var es=player.getCards('h'); + if(es.length){ + player.discard(es); + } + }, + group:'gouhunluo2' + }, + gouhunluo2:{ + trigger:{global:'dieBegin'}, + forced:true, + popup:false, + filter:function(event,player){ + return player.storage.gouhunluo2==event.player; + }, + content:function(){ + player.removeSkill('gouhunluo'); + delete player.storage.gouhunluo; + delete player.storage.gouhunluo2; + } + }, + jiguanyuan:{ + mark:'card', + intro:{ + content:'cards' + }, + trigger:{player:'phaseEnd'}, + forced:true, + temp:true, + popup:false, + content:function(){ + player.gain(player.storage.jiguanyuan,'gain2'); + player.removeSkill('jiguanyuan'); + delete player.storage.jiguanyuan; + } + }, + g_qinglongzhigui:{ + trigger:{player:'phaseBegin'}, + forced:true, + filter:function(event,player){ + return player.countCards('h','qinglongzhigui')>0; + }, + content:function(){ + 'step 0' + player.showCards(get.translation(player)+'发动了【青龙之圭】',player.getCards('h','qinglongzhigui')); + player.draw(2); + 'step 1' + player.chooseToDiscard('he',true); + } + }, + g_baishouzhihu:{ + trigger:{player:'discardEnd'}, + direct:true, + filter:function(event,player){ + return player.countCards('h','baishouzhihu')>0; + }, + content:function(){ + "step 0" + player.chooseTarget([1,1],get.prompt('baishouzhihu'),function(card,player,target){ + if(player==target) return false; + return target.countCards('he')>0; + }).ai=function(target){ + return -get.attitude(player,target); + }; + "step 1" + if(result.bool){ + player.showCards(get.translation(player)+'发动了【白兽之琥】',player.getCards('h','baishouzhihu')); + player.logSkill('_baishouzhihu',result.targets); + result.targets[0].randomDiscard(); + // player.discardPlayerCard(result.targets[0],'he',true); + } + else{ + event.finish(); + } + }, + }, + g_zhuquezhizhang:{ + trigger:{player:'damageEnd'}, + forced:true, + filter:function(event,player){ + return event.source&&event.source!=player&&event.source.isAlive()&&player.countCards('h','zhuquezhizhang')>0; + }, + logTarget:'source', + check:function(event,player){ + return get.damageEffect(event.source,player,player,'fire')>0; + }, + content:function(){ + 'step 0' + player.showCards(get.translation(player)+'发动了【朱雀之璋】',player.getCards('h','zhuquezhizhang')); + trigger.source.damage('fire'); + 'step 1' + game.delay(); + } + }, + g_xuanwuzhihuang:{ + trigger:{source:'damageEnd'}, + forced:true, + filter:function(event,player){ + return player.countCards('h','xuanwuzhihuang')>0&&event.num>0&&player.hp0; + }, + content:function(){ + player.showCards(get.translation(player)+'发动了【黄麟之琮】',player.getCards('h','huanglinzhicong')); + player.changeHujia(); + player.update(); + }, + }, + g_cangchizhibi:{ + trigger:{player:'phaseBegin'}, + direct:true, + filter:function(event,player){ + return player.countCards('h','cangchizhibi')>0; + }, + content:function(){ + 'step 0' + player.chooseTarget([1,3],get.prompt('cangchizhibi')).ai=function(target){ + var att=get.attitude(player,target); + if(target.isLinked()){ + return att; + } + return -att; + }; + 'step 1' + if(result.bool){ + player.showCards(get.translation(player)+'发动了【苍螭之璧】',player.getCards('h','cangchizhibi')); + player.logSkill('_cangchizhibi',result.targets); + for(var i=0;i0&&player.hujia==0 + }, + content:function(){ + 'step 0' + var next=player.chooseToDiscard('he',{color:'black'},get.prompt('huanglinzhicong_duanzao')); + next.ai=function(card){ + return 8-get.value(card); + }; + next.logSkill='huanglinzhicong_equip1' + 'step 1' + if(result.bool){ + player.changeHujia(); + } + } + }, + huanglinzhicong_equip2:{ + inherit:'huanglinzhicong_equip1' + }, + huanglinzhicong_equip3:{ + inherit:'huanglinzhicong_equip1' + }, + huanglinzhicong_equip4:{ + inherit:'huanglinzhicong_equip1' + }, + huanglinzhicong_equip5:{ + inherit:'huanglinzhicong_equip1' + }, + xuanwuzhihuang_equip1:{ + trigger:{player:'phaseEnd'}, + direct:true, + filter:function(event,player){ + return player.countCards('he',{color:'red'})>0&&player.hp0; + }, + content:function(){ + "step 0" + player.chooseCardTarget({ + position:'he', + filterTarget:function(card,player,target){ + return player!=target&&target.hp>=player.hp; + }, + filterCard:function(card,player){ + return get.color(card)=='red'&&lib.filter.cardDiscardable(card,player); + }, + ai1:function(card){ + return 9-get.value(card); + }, + ai2:function(target){ + return get.damageEffect(target,player,player,'fire'); + }, + prompt:get.prompt('zhuquezhizhang_duanzao') + }); + "step 1" + if(result.bool){ + event.target=result.targets[0]; + player.logSkill('zhuquezhizhang_equip1',event.target,'fire'); + player.discard(result.cards); + } + else{ + event.finish(); + } + "step 2" + if(event.target){ + event.target.damage('fire'); + } + }, + }, + zhuquezhizhang_equip2:{ + inherit:'zhuquezhizhang_equip1' + }, + zhuquezhizhang_equip3:{ + inherit:'zhuquezhizhang_equip1' + }, + zhuquezhizhang_equip4:{ + inherit:'zhuquezhizhang_equip1' + }, + zhuquezhizhang_equip5:{ + inherit:'zhuquezhizhang_equip1' + }, + baishouzhihu_equip1:{ + trigger:{player:'phaseEnd'}, + direct:true, + content:function(){ + "step 0" + player.chooseTarget([1,1],get.prompt('baishouzhihu_duanzao'),function(card,player,target){ + if(player==target) return false; + return target.countCards('he')>0; + }).ai=function(target){ + return -get.attitude(player,target); + }; + "step 1" + if(result.bool){ + player.logSkill('baishouzhihu_equip1',result.targets); + result.targets[0].randomDiscard(); + // player.discardPlayerCard(result.targets[0],'he',true); + } + else{ + event.finish(); + } + }, + }, + baishouzhihu_equip2:{ + inherit:'baishouzhihu_equip1' + }, + baishouzhihu_equip3:{ + inherit:'baishouzhihu_equip1' + }, + baishouzhihu_equip4:{ + inherit:'baishouzhihu_equip1' + }, + baishouzhihu_equip5:{ + inherit:'baishouzhihu_equip1' + }, + qinglongzhigui_equip1:{ + trigger:{player:'phaseEnd'}, + forced:true, + content:function(){ + player.draw(); + } + }, + qinglongzhigui_equip2:{ + inherit:'qinglongzhigui_equip1' + }, + qinglongzhigui_equip3:{ + inherit:'qinglongzhigui_equip1' + }, + qinglongzhigui_equip4:{ + inherit:'qinglongzhigui_equip1' + }, + qinglongzhigui_equip5:{ + inherit:'qinglongzhigui_equip1' + }, + kunlunjingc:{ + enable:'phaseUse', + usable:1, + filter:function(event,player){ + return player.countCards('h')>0; + }, + delay:false, + content:function(){ + 'step 0' + var cards=get.cards(3); + event.cards=cards; + player.chooseCardButton('选择一张牌',cards,true); + 'step 1' + event.card=result.links[0]; + player.chooseCard('h',true,'用一张手牌替换'+get.translation(event.card)); + 'step 2' + if(result.bool){ + event.cards[event.cards.indexOf(event.card)]=result.cards[0]; + player.lose(result.cards,ui.special); + var cardx=ui.create.card(); + cardx.classList.add('infohidden'); + cardx.classList.add('infoflip'); + player.$throw(cardx,1000,'nobroadcast'); + } + else{ + event.finish(); + } + 'step 3' + player.gain(event.card); + player.$draw(); + for(var i=event.cards.length-1;i>=0;i--){ + event.cards[i].fix(); + ui.cardPile.insertBefore(event.cards[i],ui.cardPile.firstChild); + } + game.delay(); + }, + ai:{ + order:10, + result:{ + player:1 + } + } + }, + lianhua:{ + enable:'phaseUse', + filter:function(event,player){ + var hu=player.getEquip('lianyaohu'); + if(hu&&hu.storage.shouna&&hu.storage.shouna.length>1){ + return true; + } + return false; + }, + usable:1, + delay:false, + content:function(){ + "step 0" + event.hu=player.getEquip('lianyaohu'); + player.chooseCardButton('弃置两张壶中的牌,然后从牌堆中获得一张类别不同的牌',2,event.hu.storage.shouna).ai=function(){ + return 1; + } + "step 1" + if(result.bool){ + var type=[]; + player.$throw(result.links); + game.log(player,'弃置了',result.links); + for(var i=0;i0; + }, + usable:1, + filterCard:true, + check:function(card){ + return 6-get.value(card); + }, + filterTarget:function(card,player,target){ + return target!=player&&target.countCards('h')>0; + }, + content:function(){ + 'step 0' + var card=target.getCards('h').randomGet(); + var hu=player.getEquip('lianyaohu'); + if(card&&hu){ + if(!hu.storage.shouna){ + hu.storage.shouna=[]; + } + target.$give(card,player); + target.lose(card,ui.special); + event.card=card; + event.hu=hu; + } + 'step 1' + if(!event.card.destroyed){ + event.hu.storage.shouna.push(event.card); + player.updateMarks(); + } + }, + ai:{ + order:5, + result:{ + target:function(player,target){ + return -1/Math.sqrt(1+target.countCards('h')); + } + } + } + }, + shouna_old:{ + trigger:{global:'discardAfter'}, + filter:function(event,player){ + if(player.hasSkill('shouna2')) return false; + if(_status.currentPhase==event.player) return false; + if(event.player==player) return false; + for(var i=0;i0; + }, + content:function(){ + 'step 0' + player.chooseCardTarget({ + filterTarget:true, + filterCard:function(card,player,event){ + if(get.color(card)!='red') return false; + return lib.filter.cardDiscardable(card,player,event); + }, + ai1:function(card){ + return 8-get.useful(card); + }, + ai2:function(target){ + return -get.attitude(player,target); + }, + prompt:get.prompt('donghuangzhong') + }); + 'step 1' + if(result.bool){ + player.logSkill('donghuangzhong',result.targets); + player.discard(result.cards); + event.target=result.targets[0]; + } + else{ + event.finish(); + } + 'step 2' + var target=event.target; + var list=[]; + for(var i=0;i0; + }, + content:function(){ + trigger.player.chooseToDiscard(true,'he'); + } + }, + shouhua:{ + mode:['identity','infinity'], + enable:'phaseUse', + filter:function(event,player){ + return player==game.me; + }, + usable:1, + filterTarget:function(card,player,target){ + return target!=game.zhu&&target!=game.me&&target.hp0){ + return 1+trigger.judge(button.link); + } + if(get.attitude(player,trigger.player)<0){ + return 1-trigger.judge(button.link); + } + return 0; + }; + "step 1" + if(!result.bool){ + event.finish(); + return; + } + player.logSkill('haotianta',trigger.player); + var card=result.links[0]; + event.cards.remove(card); + var judgestr=get.translation(trigger.player)+'的'+trigger.judgestr+'判定'; + event.videoId=lib.status.videoId++; + event.dialog=ui.create.dialog(judgestr); + event.dialog.classList.add('center'); + event.dialog.videoId=event.videoId; + + game.addVideo('judge1',player,[get.cardInfo(card),judgestr,event.videoId]); + for(var i=0;i0){ + trigger.result.bool=true; + trigger.player.popup('洗具'); + } + if(trigger.result.judge<0){ + trigger.result.bool=false; + trigger.player.popup('杯具'); + } + game.log(trigger.player,'的判定结果为',card); + trigger.direct=true; + trigger.position.appendChild(card); + game.delay(2); + } + else{ + event.finish(); + } + "step 2" + ui.arena.classList.remove('thrownhighlight'); + event.dialog.close(); + game.addVideo('judge2',null,event.videoId); + ui.clear(); + var card=trigger.result.card; + trigger.position.appendChild(card); + trigger.result.node.delete(); + game.delay(); + }, + ai:{ + tag:{ + rejudge:1 + } + } + }, + shennongding:{ + enable:'phaseUse', + usable:1, + filterCard:true, + selectCard:2, + check:function(card){ + if(get.tag(card,'recover')>=1) return 0; + return 7-get.value(card); + }, + filter:function(event,player){ + return player.hp=2; + }, + content:function(){ + player.recover(); + }, + ai:{ + result:{ + player:function(player){ + return get.recoverEffect(player); + } + }, + order:2.5 + } + }, + kongdongyin:{ + trigger:{player:'dieBefore'}, + forced:true, + filter:function(event,player){ + return player.maxHp>0; + }, + content:function(){ + trigger.cancel(); + player.hp=1; + player.draw(); + player.discard(player.getCards('e',{subtype:'equip5'})); + game.delay(); + } + }, + + nvwashi:{ + trigger:{global:'dying'}, + priority:6, + filter:function(event,player){ + return event.player.hp<=0&&player.hp>1; + }, + check:function(event,player){ + return get.attitude(player,event.player)>=3&&!event.player.hasSkillTag('nosave'); + }, + logTarget:'player', + content:function(){ + "step 0" + trigger.player.recover(); + "step 1" + player.loseHp(); + }, + ai:{ + threaten:1.2, + expose:0.2 + } + }, + kongxin:{ + enable:'phaseUse', + usable:1, + filterTarget:function(card,player,target){ + return target!=player&&target.countCards('h'); + }, + filter:function(event,player){ + return player.countCards('h')?true:false; + }, + content:function(){ + "step 0" + player.chooseToCompare(target); + "step 1" + if(result.bool){ + event.bool=true; + player.chooseTarget('选择一个目标视为'+get.translation(target)+'对其使用一张杀',function(card,player,target2){ + return player!=target2&&target.canUse('sha',target2); + }).ai=function(target2){ + return get.effect(target2,{name:'sha'},target,player); + } + } + else{ + target.discardPlayerCard(player); + } + "step 2" + if(event.bool&&result.bool){ + target.useCard({name:'sha'},result.targets); + } + }, + ai:{ + order:7, + result:{ + target:function(player,target){ + if(player.countCards('h')<=1) return 0; + if(get.attitude(player,target)>=0) return 0; + if(game.hasPlayer(function(current){ + return (player!=current&&target.canUse('sha',current)&& + get.effect(current,{name:'sha'},target,player)>0) + })){ + return -1; + } + return 0; + } + } + } + }, + kongxin2:{ + trigger:{player:'dying'}, + priority:10, + forced:true, + popup:false, + filter:function(event,player){ + return player==game.me; + }, + content:function(){ + player.removeSkill('kongxin2'); + game.swapPlayer(player); + player.storage.kongxin.lockOut=false; + player.storage.kongxin.out(); + if(player==game.me) game.swapPlayer(player.storage.kongxin); + if(lib.config.mode=='identity') player.storage.kongxin.setIdentity(); + delete player.storage.kongxin; + }, + }, + qinglianxindeng:{ + trigger:{player:'damageBefore'}, + forced:true, + priority:15, + filter:function(event,player){ + if(event.source&&event.source.hasSkillTag('unequip',false,{ + name:event.card?event.card.name:null, + target:player, + card:event.card + })) return false; + return get.type(event.card,'trick')=='trick'; + }, + content:function(){ + trigger.cancel(); + }, + ai:{ + notrick:true, + effect:{ + target:function(card,player,target,current){ + if(player.hasSkillTag('unequip',false,{ + name:card?card.name:null, + target:player, + card:card + })) return; + if(get.type(card)=='trick'&&get.tag(card,'damage')){ + return 'zeroplayertarget'; + } + }, + } + } + }, + yiluan:{ + enable:'phaseUse', + usable:1, + filterTarget:function(card,player,target){ + return target!=player&&target.countCards('h'); + }, + content:function(){ + 'step 0' + target.judge(); + 'step 1' + if(result.suit!='heart'){ + var hs=target.getCards('h'); + while(hs.length){ + var chosen=hs.randomRemove(); + if(target.hasUseTarget(chosen)&&!get.info(chosen).multitarget){ + var list=game.filterPlayer(function(current){ + return lib.filter.targetEnabled2(chosen,target,current); + }); + if(list.length){ + target.useCard(chosen,list.randomGet()); + event.finish(); + break; + } + } + } + } + }, + ai:{ + order:10, + result:{ + target:function(player,target){ + if(!target.countCards('h')) return 0; + return -1; + } + } + } + }, + hslingjian_xuanfengzhiren_equip1:{ + trigger:{source:'damageEnd'}, + forced:true, + filter:function(event){ + if(event._notrigger.contains(event.player)) return false; + return event.card&&event.card.name=='sha'&&event.player.countCards('he'); + }, + content:function(){ + trigger.player.discard(trigger.player.getCards('he').randomGet()); + } + }, + hslingjian_xuanfengzhiren_equip2:{ + trigger:{player:'damageEnd'}, + forced:true, + filter:function(event){ + return event.card&&event.card.name=='sha'&&event.source&&event.source.countCards('he'); + }, + content:function(){ + trigger.source.discard(trigger.source.getCards('he').randomGet()); + } + }, + hslingjian_xuanfengzhiren_equip3:{ + trigger:{player:'loseAfter'}, + forced:true, + filter:function(event,player){ + return _status.currentPhase!=player&&!player.hasSkill('hslingjian_xuanfengzhiren_equip3_dist'); + }, + content:function(){ + player.addTempSkill('hslingjian_xuanfengzhiren_equip3_dist'); + } + }, + hslingjian_xuanfengzhiren_equip3_dist:{ + mod:{ + globalTo:function(from,to,distance){ + return distance+1; + } + } + }, + hslingjian_xuanfengzhiren_equip4:{ + trigger:{player:'loseAfter'}, + forced:true, + filter:function(event,player){ + return _status.currentPhase==player&&!player.hasSkill('hslingjian_xuanfengzhiren_equip4_dist'); + }, + content:function(){ + player.addTempSkill('hslingjian_xuanfengzhiren_equip4_dist'); + } + }, + hslingjian_xuanfengzhiren_equip4_dist:{ + mod:{ + globalFrom:function(from,to,distance){ + return distance-1; + } + } + }, + hslingjian_xuanfengzhiren_equip5:{ + enable:'phaseUse', + usable:1, + filterCard:true, + position:'he', + filter:function(event,player){ + return player.countCards('he')>0; + }, + filterTarget:function(card,player,target){ + return target.countCards('he')>0; + }, + check:function(card){ + return 5-get.value(card); + }, + content:function(){ + target.discard(target.getCards('he').randomGet()); + }, + ai:{ + order:5, + result:{ + target:function(player,target){ + var dh=player.countCards('he')-target.countCards('he'); + if(dh>0){ + return -Math.sqrt(dh); + } + return 0; + } + } + } + }, + hslingjian_zhongxinghujia_equip1:{ + trigger:{source:'damageEnd'}, + check:function(event,player){ + return !player.getEquip(2); + }, + filter:function(event){ + return event.card&&event.card.name=='sha'; + }, + content:function(){ + var card=game.createCard(get.inpile('equip2').randomGet()); + player.equip(card); + player.$draw(card); + game.delay(); + } + }, + hslingjian_zhongxinghujia_equip2:{ + trigger:{player:'damageEnd'}, + check:function(event,player){ + return get.attitude(player,event.source)<0; + }, + filter:function(event){ + return event.card&&event.card.name=='sha'&&event.source&&event.source.getEquip(2); + }, + content:function(){ + player.line(trigger.source,'green'); + trigger.source.discard(trigger.source.getEquip(2)); + } + }, + hslingjian_zhongxinghujia_equip3:{ + mod:{ + globalTo:function(from,to,distance){ + if(to.getEquip(2)) return distance+1; + } + } + }, + hslingjian_zhongxinghujia_equip4:{ + mod:{ + globalFrom:function(from,to,distance){ + if(from.getEquip(2)) return distance-1; + } + } + }, + hslingjian_zhongxinghujia_equip5:{ + enable:'phaseUse', + usable:1, + filterCard:true, + position:'he', + filterTarget:true, + selectCard:2, + filter:function(event,player){ + return player.countCards('he')>=2; + }, + check:function(card){ + return 5-get.value(card); + }, + content:function(){ + var card=game.createCard(get.inpile('equip2').randomGet()); + target.equip(card); + target.$draw(card); + game.delay(); + }, + ai:{ + order:1, + result:{ + target:function(player,target){ + if(target.getEquip(2)) return 0; + return 1; + } + } + } + }, + hslingjian_jinjilengdong_equip1:{ + trigger:{source:'damageEnd'}, + check:function(event,player){ + if(event.player.hasSkillTag('noturn')) return 0; + if(event.player.isTurnedOver()){ + return get.attitude(player,event.player)>0; + } + return get.attitude(player,event.player)<=0; + }, + filter:function(event){ + if(event._notrigger.contains(event.player)) return false; + return event.card&&event.card.name=='sha'&&event.player&&event.player.isAlive(); + }, + logTarget:'player', + content:function(){ + trigger.player.draw(2); + trigger.player.turnOver(); + } + }, + hslingjian_jinjilengdong_equip2:{ + trigger:{player:'damageEnd'}, + check:function(event,player){ + if(event.player.hasSkillTag('noturn')) return 0; + if(event.player.isTurnedOver()){ + return get.attitude(player,event.source)>0; + } + return get.attitude(player,event.source)<=0; + }, + filter:function(event){ + return event.card&&event.card.name=='sha'&&event.source&&event.source.isAlive(); + }, + logTarget:'source', + content:function(){ + player.line(trigger.source,'green'); + trigger.source.draw(2); + trigger.source.turnOver(); + } + }, + hslingjian_jinjilengdong_equip3:{ + mod:{ + globalTo:function(from,to,distance){ + if(to.isTurnedOver()) return distance+2; + } + } + }, + hslingjian_jinjilengdong_equip4:{ + mod:{ + globalFrom:function(from,to,distance){ + if(from.isTurnedOver()) return distance-2; + } + } + }, + hslingjian_jinjilengdong_equip5:{ + trigger:{player:'phaseAfter'}, + direct:true, + filter:function(event,player){ + return !player.isTurnedOver(); + }, + content:function(){ + "step 0" + player.chooseTarget(get.prompt('hslingjian_jinjilengdong_duanzao'),function(card,player,target){ + return player!=target&&!target.isTurnedOver(); + }).ai=function(target){ + if(target.hasSkillTag('noturn')) return 0; + return Math.max(0,-get.attitude(player,target)-2); + }; + "step 1" + if(result.bool){ + player.logSkill('hslingjian_jinjilengdong_equip5',result.targets); + player.turnOver(); + result.targets[0].turnOver(); + game.asyncDraw([player,result.targets[0]],2); + } + }, + }, + hslingjian_yinmilichang_equip1:{ + trigger:{source:'damageEnd'}, + direct:true, + filter:function(event){ + return event.card&&event.card.name=='sha'; + }, + content:function(){ + 'step 0' + player.chooseTarget(get.prompt('hslingjian_yinmilichang_duanzao'),function(card,player,target){ + return target!=player&&!target.hasSkill('qianxing'); + }).ai=function(target){ + var att=get.attitude(player,target); + if(get.distance(player,target,'absolute')<=1) return 0; + if(target.hp==1) return 2*att; + if(target.hp==2&&target.countCards('h')<=2) return 1.2*att; + return att; + } + 'step 1' + if(result.bool){ + player.logSkill('hslingjian_yinmilichang_equip1',result.targets); + result.targets[0].tempHide(); + } + } + }, + hslingjian_yinmilichang_equip2:{ + trigger:{player:'damageEnd'}, + forced:true, + filter:function(event,player){ + return !player.hasSkill('qianxing'); + }, + content:function(){ + player.addTempSkill('qianxing'); + } + }, + hslingjian_yinmilichang_equip3:{ + mod:{ + globalTo:function(from,to,distance){ + if(to.hp==1) return distance+1; + } + } + }, + hslingjian_yinmilichang_equip4:{ + mod:{ + globalFrom:function(from,to,distance){ + if(from.hp==1) return distance-1; + } + } + }, + hslingjian_yinmilichang_equip5:{ + mod:{ + targetEnabled:function(card,player,target,now){ + if(target.countCards('h')==0){ + if(card.name=='sha'||card.name=='juedou') return false; + } + } + }, + ai:{ + noh:true, + skillTagFilter:function(player,tag){ + if(tag=='noh'){ + if(player.countCards('h')!=1) return false; + } + } + } + }, + hslingjian_xingtigaizao_equip1:{ + trigger:{source:'damageEnd'}, + forced:true, + filter:function(event){ + return event.card&&event.card.name=='sha'; + }, + content:function(){ + player.draw(); + } + }, + hslingjian_xingtigaizao_equip2:{ + trigger:{player:'damageEnd'}, + forced:true, + filter:function(event){ + return event.card&&event.card.name=='sha'; + }, + content:function(){ + player.draw(); + } + }, + hslingjian_xingtigaizao_equip3:{ + mod:{ + globalTo:function(from,to,distance){ + return distance+1; + }, + globalFrom:function(from,to,distance){ + return distance+1; + } + } + }, + hslingjian_xingtigaizao_equip4:{ + mod:{ + globalTo:function(from,to,distance){ + return distance-1; + }, + globalFrom:function(from,to,distance){ + return distance-1; + } + } + }, + hslingjian_xingtigaizao_equip5:{ + mod:{ + maxHandcard:function(player,num){ + return num-1; + } + }, + trigger:{player:'phaseDrawBegin'}, + forced:true, + content:function(){ + trigger.num++; + } + }, + hslingjian_shengxiuhaojiao_equip1:{ + trigger:{player:'shaBegin'}, + forced:true, + filter:function(event,player){ + return event.target.hasSkill('hslingjian_chaofeng'); + }, + content:function(){ + trigger.directHit=true; + } + }, + hslingjian_shengxiuhaojiao_equip2:{ + mod:{ + targetEnabled:function(card,player,target){ + if(player.hasSkill('hslingjian_chaofeng')) return false; + } + } + }, + hslingjian_shengxiuhaojiao_equip3:{ + mod:{ + globalTo:function(from,to,distance){ + if(to.hp0; + }, + position:'he', + content:function(){ + var es=target.getCards('e'); + target.gain(es); + target.$gain2(es); + }, + check:function(card){ + return 4-get.value(card); + }, + ai:{ + order:5, + result:{ + target:function(player,target){ + if(target.hasSkillTag('noe')) return target.countCards('e')*2; + return -target.countCards('e'); + } + }, + } + }, + jiguanyaoshu_skill_old:{ + enable:'phaseUse', + filter:function(event,player){ + return player.countCards('h',{type:['trick','delay']})>0; + }, + filterCard:{type:['trick','delay']}, + check:function(card){ + return 5-get.value(card); + }, + viewAs:{name:'jiguanshu'} + }, + jiguanyaoshu_skill:{ + trigger:{player:'loseEnd'}, + forced:true, + filter:function(event,player){ + if(_status.currentPhase==player) return false; + for(var i=0;i10) return 10+(value-10)/10; + if(value<9) return 8+value/10; + return value; + }; + if(typeof lib.card[name].ai.equipValue=='number'){ + lib.card[name].ai.equipValue=getValue(lib.card[name].ai.equipValue,dvalue); + } + else if(typeof lib.card[name].ai.equipValue=='function'){ + lib.card[name].ai.equipValue=function(){ + return getValue(lib.card[equipname].ai.equipValue.apply(this,arguments),dvalue); + } + } + else if(lib.card[name].ai.basic&&typeof lib.card[name].ai.basic.equipValue=='number'){ + lib.card[name].ai.basic.equipValue=getValue(lib.card[name].ai.basic.equipValue,dvalue); + } + else if(lib.card[name].ai.basic&&typeof lib.card[name].ai.basic.equipValue=='function'){ + lib.card[name].ai.basic.equipValue=function(){ + return getValue(lib.card[equipname].ai.basic.equipValue.apply(this,arguments),dvalue); + } + } + else{ + if(dvalue==3){ + lib.card[name].ai.equipValue=7; + } + else{ + lib.card[name].ai.equipValue=dvalue; + } + } + if(Array.isArray(lib.card[name].skills)){ + lib.card[name].skills=lib.card[name].skills.slice(0); + } + else{ + lib.card[name].skills=[]; + } + // lib.card[name].filterTarget=function(card,player,target){ + // return !target.isMin(); + // }; + // lib.card[name].selectTarget=1; + // lib.card[name].range={global:1}; + var str=lib.translate[cards[0].name+'_duanzao']; + var str2=get.translation(equip.name,'skill'); + lib.translate[name]=str+str2; + str2=lib.translate[equip.name+'_info']||''; + if(str2[str2.length-1]=='.'||str2[str2.length-1]=='。'){ + str2=str2.slice(0,str2.length-1); + } + for(var i=0;i'+lib.translate[lingjians[i]]+''; + for(var j=0;j'; + if(type=='jiqi') break; + } + str+=''; + } + return str; + }, + check:function(card){ + if(get.type(card)=='jiqi'){ + if(_status.event.player.needsToDiscard()){ + return 0.5; + } + return 0; + } + var num=1+get.value(card); + if(get.position(card)=='e'){ + num+=0.1; + } + return num; + }, + filterCard:function(card){ + var type=get.type(card); + if(type=='equip'){ + if(!lib.inpile.contains(card.name)) return false; + if(lib.card[card.name].nopower) return false; + if(lib.card[card.name].unique) return false; + if(card.nopower) return false; + } + if(ui.selected.cards.length){ + var type2=get.type(ui.selected.cards[0]); + if(type2=='equip'){ + return type=='hslingjian'||type=='jiqi'; + } + else{ + return type=='equip'; + } + } + else{ + return type=='equip'||type=='hslingjian'||type=='jiqi'; + } + }, + selectCard:2, + complexCard:true, + filter:function(event,player){ + if(!player.countCards('h',{type:['hslingjian','jiqi']})) return false; + var es=player.getCards('he',{type:'equip'}); + for(var i=0;i0; + if(event.target.hp==1) return att>0; + if(event.target.hasSkillTag('maixie')){ + return att<=0; + } + if(player.hasSkill('tianxianjiu')) return false; + return att<=0; + }, + filter:function(event,player){ + return !event.target.isTurnedOver(); + }, + logTarget:'target', + content:function(){ + trigger.unhurt=true; + trigger.target.turnOver(); + trigger.target.draw(); + } + }, + chilongya:{ + trigger:{source:'damageBegin'}, + forced:true, + filter:function(event){ + return event.nature=='fire'&&event.notLink(); + }, + content:function(){ + trigger.num++; + } + }, + chilongya2:{ + trigger:{source:'damageBegin'}, + filter:function(event,player){ + return (event.card&&event.card.name=='sha'); + }, + popup:false, + forced:true, + content:function(){ + if(Math.random()<0.5){ + trigger.num++; + trigger.player.addSkill('chilongfengxue'); + } + } + }, + chilongfengxue:{ + trigger:{global:'shaAfter'}, + forced:true, + popup:false, + content:function(){ + player.draw(); + player.removeSkill('chilongfengxue'); + } + }, + shentou:{ + enable:'phaseUse', + usable:1, + filterCard:true, + filter:function(event,player){ + var nh=player.countCards('h'); + if(nh==0) return false; + return game.hasPlayer(function(current){ + return current!=player&¤t.countCards('h')>nh; + }); + }, + check:function(card){ + return 8-get.value(card); + }, + filterTarget:function(card,player,target){ + if(target.countCards('h')==0) return false; + if(target==player) return false; + if(target.countCards('h')<=player.countCards('h')) return false; + return true; + }, + content:function(){ + "step 0" + player.judge(function(card){ + if(get.suit(card)=='club') return -1; + return 1; + }); + "step 1" + if(result.bool){ + var card=target.getCards('h').randomGet(); + if(card){ + player.gain(card,target); + target.$giveAuto(card,player); + } + } + }, + ai:{ + basic:{ + order:5 + }, + result:{ + player:0.3, + target:-1, + } + } + }, + old_longfan:{ + enable:'phaseUse', + usable:1, + prompt:'?', + filterTarget:true, + content:function(){ + "step 0" + if(event.isMine()){ + event.longfan=ui.create.control('〇','〇','〇','〇',function(){ + event.longfan.status--; + }); + event.longfan.status=4; + for(var i=0;i1) event.count(1); + if(event.longfan.status>2) event.count(2); + if(event.longfan.status>3) event.count(3); + },200); + event.count=function(num){ + event.longfan.childNodes[num].num=(event.longfan.childNodes[num].num+1)%10; + if(event.longfan.childNodes[num].num==2) event.longfan.childNodes[num].innerHTML='二'; + else event.longfan.childNodes[num].innerHTML=get.cnNumber(event.longfan.childNodes[num].num); + } + game.pause(); + } + else{ + event.finish(); + var x=Math.random(); + if(x<0.1) target.draw(); + else if(x<0.2) target.chooseToDiscard(true); + else if(x<0.3) target.loseHp(); + else if(x<0.4) target.recover(); + else if(x<0.6){ + if(get.attitude(player,target)>0) target.draw(); + else target.chooseToDiscard(true); + } + else if(x<0.8){ + if(get.attitude(player,target)>0) target.recover(); + else target.loseHp(); + } + } + "step 1" + var str=''; + for(var i=0;iplayer.hp?2:0; + case 'diamond':return 1; + case 'club':return 1; + case 'spade':return 0; + } + }); + "step 1" + switch(result.suit){ + case 'heart':player.recover();break; + case 'diamond':player.draw();break; + case 'club':{ + var targets=player.getEnemies(); + for(var i=0;i0; + }, + discard:false, + prepare:'give', + filterTarget:function(card,player,target){ + if(player==target) return false; + return true; + }, + content:function(){ + target.damage(); + target.gain(cards,player); + // game.delay(); + }, + check:function(card){ + return 10-get.value(card); + }, + position:'he', + ai:{ + basic:{ + order:8 + }, + result:{ + target:-1 + } + } + }, + xixue:{ + trigger:{source:'damageEnd'}, + forced:true, + filter:function(event,player){ + return event.card&&event.card.name=='sha'&&player.hp1/3) return false; + return true; + }, + content:function(){ + trigger.num--; + } + }, + nigong:{ + trigger:{player:'damageAfter'}, + group:['nigong2','nigong3'], + forced:true, + content:function(){ + player.storage.nigong+=trigger.num; + if(player.storage.nigong>4){ + player.storage.nigong=4; + } + player.updateMarks(); + }, + ai:{ + effect:function(card,player,target){ + if(get.tag(card,'damage')&&!target.hujia) return [1,0.5]; + } + }, + intro:{ + content:'已积攒#点伤害' + } + }, + nigong2:{ + enable:'phaseUse', + filter:function(event,player){ + return player.storage.nigong>1; + }, + filterTarget:function(card,player,target){ + return player!=target; + }, + prompt:function(event){ + var str='弃置所有逆攻标记,'; + if(event.player.storage.nigong%2!=0){ + str+='摸一张牌,'; + } + str+='并对一名其他角色造成'+get.cnNumber(Math.floor(event.player.storage.nigong/2))+'点伤害'; + return str; + }, + content:function(){ + if(player.storage.nigong%2!=0){ + player.draw(); + } + target.damage(Math.floor(player.storage.nigong/2)); + player.storage.nigong=0; + player.updateMarks(); + }, + ai:{ + order:10, + result:{ + target:function(player,target){ + var num=get.damageEffect(target,player,target); + if(player.storage.nigong>=4&&num>0){ + num=0; + } + return num; + } + } + } + }, + nigong3:{ + enable:'phaseUse', + filter:function(event,player){ + return player.storage.nigong==1; + }, + content:function(){ + player.draw(); + player.storage.nigong=0; + player.updateMarks(); + }, + ai:{ + order:10, + result:{ + player:1 + } + } + }, + sadengjinhuan:{ + trigger:{player:'shaMiss'}, + check:function(event,player){ + return get.attitude(player,event.target)<0; + }, + content:function(){ + "step 0" + player.judge(function(card){ + return get.color(card)=='red'?1:0; + }) + "step 1" + if(result.bool){ + trigger.target.chooseToRespond({name:'shan'},'萨登荆环:请额外打出一张闪响应杀').autochoose=lib.filter.autoRespondShan; + } + else{ + event.finish(); + } + "step 2" + if(!result.bool){ + trigger.untrigger(); + trigger.trigger('shaHit'); + trigger._result.bool=false; + } + } + }, + ximohu:{ + trigger:{player:'damageBefore'}, + forced:true, + filter:function(event){ + return event.nature=='thunder'; + }, + content:function(){ + trigger.cancel(); + player.recover(trigger.num); + }, + ai:{ + effect:function(card){ + if(get.tag(card,'thunderDamage')) return [0,2]; + } + } + }, + guiyanfadao:{ + trigger:{player:'shaHit'}, + check:function(event,player){ + var att=get.attitude(player,event.target); + if(player.hasSkill('jiu')) return att>0; + if(event.target.hasSkillTag('maixie_hp')||event.target.hasSkillTag('maixie_defend')){ + return att<=0; + } + if(player.hasSkill('tianxianjiu')) return false; + if(event.target.hujia>0) return att<0; + if(event.target.hp==1) return att>0; + return false; + }, + content:function(){ + trigger.unhurt=true; + trigger.target.loseHp(); + } + }, + guiyanfadao2:{ + trigger:{player:'useCardAfter'}, + forced:true, + popup:false, + content:function(){ + delete player.storage.zhuque_skill.nature; + } + }, + tianxianjiu:{ + trigger:{source:'damageEnd'}, + filter:function(event){ + return (event.card&&(event.card.name=='sha')); + }, + forced:true, + temp:true, + vanish:true, + onremove:function(player){ + if(player.node.jiu){ + player.node.jiu.delete(); + player.node.jiu2.delete(); + delete player.node.jiu; + delete player.node.jiu2; + } + }, + content:function(){ + player.draw(2); + player.removeSkill('tianxianjiu'); + }, + ai:{ + damageBonus:true + } + }, + }, + cardType:{ + hslingjian:0.5, + jiqi:0.4, + jiguan:0.45 + }, + help:{ + '轩辕剑':'
    • 零件、祭器牌可用于煅造装备,煅造得到强化装备,并装备给距离1以内的角色
    • '+ + '煅造装备时失去牌以及装备牌的过程不触发任何技能(如枭姬、祈禳)
    • '+ + '进行洗牌时强化装备将从弃牌堆中消失,不进入牌堆
    • '+ + '专属、特殊装备无法被强化' + }, + translate:{ + qiankundai:'乾坤袋', + qiankundai_info:'你的手牌上限+1。当你失去该装备时,你摸一张牌。', + hufu:'玉符', + hufu_bg:'符', + g_hufu_sha:'符杀', + g_hufu_shan:'符闪', + g_hufu_jiu:'符酒', + hufu_info:'你可以将一张玉符当作杀、闪或酒使用或打出', + // yihuajiemu:'移花接木', + // yihuajiemu_info:'对一名装备区内有宝物的角色使用,将其宝物牌转移至另一名角色', + liuxinghuoyu:'流星火羽', + liuxinghuoyu_info:'出牌阶段,对一名角色使用,令目标弃置2张牌,或受到一点火焰伤害', + g_yuchan_equip:'玉蝉', + yuchanqian_duanzao:'玉蝉', + yuchanqian_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanqian_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanqian_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanqian_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanqian_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankun_duanzao:'玉蝉', + yuchankun_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankun_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankun_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankun_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankun_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanzhen_duanzao:'玉蝉', + yuchanzhen_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanzhen_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanzhen_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanzhen_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanzhen_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanxun_duanzao:'玉蝉', + yuchanxun_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanxun_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanxun_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanxun_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanxun_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankan_duanzao:'玉蝉', + yuchankan_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankan_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankan_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankan_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchankan_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanli_duanzao:'玉蝉', + yuchanli_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanli_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanli_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanli_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanli_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchangen_duanzao:'玉蝉', + yuchangen_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchangen_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchangen_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchangen_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchangen_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchandui_duanzao:'玉蝉', + yuchandui_equip1_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchandui_equip2_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchandui_equip3_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchandui_equip4_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchandui_equip5_info:'出牌阶段限一次,你可以弃置任意张基本牌并摸等量的牌', + yuchanqian:'乾玉蝉', + yuchanqian_info:'在你行动时可当作杀使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', + yuchankun:'坤玉蝉', + yuchankun_info:'在你行动时可当作草药使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', + yuchanzhen:'震玉蝉', + yuchanzhen_info:'在你行动时可当作酒使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', + yuchanxun:'巽玉蝉', + yuchanxun_info:'在你行动时可当作桃使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', + yuchankan:'坎玉蝉', + yuchankan_info:'在你行动时可当作神秘果使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', + yuchanli:'离玉蝉', + yuchanli_info:'在你行动时可当作天仙酒使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', + yuchangen:'艮玉蝉', + yuchangen_info:'在你行动时可当作封印之蛋使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', + yuchandui:'兑玉蝉', + yuchandui_info:'在你行动时可当作雪肌冰鲍使用;可用于煅造装备;在你使用一张牌后,此牌会随机切换形态', + yangpijuan:'羊皮卷', + yangpijuan_info:'出牌阶段对自己使用,选择一种卡牌类别,发现一张该类别的卡牌', + // pantao:'蟠桃', + // pantao_info:'出牌阶段对自己使用,或对濒死角色使用,目标回复两点体力并获得一点护甲', + shencaojie:'神草结', + shencaojie_info:'你的锦囊牌即将造成伤害时对目标使用,令此伤害+1;你即将受到锦囊牌伤害时对自己使用,令此伤害-1', + yuruyi:'玉如意', + yuruyi_ab:'如意', + yuruyi_info:'你有更高的机率摸到好牌', + fengyinzhidan:'封印之蛋', + fengyinzhidan_info:'随机使用两张普通锦囊牌(随机指定目标)', + shuchui:'鼠槌', + shuchui_info:'出牌阶段限一次,你可以指定一名攻击范围内的角色,依次将手牌中的至多3张杀对该角色使用,若杀造成了伤害,你摸一张牌', + zhiluxiaohu:'指路小狐', + zhiluxiaohu_info:'出牌阶段对自己使用,视为对一名随机敌方角色使用一张杀,若此杀造成伤害,你摸一张牌', + xuejibingbao:'雪肌冰鲍', + xuejibingbao_info:'出牌阶段对一名角色使用,该角色摸牌阶段摸牌数+1,持续2个回合', + gouhunluo:'勾魂锣', + gouhunluo_info:'出牌阶段对一名角色使用,在3轮后你的准备阶段令该角色失去1点体力并弃置所有手牌', + jiguan:'机关', + jiqi:'祭器', + qinglongzhigui:'青龙之圭', + g_qinglongzhigui:'青龙之圭', + qinglongzhigui_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,你摸两张牌然后弃置一张牌', + qinglongzhigui_duanzao:'云屏', + qinglongzhigui_equip1_info:'结束阶段,你摸一张牌', + qinglongzhigui_equip2_info:'结束阶段,你摸一张牌', + qinglongzhigui_equip3_info:'结束阶段,你摸一张牌', + qinglongzhigui_equip4_info:'结束阶段,你摸一张牌', + qinglongzhigui_equip5_info:'结束阶段,你摸一张牌', + baishouzhihu:'白兽之琥', + g_baishouzhihu:'白兽之琥', + baishouzhihu_info:'可用于煅造装备;此牌在你手牌中时,每当你弃置卡牌,你可以弃置一名其他角色的一张随机牌', + baishouzhihu_duanzao:'风牙', + baishouzhihu_equip1_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', + baishouzhihu_equip2_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', + baishouzhihu_equip3_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', + baishouzhihu_equip4_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', + baishouzhihu_equip5_info:'结束阶段,你可以弃置一名其他角色的一张随机牌', + zhuquezhizhang:'朱雀之璋', + g_zhuquezhizhang:'朱雀之璋', + zhuquezhizhang_info:'可用于煅造装备;此牌在你手牌中时,每当你受到其他角色造成的伤害,你对伤害来源造成一点火属性伤害', + zhuquezhizhang_duanzao:'炽翎', + zhuquezhizhang_equip1_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', + zhuquezhizhang_equip2_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', + zhuquezhizhang_equip3_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', + zhuquezhizhang_equip4_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', + zhuquezhizhang_equip5_info:'结束阶段,你可以弃置一张红色牌并对一名体力值不小于你的角色造成一点火属性伤害', + xuanwuzhihuang:'玄武之璜', + g_xuanwuzhihuang:'玄武之璜', + xuanwuzhihuang_duanzao:'寒晶', + xuanwuzhihuang_info:'可用于煅造装备;此牌在你手牌中时,每当你造成伤害,你回复等量的体力', + xuanwuzhihuang_equip1_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', + xuanwuzhihuang_equip2_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', + xuanwuzhihuang_equip3_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', + xuanwuzhihuang_equip4_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', + xuanwuzhihuang_equip5_info:'结束阶段,你可以弃置一张红色牌并回复一点体力', + huanglinzhicong:'黄麟之琮', + g_huanglinzhicong:'黄麟之琮', + huanglinzhicong_duanzao:'玄甲', + huanglinzhicong_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,若你没有护甲,你获得一点护甲', + huanglinzhicong_equip1_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', + huanglinzhicong_equip2_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', + huanglinzhicong_equip3_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', + huanglinzhicong_equip4_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', + huanglinzhicong_equip5_info:'结束阶段,若你没有护甲,你可以弃置一张黑色牌并获得一点护甲', + cangchizhibi:'苍螭之璧', + g_cangchizhibi:'苍螭之璧', + cangchizhibi_duanzao:'灵枢', + cangchizhibi_info:'可用于煅造装备;此牌在你手牌中时,准备阶段,你可以选择至多3名角色横置或重置之', + cangchizhibi_equip1_info:'结束阶段,你可以横置或重置一名角色', + cangchizhibi_equip2_info:'结束阶段,你可以横置或重置一名角色', + cangchizhibi_equip3_info:'结束阶段,你可以横置或重置一名角色', + cangchizhibi_equip4_info:'结束阶段,你可以横置或重置一名角色', + cangchizhibi_equip5_info:'结束阶段,你可以横置或重置一名角色', + + guisheqi:'龟蛇旗', + guisheqi_info:'出牌阶段对一名角色使用,目标获得一点护甲', + jiguanfeng:'机关蜂', + jiguanfeng_info:'出牌阶段对一名其他角色使用,目标需打出一张闪,否则非锁定技失效直到下一回合开始,并受到一点伤害', + jiguanyuan:'机关鸢', + jiguanyuan_info:'出牌阶段对一名其他角色使用,你将此牌和一张其它牌置于一名其他角色的武将牌上,然后摸一张牌;该角色于下一结束阶段获得武将牌上的牌', + jiguantong:'机关火筒', + jiguantong_ab:'火筒', + jiguantong_info:'出牌阶段对所有其他角色使用,目标弃置一张手牌,或受到一点火焰伤害;若没有人选择受到伤害,使用者摸一张牌', + jiutiansuanchi:'九天算尺', + jiutiansuanchi_info:'每当你使用杀造成伤害,你可以弃置一张牌并展示受伤害角色的一张手牌,若此牌与你弃置的牌花色或点数相同,此杀的伤害+2', + shenmiguo:'神秘果', + shenmiguo_info:'出牌阶段内,当你使用一张基本牌或普通锦囊牌后使用,令此牌再结算一次。每阶段限用一次', + qinglianxindeng:'青莲心灯', + qinglianxindeng_info:'你防止锦囊牌造成的伤害', + hslingjian_xuanfengzhiren_duanzao:'风刃', + hslingjian_xuanfengzhiren_duanzao2:'风', + hslingjian_xuanfengzhiren_equip1_info:'每当你用杀造成一次伤害,受伤害角色随机弃置一张牌', + hslingjian_xuanfengzhiren_equip2_info:'每当你受到杀造成的伤害,伤害来源随机弃置一张牌', + hslingjian_xuanfengzhiren_equip3_info:'当你于回合外失去牌后,你本回合的防御距离+1', + hslingjian_xuanfengzhiren_equip4_info:'当你于回合内失去牌后,你本回合的进攻距离+1', + hslingjian_xuanfengzhiren_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后随机弃置一名其他角色的一张牌', + hslingjian_zhongxinghujia_duanzao:'重甲', + hslingjian_zhongxinghujia_duanzao2:'护', + hslingjian_zhongxinghujia_equip1_info:'每当你用杀造成一次伤害,你可以随机装备一件防具牌', + hslingjian_zhongxinghujia_equip2_info:'每当你受到杀造成的伤害,你可以弃置伤害来源的防具牌', + hslingjian_zhongxinghujia_equip3_info:'当你的装备区内有防具牌时,你的防御距离+1', + hslingjian_zhongxinghujia_equip4_info:'当你的装备区内有防具牌时,你的进攻距离+1', + hslingjian_zhongxinghujia_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色随机装备一件防具', + hslingjian_jinjilengdong_duanzao:'冰冻', + hslingjian_jinjilengdong_duanzao2:'冰', + hslingjian_jinjilengdong_equip1_info:'每当你用杀造成一次伤害,你可以令目标摸两张牌并翻面', + hslingjian_jinjilengdong_equip2_info:'每当你受到杀造成的伤害,你可以令伤害来源摸两张牌并翻面', + hslingjian_jinjilengdong_equip3_info:'你的武将牌背面朝上时防御距离+2', + hslingjian_jinjilengdong_equip4_info:'你的武将牌背面朝上时进攻距离+2', + hslingjian_jinjilengdong_equip5_info:'回合结束后,若你的武将牌正面朝上,你可以与一名武将牌正面朝上的其他角色同时翻面,然后各摸两张牌', + hslingjian_yinmilichang_duanzao:'隐力', + hslingjian_yinmilichang_duanzao2:'隐', + hslingjian_yinmilichang_equip1_info:'每当你用杀造成一次伤害,你可以令一名其他角色获得潜行直到其下一回合开始', + hslingjian_yinmilichang_equip2_info:'每当你受到一次伤害,你本回合内获得潜行', + hslingjian_yinmilichang_equip3_info:'当你的体力值为1时,你的防御距离+1', + hslingjian_yinmilichang_equip4_info:'当你的体力值为1时,你的进攻距离+1', + hslingjian_yinmilichang_equip5_info:'当你没有手牌时,你不能成为杀或决斗的目标', + hslingjian_xingtigaizao_duanzao:'移形', + hslingjian_xingtigaizao_duanzao2:'形', + hslingjian_xingtigaizao_equip1_info:'每当你用杀造成一次伤害,你摸一张牌', + hslingjian_xingtigaizao_equip2_info:'每当你受到杀造成的伤害,你摸一张牌', + hslingjian_xingtigaizao_equip3_info:'你的防御距离+1,进攻距离-1', + hslingjian_xingtigaizao_equip4_info:'你的防御距离-1,进攻距离+1', + hslingjian_xingtigaizao_equip5_info:'你于摸牌阶段额外摸一张牌;你的手牌上限-1', + hslingjian_shengxiuhaojiao_duanzao:'号角', + hslingjian_shengxiuhaojiao_duanzao2:'角', + hslingjian_shengxiuhaojiao_equip1_info:'有嘲讽的角色不能闪避你的杀', + hslingjian_shengxiuhaojiao_equip2_info:'有嘲讽的角色不能对你使用杀', + hslingjian_shengxiuhaojiao_equip3_info:'若你的手牌数大于你的体力值,你的防御距离+1', + hslingjian_shengxiuhaojiao_equip4_info:'若你的手牌数大于你的体力值,你的进攻距离+1', + hslingjian_shengxiuhaojiao_equip5_info:'出牌阶段限一次,你可以弃置两张牌,然后令一名角色获得或解除嘲讽', + hslingjian_shijianhuisu_duanzao:'回溯', + hslingjian_shijianhuisu_duanzao2:'溯', + hslingjian_shijianhuisu_equip1_info:'当你装备一张防具牌时,你摸一张牌', + hslingjian_shijianhuisu_equip2_info:'当你装备一张武器牌时,你摸一张牌', + hslingjian_shijianhuisu_equip3_info:'当你的装备区内没有其他牌时,你的防御距离+1', + hslingjian_shijianhuisu_equip4_info:'当你的装备区内没有其他牌时,你的进攻距离+1', + hslingjian_shijianhuisu_equip5_info:'出牌阶段限一次,你可以弃置一张牌,然后令一名其他角色将其装备区内的牌收回手牌', + _lingjianduanzao:'煅造', + _lingjianduanzao_info:'出牌阶段,你可以将一张装备牌和一张可煅造的牌合成为一件强化装备,并装备给距离1以内的一名角色', + jiguanshu:'机关鼠', + jiguanshu_info:'出牌阶段对自己使用,用随机祭器强化装备区内的一张随机装备,然后用随机零件强化其余的装备', + lingjiandai:'零件袋', + lingjiandai_info:'出牌阶段对自己使用,获得3张随机零件', + mujiaren:'木甲人', + mujiaren_info:'出牌阶段限用一次,将你手牌中的非基本牌(含此张)替换为随机的机关牌', + jiguanyaoshu:'机关要术', + jiguanyaoshu_skill:'巧匠', + jiguanyaoshu_skill_info:'每当你于回合外失去装备区内的牌,你获得一个随机零件', + jiguanyaoshu_info:'出牌阶段对距离1以内的一名角色使用,目标随机装备一件装备牌并获得技能巧匠(每当你于回合外失去装备区内的牌,你获得一个随机零件)', + hslingjian:'零件', + hslingjian_xuanfengzhiren:'旋风之刃', + hslingjian_xuanfengzhiren_info:'可用于煅造装备;随机弃置一名角色的一张牌', + hslingjian_zhongxinghujia:'重型护甲', + hslingjian_zhongxinghujia_info:'可用于煅造装备;令一名角色装备一件随机防具,然后随机弃置其一张手牌', + hslingjian_jinjilengdong:'紧急冷冻', + hslingjian_jinjilengdong_bg:'冻', + hslingjian_jinjilengdong_info:'可用于煅造装备;令一名武将牌正面朝上的其他角色获得两点护甲并翻面,该角色不能使用卡牌,也不能成为卡牌的目标直到武将牌翻回正面', + hslingjian_yinmilichang:'隐秘力场', + hslingjian_yinmilichang_info:'可用于煅造装备;令一名其他角色获得技能潜行,直到其下一回合开始', + hslingjian_xingtigaizao:'型体改造', + hslingjian_xingtigaizao_info:'可用于煅造装备;摸一张牌,本回合手牌上限-1', + hslingjian_shengxiuhaojiao:'生锈号角', + hslingjian_shengxiuhaojiao_info:'可用于煅造装备;令一名角色获得技能嘲讽,直到其下一回合开始', + hslingjian_shijianhuisu:'时间回溯', + hslingjian_shijianhuisu_info:'可用于煅造装备;令一名其他角色将其装备牌收回手牌', + hslingjian_chaofeng:'嘲讽', + hslingjian_chaofeng_info:'锁定技,与你相邻的角色只能选择你为出杀目标', + qinglonglingzhu:'青龙灵珠', + qinglonglingzhu_ab:'灵珠', + qinglonglingzhu_info:'每当你造成一次属性伤害,你可以获得对方的一张牌', + xingjunyan:'星君眼', + xingjunyan_info:'你的杀造成的伤害+1;杀对你造成的伤害+1', + guiyanfadao:'鬼眼法刀', + guiyanfadao_bg:'眼', + guiyanfadao_info:'每当你使用杀命中目标,你可以防止伤害,改为令目标失去一点体力', + tianxianjiu:'天仙酒', + tianxianjiu_bg:'仙', + tianxianjiu_info:'出牌阶段对自己使用,你使用的下一张杀造成伤害后可以摸两张牌;濒死阶段,对自己使用,回复1点体力', + // xiangyuye:'翔羽叶', + // xiangyuye_info:'出牌阶段,对一名攻击范围外的角色使用,令其弃置一张黑色手牌或流失一点体力', + // huanpodan:'还魄丹', + // huanpodan_bg:'魄', + // huanpodan_info:'出牌阶段对一名角色使用,在目标即将死亡时防止其死亡,改为令其弃置所有牌,将体力值回复至1并摸一张牌', + // huanpodan_skill:'还魄丹', + // huanpodan_skill_bg:'丹', + // huanpodan_skill_info:'防止一次死亡,改为弃置所有牌,将体力值变为1并摸一张牌', + ximohu:'吸魔壶', + ximohu_bg:'魔', + // ximohu_info:'锁定技,你将即将受到的雷属性伤害转化为你的体力值', + sadengjinhuan:'萨登荆环', + sadengjinhuan_ab:'荆环', + sadengjinhuan_info:'当你的杀被闪避后,可以进行一次判定,若结果为红色目标需再打出一张闪', + sadengjinhuan_bg:'荆', + qipoguyu:'奇魄古玉', + xujin:'蓄劲', + xujin2:'蓄劲', + // qipoguyu_info:'装备后获得蓄劲技能', + xujin_info:'回合开始前,若你的蓄劲标记数小于当前的体力值,你可以跳过此回合,并获得一枚蓄劲标记。锁定技,每当你即将造成伤害,你令此伤害+X,然后弃置一枚蓄劲标记,X为你拥有的蓄劲标记数', + guilingzhitao:'归灵指套', + nigong:'逆攻', + nigong2:'逆攻', + nigong3:'逆攻', + nigong4:'逆攻', + guilingzhitao_info:'每当你受到一点伤害,你获得一个逆攻标记,标记数不能超过4。出牌阶段,你可以弃置所有逆攻标记并令对一名其他角色造成标记数一半的伤害(若非整数则向下取整并摸一张牌)', + nigong_info:'每当你受到一点伤害,你获得一个逆攻标记,标记数不能超过4。出牌阶段,你可以弃置所有逆攻标记并令对一名其他角色造成标记数一半的伤害(若非整数则向下取整并摸一张牌)', + baihupifeng:'白狐披风', + baihupifeng_bg:'狐', + baihupifeng_info:'结束阶段,若你的体力值是全场最小的之一,你可以回复一点体力', + fengxueren:'封雪刃', + fengxueren_bg:'雪', + fengxueren_info:'你使用杀击中目标后,若目标武将牌正面朝上,你可以防止伤害,然后令目标摸一张牌并翻面', + chilongya:'赤龙牙', + chilongya_info:'锁定技,你的火属性伤害+1', + daihuofenglun:'带火风轮', + daihuofenglun_ab:'风轮', + daihuofenglun_bg:'轮', + daihuofenglun_info:'你的进攻距离+2,你的防御距离-1', + xiayuncailing:'霞云彩绫', + xiayuncailing_ab:'彩绫', + xiayuncailing_bg:'云', + xiayuncailing_info:'你的进攻距离-1,你的防御距离+2', + shentoumianju:'神偷面具', + shentoumianju_bg:'偷', + shentoumianju_info:'出牌阶段,你可以指定一名手牌比你多的角色,弃置一张手牌并进行一次判定,若结果不为梅花,你获得其一张手牌', + shentou:'神偷', + shentou_info:'出牌阶段,你可以进行一次判定,若结果不为梅花,你获得任意一名角色的一张手牌', + xianluhui:'仙炉灰', + xianluhui_info:'令所有已受伤角色获得一点护甲', + caoyao:'草药', + caoyao_info:'出牌阶段,对距离为1以内的角色使用,回复一点体力。', + langeguaiyi:'蓝格怪衣', + langeguaiyi_bg:'格', + langeguaiyi_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复一点体力;方片:你摸一张牌;梅花:你令一名随机敌方角色随机弃置一张牌;黑桃:无事发生', + longfan:'龙帆', + longfan_info:'出牌阶段限一次,你可以进行一次判定,然后按花色执行以下效果。红桃:你回复一点体力;方片:你摸一张牌;梅花:你令一名随机敌方角色随机弃置一张牌;黑桃:无事发生', + // longfan_info:'0000:翻面;1111:弃手牌;2222:弃装备牌;3333:受伤害;4444:流失体力;5555:连环;6666:摸牌;7777:回复体力;8888:弃置判定牌;9999:置衡', + guiyoujie:'鬼幽结', + guiyoujie_bg:'结', + guiyoujie_info:'出牌阶段,对一名其他角色使用。若判定结果为黑色,其失去一点体力并随机弃置一张牌', + yufulu:'御夫录', + yufulu_info:'出牌阶段,可弃置一张武器牌令一名角色受到一点伤害,然后该角色获得此武器牌', + touzhi:'投掷', + touzhi_info:'出牌阶段,可弃置一张武器牌令一名角色受到一点伤害,然后该角色获得此武器牌', + xixueguizhihuan:'吸血鬼指环', + xixueguizhihuan_ab:'血环', + xixueguizhihuan_info:'锁定技,每当你使用杀造成一点伤害,你回复一点体力', + xixue:'吸血', + xixue_info:'锁定技,每当你使用杀造成一点伤害,你回复一点体力', + zhufangshenshi:'祠符', + zhufangshenshi_info:'出牌阶段,对一名其他角色使用,本回合内对其使用卡牌无视距离,结算后摸一张牌', + jingleishan:'惊雷闪', + jingleishan_info:'出牌阶段,对所有其他角色使用。每名目标角色需打出一张【杀】,否则受到1点雷电伤害。', + chiyuxi:'炽羽袭', + chiyuxi_info:'出牌阶段,对所有其他角色使用。每名目标角色需打出一张【闪】,否则受到1点火焰伤害。', + guangshatianyi:'光纱天衣', + guangshatianyi_bg:'纱', + guangshatianyi_info:'锁定技,每当你即将受到伤害,有三分之一的概率令伤害减一', + sifeizhenmian:'四非真面', + sifeizhenmian_info:'出牌阶段限一次,你可以令一名有手牌的其他角色进行一次判定,若结果为不为红桃且目标有可用的手牌,目标随机使用一张手牌(随机指定目标)', + yiluan:'意乱', + yiluan_info:'出牌阶段限一次,你可以令一名有手牌的其他角色进行一次判定,若结果为不为红桃且目标有可用的手牌,目标随机使用一张手牌(随机指定目标)', + donghuangzhong:'东皇钟', + xuanyuanjian:'轩辕剑', + xuanyuanjian2:'轩辕剑', + pangufu:'盘古斧', + lianyaohu:'炼妖壶', + lianyaohu_skill:'炼妖壶', + lianyaohu_skill_bg:'壶', + haotianta:'昊天塔', + fuxiqin:'伏羲琴', + shennongding:'神农鼎', + kongdongyin:'崆峒印', + kunlunjingc:'昆仑镜', + nvwashi:'女娲石', + donghuangzhong_bg:'钟', + lianyaohu_bg:'壶', + haotianta_bg:'塔', + fuxiqin_bg:'琴', + shennongding_bg:'鼎', + kongdongyin_bg:'印', + kunlunjingc_bg:'镜', + nvwashi_bg:'石', + kongxin:'控心', + lianhua:'炼化', + // dujian:'毒箭', + // dujian_info:'出牌阶段,对一名有手牌或装备牌的角色使用,令其展示一张手牌,若与你选择的手牌颜色相同,其流失一点体力', + lianhua_info:'出牌阶段限一次,你可以弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌', + shouna:'收纳', + shouna_info:'出牌阶段限一次,你可以弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶', + donghuangzhong_info:'结束阶段,你可以弃置一张红色手牌,并选择一名角色将一张随机单体延时锦囊置入其判定区', + xuanyuanjian_info:'装备时获得一点护甲;每当你即将造成一次伤害,你令此伤害加一并变为雷属性,并在伤害结算后流失一点体力。任何时候,若你体力值不超过2,则立即失去轩辕剑', + pangufu_info:'锁定技,每当你造成一次伤害,受伤角色须弃置一张牌', + haotianta_info:'锁定技,任意一名角色进行判定前,你观看牌堆顶的2张牌,并选择一张作为判定结果,此结果不可被更改,也不能触发技能', + shennongding_info:'出牌阶段,你可以弃置两张手牌,然后回复一点体力。每阶段限一次', + kongdongyin_info:'令你抵挡一次死亡,将体力回复至1,并摸一张牌,发动后进入弃牌堆', + kunlunjingc_info:'出牌阶段限一次,你可以观看牌堆顶的三张牌,然后用一张手牌替换其中的一张', + nvwashi_info:'当一名角色濒死时,若你的体力值大于1,你可以失去一点体力并令其回复一点体力', + kongxin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌', + fuxiqin_info:'出牌阶段限一次,你可以与一名其他角色进行拼点,若你赢,你可以指定另一名角色视为对方对该角色使用一张杀,否则对方可弃置你一张牌', + lianyaohu_info:'出牌阶段各限一次,你可以选择一项:1.弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶;2.弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌', + }, + list:[ + ['heart',1,'hufu'], + ['spade',1,'hufu'], + ['club',1,'qiankundai'], + // ['heart',3,'yihuajiemu'], + // ['diamond',1,'yihuajiemu'], + // ['diamond',7,'yihuajiemu'], + + ['diamond',3,'liuxinghuoyu','fire'], + ['heart',6,'liuxinghuoyu','fire'], + ['heart',9,'liuxinghuoyu','fire'], + + ['spade',1,'baihupifeng'], + ['club',1,'fengxueren'], + ['diamond',1,'langeguaiyi'], + ['heart',1,'daihuofenglun','fire'], + + ['diamond',2,'xiayuncailing'], + // ['heart',2,'pantao'], + // ['heart',2,'huanpodan'], + + ['club',3,'caoyao'], + ['diamond',3,'chilongya','fire'], + ['spade',3,'guiyoujie'], + + ['club',4,'caoyao'], + ['spade',4,'zhufangshenshi'], + // ['spade',4,'huanpodan'], + + ['club',5,'caoyao'], + ['spade',5,'xixueguizhihuan'], + // ['diamond',5,'huanpodan'], + + ['club',6,'shentoumianju'], + ['spade',6,'yufulu'], + + ['diamond',7,'chiyuxi','fire'], + ['club',7,'jingleishan','thunder'], + ['spade',7,'guilingzhitao'], + + ['spade',8,'zhufangshenshi'], + // ['club',8,'xiangyuye','poison'], + + ['spade',9,'yangpijuan'], + ['club',9,'guiyoujie'], + // ['diamond',9,'xiangyuye','poison'], + + // ['diamond',9,'tianxianjiu'], + ['heart',9,'tianxianjiu'], + ['diamond',2,'tianxianjiu'], + + ['spade',2,'qinglonglingzhu'], + ['spade',7,'xingjunyan'], + + //['spade',10,'qipoguyu'], + //['diamond',10,'xiangyuye','poison'], + ['club',7,'yangpijuan'], + + // ['spade',11,'xiangyuye','poison'], + + ['spade',12,'guiyanfadao','poison'], + + ['spade',13,'xianluhui'], + ['diamond',3,'guangshatianyi'], + ['club',13,'sadengjinhuan'], + + ['club',2,'lingjiandai'], + // ['spade',3,'lingjiandai'], + // ['heart',5,'lingjiandai'], + ['diamond',8,'lingjiandai'], + + ['club',2,'jiguanshu'], + // ['spade',2,'jiguanshu'], + // ['heart',2,'jiguanshu'], + ['diamond',2,'jiguanshu'], + + ['club',3,'jiguanyaoshu'], + ['spade',3,'jiguanyaoshu'], + // ['heart',3,'jiguanyaoshu'], + // ['diamond',3,'jiguanyaoshu'], + + ['spade',4,'sifeizhenmian'], + ['heart',13,'qinglianxindeng'], + ['club',3,'jiguanyuan'], + ['diamond',2,'jiguanyuan'], + ['diamond',4,'jiguantong'], + ['club',7,'jiguantong'], + // ['spade',1,'shenmiguo'], + ['spade',2,'shenmiguo'], + ['heart',1,'shenmiguo'], + ['club',3,'jiguanfeng'], + ['spade',4,'jiguanfeng'], + ['spade',9,'guisheqi'], + ['club',7,'guisheqi'], + + ['diamond',13,'donghuangzhong'], + ['diamond',13,'fuxiqin'], + ['spade',13,'kunlunjingc'], + ['spade',13,'xuanyuanjian'], + ['spade',13,'pangufu'], + ['club',13,'lianyaohu'], + ['diamond',13,'haotianta'], + ['club',13,'shennongding'], + ['heart',13,'nvwashi'], + ['heart',13,'kongdongyin'], + + ['heart',6,'qinglongzhigui'], + ['diamond',6,'zhuquezhizhang'], + ['spade',6,'baishouzhihu'], + ['club',6,'xuanwuzhihuang'], + ['spade',7,'cangchizhibi'], + ['heart',5,'huanglinzhicong'], + + ['spade',9,'gouhunluo'], + ['club',7,'gouhunluo'], + + ['spade',1,'xuejibingbao'], + ['club',1,'xuejibingbao'], + + ['heart',3,'zhiluxiaohu'], + ['diamond',4,'zhiluxiaohu'], + + ['club',7,'mujiaren'], + ['heart',6,'mujiaren'], + ['diamond',11,'mujiaren'], + + ['club',6,'shuchui'], + + // ['club',1,'fengyinzhidan'], + // ['diamond',1,'fengyinzhidan'], + // ['heart',1,'fengyinzhidan'], + ['spade',1,'fengyinzhidan'], + + ['heart',9,'yuruyi'], + + ['club',4,'shencaojie'], + ['diamond',4,'shencaojie'], + ['spade',4,'shencaojie'], + + ['spade',1,'yuchanqian'], + ['club',2,'yuchankun'], + ['diamond',3,'yuchanzhen'], + ['heart',4,'yuchanxun'], + ['spade',5,'yuchankan'], + ['club',6,'yuchanli'], + ['diamond',7,'yuchangen'], + ['heart',8,'yuchandui'], + + // ['spade',3,'dujian','poison'], + // ['club',11,'dujian','poison'], + // ['club',12,'dujian','poison'], + ], + }; +}); diff --git a/character/diy.js b/character/diy.js index 424041afb..424bc6db9 100755 --- a/character/diy.js +++ b/character/diy.js @@ -2020,17 +2020,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, selectTarget:function(){ if(!ui.selected.cards.length) return [1,1]; - return [0,1]; + return [0,0]; }, selectCard:function(){ + if(ui.selected.targets.length) return [0,0]; if(!ui.selected.cards.length) return [0,2]; return [2,2]; }, prompt:get.prompt2('yuzuru_wuxin'), + complexCard:true, + complexTarget:true, ai1:function(card){ var player=_status.event.player; if(player.hp>3) return 0; - return player.getDamagedHp()*2-get.value(card); + return (player.getDamagedHp()*2)-get.value(card); }, ai2:function(target){ if(player.hp<4||target.hasSkillTag('nogain')) return 0; @@ -2076,7 +2079,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ forced:true, content:function(){ 'step 0' - if(!player._yuzuru_sss) player.loseHp(); + if(!player.storage._yuzuru_sss) player.loseHp(); player.draw(2); 'step 1' if(player.countCards('he')<2) event.finish(); @@ -2126,7 +2129,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, complexSelect:true, check:function(card){ - if(!_status.event.player._yuzuru_sss&&get.color(card)=='black') return -1; + if(!_status.event.player.storage._yuzuru_sss&&get.color(card)=='black') return -1; return 9-get.value(card); }, line:{color:[194,117,92]}, @@ -2134,7 +2137,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 0" target.recover(); "step 1" - if(target==targets[targets.length-1]&&!player._yuzuru_sss){ + if(target==targets[targets.length-1]&&!player.storage._yuzuru_sss){ for(var i=0;i0){ player.chooseCardTarget({ selectCard:[1,Infinity], @@ -3906,23 +3909,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ 'step 0' var list=[]; - if(player._ichiban_no_takaramono) list.push('cancel2'); + if(player.storage._ichiban_no_takaramono) list.push('cancel2'); player.chooseControl.apply(player,list).set('choiceList',[ '令此阶段内的所有红色牌视为【杀】', '令此阶段内的所有【杀】视为【决斗】' - ]).set('prompt',player._ichiban_no_takaramono?get.prompt('yui_lieyin'):'烈音:请选择一项').set('ai',function(){ + ]).set('prompt',player.storage._ichiban_no_takaramono?get.prompt('yui_lieyin'):'烈音:请选择一项').set('ai',function(){ var player=_status.event.player; var shas=player.countCards('h','sha') if(shas>0){ if(game.hasPlayer(function(current){ return get.attitude(player,current)<0&&player.canUse('juedou',current)&&!current.hasSha()&&get.effect(current,{name:'juedou'},player,player)>0; })) return 1; - if(player._ichiban_no_takaramono) return 'cancel2'; + if(player.storage._ichiban_no_takaramono) return 'cancel2'; } if(player.countCards('h',function(card){ return get.color(card)=='red'&&card.name!='sha'&&player.hasValueTarget(card); })==0) return 0; - if(player._ichiban_no_takaramono) return 'cancel2'; + if(player.storage._ichiban_no_takaramono) return 'cancel2'; return 1; }); 'step 1' @@ -3967,7 +3970,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ player.awakenSkill('yui_takaramono'); player.addSkill('yui_yinhang'); - player._ichiban_no_takaramono=true; + player.storage._ichiban_no_takaramono=true; player.gainMaxHp(); player.recover(); }, @@ -10178,6 +10181,36 @@ game.import('character',function(lib,game,ui,get,ai,_status){ threaten:1.3 }, }, + dynamicTranslate:{ + nsjiquan:function(player){ + if(player.storage.nsfuwei) return '锁定技,与你距离1以内的其他角色造成或受到伤害后,你将其区域内的一张牌置于你的武将牌上(称为“威”)。你使用【杀】的次数上限+X(X为“威”数)。'; + return '与你距离1以内的其他角色造成或受到伤害后,你可以将其区域内的一张牌置于你的武将牌上(称为“威”)。你使用【杀】的次数上限+X(X为“威”数)。'; + }, + abyusa_jueqing:function(player){ + if(player.hasSkill('abyusa_jueqing_1st')) return '锁定技,你即将造成的伤害均视为失去体力。'; + return '当你对其他角色造成伤害时,你可以防止此伤害。若如此做,你令其失去2X点体力,修改〖绝情〗并对自己造成2X点伤害。'; + }, + tomoya_shangxian:function(player){ + if(player.storage.tomoya_shangxian) return '锁定技,你计算与其他角色的距离时始终从顺时针方向计算。出牌阶段开始时,你可摸一张牌,并改变此方向。'; + return '锁定技,你计算与其他角色的距离时始终从逆时针方向计算。出牌阶段开始时,你可摸一张牌,并改变此方向。'; + }, + yui_lieyin:function(player){ + if(player.storage._ichiban_no_takaramono) return '锁定技,出牌阶段开始时,你可选择一项:①本阶段内的红色牌均视为【杀】;②本阶段内的【杀】均视为【决斗】。'; + return '锁定技,出牌阶段开始时,你选择一项:①本阶段内的红色牌均视为【杀】;②本阶段内的【杀】均视为【决斗】。'; + }, + yuzuru_kunfen:function(player){ + if(player.storage._yuzuru_sss) return '锁定技,结束阶段,你摸两张牌。然后你可以将两张牌交给一名其他角色。'; + return '锁定技,结束阶段,你失去1点体力并摸两张牌。然后你可以将两张牌交给一名其他角色。'; + }, + yuzuru_quji:function(player){ + if(player.storage._yuzuru_sss) return '出牌阶段限一次,你可以弃置X张牌并选择至多等量已受伤的其他角色,这些角色各回复1点体力。(X为你已损失的体力值)'; + return '出牌阶段限一次,你可以弃置X张牌并选择至多等量已受伤的其他角色,这些角色各回复1点体力。若你以此法弃置了黑色牌,则你失去1点体力。(X为你已损失的体力值)'; + }, + kamome_jieban:function(player){ + if(player.storage.kamome_jieban) return '转换技。每回合限一次,当你受到或造成伤害后,阴:你可将两张牌交给一名其他角色,然后其交给你一张牌。阳:你可将一张牌交给一名其他角色,然后其交给你两张牌。'; + return '转换技。每回合限一次,当你受到或造成伤害后,阴:你可将两张牌交给一名其他角色,然后其交给你一张牌。阳:你可将一张牌交给一名其他角色,然后其交给你两张牌。'; + }, + }, translate:{ diy_liufu:'刘馥', diy_xizhenxihong:'习珍习宏', diff --git a/character/extra.js b/character/extra.js index 24deb19a4..0bbab8eb1 100755 --- a/character/extra.js +++ b/character/extra.js @@ -983,7 +983,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, lianpo:{ - audio:true, + audio:2, trigger:{global:'phaseAfter'}, frequent:true, filter:function(event,player){ @@ -1098,7 +1098,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, renjie:{ - audio:true, + audio:'renjie2', trigger:{player:'damageEnd'}, forced:true, unique:true, @@ -1146,7 +1146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, renjie2:{ - audio:true, + audio:2, trigger:{player:'loseAfter'}, forced:true, filter:function(event,player){ @@ -1165,7 +1165,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'phaseZhunbeiBegin'}, forced:true, unique:true, - audio:true, + audio:2, filter:function(event,player){ return player.countMark('renjie')>=4; }, @@ -1180,7 +1180,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi','jilue_jizhi_clear'] }, jilue_guicai:{ - audio:true, + audio:1, trigger:{global:'judge'}, direct:true, filter:function(event,player){ @@ -1237,7 +1237,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, jilue_fangzhu:{ - audio:true, + audio:1, trigger:{player:'damageEnd'}, direct:true, //priority:-1, @@ -1270,7 +1270,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, jilue_wansha:{ - audio:true, + audio:'wansha', + audioname:['shen_simayi'], enable:'phaseUse', usable:1, filter:function(event,player){ @@ -1282,7 +1283,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, jilue_zhiheng:{ - audio:true, + audio:1, enable:'phaseUse', usable:1, filter:function(event,player){ @@ -1339,7 +1340,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, jilue_jizhi:{ - audio:true, + audio:1, trigger:{player:'useCard'}, filter:function(event,player){ return (get.type(event.card,'trick')=='trick'&&event.card.isCard&&player.hasMark('renjie')); @@ -1412,6 +1413,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ trigger.directHit.addArray(game.players); + if(trigger.addCount!==false){ + trigger.addCount=false; + if(player.stat[player.stat.length-1].card.sha>0){ + player.stat[player.stat.length-1].card.sha--; + } + } }, ai:{ effect:{ @@ -2691,15 +2698,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ '1':{ audio:2, trigger:{ - player:'linkAfter', + player:['linkBefore','enterGame'], global:'gameDrawAfter', }, forced:true, - filter:function (event,player){ - return !player.isLinked(); + filter:function(event,player){ + return player.isLinked()==(event.name=='link'); }, content:function(){ - player.link(true); + if(trigger.name!='link') player.link(true); + else trigger.cancel(); }, }, '2':{ @@ -3258,6 +3266,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, }, + dynamicTranslate:{ + nzry_longnu:function(player){ + if(player.hasSkill('nzry_longnu_2')) return '转换技,锁定技,阴:出牌阶段开始时,你失去1点体力并摸一张牌,然后本回合内你的红色手牌均视为火【杀】且无距离限制。阳:出牌阶段开始时,你减1点体力上限并摸一张牌,然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。'; + if(player.hasSkill('nzry_longnu_1')) return '转换技,锁定技,阴:出牌阶段开始时,你失去1点体力并摸一张牌,然后本回合内你的红色手牌均视为火【杀】且无距离限制。阳:出牌阶段开始时,你减1点体力上限并摸一张牌,然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。'; + if(player.storage.nzry_longnu==true) return '转换技,锁定技,阴:出牌阶段开始时,你失去1点体力并摸一张牌,然后本回合内你的红色手牌均视为火【杀】且无距离限制。阳:出牌阶段开始时,你减1点体力上限并摸一张牌,然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。'; + return '转换技,锁定技,阴:出牌阶段开始时,你失去1点体力并摸一张牌,然后本回合内你的红色手牌均视为火【杀】且无距离限制。阳:出牌阶段开始时,你减1点体力上限并摸一张牌,然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。'; + }, + }, translate:{ "shen_luxun":"神陆逊", "nzry_junlve":"军略", @@ -3268,7 +3284,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "nzry_dinghuo_info":"限定技,出牌阶段,你可以移去全部“军略”标记,令至多等量的已横置角色弃置所有装备区内的牌。然后,你对其中一名角色造成1点火焰伤害。", "shen_liubei":"神刘备", "nzry_longnu":"龙怒", - "nzry_longnu_info":"转换技,锁定技,①出牌阶段开始时,你失去1点体力并摸一张牌,然后本回合内你的红色手牌均视为火【杀】且无距离限制。②出牌阶段开始时,你减1点体力上限并摸一张牌,然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。", + "nzry_longnu_info":"转换技,锁定技,阴:出牌阶段开始时,你失去1点体力并摸一张牌,然后本回合内你的红色手牌均视为火【杀】且无距离限制。阳:出牌阶段开始时,你减1点体力上限并摸一张牌,然后本回合你的锦囊牌均视为雷【杀】且无使用次数限制。", "nzry_jieying":"结营", "nzry_jieying_info":"锁定技,游戏开始时或当你的武将牌重置时,你横置;所有已横置的角色手牌上限+2;结束阶段,你横置一名其他角色。", diff --git a/character/mobile.js b/character/mobile.js index 502caf669..f9bcf28f6 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -10,9 +10,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"], mobile_sunben:["re_sunben"], mobile_standard:["xin_xiahoudun"], - mobile_shenhua:["re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"], - mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng"], - mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","re_pangtong","old_liuzan","xin_chengpu"], + mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian"], + mobile_yijiang1:["re_jikang","old_bulianshi","xin_liaohua","xin_caozhang","re_xusheng","xin_chengpu"], + mobile_sp:["old_yuanshu","re_wangyun","re_baosanniang","re_weiwenzhugezhi","re_zhanggong","re_xugong","re_heqi","old_liuzan"], mobile_trashbin:['old_jiakui'], }, }, @@ -66,7 +66,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ hujinding:['female','shu','2/6',['renshi','wuyuan','huaizi']], - re_zhanggong:['male','wei',3,['reqianxin','xinfu_zhenxing']], + re_zhanggong:['male','wei',3,['reqianxin','rezhenxing']], re_xugong:['male','wu',3,['rebiaozhao','yechou']], re_weiwenzhugezhi:['male','wu',4,['refuhai']], @@ -194,7 +194,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, ai:{ order:9.5, - equipValue:function (card,player){ + equipValue:function(card,player){ if(player.hp==player.maxHp) return 5; if(player.countCards('h','rewrite_baiyin')) return 6; return 0; @@ -239,7 +239,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ subtype:"equip2", cardnature:"fire", ai:{ - equipValue:function (card,player){ + equipValue:function(card,player){ if(player.hasSkillTag('maixie')&&player.hp>1) return 0; if(player.hasSkillTag('noDirectDamage')) return 10; if(get.damageEffect(player,player,player,'fire')>=0) return 10; @@ -268,7 +268,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ type:"equip", subtype:"equip1", ai:{ - equipValue:function (card,player){ + equipValue:function(card,player){ if(!game.hasPlayer(function(current){ return player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0; })){ @@ -295,6 +295,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, characterFilter:{}, skill:{ + //通渠张恭 + rezhenxing:{ + audio:'xinfu_zhenxing', + trigger:{ + player:["damageEnd","phaseJieshuBegin"], + }, + frequent:true, + content:function(){ + 'step 0' + event.cards=get.cards(3); + player.chooseButton(['【镇行】:请选择要获得的牌',event.cards]).set('filterButton',function(button){ + var cards=_status.event.cards; + for(var i=0;i=0;i--){ + if(result.bool&&result.links.contains(event.cards[i])){ + player.gain(event.cards[i],'gain2'); + } + else{ + event.cards[i].fix(); + ui.cardPile.insertBefore(event.cards[i],ui.cardPile.childNodes[0]); + } + } + game.updateRoundNumber(); + }, + }, //芙蓉,手杀廖化,手杀曹彰 rejiangchi:{ audio:2, @@ -388,19 +420,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(card) player.gain(card,'gain2'); 'step 1' game.updateRoundNumber(); - player.phaseUse(); - 'step 2' - var stat=player.getStat(); - stat.card={}; - for(var i in stat.skill){ - var bool=false; - var info=lib.skill[i]; - if(info.enable!=undefined){ - if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true; - else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true; - } - if(bool) stat.skill[i]=0; - } + var next=player.phaseUse(); + event.next.remove(next); + trigger.next.push(next); }, }, xuewei:{ @@ -1980,7 +2002,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ maixie:true, "maixie_hp":true, effect:{ - target:function (card,player,target){ + target:function(card,player,target){ if(get.tag(card,'damage')){ if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; if(!target.hasFriend()) return; @@ -2531,10 +2553,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:"phaseJieshuBegin", }, direct:true, - filter:function (event,player){ + filter:function(event,player){ return player.countCards('he')>0&&!player.storage.rebiaozhao; }, - content:function (){ + content:function(){ 'step 0' player.chooseCard('he',get.prompt2('rebiaozhao')).ai=function(card){ return 6-get.value(card); @@ -2558,7 +2580,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ charlotte:true, forced:true, audio:"biaozhao", - filter:function (event,player){ + filter:function(event,player){ if(!player.storage.rebiaozhao) return false; var num=get.number(player.storage.rebiaozhao[0]); for(var i=0;i0&&player.countCards('h',{type:'basic'})>=2){ @@ -3292,7 +3314,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, save:true, respondSha:true, - skillTagFilter:function (player,tag,arg){ + skillTagFilter:function(player,tag,arg){ if(player.hasCard(function(card){ return get.type(card)=='basic'; },'he')){ @@ -3349,10 +3371,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{ player:"damageBegin4", }, - filter:function (event,player){ + filter:function(event,player){ return event.source!=undefined&&player.countCards('h')>0; }, - content:function (){ + content:function(){ 'step 0' player.showHandcards(); 'step 1' @@ -3392,15 +3414,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ enable:"phaseUse", usable:1, audio:2, - init:function (player,skill){ + init:function(player,skill){ if(!player.storage[skill]) player.storage[skill]=[]; }, - filter:function (event,player){ + filter:function(event,player){ return player.storage.xinfu_zhaoxin.length<3&&player.countCards('h')>0; }, visible:true, filterCard:true, - selectCard:function (){ + selectCard:function(){ var player=_status.event.player; return [1,3-player.storage.xinfu_zhaoxin.length]; }, @@ -3408,7 +3430,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ toStorage:true, //lose:false, delay:false, - content:function (){ + content:function(){ 'step 0' //player.lose(cards,ui.special,'toStorage') player.$give(cards,player,false); @@ -3417,7 +3439,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 1' player.draw(cards.length); }, - check:function (card){ + check:function(card){ return 6-get.value(card); }, ai:{ @@ -3431,12 +3453,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{ global:"phaseDrawAfter", }, - filter:function (event,player){ + filter:function(event,player){ if(!player.storage.xinfu_zhaoxin||!player.storage.xinfu_zhaoxin.length) return false; return player==event.player||player.inRange(event.player); }, direct:true, - content:function (){ + content:function(){ 'step 0' player.chooseCardButton(get.prompt('xinfu_zhaoxin',trigger.player),player.storage.xinfu_zhaoxin,function(button){ return true; @@ -3479,12 +3501,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "xinfu_qianchong":{ audio:3, mod:{ - targetInRange:function (card,player,target){ + targetInRange:function(card,player,target){ if(player.storage.xinfu_qianchong.contains(get.type(card,'trick'))){ return true; } }, - cardUsable:function (card,player,num){ + cardUsable:function(card,player,num){ if(player.storage.xinfu_qianchong.contains(get.type(card,'trick'))) return Infinity; }, }, @@ -3498,12 +3520,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{ player:"phaseAfter", }, - content:function (){ + content:function(){ player.storage.xinfu_qianchong=[]; }, }, }, - init:function (event,player){ + init:function(event,player){ event.storage[player]=[]; }, trigger:{ @@ -3511,7 +3533,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, locked:false, direct:true, - filter:function (event,player){ + filter:function(event,player){ var es=player.getCards('e'); if(!es.length) return true; var col=get.color(es[0]); @@ -3520,7 +3542,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return false; }, - content:function (){ + content:function(){ 'step 0' var list=['basic','trick','equip','cancel2']; for(var i=0;i0&&num<=player.hp }, frequent:true, - content:function (){ + content:function(){ 'step 0' var num=0; player.getHistory('lose',function(evt){ @@ -3635,7 +3657,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "rw_bagua_skill":{ inherit:"bagua_skill", audio:"bagua_skill", - content:function (){ + content:function(){ "step 0" player.judge('rewrite_bagua',function(card){return (get.suit(card)!='spade')?1.5:-0.5}); "step 1" @@ -3664,15 +3686,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, forced:true, priority:20, - filter:function (event,player){ + filter:function(event,player){ return !player.isLinked(); }, - content:function (){ + content:function(){ trigger.cancel(); }, ai:{ effect:{ - target:function (card,player,target,current){ + target:function(card,player,target,current){ if(['tiesuo','lulitongxin'].contains(card.name)){ return 'zerotarget'; } @@ -3683,7 +3705,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "rw_renwang_skill":{ inherit:"renwang_skill", audio:"renwang_skill", - filter:function (event,player){ + filter:function(event,player){ if(player.hasSkillTag('unequip2')) return false; if(event.player.hasSkillTag('unequip',false,{ name:event.card?event.card.name:null, @@ -3694,7 +3716,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, ai:{ effect:{ - target:function (card,player,target){ + target:function(card,player,target){ if(target.hasSkillTag('unequip2')) return; if(player.hasSkillTag('unequip',false,{ name:card?card.name:null, @@ -3723,7 +3745,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ inherit:"rw_minguangkai_link", ai:{ effect:{ - target:function (card,player,target,current){ + target:function(card,player,target,current){ if(['tiesuo','lulitongxin'].contains(card.name)){ return 'zeroplayertarget'; } @@ -3736,10 +3758,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:"tengjia1", }, "xinfu_pingcai":{ - "wolong_card":function (){ + "wolong_card":function(){ 'step 0' var ingame=game.hasPlayer(function(current){ - return ['sp_zhugeliang','re_sp_zhugeliang'].contains(current.name)||['sp_zhugeliang','re_sp_zhugeliang'].contains(current.name2); + return ['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang'].contains(current.name)||['sp_zhugeliang','re_sp_zhugeliang','ol_sp_zhugeliang'].contains(current.name2); })?true:false; var prompt='请选择'; prompt+=ingame?'至多两名':'一名'; @@ -3757,10 +3779,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } }, - "fengchu_card":function (){ + "fengchu_card":function(){ 'step 0' var ingame=game.hasPlayer(function(current){ - return ['re_pangtong','pangtong'].contains(current.name)||['re_pangtong','pangtong'].contains(current.name2); + return ['re_pangtong','pangtong','ol_pangtong'].contains(current.name)||['re_pangtong','pangtong','ol_pangtong'].contains(current.name2); })?true:false; var prompt='请选择'; prompt+=ingame?'至多四名':'至多三名'; @@ -3778,7 +3800,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } }, - "xuanjian_card":function (){ + "xuanjian_card":function(){ 'step 0' event.ingame=game.hasPlayer(function(current){ return ['re_xushu','xin_xushu','xushu'].contains(current.name)||['re_xushu','xin_xushu','xushu'].contains(current.name2); @@ -3798,7 +3820,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(event.ingame) player.draw(); } }, - "shuijing_card":function (){ + "shuijing_card":function(){ 'step 0' event.ingame=game.hasPlayer(function(current){ return current.name=='simahui'||current.name2=='simahui'; @@ -3906,7 +3928,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:true, enable:"phaseUse", usable:1, - content:function (){ + content:function(){ "step 0" var list=["wolong","fengchu","xuanjian","shuijing"]; var list2=[]; @@ -3980,7 +4002,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "xinfu_pdgyingshi":{ mod:{ - targetEnabled:function (card,player,target){ + targetEnabled:function(card,player,target){ if(get.type(card)=='delay'){ return false; } @@ -4005,7 +4027,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, forced:true, priority:15, - content:function (){ + content:function(){ trigger.cancel(); game.log(player,'跳过了判定阶段'); }, @@ -4025,7 +4047,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "yizan_respond_sha":{ audio:2, enable:["chooseToRespond"], - filterCard:function (card,player,target){ + filterCard:function(card,player,target){ if(player.storage.yizan) return get.type(card)=='basic'; else if(ui.selected.cards.length){ if(get.type(ui.selected.cards[0])=='basic') return true; @@ -4033,7 +4055,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return true; }, - selectCard:function (){ + selectCard:function(){ var player=_status.event.player; if(player.storage.yizan) return 1; return 2; @@ -4043,7 +4065,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ name:"sha", }, complexCard:true, - viewAsFilter:function (player){ + viewAsFilter:function(player){ if(!player.storage.yizan){ if(player.countCards('h')<2) return false; } @@ -4051,17 +4073,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return get.type(card)=='basic'; },'h'); }, - prompt:function (){ + prompt:function(){ var player=_status.event.player; var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌'; return '将'+str+'当做杀打出'; }, - check:function (card){ + check:function(card){ if(!ui.selected.cards.length&&get.type(card)=='basic') return 6; return 5-get.value(card); }, ai:{ - skillTagFilter:function (player){ + skillTagFilter:function(player){ if(!player.storage.yizan){ if(player.countCards('he')<2) return false; } @@ -4073,7 +4095,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, "yizan_use":{ - init:function (player){ + init:function(player){ if(!player.storage.yizan_use) player.storage.yizan_use=0; if(!player.storage.yizan) player.storage.yizan=false; }, @@ -4083,7 +4105,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, group:["yizan_respond_sha","yizan_respond_shan","yizan_count"], enable:"chooseToUse", - filter:function (event,player){ + filter:function(event,player){ if(!player.storage.yizan&&player.countCards('he')<2) return false; if(event.filterCard({name:'sha'},player,event)|| event.filterCard({name:'jiu'},player,event)|| @@ -4095,7 +4117,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return false; }, chooseButton:{ - dialog:function (event,player){ + dialog:function(event,player){ var list=[]; if(event.filterCard({name:'sha'},player,event)){ list.push(['基本','','sha']); @@ -4110,7 +4132,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return ui.create.dialog('翊赞',[list,'vcard'],'hidden'); }, - check:function (button){ + check:function(button){ var player=_status.event.player; var card={name:button.link[2],nature:button.link[3]}; if(game.hasPlayer(function(current){ @@ -4129,7 +4151,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return 0; }, - backup:function (links,player){ + backup:function(links,player){ return { filterCard:function(card,player,target){ if(player.storage.yizan) return get.type(card)=='basic'; @@ -4157,13 +4179,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, } }, - prompt:function (links,player){ + prompt:function(links,player){ var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌'; return '将'+str+'当做'+get.translation(links[0][3]||'')+get.translation(links[0][2])+'使用'; }, }, ai:{ - order:function (){ + order:function(){ var player=_status.event.player; var event=_status.event; if(event.filterCard({name:'jiu'},player,event)&&get.effect(player,{name:'jiu'})>0&&player.storage.yizan&&player.countCards('h',{type:'basic'})>2){ @@ -4173,7 +4195,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, save:true, respondSha:true, - skillTagFilter:function (player,tag,arg){ + skillTagFilter:function(player,tag,arg){ if(!player.storage.yizan&&player.countCards('he')<2) return false; if(player.hasCard(function(card){ return get.type(card)=='basic'; @@ -4195,7 +4217,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ complexCard:true, audio:2, enable:["chooseToUse","chooseToRespond"], - filterCard:function (card,player,target){ + filterCard:function(card,player,target){ if(player.storage.yizan) return get.type(card)=='basic'; else if(ui.selected.cards.length){ if(get.type(ui.selected.cards[0])=='basic') return true; @@ -4203,7 +4225,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return true; }, - selectCard:function (){ + selectCard:function(){ var player=_status.event.player; if(player.storage.yizan) return 1; return 2; @@ -4212,7 +4234,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ viewAs:{ name:"shan", }, - viewAsFilter:function (player){ + viewAsFilter:function(player){ if(!player.storage.yizan){ if(player.countCards('he')<2) return false; } @@ -4220,18 +4242,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return get.type(card)=='basic'; },'h'); }, - prompt:function (){ + prompt:function(){ var player=_status.event.player; var str=!player.storage.yizan?'两张牌(其中至少应有一张基本牌)':'一张基本牌'; return '将'+str+'当做闪使用或打出'; }, - check:function (card){ + check:function(card){ if(!ui.selected.cards.length&&get.type(card)=='basic') return 6; return 5-get.value(card); }, ai:{ respondShan:true, - skillTagFilter:function (player){ + skillTagFilter:function(player){ if(!player.storage.yizan){ if(player.countCards('he')<2) return false; } @@ -4240,7 +4262,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ },'h'); }, effect:{ - target:function (card,player,target,current){ + target:function(card,player,target,current){ if(get.tag(card,'respondShan')&¤t<0) return 0.6 }, }, @@ -4256,23 +4278,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){ unique:true, juexingji:true, trigger:{ - player:["useCardAfter","respondAfter"], + player:'phaseZhunbeiBegin', }, - init:function (player){ - player.storage.xinfu_longyuan=false; - }, - delay:1.2, skillAnimation:true, animationColor:'orange', - filter:function (event,player){ + filter:function(event,player){ if(player.storage.xinfu_longyuan) return false; - return player.storage.yizan_use>2; + return player.storage.yizan_use&&player.storage.yizan_use>2; }, - content:function (){ + content:function(){ player.awakenSkill('xinfu_longyuan'); player.storage.yizan=true; game.delay(1); }, + derivation:'yizan_rewrite', }, "yizan_count":{ forced:true, @@ -4281,11 +4300,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{ player:["respond","useCard1"], }, - filter:function (event,player){ + filter:function(event,player){ if(event.skill!='yizan_respond_sha'&&event.skill!='yizan_respond_shan'&&event.skill!='yizan_use_backup') return false; return player.storage.yizan_use!=undefined; }, - content:function (){ + content:function(){ player.storage.yizan_use++; player.markSkill('yizan_use'); }, @@ -4303,14 +4322,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } return false; }, - filterCard:function (card){ + filterCard:function(card){ return ["bagua","baiyin","lanyinjia","renwang","tengjia","zhuge"].contains(card.name); }, discard:false, check:function(){ return 1; }, - content:function (){ + content:function(){ "step 0" player.showCards(cards); "step 1" @@ -4330,10 +4349,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ prompt:"重铸一张防具牌,然后将体力回复至1点。", audio:'xinfu_jingxie', enable:"chooseToUse", - filterCard:function (card){ + filterCard:function(card){ return get.subtype(card)=='equip2'; }, - filter:function (event,player){ + filter:function(event,player){ if(event.type=='dying'){ if(player!=event.dying) return false; return player.countCards('he',function(card){ @@ -4352,7 +4371,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.$throw(cards,1000); game.log(player,'将',cards,'置入了弃牌堆') }, - content:function (){ + content:function(){ 'step 0' player.draw(); 'step 1' @@ -4361,7 +4380,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, ai:{ order:0.5, - skillTagFilter:function (player){ + skillTagFilter:function(player){ if(player.hp>0) return false; return player.countCards('he',function(card){ return get.subtype(card)=='equip2'; @@ -4369,7 +4388,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, save:true, result:{ - player:function (player){ + player:function(player){ return 10; }, }, @@ -4378,7 +4397,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "xinfu_qiaosi":{ enable:"phaseUse", usable:1, - content:function (){ + content:function(){ 'step 0' if(get.isLuckyStar(player)){ event.num=6; @@ -5568,6 +5587,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, }, + dynamicTranslate:{ + yizan_use:function(player){ + if(player.storage.yizan) return '你可以将一张基本牌当做任意基本牌使用或打出。'; + return '你可以将两张牌(其中至少一张为基本牌)当做任意基本牌使用或打出。'; + }, + }, translate:{ old_liuzan:'手杀留赞', re_sp_zhugeliang:"手杀卧龙", @@ -5675,7 +5700,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "yizan_respond_shan":"翊赞", "yizan_respond_shan_info":"", "xinfu_longyuan":"龙渊", - "xinfu_longyuan_info":"觉醒技,当你使用或打出的基本牌结算完成后,若你本局游戏内发动过〖翊赞〗的次数大于等于3,则你将〖翊赞〗描述中的“两张牌”改为“一张牌”。", + "xinfu_longyuan_info":"觉醒技,准备阶段,若你本局游戏内发动过〖翊赞〗的次数大于等于3,则你修改〖翊赞〗。", + yizan_rewrite:'翊赞·改', + yizan_rewrite_info:'你可以将一张基本牌当做任意基本牌使用或打出。', "yizan_count":"翊赞", "yizan_count_info":"", "xinfu_jingxie1":"精械", @@ -5834,7 +5861,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ shuaiyan_info:'弃牌阶段开始时,若你的手牌数大于1,则你可以展示所有手牌,然后你令一名其他角色交给你一张牌。', zhengxuan:'郑玄', zhengjing:'整经', - zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌置于一名角色的武将牌上。该角色的准备阶段获得这些牌,w且 跳过此回合的判定和摸牌阶段。', + zhengjing_info:'出牌阶段,你可以整理卡牌。然后,你将整理出的卡牌置于一名角色的武将牌上。该角色的准备阶段获得这些牌,且跳过此回合的判定和摸牌阶段。', zhengjing2:'整经', mobile_yijiang:'武将设计征集大赛', @@ -5894,7 +5921,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ refuli_info:'限定技,当你处于濒死状态时,你可以将体力值回复至X点(X为势力数)。然后若你的体力值为全场唯一最多,你翻面。', xin_caozhang:'手杀曹彰', "rejiangchi":"将驰", - "rejiangchi_info":"出牌阶段开始时,你可以选择一项:1、摸一张牌,若如此做,你本阶段内不能使用【杀】。 2、弃置一张牌,若如此做,此阶段你使用【杀】无距离限制且你可以额外使用一张【杀。", + "rejiangchi_info":"出牌阶段开始时,你可以选择一项:1、摸一张牌,若如此做,你本阶段内不能使用【杀】。 2、弃置一张牌,若如此做,此阶段你使用【杀】无距离限制且你可以额外使用一张【杀】。", + rezhenxing:"镇行", + rezhenxing_info:"结束阶段开始时或当你受到伤害后,你可以观看牌堆顶的三张牌,然后你获得其中与其余牌花色均不相同的一张牌。", mobile_standard:'手杀异构·标准包', mobile_shenhua:'手杀异构·神话再临', mobile_yijiang1:'手杀异构·一将成名', diff --git a/character/refresh.js b/character/refresh.js index a9e73f865..307a0a385 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -43,7 +43,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ re_wuyi:['male','shu',4,['xinbenxi']], re_zhuran:['male','wu',4,['xindanshou']], re_caozhi:['male','wei',3,['reluoying','rejiushi','chengzhang']], - ol_pangtong:['male','shu',3,['xinlianhuan','olniepan'],[]], + ol_pangtong:['male','shu',3,['ollianhuan','olniepan'],[]], re_zhangyi:['male','shu',4,['rewurong','shizhi']], re_wuguotai:['female','wu',3,['reganlu','buyi']], re_gaoshun:['male','qun',4,['rexianzhen','rejinjiu']], @@ -7120,6 +7120,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, }, + dynamicTranslate:{ + rejiushi:function(player){ + if(player.storage.chengzhang) return '当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面。当你翻面时,你获得牌堆中的一张随机锦囊。'; + return '当你需要使用【酒】时,若你的武将牌正面向上,你可以翻面,视为使用一张【酒】。当你受到伤害后,若你的武将牌背面向上,你可以翻面并获得牌堆中的一张随机锦囊。'; + }, + }, translate:{ re_zhangliao:'界张辽', re_huangyueying:'新黄月英', @@ -7493,7 +7499,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinyicong:'义从', xinyicong_info:'锁定技,你计算与其他角色的距离时-X,其他角色计算与你的距离时+Y。(X为你的体力值-1,Y为你的已损失体力值-1)', oltianxiang:'天香', - oltianxiang_info:'当你受到伤害时,你可以弃置一张红桃手牌,防止此次伤害并选择一名其他角色,然后你选择一项:1.令其受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5);2.令其失去1点体力,然后获得你弃置的牌。', + oltianxiang_info:'当你受到伤害时,你可以弃置一张红桃牌,防止此伤害并选择一名其他角色,然后你选择一项:1.令其受到伤害来源对其造成的1点伤害,然后摸X张牌(X为其已损失体力值且至多为5);2.令其失去1点体力,然后获得你弃置的牌。', olhongyan:'红颜', olhongyan_info:'锁定技,你的黑桃牌的花色视为红桃。若你的装备区内有红桃牌,则你的手牌上限基数视为体力上限。', piaoling:'飘零', diff --git a/character/shenhua.js b/character/shenhua.js index f42dd0557..da98e20cf 100755 --- a/character/shenhua.js +++ b/character/shenhua.js @@ -2440,6 +2440,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } }, + ollianhuan:{ + audio:'xinlianhuan', + audioname:['ol_pangtong'], + group:['ollianhuan3','ollianhuan5','lianhuan4'], + }, + ollianhuan5:{ + inherit:'lianhuan2', + audioname:['ol_pangtong'], + audio:['xinlianhuan',2], + position:'he', + filter:function(event,player){ + return player.countCards('he',{suit:'club'})>0; + }, + }, + ollianhuan3:{ + audio:['xinlianhuan',1], + audioname:['ol_pangtong'], + enable:'chooseToUse', + filter:function(event,player){ + return player.countCards('he',{suit:'club'})>0; + }, + filterCard:{suit:'club'}, + viewAs:{name:'tiesuo'}, + prompt:'将一张梅花牌当铁锁连环使用', + check:function(card){return 6-get.value(card)}, + position:'he', + }, xinlianhuan:{ audio:2, audioname:['ol_pangtong'], @@ -5995,7 +6022,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:'damageBegin4'}, direct:true, filter:function(event,player){ - return player.countCards('h',{suit:'heart'})>0&&event.num>0; + return player.countCards('h',function(card){ + return _status.connectMode||get.suit(card,player)=='heart'; + })>0&&event.num>0; }, content:function(){ "step 0" @@ -6006,7 +6035,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return player!=target; }, - // position:'he', ai1:function(card){ return 10-get.value(card); }, @@ -7094,6 +7122,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, disable_judge:{}, }, + dynamicTranslate:{ + nzry_juzhan:function(player){ + if(player.storage.nzry_juzhan1==true) return '转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。'; + return '转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。'; + }, + nzry_zhenliang:function(player){ + if(player.storage.nzry_zhenliang==true) return '转换技,阴:出牌阶段限一次,你可以选择一名攻击范围内的其他角色,然后弃置X张与“任”颜色相同的牌并对其造成一点伤害(X为你与其的体力差且至少为1)。阳:你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌。'; + return '转换技,阴:出牌阶段限一次,你可以选择一名攻击范围内的其他角色,然后弃置X张与“任”颜色相同的牌并对其造成一点伤害(X为你与其的体力差且至少为1)。阳:你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌。'; + }, + nzry_chenglve:function(player){ + if(player.storage.nzry_chenglve==true) return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。'; + return '转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。'; + }, + nzry_shenshi:function(player){ + if(player.storage.nzry_shenshi==true) return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。'; + return '转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。'; + }, + }, translate:{ "feichu_equip1":"已废除", "feichu_equip1_info":"武器栏已废除", @@ -7136,21 +7182,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhoufei:"周妃", "nzry_jianxiang":"荐降", - "nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌", + "nzry_jianxiang_info":"当你成为其他角色使用牌的目标时,你可令手牌数最少的一名角色摸一张牌。", "nzry_shenshi1":"审时", "nzry_shenshi":"审时", - "nzry_shenshi_info":"转换技,①出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。②其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张", + "nzry_shenshi_info":"转换技,阴:出牌阶段限一次,你可以将一张牌交给一名手牌数最多的角色,然后对其造成一点伤害,若该角色因此死亡,则你可以令一名角色将手牌摸至四张。阳:其他角色对你造成伤害后,你可以观看该角色的手牌,然后交给其一张牌,当前角色回合结束时,若该角色未失去此牌,你将手牌摸至四张。", "nzry_mingren":"明任", - "nzry_mingren_info":"游戏开始时,你摸一张牌,然后将你的一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用手牌替换“任”", + "nzry_mingren_info":"游戏开始时,你摸一张牌,然后将你的一张手牌置于你的武将牌上,称为“任”。结束阶段,你可以用手牌替换“任”。", "nzry_zhenliang":"贞良", - "nzry_zhenliang_info":"转换技,①出牌阶段限一次,你可以选择一名攻击范围内的其他角色,然后弃置X张与“任”颜色相同的牌并对其造成一点伤害(X为你与其的体力差且至少为1)。②你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌", + "nzry_zhenliang_info":"转换技,阴:出牌阶段限一次,你可以选择一名攻击范围内的其他角色,然后弃置X张与“任”颜色相同的牌并对其造成一点伤害(X为你与其的体力差且至少为1)。阳:你的回合外,当你使用或打出牌进入弃牌堆时,若此牌与“任”类型相同,则你可以令一名角色摸一张牌。", "nzry_chenglve1":"成略", "nzry_chenglve":"成略", - "nzry_chenglve_info":"转换技,出牌阶段限一次,①你可以摸一张牌,然后弃置两张手牌。②你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制", + "nzry_chenglve_info":"转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。", "nzry_shicai":"恃才", - "nzry_shicai_info":"当你使用牌时,若此牌与你本回合使用的牌类型均不同(包括装备牌),则你可以将此牌置于牌堆顶,然后摸一张牌", + "nzry_shicai_info":"当你使用牌时,若此牌与你本回合使用的牌类型均不同(包括装备牌),则你可以将此牌置于牌堆顶,然后摸一张牌。", "nzry_cunmu":"寸目", - "nzry_cunmu_info":"锁定技,当你摸牌时,改为从牌堆底摸牌", + "nzry_cunmu_info":"锁定技,当你摸牌时,改为从牌堆底摸牌。", "nzry_kuizhu":"溃诛", "nzry_kuizhu_info":"弃牌阶段结束后,你可以选择一项:令至多X名角色各摸一张牌,或对任意名体力值之和为X的角色造成一点伤害,若不少于2名角色,你须受到一点伤害。(X为你此阶段弃置的牌数)", "nzry_zhizheng":"掣政", @@ -7171,7 +7217,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "nzry_binglve_info":"锁定技,当你发动“飞军”时,若目标与你之前指定的目标均不相同,则你摸两张牌", "nzry_juzhan1":"拒战", "nzry_juzhan":"拒战", - "nzry_juzhan_info":"转换技,①当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。②当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌", + "nzry_juzhan_info":"转换技,阴:当你成为其他角色【杀】的目标后,你可以与其各摸一张牌,然后其本回合内不能再对你使用牌。阳:当你使用【杀】指定一名角色为目标后,你可以获得其一张牌,然后你本回合内不能再对其使用牌。", liangyin:"良姻", "liangyin_info":"当有牌移至游戏外时,你可以令手牌数大于你的一名角色摸一张牌;当有牌从游戏外加入任意角色的手牌时,你可以令手牌数小于你的一名角色弃置一张牌", @@ -7374,11 +7420,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ bazhen:'八阵', kanpo:'看破', xinlianhuan:'连环', + ollianhuan:'连环', lianhuan:'连环', lianhuan1:'连环', lianhuan3:'连环', lianhuan2:'连铸', lianhuan5:'连铸', + ollianhuan3:'连环', niepan:'涅槃', oldniepan:'涅槃', quhu:'驱虎', @@ -7392,6 +7440,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xueyi:'血裔', mengjin:'猛进', xinlianhuan_info:' 你可以将一张♣手牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标的上限数+1。', + ollianhuan_info:' 你可以将一张♣牌当【铁索连环】使用或重铸。你使用【铁索连环】选择目标的上限数+1。', huoji_info:'出牌阶段,你可以将你的任意一张红色手牌当作【火攻】使用。', bazhen_info:'锁定技,若你的防具栏内没有牌且没有被废除,则你视为装备着【八卦阵】。', kanpo_info:'你可以将你的任意一张黑色手牌当做【无懈可击】使用。', diff --git a/character/sp.js b/character/sp.js index e3ed6c976..f773db138 100755 --- a/character/sp.js +++ b/character/sp.js @@ -571,6 +571,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, logTarget:'player', skillAnimation:true, + limited:true, animationColor:'thunder', content:function(){ 'step 0' @@ -601,7 +602,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, direct:true, filter:function(event,player){ - return player!=event.player&&event.player.countCards('he')&&!event.player.countCards('j'); + return player!=event.player&&!event.player.storage._disableJudge&&event.player.countCards('he')&&!event.player.countCards('j'); }, content:function(){ 'step 0' @@ -615,8 +616,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var card=result.cards[0]; trigger.player.$throw(card); game.delayx(); - if(get.type(card)=='delay') trigger.player.addJudge(card); - else trigger.player.addJudge({name:get.color(card)=='red'?'lebu':'bingliang'},result.cards); + if(get.type(card,false)=='delay') trigger.player.addJudge(card); + else trigger.player.addJudge({name:get.color(card,false)=='red'?'lebu':'bingliang'},result.cards); } }, group:'shanzhuan_draw', @@ -2701,11 +2702,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ group:["new_luoyan_tianxiang","new_luoyan_liuli"], }, "new_luoyan_tianxiang":{ - inherit:"retianxiang", + inherit:"oltianxiang", filter:function (event,player){ if(!player.storage.new_xingwu||!player.storage.new_xingwu.length) return false; - if(player.hasSkill('retianxiang')||player.hasSkill('tianxiang')) return false; - return lib.skill.retianxiang.filter(event,player); + if(player.hasSkill('oltianxiang')) return false; + return lib.skill.oltianxiang.filter(event,player); }, audio:"tianxiang", }, @@ -5068,6 +5069,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ list.remove(players[i].name1); list.remove(players[i].name2); } + list.remove('zhaoyun'); + list.remove('re_zhaoyun'); + list.remove('ol_zhaoyun'); // var dialog=ui.create.dialog(); // dialog.add([list.randomGets(5),'character']); player.chooseButton(true).set('ai',function(button){ @@ -8639,15 +8643,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{source:'damageBegin1'}, direct:true, filter:function(event,player){ - if(!player.hasSkill('fenxin_nei')){ - if(!player.countCards('h',{color:'black'})) return false; - } + if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){ + if(_status.connectMode&&get.position(card)=='h') return true; + return get.color(card)=='black'; + })) return false; return (event.player.hp>=player.hp||player.hasSkill('fenxin_fan'))&&player!=event.player; }, content:function(){ 'step 0' var goon=(get.attitude(player,trigger.player)<0); - var next=player.chooseToDiscard(get.prompt('jieyuan',trigger.player)); + var next=player.chooseToDiscard(get.prompt('jieyuan',trigger.player),player.hasSkill('fenxin_nei')?'he':'h'); if(!player.hasSkill('fenxin_nei')){ next.set('filterCard',function(card){ return get.color(card)=='black'; @@ -8675,15 +8680,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:true, trigger:{player:'damageBegin2'}, filter:function(event,player){ - if(!player.hasSkill('fenxin_nei')){ - if(!player.countCards('h',{color:'red'})) return false; - } + if(!player.countCards(player.hasSkill('fenxin_nei')?'he':'h',function(card){ + if(_status.connectMode&&get.position(card)=='h') return true; + return get.color(card)=='black'; + })) return false; return event.source&&(event.source.hp>=player.hp||player.hasSkill('fenxin_zhong'))&&player!=event.source; }, direct:true, content:function(){ "step 0" - var next=player.chooseToDiscard(get.prompt('jieyuan')); + var next=player.chooseToDiscard(get.prompt('jieyuan'),player.hasSkill('fenxin_nei')?'he':'h'); if(!player.hasSkill('fenxin_nei')){ next.set('filterCard',function(card){ return get.color(card)=='red'; @@ -12951,17 +12957,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function(){ "step 0" event.target1=targets[0]; - targets[0].gain(cards,player,'give'); + targets[0].gain(cards,player,'giveAuto'); + "step 1" + if(!targets[0].countCards('h')){ + event.finish(); + return; + } var players=game.filterPlayer(); for(var i=0;i0; } else{ var source=event.player; return source.getHistory('useCard',function(evt){ - return evt.targets&&event.targets.length==1&&evt.targets[0]==player; + return evt.targets&&evt.targets.contains(player); }).indexOf(event.getParent())>0; } }, @@ -1955,19 +1956,68 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, }, fenglve2:{ - trigger:{player:'chooseToCompareAfter'}, + trigger:{ + player:'chooseToCompareAfter', + target:'chooseToCompareAfter', + }, check:function(event,player){ - return get.attitude(player,event.target)*get.value(event.card1,event.target,'raw')>0; + var card,target; + if(player==event.player){ + card=event.card1; + target=event.target; + } + else{ + card=event.card2; + target=event.player; + } + return get.attitude(player,target)*get.value(card,target,'raw')>0; }, filter:function(event,player){ - return event.getParent().name=='fenglve'&&get.position(event.card1,true)=='o'; + if(event.targets) return false; + var card,target; + if(player==event.player){ + card=event.card1; + target=event.target; + } + else{ + card=event.card2; + target=event.player; + } + return get.position(card,true)=='o'; }, - prompt:function(event){ - return '是否令'+get.translation(event.target)+'获得'+get.translation(event.card1)+'?' + prompt:function(event,player){ + var card,target; + if(player==event.player){ + card=event.card1; + target=event.target; + } + else{ + card=event.card2; + target=event.player; + } + return '是否发动【锋略】,令'+get.translation(target)+'获得'+get.translation(card)+'?' + }, + logTarget:function(event,player){ + var target; + if(player==event.player){ + target=event.target; + } + else{ + target=event.player; + } + return target; }, - logTarget:'target', content:function(){ - trigger.target.gain(trigger.card1,'gain2','log'); + var card,target; + if(player==trigger.player){ + card=trigger.card1; + target=trigger.target; + } + else{ + card=trigger.card2; + target=trigger.player; + } + target.gain(card,'gain2','log'); }, }, mouzhi:{ @@ -4588,13 +4638,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 2' event.cards=get.cards(num); player.chooseButton(['【镇行】:请选择要获得的牌',event.cards]).set('filterButton',function(button){ - for(var i=0;i=0;i--){ @@ -5215,6 +5266,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return mode=='versus'&&['guandu','4v4','four'].contains(_status.mode); }, }, + dynamicTranslate:{ + xinlvli:function(player){ + var str='每回合限一次'; + if(player.storage.choujue) str+='(自己的回合内则改为限两次)'; + str+=',当你造成'; + if(player.storage.beishui) str+='或受到'; + str+='伤害后,你可选择:1,若你的体力值大于你的手牌数,你摸X张牌;2,若你的手牌数大于你的体力值且你已受伤,你回复X点体力(X为你的手牌数与体力值之差)。'; + return str; + }, + mubing:function(player){ + if(player.storage.mubing2) return '出牌阶段开始时,你可以弃置至多三张牌,然后展示牌堆顶的四张牌,并可令一名角色获得任意张点数之和不大于你弃置的牌点数之和的牌。'; + return '出牌阶段开始时,你可以弃置至多两张牌,然后展示牌堆顶的三张牌,并可获得任意张点数之和不大于你弃置的牌点数之和的牌。'; + }, + }, translate:{ lijue:"李傕", zhangji:"张济", @@ -5379,7 +5444,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xunchen:'荀谌', fenglve:'锋略', fenglve2:'锋略', - fenglve_info:'出牌阶段开始时,你可以与一名角色拼点,若你赢,该角色将其区域内的各一张牌交给你;若你没赢,你交给其一张牌。拼点结算后你可以令其获得你拼点的牌。', + fenglve_info:'出牌阶段开始时,你可以与一名角色拼点,若你赢,该角色将其区域内的各一张牌交给你;若你没赢,你交给其一张牌。当你的单人拼点结算后,你可以令对方获得你拼点的牌。', mouzhi:'谋识', mouzhi2:'谋识', mouzhi_info:'出牌阶段限一次,你可以将一张手牌交给一名角色,若如此做,当其于其下回合的出牌阶段内对一名角色造成伤害后,若是此阶段其第一次对该角色造成伤害,你摸一张牌。', @@ -5434,7 +5499,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mansi:'蛮嗣', mansi_info:'出牌阶段限一次,你可以将所有手牌【南蛮入侵】使用;当有角色受到【南蛮入侵】的伤害后,你摸一张牌。', souying:'薮影', - souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张牌,你可以弃置一张牌将此牌收回手牌(或令此牌对你无效)。', + souying_info:'每回合限一次,当你对其他角色(或其他角色对你)使用【杀】或普通锦囊牌指定唯一目标后,若此牌不是本回合你对其(或其对你)使用的第一张【杀】或普通锦囊牌,你可以弃置一张牌,获得此牌对应的所有实体牌(或令此牌对你无效)。', zhanyuan:'战缘', zhanyuan_info:'觉醒技,准备阶段,若你已因蛮嗣累计获得超过7张牌,你加一点体力上限并回复1点体力,并可以选择一名男性角色,你与其获得技能〖系力〗,然后你失去技能〖蛮嗣〗', hmxili:'系力', diff --git a/character/standard.js b/character/standard.js index fe738e849..0e00258ef 100755 --- a/character/standard.js +++ b/character/standard.js @@ -2748,15 +2748,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xinbiyue:'闭月', pileTop:'牌堆顶', pileBottom:'牌堆底', - ganglie_info:'当你受到伤害后,你可以进行判定。若结果不为红桃,则伤害来源须弃置两张手牌,否则受到来自你的一点伤害。', + ganglie_info:'当你受到伤害后,你可以判定。若结果不为红桃,则伤害来源须弃置两张手牌,否则受到来自你的一点伤害。', tuxi_info:'摸牌阶段,你可以改为获得至多两名其他角色的各一张手牌。', luoyi_info:'摸牌阶段,你可以少摸一张牌。若如此做,当你本回合内使用【杀】或【决斗】造成伤害时,此伤害+1。', tiandu_info:'当你的判定牌生效后,你可以获得之。', yiji_info:'当你受到一点伤害后,你可以观看牌堆顶的两张牌,然后将其分配给任意角色。', - luoshen_info:'准备阶段,你可以进行判定。若结果为黑色,你获得判定牌。你可重复此流程,直到出现红色的判定结果。', - luoshen_info_guozhan:'准备阶段,你可以进行一次判定。若结果为黑色,则可以继续判定,直到出现红色的判定牌。然后你获得所有黑色的判定牌。(判定结果为黑色的牌在此过程中不会进入弃牌堆)', - xinluoshen_info:'准备阶段,你可以进行一定判定,若为黑色则可以继续判定,直到出现红色。然后你获得所有黑色的判定牌', - xinluoshen_info_alter:'准备阶段,你可以进行一定判定,若为黑色则可以继续判定,直到出现红色。然后你获得所有黑色的判定牌。你通过洛神获得的牌,不计入当前回合的手牌上限', + luoshen_info:'准备阶段,你可以判定。若结果为黑色,你获得判定牌。你可重复此流程,直到出现红色的判定结果。', + luoshen_info_guozhan:'准备阶段,你可以判定。若结果为黑色,则可以继续判定,直到出现红色的判定牌。然后你获得所有黑色的判定牌。(判定结果为黑色的牌在此过程中不会进入弃牌堆)', + xinluoshen_info:'准备阶段,你可以判定,若为黑色则可以继续判定,直到出现红色。然后你获得所有黑色的判定牌', + xinluoshen_info_alter:'准备阶段,你可以判定,若为黑色则可以继续判定,直到出现红色。然后你获得所有黑色的判定牌。你通过洛神获得的牌,不计入当前回合的手牌上限', qingguo_info:'你可以将一张黑色手牌当做【闪】使用或打出。', rende_info:'出牌阶段,你可以将任意张手牌交给其他角色。当你以此法于一回合内给出第二张牌时,你回复1点体力。', jijiang_info:'主公技,当你需要使用或打出【杀】时,你可以令其他蜀势力角色依次选择是否打出一张【杀】。若有角色响应,则你视为使用或打出了此【杀】。', @@ -2824,9 +2824,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ zhongyi2:'忠义', zhongyi_info:'限定技,出牌阶段,你可以将一张牌置于武将牌上。你的武将牌上有〖忠义〗牌时,己方角色使用【杀】造成的伤害+1。下轮游戏开始时,你将〖忠义〗牌置入弃牌堆。', zhanshen:'战神', - zhanshen_info:'觉醒技,准备阶段,若场上有已死亡的其他己方角色且你已受伤,则你弃置装备区的武器牌,减1点体力上限,获得技能〖马术〗和〖神戟〗', + zhanshen_info:'觉醒技,准备阶段,若场上有已死亡的其他己方角色且你已受伤,则你弃置装备区的武器牌,减1点体力上限,获得技能〖马术〗和〖神戟〗。', shenji:'神戟', - shenji_info:'锁定技,你使用【杀】指定的目标数上限+2,次数上限+1', + shenji_info:'锁定技,你使用【杀】指定的目标数上限+2,次数上限+1。', standard_2008:"2008版标准包", standard_2013:"2013版标准包", diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js index cb62fcb76..d09c02aa9 100755 --- a/character/xinghuoliaoyuan.js +++ b/character/xinghuoliaoyuan.js @@ -889,19 +889,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.finish(); } 'step 2' - var stat=trigger.player.getStat(); - stat.card={}; - for(var i in stat.skill){ - var bool=false; - var info=lib.skill[i]; - if(info.enable!=undefined){ - if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true; - else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true; - } - if(bool) stat.skill[i]=0; - } - 'step 3' - trigger.player.phaseUse(); + var next=trigger.player.phaseUse(); + event.next.remove(next); + trigger.getParent('phase').next.push(next); }, ai:{ expose:0.5, diff --git a/character/yijiang.js b/character/yijiang.js index fec408e5f..ce0b73736 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -878,20 +878,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:'dangxian', audioname:['guansuo','xin_liaohua','re_liaohua'], content:function(){ - 'step 0' - player.phaseUse().xindangxian=true; - 'step 1' - var stat=player.getStat(); - stat.card={}; - for(var i in stat.skill){ - var bool=false; - var info=lib.skill[i]; - if(info.enable!=undefined){ - if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true; - else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true; - } - if(bool) stat.skill[i]=0; - } + var next=player.phaseUse(); + next.xindangxian=true; + event.next.remove(next); + trigger.next.push(next); }, group:'xindangxian_rewrite', subSkill:{ @@ -1443,8 +1433,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ else if(pe==te) return "摸一张牌"; else if(pete) target.recover(); @@ -6051,20 +6041,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ audio:2, audioname:['guansuo'], content:function(){ - 'step 0' - player.phaseUse(); - 'step 1' - var stat=player.getStat(); - stat.card={}; - for(var i in stat.skill){ - var bool=false; - var info=lib.skill[i]; - if(info.enable!=undefined){ - if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true; - else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true; - } - if(bool) stat.skill[i]=0; - } + var next=player.phaseUse(); + event.next.remove(next); + trigger.next.push(next); } }, longyin:{ @@ -12033,6 +12012,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } } }, + dynamicTranslate:{ + rejueqing:function(player){ + if(player.hasSkill('rejueqing_1st')) return '锁定技,你即将造成的伤害均视为失去体力。'; + return '当你对其他角色造成伤害时,你可以防止此伤害。若如此做,你令其失去2X点体力,修改〖绝情〗并对自己造成2X点伤害。'; + }, + reyanzhu:function(player){ + if(!player.storage.reyanzhu) return '出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。'; + return '出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。'; + }, + rexingxue:function(player){ + if(player.storage.reyanzhu) return '结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力上限)。'; + return '结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。'; + }, + jiaozhao:function(player){ + if(player.storage.jiaozhao2) return '出牌阶段限一次,你可以展示一张手牌,然后声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。'; + if(player.storage.jiaozhao1) return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌或普通锦囊牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。'; + return '出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。'; + }, + funan:function(player){ + if(player.hasSkill('funan_jiexun')) return '其他角色使用或打出牌响应你使用的牌时,你可获得其使用或打出的牌。'; + return '其他角色使用或打出牌响应你使用的牌时,你可令其获得你使用的牌(其本回合不能使用或打出这些牌),然后你获得其使用或打出的牌。'; + }, + }, translate:{ old_huaxiong:'华雄', yufan:'虞翻', @@ -12213,9 +12215,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xintaoluan_info:'若场上没有濒死的角色,则你可以将一张牌当做任意一张基本牌或普通锦囊牌使用(此牌不得是本回合内你以此法使用过的牌),然后你令一名其他角色选择一项:1.交给你X张与你以此法使用的牌类别不同的牌;2.你失去X点体力且滔乱无效直到回合结束(X为你本回合内发动过〖滔乱〗的次数且至多为3)', jiaozhao:'矫诏', jiaozhao2:'矫诏', - jiaozhao_info:'出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标', + jiaozhao_info:'出牌阶段限一次,你可以展示一张手牌,然后选择距离最近的一名其他角色,该角色声明一张基本牌的牌名。在此出牌阶段内,你可以将此手牌当声明的牌使用且你不能被选择为目标。', danxin:'殚心', - danxin_info:'当你受到伤害后,你可以摸一张牌,或对“矫诏”的描述依次执行下列一项修改:1.将“基本牌”改为“基本牌或普通锦囊牌”;2.将“选择距离最近的一名其他角色,该角色”改为“你”', + danxin_info:'当你受到伤害后,你可以摸一张牌,或对“矫诏”的描述依次执行下列一项修改:1.将“基本牌”改为“基本牌或普通锦囊牌”;2.将“选择距离最近的一名其他角色,该角色”改为“你”。', duliang:'督粮', duliang2:'督粮', duliang_info:'出牌阶段限一次,你可以获得一名其他角色的一张手牌,然后选择一项:1.令其观看牌堆顶的两张牌,然后获得其中的基本牌;2.令其于下个摸牌阶段额外摸一张牌。', @@ -12314,7 +12316,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ reyanzhu2:'宴诛', reyanzhu_info:'出牌阶段限一次,你可以令一名其他角色选择一项:将装备区里的所有牌交给你并令你修改〖宴诛〗和〖兴学〗,或弃置一张牌并令下一次受到的伤害+1直到其下回合开始。', reyanzhu_rewrite:'宴诛·改', - reyanzhu_rewrite_info:'出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1', + reyanzhu_rewrite_info:'出牌阶段限一次,你可以选择一名其他角色。该角色下一次受到的伤害+1直到其下回合开始。', rexingxue:'兴学', rexingxue_info:'结束阶段开始时,你可以令至多X名角色各摸一张牌。然后若有手牌数不等于体力值的目标角色,则这些角色各将一张牌置于牌堆顶。(X为你的体力值)。', rexingxue_rewrite:'兴学·改', diff --git a/game/asset.js b/game/asset.js index d172073a2..41c7f8c89 100644 --- a/game/asset.js +++ b/game/asset.js @@ -613,18 +613,18 @@ window.noname_asset_list=[ 'audio/die/xin_gongsunzan.mp3', 'audio/die/xin_liaohua.mp3', 'audio/die/xin_xusheng.mp3', - 'audio/die/bianfuren.mp3.mp3', - 'audio/die/caochun.mp3.mp3', - 'audio/die/mizhu.mp3.mp3', - 'audio/die/re_hanhaoshihuan.mp3.mp3', - 'audio/die/re_panfeng.mp3.mp3', - 'audio/die/re_panzhangmazhong.mp3.mp3', - 'audio/die/shen_ganning.mp3.mp3', - 'audio/die/shen_zhangliao.mp3.mp3', - 'audio/die/shixie.mp3.mp3', - 'audio/die/simazhao.mp3.mp3', - 'audio/die/sunqian.mp3.mp3', - 'audio/die/wuxian.mp3.mp3', + 'audio/die/bianfuren.mp3', + 'audio/die/caochun.mp3', + 'audio/die/mizhu.mp3', + 'audio/die/re_hanhaoshihuan.mp3', + 'audio/die/re_panfeng.mp3', + 'audio/die/re_panzhangmazhong.mp3', + 'audio/die/shen_ganning.mp3', + 'audio/die/shen_zhangliao.mp3', + 'audio/die/shixie.mp3', + 'audio/die/simazhao.mp3', + 'audio/die/sunqian.mp3', + 'audio/die/wuxian.mp3', 'audio/skill/anguo1.mp3', 'audio/skill/anguo2.mp3', @@ -2717,28 +2717,40 @@ window.noname_asset_list=[ 'audio/skill/zhuiyi_re_bulianshi2.mp3', 'audio/skill/zishou_re_liubiao1.mp3', 'audio/skill/zishou_re_liubiao2.mp3', - 'audio/skill/gzfudi1.mp3.mp3', - 'audio/skill/gzfudi2.mp3.mp3', - 'audio/skill/reanjian1.mp3.mp3', - 'audio/skill/reanjian2.mp3.mp3', - 'audio/skill/reduodao1.mp3.mp3', - 'audio/skill/reduodao2.mp3.mp3', - 'audio/skill/relonghun1.mp3.mp3', - 'audio/skill/relonghun2.mp3.mp3', - 'audio/skill/reshenduan1.mp3.mp3', - 'audio/skill/reshenduan2.mp3.mp3', - 'audio/skill/reyonglve1.mp3.mp3', - 'audio/skill/reyonglve2.mp3.mp3', - 'audio/skill/wanwei1.mp3.mp3', - 'audio/skill/wanwei2.mp3.mp3', - 'audio/skill/xiaoji_sp_sunshangxiang1.mp3.mp3', - 'audio/skill/xiaoji_sp_sunshangxiang2.mp3.mp3', - 'audio/skill/xinjuejing1.mp3.mp3', - 'audio/skill/xinjuejing2.mp3.mp3', - 'audio/skill/xinkuangfu1.mp3.mp3', - 'audio/skill/xinkuangfu2.mp3.mp3', - 'audio/skill/yuejian1.mp3.mp3', - 'audio/skill/yuejian2.mp3.mp3', + 'audio/skill/gzfudi1.mp3', + 'audio/skill/gzfudi2.mp3', + 'audio/skill/reanjian1.mp3', + 'audio/skill/reanjian2.mp3', + 'audio/skill/reduodao1.mp3', + 'audio/skill/reduodao2.mp3', + 'audio/skill/relonghun1.mp3', + 'audio/skill/relonghun2.mp3', + 'audio/skill/reshenduan1.mp3', + 'audio/skill/reshenduan2.mp3', + 'audio/skill/reyonglve1.mp3', + 'audio/skill/reyonglve2.mp3', + 'audio/skill/wanwei1.mp3', + 'audio/skill/wanwei2.mp3', + 'audio/skill/xiaoji_sp_sunshangxiang1.mp3', + 'audio/skill/xiaoji_sp_sunshangxiang2.mp3', + 'audio/skill/xinjuejing1.mp3', + 'audio/skill/xinjuejing2.mp3', + 'audio/skill/xinkuangfu1.mp3', + 'audio/skill/xinkuangfu2.mp3', + 'audio/skill/yuejian1.mp3', + 'audio/skill/yuejian2.mp3', + 'audio/skill/jilue_fangzhu1.mp3', + 'audio/skill/jilue_guicai1.mp3', + 'audio/skill/jilue_jizhi1.mp3', + 'audio/skill/jilue_zhiheng1.mp3', + 'audio/skill/lianpo1.mp3', + 'audio/skill/lianpo2.mp3', + 'audio/skill/renjie21.mp3', + 'audio/skill/renjie22.mp3', + 'audio/skill/sbaiyin1.mp3', + 'audio/skill/sbaiyin2.mp3', + 'audio/skill/wansha_shen_simayi1.mp3', + 'audio/skill/wansha_shen_simayi2.mp3', 'font/huangcao.ttf', 'font/shousha.ttf', @@ -5210,6 +5222,12 @@ window.noname_skin_list={ key_kamome:1, key_umi:1, key_umi2:1, - key_mio:1, + key_mio:3, key_midori:1, + key_akane:1, + key_kagari:1, + key_kud:2, + key_misuzu:1, + key_nagisa:1, + key_rin:3, }; \ No newline at end of file diff --git a/game/game.js b/game/game.js index 5ba2a885f..035ae0448 100644 --- a/game/game.js +++ b/game/game.js @@ -45,6 +45,7 @@ characterPack:{}, characterFilter:{}, characterSort:{}, + dynamicTranslate:{}, cardPack:{}, onresize:[], onphase:[], @@ -9876,7 +9877,8 @@ card.cards=cards.slice(0); event.card=card; } - if(!lib.filter.cardEnabled(card,player)){ + if(!lib.filter.cardEnabled(card,player)||(event.addCount!==false&&!lib.filter.cardUsable(card,player))){ + event.result={bool:false}; event.finish(); return; } @@ -9961,6 +9963,7 @@ if(event.noTargetDelay) next.targetDelay=false; if(event.nodelayx) next.delayx=false; } + else event.result={bool:false}; }, chooseToDuiben:function(){ 'step 0' @@ -10934,8 +10937,9 @@ else if(typeof info.prompt2=='string'){ next.set('prompt2',info.prompt2); } - else if(info.prompt2!=false&&lib.translate[event.skill+'_info']){ - next.set('prompt2',lib.translate[event.skill+'_info']); + else if(info.prompt2!=false){ + if(lib.dynamicTranslate[event.skill]) next.set('prompt2',lib.dynamicTranslate[event.skill](player,event.skill)); + else if(lib.translate[event.skill+'_info']) next.set('prompt2',lib.translate[event.skill+'_info']); } if(trigger.skillwarn){ if(next.prompt2){ @@ -11399,7 +11403,24 @@ delete ui.tempnowuxie; } }); - //delete player.using; + "step 2" + var stat=player.getStat(); + for(var i in stat.skill){ + var bool=false; + var info=lib.skill[i]; + if(!info) continue; + if(info.enable!=undefined){ + if(typeof info.enable=='string'&&info.enable=='phaseUse') bool=true; + else if(typeof info.enable=='object'&&info.enable.contains('phaseUse')) bool=true; + } + if(bool) stat.skill[i]=0; + } + for(var i in stat.card){ + var bool=false; + var info=lib.card[i]; + if(!info) continue; + if(info.updateUsable=='phaseUse') stat.card[i]=0; + } }, phaseDiscard:function(){ "step 0" @@ -24331,11 +24352,14 @@ }, cardUsable:function(card,player,event){ card=get.autoViewAs(card,null,player); - if(player!=_status.event.player) return true; - event=event||_status.event; - if(event.getParent().name!='phaseUse') return true; - if(event.getParent().player!=player) return true; - var num=get.info(card).usable; + var info=get.info(card); + if(info.updateUsable=='phaseUse'){ + event=event||_status.event; + if(player!=_status.event.player) return true; + if(event.getParent().name!='phaseUse') return true; + if(event.getParent().player!=player) return true; + } + var num=info.usable; if(typeof num=='function') num=num(card,player); num=game.checkMod(card,player,num,'cardUsable',player); if(typeof num!='number') return true; @@ -45916,6 +45940,9 @@ else if(info.promptfunc){ event.skillDialog=ui.create.dialog(str,'
      '+info.promptfunc(event,event.player)+'
      '); } + else if(lib.dynamicTranslate[skill]){ + event.skillDialog=ui.create.dialog(str,'
      '+lib.dynamicTranslate[skill](event.player,skill)+'
      '); + } else if(lib.translate[skill+'_info']){ event.skillDialog=ui.create.dialog(str,'
      '+lib.translate[skill+'_info']+'
      '); } @@ -49036,7 +49063,8 @@ } return get.translation(str); }, - skillInfoTranslation:function(name){ + skillInfoTranslation:function(name,player){ + if(player&&lib.dynamicTranslate[name]) return lib.dynamicTranslate[name](player,name); var str=lib.translate[name+'_info']; if(!str) return ''; return str; @@ -49738,15 +49766,15 @@ else{ forbidstr+='(双将禁用)
      '; } - forbidstr+=get.skillInfoTranslation(skills[i])+'' + forbidstr+=get.skillInfoTranslation(skills[i],node)+'' uiintro.add(forbidstr); } else if(!skills2.contains(skills[i])){ - uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i])+'
      '); + uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i],node)+'
      '); } else if(lib.skill[skills[i]].temp||!node.skills.contains(skills[i])||lib.skill[skills[i]].thundertext){ if(lib.skill[skills[i]].frequent||lib.skill[skills[i]].subfrequent){ - uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i])+'
      自动发动
      '); + uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i],node)+'
      自动发动
      '); var underlinenode=uiintro.content.lastChild.querySelector('.underlinenode'); if(lib.skill[skills[i]].frequent){ if(lib.config.autoskilllist.contains(skills[i])){ @@ -49767,11 +49795,11 @@ underlinenode.listen(ui.click.autoskill2); } else{ - uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i])+'
      '); + uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i],node)+'
      '); } } else if(lib.skill[skills[i]].frequent||lib.skill[skills[i]].subfrequent){ - uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i])+'
      自动发动
      '); + uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i],node)+'
      自动发动
      '); var underlinenode=uiintro.content.lastChild.querySelector('.underlinenode'); if(lib.skill[skills[i]].frequent){ if(lib.config.autoskilllist.contains(skills[i])){ @@ -49792,7 +49820,7 @@ underlinenode.listen(ui.click.autoskill2); } else if(lib.skill[skills[i]].clickable&&node.isIn()&&node.isUnderControl(true)){ - var intronode=uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i])+'
      ').querySelector('.skillbutton'); + var intronode=uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i],node)+'
      ').querySelector('.skillbutton'); if(!_status.gameStarted||(lib.skill[skills[i]].clickableFilter&&!lib.skill[skills[i]].clickableFilter(node))){ intronode.classList.add('disabled'); intronode.style.opacity=0.5; @@ -49808,7 +49836,7 @@ uiintro.add('
      '+get.translation(skills[i])+'
      '+lib.translate[skills[i]+'_info']+'
      '); } else{ - uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i])+'
      '); + uiintro.add('
      【'+translation+'】
      '+get.skillInfoTranslation(skills[i],node)+'
      '); } if(lib.translate[skills[i]+'_append']){ uiintro._place_text=uiintro.add('
      '+lib.translate[skills[i]+'_append']+'
      ') diff --git a/game/keyWords.js b/game/keyWords.js index 57a10fb8d..a4b84f427 100644 --- a/game/keyWords.js +++ b/game/keyWords.js @@ -1,3 +1,3 @@ window.bannedKeyWords=[ -'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为', +'ghs','直肠','性交','做爱','http','吃奶','骚逼','哈巴狗','美眉','癌','屁眼','艹','傻逼','操你','做鸡','奸','姦','华为','屄','狗子','屎', ]; \ No newline at end of file diff --git a/game/update.js b/game/update.js index 5367a03b7..d5d7dad73 100644 --- a/game/update.js +++ b/game/update.js @@ -1,9 +1,8 @@ window.noname_update={ - version:'1.9.104.1', - update:'1.9.104', + version:'1.9.105', + update:'1.9.104.1', changeLog:[ - '界小乔', - '新的默认联机地址', + '动态技能描述(dynamicTranslate)', 'bug修复', ], @@ -11,22 +10,22 @@ window.noname_update={ //'card/extra.js', //'card/huanlekapai.js', //'card/sp.js', - //'card/standard.js', - //'card/swd.js', + 'card/standard.js', + 'card/swd.js', //'card/mtg.js', //'card/gujian.js', //'card/guozhan.js', - //'card/gwent.js', + 'card/gwent.js', //'card/yunchou.js', //'card/zhenfa.js', 'card/zhulu.js', - //'character/diy.js', + 'character/diy.js', 'character/extra.js', //'character/hearth.js', //'character/gujian.js', //'character/gwent.js', //'character/hearth.js', - //'character/mobile.js', + 'character/mobile.js', //'character/mtg.js', //'character/old.js', 'character/refresh.js', @@ -34,17 +33,17 @@ window.noname_update={ 'character/sp.js', 'character/sp2.js', //'character/tw.js', - //'character/standard.js', + 'character/standard.js', //'character/swd.js', //'character/xianjian.js', - //'character/xinghuoliaoyuan.js', + 'character/xinghuoliaoyuan.js', 'character/yijiang.js', //'character/yxs.js', //'extension/boss/extension.js', - //'layout/default/layout.css', + 'layout/default/layout.css', //'layout/nova/layout.css', //'mode/identity.js', - //'mode/doudizhu.js', + 'mode/doudizhu.js', 'mode/guozhan.js', //'mode/chess.js', //'mode/tafang.js', diff --git a/image/key_akane/1.jpg b/image/key_akane/1.jpg new file mode 100644 index 000000000..5c4d86ff3 Binary files /dev/null and b/image/key_akane/1.jpg differ diff --git a/image/key_kagari/1.jpg b/image/key_kagari/1.jpg new file mode 100644 index 000000000..174df0770 Binary files /dev/null and b/image/key_kagari/1.jpg differ diff --git a/image/key_kud/1.jpg b/image/key_kud/1.jpg new file mode 100644 index 000000000..f030d08fd Binary files /dev/null and b/image/key_kud/1.jpg differ diff --git a/image/key_kud/2.jpg b/image/key_kud/2.jpg new file mode 100644 index 000000000..02efec825 Binary files /dev/null and b/image/key_kud/2.jpg differ diff --git a/image/key_mio/2.jpg b/image/key_mio/2.jpg new file mode 100644 index 000000000..3371e563c Binary files /dev/null and b/image/key_mio/2.jpg differ diff --git a/image/key_mio/3.jpg b/image/key_mio/3.jpg new file mode 100644 index 000000000..9e5f2f63e Binary files /dev/null and b/image/key_mio/3.jpg differ diff --git a/image/key_misuzu/1.jpg b/image/key_misuzu/1.jpg new file mode 100644 index 000000000..35fa260d1 Binary files /dev/null and b/image/key_misuzu/1.jpg differ diff --git a/image/key_nagisa/1.jpg b/image/key_nagisa/1.jpg new file mode 100644 index 000000000..578fef8c5 Binary files /dev/null and b/image/key_nagisa/1.jpg differ diff --git a/image/key_rin/1.jpg b/image/key_rin/1.jpg new file mode 100644 index 000000000..f2eabc4a1 Binary files /dev/null and b/image/key_rin/1.jpg differ diff --git a/image/key_rin/2.jpg b/image/key_rin/2.jpg new file mode 100644 index 000000000..ba658041e Binary files /dev/null and b/image/key_rin/2.jpg differ diff --git a/image/key_rin/3.jpg b/image/key_rin/3.jpg new file mode 100644 index 000000000..341c50c61 Binary files /dev/null and b/image/key_rin/3.jpg differ diff --git a/layout/default/layout.css b/layout/default/layout.css index f854bf3c9..a46816bda 100644 --- a/layout/default/layout.css +++ b/layout/default/layout.css @@ -2735,14 +2735,14 @@ div:not(.handcards)>.card>.info>span, opacity: 0 !important; } -.player[data-position='0'].unseen>.avatar, -.player[data-position='0'].unseen2>.avatar2, -.player[data-position='0'].unseen>.name:not(.name2):not(.name_seat), -.player[data-position='0'].unseen2>.name2, -.unseen_v>.avatar, -.unseen2_v>.avatar2, -.unseen_v>.name:not(.name2):not(.name_seat), -.unseen2_v>.name2 { +#arena:not(.observe) .player[data-position='0'].unseen>.avatar, +#arena:not(.observe) .player[data-position='0'].unseen2>.avatar2, +#arena:not(.observe) .player[data-position='0'].unseen>.name:not(.name2):not(.name_seat), +#arena:not(.observe) .player[data-position='0'].unseen2>.name2, +#arena:not(.observe) .unseen_v>.avatar, +#arena:not(.observe) .unseen2_v>.avatar2, +#arena:not(.observe) .unseen_v>.name:not(.name2):not(.name_seat), +#arena:not(.observe) .unseen2_v>.name2 { opacity: 0.2 !important } @@ -2752,6 +2752,7 @@ div:not(.handcards)>.card>.info>span, .player:not([data-position='0']).unseen.unseen2>.name_seat { opacity: 1 !important; } + .linked>.avatar,.linked>.avatar2 { transform: rotate(-90deg); } diff --git a/mode/doudizhu.js b/mode/doudizhu.js index 7a5833d1f..7fd6e4d40 100644 --- a/mode/doudizhu.js +++ b/mode/doudizhu.js @@ -1205,7 +1205,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ trigger:{player:'phaseJudgeBegin'}, direct:true, filter:function(event,player){ - return player==game.zhu&&player.countCards('j'); + return player==game.zhu&&player.countCards('j')&&player.countCards('h')>1; }, content:function(){ "step 0" diff --git a/mode/guozhan.js b/mode/guozhan.js index 1e894a5cb..4da2a5387 100644 --- a/mode/guozhan.js +++ b/mode/guozhan.js @@ -1157,40 +1157,43 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ filter:function(event,player){return event.source&&event.source.isAlive()&&event.source!=player&&event.player==player&&player.countCards('h')&&event.num>0}, content:function(){ 'step 0' - event.players=game.filterPlayer(function(current){ + var players=game.filterPlayer(function(current){ return current.isFriendOf(trigger.source)&¤t.hp>=player.hp&&!game.hasPlayer(function(current2){ - return current2.hp>current.hp&¤t2.isFriendOf(current); + return current2.hp>current.hp&¤t2.isFriendOf(trigger.source); }) }); - var str=event.players.length?',然后对'+get.translation(event.players)+(event.players.length==1?'':'中的一名角色')+'造成一点伤害':''; var check=true; - if(!event.players.length) check=false; + if(!players.length) check=false; else{ if(get.attitude(player,trigger.source)>=0) check=false; - else if(!player.countCards('h',function(card){return get.value(card)<9})) check=false; } - player.chooseCard('附敌

      交给'+get.translation(trigger.source)+'一张手牌'+str+'
      ').set('aicheck',check).set('ai',function(card){ + player.chooseCard(get.prompt('gzfudi'),'交给其一张手牌,然后对其势力中体力值最大且不小于你的一名角色造成1点伤害').set('aicheck',check).set('ai',function(card){ if(!_status.event.aicheck) return 0; return 9-get.value(card); }); 'step 1' - if(result.cards){ + if(result.bool){ player.logSkill('gzfudi',trigger.source); trigger.source.gain(result.cards,player,'giveAuto'); - if(event.players.length==1) event.target=event.players[0]; - else if(event.players.length) player.chooseTarget('附敌

      对'+get.translation(event.players)+'中的一名角色造成一点伤害
      ',function(card,player,target){ - return target.isFriendOf(_status.event.getTrigger().source)&&target.hp>=player.hp&&!game.hasPlayer(function(current){ - return current.isFriendOf(target)&¤t.hp>target.hp; - }) - },true).set('ai',function(target){return get.damageEffect(target,player,player)}); - else event.finish(); } else event.finish(); 'step 2' - var target=event.target||result.targets[0]; - if(target){ - player.line(target,'green'); - target.damage(player); + var list=game.filterPlayer(function(current){ + return current.hp>=player.hp&¤t.isFriendOf(trigger.source)&&!game.hasPlayer(function(current2){ + return current2.hp>current.hp&¤t2.isFriendOf(trigger.source); + }); + }); + if(list.length){ + if(list.length==1) event._result={bool:true,targets:list}; + else player.chooseTarget(true,'对'+get.translation(trigger.source)+'势力中体力值最大的一名角色造成1点伤害',function(card,player,target){ + return _status.event.list.contains(target); + }).set('list',list).set('ai',function(target){return get.damageEffect(target,player,player)}); + } + else event.finish(); + 'step 3' + if(result.bool&&result.targets.length){ + player.line(result.targets[0]); + result.targets[0].damage(); } }, ai:{ @@ -1216,7 +1219,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ audio:'drlt_congjian', filter:function(event,player,name){ if(event.num<=0) return false; - if(name=='damageBegin1'&&_status.currentPhase!=player&&event.notLink()) return true; + if(name=='damageBegin1'&&_status.currentPhase!=player) return true; if(name=='damageBegin3'&&_status.currentPhase==player) return true; return false; }, @@ -1224,9 +1227,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ return _status.currentPhase!=player; }, content:function(){trigger.num++}, - ai:{ - //damageBones:true, - } }, jianan:{ audio:2,