Merge pull request #613 from mengxinzxz/PR-Branch

small bugfix and optimization
This commit is contained in:
Spmario233 2023-11-07 22:56:16 +08:00 committed by GitHub
commit 9bc080059f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
42 changed files with 240 additions and 118 deletions

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.

BIN
audio/skill/chanyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chanyuan2.mp3 Normal file

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.

BIN
audio/skill/rechanyuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/rechanyuan2.mp3 Normal file

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.

View File

@ -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:'怒涛',

View File

@ -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:{

View File

@ -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:'盗书',

View File

@ -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&&current.group=='qun';
})) return 1;
//激将
if(!player.hasJudge('lebu')&&!player.skipList.includes('phaseUse')&&game.hasPlayer(function(current){
return current!=player&&current.group=='shu'&&current.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&&current.group=='wei'&&current.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&&current.group=='qun';
})) return 'xueyi';
//激将
if(!player.hasJudge('lebu')&&!player.skipList.includes('phaseUse')&&game.hasPlayer(function(current){
return current!=player&&current.group=='shu'&&current.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&&current.group=='wei'&&current.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);
}, },

View File

@ -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);

View File

@ -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,

View File

@ -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则你可以交给其中一名其他目标角色一张牌然后摸一张牌若你给出的是装备牌改为摸两张牌。",

View File

@ -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",

View File

@ -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){

View File

@ -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;
}, },