diff --git a/card/hearth.js b/card/hearth.js index 43a6d02eb..ff1733f27 100644 --- a/card/hearth.js +++ b/card/hearth.js @@ -364,8 +364,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){ target.changeHujia(); target.draw(); 'step 1' - if(player.countCards('he')){ - player.chooseToDiscard('he',true); + if(target.countCards('he')){ + target.chooseToDiscard('he',true); } }, ai:{ diff --git a/character/hearth.js b/character/hearth.js index 1995134dd..8a85c8502 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -6040,17 +6040,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){ game.delayx(0.5); 'step 3' trigger.trigger('useCard'); + trigger.insertAfter(lib.skill.huanjue.draw,{player:trigger.player}); }, + draw:function(){ + player.draw(); + }, ai:{ expose:0.2, threaten:function(player,target){ if(target.storage.counttrigger&&target.storage.counttrigger.huanjue) return 1.8; return 0.6; - }, - effect:{ - target:function(player,target){ - if(player!=target&&_status.currentPhase==target) return 0; - } } } }, @@ -7997,7 +7996,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ yindan:'引弹', yindan_info:'出牌阶段限一次,你可以弃置一张黑桃牌并流失一点体力,然后获得两张炸弹机器人', huanjue:'幻觉', - huanjue_info:'每名角色的回合限一次,当你使用卡牌指定其他角色为惟一目标,或当其他角色使用卡牌指定你为惟一目标时,你可以从三张随机亮出的牌中选择一张代替此牌', + huanjue_info:'每名角色的回合限一次,当你使用卡牌指定其他角色为惟一目标,或当其他角色使用卡牌指定你为惟一目标时,你可以从三张随机亮出的牌中选择一张代替此牌,然后该牌的使用者在结算后摸一张牌', yinzong:'影踪', yinzong_info:'锁定技,每当你失去装备区内牌,你获得潜行直到下一回合开始', tansuo:'探索', diff --git a/game/game.js b/game/game.js index b993651f1..451877f5c 100644 --- a/game/game.js +++ b/game/game.js @@ -9,6 +9,7 @@ event:{ finished:true, next:[], + after:[] }, ai:{}, lastdragchange:[], @@ -20432,7 +20433,16 @@ return this._rand; }, insert:function(func,map){ - var next=game.createEvent(this.name+'Inserted',false); + var next=game.createEvent(this.name+'Inserted',false,this); + next.setContent(func); + for(var i in map){ + next.set(i,map[i]); + } + return next; + }, + insertAfter:function(func,map){ + var next=game.createEvent(this.name+'Inserted',false,{next:[]}); + this.after.push(next); next.setContent(func); for(var i in map){ next.set(i,map[i]); @@ -22529,6 +22539,7 @@ _status.event={ finished:true, next:[], + after:[] }; _status.paused=false; game.createEvent('game',false).setContent(lib.init.startOnline); @@ -22743,6 +22754,7 @@ _status.event={ finished:true, next:[], + after:[] }; _status.paused=false; _status.dying=get.parsedResult(state.dying)||[]; @@ -25930,6 +25942,7 @@ step:0, finished:false, next:[], + after:[], custom:{ add:{}, replace:{} @@ -26991,6 +27004,17 @@ event.trigger(event.name+'After'); event._triggered++; } + else if(event.after&&event.after.length){ + var next=event.after.shift(); + if(next.player&&next.player.skipList.contains(next.name)){ + event.trigger(next.name+'Skipped'); + next.player.skipList.remove(next.name); + } + else{ + next.parent=event; + _status.event=next; + } + } else{ if(event.parent){ if(event.result){ @@ -27856,6 +27880,7 @@ _status.event={ finished:true, next:[], + after:[] }; _status.paused=false;