v1.9.90.4

This commit is contained in:
Spmario233 2019-07-29 12:08:42 +08:00 committed by GitHub
parent 470293a002
commit 5b85397f4b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 162 additions and 202 deletions

View File

@ -290,18 +290,48 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},targets);
}
},
contentBefore:function(){
var evt=event.getParent();
if(evt&&evt.targets&&evt.targets.contains(player)){
evt.fixedSeat=true;
evt.targets.remove(player);
evt.targets.push(player);
}
},
content:function(){
'step 0'
if(target==player){
var num=targets.length-1;
target.chooseDrawRecover(num,num,true);
event.finish();
var num=targets.length-1;
event.num=num;
var damaged=target.maxHp-target.hp;
if(damaged==0){
target.draw(num);
event.finish();
}
else{
var list=[];
for(var i=0;i<=Math.min(num,damaged);i++){
list.push('摸'+i+'回'+(num-i));
}
target.chooseControl(list).set('prompt','请分配自己的摸牌数和回复量').ai=function(){
if(player.hasSkill('diaohulishan')) return 0;
if(_status._aozhan) return list.length-1;
return list.randomGet();
};
}
}
else{
target.draw();
}
'step 1'
target.link(false);
if(target!=player) target.link(false);
else if(typeof result.control=='string'){
var index=result.control.indexOf('回');
var draw=parseInt(result.control.slice(1,index));
var recover=parseInt(result.control.slice(index+1));
if(draw) target.draw(draw);
if(recover) target.recover(recover);
}
},
ai:{
order:3,

View File

@ -1205,7 +1205,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.reluoshen&&player.storage.reluoshen.contains(card)){
return true;
}
}
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&player.storage.reluoshen&&player.storage.reluoshen.contains(card)){
return true;
}
},
},
group:'reluoshen_clear',
subSkill:{
@ -2845,7 +2850,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0"
player.chooseTarget(get.prompt('fenwei'),
[1,trigger.targets.length],function(card,player,target){
return _status.event.getTrigger().targets.contains(target);
var evt=_status.event.getTrigger();
return evt.targets.contains(target)&&!evt.excluded.contains(target);
}).set('ai',function(target){
var trigger=_status.event.getTrigger();
if(game.phaseNumber>game.players.length*2&&trigger.targets.length>=game.players.length-1){
@ -2858,9 +2864,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.awakenSkill('fenwei');
player.logSkill('fenwei',result.targets);
player.storage.fenwei=true;
for(var i=0;i<result.targets.length;i++){
trigger.targets.remove(result.targets[i]);
}
trigger.excluded.addArray(result.targets);
game.delay();
}
},

View File

@ -49,7 +49,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"luji":["male","wu",3,["nzry_huaiju","nzry_yili","nzry_zhenglun"],[]],
"sunliang":["male","wu",3,["nzry_kuizhu","nzry_zhizheng","nzry_lijun"],['zhu']],
"xuyou":["male","qun",3,["nzry_chenglve","nzry_shicai","nzry_cunmu"],[]],
"yl_luzhi":["male","qun",3,["nzry_mingren","nzry_zhenliang"],[]],
"yl_luzhi":["male","qun",3,["nzry_mingren","nzry_zhenliang"],["die_audio"]],
"kuailiangkuaiyue":["male","wei",3,["nzry_jianxiang","nzry_shenshi"],[]],
"guanqiujian":["male","wei",4,["drlt_zhenrong","drlt_hongju"],[]],
@ -130,7 +130,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"chendao":"陈到,字叔至,生卒年不详,豫州汝南(今河南驻马店平舆县)人。三国时期蜀汉将领,刘备帐下白毦兵统领,名位常亚于赵云,以忠勇著称。蜀汉建兴年间,任征西将军、永安都督,封亭侯。在任期间去世。",
},
skill:{
//废除装备栏和判定区
//阴雷
"drlt_zhenrong":{
@ -768,6 +767,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseCardTarget({
filterCard:true,
selectCard:1,
position:'he',
filterTarget:function(card,player,target){
return player!=target&&trigger.targets.contains(target);
},
@ -1346,11 +1346,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"nzry_zhizheng":{
audio:2,
group:["nzry_zhizheng_1","nzry_zhizheng_2"],
mod:{
playerEnabled:function(card,player,target){
if(target!=player&&player.isPhaseUsing()&&get.distance(target,player,'attack')>1) return false;
},
},
trigger:{
player:'useCardAfter'
},
@ -1363,6 +1358,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.storage.nzry_zhizheng++;
},
subSkill:{
others:{
sub:true,
mod:{
targetEnabled:function(card,player,target){
if(player.hasSkill('nzry_zhizheng')&&player.isPhaseUsing()&&get.distance(target,player,'attack')>1) return false;
},
},
},
"1":{
trigger:{
player:['phaseUseBefore','phaseUseAfter']
@ -1370,6 +1373,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true,
popup:false,
content:function(){
if(event.triggername=='phaseUseBefore') game.countPlayer(function(current){
if(current!=player){
current.addTempSkill('nzry_zhizheng_others','phaseUseAfter');
}
});
player.storage.nzry_zhizheng=0;
},
},
@ -2845,28 +2853,35 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.judge(function(card){
if(get.suit(card)=='heart') return -1;
return 1;
},ui.special).nogain=function(card){
return get.suit(card)!='heart';
};
},ui.special);
"step 1"
if(result.bool){
result.card.goto(ui.special);
var bool1=result.bool;
var bool2=!get.owner(result.card);
if(bool1&&bool2){
event.card=result.card;
event.node=result.node;
}
else{
if(bool2) result.card.discard();
event.finish();
}
"step 2"
event.card.goto(ui.special);
event.trigger("addCardToStorage");
player.storage.tuntian.push(result.card);
result.node.moveDelete(player);
player.storage.tuntian.push(event.card);
event.node.moveDelete(player);
game.broadcast(function(cardid,player){
var node=lib.cardOL[cardid];
if(node){
node.moveDelete(player);
}
},result.node.cardid,player);
game.addVideo('gain2',player,get.cardsInfo([result.node]));
},event.node.cardid,player);
game.addVideo('gain2',player,get.cardsInfo([event.node]));
player.markSkill('tuntian');
game.addVideo('storage',player,['tuntian',get.cardsInfo(player.storage.tuntian),'cards']);
}
},
init:function(player){
player.storage.tuntian=[];
if(!player.storage.tuntian) player.storage.tuntian=[];
},
intro:{
content:'cards'

View File

@ -3247,7 +3247,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var target=player.storage.xianfu2;
player.line(target,'green');
target.logSkill('xianfu');
target[trigger.name](trigger.num,trigger.source||'nosource');
target[trigger.name](trigger.num,'nosource');
game.delay();
},
group:'xianfu3',
@ -3867,12 +3867,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return !event.player.isMad()&&!_status.connectMode;
},
content:function(){
game.countPlayer(function(current){
current.forceCountChoose={default:5};
});
player.forceCountChoose={chooseToUse:5,default:5};
player.addSkill('kuangcai_use');
player.addSkill('kuangcai_cancel');
ui.auto.hide();
//ui.auto.hide();
},
subSkill:{
use:{
@ -3885,7 +3883,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return true;
},
cardEnabled:function(card,player){
if(player.forceCountChoose&&player.forceCountChoose.default<=0) return false;
if(player.forceCountChoose&&player.forceCountChoose.chooseToUse<=0) return false;
},
},
trigger:{player:'useCard'},
@ -3900,7 +3898,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
player.draw();
player.forceCountChoose.default--;
player.forceCountChoose.chooseToUse--;
}
},
cancel:{
@ -3908,10 +3906,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
priority:50,
silent:true,
content:function(){
game.countPlayer(function(current){
delete current.forceCountChoose;
});
ui.auto.show();
delete player.forceCountChoose;
//ui.auto.show();
player.removeSkill('kuangcai_use');
player.removeSkill('kuangcai_cancel');
}
@ -11789,7 +11785,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.removeAdditionalSkill('baobian');
var list=[];
if(player.hp<=3){
if(trigger.num!=undefined&&trigger.num<0) player.logSkil('baobian');
if(trigger.num!=undefined&&trigger.num<0) player.logSkill('baobian');
list.push('tiaoxin');
}
if(player.hp<=2){

View File

@ -1449,7 +1449,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'useCard'},
frequent:true,
filter:function(event){
return (get.type(event.card)=='trick'&&event.cards[0]&&event.cards[0]==event.card);
return (get.type(event.card)=='trick'&&(!event.cards.length||event.cards[0]&&event.cards[0]==event.card));
},
content:function(){
player.draw();
@ -1843,7 +1843,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filterTarget:function(card,player,target){
var trigger=_status.event.getTrigger();
if(get.distance(player,target,'attack')<=1&&
target!=trigger.player&&target!=player){
target!=trigger.player&&!trigger.targets.contains(target)){
if(player.canUse(trigger.card,target)) return true;
}
return false;
@ -1866,15 +1866,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
return -1;
},
prompt:get.prompt('liuli')
prompt:get.prompt2('liuli')
});
"step 1"
if(result.bool){
player.discard(result.cards);
player.logSkill(event.name,result.targets);
trigger.target=result.targets[0];
trigger.targets.remove(player);
trigger.targets.push(result.targets[0]);
for(var i=0;i<trigger.targets.length;i++){
if(trigger.targets[i]==player) break;
}
var t1=trigger.targets.slice(0,i);
var t2=trigger.targets.slice(i+1);
trigger.targets=t1.concat([result.targets[0]]).concat(t2);
}
else{
event.finish();

View File

@ -685,7 +685,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
game.updateRoundNumber();
game.log(player,'把',cards,'放在了牌堆里');
game.log(player,'把',get.cnNumber(cards.length),'张牌放在了牌堆里');
},
ai:{
order:1,
@ -1456,7 +1456,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sub:true,
},
},
audio:"ext:新服杂碎:3",
audio:3,
trigger:{
player:"phaseBegin",
},
@ -1507,7 +1507,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
"xinfu_jianjie1":{
audio:"ext:新服杂碎:3",
audio:3,
prompt:"你的第一个准备阶段,你令两名不同的角色分别获得龙印与凤印;出牌阶段限一次(你的第一个回合除外),或当拥有龙印、凤印的角色死亡时,你可以转移龙印、凤印。",
enable:"phaseUse",
usable:1,
@ -1716,29 +1716,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return event.player.hasSkill('smh_huoji')||event.player.hasSkill('smh_lianhuan');
},
content:function (){
player.logSkill('xinfu_jianjie');
"step 0"
player.logSkill('xinfu_jianjie');
"step 1"
if(trigger.player.hasSkill('smh_huoji')){
player.chooseTarget('请将'+get.translation(trigger.player)+'的「龙印」交给一名角色',true).set('ai',function(target){
var player=_status.event.player;
return 10+get.attitude(player,target);
});
}else event.goto(2);
"step 1"
"step 2"
if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0];
player.line(target,'fire');
target.addSkill('smh_huoji');
game.delay();
}
"step 2"
"step 3"
if(trigger.player.hasSkill('smh_lianhuan')){
player.chooseTarget('请将'+get.translation(trigger.player)+'的「凤印」交给一名角色',true).set('ai',function(target){
var player=_status.event.player;
return 10+get.attitude(player,target);
});
}else event.finish();
"step 3"
"step 4"
if(result.bool&&result.targets&&result.targets.length){
var target=result.targets[0];
player.line(target,'green');
@ -1782,7 +1783,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"smh_yeyan":{
unique:true,
enable:"phaseUse",
audio:"ext:新服杂碎:3",
audio:3,
skillAnimation:true,
prompt:"限定技出牌阶段你可以对一至三名角色造成至多共3点火焰伤害你可以任意分配每名目标角色受到的伤害点数若你将对一名角色分配2点或更多的火焰伤害你须先弃置四张不同花色的手牌再失去3点体力。",
filter:function (event,player){
@ -1904,27 +1905,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
"xinfu_chenghao":{
audio:2,
subSkill:{
count:{
trigger:{
global:"damageBegin",
},
forced:true,
filter:function (event,player){
return event.player.isLinked()&&event.notLink()&&event.nature;
},
content:function (){
trigger.xinfu_chenghao=true;
},
sub:true,
},
},
group:["xinfu_chenghao_count"],
trigger:{
global:"damageEnd",
},
filter:function (event,player){
return event.xinfu_chenghao==true;
return event.player.isLinked()&&event.player.isAlive()&&event.notLink()&&event.nature;
},
frequent:true,
content:function (){
@ -3399,16 +3384,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"phaseUseEnd",
},
init:function (player){
player.storage.guanwei=[];
player.storage.guanwei={num:0,suit:[]};
},
filter:function (event,player){
if(player.storage.guanwei.length==1&&_status.currentPhase.countUsed()>1) return true;
if(player.storage.guanwei&&player.storage.guanwei.suit.length==1&&player.storage.guanwei.num>1) return true;
return false;
},
direct:true,
content:function (){
'step 0'
player.chooseToDiscard('he',get.prompt('xinfu_guanwei')).set('ai',function(card){
player.chooseToDiscard('he',get.prompt2('xinfu_guanwei')).set('ai',function(card){
if(get.attitude(_status.event.player,_status.currentPhase)<1) return 0;
return 9-get.value(card);
}).set('logSkill','xinfu_guanwei');
@ -3441,13 +3426,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
global:"useCard",
},
filter:function (event,player){
return _status.currentPhase==event.player;
return event.player.isPhaseUsing();
},
silent:true,
content:function (){
if(!player.storage.guanwei.contains(get.suit(trigger.card))){
player.storage.guanwei.push(get.suit(trigger.card));
if(!player.storage.guanwei.suit.contains(get.suit(trigger.card))){
player.storage.guanwei.suit.push(get.suit(trigger.card));
}
player.storage.guanwei.num++;
},
sub:true,
forced:true,
@ -3459,7 +3445,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
silent:true,
content:function (){
player.storage.guanwei=[];
player.storage.guanwei={num:0,suit:[]};
},
sub:true,
forced:true,
@ -5081,6 +5067,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
discard:false,
lose:false,
delay:0,
content:function (){
'step 0'
player.lose(cards,ui.special,'toStorage')
@ -5147,7 +5134,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
'step 4'
if(result.bool){
trigger.player.damage();
trigger.player.damage('nocard');
}
},
},
@ -5661,7 +5648,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_jianjie":"荐杰",
"xinfu_jianjie_info":"你的第一个准备阶段,你令两名其他角色分别获得龙印与凤印;出牌阶段限一次(你的第一个回合除外),或当拥有龙印、凤印的角色死亡时,你可以转移龙印、凤印。",
"xinfu_jianjie1":"荐杰",
"xinfu_jianjie1_info":"出牌阶段,你可以弃一张牌,视为一名男性角色对另一名男性角色使用一张[决斗],每阶段限一次",
"xinfu_jianjie1_info":"",
"smh_huoji":"火计",
"smh_huoji_info":"",
"smh_lianhuan":"连环",
@ -5675,7 +5662,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xinfu_yinshi":"隐士",
"xinfu_yinshi_info":"锁定技,若你没有龙印、凤印且没装备防具,防止你受到的属性伤害和锦囊牌造成的伤害。",
"xinfu_chenghao":"称好",
"xinfu_chenghao_info":"当一名角色受到属性伤害后,若其处于“连环状态”且是伤害传导的起点你可以观看牌堆顶的X+1张牌并分配给任意角色X为横置的角色数量。",
"xinfu_chenghao_info":"当一名角色受到属性伤害后,若其存活且处于“连环状态”且是伤害传导的起点你可以观看牌堆顶的X张牌并分配给任意角色X为横置的角色数量且包含该角色)。",
"jianjie_faq":"关于龙凤印",
"jianjie_faq_info":"龙印效果:获得“火计”。凤印效果:获得“连环”。(均一回合限使用三次) 龙凤印齐全:获得“业炎”,“业炎”发动后移除龙凤印。",
"xinfu_wuniang":"武娘",

View File

@ -3348,6 +3348,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
fulin:{
trigger:{player:'phaseDiscardBegin'},
audio:2,
forced:true,
content:function(){
player.addTempSkill('fulin2','phaseDiscardAfter');
},
@ -3385,7 +3386,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.storage.fulin&&player.storage.fulin.contains(card)){
return true;
}
}
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&player.storage.fulin&&player.storage.fulin.contains(card)){
return false;
}
},
},
},
duliang:{
@ -5401,7 +5407,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
filter:function(event,player){
if(event.responded) return false;
if(!event.filterCard({name:'shan'})) return false;
if(player.hasSkill('huomo2')) return false;
if(!lib.filter.cardRespondable({name:'sha'},player,event)) return false;
if(player.storage.huomo&&player.storage.huomo.shan) return false;
if(event.parent.name!='sha') return false;
var hs=player.getCards('he',{color:'black'});
for(var i=0;i<hs.length;i++){
@ -5432,7 +5439,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.$throw(result.cards);
event.card=result.cards[0];
player.logSkill('huomo');
player.addTempSkill('huomo2');
if(!player.storage.huomo) player.storage.huomo={};
player.storage.huomo.shan=true;
}
else{
event.finish();
@ -5461,15 +5469,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
huomo_count2:{
trigger:{player:'useCard'},
trigger:{player:['useCard','respond']},
silent:true,
filter:function(event){
if(get.type(event.card)!='basic') return false;
return event.name=='useCard'||(event.card.name=='shan'&&event.getParent(2).name=='sha');
},
content:function(){
if(!player.storage.huomo) player.storage.huomo={};
switch(trigger.card.name){
case 'sha':player.storage.huomo.sha=true;break;
case 'tao':player.storage.huomo.tao=true;break;
case 'jiu':player.storage.huomo.jiu=true;break;
}
player.storage.huomo[trigger.card.name]=true;
}
},
huomo_use:{
@ -7853,7 +7861,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhenlie:{
audio:2,
filter:function(event,player){
return event.player!=player&&event.targets&&event.targets.contains(player)&&event.card&&(event.card.name=='sha'||get.type(event.card)=='trick');
return event.player!=player&&event.targets&&event.targets.contains(player)&&(!event.excluded||!event.excluded.contains(player))&&event.card&&(event.card.name=='sha'||get.type(event.card)=='trick');
},
logTarget:'player',
check:function(event,player){
@ -7884,7 +7892,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"step 0"
player.loseHp();
"step 1"
trigger.targets.remove(player);
trigger.excluded.add(player);
"step 2"
if(trigger.player.countCards('he')){
player.discardPlayerCard(trigger.player,'he',true);

View File

@ -12448,6 +12448,7 @@
var from=ui.selected.targets[0];
var js=from.getCards('j');
for(var i=0;i<js.length;i++){
if(_status.event.nojudge) break;
if(!target.storage._disableJudge&&!target.hasJudge(js[i])) return true;
}
if(target.isMin()) return false;
@ -12458,15 +12459,18 @@
return false;
}
else{
return target.countCards('ej')>0;
var range='ej';
if(_status.event.nojudge) range='e';
return target.countCards(range)>0;
}
});
next.set('nojudge',event.nojudge||false);
next.set('ai',function(target){
var player=_status.event.player;
var att=get.attitude(player,target);
if(ui.selected.targets.length==0){
if(att>0){
if(target.countCards('j')) return 10;
if(!_status.event.nojudge&&target.countCards('j')) return 10;
}
else if(att<0){
if(game.hasPlayer(function(current){
@ -12551,6 +12555,7 @@
}
event.targets[0].$give(link,event.targets[1])
game.delay();
event.result={bool:true};
}
},
useCard:function(){
@ -33755,7 +33760,7 @@
node.mode=mode;
var list=[];
for(var i=0;i<info.length;i++){
if(lib.card[info[i]].derivation&&mode!='mode_derivation') continue;
if(!lib.card[info[i]]||(lib.card[info[i]].derivation&&mode!='mode_derivation')) continue;
list.push(['',get.translation(get.type(info[i],'trick')),info[i]]);
}
var sortCard=function(card){
@ -46030,7 +46035,11 @@
m=n;
m=game.checkMod(from,to,m,'attackFrom',from);
m=game.checkMod(from,to,m,'attackTo',to);
var equips1=from.getCards('e'),equips2=to.getCards('e');
var equips1=from.getCards('e',function(card){
return !ui.selected.cards||!ui.selected.cards.contains(card);
}),equips2=to.getCards('e',function(card){
return !ui.selected.cards||!ui.selected.cards.contains(card);
});
for(i=0;i<equips1.length;i++){
var info=get.info(equips1[i]).distance;
if(!info) continue;

View File

@ -1,8 +1,7 @@
window.noname_update={
version:'1.9.90.3',
update:'1.9.90.2',
version:'1.9.90.4',
update:'1.9.90.3',
changeLog:[
'解除祢衡的AI禁选限制',
'BUG修复',
],
files:[
@ -10,11 +9,10 @@ window.noname_update={
'character/refresh.js',
'character/shenhua.js',
'character/sp.js',
'character/standard.js',
'character/xinghuoliaoyuan.js',
'character/yijiang.js',
'extension/boss/extension.js',
'mode/guozhan.js',
'game/game.js',
'game/config.js',
'game/package.js',
]
};

View File

@ -3871,104 +3871,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
player.awakenSkill('yongjin');
var friends=game.filterPlayer(function(current){
return get.attitude(player,current)>=4;
});
var vacancies={
equip1:0,
equip2:0,
equip3:0,
equip4:0,
equip5:0
};
for(var i=0;i<friends.length;i++){
for(var j=1;j<=5;j++){
if(friends[i].canEquip(j)){
vacancies['equip'+j]++;
}
}
}
var info=['请选择要移动的装备'];
var targets=game.filterPlayer().sortBySeat();
for(var i=0;i<targets.length;i++){
var es=targets[i].getCards('e');
if(es.length){
info.push('<div class="text center">'+get.translation(targets[i])+'</div>');
info.push(es);
}
}
var next=player.chooseButton(true,[1,3]);
next.set('createDialog',info);
next.set('filterButton',function(button){
return game.hasPlayer(function(current){
return current.isEmpty(get.subtype(button.link));
});
});
next.set('ai',function(button){
var player=_status.event.player;
var owner=get.owner(button.link);
var att=get.attitude(player,owner);
if(att>0) return 0;
var subtype=get.subtype(button.link);
var vacancies=_status.event.vacancies;
var num=vacancies[subtype];
for(var i=0;i<ui.selected.buttons.length;i++){
if(get.subtype(ui.selected.buttons[i])==subtype){
num--;
}
}
if(num>0){
var val=get.equipValue(button.link);
if(att>=-1){
val-=2;
}
return val;
}
return 0;
});
next.set('vacancies',vacancies);
event.count=3;
'step 1'
event.cards=result.links.slice(0);
event.num=0;
player.moveCard().nojudge=true;
event.count--;
'step 2'
if(event.num<event.cards.length){
var card=event.cards[event.num];
player.chooseTarget('选择一个目标装备'+get.translation(card),function(card,player,target){
return target!=get.owner(_status.event.cardx)&&target.canEquip(_status.event.cardx);
}).set('cardx',card).set('ai',function(target){
var att=get.attitude(_status.event.player,target);
if(target.hasSkillTag('noe')) att+=3;
return att;
});
}
else{
event.finish();
}
'step 3'
if(result.bool){
var card=event.cards[event.num];
var target=result.targets[0];
var source=get.owner(card);
player.line2([source,target],'green');
source.$give(card,target,false);
event.current=target;
game.delayx();
}
else{
delete event.current;
}
'step 4'
if(event.current){
var card=event.cards[event.num];
event.current.equip(card);
}
event.num++;
event.goto(2);
},
filter:function(event,player){
return game.hasPlayer(function(current){
return current.countCards('e');
});
if(event.count&&result.bool) event.goto(1);
},
ai:{
order:7,
@ -8083,6 +7991,13 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
dieAfter:function(source){
this.showCharacter(2);
if(source&&source.identity!='unknown'){
if(source.identity=='ye') source.draw(3);
else if(this.identity=='ye') source.draw(1);
else if(this.identity!=source.identity) source.draw(get.population(this.identity)+1);
else source.discard(source.getCards('he'));
}
if(get.is.jun(this.name1)){
var yelist=[];
for(var i=0;i<game.players.length;i++){
@ -8098,12 +8013,6 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},yelist);
_status.yeidentity.add(this.identity);
}
if(source&&source.identity!='unknown'){
if(source.identity=='ye') source.draw(3);
else if(this.identity=='ye') source.draw(1);
else if(this.identity!=source.identity) source.draw(get.population(this.identity)+1);
else source.discard(source.getCards('he'));
}
game.tryResult();
},
viewCharacter:function(target,num){