commit
5743094b4b
|
@ -1126,13 +1126,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
dcxianjin:{
|
dcxianjin:{
|
||||||
|
init:function(player){
|
||||||
|
var num=game.getAllGlobalHistory('changeHp',evt=>{
|
||||||
|
return evt.getParent().name=='damage'&&(evt.getParent().player==player||(evt.getParent().source&&evt.getParent().source==player));
|
||||||
|
}).concat(game.getAllGlobalHistory('changeHp',evt=>{
|
||||||
|
return evt.getParent().name=='damage'&&evt.getParent().player==player&&evt.getParent().source&&evt.getParent().source==player;
|
||||||
|
})).length;
|
||||||
|
if(num) player.addMark('dcxianjin',num,false);
|
||||||
|
},
|
||||||
|
onremove:true,
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{
|
trigger:{
|
||||||
player:'damageEnd',
|
player:'damageEnd',
|
||||||
source:'damageSource',
|
source:'damageSource',
|
||||||
},
|
},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return game.getGlobalHistory('damage',evt=>evt.player==player||(evt.source&&evt.source==player)).indexOf(event)%2==1;
|
return player.countMark('dcxianjin')%2==0;
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
|
@ -1155,6 +1164,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
if(player.isMaxHandcard()) player.draw();
|
if(player.isMaxHandcard()) player.draw();
|
||||||
else player.draw(player.getStorage('dctuoyu').length)
|
else player.draw(player.getStorage('dctuoyu').length)
|
||||||
},
|
},
|
||||||
|
group:'dcxianjin_mark',
|
||||||
|
intro:{content:'已造成或受到#次伤害'},
|
||||||
|
subSkill:{
|
||||||
|
mark:{
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{
|
||||||
|
player:'damageEnd',
|
||||||
|
source:'damageSource',
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
popup:false,
|
||||||
|
firstDo:true,
|
||||||
|
content:function(){
|
||||||
|
player.addMark('dcxianjin',1,false);
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
dcqijing:{
|
dcqijing:{
|
||||||
derivation:'dccuixin',
|
derivation:'dccuixin',
|
||||||
|
@ -1178,9 +1204,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var evt=trigger.getParent();
|
var evt=trigger.getParent();
|
||||||
if(evt.name=='phaseLoop'&&evt._isStandardLoop) evt.player=player.next;
|
if(evt.name=='phaseLoop'&&evt._isStandardLoop) evt.player=player.next;
|
||||||
}
|
}
|
||||||
player.chooseTarget(true,'请选择一名要更换座次的角色,将自己移动到该角色的上家位置',function(card,player,target){
|
player.chooseTarget('请选择一名要更换座次的角色,将自己移动到该角色的上家位置',function(card,player,target){
|
||||||
return target!=player&&target!=player.next;
|
return target!=player&&target!=player.next;
|
||||||
}).set('ai',function(target){
|
},true).set('ai',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
var current=_status.currentPhase.next;
|
var current=_status.currentPhase.next;
|
||||||
var max=20,att=0;
|
var max=20,att=0;
|
||||||
|
@ -1193,7 +1219,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return att;
|
return att;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
else event.goto(3);
|
else event.finish();
|
||||||
'step 2'
|
'step 2'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
var target=result.targets[0];
|
var target=result.targets[0];
|
||||||
|
@ -1201,6 +1227,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.swapSeat(target1,target2,null,true);
|
game.swapSeat(target1,target2,null,true);
|
||||||
},player,target);
|
},player,target);
|
||||||
}
|
}
|
||||||
|
else event.finish();
|
||||||
'step 3'
|
'step 3'
|
||||||
player.insertPhase();
|
player.insertPhase();
|
||||||
},
|
},
|
||||||
|
@ -4517,10 +4544,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
event.logged=false;
|
event.logged=false;
|
||||||
//event.targets=[];
|
event.targets=[];
|
||||||
event.goto(player.countCards('h')%2==1?1:4);
|
event.goto(player.countCards('h')%2==1?1:4);
|
||||||
'step 1'
|
'step 1'
|
||||||
player.chooseTarget(get.prompt('shenfu'),'对一名其他角色造成1点雷属性伤害',lib.filter.notMe).set('ai',function(target){
|
player.chooseTarget(get.prompt('shenfu'),'对一名其他角色造成1点雷属性伤害',function(card,player,target){
|
||||||
|
return target!=player&&!_status.event.getParent().targets.includes(target);
|
||||||
|
}).set('ai',function(target){
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
return get.damageEffect(target,player,player,'thunder')*(target.hp==1?2:1);
|
return get.damageEffect(target,player,player,'thunder')*(target.hp==1?2:1);
|
||||||
});
|
});
|
||||||
|
@ -4533,16 +4562,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.logSkill('shenfu',target,'thunder');
|
player.logSkill('shenfu',target,'thunder');
|
||||||
}
|
}
|
||||||
else player.line(target,'thunder');
|
else player.line(target,'thunder');
|
||||||
|
event.targets.push(target);
|
||||||
target.damage('thunder');
|
target.damage('thunder');
|
||||||
}
|
}
|
||||||
else event.finish();
|
else event.finish();
|
||||||
'step 3'
|
'step 3'
|
||||||
if(target.isDead()) event.goto(1);
|
if(target.getHistory('damage',function(evt){
|
||||||
|
return evt.getParent('shenfu')==event&&evt._dyinged;
|
||||||
|
}).length) event.goto(1);
|
||||||
else event.finish();
|
else event.finish();
|
||||||
'step 4'
|
'step 4'
|
||||||
player.chooseTarget(get.prompt('shenfu'),'令一名角色摸一张牌或弃置其一张手牌'/*,function(card,player,target){
|
player.chooseTarget(get.prompt('shenfu'),'令一名角色摸一张牌或弃置其一张手牌',function(card,player,target){
|
||||||
return !_status.event.getParent().targets.includes(target);
|
return !_status.event.getParent().targets.includes(target);
|
||||||
}*/).set('ai',function(target){
|
}).set('ai',function(target){
|
||||||
var att=get.attitude(_status.event.player,target);
|
var att=get.attitude(_status.event.player,target);
|
||||||
var delta=target.hp-target.countCards('h');
|
var delta=target.hp-target.countCards('h');
|
||||||
if(Math.abs(delta)==1&&get.sgn(delta)==get.sgn(att)) return 3*Math.abs(att);
|
if(Math.abs(delta)==1&&get.sgn(delta)==get.sgn(att)) return 3*Math.abs(att);
|
||||||
|
@ -4558,7 +4590,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.logSkill('shenfu',target);
|
player.logSkill('shenfu',target);
|
||||||
}
|
}
|
||||||
else player.line(target,'green');
|
else player.line(target,'green');
|
||||||
//targets.push(target);
|
event.targets.push(target);
|
||||||
if(target.countCards('h')==0) event._result={index:0};
|
if(target.countCards('h')==0) event._result={index:0};
|
||||||
else player.chooseControl('摸一张牌','弃置一张手牌').set('prompt','选择一项令'+get.translation(target)+'执行…').set('goon',get.attitude(player,target)>0?0:1).set('ai',()=>_status.event.goon);
|
else player.chooseControl('摸一张牌','弃置一张手牌').set('prompt','选择一项令'+get.translation(target)+'执行…').set('goon',get.attitude(player,target)>0?0:1).set('ai',()=>_status.event.goon);
|
||||||
//else player.discardPlayerCard(target,'h','弃置'+get.translation(target)+'一张手牌,或点【取消】令其摸一张牌。');
|
//else player.discardPlayerCard(target,'h','弃置'+get.translation(target)+'一张手牌,或点【取消】令其摸一张牌。');
|
||||||
|
@ -7810,7 +7842,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
shen_zhenji:'神甄宓',
|
shen_zhenji:'神甄宓',
|
||||||
shen_zhenji_prefix:'神',
|
shen_zhenji_prefix:'神',
|
||||||
shenfu:'神赋',
|
shenfu:'神赋',
|
||||||
shenfu_info:'回合结束时,若你的手牌数为:奇数,你可对一名其他角色造成1点雷属性伤害。若其死亡,你可重复此流程。偶数,你可选择一名角色,你令其摸一张牌或弃置一张手牌。若其手牌数等于体力值,你可重复此流程。',
|
shenfu_info:'回合结束时,若你的手牌数为:奇数,你可对一名其他角色造成1点雷属性伤害。若其因此进入过濒死状态,你可重复此流程(不能选择本次已选择过的角色)。偶数,你可选择一名角色,你令其摸一张牌或弃置一张手牌。若其手牌数等于体力值,你可重复此流程(不能选择本次已选择过的角色)。',
|
||||||
qixian:'七弦',
|
qixian:'七弦',
|
||||||
qixian_info:'锁定技,你的手牌上限视为7。',
|
qixian_info:'锁定技,你的手牌上限视为7。',
|
||||||
caopi_xingdong:'行动',
|
caopi_xingdong:'行动',
|
||||||
|
@ -7978,7 +8010,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcxianjin:'险进',
|
dcxianjin:'险进',
|
||||||
dcxianjin_info:'锁定技。当你每造成或受到两次伤害后,你激活一个副区域标签并摸X张牌(X为你已激活的副区域数,若你的手牌数为全场最多则改为摸一张牌)。',
|
dcxianjin_info:'锁定技。当你每造成或受到两次伤害后,你激活一个副区域标签并摸X张牌(X为你已激活的副区域数,若你的手牌数为全场最多则改为摸一张牌)。',
|
||||||
dcqijing:'奇径',
|
dcqijing:'奇径',
|
||||||
dcqijing_info:'觉醒技。一名角色的回合结束后,若你的三个副区域标签均被激活,则你减1点体力上限,获得〖摧心〗,将座位移动至一名其他角色的上家之后,然后执行一个额外回合。',
|
dcqijing_info:'觉醒技。一名角色的回合结束后,若你的三个副区域标签均被激活,则你减1点体力上限,获得〖摧心〗,将座位移动至两名相邻的其他角色之间并执行一个额外回合。',
|
||||||
dccuixin:'摧心',
|
dccuixin:'摧心',
|
||||||
dccuixin_info:'当你不因此技能使用的基本牌或普通锦囊牌结算结束后,若此牌的目标于你使用此牌指定第一个目标时包含你的上家或下家,则你可以视为对下家或上家再使用一张牌名和元素相同的牌。',
|
dccuixin_info:'当你不因此技能使用的基本牌或普通锦囊牌结算结束后,若此牌的目标于你使用此牌指定第一个目标时包含你的上家或下家,则你可以视为对下家或上家再使用一张牌名和元素相同的牌。',
|
||||||
shen_dianwei:'神典韦',
|
shen_dianwei:'神典韦',
|
||||||
|
|
|
@ -180,13 +180,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{player:'useCardAfter'},
|
trigger:{player:'useCardAfter'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
var num=Math.max(player.getHistory('useSkill',evt=>evt.skill=='dczhifou').length,1);
|
var num=player.getHistory('useSkill',evt=>evt.skill=='dczhifou').length+1;
|
||||||
return player.getExpansions('dclingxi').length>=num;
|
return player.getExpansions('dclingxi').length>=num;
|
||||||
},
|
},
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function*(event,map){
|
content:function*(event,map){
|
||||||
var player=map.player,cards=player.getExpansions('dclingxi');
|
var player=map.player,cards=player.getExpansions('dclingxi');
|
||||||
var num=Math.max(player.getHistory('useSkill',evt=>evt.skill=='dczhifou').length,1);
|
var num=player.getHistory('useSkill',evt=>evt.skill=='dczhifou').length+1;
|
||||||
var result=yield player.chooseButton(['###'+get.prompt('dczhifou')+'###移去至少'+get.cnNumber(num)+'张武将牌上的“翼”',cards],[num,cards.length]).set('ai',button=>{
|
var result=yield player.chooseButton(['###'+get.prompt('dczhifou')+'###移去至少'+get.cnNumber(num)+'张武将牌上的“翼”',cards],[num,cards.length]).set('ai',button=>{
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
if(2*player.getExpansions('dclingxi').filter(card=>!ui.selected.buttons.some(but=>but.link==card)).reduce((list,card)=>list.add(get.suit(card,false)),[]).length-player.countCards('h')<=0) return 0;
|
if(2*player.getExpansions('dclingxi').filter(card=>!ui.selected.buttons.some(but=>but.link==card)).reduce((list,card)=>list.add(get.suit(card,false)),[]).length-player.countCards('h')<=0) return 0;
|
||||||
|
@ -197,7 +197,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.logSkill('dczhifou');
|
player.logSkill('dczhifou');
|
||||||
player.loseToDiscardpile(result.links);
|
player.loseToDiscardpile(result.links);
|
||||||
var list=[],choiceList=[
|
var list=[],choiceList=[
|
||||||
'将一张牌称为“翼”置于'+get.translation(player)+'的武将牌上',
|
'将一张牌称为“翼”置于你的武将牌上',
|
||||||
'弃置两张牌',
|
'弃置两张牌',
|
||||||
'失去1点体力',
|
'失去1点体力',
|
||||||
];
|
];
|
||||||
|
@ -241,18 +241,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if(list.length==1) result3={control:list[0]};
|
else if(list.length==1) result3={control:list[0]};
|
||||||
else result3=yield target.chooseControl(list).set('prompt','知否:请选择一项').set('choiceList',choiceList).set('ai',()=>{
|
else result3=yield player.chooseControl(list).set('prompt','知否:请选择一项').set('choiceList',choiceList.map(str=>'令'+get.translation(target)+str)).set('ai',()=>{
|
||||||
var player=_status.event.player;
|
var player=_status.event.player;
|
||||||
|
var target=_status.event.target;
|
||||||
var getNum=function(control){
|
var getNum=function(control){
|
||||||
return [
|
return [
|
||||||
get.effect(player,{name:'guohe_copy2'},player,player)/2,
|
get.effect(target,{name:'guohe_copy2'},target,player)/2,
|
||||||
get.effect(player,{name:'guohe_copy2'},player,player),
|
get.effect(target,{name:'guohe_copy2'},target,player),
|
||||||
get.effect(player,{name:'losehp'},player,player),
|
get.effect(target,{name:'losehp'},target,player),
|
||||||
][['置入“翼”','弃置卡牌','失去体力'].indexOf(control)];
|
][['置入“翼”','弃置卡牌','失去体力'].indexOf(control)];
|
||||||
};
|
};
|
||||||
var controls=_status.event.controls.slice();
|
var controls=_status.event.controls.slice();
|
||||||
return controls.sort((a,b)=>getNum(b)-getNum(a))[0];
|
return controls.sort((a,b)=>getNum(b)-getNum(a))[0];
|
||||||
});
|
}).set('target',target);
|
||||||
switch(result3.control){
|
switch(result3.control){
|
||||||
case '置入“翼”':
|
case '置入“翼”':
|
||||||
player.addTempSkill('dczhifou_0');
|
player.addTempSkill('dczhifou_0');
|
||||||
|
@ -13886,7 +13887,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dclingxi:'灵犀',
|
dclingxi:'灵犀',
|
||||||
dclingxi_info:'出牌阶段开始和结束时,你可以将至多X张牌称为“翼”置于你的武将牌上(X为你的体力上限)。当你失去武将牌上的“翼”时,你将手牌数调整至Y张(Y为你武将牌上的“翼”所含有的花色数的两倍)。',
|
dclingxi_info:'出牌阶段开始和结束时,你可以将至多X张牌称为“翼”置于你的武将牌上(X为你的体力上限)。当你失去武将牌上的“翼”时,你将手牌数调整至Y张(Y为你武将牌上的“翼”所含有的花色数的两倍)。',
|
||||||
dczhifou:'知否',
|
dczhifou:'知否',
|
||||||
dczhifou_info:'当你使用牌结算完毕后,你可以移去至少X张武将牌上的“翼”(X为本回合此前发动此技能的次数,且X至少为1),然后令一名角色选择执行以下一项:①将一张牌称为“翼”置于你的武将牌上;②弃置两张牌;③失去1点体力。',
|
dczhifou_info:'当你使用牌结算完毕后,你可以移去至少X张武将牌上的“翼”(X为本回合此前发动此技能的次数+1),然后选择一名角色并选择一项令其执行(每个选项每回合限选择一次):①将一张牌称为“翼”置于你的武将牌上;②弃置两张牌;③失去1点体力。',
|
||||||
|
|
||||||
sp2_yinyu:'隐山之玉',
|
sp2_yinyu:'隐山之玉',
|
||||||
sp2_huben:'百战虎贲',
|
sp2_huben:'百战虎贲',
|
||||||
|
|
Loading…
Reference in New Issue