Merge pull request #613 from mengxinzxz/PR-Branch
small bugfix and optimization
This commit is contained in:
commit
9bc080059f
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -20,7 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']],
|
sp_fuhuanghou:['female','qun',3,['spcangni','spmixin']],
|
||||||
sp_fuwan:['male','qun',3,['spfengyin','spchizhong']],
|
sp_fuwan:['male','qun',3,['spfengyin','spchizhong']],
|
||||||
old_lingju:['female','qun',3,['jieyuan','fenxin_old']],
|
old_lingju:['female','qun',3,['jieyuan','fenxin_old']],
|
||||||
sp_mushun:['male','qun',4,['dcmoukui']],
|
sp_mushun:['male','qun',4,['moukui']],
|
||||||
},
|
},
|
||||||
characterFilter:{
|
characterFilter:{
|
||||||
old_lingju:function(mode){
|
old_lingju:function(mode){
|
||||||
|
@ -598,32 +598,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
content_old:function(){
|
init:function(player){
|
||||||
'step 0'
|
player.addSkill('dcshixian_yayun');
|
||||||
if(lib.skill.dcshixian.filterx(trigger)){
|
var history=player.getAllHistory('useCard');
|
||||||
player.chooseControl('cancel2').set('choiceList',[
|
if(history.length){
|
||||||
'摸一张牌',
|
player.addGaintag(player.getCards('h',card=>{
|
||||||
'令'+get.translation(trigger.card)+'额外结算一次',
|
return get.is.yayun(get.translation(card.name),get.translation(history[history.length-1].card.name));
|
||||||
]).set('prompt',get.prompt('dcsitian'));
|
}),'dcshixian_yayun');
|
||||||
}
|
|
||||||
else{
|
|
||||||
player.chooseBool('是否发动【诗仙】摸一张牌?').set('frequentSkill','dcshixian');
|
|
||||||
}
|
|
||||||
'step 1'
|
|
||||||
if(result.control){
|
|
||||||
if(result.index==0){
|
|
||||||
player.logSkill('dcshixian');
|
|
||||||
player.draw();
|
|
||||||
}
|
|
||||||
else if(result.index==1){
|
|
||||||
trigger.effectCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if(result.bool){
|
|
||||||
player.logSkill('dcshixian');
|
|
||||||
player.draw();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onremove:function(player){
|
||||||
|
player.removeSkill('dcshixian_yayun');
|
||||||
|
player.removeGaintag('dcshixian_yayun');
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
yayun:{
|
||||||
|
charlotte:true,
|
||||||
|
trigger:{player:'useCard1'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.countCards('h');
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
priority:11+45+14+19+19+810,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.removeGaintag('dcshixian_yayun');
|
||||||
|
'step 1'
|
||||||
|
player.addGaintag(player.getCards('h',card=>{
|
||||||
|
return get.is.yayun(get.translation(card.name),get.translation(trigger.card.name));
|
||||||
|
}),'dcshixian_yayun');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
//龙王
|
//龙王
|
||||||
dclonggong:{
|
dclonggong:{
|
||||||
|
@ -1281,9 +1287,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
direct:true,
|
direct:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseDrawRecover('###'+get.prompt('spcangni')+'###摸两张牌或回复1点体力,然后将武将牌翻面',2).set('ai',function(){
|
player.chooseDrawRecover('###'+get.prompt('spcangni')+'###摸两张牌或回复1点体力,然后将武将牌翻面',2).logSkill='spcangni';
|
||||||
return 'cancel2';
|
|
||||||
}).logSkill='spcangni';
|
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.control!='cancel2') player.turnOver();
|
if(result.control!='cancel2') player.turnOver();
|
||||||
},
|
},
|
||||||
|
@ -1566,6 +1570,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dclbjiuxian:'酒仙',
|
dclbjiuxian:'酒仙',
|
||||||
dclbjiuxian_info:'①你可以将额定目标数大于1的锦囊牌当做【酒】使用。②你使用【酒】无次数限制。',
|
dclbjiuxian_info:'①你可以将额定目标数大于1的锦囊牌当做【酒】使用。②你使用【酒】无次数限制。',
|
||||||
dcshixian:'诗仙',
|
dcshixian:'诗仙',
|
||||||
|
dcshixian_yayun:'押韵',
|
||||||
dcshixian_info:'当你使用一张牌时,若此牌的牌名与你于本局游戏使用的上一张牌的牌名押韵,则你可以摸一张牌,并令此牌额外结算一次。',
|
dcshixian_info:'当你使用一张牌时,若此牌的牌名与你于本局游戏使用的上一张牌的牌名押韵,则你可以摸一张牌,并令此牌额外结算一次。',
|
||||||
taoshen:'涛神',
|
taoshen:'涛神',
|
||||||
dcnutao:'怒涛',
|
dcnutao:'怒涛',
|
||||||
|
|
|
@ -4989,7 +4989,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
maixie:true,
|
maixie:true,
|
||||||
maixie_hp:true,
|
maixie_hp:true,
|
||||||
combo:'sbaiyin',
|
combo:'sbaiyin',
|
||||||
/*effect:{
|
effect:{
|
||||||
target:function(card,player,target){
|
target:function(card,player,target){
|
||||||
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
|
if(player.hasSkillTag('jueqing',false,target)) return [1,-2];
|
||||||
if(get.tag(card,'damage')){
|
if(get.tag(card,'damage')){
|
||||||
|
@ -5013,7 +5013,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return 'zeroplayertarget';
|
return 'zeroplayertarget';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}*/
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
renjie2:{
|
renjie2:{
|
||||||
|
@ -5030,7 +5030,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.addMark('renjie',trigger.getl(player).cards2.length);
|
player.addMark('renjie',trigger.getl(player).cards2.length);
|
||||||
}
|
},
|
||||||
},
|
},
|
||||||
sbaiyin:{
|
sbaiyin:{
|
||||||
skillAnimation:'epic',
|
skillAnimation:'epic',
|
||||||
|
@ -5048,11 +5048,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.addSkill('jilue');
|
player.addSkill('jilue');
|
||||||
player.awakenSkill('sbaiyin');
|
player.awakenSkill('sbaiyin');
|
||||||
},
|
},
|
||||||
derivation:'jilue',
|
derivation:['jilue','reguicai','fangzhu','rejizhi','rezhiheng','rewansha'],
|
||||||
},
|
},
|
||||||
jilue:{
|
jilue:{
|
||||||
unique:true,
|
unique:true,
|
||||||
group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi','jilue_jizhi_clear']
|
group:['jilue_guicai','jilue_fangzhu','jilue_wansha','jilue_zhiheng','jilue_jizhi'],
|
||||||
},
|
},
|
||||||
jilue_guicai:{
|
jilue_guicai:{
|
||||||
audio:1,
|
audio:1,
|
||||||
|
@ -5253,7 +5253,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
skillTagFilter:function(player,tag,arg){
|
skillTagFilter:function(player,tag,arg){
|
||||||
if(tag==='nokeep') return player.isPhaseUsing()&&!player.getStat().skill.jilue_zhiheng&&player.hasCard((card)=>get.name(card)!=='tao','h');
|
if(tag==='nokeep') return player.isPhaseUsing()&&!player.getStat().skill.jilue_zhiheng&&player.hasCard((card)=>get.name(card)!=='tao','h');
|
||||||
},
|
},
|
||||||
threaten:1.5
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
jilue_jizhi:{
|
jilue_jizhi:{
|
||||||
|
@ -5262,9 +5261,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return (get.type(event.card,'trick')=='trick'&&event.card.isCard&&player.hasMark('renjie'));
|
return (get.type(event.card,'trick')=='trick'&&event.card.isCard&&player.hasMark('renjie'));
|
||||||
},
|
},
|
||||||
init:function(player){
|
|
||||||
player.storage.jilue_jizhi=0;
|
|
||||||
},
|
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.removeMark('renjie',1);
|
player.removeMark('renjie',1);
|
||||||
|
@ -5279,33 +5275,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 2'
|
'step 2'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.discard(event.card);
|
player.discard(event.card);
|
||||||
player.storage.jilue_jizhi++;
|
player.addTempSkill('jilue_jizhi_clear');
|
||||||
if(_status.currentPhase==player){
|
player.addMark('jilue_jizhi_clear',1,false);
|
||||||
player.markSkill('jilue_jizhi');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
ai:{
|
|
||||||
threaten:1.4
|
|
||||||
},
|
|
||||||
mod:{
|
|
||||||
maxHandcard:function(player,num){
|
|
||||||
return num+player.storage.jilue_jizhi;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
intro:{
|
|
||||||
content:'本回合手牌上限+#',
|
|
||||||
},
|
|
||||||
subSkill:{
|
subSkill:{
|
||||||
clear:{
|
clear:{
|
||||||
trigger:{global:'phaseAfter'},
|
charlotte:true,
|
||||||
silent:true,
|
onremove:true,
|
||||||
content:function(){
|
mod:{
|
||||||
player.storage.jilue_jizhi=0;
|
maxHandcard:function(player,num){
|
||||||
player.unmarkSkill('jilue_jizhi');
|
return num+player.countMark('jilue_jizhi_clear');
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
}
|
intro:{content:'手牌上限+#'},
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
wushen:{
|
wushen:{
|
||||||
mod:{
|
mod:{
|
||||||
|
|
|
@ -4739,7 +4739,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xingtu:{
|
xingtu:{
|
||||||
trigger:{player:'useCard'},
|
trigger:{player:'useCard'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
var num1=get.number(event.card),num2=player.storage.xingtu;
|
var evt=lib.skill.dcjianying.getLastUsed(player,event);
|
||||||
|
if(!evt||!evt.card) return false;
|
||||||
|
var num1=get.number(event.card),num2=get.number(evt.card);
|
||||||
return typeof num1=='number'&&typeof num2=='number'&&num2%num1==0;
|
return typeof num1=='number'&&typeof num2=='number'&&num2%num1==0;
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
|
@ -4748,29 +4750,73 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
mod:{
|
mod:{
|
||||||
cardUsable:function(card,player){
|
cardUsable:function(card,player){
|
||||||
var num1=get.number(card),num2=player.storage.xingtu;
|
if(typeof card=='object'){
|
||||||
if(typeof num1=='number'&&typeof num2=='number'&&num1%num2==0) return Infinity;
|
var evt=lib.skill.dcjianying.getLastUsed(player);
|
||||||
|
if(!evt||!evt.card) return;
|
||||||
|
var num1=get.number(card),num2=get.number(evt.card);
|
||||||
|
if(typeof num1=='number'&&typeof num2=='number'&&num1%num2==0) return Infinity;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
aiOrder:function(player,card,num){
|
aiOrder:function(player,card,num){
|
||||||
var num1=get.number(card),num2=player.storage.xingtu;
|
if(typeof card=='object'){
|
||||||
if(typeof num1=='number'&&typeof num2=='number'&&num2%num1==0) return num+5;
|
var evt=lib.skill.dcjianying.getLastUsed(player);
|
||||||
|
if(!evt||!evt.card) return;
|
||||||
|
var num1=get.number(card),num2=num2=get.number(evt.card);
|
||||||
|
if(typeof num1=='number'&&typeof num2=='number'&&num2%num1==0) return num+5;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
group:'xingtu_record',
|
init:function(player){
|
||||||
intro:{
|
player.addSkill('xingtu_mark');
|
||||||
content:'当前记录:X=#',
|
var history=player.getAllHistory('useCard');
|
||||||
|
if(history.length){
|
||||||
|
var trigger=history[history.length-1],num=get.number(trigger.card);
|
||||||
|
player.storage.xingtu_mark=num;
|
||||||
|
player[typeof num!='number'?'unmarkSkill':'markSkill']('xingtu_mark');
|
||||||
|
}
|
||||||
|
},
|
||||||
|
onremove:function(player){
|
||||||
|
player.removeSkill('xingtu_mark');
|
||||||
|
player.removeGaintag('xingtu1');
|
||||||
|
player.removeGaintag('xingtu2');
|
||||||
|
delete player.storage.xingtu_mark;
|
||||||
},
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
record:{
|
mark:{
|
||||||
trigger:{player:'useCardAfter'},
|
charlotte:true,
|
||||||
forced:true,
|
trigger:{
|
||||||
filter:function(event,player){
|
player:['useCard1','gainAfter'],
|
||||||
return typeof get.number(event.card)=='number';
|
global:'loseAsyncAfter',
|
||||||
},
|
},
|
||||||
|
filter:function(event,player,name){
|
||||||
|
if(!player.countCards('h')) return false;
|
||||||
|
return name=='useCard1'||event.getg(player).length;
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
firstDo:true,
|
||||||
content:function(){
|
content:function(){
|
||||||
player.storage.xingtu=get.number(trigger.card);
|
'step 0'
|
||||||
player.markSkill('xingtu');
|
player.removeGaintag('xingtu1');
|
||||||
|
player.removeGaintag('xingtu2');
|
||||||
|
if(event.triggername=='useCard1'){
|
||||||
|
var num=get.number(trigger.card,player);
|
||||||
|
player.storage.xingtu_mark=num;
|
||||||
|
player[typeof num!='number'?'unmarkSkill':'markSkill']('xingtu_mark');
|
||||||
|
if(typeof num!='number') event.finish();
|
||||||
|
}
|
||||||
|
'step 1'
|
||||||
|
var cards1=[],cards2=[],num=player.storage.xingtu_mark;
|
||||||
|
player.getCards('h').forEach(card=>{
|
||||||
|
var numx=get.number(card,player);
|
||||||
|
if(typeof numx=='number'){
|
||||||
|
if(numx%num==0) cards1.push(card);
|
||||||
|
if(num%numx==0) cards2.push(card);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
player.addGaintag(cards1,'xingtu1');
|
||||||
|
player.addGaintag(cards2,'xingtu2');
|
||||||
},
|
},
|
||||||
|
intro:{content:'上一张牌的点数:#'},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -4784,7 +4830,33 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
selectCard:[2,Infinity],
|
selectCard:[2,Infinity],
|
||||||
check:function(card){
|
check:function(card){
|
||||||
if(ui.selected.cards.length>1) return 0;
|
if(ui.selected.cards.length>1) return 0;
|
||||||
return 4-get.value(card);
|
var player=_status.event.player;
|
||||||
|
if(player.hasSkill('xingtu')&&player.storage.xingtu){
|
||||||
|
var cards=player.getCards('he');
|
||||||
|
var num=player.storage.xingtu,stop=false;
|
||||||
|
for(var i=0;i<=cards.length;i++){
|
||||||
|
if(i!=cards.length){
|
||||||
|
var num1=get.number(cards[i],player);
|
||||||
|
if(typeof num1!='number') continue;
|
||||||
|
for(var j=0;j<cards.length;j++){
|
||||||
|
if(i==j) continue;
|
||||||
|
var num2=get.number(cards[j],player);
|
||||||
|
if(typeof num2!='number') continue;
|
||||||
|
var sum=num1+num2;
|
||||||
|
if(sum%num==0||num%sum==0){
|
||||||
|
stop=true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(stop) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(i!=cards.length){
|
||||||
|
var cardx=[cards[i],cards[j]];
|
||||||
|
if(cardx.includes(card)) return 10-get.value(card);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 5-get.value(card);
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
var num=0;
|
var num=0;
|
||||||
|
@ -15272,9 +15344,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
re_gaoshun_prefix:'手杀界',
|
re_gaoshun_prefix:'手杀界',
|
||||||
peixiu:'裴秀',
|
peixiu:'裴秀',
|
||||||
xingtu:'行图',
|
xingtu:'行图',
|
||||||
xingtu_info:'锁定技。①当你使用有点数的牌结算结束后,你将此牌点数记录为X。②当你使用牌时,若X÷Y的余数为0,则你摸一张牌(Y为此牌的点数)。③你使用Y÷X的余数为0的牌无次数限制(Y为此牌的点数)。',
|
xingtu1:'倍数',
|
||||||
|
xingtu2:'约数',
|
||||||
|
xingtu_info:'锁定技。你使用点数为X的倍数的牌无次数限制,你使用点数为X的约数的牌时摸一张牌(X为你本局游戏使用的上一张牌的点数)。',
|
||||||
juezhi:'爵制',
|
juezhi:'爵制',
|
||||||
juezhi_info:'出牌阶段,你可以弃置至少两张牌,然后从牌堆中获得一张点数为X的牌(X为这些牌的点数和除以13后的余数,且当余数为0时X为13)。',
|
juezhi_info:'出牌阶段,你可以弃置至少两张牌,然后从牌堆中获得一张点数为Y的牌(Y为这些牌的点数和对13取余,余数为0时Y取13)。',
|
||||||
sp_jianggan:'手杀蒋干',
|
sp_jianggan:'手杀蒋干',
|
||||||
sp_jianggan_prefix:'手杀',
|
sp_jianggan_prefix:'手杀',
|
||||||
spdaoshu:'盗书',
|
spdaoshu:'盗书',
|
||||||
|
|
|
@ -4836,7 +4836,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
player.chooseButton([get.prompt('sphantong'),player.storage.sphantong],function(button){return -1});
|
player.chooseButton([get.prompt('sphantong'),player.storage.sphantong],function(button){
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(_status.currentPhase==player){
|
||||||
|
//血裔
|
||||||
|
if((player.hasJudge('lebu')||player.skipList.includes('phaseUse'))&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.group=='qun';
|
||||||
|
})) return 1;
|
||||||
|
//激将
|
||||||
|
if(!player.hasJudge('lebu')&&!player.skipList.includes('phaseUse')&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.group=='shu'&¤t.hasSha()&&get.attitude(player,current)>0&&get.attitude(current,player)>0;
|
||||||
|
})&&game.hasPlayer(function(target){
|
||||||
|
return player.canUse({name:'sha'},target)&&get.effect(target,{name:'sha'},player,player)>0;
|
||||||
|
})) return 1;
|
||||||
|
}
|
||||||
|
//护驾
|
||||||
|
else if(!player.hasShan()&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.group=='wei'&¤t.mayHaveShan()&&get.attitude(player,current)>0&&get.attitude(current,player)>0;
|
||||||
|
})) return 1;
|
||||||
|
return -1;
|
||||||
|
});
|
||||||
'step 1'
|
'step 1'
|
||||||
if(result.bool){
|
if(result.bool){
|
||||||
player.logSkill('sphantong');
|
player.logSkill('sphantong');
|
||||||
|
@ -4848,31 +4867,41 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
game.cardsDiscard(card);
|
game.cardsDiscard(card);
|
||||||
var list=['hujia','jijiang','jiuyuan','xueyi'];
|
var list=['hujia','jijiang','jiuyuan','xueyi'];
|
||||||
for(var i=0;i<list.length;i++){
|
for(var i=0;i<list.length;i++){
|
||||||
if(player.hasZhuSkill(list[i])) list.splice(i--,1);
|
if(player.hasSkill(list[i])) list.splice(i--,1);
|
||||||
|
}
|
||||||
|
if(list.length){
|
||||||
|
player.chooseControl(list).set('prompt','选择获得以下技能中的一个').set('ai',function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
if(_status.currentPhase==player){
|
||||||
|
//血裔
|
||||||
|
if((player.hasJudge('lebu')||player.skipList.includes('phaseUse'))&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.group=='qun';
|
||||||
|
})) return 'xueyi';
|
||||||
|
//激将
|
||||||
|
if(!player.hasJudge('lebu')&&!player.skipList.includes('phaseUse')&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.group=='shu'&¤t.hasSha()&&get.attitude(player,current)>0&&get.attitude(current,player)>0;
|
||||||
|
})&&game.hasPlayer(function(target){
|
||||||
|
return player.canUse({name:'sha'},target)&&get.effect(target,{name:'sha'},player,player)>0;
|
||||||
|
})) return 'jijiang';
|
||||||
|
}
|
||||||
|
//护驾
|
||||||
|
else if(!player.hasShan()&&game.hasPlayer(function(current){
|
||||||
|
return current!=player&¤t.group=='wei'&¤t.mayHaveShan()&&get.attitude(player,current)>0&&get.attitude(current,player)>0;
|
||||||
|
})) return 'hujia';
|
||||||
|
});
|
||||||
}
|
}
|
||||||
if(list.length>0) player.chooseControl(list).set('prompt','选择获得以下技能中的一个');
|
|
||||||
else event.finish();
|
else event.finish();
|
||||||
}
|
}
|
||||||
else event.finish();
|
else event.finish();
|
||||||
'step 2'
|
'step 2'
|
||||||
var skill=result.control;
|
var skill=result.control;
|
||||||
player.addTempSkill(skill);
|
player.addTempSkill(skill);
|
||||||
if(!player.storage.zhuSkill_sphantong) player.storage.zhuSkill_sphantong=[];
|
|
||||||
player.storage.zhuSkill_sphantong.add(skill);
|
|
||||||
player.popup(skill,'wood');
|
player.popup(skill,'wood');
|
||||||
game.log(player,'获得了技能','#g【'+get.translation(skill)+'】');
|
game.log(player,'获得了技能','#g【'+get.translation(skill)+'】');
|
||||||
var next=game.createEvent('sphantong_clear',false);
|
|
||||||
event.next.remove(next);
|
|
||||||
trigger.after.push(next);
|
|
||||||
next.player=player;
|
|
||||||
next.skill=skill;
|
|
||||||
next.setContent(function(){
|
|
||||||
if(player.storage.zhuSkill_sphantong) player.storage.zhuSkill_sphantong.remove(event.skill);
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
sphuangen:{
|
sphuangen:{
|
||||||
trigger:{global:'useCardToPlayered'},
|
trigger:{global:'useCardToPlayered'},
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(!event.isFirstTarget) return false;
|
if(!event.isFirstTarget) return false;
|
||||||
if(get.type(event.card)!='trick') return false;
|
if(get.type(event.card)!='trick') return false;
|
||||||
|
@ -5436,7 +5465,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
audio:2,
|
audio:2,
|
||||||
enable:'phaseUse',
|
enable:'phaseUse',
|
||||||
filterCard:{suit:'diamond'},
|
filterCard:{suit:'diamond'},
|
||||||
filterTarget:true,
|
filterTarget:function(card,player,target){
|
||||||
|
return target.canAddJudge({name:'yanxiao_card'});
|
||||||
|
},
|
||||||
check:function(card){
|
check:function(card){
|
||||||
return 7-get.value(card);
|
return 7-get.value(card);
|
||||||
},
|
},
|
||||||
|
|
|
@ -520,7 +520,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
old_guhuo:{
|
old_guhuo:{
|
||||||
audio:2,
|
audio:2,
|
||||||
group:['old_guhuo_guess'],
|
|
||||||
enable:['chooseToUse','chooseToRespond'],
|
enable:['chooseToUse','chooseToRespond'],
|
||||||
hiddenCard:function(player,name){
|
hiddenCard:function(player,name){
|
||||||
return (lib.inpile.contains(name)&&player.countCards('hs')>0);
|
return (lib.inpile.contains(name)&&player.countCards('hs')>0);
|
||||||
|
@ -636,6 +635,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
precontent:function(){
|
precontent:function(){
|
||||||
player.logSkill('old_guhuo');
|
player.logSkill('old_guhuo');
|
||||||
|
player.addTempSkill('old_guhuo_guess');
|
||||||
var card=event.result.cards[0];
|
var card=event.result.cards[0];
|
||||||
event.result.card.suit=get.suit(card);
|
event.result.card.suit=get.suit(card);
|
||||||
event.result.card.number=get.number(card);
|
event.result.card.number=get.number(card);
|
||||||
|
|
|
@ -3850,6 +3850,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.loseMaxHp();
|
player.loseMaxHp();
|
||||||
player.addSkill('rejianyan');
|
player.addSkill('rejianyan');
|
||||||
},
|
},
|
||||||
|
derivation:'rejianyan',
|
||||||
},
|
},
|
||||||
rejianyan:{
|
rejianyan:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -10741,6 +10742,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
precontent:function(){
|
precontent:function(){
|
||||||
player.logSkill('reguhuo');
|
player.logSkill('reguhuo');
|
||||||
|
player.addTempSkill('reguhuo_guess');
|
||||||
var card=event.result.cards[0];
|
var card=event.result.cards[0];
|
||||||
event.result.card.suit=get.suit(card);
|
event.result.card.suit=get.suit(card);
|
||||||
event.result.card.number=get.number(card);
|
event.result.card.number=get.number(card);
|
||||||
|
@ -10764,7 +10766,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
threaten:1.3,
|
threaten:1.3,
|
||||||
},
|
},
|
||||||
group:['reguhuo_shan','reguhuo_wuxie','reguhuo_guess'],
|
group:['reguhuo_shan','reguhuo_wuxie'],
|
||||||
},
|
},
|
||||||
reguhuo_shan:{
|
reguhuo_shan:{
|
||||||
enable:['chooseToUse','chooseToRespond'],
|
enable:['chooseToUse','chooseToRespond'],
|
||||||
|
@ -10801,6 +10803,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
precontent:function(){
|
precontent:function(){
|
||||||
player.logSkill('reguhuo');
|
player.logSkill('reguhuo');
|
||||||
|
player.addTempSkill('reguhuo_guess');
|
||||||
var card=event.result.cards[0];
|
var card=event.result.cards[0];
|
||||||
event.result.card.suit=get.suit(card);
|
event.result.card.suit=get.suit(card);
|
||||||
event.result.card.number=get.number(card);
|
event.result.card.number=get.number(card);
|
||||||
|
@ -10841,6 +10844,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
precontent:function(){
|
precontent:function(){
|
||||||
player.logSkill('reguhuo');
|
player.logSkill('reguhuo');
|
||||||
|
player.addTempSkill('reguhuo_guess');
|
||||||
var card=event.result.cards[0];
|
var card=event.result.cards[0];
|
||||||
event.result.card.suit=get.suit(card);
|
event.result.card.suit=get.suit(card);
|
||||||
event.result.card.number=get.number(card);
|
event.result.card.number=get.number(card);
|
||||||
|
@ -10968,7 +10972,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 1'
|
'step 1'
|
||||||
if(!result.bool) target.loseHp();
|
if(!result.bool) target.loseHp();
|
||||||
'step 2'
|
'step 2'
|
||||||
target.addSkill('rechanyuan');
|
target.addSkillLog('rechanyuan');
|
||||||
if(targets.length) event.goto(0);
|
if(targets.length) event.goto(0);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -10976,13 +10980,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
reguhuo_phase:{},
|
reguhuo_phase:{},
|
||||||
rechanyuan:{
|
rechanyuan:{
|
||||||
init:function(player,skill){
|
init:function(player,skill){
|
||||||
|
if(player.hp<=1){
|
||||||
|
player.logSkill(skill);
|
||||||
|
player.addSkill('rechanyuan_log');
|
||||||
|
}
|
||||||
player.addSkillBlocker(skill);
|
player.addSkillBlocker(skill);
|
||||||
},
|
},
|
||||||
onremove:function(player,skill){
|
onremove:function(player,skill){
|
||||||
|
player.removeSkill('rechanyuan_log');
|
||||||
player.removeSkillBlocker(skill);
|
player.removeSkillBlocker(skill);
|
||||||
},
|
},
|
||||||
charlotte:true,
|
|
||||||
locked:true,
|
|
||||||
skillBlocker:function(skill,player){
|
skillBlocker:function(skill,player){
|
||||||
return skill!='chanyuan'&&skill!='rechanyuan'&&!lib.skill[skill].charlotte&&player.hp<=1;
|
return skill!='chanyuan'&&skill!='rechanyuan'&&!lib.skill[skill].charlotte&&player.hp<=1;
|
||||||
},
|
},
|
||||||
|
@ -10995,8 +11002,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
if(list.length) str+=('<br><li>失效技能:'+get.translation(list))
|
if(list.length) str+=('<br><li>失效技能:'+get.translation(list))
|
||||||
return str;
|
return str;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'changeHp'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return (player.hp<=1)!=(player.hasSkill('rechanyuan_log'));
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
locked:true,
|
||||||
|
content:function(){
|
||||||
|
if(player.hp<=1){
|
||||||
|
player.logSkill('rechanyuan');
|
||||||
|
player.addSkill('rechanyuan_log');
|
||||||
}
|
}
|
||||||
}
|
else player.removeSkill('rechanyuan_log');
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
log:{charlotte:true},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
botu:{
|
botu:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
|
|
@ -1117,17 +1117,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
'step 1'
|
'step 1'
|
||||||
switch(result.control){
|
switch(result.control){
|
||||||
case 'equip1':
|
case 'equip1':
|
||||||
player.addTempSkill('drlt_jueyan1',{player:'phaseAfter'});
|
player.addTempSkill('drlt_jueyan1');
|
||||||
break;
|
break;
|
||||||
case 'equip2':
|
case 'equip2':
|
||||||
player.draw(3);
|
player.draw(3);
|
||||||
player.addTempSkill('drlt_jueyan3',{player:'phaseAfter'});
|
player.addTempSkill('drlt_jueyan3');
|
||||||
break;
|
break;
|
||||||
case 'equip3_4':
|
case 'equip3_4':
|
||||||
player.addTempSkill('drlt_jueyan2',{player:'phaseAfter'});
|
player.addTempSkill('drlt_jueyan2');
|
||||||
break;
|
break;
|
||||||
case 'equip5':
|
case 'equip5':
|
||||||
player.addTempSkill('rejizhi',{player:'phaseAfter'});
|
player.addTempSkill('rejizhi');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -1146,6 +1146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
derivation:'rejizhi',
|
||||||
},
|
},
|
||||||
'drlt_jueyan1':{
|
'drlt_jueyan1':{
|
||||||
mod:{
|
mod:{
|
||||||
|
@ -7457,7 +7458,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
xinfu_guhuo:{
|
xinfu_guhuo:{
|
||||||
audio:'guhuo_guess',
|
audio:'guhuo_guess',
|
||||||
derivation:['chanyuan'],
|
derivation:['chanyuan'],
|
||||||
group:['guhuo_guess'],
|
|
||||||
enable:['chooseToUse','chooseToRespond'],
|
enable:['chooseToUse','chooseToRespond'],
|
||||||
hiddenCard:function(player,name){
|
hiddenCard:function(player,name){
|
||||||
return (lib.inpile.contains(name)&&player.countCards('hs')>0&&!player.hasSkill('guhuo_phase'));
|
return (lib.inpile.contains(name)&&player.countCards('hs')>0&&!player.hasSkill('guhuo_phase'));
|
||||||
|
@ -7553,6 +7553,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
precontent:function(){
|
precontent:function(){
|
||||||
player.logSkill('xinfu_guhuo');
|
player.logSkill('xinfu_guhuo');
|
||||||
|
player.addTempSkill('guhuo_guess');
|
||||||
var card=event.result.cards[0];
|
var card=event.result.cards[0];
|
||||||
event.result.card.suit=get.suit(card);
|
event.result.card.suit=get.suit(card);
|
||||||
event.result.card.number=get.number(card);
|
event.result.card.number=get.number(card);
|
||||||
|
@ -7708,22 +7709,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
chanyuan:{
|
chanyuan:{
|
||||||
init:function(player,skill){
|
init:function(player,skill){
|
||||||
|
if(player.hp==1) player.logSkill(skill);
|
||||||
player.addSkillBlocker(skill);
|
player.addSkillBlocker(skill);
|
||||||
},
|
},
|
||||||
onremove:function(player,skill){
|
onremove:function(player,skill){
|
||||||
player.removeSkillBlocker(skill);
|
player.removeSkillBlocker(skill);
|
||||||
},
|
},
|
||||||
charlotte:true,
|
|
||||||
locked:true,
|
|
||||||
skillBlocker:function(skill,player){
|
skillBlocker:function(skill,player){
|
||||||
return skill!='chanyuan'&&skill!='rechanyuan'&&!lib.skill[skill].charlotte&&player.hp==1;
|
return skill!='chanyuan'&&skill!='rechanyuan'&&!lib.skill[skill].charlotte&&player.hp==1;
|
||||||
},
|
},
|
||||||
audio:2,
|
|
||||||
trigger:{player:'changeHp'},
|
|
||||||
filter:function(event,player){
|
|
||||||
return event.num<0&&player.hp==1;
|
|
||||||
},
|
|
||||||
content:function(){},
|
|
||||||
mark:true,
|
mark:true,
|
||||||
intro:{
|
intro:{
|
||||||
content:function(storage,player,skill){
|
content:function(storage,player,skill){
|
||||||
|
@ -7733,8 +7727,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
});
|
});
|
||||||
if(list.length) str+=('<br><li>失效技能:'+get.translation(list))
|
if(list.length) str+=('<br><li>失效技能:'+get.translation(list))
|
||||||
return str;
|
return str;
|
||||||
}
|
},
|
||||||
}
|
},
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'changeHp'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return player.hp==1;
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
content:function(){},
|
||||||
},
|
},
|
||||||
guhuo_phase:{},
|
guhuo_phase:{},
|
||||||
},
|
},
|
||||||
|
@ -7873,6 +7874,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
drlt_wanglie:"往烈",
|
drlt_wanglie:"往烈",
|
||||||
drlt_wanglie_info:"①出牌阶段,你使用的第一张牌无距离限制。②当你于出牌阶段内使用牌时,你可以令此牌不能被响应,然后你于本阶段内不能再使用牌。",
|
drlt_wanglie_info:"①出牌阶段,你使用的第一张牌无距离限制。②当你于出牌阶段内使用牌时,你可以令此牌不能被响应,然后你于本阶段内不能再使用牌。",
|
||||||
"drlt_xiongluan":"雄乱",
|
"drlt_xiongluan":"雄乱",
|
||||||
|
drlt_xiongluan1:'雄乱',
|
||||||
"drlt_xiongluan_info":"限定技,出牌阶段,你可以废除你的判定区和装备区,然后指定一名其他角色。直到回合结束,你对其使用牌无距离和次数限制,其不能使用和打出手牌。",
|
"drlt_xiongluan_info":"限定技,出牌阶段,你可以废除你的判定区和装备区,然后指定一名其他角色。直到回合结束,你对其使用牌无距离和次数限制,其不能使用和打出手牌。",
|
||||||
"drlt_congjian":"从谏",
|
"drlt_congjian":"从谏",
|
||||||
"drlt_congjian_info":"当你成为锦囊牌的目标时,若此牌的目标数大于1,则你可以交给其中一名其他目标角色一张牌,然后摸一张牌,若你给出的是装备牌,改为摸两张牌。",
|
"drlt_congjian_info":"当你成为锦囊牌的目标时,若此牌的目标数大于1,则你可以交给其中一名其他目标角色一张牌,然后摸一张牌,若你给出的是装备牌,改为摸两张牌。",
|
||||||
|
|
|
@ -21849,12 +21849,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
moukui:{
|
moukui:{
|
||||||
|
audio:2,
|
||||||
|
audioname:['sp_mushun'],
|
||||||
trigger:{player:'useCardToPlayered'},
|
trigger:{player:'useCardToPlayered'},
|
||||||
direct:true,
|
direct:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return event.card.name=='sha';
|
return event.card.name=='sha';
|
||||||
},
|
},
|
||||||
audio:2,
|
|
||||||
content:function(){
|
content:function(){
|
||||||
"step 0"
|
"step 0"
|
||||||
var controls=['draw_card'];
|
var controls=['draw_card'];
|
||||||
|
@ -24247,7 +24248,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
xionghuo:{
|
xionghuo:{
|
||||||
marktext:"戾",
|
marktext:"戾",
|
||||||
mark:true,
|
|
||||||
intro:{
|
intro:{
|
||||||
name:'暴戾',
|
name:'暴戾',
|
||||||
content:"mark",
|
content:"mark",
|
||||||
|
|
|
@ -3805,7 +3805,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
target:1,
|
target:1,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
derivation:['releiji','rebiyue','new_retuxi','mingce','xinzhiyan','nhyinbing','nhhuoqi','nhguizhu','nhxianshou','nhlundao','nhguanyue','nhyanzheng'],
|
derivation:['releiji','rebiyue','new_retuxi','remingce','xinzhiyan','nhyinbing','nhhuoqi','nhguizhu','nhxianshou','nhlundao','nhguanyue','nhyanzheng'],
|
||||||
subSkill:{
|
subSkill:{
|
||||||
clear:{
|
clear:{
|
||||||
onremove:function(player){
|
onremove:function(player){
|
||||||
|
|
|
@ -2043,6 +2043,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
player.addTempSkill('paoxiao');
|
player.addTempSkill('paoxiao');
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
derivation:['wusheng','paoxiao'],
|
||||||
},
|
},
|
||||||
shiyong:{
|
shiyong:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -13779,7 +13780,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{player:'phaseZhunbeiBegin'},
|
trigger:{player:'phaseZhunbeiBegin'},
|
||||||
forced:true,
|
forced:true,
|
||||||
unique:true,
|
unique:true,
|
||||||
derivation:['zyexin','zzili'],
|
derivation:['zyexin','zzili','zpaiyi'],
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.countCards('e')>=2;
|
return player.countCards('e')>=2;
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in New Issue