tianjitu fix
This commit is contained in:
parent
78f6a550c4
commit
a5d2293a8a
|
@ -239,7 +239,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
type:'equip',
|
||||
subtype:'equip5',
|
||||
loseDelay:false,
|
||||
global:'tianjitu_skill',
|
||||
skills:['tianjitu_skill'],
|
||||
onLose:function(){
|
||||
player.addTempSkill('tianjitu_skill_lose')
|
||||
},
|
||||
loseDelay:false,
|
||||
ai:{
|
||||
value:function(card,player){
|
||||
if(player.countCards('h')>3||get.position(card)!='e') return 0.5;
|
||||
|
@ -374,14 +378,33 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
tianjitu_skill:{
|
||||
audio:true,
|
||||
trigger:{player:['equipBegin','loseBegin']},
|
||||
trigger:{player:'equipAfter'},
|
||||
forced:true,
|
||||
equipSkill:true,
|
||||
filter:(event,player,name)=>name=='equipBegin'?event.card.name=='tianjitu'&&player.hasCard(card=>card!=event.card):event.cards.some(value=>get.position(value)=='e'&&value.name=='tianjitu')&&player.countCards('h')<5,
|
||||
filter:(event,player)=>event.card.name=='tianjitu'&&player.hasCard(card=>card!=event.card),
|
||||
content:()=>{
|
||||
if(event.triggername=='loseBegin') player.drawTo(5);
|
||||
else player.chooseToDiscard(true,card=>card!=_status.event.getTrigger().card,'he');
|
||||
}
|
||||
player.chooseToDiscard(true,card=>card!=_status.event.getTrigger().card,'he');
|
||||
},
|
||||
subSkill:{
|
||||
lose:{
|
||||
audio:'tianjitu_skill',
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
equipSkill:true,
|
||||
trigger:{
|
||||
player:'loseAfter',
|
||||
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
|
||||
},
|
||||
filter:(event,player)=>{
|
||||
if(player.countCards('h')>=5) return false;
|
||||
var evt=event.getl(player);
|
||||
return evt&&evt.es.some(card=>card.name=='tianjitu')
|
||||
},
|
||||
content:function(){
|
||||
player.drawTo(5);
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
taigongyinfu_skill:{
|
||||
equipSkill:true,
|
||||
|
|
|
@ -36081,7 +36081,7 @@
|
|||
else{
|
||||
imgsrc='ext:'+extname+'/'+j+'.jpg';
|
||||
}
|
||||
const audiosrc='die:ext:'+extname+'/'+name+'.mp3';
|
||||
const audiosrc='die:ext:'+extname+'/'+j+'.mp3';
|
||||
pack[i][j][4].add(imgsrc);
|
||||
pack[i][j][4].add(audiosrc);
|
||||
if(pack[i][j][4].contains('boss')||
|
||||
|
|
81
mode/boss.js
81
mode/boss.js
|
@ -2034,38 +2034,79 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
shanrangzhaoshu:{
|
||||
trigger:{global:'gainEnd'},
|
||||
trigger:{
|
||||
global:['gainEnd','loseAsyncAfter'],
|
||||
},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return event.player!=player&&event.player!=_status.currentPhase&&event.player.getHistory('gain')[0]==event&&player.countCards('he')+event.player.countCards('he')>0;
|
||||
let min=0;
|
||||
if(!player.hasSkill('shanrangzhaoshu',null,false)) min+=get.sgn(player.getEquips('shanrangzhaoshu').length)
|
||||
const bool=player.countCards('he')>min;
|
||||
return game.hasPlayer(current=>{
|
||||
if(current==player||current==_status.currentPhase) return false;
|
||||
if(!bool&¤t.countCards('h')==0) return false;
|
||||
const history=current.getHistory('gain')[0];
|
||||
if(!history) return false;
|
||||
if(event.name=='gain'){
|
||||
return history==event&&event.getlx!==false;
|
||||
}
|
||||
return history.getParent()==event;
|
||||
})
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.target=trigger.player;
|
||||
var list=[];
|
||||
if(player.countCards('he')>1) list.push('交给其一张牌');
|
||||
if(trigger.player.countCards('he')>0) list.push('令其交给你一张牌');
|
||||
event.list=list;
|
||||
player.chooseControl('cancel2').set('choiceList',list).set('prompt',get.prompt('shanrangzhaoshu',trigger.player)).set('ai',function(){
|
||||
if(get.attitude(_status.event.player,_status.event.getTrigger().player)<0) return _status.event.getParent().list.length-1;
|
||||
return 'cancel2';
|
||||
});
|
||||
event.targets=game.filterPlayer(function(current){
|
||||
if(current==player||current==_status.currentPhase) return false;
|
||||
const history=current.getHistory('gain')[0];
|
||||
if(!history) return false;
|
||||
if(trigger.name=='gain'){
|
||||
return history==trigger&&trigger.getlx!==false;
|
||||
}
|
||||
return history.getParent()==trigger;
|
||||
}).sortBySeat(_status.currentPhase);
|
||||
'step 1'
|
||||
var target=event.targets.shift();
|
||||
event.target=target;
|
||||
if(target.isIn()){
|
||||
var list=[];
|
||||
var min=0;
|
||||
if(!player.hasSkill('shanrangzhaoshu',null,false)) min+=get.sgn(player.getEquips('shanrangzhaoshu').length);
|
||||
if(player.countCards('he')>min) list.push(`交给${get.translation(target)}一张牌`);
|
||||
if(target.countCards('he')>0) list.push(`令${get.translation(target)}交给你一张牌`);
|
||||
event.list=list;
|
||||
if(list.length==0) event.goto(4);
|
||||
else if(list.length==1) event._result={index:0};
|
||||
else player.chooseControl('cancel2').set('choiceList',list).set('prompt',get.prompt('shanrangzhaoshu',target)).set('ai',function(){
|
||||
if(get.attitude(_status.event.player,_status.event.getParent().target)<0) return 1;
|
||||
return 'cancel2';
|
||||
});
|
||||
}
|
||||
else event.goto(4);
|
||||
'step 2'
|
||||
if(result.control=='cancel2'){
|
||||
event.finish();return;
|
||||
event.goto(4);
|
||||
return;
|
||||
}
|
||||
player.logSkill('shanrangzhaoshu',target);
|
||||
if(event.list[result.index][0]=='令'){
|
||||
event.player=target;
|
||||
event.target=player;
|
||||
event.gainner=player;
|
||||
event.giver=target;
|
||||
target.chooseCard('he',true,`交给${get.translation(player)}一张牌`);
|
||||
}
|
||||
else{
|
||||
event.giver=player;
|
||||
event.gainner=target;
|
||||
player.chooseCard('he',true,`交给${get.translation(target)}一张牌`).set('filterCard',function(card,player){
|
||||
if(_status.event.ignoreCard) return true;
|
||||
var cards=player.getEquips('shanrangzhaoshu');
|
||||
if(!cards.contains(card)) return true;
|
||||
return cards.some(cardx=>(cardx!=card&&!ui.selected.cards.contains(cardx)));
|
||||
}).set('ignoreCard',player.hasSkill('shanrangzhaoshu',null,false));
|
||||
}
|
||||
'step 2'
|
||||
player.chooseCard('he',true).set('filterCard',function(card,player){
|
||||
if(player!=_status.event.getTrigger().player) return card!=player.getEquip('shanrangzhaoshu');
|
||||
return true;
|
||||
});
|
||||
'step 3'
|
||||
if(result.cards&&result.cards.length) target.gain(result.cards,player,'giveAuto');
|
||||
if(result.cards&&result.cards.length) event.giver.give(result.cards,event.gainner);
|
||||
'step 4'
|
||||
if(targets.length>0) event.goto(1);
|
||||
},
|
||||
},
|
||||
lingsheji:{
|
||||
|
|
Loading…
Reference in New Issue