diff --git a/card/standard.js b/card/standard.js index e6b87c8dd..7369fa8fe 100644 --- a/card/standard.js +++ b/card/standard.js @@ -155,7 +155,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ next.set('useShan',(()=>{ if(target.hasSkillTag('noShan',null,event)) return false; if(target.hasSkillTag('useShan',null,event)) return true; - if(event.baseDamage+event.extraDamage<=0 || target.isLink()&&game.hasNature(event.card)&&get.attitude(target,player._trueMe||player)>0) return false; + if(event.baseDamage+event.extraDamage<=0 || target.isLinked()&&game.hasNature(event.card)&&get.attitude(target,player._trueMe||player)>0) return false; if(event.shanRequired>1&&target.mayHaveShan(target,'use',null,'count')=target.hp+ ((player.hasSkillTag('jueqing',false,target)||target.hasSkill('gangzhi'))?target.hujia:0)) return true; diff --git a/character/huicui.js b/character/huicui.js index 7cc2c9b8d..15d2e126c 100644 --- a/character/huicui.js +++ b/character/huicui.js @@ -7309,7 +7309,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(evt.player!=target&&!evt._finished){ evt.finish(); evt._triggered=5; - evt.player.insertPhase(); + var evtx=evt.player.insertPhase(); + delete evtx.skill; } } } diff --git a/character/jsrg.js b/character/jsrg.js index 270abd8cd..1ca82ff69 100644 --- a/character/jsrg.js +++ b/character/jsrg.js @@ -952,7 +952,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ if(curLen<=2) return false; for(let i=curLen-2;i>=0;i--){ const history=player.actionHistory[i]; - if(history.isMe&&!history.isSkipped) return false; + if(history.isMe&&!history.isSkipped&&!history._jsrgtuigu) return false; if(history.isRound) break; } return true; @@ -960,12 +960,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){ forced:true, locked:false, async content(event,trigger,player){ - const evt=trigger; - player.insertPhase(); + const evt=trigger,evtx=player.insertPhase(); + player.when('phaseBeforeStart') + .filter(evtt=>evtt==evtx) + .then(()=>{ + game.players.slice().concat(game.dead).forEach(current=>{ + current.getHistory()._jsrgtuigu=true; + current.getStat()._jsrgtuigu=true; + }); + }); if(evt.player!=player&&!evt._finished){ evt.finish(); evt._triggered=5; - evt.player.insertPhase(); + const evtxx=evt.player.insertPhase(); + delete evtxx.skill; } }, }, @@ -8285,7 +8293,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ jsrgyingshi:'鹰眎', jsrgyingshi_info:'当你翻面时,你可以观看牌堆底的三张牌(若死亡角色数大于2则改为五张),然后将其中任意数量的牌以任意顺序置于牌堆顶,其余以任意顺序置于牌堆底。', jsrgtuigu:'蜕骨', - jsrgtuigu_info:'①回合开始时,你可以翻面并令你本回合的手牌上限+X,然后摸X张牌并视为使用一张【解甲归田】(X为存活角色数的一半,向下取整),目标角色不能使用以此法得到的牌直到其回合结束。②一轮游戏开始时,若你上一轮未执行过回合,你获得一个额外的回合。③当你失去装备牌里的牌后,你回复1点体力。', + jsrgtuigu_info:'①回合开始时,你可以翻面并令你本回合的手牌上限+X,然后摸X张牌并视为使用一张【解甲归田】(X为存活角色数的一半,向下取整),目标角色不能使用以此法得到的牌直到其回合结束。②一轮游戏开始时,若你上一轮未执行过回合(因〖蜕骨②〗执行的回合除外),你获得一个额外的回合。③当你失去装备牌里的牌后,你回复1点体力。', jsrg_guoxun:'合郭循', jsrg_guoxun_prefix:'合', jsrgeqian:'遏前', diff --git a/character/mobile.js b/character/mobile.js index f26962b33..468d6e49a 100644 --- a/character/mobile.js +++ b/character/mobile.js @@ -687,7 +687,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } targets=targets.filter(target=>target!=player&&target.countCards('h')); if(targets.length){ - var result=yield player.chooseTarget('请选择【诡谋】的目标','观看一名可选择的角色的手牌并选择其中至多两张牌,然后你可以将其中至多一张牌交给另一名其他角色,然后弃置剩余的牌',(card,player,target)=>{ + var result=yield player.chooseTarget('请选择【诡谋】的目标','观看一名可选择的角色的手牌并选择其中一张牌,然后你可以此牌交给另一名其他角色或弃置此牌',(card,player,target)=>{ return _status.event.targets.includes(target)&&target.countCards('h'); },true).set('ai',target=>{ return Math.sqrt(Math.min(3,target.countCards('h')))*get.effect(target,{name:'guohe_copy2'},player,player); @@ -696,28 +696,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){ var target=result.targets[0]; player.logSkill('guimou',target); player.addExpose(0.3); - var result2=yield player.choosePlayerCard(target,'h','visible','
选择其中至多两张牌,然后你可以将其中至多一张牌交给另一名其他角色,然后弃置剩余的牌
',[1,2],true).set('ai',button=>get.value(button.link)); + var result2=yield player.choosePlayerCard(target,'h','visible',true).set('ai',button=>{ + return get.value(button.link); + }).set('prompt','诡谋:请选择'+get.translation(target)+'的一张手牌').set('prompt2','
将选择的牌交给另一名其他角色或弃置此牌
'); if(result2.bool){ - var cards=result2.links.slice(); - var result3; + var cards=result2.links.slice(),result3; if(!game.hasPlayer(targetx=>targetx!=player&&targetx!=target)) result3={bool:false}; - else result3=yield player.chooseCardButton('是否将其中至多一张牌交给另一名其他角色',cards).set('ai',button=>{ - var player=_status.event.player; - if(!game.hasPlayer(target=>target!=player&&target!=_status.event.target&&get.attitude(player,target)>0)) return 0; - return get.value(button.link,_status.event.player); - }).set('target',target); + else result3=yield player.chooseTarget('是否令另一名其他角色获得'+get.translation(cards)+'?',(card,player,target)=>{ + return target!=player&&target!=_status.event.target; + }).set('ai',target=>get.attitude(_status.event.player,target)).set('target',target); if(result3.bool){ - var result4=yield player.chooseTarget('请选择获得'+get.translation(result3.links)+'的目标',(card,player,target)=>{ - return target!=player&&target!=_status.event.target; - }).set('ai',target=>get.attitude(_status.event.player,target)).set('target',target); - if(result4.bool){ - var targetx=result4.targets[0]; - player.line(targetx); - targetx.gain(result3.links,target,'give'); - cards.removeArray(result3.links); - } + var targetx=result3.targets[0]; + player.line(targetx); + targetx.gain(cards,target,'give'); } - if(cards.length) target.discard(cards).discarder=player; + else target.discard(cards).discarder=player; } } } @@ -16509,7 +16502,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mb_chengui:'手杀陈珪', mb_chengui_prefix:'手杀', guimou:'诡谋', - guimou_info:'锁定技。游戏开始时/回合结束时,你随机/须选择以下一项直到你的下个准备阶段:①记录场上期间角色使用牌数;②记录期间场上角色弃置牌数;③记录期间场上角色获得牌数。准备阶段,你可以选择一名场上对应记录数值最少的其他角色,观看其手牌并选择其中至多两张牌,然后你可以将其中至多一张牌交给另一名其他角色,然后弃置其余牌。', + guimou_info:'锁定技。游戏开始时/回合结束时,你随机/须选择以下一项直到你的下个准备阶段:①记录场上期间角色使用牌数;②记录期间场上角色弃置牌数;③记录期间场上角色获得牌数。准备阶段,你可以选择一名场上对应记录数值最少的其他角色,观看其手牌并选择其中一张牌,然后你将此牌交给另一名其他角色或弃置此牌。', zhouxian:'州贤', zhouxian_info:'锁定技。当你成为其他角色使用的伤害类卡牌的目标后,你亮出牌堆顶的三张牌,然后其须选择一项:①弃置一张与亮出牌之一类别相同的牌;②令此牌对你无效。', mb_huban:'手杀胡班',