diff --git a/audio/skill/diancai1.mp3 b/audio/skill/diancai1.mp3 new file mode 100644 index 000000000..0ccab0a25 Binary files /dev/null and b/audio/skill/diancai1.mp3 differ diff --git a/audio/skill/diancai2.mp3 b/audio/skill/diancai2.mp3 new file mode 100644 index 000000000..1b7bc5e13 Binary files /dev/null and b/audio/skill/diancai2.mp3 differ diff --git a/audio/skill/diaodu1.mp3 b/audio/skill/diaodu1.mp3 new file mode 100644 index 000000000..9690c01ff Binary files /dev/null and b/audio/skill/diaodu1.mp3 differ diff --git a/audio/skill/diaodu2.mp3 b/audio/skill/diaodu2.mp3 new file mode 100644 index 000000000..f86c1d6d8 Binary files /dev/null and b/audio/skill/diaodu2.mp3 differ diff --git a/audio/skill/gz_jun_liubei.mp3 b/audio/skill/gz_jun_liubei.mp3 new file mode 100644 index 000000000..4afa753ae Binary files /dev/null and b/audio/skill/gz_jun_liubei.mp3 differ diff --git a/audio/skill/gz_jun_sunquan.mp3 b/audio/skill/gz_jun_sunquan.mp3 new file mode 100644 index 000000000..fb8447894 Binary files /dev/null and b/audio/skill/gz_jun_sunquan.mp3 differ diff --git a/audio/skill/gzzongyu1.mp3 b/audio/skill/gzzongyu1.mp3 new file mode 100644 index 000000000..dc10d827b Binary files /dev/null and b/audio/skill/gzzongyu1.mp3 differ diff --git a/audio/skill/gzzongyu2.mp3 b/audio/skill/gzzongyu2.mp3 new file mode 100644 index 000000000..7e8430de5 Binary files /dev/null and b/audio/skill/gzzongyu2.mp3 differ diff --git a/audio/skill/hongfa1.mp3 b/audio/skill/hongfa1.mp3 new file mode 100644 index 000000000..2eb98486d Binary files /dev/null and b/audio/skill/hongfa1.mp3 differ diff --git a/audio/skill/hongfa2.mp3 b/audio/skill/hongfa2.mp3 new file mode 100644 index 000000000..7e32a02be Binary files /dev/null and b/audio/skill/hongfa2.mp3 differ diff --git a/audio/skill/hongfa_hp.mp3 b/audio/skill/hongfa_hp.mp3 new file mode 100644 index 000000000..a5d03b163 Binary files /dev/null and b/audio/skill/hongfa_hp.mp3 differ diff --git a/audio/skill/huangjintianbingfu1.mp3 b/audio/skill/huangjintianbingfu1.mp3 new file mode 100644 index 000000000..731c1cc68 Binary files /dev/null and b/audio/skill/huangjintianbingfu1.mp3 differ diff --git a/audio/skill/huangjintianbingfu2.mp3 b/audio/skill/huangjintianbingfu2.mp3 new file mode 100644 index 000000000..97685de68 Binary files /dev/null and b/audio/skill/huangjintianbingfu2.mp3 differ diff --git a/audio/skill/huibian1.mp3 b/audio/skill/huibian1.mp3 new file mode 100644 index 000000000..861317d59 Binary files /dev/null and b/audio/skill/huibian1.mp3 differ diff --git a/audio/skill/huibian2.mp3 b/audio/skill/huibian2.mp3 new file mode 100644 index 000000000..f9dfa9686 Binary files /dev/null and b/audio/skill/huibian2.mp3 differ diff --git a/audio/skill/jiahe1.mp3 b/audio/skill/jiahe1.mp3 new file mode 100644 index 000000000..fa94929d1 Binary files /dev/null and b/audio/skill/jiahe1.mp3 differ diff --git a/audio/skill/jiahe2.mp3 b/audio/skill/jiahe2.mp3 new file mode 100644 index 000000000..a35b153c1 Binary files /dev/null and b/audio/skill/jiahe2.mp3 differ diff --git a/audio/skill/jiahe_put1.mp3 b/audio/skill/jiahe_put1.mp3 new file mode 100644 index 000000000..0d338298c Binary files /dev/null and b/audio/skill/jiahe_put1.mp3 differ diff --git a/audio/skill/jiahe_put2.mp3 b/audio/skill/jiahe_put2.mp3 new file mode 100644 index 000000000..84f321534 Binary files /dev/null and b/audio/skill/jiahe_put2.mp3 differ diff --git a/audio/skill/jianan1.mp3 b/audio/skill/jianan1.mp3 new file mode 100644 index 000000000..72931e407 Binary files /dev/null and b/audio/skill/jianan1.mp3 differ diff --git a/audio/skill/jianan2.mp3 b/audio/skill/jianan2.mp3 new file mode 100644 index 000000000..b44a3c311 Binary files /dev/null and b/audio/skill/jianan2.mp3 differ diff --git a/audio/skill/jizhao1.mp3 b/audio/skill/jizhao1.mp3 new file mode 100644 index 000000000..be9d096aa Binary files /dev/null and b/audio/skill/jizhao1.mp3 differ diff --git a/audio/skill/jizhao2.mp3 b/audio/skill/jizhao2.mp3 new file mode 100644 index 000000000..5608eebcc Binary files /dev/null and b/audio/skill/jizhao2.mp3 differ diff --git a/audio/skill/jubao1.mp3 b/audio/skill/jubao1.mp3 new file mode 100644 index 000000000..d40da57b1 Binary files /dev/null and b/audio/skill/jubao1.mp3 differ diff --git a/audio/skill/jubao2.mp3 b/audio/skill/jubao2.mp3 new file mode 100644 index 000000000..cd5f425fc Binary files /dev/null and b/audio/skill/jubao2.mp3 differ diff --git a/audio/skill/lianzi1.mp3 b/audio/skill/lianzi1.mp3 new file mode 100644 index 000000000..2d9a60099 Binary files /dev/null and b/audio/skill/lianzi1.mp3 differ diff --git a/audio/skill/lianzi2.mp3 b/audio/skill/lianzi2.mp3 new file mode 100644 index 000000000..73475b7a1 Binary files /dev/null and b/audio/skill/lianzi2.mp3 differ diff --git a/audio/skill/rerende_gz_jun_liubei1.mp3 b/audio/skill/rerende_gz_jun_liubei1.mp3 new file mode 100644 index 000000000..527bdb7db Binary files /dev/null and b/audio/skill/rerende_gz_jun_liubei1.mp3 differ diff --git a/audio/skill/rerende_gz_jun_liubei2.mp3 b/audio/skill/rerende_gz_jun_liubei2.mp3 new file mode 100644 index 000000000..6231d8217 Binary files /dev/null and b/audio/skill/rerende_gz_jun_liubei2.mp3 differ diff --git a/audio/skill/wendao1.mp3 b/audio/skill/wendao1.mp3 new file mode 100644 index 000000000..5052e5dbd Binary files /dev/null and b/audio/skill/wendao1.mp3 differ diff --git a/audio/skill/wendao2.mp3 b/audio/skill/wendao2.mp3 new file mode 100644 index 000000000..8ad7204e4 Binary files /dev/null and b/audio/skill/wendao2.mp3 differ diff --git a/audio/skill/wuxin1.mp3 b/audio/skill/wuxin1.mp3 new file mode 100644 index 000000000..a22eff2fe Binary files /dev/null and b/audio/skill/wuxin1.mp3 differ diff --git a/audio/skill/wuxin2.mp3 b/audio/skill/wuxin2.mp3 new file mode 100644 index 000000000..ed10c44ed Binary files /dev/null and b/audio/skill/wuxin2.mp3 differ diff --git a/audio/skill/zhangwu1.mp3 b/audio/skill/zhangwu1.mp3 new file mode 100644 index 000000000..b062da5a8 Binary files /dev/null and b/audio/skill/zhangwu1.mp3 differ diff --git a/audio/skill/zhangwu2.mp3 b/audio/skill/zhangwu2.mp3 new file mode 100644 index 000000000..e49c860a5 Binary files /dev/null and b/audio/skill/zhangwu2.mp3 differ diff --git a/audio/skill/zhiheng_gz_jun_sunquan1.mp3 b/audio/skill/zhiheng_gz_jun_sunquan1.mp3 new file mode 100644 index 000000000..bfe9aa2e5 Binary files /dev/null and b/audio/skill/zhiheng_gz_jun_sunquan1.mp3 differ diff --git a/audio/skill/zhiheng_gz_jun_sunquan2.mp3 b/audio/skill/zhiheng_gz_jun_sunquan2.mp3 new file mode 100644 index 000000000..aaf4b9cf2 Binary files /dev/null and b/audio/skill/zhiheng_gz_jun_sunquan2.mp3 differ diff --git a/character/diy.js b/character/diy.js index d3dd6a2a1..3e37e0c26 100755 --- a/character/diy.js +++ b/character/diy.js @@ -12,7 +12,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ key_haruko:['female','key',4,['haruko_haofang','haruko_zhuishi']], key_umi:['female','key',3,['umi_chaofan','umi_lunhui','umi_qihuan']], key_umi2:['female','key',3,[],['unseen']], - key_kagari:['female','shen',3,['kagari_zongsi']], + key_kagari:['female','shen',3,['kagari_zongsi'],['key']], key_rei:['male','key',4,['xiandeng','shulv','xisheng']], key_komari:['female','key',3,['komari_tiankou','komari_xueshang']], // diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']], @@ -4305,8 +4305,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ discard:false, prompt:'将一张装备牌置入弃牌堆并摸一张牌', delay:0.5, + loseTo:'discardPile', prepare:function(cards,player){ player.$throw(cards,1000); + game.log(player,'将',cards,'置入了弃牌堆'); }, ai:{ basic:{ diff --git a/character/refresh.js b/character/refresh.js index 3534a286d..4307a9dd9 100755 --- a/character/refresh.js +++ b/character/refresh.js @@ -77,6 +77,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ characterIntro:{ re_gongsunzan:'群雄之一。出身贵族,因母地位卑贱,只当了郡中小吏。他貌美,声音洪亮,机智善辩。后随卢植于缑氏山中读书,粗通经传。', re_lidian:'字曼成,曹操麾下将领。李典深明大义,不与人争功,崇尚学习与高贵儒雅,尊重博学之士,在军中被称为长者。李典有长者之风,官至破虏将军,三十六岁去世。魏文帝曹丕继位后追谥号为愍侯。', + sunben:' ', }, characterFilter:{ re_zuoci:function(mode){ @@ -1350,13 +1351,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ else if(event.count0&&event.source!=player); }, content:function(){ - player.gainPlayerCard([1,trigger.num],get.prompt('fankui',trigger.source),trigger.source,get.buttonValue,'he').set('logSkill',['refankui',trigger.source]); + "step 0" + event.count=trigger.num; + "step 1" + event.count--; + player.gainPlayerCard(get.prompt('refankui',trigger.source),trigger.source,get.buttonValue,'he').set('logSkill',['refankui',trigger.source]); + "step 2" + if(result.bool&&event.count>0&&event.source.countGainableCards(player,'he')>0) event.goto(1); }, ai:{ maixie_defend:true, @@ -2868,8 +2882,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(result.bool){ player.storage.qingjian++; player.logSkill('qingjian',result.targets); - result.targets[0].gain(result.cards,player); - player.$give(result.cards.length,result.targets[0]); + result.targets[0].gain(result.cards,player,'give'); for(var i=0;i=2) return 1; return 0; @@ -7214,7 +7221,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(result.bool){ player.logSkill('tuifeng'); player.lose(result.cards,ui.special,'toStorage'); - player.$give(result.cards,player); + player.$give(result.cards,player,false); for(var i=0;i1) return false; - return game.hasPlayer(function(current){ - return current.hasSkill('junbing'); - }); + return event.player.countCards('h')<=1; }, - check:function(event,player){ - var target=game.findPlayer(function(current){ - return current.hasSkill('junbing'); - }); + direct:true, + checkx:function(target,player){ if(target){ var num=target.countCards('h'); var att=get.attitude(player,target); @@ -12356,33 +12357,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - player.draw(); - if(player.hasSkill('junbing')){ - event.finish(); - } - else{ - event.target=game.findPlayer(function(current){ - return current.hasSkill('junbing'); - }); - } + event.target=player; + event.player=trigger.player; + event.player.chooseBool('是否对'+get.translation(event.target)+'发动【郡兵】?',event.player==event.target?'摸一张牌':'摸一张牌,将所有手牌交给该角色,然后该角色交给你等量的手牌').set('choice',lib.skill.junbing.checkx(event.target,event.player)); "step 1" + if(!result.bool){event.finish();return} + target.logSkill('junbing',player); + if(player==target) event.finish(); + player.draw(); + "step 2" var cards=player.getCards('h'); target.gain(cards,player,'giveAuto'); event.num=cards.length; game.delay(); - "step 2" + "step 3" target.chooseCard('选择还给'+get.translation(player)+'的牌',true,event.num); game.delay(0.2); - "step 3" + "step 4" player.gain(result.cards,target,'giveAuto'); game.delay(); - } - }, - junbing:{ + }, audio:2, - global:'junbing2', - unique:true, - forceunique:true }, xiongyi:{ skillAnimation:true, @@ -12966,8 +12961,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.count--; "step 2" if(event.count){ - if(lib.config.autoskilllist.contains('mingzhe')) player.chooseBool(get.prompt2('mingzhe')); - else event._result={bool:true}; + player.chooseBool(get.prompt2('mingzhe')).set('frequentSkill','mingzhe'); } else event.finish(); "step 3" @@ -13130,7 +13124,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ result.targets[0].addSkill('bifa2'); result.targets[0].storage.bifa=[result.cards[0],player]; player.lose(result.cards[0],result.targets[0].node.special,'toStorage'); - player.$give(1,result.targets[0]); + player.$give(1,result.targets[0],false); } }, ai:{ @@ -13224,7 +13218,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){ trigger:{player:['phaseBefore','changeHp']}, forced:true, popup:false, - unique:true, + //unique:true, + init:function(player){ + if(game.online) return; + player.removeAdditionalSkill('baobian'); + var list=[]; + if(player.hp<=3){ + if(trigger.num!=undefined&&trigger.num<0&&player.hp-trigger.num>1) player.logSkill('baobian'); + list.push('retiaoxin'); + } + if(player.hp<=2){ + list.push('new_repaoxiao'); + } + if(player.hp<=1){ + list.push('xinshensu'); + } + if(list.length){ + player.addAdditionalSkill('baobian',list); + } + }, derivation:['retiaoxin','new_repaoxiao','xinshensu'], content:function(){ player.removeAdditionalSkill('baobian'); @@ -13397,7 +13409,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ thisTarget.equip(thisCard); event.target=thisTarget; if(thisTarget!=player){ - player.$give(thisCard,thisTarget); + player.$give(thisCard,thisTarget,false); } switch(get.subtype(thisCard)){ case 'equip1':{ @@ -13745,7 +13757,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ else event.finish(); "step 2" if(result.bool){ - trigger.player.$give(event.card,player); + trigger.player.$give(event.card,player,false); player.equip(event.card); } else trigger.player.discard(event.card); @@ -14073,9 +14085,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ diaodu_info:"当你使用装备牌时,你可以摸一张牌;出牌阶段开始时,你可以获得一名其他角色装备区里的一张牌,然后你可以将此牌交给另一名角色。", diancai:'典财', diancai_info:'其他角色的出牌阶段结束时,若你于此阶段失去了X张或更多的牌,则你可以将手牌摸至体力上限。(X为你的体力值)', - zhengbi:'征辟', - zhengbi_info:'出牌阶段开始时,你可以选择一项:选择一名未受伤的其他角色,你对其使用的牌无距离限制且不计入使用次数直到回合结束;或将一张基本牌交给一名其他角色,然后其交给你一张非基本牌或两张基本牌。', - fengying:'奉迎', + zhengbi:'征辟', + zhengbi_info:'出牌阶段开始时,你可以选择一项:选择一名未受伤的其他角色,你对其使用的牌无距离限制且不计入使用次数直到回合结束;或将一张基本牌交给一名其他角色,然后其交给你一张非基本牌或两张基本牌。', + fengying:'奉迎', fengying_info:'限定技,出牌阶段,你可以弃置所有手牌。若如此做,你可以令等量的角色将手牌摸至X张(X为其体力上限且至多为5)。然后,你结束出牌阶段,并在当前回合结束后进行一个新的回合。', qingzhong:'清忠', @@ -14146,7 +14158,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yirang:'揖让', yirang_info:'出牌阶段开始时,你可以将所有非基本牌交给一名体力上限大于你的其他角色,然后调整体力上限至与该角色相同,你回复X点体力(X为你以此法交给其的牌的类别数)', kuangcai:'狂才', - kuangcai_info:'出牌阶段开始时,你可以令你此阶段内的主动出牌时间变为5秒,响应出牌时间也变为5秒。若如此做,你使用牌没距离和次数限制,且每当你于此阶段内使用牌时,你摸一张牌且主动出牌时间-1秒。你一回合通过狂才最多获得5张牌', + kuangcai_info:'出牌阶段开始时,你可以令你此阶段内的主动出牌时间变为5秒。若如此做,你使用牌没距离和次数限制,且每当你于此阶段内使用牌时,你摸一张牌且主动出牌时间-1秒。你一回合通过狂才最多获得5张牌。', shejian:'舌剑', shejian_info:'弃牌阶段结束时,若你于此阶段弃置的所有牌花色均不相同,你可以弃置一名其他角色的一张牌', fenyue:'奋钺', @@ -14304,49 +14316,49 @@ game.import('character',function(lib,game,ui,get,ai,_status){ luoyan:'落雁', luoyan_info:'锁定技。若你的武将牌上有“星舞牌”,你拥有“天香”和“流离”', yinbing:'引兵', - yinbing_info:'结束阶段开始时,你可以将至少一张非基本牌置于武将牌上。每当你受到【杀】或【决斗】的伤害后,你移去一张“引兵牌”', + yinbing_info:'结束阶段开始时,你可以将至少一张非基本牌置于武将牌上。每当你受到【杀】或【决斗】的伤害后,你移去一张「引兵」牌。', juedi:'绝地', - juedi_info:'锁定技,准备阶段,你选择一项:1.移去“引兵”牌,将手牌补至体力上限数;2.将“引兵”牌交给一名体力值不大于你的其他角色,其回复1点体力,摸等量的牌', + juedi_info:'锁定技,准备阶段,若你的武将牌上有「引兵」牌,你选择一项:1.移去「引兵」牌,将手牌补至体力上限数;2.将「引兵」牌交给一名体力值不大于你的其他角色,其回复1点体力并摸等量的牌。', kuangfu:'狂斧', - kuangfu_info:'每当你使用杀造成伤害,可以将对方的一张装备牌移到你的装备区或弃置之。', + kuangfu_info:'当你使用【杀】造成伤害时,你可以选择一项:弃置其装备区内的一张牌,或将其装备区内的一张牌移动到你的装备区内。', xintan:'心惔', - xintan_info:'出牌阶段限一次,你可以移去两张“焚”并选择一名角色,该角色失去一点体力', + xintan_info:'出牌阶段限一次,你可以移去两张「焚」并选择一名角色,该角色失去一点体力。', fentian:'焚天', - fentian_info:'锁定技,结束阶段开始时,若你的手牌数少于体力值,你须选择一名攻击范围内的角色,将其一张牌置于你的武将牌上,称为“焚”。锁定技,你的攻击范围+X(X为“焚”的数量)', + fentian_info:'锁定技,结束阶段开始时,若你的手牌数少于体力值,你须选择一名攻击范围内的角色,将其一张牌置于你的武将牌上,称为「焚」。锁定技,你的攻击范围+X(X为「焚」的数量)', zhiri:'炙日', - zhiri_info:'觉醒技,准备阶段开始时,若“焚”数不小于3,你减1点体力上限,然后获得技能“心惔”', + zhiri_info:'觉醒技,准备阶段开始时,若你的「焚」的数量不小于3,你减1点体力上限,然后获得技能〖心惔〗', meibu:'魅步', - meibu_info:'一名其他角色的出牌阶段开始时,若你不在其攻击范围内,你可以令该角色的锦囊牌均视为【杀】,直到该角色以此法使用了一张【杀】或回合结束。若如此做,则直到回合结束,视为你在其攻击范围内', + meibu_info:'其他角色的出牌阶段开始时,若你不在其攻击范围内,你可以令该角色的锦囊牌均视为【杀】,直到该角色以此法使用了一张【杀】或回合结束。若如此做,则直到回合结束,视为你在其攻击范围内。', mumu:'穆穆', - mumu_info:'出牌阶段限一次,你可以弃置一张【杀】或黑色锦囊牌,然后选择一项:弃置场上一张武器牌,然后摸一张牌;或将场上的一张防具牌移动到你的装备区里(可替换原防具)', + mumu_info:'出牌阶段限一次,你可以弃置一张【杀】或黑色锦囊牌,然后选择一项:弃置场上的一张武器牌,然后摸一张牌;或将场上的一张防具牌移动到你的装备区里(可替换原防具)。', zhanyi:'战意', zhanyi_basic_sha:'战杀', zhanyi_basic_jiu:'战酒', zhanyi_basic_tao:'战桃', - zhanyi_info:'出牌阶段限一次,你可以弃置一张牌并失去1点体力,然后根据你弃置的牌获得以下效果直到回合结束:基本牌,你可以将一张基本牌当作杀、酒或桃使用;锦囊牌,摸两张牌且你使用的牌无距离限制;装备牌,你使用【杀】指定目标角色后,其弃置两张牌', + zhanyi_info:'出牌阶段限一次,你可以弃置一张牌并失去1点体力,然后根据你弃置的牌获得以下效果直到回合结束:基本牌,你可以将一张基本牌当作【杀】、【酒】或【桃】使用;锦囊牌,摸两张牌且你使用的牌无距离限制;装备牌,你使用【杀】指定目标角色后,其弃置两张牌。', nuzhan:'怒斩', nuzhan2:'怒斩', - nuzhan_info:'锁定技,你每当你使用由一张锦囊牌转化而来的【杀】时,你可以额外使用一张杀;锁定技,你使用的由一张装备牌转化而来的【杀】的伤害值基数+1', + nuzhan_info:'锁定技,你使用的由一张锦囊牌转化的【杀】不计入出牌阶段的次数限制;锁定技,你使用的由一张装备牌转化的【杀】的伤害值基数+1', danji:'单骑', - danji_info:'觉醒技,准备阶段开始时,若你的手牌数大于你的体力值且本局游戏的主公不为刘备,你减1点体力上限,然后获得“马术”和“怒斩”', + danji_info:'觉醒技,准备阶段开始时,若你的手牌数大于你的体力值且本局游戏的主公不为刘备,你减1点体力上限,然后获得〖马术〗和〖怒斩〗', tunchu:'屯储', - tunchu_info:'摸牌阶段摸牌时,若你没有“粮”,你可以额外摸两张牌,然后可以将任意张手牌置于你的武将上,称为“粮”,只要你的武将牌上有“粮”,你便不能使用【杀】', + tunchu_info:'摸牌阶段,若你没有「粮」,你可以多摸两张牌。若如此做,摸牌阶段结束时,你可以将任意张手牌置于你的武将上,称为「粮」,只要你的武将牌上有「粮」,你便不能使用【杀】', shuliang:'输粮', - shuliang_info:'每当一名角色的结束阶段开始时,若其手牌数少于体力值,你可以移去一张“粮”,然后该角色摸两张牌', + shuliang_info:'一名角色的结束阶段开始时,若其手牌数少于体力值,你可以移去一张「粮」,然后该角色摸两张牌', jieyuan:'竭缘', jieyuan_more:'竭缘', jieyuan_less:'竭缘', - jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌令此伤害+1;当你受到一名其他角色造成的伤害时,若其体力值大于或等于你的体力值,你可弃置一张红色手牌令此伤害-1。', + jieyuan_info:'当你对一名其他角色造成伤害时,若其体力值大于或等于你的体力值,你可弃置一张黑色手牌,令此伤害+1;当你受到一名其他角色造成的伤害时,若其体力值大于或等于你的体力值,你可弃置一张红色手牌,令此伤害-1。', fenxin:'焚心', fenxin_old:'焚心', - fenxin_info:'锁定技,一名其他角色死亡后,若其身份为:忠臣,你发动“竭缘”减少伤害无体力值限制;反贼,你发动“竭缘”增加伤害无体力值限制;内奸,将“竭缘”中的黑色手牌和红色手牌改为一张牌。', - fenxin_old_info:'限定技,当你杀死一名非主公角色时,在其翻开身份牌之前,你可以与该角色交换身份牌。(你的身份为主公时不能发动此技能)', + fenxin_info:'锁定技,一名其他角色死亡后,若其身份为:忠臣,你本局内发动〖竭缘〗减少伤害时无视体力值限制;反贼,你本局内发动〖竭缘〗增加伤害时无视体力值限制;内奸,你本局内选择发动〖竭缘〗的牌时无颜色限制。', + fenxin_old_info:'限定技,当你杀死一名非主公角色时,你可以与其交换未翻开的身份牌。(你的身份为主公时不能发动此技能)', shixin:'释衅', - shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害', + shixin_info:'锁定技,当你受到火属性伤害时,你防止此伤害。', qingyi:'轻逸', qingyi1:'轻逸', qingyi2:'轻逸', - qingyi_info:'你可以跳过判定阶段和摸牌阶段,视为对任意一名角色使用一张【杀】。', + qingyi_info:'你可以跳过判定阶段和摸牌阶段。若如此做,视为对一名角色使用了一张无距离限制的【杀】。', xiandeng:'先登', xiandeng_info:'锁定技,出牌阶段,你使用的第一张【杀】不计入次数且无距离限制。', shulv:'熟虑', @@ -14354,33 +14366,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xisheng:'牺牲', xisheng_info:'每名其他角色的回合限一次,你可以将两张牌当做【桃】使用。', dujin:'独进', - dujin_info:'摸牌阶段,你可以额外摸X+1张牌(X为你装备区里牌数的一半且向下取整)', + dujin_info:'摸牌阶段,你可以多摸X+1张牌。(X为你装备区里牌数的一半且向下取整)', yuhua:'羽化', - yuhua_info:'锁定技,弃牌阶段内,你的非基本牌不计入手牌数,且你不能弃置你的非基本牌', + yuhua_info:'锁定技,弃牌阶段内,你的非基本牌不计入手牌上限。', qirang:'祈禳', - qirang_info:'当有装备牌进入你的装备区时,你可以获得牌堆中的一张锦囊牌', + qirang_info:'当有装备牌进入你的装备区时,你可以随机获得牌堆中的一张锦囊牌。', biluan:'避乱', - biluan_info:'摸牌阶段开始时,若有其他角色与你距离不大于1,则你可以放弃摸牌。若如此做,你的防御距离+X(X为势力数)', + biluan_info:'摸牌阶段开始时,若有与你距离不大于1的其他角色,你可以放弃摸牌。若如此做,本局内其他角色计算与你的距离时+X。(X为势力数)', lixia:'礼下', - lixia_info:'锁定技,其他角色结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸一张牌。若如此做,你的防御距离-1', + lixia_info:'锁定技,其他角色的结束阶段开始时,若你不在其攻击范围内,你摸一张牌或令其摸一张牌。本局内其他角色计算与你的距离时-1。', yishe:'义舍', yishe_bg:'米', - yishe_info:'结束阶段开始时,若你的武将牌上没有牌,你可以摸两张牌。若如此做,你将两张牌置于武将牌上,称为“米”;当“米”移至其他区域后,若你的武将牌上没有“米”,你回复1点体力', + yishe_info:'结束阶段开始时,若你的武将牌上没有「米」,则你可以摸两张牌。若如此做,你将两张牌置于武将牌上,称为「米」;当有「米」移至其他区域后,若你的武将牌上没有「米」,则你回复1点体力。', bushi:'布施', midao:'米道', - bushi_info:'当你受到1点伤害后,或其他角色受到你造成的1点伤害后,受到伤害的角色可以获得一张“米”', - midao_info:'当一张判定牌生效前,你可以打出一张“米”代替之', + bushi_info:'当你受到1点伤害后,或其他角色受到你造成的1点伤害后,受到伤害的角色可以获得你的一张「米」', + midao_info:'一名角色的判定牌生效前,你可以打出一张「米」代替之。', fengpo:'凤魄', - fengpo_info:'当你于出牌阶段内使用第一张【杀】或【决斗】指定目标后,若目标角色数为1,你可以选择一项:1.摸X张牌;2.此牌造成的伤害+X(X为其手牌中方牌的数量)', + fengpo_info:'当你于出牌阶段内使用第一张【杀】或【决斗】指定目标后,若目标角色数为1,你可以选择一项:1.摸X张牌;2.令此牌的伤害值基数+X。(X为其手牌中方牌的数量)', chenqing:'陈情', - chenqing_info:'每轮限一次,当一名角色处于濒死状态时,你可以令另一名其他角色摸四张牌,然后弃置四张牌。若其以此法弃置的四张牌花色各不相同,则视为该角色对濒死的角色使用一张【桃】', + chenqing_info:'每轮限一次,当一名角色处于濒死状态时,你可以令另一名其他角色摸四张牌,然后其弃置四张牌。若其以此法弃置的四张牌花色各不相同,则视为该角色对濒死的角色使用一张【桃】。', mozhi:'默识', - mozhi_info:'结束阶段开始时,你可以将一张手牌当你本回合出牌阶段使用的第一张基本或普通锦囊牌使用。然后,你可以将一张手牌当你本回合出牌阶段使用的第二张基本或普通锦囊牌使用', + mozhi_info:'结束阶段开始时,你可以将一张手牌当作你本回合出牌阶段内使用的第一张基本或普通锦囊牌使用。然后,你可以将一张手牌当做你本回合出牌阶段内使用的第二张基本或普通锦囊牌使用。(你不能通过此技能使用【酒】)', ranshang:'燃殇', ranshang2:'燃殇', ranshang_info:'锁定技,当你受到1点火焰伤害后,你获得1枚“燃”标记;结束阶段开始时,你失去X点体力(X为“燃”标记的数量)', hanyong:'悍勇', - hanyong_info:'当你使用【南蛮入侵】或【万箭齐发】时,若你的体力值小于游戏轮数,你可以令此牌造成的伤害+1', + hanyong_info:'当你使用【南蛮入侵】或【万箭齐发】时,若你的体力值小于游戏轮数,你可以令此牌的伤害值基数+1。', yicong:'义从', yongsi:'庸肆', @@ -14470,113 +14482,113 @@ game.import('character',function(lib,game,ui,get,ai,_status){ xunzhi:'殉志', yingjian:'影箭', fanxiang:'返乡', - fanxiang_info:'觉醒技,准备阶段开始时,若全场有至少一名已受伤且你曾发动【良助】令其摸牌的角色,则你回复1点体力和体力上限,失去技能【良助】并获得技能【枭姬】', - yingjian_info:'准备阶段,你可以视为使用一张无视距离的杀', - xunzhi_info:'准备阶段开始时,若你的上家和下家与你的体力值均不相等,你可以失去1点体力。若如此做,你的手牌上限+2', - yawang_info:'锁定技,摸牌阶段开始时,你改为摸x张牌,然后你于出牌阶段内至多使用x张牌(x为与你体力值相等的角色数)', - fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌颜色不同,则你可以摸一张牌。', - fuji_info:'当一名角色造成雷电伤害时,你可以令其进行一次判定,若结果为黑色,此伤害+1;若结果为红色,该角色获得此牌。', - fulu_info:'你可以将【杀】当雷【杀】使用。', - jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置其此类别的手牌,直到其下个回合开始。', + fanxiang_info:'觉醒技,准备阶段开始时,若场上有已受伤且你发动过〖良助〗的选项二的角色,则你加1点体力上限并回复1点体力,失去技能〖良助〗并获得技能〖枭姬〗', + yingjian_info:'准备阶段开始时,你可以视为使用一张无距离限制的【杀】。', + xunzhi_info:'准备阶段开始时,若你的上家和下家与你的体力值均不相等,你可以失去1点体力。若如此做,你本局内手牌上限+2。', + yawang_info:'锁定技,摸牌阶段开始时,你改为摸X张牌,然后你于本回合的出牌阶段内至多使用X张牌(X为与你体力值相等的角色数)', + fenyin_info:'你的回合内,当你使用牌时,若此牌与你于此回合内使用的上一张牌的颜色不同,则你可以摸一张牌。', + fuji_info:'当一名角色造成雷属性伤害时,你可以令其进行判定,若结果为黑色,此伤害+1;若结果为红色,该角色获得判定牌。', + fulu_info:'你可以将【杀】当做雷【杀】使用。', + jilei_info:'当你受到有来源的伤害后,你可以声明一种牌的类别。若如此做,你令伤害来源不能使用、打出或弃置此类别的手牌,直到其下个回合开始。', danlao:'啖酪', - danlao_info:'当你成为一张指定了多个目标的【杀】或普通锦囊牌的目标时,你可以摸一张牌并令此牌对你无效。', + danlao_info:'当你成为一张指定了多个目标的【杀】或普通锦囊牌的目标时,你可以摸一张牌,令此牌对你无效。', gongao:'功獒', zhuiji:'追击', chouhai:'仇海', - chouhai_info:'锁定技,当你每次受到伤害时,若你没有手牌,此伤害+1。', + chouhai_info:'锁定技,当你受到伤害时,若你没有手牌,此伤害+1。', guiming:'归命', guiming_info:'主公技,锁定技,你将残蚀描述中的“已受伤角色”改为“已受伤角色或其他吴势力角色”', chixin:'赤心', chixin1:'赤心', chixin2:'赤心', - chixin_info:'你可以将♦牌当【杀】或【闪】使用或打出。出牌阶段,你对你攻击范围内的每名角色均可使用一张【杀】。', + chixin_info:'你可以将♦牌当作【杀】或【闪】使用或打出。出牌阶段,你对在你攻击范围内且本回合内未成为过你使用的【杀】的目标的角色使用的【杀】没有次数限制。', suiren:'随仁', - suiren_info:'限定技,准备阶段开始时,你可以失去技能“义从”,然后加1点体力上限并回复1点体力,再令一名角色摸三张牌。', + suiren_info:'限定技,准备阶段开始时,你可以失去技能〖义从〗,然后加1点体力上限并回复1点体力,然后令一名角色摸三张牌。', canshi:'残蚀', canshi2:'残蚀', - canshi_info:'摸牌阶段开始时,你可以改为摸x张牌(x为已受伤的角色数),若如此做,当你与此回合内使用基本牌或锦囊牌时,你弃置一张牌。', - zhuiji_info:'锁定技,你与体力值不大于你的角色距离为1。', + canshi_info:'摸牌阶段开始时,你可以改为摸X张牌(X为已受伤的角色数),若如此做,当你于此回合内使用基本牌或锦囊牌时,你弃置一张牌。', + zhuiji_info:'锁定技,你与体力值不大于你的角色的距离视为1。', kunfen:'困奋', - kunfen_info:'锁定技,结束阶段开始时,你失去1点体力,然后摸两张牌', + kunfen_info:'锁定技,结束阶段开始时,你失去1点体力,然后摸两张牌。', fengliang:'逢亮', - fengliang_info:'觉醒技,当你进入濒死状态时,你减1点体力上限并将体力值回复至2点,然后获得技能挑衅,将困奋改为非锁定技', + fengliang_info:'觉醒技,当你进入濒死状态时,你减1点体力上限,将体力值回复至2点,获得技能〖挑衅〗并将〖困奋〗改为非锁定技。', oldcihuai:'刺槐', oldcihuai2:'刺槐', oldcihuai_info:'出牌阶段开始时,你可以展示手牌。若其中没有【杀】,则当你于此阶段内手牌数变化之前/有角色死亡之前需要使用【杀】时,你可以使用无对应实体牌的【杀】。', cihuai:'刺槐', - cihuai_info:'出牌阶段开始时,若你的手牌中没有【杀】,则你可以展示你的手牌,并视为对一名角色使用一张【杀】。', - gongao_info:'锁定技,每当一名角色死亡后,你增加一点体力上限,回复一点体力。', + cihuai_info:'出牌阶段开始时,若你的手牌中没有【杀】,则你可以展示你的手牌,视为对一名角色使用一张【杀】。', + gongao_info:'锁定技,当一名角色死亡后,你增加一点体力上限,回复一点体力。', juyi:'举义', - juyi_info:'觉醒技,准备阶段开始时,若你已受伤且体力上限大于存活角色数,你须将手牌摸至体力上限,然后获得技能“崩坏”和“威重”。', + juyi_info:'觉醒技,准备阶段开始时,若你已受伤且体力上限大于存活角色数,你须将手牌摸至体力上限,然后获得技能〖崩坏〗和〖威重〗。', weizhong:'威重', - weizhong_info:'锁定技,每当你的体力上限增加或减少时,你摸一张牌。', - taichen_info:'出牌阶段限一次,你可以自减一点体力,视为对一名角色使用一张杀(不计入回合内出杀限制)', - manjuan_info:'其他角色的卡牌因弃置而进入弃牌堆后,你可以弃置一张花色与之不同的牌,然后获得之', + weizhong_info:'锁定技,当你的体力上限增加或减少时,你摸一张牌。', + taichen_info:'出牌阶段限一次,你可以失去1点体力,视为对一名角色使用一张【杀】。(不计入出牌阶段的使用次数限制)', + manjuan_info:'其他角色的牌因弃置而进入弃牌堆后,你可以弃置一张花色与之不同的牌,然后获得此牌。', xinmanjuan:'漫卷', xinmanjuan_info:'锁定技,当你不因【漫卷】或【醉乡】而获得牌时,你将此牌置入弃牌堆。然后若此时处于你的回合内,则你可以从弃牌堆中选择获得一张与此牌点数相同的其他牌。', - zuixiang_info:'限定技,准备阶段开始时,你可以展示牌堆顶的3张牌并置于你的武将牌上。你不可使用或打出与该些牌同类的牌,所有同类牌对你无效。之后每个你的准备阶段,你须重复展示一次,直至这些牌中任意两张点数相同时,将你武将牌上的全部牌置于你的手上。', - naman_info:'你可以获得其他角色打出的杀', - xiemu_info:'出牌阶段限一次,你可以弃置一张【杀】并选择一个势力。若如此做,直到你的下回合开始时,当你成为该势力的其他角色使用的黑色牌的目标时,你摸两张牌。', - oldxiemu_info:'每当你成为其他角色的黑色牌的目标,可以弃置一张杀并摸两张牌', - spmengjin_info:'每当你使用一张杀,可以弃置目标一张牌', - fenxun_info:'出牌阶段限一次,你可以弃置一张牌并选择一名其他角色,然后本回合你计算与其的距离视为1', - yingbin_info:'锁定技,有“咒”的角色使用与“咒”花色相同的牌时,你摸一张牌;当你因同一名角色的同一张“咒”的效果摸第二张牌时,移去该“咒”', - zhoufu_info:'出牌阶段限一次,你可以将一张手牌置于一名没有"咒"的其他角色武将牌旁,称为"咒"。当有“咒”的角色判定时,将"咒"作为判定牌;一名角色回合结束时,若有角色于此回合因判定移除过“咒”,则你令这些角色各失去1点体力', - yanzheng_info:'若你的手牌数大于你的体力值,你可以将你装备区内的牌当【无懈可击】使用', - kuiwei_info:'结束阶段开始时,你可以摸2+X张牌,然后将你的武将牌翻面。在你的下个摸牌阶段开始时,你须弃置X张牌。(X等于当时场上装备区内的武器牌的数量)', - tongji_info:'锁定技。若你的手牌数大于你的体力值,则只要你在任一其他角色的攻击范围内,该角色使用【杀】时便不能指定你以外的角色为目标', - wangzun_info:'其他角色的准备阶段,你可以摸一张牌,然后令该角色此回合的手牌上限-1;直到你的回合开始,你不能再次发动此技', - kaikang_info:'每当你距离1以内的角色成为杀的目标后,你可以摸一张牌。若如此做,你交给其一张牌并展示之,若该牌为装备牌,该角色可以使用此牌。', - liangzhu_info:'当一名角色于其出牌阶段内回复体力时,你可以选择一项:1、摸一张牌;2、令该角色摸两张牌 ', - mingshi_info:'当你即将受到伤害时,若伤害来源的体力值大于你,你可以弃置一张黑色手牌令伤害-1 ', - lirang_info:'当你的牌因弃置而置入弃牌堆时,你可以将其中的任意张牌交给其他角色', - moukui_info:'当你使用【杀】指定一名角色为目标后,你可以选择一项:摸一张牌,或弃置其一张牌。若如此做,此【杀】被【闪】抵消时,该角色弃置你的一张牌。 ', - qiangwu_info:'出牌阶段,你可以进行一次判定。若如此做,则直到回合结束,你使用点数小于判定牌的 【杀】时不受距离限制,且你使用点数大于判定牌的【杀】时不计入出牌阶段的使用次数。', - shenxian_info:'每名角色的回合限一次,你的回合外,每当有其他角色因弃置而失去牌时,若其中有基本牌,你可以摸一张牌。', - oldshenxian_info:'你的回合外,每当有其他角色因弃置而失去牌时,若其中有基本牌,你可以摸一张牌。', - qiluan_info:'每当你杀死一名角色后,可以在此回合结束时摸三张牌。', - qiluan_info_guozhan:'当你杀死一名角色后,你可于此回合结束后摸三张牌', - zhendu_info:'其他角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用一张【酒】,然后你对其造成一点伤害。', - shangyi_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后弃置其中的一张黑色牌', - shoucheng_info:'每当一名其他角色在其回合外失去最后的手牌时,你可令该角色摸一张牌。', - shengxi_info:'若你于出牌阶段未造成伤害,你可在弃牌阶段开始时摸两张牌。', - hengzheng_info:'摸牌阶段开始时,若你的体力值为1或你没有手牌,你可以改为获得每名其他角色区域里的一张牌。', - cunsi_info:'限定技,出牌阶段,你可以将所有手牌交给一名男性角色,令该角色获得技能【勇决】,然后将武将牌翻面', - yongjue_info:'每当其他角色于回合内使用一张杀,若目标不是你,你可以获得之,每回合限一次', - guixiu_info:'每当你成为杀的目标,若你的手牌数小于体力值,可以摸一张牌', - fenming_info:'结束阶段开始时,若你处于连环状态,你可以弃置处于连环状态的每名角色的一张牌。', - duanxie_info:'出牌阶段限一次,你可以令一名其他角色横置武将牌,若如此做,你横置武将牌。', - xiaoguo_info:'其他角色的结束阶段开始时,你可以弃置一张基本牌,令该角色选择一项:1.弃置一张装备牌并令你摸一张牌;2.受到你对其造成的1点伤害。', + zuixiang_info:'限定技,准备阶段开始时,你可以展示牌堆顶的3张牌并置于你的武将牌上。你不能使用或打出与该些牌同类的牌,所有同类牌对你无效。之后的每个准备阶段,你须重复展示一次,直到这些牌中任意两张点数相同。然后,你获得这些牌。', + naman_info:'当其他角色打出的【杀】进入弃牌堆时,你可以获得之。', + xiemu_info:'出牌阶段限一次,你可以弃置一张【杀】并选择一个势力。若如此做,直到你的下回合开始时,当你成为该势力的其他角色使用的黑色牌的目标后,你摸两张牌。', + oldxiemu_info:'当你成为其他角色使用的黑色牌的目标后,你可以弃置一张【杀】,然后摸两张牌。', + spmengjin_info:'当你使用【杀】指定目标后,你可以弃置目标角色的一张牌。', + fenxun_info:'出牌阶段限一次,你可以弃置一张牌并选择一名其他角色,你于本回合内至其的距离视为1。', + yingbin_info:'锁定技,有“咒”的角色使用与“咒”花色相同的牌时,你摸一张牌;当你因同一名角色的同一张“咒”的效果摸第二张牌时,移去该“咒”。', + zhoufu_info:'出牌阶段限一次,你可以将一张手牌置于一名没有“咒”的其他角色的武将牌旁,称为“咒”。当有“咒”的角色判定时,其改为将“咒”作为判定牌;一名角色的回合结束时,若有角色于此回合因判定而移除过“咒”,则你令这些角色各失去1点体力。', + yanzheng_info:'若你的手牌数大于你的体力值,则你可以将你装备区内的牌当作【无懈可击】使用。', + kuiwei_info:'结束阶段开始时,你可以摸2+X张牌并记录X,然后将你的武将牌翻面(X为场上所有角色装备区内武器牌数目之和)。你的下个摸牌阶段开始时,你弃置X张牌。', + tongji_info:'锁定技。若你的手牌数大于你的体力值,则攻击范围包含你的其他角色使用【杀】时不能指定你以外的角色为目标。', + wangzun_info:'其他角色的准备阶段开始时,你可以摸一张牌。若如此做,该角色此回合的手牌上限-1。然后你不能再发动〖妄尊〗直到回合开始。', + kaikang_info:'当一名角色成为【杀】的目标后,若你至该角色的距离为1,你可以摸一张牌。若如此做,你交给其一张牌并展示之。若为装备牌,该角色可以使用此牌。', + liangzhu_info:'当一名角色于其出牌阶段内回复体力时,你可以选择一项:1、摸一张牌;2、令该角色摸两张牌。', + mingshi_info:'当你受到伤害时,若伤害来源的体力值大于你,你可以弃置一张黑色手牌,令伤害值-1。', + lirang_info:'当你的牌因弃置而置入弃牌堆后,你可以将其中的任意张牌交给其他角色。', + moukui_info:'当你使用【杀】指定目标后,你可以选择一项:摸一张牌,或弃置其一张牌。若如此做,当此【杀】被【闪】抵消时,目标角色弃置你的一张牌。 ', + qiangwu_info:'出牌阶段,你可以进行判定。若如此做,直到回合结束,你使用点数小于判定结果的【杀】时不受距离限制,且你使用点数大于判定结果的【杀】时不计入出牌阶段的使用次数限制。', + shenxian_info:'每名角色的回合限一次,你的回合外,当有其他角色因弃置而失去基本牌时,你可以摸一张牌。', + oldshenxian_info:'你的回合外,每当有其他角色因弃置而失去基本牌时,你可以摸一张牌。', + qiluan_info:'一名角色的回合结束时,你可以摸3X张牌。(X为你本回合内杀死过的角色数)', + qiluan_info_guozhan:'一名角色的回合结束时,若你于回合内杀死过角色,则你可以摸三张牌。', + zhendu_info:'其他角色的出牌阶段开始时,你可以弃置一张手牌,视为该角色使用了一张【酒】。若如此做,你对其造成一点伤害。', + shangyi_info:'出牌阶段限一次,你可以观看一名其他角色的手牌,然后弃置其中的一张黑色牌。', + shoucheng_info:'当一名其他角色于其回合外失去手牌时,若其没有手牌,则你可令该角色摸一张牌。', + shengxi_info:'弃牌阶段开始时,若你本回合内未造成过伤害,则你可以摸两张牌。', + hengzheng_info:'摸牌阶段开始时,若你的体力值为1或你没有手牌,则你可以放弃摸牌,改为获得每名其他角色区域内的一张牌。', + cunsi_info:'限定技,出牌阶段,你可以将所有手牌交给一名男性角色。该角色获得技能【勇决】,然后你将武将牌翻面。', + yongjue_info:'每回合限一次。当其他角色于回合内使用的【杀】结算完成后,若你不是此【杀】的目标角色,则你可以获得之。', + guixiu_info:'当你成为【杀】的目标后,若你的手牌数小于体力值,则你可以摸一张牌。', + fenming_info:'结束阶段开始时,若你处于横置状态,你可以弃置所有处于横置状态的角色的各一张牌。', + duanxie_info:'出牌阶段限一次,你可以令一名其他角色横置,若如此做,你横置。', + xiaoguo_info:'其他角色的结束阶段开始时,你可以弃置一张基本牌,令该角色选择一项:1.弃置一张装备牌,然后你摸一张牌;2.受到你对其造成的1点伤害。', sijian_info:'当你失去最后的手牌时,你可以弃置一名其他角色的一张牌。', - suishi_info:'每当其他角色进入濒死状态时,伤害来源可以令你摸一张牌;每当其他角色死亡时,伤害来源可以令你失去1点体力', + suishi_info:'当其他角色进入濒死状态时,伤害来源可以令你摸一张牌;当其他角色死亡时,伤害来源可以令你失去1点体力', quji_info:'出牌阶段限一次,你可以弃置X张牌(X为你已损失的体力值),然后令至多X名已受伤的角色各回复1点体力。若你以此法弃置的牌中有黑色牌,你失去一点体力。', - junbing_info:'一名角色的结束阶段开始时,若其手牌数少于或者等于1,该角色可以摸一张牌。若如此做,该角色须将所有手牌交给你,然后你交给其等量的牌。', - xiongyi_info:'限定技,出牌阶段,你可以指定至多三名角色各摸三张牌;若你指定的角色数不超过2,你回复1点体力', - xiongyi_info_guozhan:'限定技,出牌阶段,你可以令与你势力相同的所有角色各摸三张牌,然后若你的势力是角色最少的势力(或之一),则你回复1点体力', - shenzhi_info:'准备阶段开始时,你可以弃置所有手牌,若你以此法弃置的牌的张数不小于X,你回复1点体力(X为你当前的体力值)。', - shushen_info:'当你回复1点体力时,你可以令一名其他角色回复1点体力或摸两张牌', - wuji_info:'觉醒技,结束阶段,若你于此回合内造成过3点或更多伤害,你加1点体力上限并回复1点体力,失去"虎啸",然后从场上、牌堆或弃牌堆中获得【青龙偃月刀】', - xueji_info:'出牌阶段限一次,你可以弃置一张红色牌,然后选择至多X名角色,横置这些角色并对其中一名角色造成1点火焰伤害。(X为你已损失的体力值数且至少为1)', - huxiao_info:'锁定技,当你造成火焰伤害后,受到此伤害的角色各摸一张牌,本回合你对这些角色使用牌没有次数限制', + junbing_info:'一名角色的结束阶段开始时,若其手牌数不大于1,该角色可以摸一张牌。若如此做,该角色将所有手牌交给你,然后你交给其等量的牌。', + xiongyi_info:'限定技,出牌阶段,你可以选择至多三名角色,这些角色各摸三张牌;若你选择的角色数不超过2,你回复1点体力', + xiongyi_info_guozhan:'限定技,出牌阶段,你可以令与你势力相同的所有角色各摸三张牌,然后若你的势力是角色最少的势力(或之一),则你回复1点体力。', + shenzhi_info:'准备阶段开始时,你可以弃置所有手牌。若你以此法弃置的牌数不小于X,你回复1点体力(X为你的体力值)。', + shushen_info:'当你回复1点体力时,你可以令一名其他角色选择回复1点体力或摸两张牌。', + wuji_info:'觉醒技,结束阶段开始时,若你于此回合内造成过3点或更多伤害,你加1点体力上限并回复1点体力,失去〖虎啸〗,然后从场上、牌堆或弃牌堆中获得【青龙偃月刀】', + xueji_info:'出牌阶段限一次,你可以弃置一张红色牌,然后选择至多X名角色,横置这些角色并对其中一名角色造成1点火焰伤害。(X为你已损失的体力值且至少为1)', + huxiao_info:'锁定技,当你造成火属性伤害时,该角色摸一张牌。然后,你于此回合内对其使用牌没有次数和距离限制。', aocai_info:'当你于回合外需要使用或打出一张基本牌时,你可以观看牌堆顶的两张牌。若你观看的牌中有此牌,你可以使用打出之。', - hongyuan_info:'摸牌阶段摸牌时,你可以少摸一张牌,然后指定至多两名其他角色各摸一张牌。', - hongyuan_info_combat:'摸牌阶段摸牌时,你可以少摸一张牌,然后令其他友方角色各摸一张牌', - huanshi_info:'一名角色的判定牌生效前,你可令其观看你的手牌。若如此做,该角色选择你的一张牌,令你打出此牌代替之。', - mingzhe_info:'你的回合外,每当你因使用、打出或弃置而失去一张红色牌时,你可以摸一张牌。', - duwu_info:'出牌阶段,你可以弃置X张牌对你攻击范围内的一名其他角色造成1点伤害(X为该角色的体力值)。若你以此法令该角色进入濒死状态,则濒死状态结算后你失去1点体力,且本回合不能再发动黩武。', - tianming_info:'当你成为【杀】的目标时,你可以弃置两张牌(不足则全弃,无牌则不弃),然后摸两张牌;若此时全场体力值最多的角色仅有一名(且不是你),该角色也可以如此做。', - mizhao_info:'出牌阶段,你可以将所有手牌(至少一张)交给一名其他角色。若如此做,你令该角色与你指定的另一名有手牌的角色拼点。视为拼点赢的角色对没赢的角色使用一张【杀】。每阶段限一次。', - yuanhu_info:'结束阶段开始时,你可以将一张装备牌置于一名角色的装备区里,然后根据此装备牌的种类执行以下效果。武器牌:弃置距离该角色1以内的一名角色区域中的一张牌;防具牌:该角色摸一张牌;坐骑牌:该角色回复1点体力。', - lihun_info:'出牌阶段,你可以弃置一张牌并将你的武将牌翻面,若如此做,你指定一名男性角色,获得其所有手牌。出牌阶段结束时,你需为该角色每一点体力分配给其一张牌。每回合限一次。', - chongzhen_info:'每当你发动“龙胆”使用或打出一张手牌时,你可以立即获得对方的一张手牌。', - bifa_info:'结束阶段开始时,你可以将一张手牌移出游戏并指定一名其他角色。该角色的准备阶段,其观看你移出游戏的牌并选择一项:交给你一张与此牌同类型的手牌并获得此牌;或将此牌置入弃牌堆,然后失去1点体力。', - songci_info:'出牌阶段,你可以选择一项:令一名手牌数小于其体力值的角色摸两张牌;或令一名手牌数大于其体力值的角色弃置两张牌。此技能对每名角色只能使用一次。', - yongsi_info:'锁定技,摸牌阶段,你额外摸X张牌,X为场上现存势力数。弃牌阶段,你至少须弃置等同于场上现存势力数的牌(不足则全弃)。', - yicong_info:'锁定技,只要你的体力值大于2点,你的进攻距离+1;只要你的体力值为2点或更低,你的防御距离+1', - baobian_info:'锁定技,若你的体力值为3或更少,你视为拥有技能“挑衅”;若你的体力值为2或更少;你视为拥有技能“咆哮”;若你的体力值为1,你视为拥有技能“神速”。', + hongyuan_info:'摸牌阶段,你可以少摸一张牌并指定至多两名其他角色。若如此做,这些角色各摸一张牌。', + hongyuan_info_combat:'摸牌阶段,你可以少摸一张牌。若如此做,其他友方角色各摸一张牌。', + huanshi_info:'一名角色的判定牌生效前,你可令其观看你的手牌。若如此做,该角色选择你的一张牌,你打出此牌代替之。', + mingzhe_info:'当你于回合外使用或打出红色牌,或因弃置失去一张红色牌后,你可以摸一张牌。', + duwu_info:'出牌阶段,你可以弃置X张牌对你攻击范围内的一名其他角色造成1点伤害(X为该角色的体力值)。若该角色因此法进入濒死状态,则你于濒死状态结算后失去1点体力,且本回合不能再发动〖黩武〗。', + tianming_info:'当你成为【杀】的目标时,你可以弃置两张牌(不足则全弃,无牌则不弃),然后摸两张牌;若此时全场体力值最多的角色仅有一名且不是你,该角色也可以如此做。', + mizhao_info:'出牌阶段限一次,你可以将所有手牌交给一名其他角色。若如此做,你令该角色与你指定的另一名有手牌的角色拼点,视为拼点赢的角色对没赢的角色使用一张【杀】。', + yuanhu_info:'结束阶段开始时,你可以将一张装备牌置于一名角色的装备区里,然后根据此装备牌的类型执行以下对应效果。武器牌:弃置该角色距离1以内的一名角色区域中的一张牌;防具牌:该角色摸一张牌;坐骑牌:该角色回复1点体力。', + lihun_info:'出牌阶段限一次,你可以弃置一张牌并选择一名其他男性角色。若如此做,你将武将牌翻面并获得其一张手牌。出牌阶段结束时,你交给其X张牌。(X为该角色的体力值)', + chongzhen_info:'当你发动〖龙胆〗使用或打出一张牌时,你可以获得对方的一张手牌。', + bifa_info:'结束阶段开始时,你可以将一张手牌移出游戏并指定一名其他角色。该角色的准备阶段开始时,其观看你移出游戏的牌并选择一项:交给你一张与此牌类型相同的手牌并获得此牌;或将此牌置入弃牌堆,然后失去1点体力。', + songci_info:'出牌阶段,你可以选择一项:令一名手牌数小于其体力值的角色摸两张牌;或令一名手牌数大于其体力值的角色弃置两张牌。每局游戏每名角色限一次。', + yongsi_info:'锁定技,摸牌阶段,你多摸X张牌。弃牌阶段开始时,你弃置X张牌。(X为场上势力数)', + yicong_info:'锁定技,当你的体力值大于2时,你计算与其他角色的距离时-1;当你的体力值不大于2时,其他角色计算与你的距离时+1。', + baobian_info:'锁定技,若你的体力值为3或更少,你视为拥有技能〖挑衅〗;若你的体力值为2或更少;你视为拥有技能〖咆哮〗;若你的体力值为1,你视为拥有技能〖神速〗。', bingzhao:'秉诏', - bingzhao_info:'主公技,游戏开始时,你选择一个其他势力,该势力有“傀”标记的角色受到伤害后,可令你因“骨疽”额外摸一张牌。', + bingzhao_info:'主公技,游戏开始时,你选择一个其他势力。当你对该势力的角色发动〖骨疽〗时,其可令你额外摸一张牌。', sp_default:"常规", sp_whlw:"文和乱武", diff --git a/character/standard.js b/character/standard.js index fdf07dee4..cbf7ad3fe 100755 --- a/character/standard.js +++ b/character/standard.js @@ -390,8 +390,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, content:function(){ "step 0" - event.cards=get.cards(2*trigger.num); + event.count=trigger.num; "step 1" + event.count--; + event.cards=get.cards(2); + "step 2" if(event.cards.length>1){ player.chooseCardButton('将“遗计”牌分配给任意角色',true,event.cards,[1,event.cards.length]).set('ai',function(button){ if(ui.selected.buttons.length==0) return 1; @@ -402,9 +405,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event._result={links:event.cards.slice(0),bool:true}; } else{ - event.finish(); + event.goto(5); } - "step 2" + "step 3" if(result.bool){ for(var i=0;i0) player.chooseBool(get.prompt2(event.name)).set('frequentSkill',event.name); + else event.finish(); + "step 6" + if(result.bool){ + player.logSkill(event.name); event.goto(1); } }, @@ -1333,6 +1344,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, group:'kongcheng1', + audio:'kongcheng1', + audioname:['re_zhugeliang'], ai:{ noh:true, skillTagFilter:function(player,tag){ @@ -1634,6 +1647,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, zhiheng:{ audio:2, + audioname:['gz_jun_sunquan'], enable:'phaseUse', usable:1, position:'he', @@ -2431,7 +2445,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ translate:{ caocao:'曹操', hujia:'护驾', - hujia_info:'主公技,当你需要使用或打出一张【闪】时,你可以令其他魏势力角色选择是否打出一张【闪】。若有角色相应,则你视为使用或打出了一张【闪】。', + hujia_info:'主公技,当你需要使用或打出一张【闪】时,你可以令其他魏势力角色选择是否打出一张【闪】。若有角色响应,则你视为使用或打出了一张【闪】。', jianxiong:'奸雄', jianxiong_info:'当你受到伤害后,你可以获得对你造成伤害的牌。', diff --git a/character/xinghuoliaoyuan.js b/character/xinghuoliaoyuan.js index d7b2a4f35..9765aca24 100755 --- a/character/xinghuoliaoyuan.js +++ b/character/xinghuoliaoyuan.js @@ -515,7 +515,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, "xinfu_qianxin":{ audio:2, - group:["qianxin_effect"], + group:["xinfu_qianxin2"], enable:"phaseUse", usable:1, onChooseToUse:function(event){ @@ -556,8 +556,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function (){ 'step 0' player.$throw(cards.length); - player.storage.xinfu_qianxin=cards; - player.storage.xinfu_qianxin_target=target; + player.storage.xinfu_qianxin=cards.slice(0); + player.storage.xinfu_qianxin2=target; var num1=game.players.length; var num2=ui.cardPile.childElementCount; for(var i=0;i=4){ + delete player.storage.xinfu_qianxin2; + if(player.countCards('h')>=4){ event._result={index:1}; } else{ - player.chooseControl().set('choiceList',[ - '令'+get.translation(event.source)+'将手牌摸至四张', + trigger.player.chooseControl().set('choiceList',[ + '令'+get.translation(player)+'将手牌摸至四张', '令自己本回合的手牌上限-2' ]).set('ai',function(){ var player=_status.event.player; - var source=_status.event.getParent().source; + var source=_status.event.getParent().player; if(get.attitude(player,source)>0) return 0; if(player.hp-player.countCards('h')>1) return 1; return [0,1].randomGet(); @@ -647,10 +633,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } 'step 1' if(result.index==0){ - event.source.draw(4-event.source.countCards('h')); + player.drawTo(4); } else{ - player.addTempSkill('xinfu_qianxin2_dis'); + trigger.player.addTempSkill('xinfu_qianxin2_dis'); } }, }, @@ -687,18 +673,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){ event.finish(); return; } + var next=event.current[event.side]; + if(get.attitude(event.current,player)>0){ + if(get.attitude(next,target)<=0||next.countCards('h')==0||player.countCards('h')==1){ + event.stopm=true; + event.stopt=true + } + else{ + event.stopm=false; + event.stopt=false; + } + } + else{ + if(get.attitude(next,target)>=0){ + event.stopt=true; + event.stopm=false; + } + else{ + event.stopt=false; + event.stopm=false; + } + } player.markSkill('xinfu_fuhai'); player.line(event.current,'green'); - player.chooseCard('请选择要展示的牌',true).set('ai',function(){ - return 1+Math.random(); - }); + player.chooseCard('请选择要展示的牌',true).set('ai',function(card){ + if(_status.event.stop) return 14-get.number(card); + return get.number(card) + }).set('stop',event.stopm); 'step 2' event.mes=result.cards[0]; player.showCards(event.mes); 'step 3' - event.current.chooseCard('请选择要展示的牌',true).set('ai',function(){ - return 1+Math.random(); - }); + event.current.chooseCard('请选择要展示的牌',true).set('ai',function(card){ + if(_status.event.stop) return get.number(card); + return 14-get.number(card); + }).set('stop',event.stopt); 'step 4' event.tes=result.cards[0]; event.current.showCards(event.tes); @@ -722,7 +731,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ai:{ order:1, result:{ - player:1, + player:function(player,target){ + var hs=player.countCards('h'); + var side=target==player.next?'next':'previous'; + var current=player; + for(var i=0;i0) return 1; + } + return 0; + }, }, }, }, @@ -1915,7 +1934,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(!event.nature) return false; return player.hasMark('xinfu_falu_diamond'); }, - prompt2:'弃置“勾陈”标记,从牌堆中获得每种类型的牌各一张。', + prompt2:'弃置「勾陈♦」标记,从牌堆中获得每种类型的牌各一张。', content:function (){ 'step 0' player.removeMark('xinfu_falu_diamond'); @@ -1950,7 +1969,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function (){ "step 0" var str=get.translation(trigger.player)+'的'+(trigger.judgestr||'')+'判定为'+ - get.translation(trigger.player.judging[0])+',是否发动【真仪】,弃置“紫薇”标记并修改判定结果?'; + get.translation(trigger.player.judging[0])+',是否发动【真仪】,弃置「紫薇♠」标记并修改判定结果?'; player.chooseControl('黑桃5','红桃5','取消').set('prompt',str).set('ai',function(){ //return '取消'; var judging=_status.event.judging; @@ -2013,7 +2032,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ viewAs:{ name:"tao", }, - prompt:"弃置“后土”标记将一张手牌当桃使用", + prompt:"弃置「后土♣」标记,将一张手牌当桃使用", check:function (card){return 15-get.value(card)}, precontent:function (){ player.removeMark('xinfu_falu_club'); @@ -2035,10 +2054,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ return player.hasMark('xinfu_falu_heart'); }, check:function (event,player){ - return false; + if(get.attitude(player,event.player>0)) return false; + if(event.player.getEquip('baiyin')||event.player.getEquip('rewrite_baiyin')) return false; + return player.hasMark('xinfu_falu_spade')||get.color(ui.cardPile.firstChild)=='black'; }, prompt2:function(event){ - return '弃置“玉清”标记,然后进行判定。若结果为黑色,则对'+get.translation(event.player)+'即将造成的伤害+1。'; + return '弃置「玉清♥」标记,然后进行判定。若结果为黑色,则对'+get.translation(event.player)+'即将造成的伤害+1。'; }, logTarget:"player", content:function (){ @@ -2093,8 +2114,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function (){ 'step 0' player.chooseToDiscard(get.prompt('xinfu_yanyu'),get.translation('xinfu_yanyu_info'),'he').set('ai',function(card){ - return 5-get.value(card); - }).set('logSkill','xinfu_yanyu'); + var map=_status.event.goon; + var type=get.type(card,'trick'); + if(!map[type]) return -1; + return map[type]-get.value(card); + }).set('logSkill','xinfu_yanyu').set('goon',function(){ + var map={ + basic:0, + trick:0.1, + }; + var hs=trigger.player.getCards('h'); + var sha=false; + var jiu=false; + for(var i=0;i0; + })){ + if(hs[i].name=='sha'&&!sha){ + sha=true; + map.basic+=2; + } + if(hs[i].name=='tao') map.basic+=6; + if(hs[i].name=='jiu'){jiu=true;map.basic+=2.5;} + if(get.type(hs[i])=='trick') map.trick+=get.value(hs[i],player,'raw'); + } + } + return map; + }()); 'step 1' if(result.bool){ player.storage.xinfu_yanyu=get.type(result.cards[0],'trick'); @@ -2116,8 +2162,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ direct:true, filter:function (event,player){ if(player.storage.xinfu_yanyu2>=3) return false; - var evt=event.getParent(); - if(evt&&(evt.name=='useCard'||evt.name=='respond')) return false; + //var evt=event.getParent(); + //if(evt&&(evt.name=='useCard'||evt.name=='respond')) return false; var type=player.storage.xinfu_yanyu; var cards=event.cards; for(var i=0;i0; + })) att=att*2; + return att*val; + }).set('card',event.togain); } else event.finish(); 'step 3' @@ -2971,7 +3021,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ lose:true, content:function (){ player.awakenSkill('xinfu_zengdao'); - player.$give(cards,target); + player.$give(cards,target,false); target.storage.xinfu_zengdao2=cards; target.addSkill('xinfu_zengdao2'); }, @@ -3105,12 +3155,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player:"damageBegin4", }, filter:function (event,player){ - return (event.source&&event.source.countCards('h')); + return get.itemtype(event.source)=='player'; }, logTarget:"source", content:function (){ "step 0" - trigger.source.chooseControlList( + if(!trigger.source.countCards('h')) event._result={index:1}; + else trigger.source.chooseControlList( ['令'+get.translation(player)+'观看你的手牌,并获得其中所有的红桃牌。', '防止即将对'+get.translation(player)+'造成的伤害,并使自己本回合内的红桃手牌不计入手牌上限。'], true).set('ai',function(event,player){ @@ -3164,7 +3215,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } player.logSkill('xinfu_yingshi',result.targets); player.lose(togain,ui.special,'toStorage'); - player.$give(togain,result.targets[0]); + player.$give(togain,result.targets[0],false); result.targets[0].storage.yingshi_heart=togain; result.targets[0].addSkill('yingshi_heart'); } @@ -4153,7 +4204,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(get.position(link)=='e') event.targets[1].equip(link); else if(link.viewAs) event.targets[1].addJudge({name:link.viewAs},[link]); else event.targets[1].addJudge(link); - event.targets[0].$give(link,event.targets[1]) + event.targets[0].$give(link,event.targets[1],false) game.delay(); } }, @@ -4814,7 +4865,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ content:function (){ 'step 0' player.lose(cards,ui.special,'toStorage') - player.$give(cards,player); + player.$give(cards,player,false); player.storage.xinfu_zhaoxin=player.storage.xinfu_zhaoxin.concat(cards); player.markSkill('xinfu_zhaoxin'); 'step 1' diff --git a/character/yijiang.js b/character/yijiang.js index cfc0f4db2..70c81c1e2 100755 --- a/character/yijiang.js +++ b/character/yijiang.js @@ -4341,7 +4341,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }); 'step 1' if(result.bool){ - target.$give(result.cards.length,player); + target.$give(result.cards.length,player,false); target.lose(result.cards,ui.special,'toStorage'); if(!player.storage.kuangbi_draw) player.storage.kuangbi_draw=[]; player.storage.kuangbi_draw.push([result.cards,target]); @@ -4783,7 +4783,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } 'step 2' if(result.bool&&result.cards&&result.cards.length){ - event.target.$give(result.cards,player); + event.target.$give(result.cards,player,false); player.storage.jieyue2=result.cards[0]; event.target.lose(result.cards[0],ui.special,'toStorage'); player.syncStorage('jieyue2'); @@ -5095,7 +5095,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.syncStorage('chunlao'); player.markSkill('chunlao'); player.lose(result.cards,ui.special,'toStorage'); - player.$give(result.cards,player); + player.$give(result.cards,player,false); } }, ai:{ @@ -8336,7 +8336,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ "step 2" if(result&&result.links&&result.links.length){ game.delay(2); - trigger.player.$give(result.links[0],player); + trigger.player.$give(result.links[0],player,false); player.equip(result.links[0]); player.addExpose(0.2); } @@ -10390,7 +10390,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.markSkill('xiansi'); player.syncStorage('xiansi'); event.current.lose(result.links,ui.special,'toStorage'); - event.current.$give(result.links,player); + event.current.$give(result.links,player,false); event.goto(2); } }, @@ -10643,7 +10643,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(result.bool){ player.logSkill('zzhenggong',trigger.source); player.equip(result.links[0]); - trigger.source.$give(result.links[0],player); + trigger.source.$give(result.links[0],player,false); } }, ai:{ @@ -10827,7 +10827,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ game.addVideo('storage',player,['zyexin',get.cardsInfo(player.storage.zyexin),'cards']); game.delay(); if(get.type(event.card)=='equip'){ - player.$give(event.card,result.targets[0]); + player.$give(event.card,result.targets[0],false); result.targets[0].equip(event.card); } else if(get.type(event.card)=='delay'){ diff --git a/character/yxs.js b/character/yxs.js index 60a54833e..5d4054098 100644 --- a/character/yxs.js +++ b/character/yxs.js @@ -1968,9 +1968,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ enable:'phaseUse', usable:1, filterCard:true, - filterTarget:function(card,player,target){ - return player!=target; - }, + filterTarget:true, check:function(card){ return 8-get.value(card); }, diff --git a/game/asset.js b/game/asset.js index 1f4b9c06f..50c985568 100644 --- a/game/asset.js +++ b/game/asset.js @@ -1,5 +1,5 @@ window.noname_asset_list=[ - '1.9.97.5', + '1.9.97.6', 'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_online.mp3', 'audio/background/aozhan_rewrite.mp3', @@ -2090,6 +2090,43 @@ window.noname_asset_list=[ 'audio/skill/zhanyuan2.mp3', 'audio/skill/zhiba2_re_sunben1.mp3', 'audio/skill/zhiba2_re_sunben2.mp3', + 'audio/skill/diancai1.mp3', + 'audio/skill/diancai2.mp3', + 'audio/skill/diaodu1.mp3', + 'audio/skill/diaodu2.mp3', + 'audio/skill/gz_jun_liubei.mp3', + 'audio/skill/gz_jun_sunquan.mp3', + 'audio/skill/gzzongyu1.mp3', + 'audio/skill/gzzongyu2.mp3', + 'audio/skill/hongfa_hp.mp3', + 'audio/skill/hongfa1.mp3', + 'audio/skill/hongfa2.mp3', + 'audio/skill/huangjintianbingfu1.mp3', + 'audio/skill/huangjintianbingfu2.mp3', + 'audio/skill/huibian1.mp3', + 'audio/skill/huibian2.mp3', + 'audio/skill/jiahe_put1.mp3', + 'audio/skill/jiahe_put2.mp3', + 'audio/skill/jiahe1.mp3', + 'audio/skill/jiahe2.mp3', + 'audio/skill/jianan1.mp3', + 'audio/skill/jianan2.mp3', + 'audio/skill/jizhao1.mp3', + 'audio/skill/jizhao2.mp3', + 'audio/skill/jubao1.mp3', + 'audio/skill/jubao2.mp3', + 'audio/skill/lianzi1.mp3', + 'audio/skill/lianzi2.mp3', + 'audio/skill/rerende_gz_jun_liubei1.mp3', + 'audio/skill/rerende_gz_jun_liubei2.mp3', + 'audio/skill/wendao1.mp3', + 'audio/skill/wendao2.mp3', + 'audio/skill/wuxin1.mp3', + 'audio/skill/wuxin2.mp3', + 'audio/skill/zhangwu1.mp3', + 'audio/skill/zhangwu2.mp3', + 'audio/skill/zhiheng_gz_jun_sunquan1.mp3', + 'audio/skill/zhiheng_gz_jun_sunquan2.mp3', 'font/huangcao.ttf', 'font/shousha.ttf', diff --git a/game/config.js b/game/config.js index bd54e9b5c..f2c9406e5 100644 --- a/game/config.js +++ b/game/config.js @@ -1,5 +1,5 @@ window.config={ - forbidai:['ns_liuzhang','xin_yuji'], + forbidai:['ns_liuzhang','xin_yuji','re_yuji'], forbidai_user:[], forbidall:[], forbidstone:['zhugedan','pal_xuanxiao','hs_malfurion','lusu','chenlin','hs_siwangzhiyi', diff --git a/game/game.js b/game/game.js index a3a8111d9..5e91a4330 100644 --- a/game/game.js +++ b/game/game.js @@ -9703,6 +9703,8 @@ if(event.nopopup) next.nopopup=true; if(event.animate===false) next.animate=false; if(event.addCount===false) next.addCount=false; + if(event.noTargetDelay) next.targetDelay=false; + if(event.nodelayx) next.delayx=false; } }, chooseToDuiben:function(){ @@ -10618,9 +10620,6 @@ event._result={bool:true}; event._direct=true; } - else if(checkFrequent(info)&&!lib.config.autoskilllist.contains(event.skill)){ - event._result={bool:true}; - } else if(info.direct){ event._result={bool:true}; event._direct=true; @@ -10630,6 +10629,9 @@ event._direct=true; } else{ + if(checkFrequent(info)){ + event.frequentSkill=true; + } var str; var check=info.check; if(info.prompt) str=info.prompt; @@ -10646,6 +10648,7 @@ } if(typeof str=='function'){str=str(trigger,player)} var next=player.chooseBool(str); + if(event.frequentSkill) next.set('frequentSkill',event.skill); next.set('forceDie',true); next.ai=function(){ return !check||check(trigger,player); @@ -12520,6 +12523,10 @@ chooseBool:function(){ "step 0" if(event.isMine()){ + if(event.frequentSkill&&!lib.config.autoskilllist.contains(event.frequentSkill)){ + ui.click.ok(); + return; + } ui.create.confirm('oc'); if(event.createDialog&&!event.dialog){ if(Array.isArray(event.createDialog)){ @@ -15702,7 +15709,10 @@ this.node.hp.innerHTML=''; this.node.count.innerHTML='0'; if(this.name2){ + delete this.singleHp; this.node.avatar2.hide(); + this.node.name2.innerHTML=''; + this.classList.remove('fullskin2') delete this.name2; this.node.count.classList.remove('p2'); } @@ -17286,6 +17296,12 @@ else if(arguments[i]=='nodistance'){ next.nodistance=true; } + else if(arguments[i]=='noTargetDelay'){ + next.noTargetDelay=true; + } + else if(arguments[i]=='nodelayx'){ + next.nodelayx=true; + } else if(lib.card[arguments[i]]&&!next.card){ next.card={name:arguments[i]}; } @@ -25916,7 +25932,13 @@ if(_status.connectMode&&!_status.countDown){ ui.timer.show(); var num; - if(_status.connectMode){ + //这么一大行都是为了祢衡 + if(_status.event&&_status.event.name=='chooseToUse'&&_status.event.type=='phase'&& + _status.event.player&&_status.event.player.forceCountChoose&& + typeof _status.event.player.forceCountChoose.phaseUse=='number'){ + num=_status.event.player.forceCountChoose.phaseUse; + } + else if(_status.connectMode){ num=lib.configOL.choose_timeout; } else{ @@ -25941,12 +25963,16 @@ else if(_status.event.player.forceCountChoose&&_status.event.isMine()&&!_status.countDown){ var info=_status.event.player.forceCountChoose; var num; - if(typeof info[_status.event.name]=='number'){ + if(_status.event.name=='chooseToUse'&&_status.event.type=='phase'&&typeof info.phaseUse=='number'){ + num=info.phaseUse; + } + else if(typeof info[_status.event.name]=='number'){ num=info[_status.event.name] } - else{ + else if(info.default){ num=info.default; } + else return; var finish=function(){ if(_status.event.endButton){ if(_status.event.skill){ @@ -45196,6 +45222,7 @@ intro2.innerHTML=''+get.translation(this.link)+''+get.skillInfoTranslation(this.link); var info=get.info(this.link); var skill=this.link; + var playername=this.linkname; var skillnode=this; if(info.derivation){ var derivation=info.derivation; @@ -45270,12 +45297,15 @@ audioinfo=audioinfo[1]; } if(typeof audioinfo=='number'){ + if(Array.isArray(info.audioname)&&info.audioname.contains(playername)) audioname=audioname+'_'+playername; game.playAudio('skill',audioname+getIndex(audioinfo)); } else if(audioinfo){ + if(Array.isArray(info.audioname)&&info.audioname.contains(playername)) audioname=audioname+'_'+playername; game.playAudio('skill',audioname); } else if(true&&info.audio!==false){ + if(Array.isArray(info.audioname)&&info.audioname.contains(playername)) audioname=audioname+'_'+playername; game.playSkillAudio(audioname,getIndex(2)); } } @@ -45290,6 +45320,7 @@ } var current=ui.create.div('.menubutton.large',skills,clickSkill,skilltrans); current.link=list[i]; + current.linkname=name; if(!initskill){ initskill=true; clickSkill.call(current,'init'); diff --git a/game/update.js b/game/update.js index 08546acf9..b86d25d2d 100644 --- a/game/update.js +++ b/game/update.js @@ -1,8 +1,7 @@ window.noname_update={ - version:'1.9.97.5', - update:'1.9.97.4', + version:'1.9.97.6', + update:'1.9.97.5', changeLog:[ - '手杀张恭,许贡,卫温诸葛直', 'BUG修复', ], files:[ @@ -13,37 +12,37 @@ window.noname_update={ //'card/swd.js', //'card/guozhan.js', //'card/gwent.js', - //'character/diy.js', + 'character/diy.js', //'character/extra.js', //'character/hearth.js', //'character/gujian.js', - 'character/gwent.js', - 'character/mobile.js', + //'character/gwent.js', + //'character/mobile.js', //'character/mtg.js', //'character/old.js', - //'character/refresh.js', - //'character/shenhua.js', + 'character/refresh.js', + 'character/shenhua.js', 'character/sp.js', //'character/tw.js', - //'character/standard.js', + 'character/standard.js', //'character/swd.js', //'character/xianjian.js', 'character/xinghuoliaoyuan.js', 'character/yijiang.js', - //'character/yxs.js', + 'character/yxs.js', //'extension/boss/extension.js', //'layout/default/layout.css', - //'mode/identity.js', - //'mode/doudizhu.js', - //'mode/guozhan.js', - //'mode/single.js', + 'mode/identity.js', + 'mode/doudizhu.js', + 'mode/guozhan.js', + 'mode/single.js', //'mode/stone.js', //'mode/brawl.js', //'mode/versus.js', //'mode/boss.js', 'game/game.js', //'game/NoSleep.js', - //'game/config.js', + 'game/config.js', //'game/package.js', //'game/asset.js', //'game/source.js', diff --git a/image/character/gz_fazheng.jpg b/image/character/gz_fazheng.jpg index e91fed576..02b3d3382 100644 Binary files a/image/character/gz_fazheng.jpg and b/image/character/gz_fazheng.jpg differ diff --git a/image/character/gz_wuguotai.jpg b/image/character/gz_wuguotai.jpg index 10351d98a..764b295ae 100644 Binary files a/image/character/gz_wuguotai.jpg and b/image/character/gz_wuguotai.jpg differ diff --git a/image/character/gz_yuanshu.jpg b/image/character/gz_yuanshu.jpg index 42bc790db..335f371b5 100644 Binary files a/image/character/gz_yuanshu.jpg and b/image/character/gz_yuanshu.jpg differ diff --git a/image/character/gz_zhangxiu.jpg b/image/character/gz_zhangxiu.jpg index 7f21f80a2..267237ead 100644 Binary files a/image/character/gz_zhangxiu.jpg and b/image/character/gz_zhangxiu.jpg differ diff --git a/mode/doudizhu.js b/mode/doudizhu.js index 88fa65021..681c4fe0c 100644 --- a/mode/doudizhu.js +++ b/mode/doudizhu.js @@ -634,7 +634,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ for(var i=0;i0}, - logTarget:'source', - content:function(){ - 'step 0' - player.chooseJunlingFor(trigger.source); - 'step 1' - event.junling=result.junling; - event.targets=result.targets; - var choiceList=[]; - choiceList.push('执行该军令'); - choiceList.push('令'+get.translation(trigger.player)+(trigger.player==trigger.source?'(你)':'')+'回复一点体力'); - trigger.source.chooseJunlingControl(player,result.junling,result.targets).set('prompt','补益').set('choiceList',choiceList).set('ai',function(){ - return (get.attitude(trigger.source,trigger.player)<0&&get.junlingEffect(player,result.junling,trigger.source,result.targets,trigger.source)>=-2)?1:0; - return 0; - }); - 'step 2' - if(result.index==0) trigger.source.carryOutJunling(player,event.junling,targets); - else trigger.player.recover(player); - }, - audio:['buyi',2], - }, - keshou:{ - trigger:{player:'damageBegin3'}, - direct:true, - filter:function(event,player){ - return event.num>0; - }, - content:function(){ - 'step 0' - var check=(player.countCards('h',{color:'red'})>1||player.countCards('h',{color:'black'})>1); - player.chooseCard(get.prompt2('keshou'),'he',2,function(card){ - if(ui.selected.cards.length) return get.color(card)==get.color(ui.selected.cards[0]); - return true; - }).set('complexCard',true).set('ai',function(card){ - if(!_status.event.check) return 0; - var player=_status.event.player; - if(player.hp==1){ - if(!player.countCards('h',function(card){return get.tag(card,'save')})&&!player.hasSkillTag('save',true)) return 10-get.value(card); - return 7-get.value(card); - } - return 6-get.value(card); - }).set('check',check); - 'step 1' - if(result.cards){ - player.logSkill('keshou'); - player.discard(result.cards); - trigger.num--; - if(trigger.num<=0) trigger.cancel(); - if(!game.hasPlayer(function(current){ - return current!=player&¤t.isFriendOf(player); - })) player.judge(function(card){ - if(get.color(card)=='red') return 1; - return 0; - }); - } - else event.finish(); - 'step 2' - if(result.judge>0) player.draw(); - } - }, - zhuwei:{ - trigger:{player:'judgeEnd'}, - filter:function(event){ - if(get.owner(event.result.card)) return false; - if(event.nogain&&event.nogain(event.result.card)) return false; - return event.result.card.name=='sha'||event.result.card.name=='juedou'; - }, - content:function(){ + gzbuyi:{ + trigger:{global:'dyingAfter'}, + usable:1, + filter:function(event,player){ + if(!(event.player&&event.player.isAlive()&&event.source&&event.source.isAlive())) return false; + return event.player.isFriendOf(player)&&event.reason&&event.reason.name=='damage'; + }, + check:function(event,player){return get.attitude(player,event.player)>0}, + logTarget:'source', + content:function(){ 'step 0' - player.gain(trigger.result.card,'gain2'); + player.chooseJunlingFor(trigger.source); + 'step 1' + event.junling=result.junling; + event.targets=result.targets; + var choiceList=[]; + choiceList.push('执行该军令'); + choiceList.push('令'+get.translation(trigger.player)+(trigger.player==trigger.source?'(你)':'')+'回复一点体力'); + trigger.source.chooseJunlingControl(player,result.junling,result.targets).set('prompt','补益').set('choiceList',choiceList).set('ai',function(){ + return (get.attitude(trigger.source,trigger.player)<0&&get.junlingEffect(player,result.junling,trigger.source,result.targets,trigger.source)>=-2)?1:0; + return 0; + }); + 'step 2' + if(result.index==0) trigger.source.carryOutJunling(player,event.junling,targets); + else trigger.player.recover(player); + }, + audio:['buyi',2], + }, + keshou:{ + trigger:{player:'damageBegin3'}, + direct:true, + filter:function(event,player){ + return event.num>0; + }, + content:function(){ + 'step 0' + var check=(player.countCards('h',{color:'red'})>1||player.countCards('h',{color:'black'})>1); + player.chooseCard(get.prompt2('keshou'),'he',2,function(card){ + if(ui.selected.cards.length) return get.color(card)==get.color(ui.selected.cards[0]); + return true; + }).set('complexCard',true).set('ai',function(card){ + if(!_status.event.check) return 0; + var player=_status.event.player; + if(player.hp==1){ + if(!player.countCards('h',function(card){return get.tag(card,'save')})&&!player.hasSkillTag('save',true)) return 10-get.value(card); + return 7-get.value(card); + } + return 6-get.value(card); + }).set('check',check); + 'step 1' + if(result.cards){ + player.logSkill('keshou'); + player.discard(result.cards); + trigger.num--; + if(trigger.num<=0) trigger.cancel(); + if(!game.hasPlayer(function(current){ + return current!=player&¤t.isFriendOf(player); + })) player.judge(function(card){ + if(get.color(card)=='red') return 1; + return 0; + }); + } + else event.finish(); + 'step 2' + if(result.judge>0) player.draw(); + } + }, + zhuwei:{ + trigger:{player:'judgeEnd'}, + filter:function(event){ + if(get.owner(event.result.card)) return false; + if(event.nogain&&event.nogain(event.result.card)) return false; + return event.result.card.name=='sha'||event.result.card.name=='juedou'; + }, + content:function(){ + 'step 0' + player.gain(trigger.result.card,'gain2'); player.chooseBool('是否令当前回合角色获得【筑围】的加成效果?').ai=function(){ return get.attitude(player,_status.currentPhase)>0; }; 'step 1' - if(result.bool){ + if(result.bool){ var target=_status.currentPhase; - if(!target.hasSkill('zhuwei_eff')){ - target.addTempSkill('zhuwei_eff'); - target.storage.zhuwei_eff=1; - } - else target.storage.zhuwei_eff++; - target.updateMarks(); - } - }, - subSkill:{ - eff:{ - sub:true, - mod:{ - cardUsable:function(card,player,num){ - if(card.name=='sha') return num+player.storage.zhuwei_eff; - }, - maxHandcard:function(player,num){return num+player.storage.zhuwei_eff} - }, - mark:true, - intro:{ - content:function(storage){if(storage) return '使用【杀】的次数上限+'+storage+',手牌上限+'+storage} - } - } - } - }, - gzweidi:{ - init:function(player){player.storage.gzweidi=[]}, - enable:'phaseUse', - usable:1, + if(!target.hasSkill('zhuwei_eff')){ + target.addTempSkill('zhuwei_eff'); + target.storage.zhuwei_eff=1; + } + else target.storage.zhuwei_eff++; + target.updateMarks(); + } + }, + subSkill:{ + eff:{ + sub:true, + mod:{ + cardUsable:function(card,player,num){ + if(card.name=='sha') return num+player.storage.zhuwei_eff; + }, + maxHandcard:function(player,num){return num+player.storage.zhuwei_eff} + }, + mark:true, + intro:{ + content:function(storage){if(storage) return '使用【杀】的次数上限+'+storage+',手牌上限+'+storage} + } + } + } + }, + gzweidi:{ + init:function(player){player.storage.gzweidi=[]}, + enable:'phaseUse', + usable:1, filter:function(event,player){ return player.storage.gzweidi.length>0 }, - filterTarget:function(card,player,target){return target!=player&&player.storage.gzweidi.contains(target)}, - content:function(){ - 'step 0' - player.chooseJunlingFor(target); - 'step 1' - event.junling=result.junling; - event.targets=result.targets; - var choiceList=['执行该军令']; - if(target!=player) choiceList.push('令'+get.translation(player)+'获得你所有手牌,然后交给你等量的牌'); - else choiceList.push('不执行该军令'); - target.chooseJunlingControl(player,result.junling,result.targets).set('prompt','伪帝').set('choiceList',choiceList).set('ai',function(){ - if(get.attitude(target,player)>=0) return get.junlingEffect(player,result.junling,target,result.targets,target)>=0?0:1; - return get.junlingEffect(player,result.junling,target,result.targets,target)>=-1?0:1; - }); - 'step 2' - if(result.index==0) target.carryOutJunling(player,event.junling,targets); - else if(target!=player&&target.countCards('h')) { - event.num=target.countCards('h'); - player.gain(target.getCards('h'),target); - target.$give(event.num,player); - player.chooseCard('交给'+get.translation(target)+get.cnNumber(event.num)+'张牌','he',event.num,true).set('ai',function(card){ - return -get.value(card); - }); - } - else event.finish(); - 'step 3' - if(result.cards){ - target.gain(result.cards,player); - player.$give(num,target); - } - }, - group:['gzweidi_ft','gzweidi_ftc'], - ai:{ - order:3, - result:{ - player:1, - } - }, - subSkill:{ - ft:{ - sub:true, - trigger:{global:'gainBefore'}, - silent:true, - filter:function(event,player){ - if(player==event.player||player.storage.gzweidi.contains(event.player)||_status.currentPhase!=player) return false; - if(event.cards.length){ - if(event.getParent().name=='draw') return true; - for(var i=0;i=0) return get.junlingEffect(player,result.junling,target,result.targets,target)>=0?0:1; + return get.junlingEffect(player,result.junling,target,result.targets,target)>=-1?0:1; + }); + 'step 2' + if(result.index==0) target.carryOutJunling(player,event.junling,targets); + else if(target!=player&&target.countCards('h')) { + event.num=target.countCards('h'); + player.gain(target.getCards('h'),target,'giveAuto'); + player.chooseCard('交给'+get.translation(target)+get.cnNumber(event.num)+'张牌','he',event.num,true).set('ai',function(card){ + return -get.value(card); + }); + } + else event.finish(); + 'step 3' + if(result.cards){ + target.gain(result.cards,player,'giveAuto'); + } + }, + group:['gzweidi_ft','gzweidi_ftc'], + ai:{ + order:3, + result:{ + player:1, + } + }, + subSkill:{ + ft:{ + sub:true, + trigger:{global:'gainBefore'}, + silent:true, + filter:function(event,player){ + if(player==event.player||player.storage.gzweidi.contains(event.player)||_status.currentPhase!=player) return false; + if(event.cards.length){ + if(event.getParent().name=='draw') return true; + for(var i=0;i0}, - content:function(){ - 'step 0' - event.players=game.filterPlayer(function(current){ - return current.isFriendOf(trigger.source)&¤t.hp>=player.hp&&!game.hasPlayer(function(current2){ + content:function(){ + player.showHandcards(); + } + } + } + }, + gzfudi:{ + trigger:{global:'damageEnd'}, + direct:true, + 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){ + return current.isFriendOf(trigger.source)&¤t.hp>=player.hp&&!game.hasPlayer(function(current2){ return current2.hp>current.hp&¤t2.isFriendOf(current); - }) - }); - var str=event.players.length?',然后对'+get.translation(event.players)+(event.players.length==1?'':'中的一名角色')+'造成一点伤害':''; - var check=true; - if(!event.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){ - if(!_status.event.aicheck) return 0; - return 9-get.value(card); - }); - 'step 1' - if(result.cards){ - player.logSkill('gzfudi',trigger.source); - trigger.source.gain(result.cards,player); - player.$give(1,trigger.source); - 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(trigger.source)&&target.hp>=player.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); - } - }, - ai:{ - maixie:true, - maixie_defend:true, - effect:{ - target:function(card,player,target){ - if(get.tag(card,'damage')){ - if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; - if(!target.countCards('h')) return [1,-1]; - if(game.countPlayer(function(current){return current.isFriendOf(player)&¤t.hp>=target.hp-1})) return [1,0,0,-2]; - } - } - } - } - }, - congjian:{ + }) + }); + var str=event.players.length?',然后对'+get.translation(event.players)+(event.players.length==1?'':'中的一名角色')+'造成一点伤害':''; + var check=true; + if(!event.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){ + if(!_status.event.aicheck) return 0; + return 9-get.value(card); + }); + 'step 1' + if(result.cards){ + 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(trigger.source)&&target.hp>=player.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); + } + }, + ai:{ + maixie:true, + maixie_defend:true, + effect:{ + target:function(card,player,target){ + if(get.tag(card,'damage')){ + if(player.hasSkillTag('jueqing',false,target)) return [1,-2]; + if(!target.countCards('h')) return [1,-1]; + if(game.countPlayer(function(current){return current.isFriendOf(player)&¤t.hp>=target.hp-1})) return [1,0,0,-2]; + } + } + } + } + }, + congjian:{ trigger:{ player:'damageBegin3', source:'damageBegin1', - }, - forced:true, - filter:function(event,player,name){ - if(event.num<=0) return false; - if(name=='damageBegin1'&&_status.currentPhase!=player&&event.notLink()) return true; + }, + forced:true, + filter:function(event,player,name){ + if(event.num<=0) return false; + if(name=='damageBegin1'&&_status.currentPhase!=player&&event.notLink()) return true; if(name=='damageBegin3'&&_status.currentPhase==player) return true; return false; - }, + }, check:function(event,player){ return _status.currentPhase!=player; }, - content:function(){trigger.num++}, - ai:{ - //damageBones:true, - } - }, - jianan:{ - unique:true, - forceunique:true, - group:'wuziliangjiangdao', - derivation:'wuziliangjiangdao', + content:function(){trigger.num++}, + ai:{ + //damageBones:true, + } + }, + jianan:{ + audio:2, + unique:true, + forceunique:true, + group:'wuziliangjiangdao', + derivation:'wuziliangjiangdao', global:'g_jianan', - }, - g_jianan:{ - trigger:{player:['phaseZhunbeiBegin','phaseBefore','dieBegin']}, + }, + g_jianan:{ + trigger:{ + player:['phaseZhunbeiBegin','phaseBefore','dieBegin'], + }, + audio:'jianan', + forceaudio:true, filter:function(event,player,name){ if(name!='phaseZhunbeiBegin') return get.is.jun(player)&&player.identity=='wei'; return this.filter2.apply(this,arguments); @@ -1121,9 +1122,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(!player.countCards('he')) return false; if(get.is.jun(player)&&player.isUnseen(1)) return false; return !player.isUnseen(); - }, - direct:true, - content:function(){ + }, + direct:true, + content:function(){ 'step 0' if(event.triggername!='phaseZhunbeiBegin'){ event.trigger('jiananUpdate'); @@ -1133,11 +1134,11 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ var skills=['new_retuxi','qiaobian','gzxiaoguo','gzjieyue','new_duanliang']; game.countPlayer(function(current){ if(current==player) return; - if(current.hasSkill('new_retuxi')) skills.remove('new_retuxi'); - if(current.hasSkill('qiaobian')) skills.remove('qiaobian'); - if(current.hasSkill('gzxiaoguo')) skills.remove('gzxiaoguo'); - if(current.hasSkill('gzjieyue')) skills.remove('gzjieyue'); - if(current.hasSkill('new_duanliang')) skills.remove('new_duanliang'); + if(current.hasSkill('new_retuxi')) skills.remove('new_retuxi'); + if(current.hasSkill('qiaobian')) skills.remove('qiaobian'); + if(current.hasSkill('gzxiaoguo')) skills.remove('gzxiaoguo'); + if(current.hasSkill('gzjieyue')) skills.remove('gzjieyue'); + if(current.hasSkill('new_duanliang')) skills.remove('new_duanliang'); }); if(!skills.length) event.finish(); else{ @@ -1203,301 +1204,301 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ player.addTempSkill("jianan_eff","jiananUpdate"); game.log(player,"获得了技能","#g【"+get.translation(result.control)+"】"); }, - }, - jianan_eff:{ - ai:{nomingzhi:true} - }, - huibian:{ - enable:'phaseUse', - usable:1, - filter:function(event,player){ - return game.countPlayer(function(current){ - return current.identity=='wei'; - })>1&&game.hasPlayer(function(current){ - return current.isDamaged()&¤t.identity=='wei'; - }); - }, - filterTarget:function(card,player,target){ - if(ui.selected.targets.length) return target.isDamaged()&&target.identity=='wei'; - return target.identity=='wei'; - }, - selectTarget:2, - multitarget:true, - targetprompt:['受到伤害
然后摸牌','回复体力'], - content:function(){ - 'step 0' - targets[0].damage(player); - 'step 1' - if(targets[0].isAlive()) targets[0].draw(2); - targets[1].recover(); - }, - ai:{ - threaten:1.2, - order:9, - result:{ - target:function(player,target){ - if(ui.selected.targets.length) return 1; - if(get.damageEffect(target,player,player)>0) return 2; - if(target.hp>2) return 1; - if(target.hp==1) return -1; - return 0.1; - } - }, - } - }, - gzzongyu:{ - unique:true, - forceunique:true, - group:['gzzongyu_others','gzzongyu_player'], - ai:{ - threaten:1.2, - }, - subSkill:{ - others:{ - trigger:{global:'equipAfter'}, - direct:true, - filter:function(event,player){ - if(event.player==player||!player.countCards('e',{subtype:['equip3','equip4']})) return false; - return event.card.name=='liulongcanjia'; - }, - check:function(event,player){ - if(get.attitude(player,target)<=0) return player.countCards('e',{subtype:['equip4','equip4']})<2; - return true; - }, - content:function(){ - 'step 0' - player.chooseBool('是否发动【总御】,与'+get.translation(trigger.player)+'交换装备区内坐骑牌?'); - 'step 1' - if(result.bool){ - player.logSkill('gzzongyu_others',trigger.player); - event.cards=[player.getCards('e',{subtype:['equip3','equip4']}),trigger.player.getCards('e',{name:'liulongcanjia'})]; - player.lose(event.cards[0],ui.special); - trigger.player.lose(event.cards[1],ui.special); - if(event.cards[0].length) player.$give(event.cards[0],trigger.player); - if(event.cards[1].length) trigger.player.$give(event.cards[1],player); - } - else event.finish(); - 'step 2' - for(var i=0;i1&&game.hasPlayer(function(current){ + return current.isDamaged()&¤t.identity=='wei'; + }); + }, + filterTarget:function(card,player,target){ + if(ui.selected.targets.length) return target.isDamaged()&&target.identity=='wei'; + return target.identity=='wei'; + }, + selectTarget:2, + multitarget:true, + targetprompt:['受到伤害
然后摸牌','回复体力'], + content:function(){ + 'step 0' + targets[0].damage(player); + 'step 1' + if(targets[0].isAlive()) targets[0].draw(2); + targets[1].recover(); + }, + ai:{ + threaten:1.2, + order:9, + result:{ + target:function(player,target){ + if(ui.selected.targets.length) return 1; + if(get.damageEffect(target,player,player)>0) return 2; + if(target.hp>2) return 1; + if(target.hp==1) return -1; + return 0.1; + } + }, + } + }, + gzzongyu:{ + audio:2, + unique:true, + forceunique:true, + group:['gzzongyu_others','gzzongyu_player'], + ai:{ + threaten:1.2, + }, + subSkill:{ + others:{ + trigger:{global:'equipAfter'}, + direct:true, + filter:function(event,player){ + if(event.player==player||!player.countCards('e',{subtype:['equip3','equip4']})) return false; + return event.card.name=='liulongcanjia'; + }, + check:function(event,player){ + if(get.attitude(player,target)<=0) return player.countCards('e',{subtype:['equip4','equip4']})<2; + return true; + }, + content:function(){ + 'step 0' + player.chooseBool('是否发动【总御】,与'+get.translation(trigger.player)+'交换装备区内坐骑牌?'); + 'step 1' + if(result.bool){ + player.logSkill('gzzongyu',trigger.player); + event.cards=[player.getCards('e',{subtype:['equip3','equip4']}),trigger.player.getCards('e',{name:'liulongcanjia'})]; + player.lose(event.cards[0],ui.special); + trigger.player.lose(event.cards[1],ui.special); + if(event.cards[0].length) player.$give(event.cards[0],trigger.player); + if(event.cards[1].length) trigger.player.$give(event.cards[1],player); + } + else event.finish(); + 'step 2' + for(var i=0;i0.7; - return true; - } - }, - content:function(){ - 'step 0' - var choices=[]; - if(game.hasPlayer(function(current){return current.isUnseen()})) choices.push('选择一名未确定势力的角色'); - if(game.hasPlayer(function(current){return current!=player&&!current.isUnseen()})&&player.countCards('h',{type:'basic'})) choices.push('交给一名已确定势力角色一张基本牌'); - player.chooseControl(choices).set('ai',function(){ - if(choices.length>1){ - var player=_status.event.player; - if(!game.hasPlayer(function(current){ - return !current.isUnseen()&¤t.getEquip('yuxi')||current.hasSkill('gzyongsi')&&!game.hasPlayer(function(current){ - return current.getEquip('yuxi'); - }); - })&&game.hasPlayer(function(current){return current!=player&¤t.isUnseen()})){ - var identity; - for(var i=0;i=get.population(identity)) return 0; - return 1; - } - return 0; - }).set('prompt','征辟

选择一项
'); - 'step 1' - if(result.control=='选择一名未确定势力的角色') player.chooseTarget('征辟

选择一名未确定势力角色,你对其使用牌没有次数和距离限制直到回合结束
',function(card,player,target){ - return target!=player&&target.identity=='unknown' - },true); - else player.chooseCardTarget({ - prompt:'征辟

交给一名已确定势力角色一张基本牌,然后该角色交给你一张非基本牌或两张基本牌
', - position:'h', - filterCard:function(card){return get.type(card)=='basic'}, - filterTarget:function(card,player,target){ - return target!=player&&target.identity!='unknown'; - }, - ai1:function(card){return 7-get.value(card)}, - //ai2:function(card,player,target){} - }).set('forced',true); - 'step 2' - event.target=result.targets[0]; - player.line(result.targets,'green'); - if(result.cards.length){ - event.cards=result.cards; - result.targets[0].gain(result.cards,player); - player.$give(result.cards,result.targets[0]); - } - else{ - player.storage.gzzhengbi_eff1=result.targets[0]; - player.addTempSkill('gzzhengbi_eff1'); - event.finish(); - } - 'step 3' - var choices=[]; - if(target.countCards('he',{type:['trick','delay','equip']})) choices.push('一张非基本牌'); - if(target.countCards('h',{type:'basic'})>1) choices.push('两张基本牌'); - if(choices.length) target.chooseControl(choices).set('ai',function(event,player){ - if(choices.length>1){ - if(player.countCards('he',{type:['trick','delay','equip']},function(card){return get.value(card)<7})) return 0; - return 1; - } - return 0; - }).set('prompt','征辟

交给'+get.translation(player)+'
'); - else{ - if(target.countCards('h')){ - var cards=target.getCards('h'); - player.gain(cards,target); - target.$giveAuto(cards,player); - event.finish(); - } - else event.finish(); - } - 'step 4' - var check=(result.control=='一张非基本牌'); - target.chooseCard('he',(check?1:2),{type:(check?['trick','delay','equip']:'basic')},true); - 'step 5' - if(result.cards){ - player.gain(result.cards,target); - target.$giveAuto(result.cards,player); - } - }, - subSkill:{ - eff1:{ - sub:true, - mod:{ - targetInRange:function (card,player,target){ - if(target==player.storage.gzzhengbi_eff1) return true; - }, - cardUsable:function (card,player,num){ - if(typeof num=='number'&&player.storage.gzzhengbi_eff1.isAlive()&&player.storage.gzzhengbi_eff1.isUnseen()) return num+100; - }, - playerEnabled:function (card,player,target){ - if(player.storage.gzzhengbi_eff1.isAlive()&&player.storage.gzzhengbi_eff1.isUnseen()&&target!=player.storage.gzzhengbi_eff1){ - var num=player.getCardUsable(card)-100; - if(num<=0) return false; - } - }, - }, - onremove:true, - }, - eff2:{sub:true}, - } - }, - gzfengying:{ - limited:true, - enable:'phaseUse', - position:'h', - filterCard:true, - selectCard:-1, + if(player.countCards('h',function(card){return get.value(card)<7})){ + if(player.isUnseen()) return Math.random()>0.7; + return true; + } + }, + content:function(){ + 'step 0' + var choices=[]; + if(game.hasPlayer(function(current){return current.isUnseen()})) choices.push('选择一名未确定势力的角色'); + if(game.hasPlayer(function(current){return current!=player&&!current.isUnseen()})&&player.countCards('h',{type:'basic'})) choices.push('交给一名已确定势力角色一张基本牌'); + player.chooseControl(choices).set('ai',function(){ + if(choices.length>1){ + var player=_status.event.player; + if(!game.hasPlayer(function(current){ + return !current.isUnseen()&¤t.getEquip('yuxi')||current.hasSkill('gzyongsi')&&!game.hasPlayer(function(current){ + return current.getEquip('yuxi'); + }); + })&&game.hasPlayer(function(current){return current!=player&¤t.isUnseen()})){ + var identity; + for(var i=0;i=get.population(identity)) return 0; + return 1; + } + return 0; + }).set('prompt','征辟

选择一项
'); + 'step 1' + if(result.control=='选择一名未确定势力的角色') player.chooseTarget('征辟

选择一名未确定势力角色,你对其使用牌没有次数和距离限制直到回合结束
',function(card,player,target){ + return target!=player&&target.identity=='unknown' + },true); + else player.chooseCardTarget({ + prompt:'征辟

交给一名已确定势力角色一张基本牌,然后该角色交给你一张非基本牌或两张基本牌
', + position:'h', + filterCard:function(card){return get.type(card)=='basic'}, + filterTarget:function(card,player,target){ + return target!=player&&target.identity!='unknown'; + }, + ai1:function(card){return 7-get.value(card)}, + //ai2:function(card,player,target){} + }).set('forced',true); + 'step 2' + event.target=result.targets[0]; + player.line(result.targets,'green'); + if(result.cards.length){ + event.cards=result.cards; + result.targets[0].gain(result.cards,player,'give'); + } + else{ + player.storage.gzzhengbi_eff1=result.targets[0]; + player.addTempSkill('gzzhengbi_eff1'); + event.finish(); + } + 'step 3' + var choices=[]; + if(target.countCards('he',{type:['trick','delay','equip']})) choices.push('一张非基本牌'); + if(target.countCards('h',{type:'basic'})>1) choices.push('两张基本牌'); + if(choices.length) target.chooseControl(choices).set('ai',function(event,player){ + if(choices.length>1){ + if(player.countCards('he',{type:['trick','delay','equip']},function(card){return get.value(card)<7})) return 0; + return 1; + } + return 0; + }).set('prompt','征辟

交给'+get.translation(player)+'
'); + else{ + if(target.countCards('h')){ + var cards=target.getCards('h'); + player.gain(cards,target,'giveAuto'); + event.finish(); + } + else event.finish(); + } + 'step 4' + var check=(result.control=='一张非基本牌'); + target.chooseCard('he',(check?1:2),{type:(check?['trick','delay','equip']:'basic')},true); + 'step 5' + if(result.cards){ + player.gain(result.cards,target,'giveAuto'); + } + }, + subSkill:{ + eff1:{ + sub:true, + mod:{ + targetInRange:function (card,player,target){ + if(target==player.storage.gzzhengbi_eff1) return true; + }, + cardUsable:function (card,player,num){ + if(typeof num=='number'&&player.storage.gzzhengbi_eff1.isAlive()&&player.storage.gzzhengbi_eff1.isUnseen()) return num+100; + }, + playerEnabled:function (card,player,target){ + if(player.storage.gzzhengbi_eff1.isAlive()&&player.storage.gzzhengbi_eff1.isUnseen()&&target!=player.storage.gzzhengbi_eff1){ + var num=player.getCardUsable(card)-100; + if(num<=0) return false; + } + }, + }, + onremove:true, + }, + eff2:{sub:true}, + } + }, + gzfengying:{ + limited:true, + enable:'phaseUse', + position:'h', + filterCard:true, + selectCard:-1, filter:function(event,player){ return !player.storage.gzfengying&&player.countCards('h')>0; }, - filterTarget:function(card,player,target){ - return target==player; - }, - selectTarget:-1, - discard:false, - lose:false, - content:function(){ - 'step 0' + filterTarget:function(card,player,target){ + return target==player; + }, + selectTarget:-1, + discard:false, + lose:false, + content:function(){ + 'step 0' player.awakenSkill('gzfengying'); player.storage.gzfengying=true; - player.useCard({name:'xietianzi'},cards,target); - 'step 1' - var list=game.filterPlayer(function(current){ - return current.isFriendOf(player)&¤t.countCards('h')=4) return 0; - for(var i=0;i=4) return 0; + for(var i=0;i0) return 11-get.value(card); - return 7-get.value(card); - }, - ai2:function(card,player,target){ - var att=get.attitude(player,target); - if(att<0) return -att; - return 1; - } - }); - 'step 1' - if(result.bool){ - event.target=result.targets[0]; - player.logSkill('gzjieyue',result.targets); - result.targets[0].gain(result.cards[0],player); - player.$give(1,result.targets[0]); - player.chooseJunlingFor(result.targets[0]); - } - else event.finish(); - 'step 2' - event.junling=result.junling; - event.targets=result.targets; - var choiceList=[]; - choiceList.push('执行该军令,然后'+get.translation(player)+'摸一张牌'); - choiceList.push('令'+get.translation(player)+'摸牌阶段额外摸三张牌'); - target.chooseJunlingControl(player,result.junling,result.targets).set('prompt','节钺').set('choiceList',choiceList).set('ai',function(){ - if(get.attitude(target,player)>0) return get.junlingEffect(player,result.junling,target,result.targets,target)>1?0:1; - return get.junlingEffect(player,result.junling,target,result.targets,target)>=-1?0:1; - }); - 'step 3' - if(result.index==0){ - target.carryOutJunling(player,event.junling,targets); - player.draw(); - } - else player.addTempSkill('gzjieyue_eff'); - }, - ai:{threaten:2}, - subSkill:{ - eff:{ - sub:true, - trigger:{global:'phaseDrawBegin2'}, - filter:function(event,player){ - if(event.player!=player) return false; - return event.num>0; - }, - silent:true, - content:function(){ - trigger.num+=3; - } - } - }, - audio:['jieyue',2], + }, + ai1:function(card,player,target){ + if(get.attitude(player,target)>0) return 11-get.value(card); + return 7-get.value(card); + }, + ai2:function(card,player,target){ + var att=get.attitude(player,target); + if(att<0) return -att; + return 1; + } + }); + 'step 1' + if(result.bool){ + event.target=result.targets[0]; + player.logSkill('gzjieyue',result.targets); + result.targets[0].gain(result.cards[0],player,'giveAuto'); + player.chooseJunlingFor(result.targets[0]); + } + else event.finish(); + 'step 2' + event.junling=result.junling; + event.targets=result.targets; + var choiceList=[]; + choiceList.push('执行该军令,然后'+get.translation(player)+'摸一张牌'); + choiceList.push('令'+get.translation(player)+'摸牌阶段额外摸三张牌'); + target.chooseJunlingControl(player,result.junling,result.targets).set('prompt','节钺').set('choiceList',choiceList).set('ai',function(){ + if(get.attitude(target,player)>0) return get.junlingEffect(player,result.junling,target,result.targets,target)>1?0:1; + return get.junlingEffect(player,result.junling,target,result.targets,target)>=-1?0:1; + }); + 'step 3' + if(result.index==0){ + target.carryOutJunling(player,event.junling,targets); + player.draw(); + } + else player.addTempSkill('gzjieyue_eff'); + }, + ai:{threaten:2}, + subSkill:{ + eff:{ + sub:true, + trigger:{global:'phaseDrawBegin2'}, + filter:function(event,player){ + if(event.player!=player) return false; + return event.num>0; + }, + silent:true, + content:function(){ + trigger.num+=3; + } + } + }, + audio:['jieyue',2], }, - jianglue:{ - limited:true, - enable:'phaseUse', - prepare:function(cards,player){ - var targets=game.filterPlayer(function(current){ - return current.isFriendOf(player)||current.isUnseen(); - }); - player.line(targets,'fire'); - }, - content:function(){ - 'step 0' - player.awakenSkill('jianglue'); - player.addTempSkill('jianglue_count'); - player.chooseJunlingFor(player).set('prompt','选择一张军令牌,令与你势力相同的其他角色选择是否执行'); - 'step 1' - event.junling=result.junling; - event.targets=result.targets; - event.players=game.filterPlayer(function(current){ - if(current==player) return false; - return current.isFriendOf(player)||current.isUnseen(); - }).sort(lib.sort.seat); - event.num=0; - 'step 2' - if(num0.5?0:1;}).prompt='选择并展示一张武将牌,然后执行军令'; - } - 'step 4' - if(!event.list) event.list=[player]; - if(event.carry){ - if(event.showCharacter) event.current.showCharacter(result.index); - event.current.carryOutJunling(player,event.junling,targets); - event.list.push(event.current); - } - event.num++; - if(event.num0) player.draw(player.storage.jianglue_count); - }, - marktext:'略', - skillAnimation:'epic', - animationColor:'soil', - ai:{ - order:4, - result:{ - player:function(player){ - if(player.isUnseen()&&player.wontYe()){ - if(get.population(player._group)>=game.players.length/4) return 1; - return Math.random()>0.7?1:0; - } - else return 1; - } - } - }, - subSkill:{ - count:{ - sub:true, - trigger:{global:'recoverAfter'}, - silent:true, - filter:function(event){return event.getParent('jianglue')}, - content:function(){player.storage.jianglue_count++} - } - } - }, - gzxuanhuo:{ - global:'gzxuanhuo_others', - derivation:['wusheng','new_paoxiao','new_longdan','new_tieji','liegong','xinkuanggu'], - ai:{ - threaten:function(player,target){ - if(game.hasPlayer(function(current){ - return current!=target&¤t.isFriendOf(target); - })) return 1.5; - return 0.5; - }, - }, - subSkill:{ - others:{ - enable:'phaseUse', - usable:1, - filter:function(event,player){ - return (!player.isUnseen())&&player.countCards('he')>2&&game.hasPlayer(function(current){ - return current!=player&¤t.hasSkill('gzxuanhuo')&&player.isFriendOf(current); + jianglue:{ + limited:true, + enable:'phaseUse', + prepare:function(cards,player){ + var targets=game.filterPlayer(function(current){ + return current.isFriendOf(player)||current.isUnseen(); + }); + player.line(targets,'fire'); + }, + content:function(){ + 'step 0' + player.awakenSkill('jianglue'); + player.addTempSkill('jianglue_count'); + player.chooseJunlingFor(player).set('prompt','选择一张军令牌,令与你势力相同的其他角色选择是否执行'); + 'step 1' + event.junling=result.junling; + event.targets=result.targets; + event.players=game.filterPlayer(function(current){ + if(current==player) return false; + return current.isFriendOf(player)||current.isUnseen(); + }).sort(lib.sort.seat); + event.num=0; + 'step 2' + if(num0.5?0:1;}).prompt='选择并展示一张武将牌,然后执行军令'; + } + 'step 4' + if(!event.list) event.list=[player]; + if(event.carry){ + if(event.showCharacter) event.current.showCharacter(result.index); + event.current.carryOutJunling(player,event.junling,targets); + event.list.push(event.current); + } + event.num++; + if(event.num0) player.draw(player.storage.jianglue_count); + }, + marktext:'略', + skillAnimation:'epic', + animationColor:'soil', + ai:{ + order:4, + result:{ + player:function(player){ + if(player.isUnseen()&&player.wontYe()){ + if(get.population(player._group)>=game.players.length/4) return 1; + return Math.random()>0.7?1:0; + } + else return 1; + } + } + }, + subSkill:{ + count:{ + sub:true, + trigger:{global:'recoverAfter'}, + silent:true, + filter:function(event){return event.getParent('jianglue')}, + content:function(){player.storage.jianglue_count++} + } + } + }, + gzxuanhuo:{ + global:'gzxuanhuo_others', + derivation:['wusheng','new_paoxiao','new_longdan','new_tieji','liegong','xinkuanggu'], + ai:{ + threaten:function(player,target){ + if(game.hasPlayer(function(current){ + return current!=target&¤t.isFriendOf(target); + })) return 1.5; + return 0.5; + }, + }, + subSkill:{ + others:{ + enable:'phaseUse', + usable:1, + filter:function(event,player){ + return (!player.isUnseen())&&player.countCards('he')>2&&game.hasPlayer(function(current){ + return current!=player&¤t.hasSkill('gzxuanhuo')&&player.isFriendOf(current); }); - }, + }, prompt:function(){ var player=_status.event.player; var list=game.filterPlayer(function(current){ @@ -1725,46 +1725,46 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ str+=',并弃置第二张牌'; return str; }, - position:'he', - filterCard:true, - selectCard:2, - complexSelect:true, - complexCard:true, - check:function(card,player,target){ - if(get.position(card)=='h') return 8-get.value(card); - return 6-get.value(card); - }, - filterTarget:function(card,player,target){return target!=player&&target.hasSkill('gzxuanhuo')&&target.isFriendOf(player)}, - discard:false, + position:'he', + filterCard:true, + selectCard:2, + complexSelect:true, + complexCard:true, + check:function(card,player,target){ + if(get.position(card)=='h') return 8-get.value(card); + return 6-get.value(card); + }, + filterTarget:function(card,player,target){return target!=player&&target.hasSkill('gzxuanhuo')&&target.isFriendOf(player)}, + discard:false, lose:false, - content:function(){ - 'step 0' + content:function(){ + 'step 0' target.gain(cards[0],player); player.$giveAuto(cards[0],target); player.discard(cards[1]); - 'step 1' - var list=['wusheng','new_paoxiao','new_longdan','new_tieji','liegong','xinkuanggu']; - for(var i=0;i0) event.goto(1); @@ -1839,23 +1838,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }).set('filterCard',lib.filter.cardDiscardable); 'step 2' if(result.bool&&result.cards.length){ - if(get.type(result.cards[0])=='equip'&&player.canEquip(result.cards[0],true)){ - player.$give(result.cards,player); - player.lose(result.cards,ui.special); - event.toequip=result.cards[0]; + if(get.type(result.cards[0])=='equip'&&player.hasUseTarget(result.cards[0])){ + player.chooseUseTarget(result.cards[0],true,'nopopup'); } else{ player.discard(result.cards[0]); } } - 'step 3' - if(event.toequip){ - game.delay(); - } - 'step 4' - if(event.toequip){ - player.equip(event.toequip); - } }, ai:{ effect:{ @@ -3027,27 +3016,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, hmkguishu:{ audio:'bmcanshi', - group:["hmkguishu_reset"], - subSkill:{ - reset:{ - sub:true, - silent:true, - forced:true, - popup:false, - trigger:{ - player:"phaseBefore", - }, - content:function (){ - player.storage.hmkguishu=0; - }, - }, - }, enable:"phaseUse", filter:function (event,player){ return player.countCards('h',{suit:'spade'})>0; }, init:function (player){ - player.storage.hmkguishu=0; + if(!player.storage.hmkguishu) player.storage.hmkguishu=0; }, chooseButton:{ dialog:function (event,player){ @@ -3514,7 +3488,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ var card=result.cards[0] player.storage.qianhuan.add(card); player.lose(card,ui.special); - player.$give(card,player); + player.$give(card,player,false); player.markSkill('qianhuan',true); player.logSkill('qianhuan'); } @@ -3951,7 +3925,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ }, jiahe_put:{ enable:'phaseUse', - audio:"jiahe", + audio:2, + forceaudio:true, filter:function(event,player){ var zhu=get.zhu(player,'jiahe'); if(zhu&&zhu.storage.yuanjiangfenghuotu){ @@ -3986,7 +3961,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ toStorage:true, prepare:function(cards,player){ var zhu=get.zhu(player,'jiahe'); - player.$give(cards,zhu); + player.$give(cards,zhu,false); player.line(zhu); }, content:function(){ @@ -4006,7 +3981,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ jiahe_skill:{ trigger:{player:'phaseZhunbeiBegin'}, direct:true, - audio:"jiahe", + audio:"jiahe_put", + forceaudio:true, filter:function(event,player){ var zhu=get.zhu(player,'jiahe'); if(zhu&&zhu.storage.yuanjiangfenghuotu&&zhu.storage.yuanjiangfenghuotu.length){ @@ -4064,7 +4040,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ 'step 2' if(result.control!='cancel2'){ player.addTempSkill(result.control); - if(!event.done) player.logSkill('jiahe'); + if(!event.done) player.logSkill('jiahe_put'); game.log(player,'获得了技能','【'+get.translation(result.control)+'】'); if(event.num>=5&&!event.done){ event.done=true; @@ -4635,6 +4611,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ audio:'suishi', trigger:{global:'dieAfter'}, forced:true, + check:function(){return false}, filter:function(event,player){ return event.player.isFriendOf(player); }, @@ -4643,7 +4620,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } }, hongfa_respond:{ - audio:'hongfa', + audio:'huangjintianbingfu', + forceaudio:true, trigger:{player:'chooseToRespondBegin'}, direct:true, filter:function(event,player){ @@ -4677,7 +4655,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ } }, hongfa_use:{ - audio:'hongfa', + audio:'huangjintianbingfu', + forceaudio:true, enable:'chooseToUse', filter:function(event,player){ if(!event.filterCard({name:'sha'},player)) return false; @@ -4761,6 +4740,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ global:['hongfa_use','hongfa_respond'], subSkill:{ hp:{ + audio:true, trigger:{player:'loseHpBefore'}, filter:function(event,player){ return player.storage.huangjintianbingfu.length>0; @@ -4780,7 +4760,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ player.updateMarks('huangjintianbingfu'); player.syncStorage('huangjintianbingfu'); trigger.cancel(); - player.logSkill('hongfa'); + player.logSkill('hongfa_hp'); game.delay(); } } @@ -4799,13 +4779,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ check:function(card){ return 6-get.value(card); }, + onChooseToUse:function(event){ + if(game.online) return; + event.set('wendao',function(){ + for(var i=0;i0.5?1:-1; + return (rank*get.attitude(player,trigger.source))>0?'副将':'主将'; + }()); } 'step 1' var skills; @@ -6148,7 +6139,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(_status.connectMode){ if(!lib.configOL.junzhu) return false; } - else if(!get.config('junzhu')) return false;; + else if(!get.config('junzhu')) return false; return true; }, content:function(){ @@ -6165,6 +6156,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ var to='gz_jun_'+player.name1.slice(3); event.maxHp=player.maxHp; player.reinit(from,to,4); + if(lib.skill[to]) game.trySkillAudio(to,player); player.showCharacter(0); } else event.finish(); @@ -6172,6 +6164,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ if(player.maxHp>event.maxHp) player.recover(player.maxHp-event.maxHp); } }, + gz_jun_liubei:{audio:true}, + gz_jun_caocao:{audio:true}, + gz_jun_sunquan:{audio:true}, + gz_jun_zhangjiao:{audio:true}, _zhenfazhaohuan:{ enable:'phaseUse', usable:1, @@ -7004,75 +7000,76 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ _zhenfazhaohuan:'阵法召唤', _zhenfazhaohuan_info:'由拥有阵法技的角色发起,满足此阵法技条件的未确定势力角色均可按逆时针顺序依次明置其一张武将牌(响应阵法召唤),以发挥阵法技的效果', - - junling:'军令', - junling1:'军令一', - junling1_bg:'令', - junling1_info:'若被执行,执行者对发起者指定的一名角色造成一点伤害。', - junling2:'军令二', - junling2_bg:'令', - junling2_info:'若被执行,执行者摸一张牌,然后依次交给发起者两张牌。', + + junling:'军令', + junling1:'军令一', + junling1_bg:'令', + junling1_info:'若被执行,执行者对发起者指定的一名角色造成一点伤害。', + junling2:'军令二', + junling2_bg:'令', + junling2_info:'若被执行,执行者摸一张牌,然后依次交给发起者两张牌。', junling3:'军令三', - junling3_bg:'令', - junling3_info:'若被执行,执行者失去一点体力。', - junling4:'军令四', - junling4_bg:'令', - junling4_info:'若被执行,直到回合结束,执行者不能使用或打出手牌且非锁定技全部失效。', - junling4_eff:'军令四', - junling5:'军令五', - junling5_bg:'令', - junling5_info:'若被执行,执行者将武将牌叠置,且不能回复体力直到回合结束。', + junling3_bg:'令', + junling3_info:'若被执行,执行者失去一点体力。', + junling4:'军令四', + junling4_bg:'令', + junling4_info:'若被执行,直到回合结束,执行者不能使用或打出手牌且非锁定技全部失效。', + junling4_eff:'军令四', + junling5:'军令五', + junling5_bg:'令', + junling5_info:'若被执行,执行者将武将牌叠置,且不能回复体力直到回合结束。', junling5_eff:'军令五', - junling6:'军令六', - junling6_bg:'令', + junling6:'军令六', + junling6_bg:'令', junling6_info:'若被执行,执行者选择一张手牌和一张装备区内牌(若有),然后弃置其余的牌。', - gz_cuimao:'崔琰毛玠', - gzzhengbi:'征辟', - gzzhengbi_info:'出牌阶段开始时,你可以选择一项:选择一名未确定势力的角色,你对其使用的牌无距离限制且不计入使用次数,直到其明置武将牌或回合结束;或将一张基本牌交给一名有明置武将牌的角色,然后其交给你一张非基本牌或两张基本牌。', - gzfengying:'奉迎', - gzfengying_info:'限定技,你可以将所有手牌当【挟天子以令诸侯】使用(无视大势力限制),然后所有与你势力相同的角色将手牌补至体力上限。', - gz_yujin:'于禁', - gzjieyue:'节钺', + gz_cuimao:'崔琰毛玠', + gzzhengbi:'征辟', + gzzhengbi_info:'出牌阶段开始时,你可以选择一项:选择一名未确定势力的角色,你对其使用的牌无距离限制且不计入使用次数,直到其明置武将牌或回合结束;或将一张基本牌交给一名有明置武将牌的角色,然后其交给你一张非基本牌或两张基本牌。', + gzfengying:'奉迎', + gzfengying_info:'限定技,你可以将所有手牌当【挟天子以令诸侯】使用(无视大势力限制),然后所有与你势力相同的角色将手牌补至体力上限。', + gz_yujin:'于禁', + gzjieyue:'节钺', gzjieyue_info:'准备阶段开始时,你可以将一张手牌交给一名非魏势力角色,然后选择一个“军令”,然后令其选择一项:执行该军令,然后你摸一张牌;或令你于此回合摸牌阶段摸牌时,额外摸三张牌。', gz_wangping:'王平', - jianglue:'将略', - jianglue_info:'限定技,出牌阶段,你可以选择一个“军令”,然后与你势力相同的其他角色可以执行该军令(未确定势力角色可以在此时明置一张武将牌)。你与每名执行该军令的角色增加一点体力上限,然后回复一点体力,然后你摸X张牌(X为以此法回复了体力的角色数)。', - gz_fazheng:'法正', - gzxuanhuo:'眩惑', + + jianglue:'将略', + jianglue_info:'限定技,出牌阶段,你可以选择一个“军令”,然后与你势力相同的其他角色可以执行该军令(未确定势力角色可以在此时明置一张武将牌)。你与每名执行该军令的角色增加一点体力上限,然后回复一点体力,然后你摸X张牌(X为以此法回复了体力的角色数)。', + gz_fazheng:'法正', + gzxuanhuo:'眩惑', gzxuanhuo_info:'与你势力相同的其他角色的出牌阶段限一次,该角色可以交给你一张牌并弃置一张牌,然后获得以下一项场上没有的技能直到回合结束:“武圣”、“咆哮”、“龙胆”、“铁骑”、“烈弓”、“狂骨”。', gzenyuan:'恩怨', gzenyuan_info:'锁定技,当其他角色对你使用【桃】时,该角色摸一张牌;当你受到伤害后,伤害来源须交给你一张手牌或失去1点体力。', - gzbuyi:'补益', - gzbuyi_info:'每名角色的回合限一次,当一名与你势力相同的角色脱离濒死状态后,你可以选择一个“军令”,令伤害来源选择一项:执行该军令,或令该脱离濒死状态的角色回复一点体力。', - gz_lukang:'陆抗', - keshou:'恪守', - keshou_info:'当你受到伤害时,你可以弃置两张颜色相同的牌。若如此做,此伤害-1,然后若没有与你势力相同的其他角色,你进行一次判定,若结果为红色,你摸一张牌。', - zhuwei:'筑围', - zhuwei_info:'当你的判定牌生效后,若此牌为【杀】或【决斗】,你可以获得之,然后你可令当前回合角色本回合可额外使用一张【杀】,且手牌上限+1。', - gz_yuanshu:'袁术', - gzweidi:'伪帝', - gzweidi_info:'出牌阶段限一次,你可以指定一名本回合从牌堆获得过牌的其他角色,然后选择一个“军令”,令其选择一项:执行该军令;或令你获得其所有手牌,然后交给其等量的牌。', - gzyongsi:'庸肆', - gzyongsi_info:'锁定技,若场上没有【玉玺】,视为你装备之;当你成为【知己知彼】的目标时,你展示你的所有手牌。', - //gzyongsi_eff1:'玉玺', - //gzyongsi_eff2:'玉玺', - gz_zhangxiu:'张绣', - gzfudi:'附敌', - gzfudi_info:'当你受到伤害后,你可以交给伤害来源一张手牌。若如此做,你对其势力中的体力值最大且不小于你的一名角色造成一点伤害。', - congjian:'从谏', - congjian_info:'锁定技,你于回合外造成的伤害,于回合内受到的伤害+1。', - gz_jun_caocao:'君曹操', - jianan:'建安', - jianan_info:'君主技,只要此武将处于明置状态,你便拥有“五子良将纛”。', - g_jianan:'五子良将纛', - wuziliangjiangdao:'五子良将纛', - wuziliangjiangdao_ab:'将纛', - wuziliangjiangdao_bg:'纛', - wuziliangjiangdao_info:'魏势力角色的准备阶段开始时,其可以弃置一张牌。若如此做,其选择一张暗置的武将牌(若没有,则选择一张暗置),然后获得下列技能中的一项(其他角色已有的技能无法选择)且不能明置选择的武将牌直到你的下个回合开始:“突袭”,“巧变”,“骁果”,“节钺”,“断粮”。', - huibian:'挥鞭', - huibian_info:'出牌阶段限一次,你可以选择一名魏势力角色和另一名已受伤的魏势力角色。若如此做,你对前者造成一点伤害,然后其摸两张牌,然后后者回复一点体力。', - gzzongyu:'总御', + gzbuyi:'补益', + gzbuyi_info:'每名角色的回合限一次,当一名与你势力相同的角色脱离濒死状态后,你可以选择一个“军令”,令伤害来源选择一项:执行该军令,或令该脱离濒死状态的角色回复一点体力。', + gz_lukang:'陆抗', + keshou:'恪守', + keshou_info:'当你受到伤害时,你可以弃置两张颜色相同的牌。若如此做,此伤害-1,然后若没有与你势力相同的其他角色,你进行一次判定,若结果为红色,你摸一张牌。', + zhuwei:'筑围', + zhuwei_info:'当你的判定牌生效后,若此牌为【杀】或【决斗】,你可以获得之,然后你可令当前回合角色本回合可额外使用一张【杀】,且手牌上限+1。', + gz_yuanshu:'袁术', + gzweidi:'伪帝', + gzweidi_info:'出牌阶段限一次,你可以指定一名本回合从牌堆获得过牌的其他角色,然后选择一个“军令”,令其选择一项:执行该军令;或令你获得其所有手牌,然后交给其等量的牌。', + gzyongsi:'庸肆', + gzyongsi_info:'锁定技,若场上没有【玉玺】,视为你装备之;当你成为【知己知彼】的目标时,你展示你的所有手牌。', + //gzyongsi_eff1:'玉玺', + //gzyongsi_eff2:'玉玺', + gz_zhangxiu:'张绣', + gzfudi:'附敌', + gzfudi_info:'当你受到伤害后,你可以交给伤害来源一张手牌。若如此做,你对其势力中的体力值最大且不小于你的一名角色造成一点伤害。', + congjian:'从谏', + congjian_info:'锁定技,你于回合外造成的伤害,于回合内受到的伤害+1。', + gz_jun_caocao:'君曹操', + jianan:'建安', + jianan_info:'君主技,只要此武将处于明置状态,你便拥有“五子良将纛”。', + g_jianan:'五子良将纛', + wuziliangjiangdao:'五子良将纛', + wuziliangjiangdao_ab:'将纛', + wuziliangjiangdao_bg:'纛', + wuziliangjiangdao_info:'魏势力角色的准备阶段开始时,其可以弃置一张牌。若如此做,其选择一张暗置的武将牌(若没有,则选择一张暗置),然后获得下列技能中的一项(其他角色已有的技能无法选择)且不能明置选择的武将牌直到你的下个回合开始:“突袭”,“巧变”,“骁果”,“节钺”,“断粮”。', + huibian:'挥鞭', + huibian_info:'出牌阶段限一次,你可以选择一名魏势力角色和另一名已受伤的魏势力角色。若如此做,你对前者造成一点伤害,然后其摸两张牌,然后后者回复一点体力。', + gzzongyu:'总御', gzzongyu_info:'当【六龙骖驾】进入其他角色的装备区后,你可以用你装备区内所有坐骑牌(至少一张)与【六龙骖驾】交换位置。锁定技,当你使用一张坐骑牌后,若场上或弃牌堆中有【六龙骖驾】,则将【六龙骖驾】置入你的装备区。', xindiaodu:"调度", @@ -7487,107 +7484,106 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ ], element:{ content:{ - chooseJunlingFor:function(){ - 'step 0' - var list=['junling1','junling2','junling3','junling4','junling5','junling6']; - list=list.randomGets(2).sort(); - for(var i=0;i选项'+get.cnNumber(i+1,true)+':'+event.choiceList[i]+''); - controls.push('选项'+get.cnNumber(i+1,true)); - } - } - else if(event.controls) controls=event.controls; - else controls=['执行该军令','不执行该军令']; - if(!event.ai) event.ai=function(){return Math.floor(controls.length*Math.random())}; - player.chooseControl(controls).set('dialog',dialog).set('ai',event.ai); - 'step 1' - event.result={ - index:result.index, - control:result.control, - }; - }, - carryOutJunling:function(){ - 'step 0' - switch(event.junling){ - case 'junling1':{ - if(targets[0].isAlive()){ - player.line(targets,'green'); - targets[0].damage(player); - } - break; - } - case 'junling2':player.draw();event.num=1;break; - case 'junling3':player.loseHp();break; - case 'junling4':player.addTempSkill('junling4_eff');player.addTempSkill('fengyin_vice');player.addTempSkill('fengyin_main');break; - case 'junling5':player.turnOver();player.addTempSkill('junling5_eff');break; - } - 'step 1' - if(event.junling=='junling2'&&source!=player&&player.countCards('he')>0){ - player.chooseCard('交给'+get.translation(source)+'第'+get.cnNumber(event.num)+'张牌(共两张)','he',true); - event.ing=true; - } - if(event.junling=='junling6'){ - var position='',num0=0; - if(player.countCards('h')){position+='h';num0++;} - if(player.countCards('e')){position+='e';num0++;} - player.chooseCard('选择一张手牌和一张装备区内牌(若有),然后弃置其余的牌',position,num0,function(card){ - if(ui.selected.cards.length) return get.position(card)!=get.position(ui.selected.cards[0]); - return true; - },true).set('complexCard',true).set('ai',function(card){return get.value(card)}); - } - 'step 2' - if(event.junling=='junling2'&&source!=player){ - if(result.cards.length&&event.ing){ - source.gain(result.cards,player); - player.$give(1,source); - } - event.num++; - if(event.num<3){ - event.ing=false; - event.goto(1); - } - } - if(event.junling=='junling6'){ - var cards=player.getCards('he'); - for(var i=0;i选项'+get.cnNumber(i+1,true)+':'+event.choiceList[i]+''); + controls.push('选项'+get.cnNumber(i+1,true)); + } + } + else if(event.controls) controls=event.controls; + else controls=['执行该军令','不执行该军令']; + if(!event.ai) event.ai=function(){return Math.floor(controls.length*Math.random())}; + player.chooseControl(controls).set('dialog',dialog).set('ai',event.ai); + 'step 1' + event.result={ + index:result.index, + control:result.control, + }; + }, + carryOutJunling:function(){ + 'step 0' + switch(event.junling){ + case 'junling1':{ + if(targets[0].isAlive()){ + player.line(targets,'green'); + targets[0].damage(player); + } + break; + } + case 'junling2':player.draw();event.num=1;break; + case 'junling3':player.loseHp();break; + case 'junling4':player.addTempSkill('junling4_eff');player.addTempSkill('fengyin_vice');player.addTempSkill('fengyin_main');break; + case 'junling5':player.turnOver();player.addTempSkill('junling5_eff');break; + } + 'step 1' + if(event.junling=='junling2'&&source!=player&&player.countCards('he')>0){ + player.chooseCard('交给'+get.translation(source)+'第'+get.cnNumber(event.num)+'张牌(共两张)','he',true); + event.ing=true; + } + if(event.junling=='junling6'){ + var position='',num0=0; + if(player.countCards('h')){position+='h';num0++;} + if(player.countCards('e')){position+='e';num0++;} + player.chooseCard('选择一张手牌和一张装备区内牌(若有),然后弃置其余的牌',position,num0,function(card){ + if(ui.selected.cards.length) return get.position(card)!=get.position(ui.selected.cards[0]); + return true; + },true).set('complexCard',true).set('ai',function(card){return get.value(card)}); + } + 'step 2' + if(event.junling=='junling2'&&source!=player){ + if(result.cards.length&&event.ing){ + source.gain(result.cards,player,'giveAuto'); + } + event.num++; + if(event.num<3){ + event.ing=false; + event.goto(1); + } + } + if(event.junling=='junling6'){ + var cards=player.getCards('he'); + for(var i=0;i0})) eff1=2; - else{ - if(get.damageEffect(targets[0],performer,source)>=0) eff1=2; - else eff1=-2; - if(get.damageEffect(targets[0],source,performer)>=0) eff2=2; - else eff2=-2; - } - break; - case 'junling2': - if(performer.countCards('he')){eff1=1;eff2=0;} - else{eff1=2;eff2=-1;} - break; - case 'junling3': - if(performer.hp==1&&!performer.countCards(function(card){return get.tag(card,save)})&&!player.hasSkillTag('save',true)) eff2=-5; - else{ - if(performer==viewer){ - if(performer.hasSkillTag('maihp',true)) eff2=3; - else eff2=-2; - } - else{ - if(performer.hasSkillTag('maihp',false)) eff2=3; - else eff2=-2; - } - } - break; - case 'junling4':eff1=0;eff2=-2;break; - case 'junling5': - var td=performer.isTurnedOver(); - if(td){ - if(performer==viewer){ - if(_status.currentPhase==performer&&performer.hasSkill('jushou')) eff2=-3; - else eff2=3; - } - else eff2=3; - } - else{ - if(performer==viewer){ - if(performer.hasSkillTag('noturn',true)) eff2=0; - else eff2=-3; - } - else{ - if(performer.hasSkillTag('noturn',false)) eff2=0; - else eff2=-3; - } - } - break; - case 'junling6': - if(performer.countCards('h')>1) eff2+=1-performer.countCards('h'); - if(performer.countCards('e')>1) eff2+=1-performer.countCards('e'); - break; - } - return Math.sign(att1)*eff1+Math.sign(att2)*eff2; + junlingEffect:function(source,junling,performer,targets,viewer){ + var att1=get.attitude(viewer,source),att2=get.attitude(viewer,performer); + var eff1=0,eff2=0; + switch(junling){ + case 'junling1': + if(!targets.length&&game.countPlayer(function(current){return get.damageEffect(viewer,current,viewer)>0})) eff1=2; + else{ + if(get.damageEffect(targets[0],performer,source)>=0) eff1=2; + else eff1=-2; + if(get.damageEffect(targets[0],source,performer)>=0) eff2=2; + else eff2=-2; + } + break; + case 'junling2': + if(performer.countCards('he')){eff1=1;eff2=0;} + else{eff1=2;eff2=-1;} + break; + case 'junling3': + if(performer.hp==1&&!performer.countCards(function(card){return get.tag(card,save)})&&!player.hasSkillTag('save',true)) eff2=-5; + else{ + if(performer==viewer){ + if(performer.hasSkillTag('maihp',true)) eff2=3; + else eff2=-2; + } + else{ + if(performer.hasSkillTag('maihp',false)) eff2=3; + else eff2=-2; + } + } + break; + case 'junling4':eff1=0;eff2=-2;break; + case 'junling5': + var td=performer.isTurnedOver(); + if(td){ + if(performer==viewer){ + if(_status.currentPhase==performer&&performer.hasSkill('jushou')) eff2=-3; + else eff2=3; + } + else eff2=3; + } + else{ + if(performer==viewer){ + if(performer.hasSkillTag('noturn',true)) eff2=0; + else eff2=-3; + } + else{ + if(performer.hasSkillTag('noturn',false)) eff2=0; + else eff2=-3; + } + } + break; + case 'junling6': + if(performer.countCards('h')>1) eff2+=1-performer.countCards('h'); + if(performer.countCards('e')>1) eff2+=1-performer.countCards('e'); + break; + } + return Math.sign(att1)*eff1+Math.sign(att2)*eff2; }, realAttitude:function(from,toidentity,difficulty){ if(from.identity==toidentity&&toidentity!='ye'){ diff --git a/mode/identity.js b/mode/identity.js index 513584836..19ad0a4e6 100644 --- a/mode/identity.js +++ b/mode/identity.js @@ -1377,7 +1377,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){ for(var i=0;i