tenzen!!!

This commit is contained in:
Spmario233 2021-07-28 16:46:10 +08:00
parent ffc3c70344
commit f643dd7a77
61 changed files with 1326 additions and 202 deletions

BIN
audio/die/duanwei.mp3 Normal file

Binary file not shown.

BIN
audio/die/liangxing.mp3 Normal file

Binary file not shown.

BIN
audio/die/shen_guojia.mp3 Normal file

Binary file not shown.

BIN
audio/die/sp_kongrong.mp3 Normal file

Binary file not shown.

BIN
audio/die/wangfuzhaolei.mp3 Normal file

Binary file not shown.

BIN
audio/die/wangling.mp3 Normal file

Binary file not shown.

BIN
audio/die/zhouchu.mp3 Normal file

Binary file not shown.

BIN
audio/die/zhouqun.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chuhai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/chuhai2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/langmie1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/langmie2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/lulve1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/lulve2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/lxzhuixi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/lxzhuixi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mouli1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/mouli2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sghuishi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/sghuishi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shuishi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/shuishi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/splirang1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/splirang2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spmingshi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/spmingshi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/stianyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/stianyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tiansuan1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/tiansuan2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xianghai1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xianghai2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xunyi1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/xunyi2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zifu1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zifu2.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zuoxing1.mp3 Normal file

Binary file not shown.

BIN
audio/skill/zuoxing2.mp3 Normal file

Binary file not shown.

View File

@ -757,7 +757,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
})) return false;
if(event.card.name=='nanman') return true;
if(event.card.name=='wanjian') return true;
if(event.card.name=='chuqibuyi') return true;
//if(event.card.name=='chuqibuyi') return true;
return false;
},
content:function(){
@ -776,7 +776,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target:target,
card:card
})) return;
if(card.name=='nanman'||card.name=='wanjian'||card.name=='chuqibuyi') return 'zerotarget';
//if(card.name=='nanman'||card.name=='wanjian'||card.name=='chuqibuyi') return 'zerotarget';
if(card.name=='nanman'||card.name=='wanjian') return 'zerotarget';
if(card.name=='sha'){
var equip1=player.getEquip(1);
if(equip1&&equip1.name=='zhuque') return 1.9;
@ -940,7 +941,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
guding_info:'锁定技,当你使用【杀】对目标角色造成伤害时,若其没有手牌,此伤害+1。',
guding_skill:'古锭刀',
tengjia:'藤甲',
tengjia_info:'锁定技,【南蛮入侵】、【万箭齐发】、【出其不意】和普通【杀】对你无效。当你受到火焰伤害时,该伤害+1。',
//tengjia_info:'锁定技,【南蛮入侵】、【万箭齐发】、【出其不意】和普通【杀】对你无效。当你受到火焰伤害时,该伤害+1。',
tengjia_info:'锁定技,【南蛮入侵】、【万箭齐发】和普通【杀】对你无效。当你受到火焰伤害时,该伤害+1。',
tengjia1:'藤甲',
tengjia2:'藤甲',
tengjia3:'藤甲',

View File

@ -425,10 +425,31 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return target!=player&&(get.mode()!='guozhan'||_status.mode=='yingbian'||_status.mode=='free'||target.countCards('e')>0);
},
enable:true,
yingbian_prompt:'此牌的效果改为依次执行所有选项',
yingbian_prompt:function(card){
var str='';
if(get.cardtag(card,'yingbian_all')){
str+='此牌的效果改为依次执行所有选项';
}
if(!str.length||get.cardtag(card,'yingbian_add')){
if(str.length) str+='';
str+='当你使用此牌选择目标后,你可为此牌增加一个目标';
}
return str;
},
yingbian:function(event){
var card=event.card,bool=false;
if(get.cardtag(card,'yingbian_all')){
bool=true;
card.yingbian_all=true;
game.log(card,'执行所有选项');
}
if(!bool||get.cardtag(card,'yingbian_add')){
event.yingbian_addTarget=true;
}
},
content:function(){
'step 0'
if(event.card.yingbian){
if(event.card.yingbian_all){
target.discard(target.getCards('e',function(card){
return lib.filter.cardDiscardable(card,target,'shuiyanqijunx');
}));
@ -485,13 +506,21 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
yingbian:function(card,player,targets,viewer){
if(get.attitude(viewer,player)<=0) return 0;
var base=0;
if(get.cardtag(card,'yingbian_all')){
if(targets.filter(function(current){
return get.damageEffect(current,player,player,'thunder')>0&&current.countCards('e',function(card){
return get.value(card,current)<=0;
})<2&&current.countCards('e',function(card){
return get.value(card,current)>0;
})>0;
}).length) return 6;
}).length) base+=6;
}
if(get.cardtag(card,'yingbian_add')){
if(game.hasPlayer(function(current){
return !targets.contains(current)&&lib.filter.targetEnabled2(card,player,current)&&get.effect(current,card,player,player)>0;
})) base+=6;
}
return 0;
},
result:{

View File

@ -84,20 +84,34 @@ game.import('card',function(lib,game,ui,get,ai,_status){
range:{attack:1},
selectTarget:1,
yingbian_prompt:function(card){
if(lib.linked.contains(card.nature)){
return '此牌的伤害值基数+1';
var str='';
if(get.cardtag(card,'yingbian_hit')){
str+='此牌不可被响应';
}
else{
return '当你使用此牌选择目标后,你可为此牌增加一个目标';
if(get.cardtag(card,'yingbian_damage')){
if(str.length) str+='';
str+='此牌的伤害值基数+1';
}
if(!str.length||get.cardtag(card,'yingbian_add')){
if(str.length) str+='';
str+='当你使用此牌选择目标后,你可为此牌增加一个目标';
}
return str;
},
yingbian:function(event){
if(lib.linked.contains(event.card.nature)){
var card=event.card,bool=false;
if(get.cardtag(card,'yingbian_hit')){
bool=true;
event.directHit.addArray(game.players);
game.log(card,'不可被响应');
}
if(get.cardtag(card,'yingbian_damage')){
bool=true;
if(typeof event.baseDamage!='number') event.baseDamage=1;
event.baseDamage++;
game.log(event.card,'的伤害值基数+1');
}
else{
if(!bool||get.cardtag(card,'yingbian_add')){
event.yingbian_addTarget=true;
}
},
@ -174,6 +188,34 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
},
ai:{
yingbian:function(card,player,targets,viewer){
if(get.attitude(viewer,player)<=0) return 0;
var base=0,hit=false;
if(get.cardtag(card,'yingbian_hit')){
hit=true;
if(targets.filter(function(target){
return target.hasShan()&&get.attitude(viewer,target)<0&&get.damageEffect(target,player,viewer,get.nature(card))>0;
})) base+=5;
}
if(get.cardtag(card,'yingbian_all')){
if(game.hasPlayer(function(current){
return !targets.contains(current)&&lib.filter.targetEnabled2(card,player,current)&&get.effect(current,card,player,player)>0;
})) base+=5;
}
if(get.cardtag(card,'yingbian_damage')){
if(targets.filter(function(target){
return get.attitude(player,target)<0&&(hit||!target.mayHaveShan()||player.hasSkillTag('directHit_ai',true,{
target:target,
card:card,
},true))&&!target.hasSkillTag('filterDamage',null,{
player:player,
card:card,
jiu:true,
})
})) base+=5;
}
return base;
},
canLink:function(player,target,card){
if(!target.isLinked()&&!player.hasSkill('wutiesuolian_skill')) return false;
if(target.mayHaveShan()&&!player.hasSkillTag('directHit_ai',true,{
@ -287,9 +329,25 @@ game.import('card',function(lib,game,ui,get,ai,_status){
cardcolor:'red',
notarget:true,
nodelay:true,
yingbian_prompt:'当你声明使用此牌后,你摸一张牌',
yingbian_prompt:function(card){
var str='';
if(get.cardtag(card,'yingbian_gain')){
str+='当你声明使用此牌时,你获得此牌响应的目标牌';
}
if(!str.length||get.cardtag(card,'yingbian_draw')){
if(str.length) str+='';
str+='当你声明使用此牌时,你摸一张牌';
}
return str;
},
yingbian:function(event){
event.player.draw();
var bool=false;
if(get.cardtag(event.card,'yingbian_damage')){
bool=true;
var cardx=event.respondTo;
if(cardx&&cardx[1]&&cardx[1].cards&&cardx[1].cards.filterInD('od').length) player.gain(cardx[1].cards.filterInD('od'),'gain2','log');
}
if(!bool||get.cardtag(event.card,'yingbian_draw')) event.player.draw();
},
content:function(){
event.result='shaned';
@ -764,6 +822,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
selectTarget:-1,
cardcolor:'red',
reverseOrder:true,
yingbian_prompt:'当你使用此牌选择目标后,你可为此牌减少一个目标',
yingbian:function(event){
event.yingbian_removeTarget=true;
},
filterTarget:function(card,player,target){
//return target.hp<target.maxHp;
return true;
@ -875,6 +937,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
enable:true,
selectTarget:-1,
reverseOrder:true,
yingbian_prompt:'当你使用此牌选择目标后,你可为此牌减少一个目标',
yingbian:function(event){
event.yingbian_removeTarget=true;
},
filterTarget:function(card,player,target){
return target!=player;
},
@ -1381,16 +1447,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
notarget:true,
yingbian_prompt:function(card){
var suit=card.suit;
if(suit=='club'||suit=='spade') return '当你声明使用此牌时,你摸一张牌';
else return '当此牌生效后,你获得此牌响应的目标牌';
if(!get.cardtag(card,'yingbian_gain')) return '当你声明使用此牌时,你摸一张牌';
return '当此牌生效后,你获得此牌响应的目标牌';
},
yingbian:function(event){
if(event.card.cards&&event.card.cards.length==1){
var suit=event.card.cards[0].suit;
if(suit=='heart'||suit=='diamond') return;
}
event.player.draw();
if(!get.cardtag(event.card,'yingbian_gain')) event.player.draw();
},
contentBefore:function(){
'step 0'
@ -1431,12 +1492,9 @@ game.import('card',function(lib,game,ui,get,ai,_status){
delete ui.tempnowuxie;
}
}
if(event.card.yingbian){
if(!event.card.cards||event.card.cards.length!=1) return;
var suit=event.card.cards[0].suit;
if(suit!='heart'&&suit!='diamond') return;
if(event.card.yingbian&&get.cardtag(event.card,'yingbian_gain')){
var cardx=event.getParent().respondTo;
if(cardx&&cardx[1]&&cardx[1].cards&&cardx[1].cards.filterInD().length) player.gain(cardx[1].cards.filterInD('od'),'gain2','log');
if(cardx&&cardx[1]&&cardx[1].cards&&cardx[1].cards.filterInD('od').length) player.gain(cardx[1].cards.filterInD('od'),'gain2','log');
}
},
},

View File

@ -16,11 +16,41 @@ game.import('card',function(lib,game,ui,get,ai,_status){
filterTarget:function(card,player,target){
return target!=player&&target.countCards('hej')>0;
},
yingbian_prompt:'此牌的效果改为依次执行所有选项',
yingbian_prompt:function(card){
var str='';
if(get.cardtag(card,'yingbian_all')){
str+='此牌的效果改为依次执行所有选项';
}
if(get.cardtag(card,'yingbian_hit')){
if(str.length) str+='';
str+='此牌不可被响应';
}
if(!str.length||get.cardtag(card,'yingbian_add')){
if(str.length) str+='';
str+='当你使用此牌选择目标后,你可为此牌增加一个目标';
}
return str;
},
yingbian:function(event){
var card=event.card,bool=false;
if(get.cardtag(card,'yingbian_all')){
bool=true;
card.yingbian_all=true;
game.log(card,'执行所有选项');
}
if(get.cardtag(card,'yingbian_hit')){
bool=true;
event.directHit.addArray(game.players);
game.log(card,'不可被响应');
}
if(!bool||get.cardtag(card,'yingbian_add')){
event.yingbian_addTarget=true;
}
},
content:function(){
var dist=get.distance(player,target);
if(dist>1||card.yingbian) player.discardPlayerCard(target,'hej',true);
if(dist<=1||card.yingbian) player.gainPlayerCard(target,'hej',true);
if(dist>1||card.yingbian_all) player.discardPlayerCard(target,'hej',true);
if(dist<=1||card.yingbian_all) player.gainPlayerCard(target,'hej',true);
},
fullskin:true,
postAi:function(targets){
@ -34,6 +64,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
yingbian:function(card,player,targets,viewer){
if(get.attitude(viewer,player)<=0) return 0;
var base=0;
if(get.cardtag(card,'yingbian_all')){
if(targets.filter(function(current){
var att=get.attitude(player,current);
if(att<=0) return current.countCards('he',function(card){
@ -42,8 +74,19 @@ game.import('card',function(lib,game,ui,get,ai,_status){
return current.countCards('ej',function(card){
return get.position(card)=='j'||get.value(card,current)<=0;
})>1;
}).length) return 6;
return 0;
}).length) base+=6;
}
if(get.cardtag(card,'yingbian_add')){
if(game.hasPlayer(function(current){
return !targets.contains(current)&&lib.filter.targetEnabled2(card,player,current)&&get.effect(current,card,player,player)>0;
})) base+=5;
}
if(get.cardtag(card,'yingbian_hit')){
if(game.hasPlayer(function(current){
return get.attitude(current,player)<0&&current.hasWuxie();
})) base+=3*targets.length;
}
return base;
},
basic:{
order:7.5,
@ -357,7 +400,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
forced:true,
audio:true,
filter:function(event,player){
if(event.targets.length<2||(event.card.name!='sha'&&get.type(event.card)!='trick')) return false;
if(event.targets.length<2||(event.card.name!='sha'&&(get.type(event.card)!='trick'||get.color(event.card)!='black'))) return false;
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
@ -372,7 +415,20 @@ game.import('card',function(lib,game,ui,get,ai,_status){
global:'heiguangkai_ai',
},
tongque_skill:{
ai:{forceYingbian:true},
trigger:{player:'useCard1'},
equipSkill:true,
forced:true,
filter:function(event,player){
return !event.card.yingbian&&get.is.yingbian(event.card)&&player.getHistory('useCard',function(evt){
return get.is.yingbian(evt.card)
}).indexOf(event)==0;
},
content:function(){
trigger.card.yingbian=true;
var info=get.info(trigger.card);
if(info&&info.yingbian) info.yingbian(trigger);
player.addTempSkill('yingbian_changeTarget');
},
},
tianjitu_skill:{
audio:true,
@ -404,17 +460,19 @@ game.import('card',function(lib,game,ui,get,ai,_status){
audio:'taigongyinfu_skill',
trigger:{player:'phaseUseBegin'},
equipSkill:true,
filter:function(event,player){
return game.hasPlayer(function(current){
return !current.isLinked();
});
},
//filter:function(event,player){
// return game.hasPlayer(function(current){
// return !current.isLinked();
// });
//},
direct:true,
content:function(){
'step 0'
player.chooseTarget(function(card,player,target){
return !target.isLinked();
},'是否发动【太公阴符】横置一名角色?').set('ai',function(target){
player.chooseTarget(
//function(card,player,target){
// return !target.isLinked();
//},
'是否发动【太公阴符】横置一名角色?').set('ai',function(target){
return get.effect(target,{name:'tiesuo'},_status.event.player,_status.event.player);
});
'step 1'
@ -686,7 +744,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
ai:{
effect:{
player:function(card,player,target){
if(typeof card!='object'||!target||get.name(card)!='sha'&&get.type(card)!='trick') return;
if(typeof card!='object'||!target||get.name(card)!='sha'&&(get.type(card)!='trick'||get.color(card)!='black')) return;
var info=get.info(card);
var targets=[];
targets.addArray(ui.selected.targets);
@ -748,14 +806,15 @@ game.import('card',function(lib,game,ui,get,ai,_status){
wutiesuolian_info:'锁定技,当你使用【杀】指定目标后,若其:已横置,你观看其手牌。未横置,其横置。',
heiguangkai:'黑光铠',
heiguangkai_skill:'黑光铠',
heiguangkai_info:'锁定技,当你成为【杀】或普通锦囊牌的目标后若此牌的目标数大于1则你令此牌对你无效。',
heiguangkai_info:'锁定技,当你成为【杀】或黑色普通锦囊牌的目标后若此牌的目标数大于1则你令此牌对你无效。',
tongque:'铜雀',
tongque_info:'你使用带有【应变】效果的牌可以无视条件直接生效。',
tongque_skill:'铜雀',
tongque_info:'锁定技,你于一回合内使用的第一张带有【应变】效果的牌无视条件直接生效。',
tianjitu:'天机图',
tianjitu_skill:'天机图',
tianjitu_info:'锁定技,当此牌进入你的装备区时,你弃置一张不为此【天机图】的牌。当此牌离开你的装备区后,你将手牌摸至五张。',
taigongyinfu:'太公阴符',
taigongyinfu_info:'出牌阶段开始时,你可以横置一名角色。出牌阶段结束时,你可以重铸一张手牌。',
taigongyinfu_info:'出牌阶段开始时,你可以横置或重置一名角色。出牌阶段结束时,你可以重铸一张手牌。',
taigongyinfu_skill:'太公阴符',
taigongyinfu_link:'太公阴符',
yingbian_zhuzhan_tag:'助战',
@ -764,9 +823,16 @@ game.import('card',function(lib,game,ui,get,ai,_status){
yingbian_canqu_tag:'残躯',
_yingbian:'应变',
yingbian_changeTarget:'应变',
yingbian_add_tag:'(目标+)',
yingbian_remove_tag:'(目标-)',
yingbian_draw_tag:'(摸牌)',
yingbian_all_tag:'(双项)',
yingbian_hit_tag:'(强命)',
yingbian_gain_tag:'(反甲)',
yingbian_damage_tag:'(伤害+)',
},
list:[
['spade',1,'juedou',null,['yingbian_fujia']],
['spade',1,'juedou'],
['spade',1,'taigongyinfu'],
['spade',1,'guding'],
['spade',2,'cixiong'],
@ -775,10 +841,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['spade',2,'suijiyingbian'],
['spade',3,'jiu'],
['spade',3,'zhujinqiyuan'],
['spade',3,'shuiyanqijunx',null,['yingbian_zhuzhan']],
['spade',3,'shuiyanqijunx',null,['yingbian_zhuzhan','yingbian_add']],
['spade',4,'sha','thunder'],
['spade',4,'guohe'],
['spade',4,'shuiyanqijunx',null,['yingbian_zhuzhan']],
['spade',4,'shuiyanqijunx',null,['yingbian_zhuzhan','yingbian_add']],
['spade',5,'sha','thunder'],
['spade',5,'qinglong'],
['spade',5,'jueying'],
@ -787,35 +853,35 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['spade',6,'qinggang'],
['spade',7,'sha','ice'],
['spade',7,'sha','ice'],
['spade',7,'nanman',null,['yingbian_fujia']],
['spade',7,'nanman',null,['yingbian_fujia','yingbian_remove']],
['spade',8,'sha','ice'],
['spade',8,'sha','ice'],
['spade',8,'sha','ice'],
['spade',9,'sha',null,['yingbian_canqu']],
['spade',9,'sha',null,['yingbian_canqu']],
['spade',9,'sha',null,['yingbian_canqu','yingbian_add']],
['spade',9,'sha',null,['yingbian_canqu','yingbian_add']],
['spade',9,'jiu'],
['spade',10,'sha',null,['yingbian_canqu']],
['spade',10,'sha',null,['yingbian_canqu']],
['spade',10,'sha'],
['spade',10,'sha',null,['yingbian_zhuzhan','yingbian_add']],
['spade',10,'bingliang'],
['spade',11,'wuxie'],
['spade',11,'shunshou'],
['spade',11,'tiesuo'],
['spade',12,'zhujinqiyuan',null,['yingbian_zhuzhan']],
['spade',12,'zhujinqiyuan',null,['yingbian_zhuzhan','yingbian_hit']],
['spade',12,'tiesuo'],
['spade',12,'zhangba'],
['spade',13,'wuxie',null,['yingbian_kongchao']],
['spade',13,'nanman',null,['yingbian_fujia']],
['spade',13,'wuxie',null,['yingbian_kongchao','yingbian_draw']],
['spade',13,'nanman',null,['yingbian_fujia','yingbian_remove']],
['spade',13,'dawan'],
['heart',1,'taoyuan'],
['heart',1,'wanjian'],
['heart',1,'taoyuan',null,['yingbian_fujia','yingbian_remove']],
['heart',1,'wanjian',null,['yingbian_fujia','yingbian_remove']],
['heart',1,'wuxie'],
['heart',2,'shan',null,['yingbian_kongchao']],
['heart',2,'shan',null,['yingbian_kongchao']],
['heart',2,'guohe',null,['yingbian_zhuzhan']],
['heart',2,'shan',null,['yingbian_kongchao','yingbian_draw']],
['heart',2,'shan',null,['yingbian_kongchao','yingbian_draw']],
['heart',2,'guohe',null,['yingbian_zhuzhan','yingbian_add']],
['heart',3,'wugu'],
['heart',3,'tao'],
['heart',3,'chuqibuyi',null,['yingbian_zhuzhan']],
['heart',3,'chuqibuyi'],
['heart',4,'sha','fire'],
['heart',4,'tao'],
['heart',4,'wugu'],
@ -834,7 +900,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['heart',9,'tao'],
['heart',9,'shan'],
['heart',9,'dongzhuxianji'],
['heart',10,'sha','fire',['yingbian_canqu']],
['heart',10,'sha','fire',['yingbian_kongchao','yingbian_damage']],
['heart',10,'sha'],
['heart',10,'sha'],
['heart',11,'sha'],
@ -844,24 +910,24 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['heart',12,'shan'],
['heart',12,'guohe'],
['heart',12,'shandian'],
['heart',13,'wuxie',null,['yingbian_kongchao']],
['heart',13,'wuxie',null,['yingbian_kongchao','yingbian_gain']],
['heart',13,'shan'],
['heart',13,'zhuahuang'],
['club',1,'juedou',null,['yingbian_fujia']],
['club',1,'juedou'],
['club',1,'zhuge'],
['club',1,'huxinjing'],
['club',2,'sha',null,['yingbian_kongchao']],
['club',2,'sha',null,['yingbian_kongchao','yingbian_add']],
['club',2,'heiguangkai'],
['club',2,'tengjia'],
['club',2,'renwang'],
['club',3,'sha',null,['yingbian_kongchao']],
['club',3,'sha',null,['yingbian_kongchao','yingbian_add']],
['club',3,'jiu'],
['club',3,'zhujinqiyuan',null,['yingbian_zhuzhan']],
['club',4,'sha',null,['yingbian_kongchao']],
['club',3,'zhujinqiyuan',null,['yingbian_zhuzhan','yingbian_add']],
['club',4,'sha',null,['yingbian_kongchao','yingbian_add']],
['club',4,'bingliang'],
['club',4,'zhujinqiyuan',null,['yingbian_zhuzhan']],
['club',5,'sha',null,['yingbian_kongchao']],
['club',4,'zhujinqiyuan',null,['yingbian_zhuzhan','yingbian_add']],
['club',5,'sha'],
['club',5,'sha','thunder'],
['club',5,'dilu'],
['club',6,'sha'],
@ -869,7 +935,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['club',6,'lebu'],
['club',7,'sha'],
['club',7,'sha','thunder'],
['club',7,'nanman'],
['club',7,'nanman',null,['yingbian_fujia','yingbian_remove']],
['club',8,'sha'],
['club',8,'sha','thunder'],
['club',8,'sha'],
@ -880,12 +946,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['club',10,'sha','thunder'],
['club',10,'tiesuo'],
['club',11,'sha'],
['club',11,'sha',null,['yingbian_canqu']],
['club',11,'sha',null,['yingbian_canqu','yingbian_add']],
['club',11,'tiesuo'],
['club',12,'wuxie'],
['club',12,'tianjitu'],
['club',12,'tiesuo'],
['club',13,'wuxie'],
['club',13,'wuxie',null,['yingbian_canqu','yingbian_draw']],
['club',13,'tongque'],
['club',13,'tiesuo'],
@ -893,13 +959,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['diamond',1,'zhuge'],
['diamond',1,'wuxinghelingshan'],
['diamond',2,'tao'],
['diamond',2,'shan',null,['yingbian_kongchao']],
['diamond',2,'shan',null,['yingbian_kongchao']],
['diamond',2,'shan',null,['yingbian_kongchao','yingbian_draw']],
['diamond',2,'shan',null,['yingbian_kongchao','yingbian_draw']],
['diamond',3,'tao'],
['diamond',3,'shan'],
['diamond',3,'shunshou'],
['diamond',4,'sha','fire',['yingbian_canqu']],
['diamond',4,'shan'],
['diamond',4,'sha','fire',['yingbian_kongchao','yingbian_damage']],
['diamond',4,'shan',null,['yingbian_canqu','yingbian_gain']],
['diamond',4,'shunshou'],
['diamond',5,'sha','fire'],
['diamond',5,'shan'],
@ -910,7 +976,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['diamond',7,'sha'],
['diamond',7,'shan'],
['diamond',7,'shan'],
['diamond',8,'sha',null,['yingbian_canqu']],
['diamond',8,'sha',null,['yingbian_canqu','yingbian_hit']],
['diamond',8,'shan'],
['diamond',8,'shan'],
['diamond',9,'sha'],

View File

@ -492,8 +492,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player==event.player||!player.getStorage('tenzen_yixing').length) return false;
return event.targets.length==1&&(event.card.name=='sha'||get.type(event.card)=='trick');
},
prompt:function(event){
return '获得武将牌上的一张“兴”,并于'+get.translation(event.card)+'结算完成后视为对'+get.translation(event.player)+'使用一张同名牌';
prompt2:function(event){
return '获得一张“兴”,且'+get.translation(event.card)+'结算完成后可以弃置两张牌,视为对'+get.translation(event.player)+'使用一张同名牌';
},
check:function(event,player){
if(!player.storage.tenzen_lingyu&&player.getStorage('tenzen_yixing').length<3) return false;
@ -517,17 +517,26 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.getParent().after.push(next);
next.player=player;
next.target=trigger.player;
next.setContent(function(){
next.setContent(lib.skill.tenzen_yixing.content_extra);
},
},
},
content_extra:function(){
'step 0'
var card=event.getParent().card;
card={
event.card={
name:card.name,
nature:card.nature,
isCard:true,
};
if(player.canUse(card,target,false)) player.useCard(card,target,false,'tenzen_yixing');
if(player.countCards('he')>1&&target&&target.isIn()&&player.canUse(event.card,target,false)){
player.chooseToDiscard('he',2,'是否弃置两张牌,视为对'+get.translation(target)+'使用'+get.translation(event.card)+'').set('ai',function(card){
return 5-get.value(card);
});
},
},
}
else event.finish();
'step 1'
if(result.bool) player.useCard(card,target,false,'tenzen_yixing');
},
},
tenzen_lingyu:{
@ -537,7 +546,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
skillAnimation:true,
animationColor:'water',
filter:function(event,player){
return player.getStorage('tenzen_yixing').length>1;
return player.getStorage('tenzen_yixing').length>=player.hp;
},
content:function(){
player.awakenSkill('tenzen_lingyu');
@ -550,7 +559,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tenzen_tianquan:{
trigger:{player:'useCardToPlayered'},
filter:function(event,player){
return (event.card.name=='sha'||event.card.name=='juedou')&&event.targets.length==1&&player.getStorage('tenzen_yixing').length>0;
return (event.card.name=='sha'||event.card.name=='juedou')&&event.targets.length==1&&player.getStorage('tenzen_yixing').length>1;
},
logTarget:'target',
usable:1,
@ -560,15 +569,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
//player.viewHandcards(trigger.target);
player.chooseButton(['选择移去张“兴”',player.storage.tenzen_yixing],true);
player.chooseButton(['选择移去张“兴”',player.storage.tenzen_yixing],true,2);
'step 1'
if(result.bool){
player.unmarkAuto('tenzen_yixing',result.links);
var cards=get.cards(5);
player.showCards(cards,get.translation(player)+'发动了【天全】');
game.cardsGotoOrdering(cards).relatedEvent=trigger.getParent();
game.log(player,'移去了',result.links[0]);
player.$throw(result.links[0],1500);
game.log(player,'移去了',result.links);
player.$throw(result.links,1500);
game.cardsDiscard(result.links);
//ui.cardPile.insertBefore(result.links[0],ui.cardPile.firstChild);
var num=cards.filter(function(card){
@ -14974,12 +14983,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
kyouko_gongmian_info:'①出牌阶段你可以选择一名未以此法选择过的角色若其手牌大于你你获得其一张牌然后交给其一张牌小于你其交给你一张牌然后你交给其一张牌等于你你与其各摸一张牌。②出牌阶段结束时你可以获得一名其他角色区域内的至多X张牌然后交给其等量的牌。③弃牌阶段开始时若X不小于你的体力值你可以获得一名手牌数少于你的角色的所有手牌然后将手牌数的一半向上取整交给该角色。X为你本回合内发动过〖共勉①〗的次数',
key_tenzen:'加纳天善',
tenzen_yixing:'弈兴',
tenzen_yixing_info:'当有角色因【杀】或【决斗】而受到伤害后,若其在你的攻击范围内或你在伤害来源的攻击范围内,你可以摸一张牌,然后将一张牌置于武将牌上,称为“兴”。当你成为其他角色使用【杀】或普通锦囊牌的唯一目标后,你可以获得一张“兴”,并于此牌结算完成后视为对其使用一张名称相同的牌。',
tenzen_yixing_info:'当有角色因【杀】或【决斗】而受到伤害后,若其在你的攻击范围内或你在伤害来源的攻击范围内,你可以摸一张牌,然后将一张牌置于武将牌上,称为“兴”。当你成为其他角色使用【杀】或普通锦囊牌的唯一目标后,你可以获得一张“兴”,并于此牌结算完成后弃置两张牌,视为对其使用一张名称相同的牌。',
//若对方为水织静久则无法触发〖弈兴〗
tenzen_lingyu:'领域',
tenzen_lingyu_info:'觉醒技,准备阶段,若你的“兴”超过一张则你减1点体力上限并获得技能〖天全〗。若你以此法失去了体力则你摸两张牌。',
tenzen_lingyu_info:'觉醒技,准备阶段,若你的“兴”不小于你的体力值则你减1点体力上限并获得技能〖天全〗。若你以此法失去了体力则你摸两张牌。',
tenzen_tianquan:'天全',
tenzen_tianquan_info:'每回合限一次,当你使用【杀】或【决斗】指定唯一目标后,你可以移去张“兴”并展示牌堆顶的五张牌。这些牌中每有一张基本牌,响应此牌需要的【闪】/【杀】的数量便+1。此牌结算完成后若此牌造成过伤害则你获得这些牌中的非基本牌。',
tenzen_tianquan_info:'每回合限一次,当你使用【杀】或【决斗】指定唯一目标后,你可以移去张“兴”并展示牌堆顶的五张牌。这些牌中每有一张基本牌,响应此牌需要的【闪】/【杀】的数量便+1。此牌结算完成后若此牌造成过伤害则你获得这些牌中的非基本牌。',
noname:"小无",
noname_zhuyuan:"祝愿",

View File

@ -6,10 +6,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
characterSort:{
mobile:{
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian"],
mobile_default:["miheng","taoqian","lingcao","sunru","lifeng","zhuling","liuye","zhaotongzhaoguang","majun","simazhao","wangyuanji","pangdegong","shenpei","hujinding","zhangyì","jiakui","yangbiao","chendeng","dongcheng","yangyi","dengzhi","zhengxuan","sp_sufei","furong","dingyuan","simashi","yanghuiyu","hucheer","gongsunkang","nanhualaoxian","zhouqun"],
mobile_yijiang:["yj_zhanghe","yj_zhangliao","yj_xuhuang","yj_ganning"],
mobile_shijizhi:["sp_wangcan","sp_chenzhen","sp_sunshao","sp_xunchen","luotong","sp_duyu","sp_bianfuren","feiyi"],
mobile_shijixin:['wujing','sp_mifuren','sp_xinpi'],
mobile_shijixin:['wujing','sp_mifuren','sp_xinpi','wangling','wangfuzhaolei','zhouchu','sp_kongrong'],
mobile_sunben:["re_sunben"],
mobile_standard:["xin_xiahoudun","xin_zhangfei"],
mobile_shenhua:["re_pangtong","re_guanqiujian","xin_yuanshao","re_liushan","re_dongzhuo","re_sp_zhugeliang","re_sunjian","re_dengai","re_jiangwei","re_zhurong"],
@ -18,6 +18,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
character:{
sp_kongrong:['male','qun',3,['spmingshi','splirang']],
zhouchu:['male','wu',4,['xianghai','chuhai']],
wangfuzhaolei:['male','shu',4,['xunyi']],
wangling:['male','wei',4,['mouli','zifu']],
zhouqun:['male','shu',3,['tiansuan']],
re_zhurong:['female','shu',4,['juxiang','relieren']],
re_jiangwei:['male','shu',4,['retiaoxin','zhiji']],
wujing:['male','wu',4,['heji']],
@ -106,6 +111,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_sunben:['male','wu',4,['jiang','rehunzi','zhiba'],['zhu']],
},
characterIntro:{
zhouchu:'周处236—297年字子隐吴郡阳羡今江苏宜兴人。西晋大臣、将领东吴鄱阳太守周鲂之子。少时纵情肆欲为祸乡里。后来改过自新拜访名人陆机和陆云浪子回头发奋读书留下“周处除三害”的传说拜东观左丞迁无难都督功业胜过父亲。吴国灭亡后出仕西晋拜新平太守转广汉太守治境有方。入为散骑常侍迁御史中丞刚正不阿。得罪梁孝王司马肜。元康七年出任建威将军前往关中讨伐氐羌齐万年叛乱遇害于沙场。追赠平西将军谥号为孝。',
wangfuzhaolei:'王甫—222年字国山广汉郪今四川三台县三国时期蜀汉重臣。刘璋时为益州书佐之后归降刘备先后担任绵竹令、荆州议曹从事并在夷陵之战中阵亡。其子王祐官至尚书右选郎。赵累蜀汉大将关羽部下都督。后来吴将吕蒙袭取荆州赵累被吴将潘璋等在临沮擒获。',
wangling:'王凌172年251年6月15日字彦云太原郡祁县今山西省祁县三国时期曹魏将领东汉司徒王允之侄。王凌出身太原王氏祁县房。举孝廉出身授发干县令迁中山太守。颇有政绩迁司空曹操掾属。魏文帝曹丕即位拜散骑常侍、兖州刺史。参加洞口之战跟从张辽击败吴将吕范加号建武将军封宜城亭侯。太和二年228年王凌参与石亭之战跟从曹休征伐东吴力挽狂澜历任扬豫二州刺史治境有方。齐王曹芳继位拜征东将军联合孙礼击败吴将全琮进封南乡侯授车骑将军、仪同三司正始九年248年代高柔为司空。嘉平元年249年代蒋济为太尉。嘉平三年251年不满太傅司马懿专擅朝政联合兖州刺史令狐愚谋立楚王曹彪为帝事泄自尽时年八十岁夷灭三族。',
zhouqun:'周群(生卒年不详),字仲直,巴西阆中(今四川阆中)人。周群年少时随父周舒学习占验天算之术。后来刘璋聘请周群为师友从事,其预言大多得以应验。刘备割据益州,任命周群为儒林校尉。曾劝说刘备攻汉中必定不利,事后得到应验,被举荐为茂才。',
dongzhao:'董昭156年236年7月4日字公仁济阴定陶今山东省菏泽市定陶区人。东汉末年曹魏谋士、重臣、开国元勋。董昭年轻时被举为孝廉后担任袁绍帐下参军。多有战功但是袁绍听信谗言董昭不得已离开袁绍投奔张杨。张杨率军迎接汉献帝时董昭随行并拜为议郎。后与曹操在洛阳相见又建议曹操将汉献帝迎接到许昌。董昭自此成为曹操的谋士。建安年间198年历任河南尹、冀州牧、徐州牧、魏郡太守等职多有功劳深受曹操器重。曹操受封魏公、魏王的谋划都是出自董昭之手。曹丕继魏王位后董昭任将作大匠。曹丕称帝后升任大鸿胪。此后先后担任侍中、太常、光禄大夫、太仆等重要职位。魏明帝曹叡即位后转任卫尉。太和六年232年升任司徒。青龙四年236年时年八十一谥曰定。',
wujing:'吴景本吴郡吴县今江苏苏州后迁居吴郡钱塘今浙江杭州孙坚妻子吴夫人武烈皇后之弟孙策和孙权的舅舅东汉末年将领。吴景因追随孙坚征伐有功被任命为骑都尉。袁术上表举荐吴景兼任丹杨太守讨伐前任太守周昕占据丹杨。后遭扬州刺史刘繇逼迫再度依附袁术袁术任用他为督军中郎将与孙贲共同进击樊能等人。又在秣陵攻打笮融、薛礼。袁术与刘备争夺徐州时任吴景为广陵太守。建安二年197年吴景放弃广陵东归孙策孙策任他为丹杨太守。朝廷使者吴景为扬武将军郡守之职照旧。建安八年203年吴景死于任上。',
nanhualaoxian:'南华老仙,是古典小说《三国演义》中的虚拟人物。其原型来自道教典籍中对庄子的封号,又称“南华仙人”、“南华真人”等。在古典小说《三国演义》通行本的第一回中,描述了南华老仙将《太平要术》赠送给张角的情节。',
@ -167,13 +176,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
ly_piliche:{
fullskin:true,
vanish:true,
//vanish:true,
derivation:'liuye',
type:'equip',
subtype:'equip1',
distance:{attackFrom:-8},
skills:['ly_piliche'],
destroy:'polu'
//destroy:'polu'
},
"wolong_card":{
type:"takaramono",
@ -343,6 +352,632 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
spmingshi:{
audio:2,
trigger:{player:'damageEnd'},
forced:true,
logTarget:'source',
filter:function(event,player){
return event.source&&player!=event.source&&event.source.countCards('he')>0;
},
content:function(){
'step 0'
event.count=trigger.num;
'step 1'
event.count--;
trigger.source.chooseToDiscard('he',true);
'step 2'
if(event.count>0&&result.bool&&lib.skill.spmingshi.filter(trigger,player)) event.goto(1);
},
ai:{
threaten:0.8,
maixie:true,
maixie_defend:true,
},
},
splirang:{
enable:'phaseUse',
usable:1,
filter:function(event,player){
var hs=player.getCards('h');
if(!hs.length) return false;
for(var i of hs){
if(!lib.filter.cardDiscardable(i,player,'splirang')) return false;
}
return true;
},
filterCard:true,
selectCard:-1,
content:function(){
'step 0'
cards=cards.filterInD('d');
if(!cards.length||player.hp<1) event.goto(3);
else player.chooseButton(['将任意张牌交给一名其他角色',cards],[1,Math.min(cards.length,player.hp)]).set('ai',function(button){
return get.value(button.link);
});
'step 1'
if(result.bool){
event.cards=result.links;
player.chooseTarget(true,'令一名角色获得'+get.translation(event.cards),lib.filter.notMe).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(target.hasSkillTag('nogain')) att/=10;
if(target.hasJudge('lebu')) att/=5;
return att;
});
}
else event.goto(3);
'step 2'
if(result.targets&&result.targets.length){
var target=result.targets[0];
player.line(target,'green');
target.gain(cards,'gain2');
}
'step 3'
player.draw();
},
ai:{
order:0.1,
result:{
player:function(player){
var hs=player.getCards('h');
if(hs.length<=player.hp&&game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0&&!current.hasJudge('lebu')&&!current.hasSkillTag('nogain');
})) return 1;
if(get.value(hs,player)<6) return 1;
return 0;
},
},
},
},
xianghai:{
audio:2,
global:'xianghai_g',
mod:{
cardname:function(card){
if(get.type(card,null,false)=='equip') return 'jiu';
},
},
ai:{
threaten:2,
},
},
xianghai_g:{
mod:{
maxHandcard:function(player,num){
return num-game.countPlayer(function(current){
return current!=player&&current.hasSkill('xianghai');
});
},
},
},
chuhai:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return !player.hasSkillTag('noCompareSource');
},
filterTarget:function(card,player,target){
return target!=player&&target.countCards('h')>0&&
!target.hasSkillTag('noCompareTarget');
},
content:function(){
'step 0'
player.draw();
'step 1'
if(player.canCompare(target)) player.chooseToCompare(target);
else event.finish();
'step 2'
if(result.bool){
player.storage.chuhai2=target;
player.addTempSkill('chuhai2','phaseUseEnd');
if(target.countCards('h')>0){
player.viewHandcards(target);
var types=[],cards=[],hs=target.getCards('h');
for(var i of hs){
types.add(get.type2(i,target));
}
for(var i of types){
var card=get.cardPile(function(card){
return get.type2(card,false)==i;
});
if(card) cards.push(card);
}
if(cards.length) player.gain(cards,'gain2','log');
}
}
},
ai:{
order:9,
result:{
target:function(player,target){
if(player.countCards('hs',function(card){
return get.tag(card,'damage')>0&&player.canUse(card,target,null,true)&&
get.effect(target,card,player,player)>0&&player.hasValueTarget(card,null,true);
})>0) return -3;
return -1;
},
},
},
},
chuhai2:{
trigger:{source:'damageSource'},
forced:true,
charlotte:true,
onremove:true,
filter:function(event,player){
if(event.player!=player.storage.chuhai2) return false;
for(var i=1;i<6;i++){
if(player.isEmpty(i)) return true;
}
return false;
},
content:function(){
for(var i=1;i<7;i++){
if(player.isEmpty(i)){
var sub='equip'+i,card=get.cardPile(function(card){
return get.subtype(card,false)==sub&&!get.cardtag(card,'gifts');
});
if(card){
player.$gain2(card);
game.delayx();
player.equip(card);
break;
}
}
}
},
},
xunyi:{
audio:2,
trigger:{
global:['gameDrawAfter','dieAfter'],
player:'enterGame',
},
direct:true,
filter:function(event,player){
if(event.name=='die') return event.player==player.storage.xunyi2;
return !player.storage.xunyi2;
},
content:function(){
'step 0'
player.removeSkill('xunyi2');
player.chooseTarget(lib.filter.notMe,get.prompt2('xunyi')).set('ai',function(target){
var player=_status.event.player;
return Math.max(1+get.attitude(player,target)*get.threaten(target),Math.random());
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('xunyi',target);
player.storage.xunyi2=target;
player.addSkill('xunyi2');
}
},
},
xunyi2:{
audio:'xunyi',
trigger:{global:'damageSource'},
forced:true,
charlotte:true,
filter:function(event,player){
var list=[player,player.storage.xunyi2];
return list.contains(event.source)&&!list.contains(event.player);
},
logTarget:function(event,player){
return player.storage.xunyi2;
},
content:function(){
(player==trigger.source?player.storage.xunyi2:player).draw();
},
group:'xunyi3',
mark:true,
intro:{content:'效果目标:$'},
},
xunyi3:{
audio:'xunyi',
trigger:{global:'damageEnd'},
forced:true,
charlotte:true,
filter:function(event,player){
var list=[player,player.storage.xunyi2];
return list.contains(event.player)&&!list.contains(event.source)&&
(player==event.player?player.storage.xunyi2:player).countCards('he')>0;
},
logTarget:function(event,player){
return player.storage.xunyi2;
},
content:function(){
(player==trigger.player?player.storage.xunyi2:player).chooseToDiscard('he',true);
},
},
mouli:{
audio:2,
enable:'phaseUse',
usable:1,
filter:function(event,player){
return player.countCards('h')>0;
},
filterCard:true,
position:'h',
filterTarget:lib.filter.notMe,
discard:false,
lose:false,
delay:false,
check:function(card){
return 8-get.value(card);
},
content:function(){
target.gain(cards,player,'giveAuto');
if(!target.storage.mouli2) target.storage.mouli2=[];
if(!target.storage.mouli3) target.storage.mouli3=[];
target.storage.mouli2.add(player);
target.storage.mouli3.push(player);
target.addSkill('mouli_effect');
},
ai:{
threaten:1.2,
order:4,
result:{
target:1,
},
},
subSkill:{
effect:{
trigger:{player:'useCard'},
forced:true,
charlotte:true,
filter:function(event,player){
if(event.card.name!='sha'&&event.card.name!='shan') return false;
for(var i of player.storage.mouli3){
if(i.isIn()) return true;
}
return false;
},
logTarget:function(event,player){
return player.storage.mouli3;
},
content:function(){
'step 0'
game.delayx();
player.storage.mouli3.sortBySeat();
if(player.storage.mouli3.length==1){
player.storage.mouli3[0].draw(3);
player.storage.mouli3.length=0;
event.finish();
}
else game.asyncDraw(player.storage.mouli3,3);
'step 1'
player.storage.mouli3.length=0;
game.delayx();
},
group:['mouli_sha','mouli_shan','mouli_clear'],
mark:true,
intro:{
content:'已因$获得“谋立”效果',
},
},
sha:{
enable:'chooseToUse',
viewAs:{name:'sha'},
filterCard:{color:'black'},
position:'he',
prompt:'将一张黑色牌当做杀使用',
check:function(card){
return 6-get.value(card);
},
viewAsFilter:function(player){
return player.countCards('he',{color:'black'})>0;
},
ai:{
respondSha:true,
skillTagFilter:function(player){
return player.countCards('he',{color:'black'})>0;
},
},
},
shan:{
enable:'chooseToUse',
viewAs:{name:'shan'},
filterCard:{color:'red'},
position:'he',
prompt:'将一张红色牌当做闪使用',
check:function(card){
return 7-get.value(card);
},
viewAsFilter:function(player){
return player.countCards('he',{color:'red'})>0;
},
ai:{
respondShan:true,
skillTagFilter:function(player){
return player.countCards('he',{color:'red'})>0;
},
},
},
clear:{
trigger:{global:['phaseBegin','dieAfter']},
forced:true,
silent:true,
popup:false,
lastDo:true,
forceDie:true,
filter:function(event,player){
if(event.name=='die'&&player==event.player) return true;
return player.storage.mouli2.contains(event.player);
},
content:function(){
if(trigger.name=='die'&&player==trigger.player){
player.removeSkill('mouli_effect');
delete player.storage.mouli2;
delete player.storage.mouli3;
return;
}
player.storage.mouli2.remove(trigger.player);
while(player.storage.mouli3.contains(trigger.player)) player.storage.mouli3.remove(trigger.player);
if(!player.storage.mouli2.length) player.removeSkill('mouli_effect');
},
},
},
},
zifu:{
audio:2,
trigger:{global:'dieAfter'},
forced:true,
filter:function(event,player){
return event.player.storage.mouli2&&event.player.storage.mouli2.contains(player);
},
content:function(){
player.loseMaxHp(2);
},
ai:{
combo:'mouli',
neg:true,
},
},
tiansuan:{
audio:2,
enable:'phaseUse',
filter:function(event,player){
return !player.storage.tiansuan2;
},
content:function(){
'step 0'
player.chooseControl('上上签','上签','中签','下签','下下签','cancel2').set('prompt','天算:是否增加其中一个命运签的权重?').set('ai',function(){
return Math.random()<0.5?0:4;
});
'step 1'
var list=[0,1,1,2,2,2,3,3,4];
if(result.control!='cancel2') list.push(result.index);
var num=list.randomGet();
event.num=num;
var str=get.translation(player)+'抽取的命运签为:'+lib.skill['tiansuan2_'+num].name;
game.log(player,'抽取出了','#g'+lib.skill['tiansuan2_'+num].name);
event.dialog=ui.create.dialog(str);
event.videoId=lib.status.videoId++;
game.broadcast('createDialog',event.videoId,str);
game.pause();
setTimeout(function(){
game.resume();
},1500);
'step 2'
event.dialog.close();
game.broadcast('closeDialog',event.videoId);
player.chooseTarget(true,'令一名角色获得“'+lib.skill['tiansuan2_'+num].name+'”').set('ai',lib.skill['tiansuan2_'+num].aiCheck);
'step 3'
if(result.bool){
var target=result.targets[0];
player.line(target,'green');
game.log(player,'令',target,'获得了命运签');
player.storage.tiansuan2=target;
player.storage.tiansuan3='tiansuan2_'+num;
player.addTempSkill('tiansuan2',{player:'phaseBegin'});
target.addSkill('tiansuan2_'+num);
if(num<2&&target.countGainableCards(player,target==player?'e':'he')>0){
var next=player.gainPlayerCard(target,target==player?'e':'he',true);
if(num==0) next.visible=true;
}
else game.delayx();
}
},
derivation:'tiansuan_faq',
ai:{
order:7,
result:{
player:1,
},
},
},
tiansuan2:{
charlotte:true,
onremove:function(player,skill){
if(player.storage.tiansuan2) player.storage.tiansuan2.removeSkill(player.storage.tiansuan3);
delete player.storage.tiansuan2;
delete player.storage.tiansuan3;
},
},
tiansuan2_0:{
name:'上上签',
trigger:{player:'damageBegin4'},
forced:true,
charlotte:true,
content:function(){
trigger.cancel();
},
mark:true,
intro:{
content:'当你受到伤害时,防止此伤害。',
},
aiCheck:function(target){
if(target.hasSkill('tiansuan2_0')) return 0;
var player=_status.event.player;
var att=get.attitude(player,target);
if(target.countCards('e',function(card){
return get.value(card,target)<=0;
})) att*=2;
return att/Math.sqrt(Math.max(1,target.hp));
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')&&!player.hasSkillTag('jueqing',false,target)) return 'zerotarget';
}
},
},
},
tiansuan2_1:{
name:'上签',
trigger:{player:'damageBegin4'},
forced:true,
charlotte:true,
filter:function(event,player){
return event.num>1;
},
content:function(){
trigger.num=1;
},
group:'tiansuan2_damage',
mark:true,
intro:{
content:'当你受到伤害时你令伤害值改为1当你受到1点伤害后你摸一张牌。',
},
aiCheck:function(target){
if(target.hasSkill('tiansuan2_1')) return 0;
var player=_status.event.player;
var att=get.attitude(player,target);
if(target.countCards('e',function(card){
return get.value(card,target)<=0;
})) att*=2;
if(target.hp==1) return att/2;
return att/Math.sqrt(Math.max(1,target.hp));
},
ai:{
filterDamage:true,
skillTagFilter:function(player,tag,arg){
if(arg&&arg.player){
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
}
},
effect:{
target:function(card,player,target,current){
if(target&&target.hp>1&&get.tag(card,'damage')&&!player.hasSkillTag('jueqing',false,target)) return 0.8;
}
},
},
},
tiansuan2_damage:{
trigger:{player:'damageEnd'},
charlotte:true,
content:function(){
player.draw(trigger.num);
},
},
tiansuan2_2:{
name:'中签',
trigger:{player:'damageBegin4'},
forced:true,
charlotte:true,
filter:function(event,player){
return event.num>1;
},
content:function(){
trigger.num=1;
},
mark:true,
intro:{
content:'当你受到伤害时你令伤害属性改为火属性并将伤害值改为1。',
},
aiCheck:function(target){
if(target.hasSkill('tiansuan2_2')) return 0;
var player=_status.event.player;
target.addSkill('tiansuan2_ai');
var num=get.damageEffect(target,player,player,'fire');
target.removeSkill('tiansuan2_ai');
return num;
},
group:['tiansuan2_fire','tiansuan2_ai'],
},
tiansuan2_ai:{
ai:{
filterDamage:true,
skillTagFilter:function(player,tag,arg){
if(arg&&arg.player){
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
}
},
},
},
tiansuan2_fire:{
trigger:{player:'damageBefore'},
forced:true,
charlotte:true,
filter:function(event,player){
return event.nature!='fire';
},
content:function(){
trigger.nature='fire';
},
},
tiansuan2_3:{
name:'下签',
trigger:{player:'damageBegin3'},
forced:true,
charlotte:true,
content:function(){
trigger.num++;
},
mark:true,
intro:{
content:'当你受到伤害时,你令此伤害+1。',
},
aiCheck:function(target){
if(target.hasSkill('tiansuan2_3')) return 0;
var player=_status.event.player;
var att=get.attitude(player,target);
return -att/Math.sqrt(Math.max(1,target.hp));
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')&&!player.hasSkillTag('jueqing',false,target)&&current<0) return 1.3;
}
},
},
},
tiansuan2_4:{
name:'下下签',
trigger:{player:'damageBegin3'},
forced:true,
charlotte:true,
content:function(){
trigger.num++;
},
mod:{
cardEnabled:function(card,player){
if(card.name=='tao'||card.name=='jiu') return false;
},
cardSavable:function(card,player){
if(card.name=='tao'||card.name=='jiu') return false;
},
},
mark:true,
intro:{
content:'当你受到伤害时,你令此伤害+1。你不能使用【酒】或【桃】。',
},
aiCheck:function(target){
if(target.hasSkill('tiansuan2_4')) return 0;
var player=_status.event.player;
var att=get.attitude(player,target);
return -att/Math.sqrt(Math.max(1,target.hp));
},
ai:{
effect:{
target:function(card,player,target,current){
if(get.tag(card,'damage')&&!player.hasSkillTag('jueqing',false,target)&&current<0) return 1.3;
}
},
},
},
relieren:{
shaRelated:true,
audio:2,
@ -7609,39 +8244,61 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
polu:{
audio:2,
trigger:{player:['phaseZhunbeiBegin','damageEnd']},
trigger:{player:'phaseZhunbeiBegin'},
forced:true,
filter:function(event,player){
if(!lib.inpile.contains('ly_piliche')) return true;
return !!get.cardPile(function(card){
return card.name=='ly_piliche';
});
},
content:function(){
var card;
if(!lib.inpile.contains('ly_piliche')){
card=game.createCard2('ly_piliche','diamond',1);
lib.inpile.push('ly_piliche');
}
else card=get.cardPile(function(card){
return card.name=='ly_piliche';
});
player.chooseUseTarget(card,true,'nopopup');
},
group:'polu_damage',
subSkill:{
damage:{
trigger:{player:'damageEnd'},
forced:true,
filter:function(event,player){
return !player.getEquip('ly_piliche');
},
content:function(){
if(trigger.name=='phaseZhunbei'){
player.useCard(game.createCard('ly_piliche','diamond',1),player);
}
else{
player.draw(trigger.num);
}
}
'step 0'
event.count=trigger.num;
'step 1'
event.count--;
player.draw();
'step 2'
var card=get.cardPile2(function(card){
return get.subtype(card,false)=='equip1'&&player.canUse(card,player);
});
if(card) player.chooseUseTarget(card,true,'nopopup');
'step 3'
if(event.count>0&&!player.getEquip('ly_piliche')) event.goto(1);
},
},
},
},
ly_piliche:{
trigger:{source:'damageSource'},
check:function(event,player){
return get.attitude(player,event.player)<0;
return get.attitude(player,event.player)*get.value(event.player.getDiscardableCards(player,'e'),event.player)>0;
},
filter:function(event,player){
if(event.card&&get.type(event.card)=='delay') return false;
return event.player.isIn()&&(event.player.getEquip(2)||event.player.getEquip(3));
return player!=event.player&&event.player.countDiscardableCards(player,'e')>0;
},
logTarget:'player',
content:function(){
var equip2=trigger.player.getEquip(2);
var equip3=trigger.player.getEquip(3);
var cards=[];
if(equip2) cards.push(equip2);
if(equip3) cards.push(equip3);
if(cards.length){
trigger.player.discard(cards);
}
player.discardPlayerCard(trigger.player,'e',true,trigger.player.countCards('e'));
}
},
xinzhilve:{
@ -8201,7 +8858,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ly_piliche:'霹雳车',
ly_piliche_info:'当你对其他角色造成伤害后,若造成伤害的牌不为延时锦囊牌,你可以弃置其装备区里的防具牌与+1坐骑牌当你失去此装备时销毁之。',
polu:'破橹',
polu_info:'锁定技,回合开始时,若你的装备区里没有【霹雳车】你使用之当你受到1点伤害后若你的装备区里没有【霹雳车】你摸一张牌。',
polu_info:'锁定技,回合开始时,若【霹雳车】未加入游戏或在牌堆/弃牌堆内你使用之当你受到1点伤害后若你的装备区里没有【霹雳车】你摸一张牌并使用牌堆中的一张随机武器牌。',
choulve:'筹略',
choulve_info:'出牌阶段开始时,你可以令一名其他角色交给你一张牌,若其如此做,视为你使用上一张对你过造成伤害且不为延时锦囊牌的牌。',
tunchu:'屯储',
@ -8666,12 +9323,44 @@ game.import('character',function(lib,game,ui,get,ai,_status){
spchijie_info:'每回合限一次。当你成为其他角色使用牌的唯一目标时你可判定。若结果大于6则你取消此牌的所有目标。',
reduoji:'夺冀',
reduoji_info:'出牌阶段限一次,你可将一张牌置于其他角色的武将牌上,称为“冀”。当有装备牌因使用而进入一名角色的装备区后,若该角色有“冀”且其为使用者,则你获得此装备牌,其移去一个“冀”并摸一张牌。一名其他角色的回合结束后,若其有“冀”,则你获得其的所有“冀”。',
re_jiangwei:'姜维',
re_jiangwei:'手杀姜维',
retiaoxin:'挑衅',
retiaoxin_info:'出牌阶段限一次,你可以指定一名有牌的其他角色,该角色需对你使用一张【杀】,否则你弃置其一张牌。',
re_zhurong:'祝融',
re_zhurong:'手杀祝融',
relieren:'烈刃',
relieren_info:'当你使用【杀】指定目标后,你可以和目标角色进行拼点。若你赢,你获得其一张牌。若你没赢,你获得对方的拼点牌,其获得你的拼点牌。',
zhouqun:'周群',
tiansuan:'天算',
tiansuan_info:'出牌阶段限一次,若场上没有因你产生的“命运签”,则你可以抽取一张“命运签”,然后令一名角色获得“命运签”直到你的下回合开始。若你以此法抽取的“命运签”为:上上签,你观看其手牌;上上签/上签,你获得其区域内的一张牌。',
tiansuan_faq:'【命运签】说明',
tiansuan_faq_info:'当你抽取“命运签”时,你可以令其中一种命运签的权重+1。<br>上上签权重1当你受到伤害时防止此伤害。<br>上签权重2当你受到伤害时你令伤害值改为1当你受到1点伤害后你摸一张牌。<br>中签权重3当你受到伤害时你令伤害属性改为火属性并将伤害值改为1。<br>下签权重2当你受到伤害时你令此伤害+1。<br>下下签权重1当你受到伤害时你令此伤害+1。你不能使用【酒】或【桃】。',
tiansuan2_0:'命运签',
tiansuan2_1:'命运签',
tiansuan2_2:'命运签',
tiansuan2_damage:'命运签',
tiansuan2_fire:'命运签',
tiansuan2_3:'命运签',
tiansuan2_4:'命运签',
wangling:'王凌',
mouli:'谋立',
mouli_info:'出牌阶段限一次,你可以将一张手牌交给一名其他角色,其获得如下效果直到你的下回合开始:其可以将黑色牌当做【杀】,红色牌当做【闪】使用。其第一次触发“使用【杀】/【闪】结算完成后”的时机时,你摸三张牌。',
zifu:'自缚',
zifu_info:'锁定技当有角色死亡时若其因你获得的“谋立”效果未过期则你减2点体力上限。',
wangfuzhaolei:'王甫赵累',
xunyi:'殉义',
xunyi2:'殉义',
xunyi3:'殉义',
xunyi_info:'游戏开始时,或当上一个拥有“殉义”效果的角色死亡后,你可以选择一名角色获得如下效果:当其/你对二者之外的角色造成伤害后,你/其摸一张牌;当其/你受到二者之外的角色造成的伤害后,你/其弃置一张牌。',
zhouchu:'周处',
xianghai:'乡害',
xianghai_info:'锁定技,其他角色的手牌上限-1。你手牌区的装备牌均视为【酒】。',
chuhai:'除害',
chuhai_info:'出牌阶段限一次,你可以摸一张牌,然后和一名其他角色拼点。若你赢,则你观看其手牌,并从牌堆/弃牌堆中获得其手牌中包含的类型的牌各一张,且当你于此阶段内对其造成伤害后,你将牌堆/弃牌堆中的一张装备牌置于你的一个空置装备栏内。',
sp_kongrong:'孔融',
spmingshi:'名士',
spmingshi_info:'锁定技当你受到1点伤害后伤害来源弃置一张牌。',
splirang:'礼让',
splirang_info:'出牌阶段限一次你可以弃置所有手牌然后将其中的至多X张牌交给一名其他角色X为你的体力值之后摸一张牌。',
mobile_standard:'手杀异构·标准包',
mobile_shenhua:'手杀异构·神话再临',

View File

@ -472,6 +472,8 @@ window.noname_character_rank={
'ns_zhangning',
'huangchengyan',
'zhongyan',
'wangling',
'zhouchu',
],
bp:[
'chess_diaochan',
@ -680,6 +682,8 @@ window.noname_character_rank={
'shen_guojia',
'ol_jiangwei',
'key_tenzen',
'jsp_liubei',
'liangxing',
],
b:[
'diy_feishi',
@ -861,6 +865,7 @@ window.noname_character_rank={
'shibao',
'zhangmiao',
'ol_zhurong',
'sp_kongrong',
],
bm:[
'diy_xizhenxihong',
@ -1009,6 +1014,7 @@ window.noname_character_rank={
'sp_fuwan',
're_chengpu',
're_niujin',
'wangfuzhaolei',
],
c:[
'xiahoudun',
@ -1350,6 +1356,7 @@ window.noname_character_rank={
'jin_yanghuiyu',
'xiahoujie',
'ruanyu',
'zhouqun',
'ns_chentai',
'ns_huangwudie',
'ns_sunyi',
@ -1672,6 +1679,9 @@ window.noname_character_rank={
'ol_jiangwei',
'ol_zhurong',
'huangchengyan',
'liangxing',
'wangling',
'zhouchu',
],
junk:[
'sunshao',

View File

@ -351,7 +351,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
//界曹彰
xinjiangchi:{
trigger:{player:'phaseDrawEnd'},
trigger:{player:'phaseUseBegin'},
direct:true,
content:function(){
'step 0'
@ -362,9 +362,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.countCards('he',function(card){
return lib.filter.cardDiscardable(card,player,'xinjiangchi')>0;
})>0) list.push('弃置一张牌,本回合可以多使用一张【杀】且无距离限制');
player.chooseControl('cancel2').set('prompt',get.prompt('xinjiangchi')).set('choiceList',list);
player.chooseControl('cancel2').set('prompt',get.prompt('xinjiangchi')).set('choiceList',list).set('ai',function(){
var player=_status.event.player;
if(!player.countCards('hs',function(card){
return get.name(card)=='sha'&&player.hasValueTarget(card,false);
})) return 1;
return 0;
});
'step 1'
if(result.control!='cancel2'){
player.logSkill('xinjiangchi');
switch(result.index){
case 0:{
player.draw();
@ -9536,7 +9543,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ollihuo4:'疠火',
ollihuo_info:'你使用普通的【杀】可以改为火【杀】若此【杀】造成过伤害你失去1点体力你使用火【杀】可以多选择一个目标。你每回合使用的第一张牌如果是【杀】则此【杀】结算完毕后可置于你的武将牌上。',
xinjiangchi:'将驰',
xinjiangchi_info:'摸牌阶段结束时,你可选择:①摸一张牌。②摸两张牌,然后本回合内不能使用或打出【杀】。③弃置一张牌,然后本回合内可以多使用一张【杀】,且使用【杀】无距离限制。',
xinjiangchi_info:'出牌阶段开始时,你可选择:①摸一张牌。②摸两张牌,然后本回合内不能使用或打出【杀】。③弃置一张牌,然后本回合内可以多使用一张【杀】,且使用【杀】无距离限制。',
re_chenqun:'界陈群',
redingpin:'定品',
redingpin_info:'出牌阶段,你可以弃置一张本回合未使用过/弃置过的类型的牌并选择一名角色。其进行判定若结果为黑色其摸X张牌X为其体力值且至多为3且本回合内不能再成为〖定品〗的目标红桃你令此次弃置的牌不计入〖定品〗弃置牌合法性的检测方片你将武将牌翻面。',

View File

@ -10,8 +10,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zhongdan:["cuiyan","huangfusong"],
sp_star:["sp_xiahoushi","jsp_zhaoyun","huangjinleishi","sp_pangtong","sp_daqiao","sp_ganning","sp_xiahoudun","sp_lvmeng","sp_zhangfei","sp_liubei"],
sp_sticker:['sp_gongsunzan','sp_simazhao','sp_wangyuanji','sp_xinxianying','sp_liuxie'],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan"],
sp_guozhan2:["mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","kongrong","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","huaxin","luyusheng","zongyu"],
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","luyusheng"],
sp_guozhan2:["mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","huaxin","zongyu"],
//sp_single:["niujin"],
sp_others:["hanba","caiyang"],
},
@ -139,7 +139,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jiangfei:['male','shu',3,['reshengxi','shoucheng']],
jiangqing:['male','wu',4,['shangyi','zniaoxiang']],
hetaihou:['female','qun',3,['zhendu','qiluan']],
kongrong:['male','qun',3,['lirang','mingshi']],
//kongrong:['male','qun',3,['lirang','mingshi']],
dingfeng:['male','wu',4,['reduanbing','refenxun']],
//bianfuren:['female','wei',3,['wanwei','yuejian']],
shamoke:['male','shu',4,['gzjili']],
@ -1242,7 +1242,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
logTarget:'player',
usable:1,
filter:function(event,player){
if(player==event.player||get.color(event.card)!='black'||event.player.isDead()) return false;
var color=get.color(event.card);
if(player==event.player||event.player.isDead()||(get.mode()=='guozhan'&&color!='black')) return false;
var type=get.type(event.card);
return type=='basic'||type=='trick';
},
@ -1252,42 +1253,49 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
trigger.player.chooseControl().set('choiceList',[
'本回合内不能再使用黑色牌',
'本回合内不能再使用'+get.translation(get.color(trigger.card))+'牌',
'令'+get.translation(trigger.card)+'对'+get.translation(player)+'无效',
]).set('prompt',get.translation(player)+'发动了【贞特】,请选择一项').set('ai',function(){
var player=_status.event.player;
var target=_status.event.getParent().player;
var card=_status.event.getTrigger().card;
var card=_status.event.getTrigger().card,color=get.color(card);
if(get.effect(target,card,player,player)<=0) return 1;
var hs=player.countCards('h',function(card){
return get.color(card,player)=='black'&&player.hasValueTarget(card,null,true);
return get.color(card,player)==color&&player.hasValueTarget(card,null,true);
});
if(!hs.length) return 0;
if(hs>1) return 1;
return Math.random()>0.5?0:1;
});
'step 1'
if(result.index==0) trigger.player.addTempSkill('zhente2');
if(result.index==0){
trigger.player.addTempSkill('zhente2');
trigger.player.storage.zhente2.add(get.color(trigger.card));
trigger.player.markSkill('zhente2');
}
else trigger.excluded.add(player);
},
},
zhente2:{
mod:{
cardEnabled:function(card){
if(get.color(card)=='black') return false;
cardEnabled:function(card,player){
if(player.getStorage('zhente2').contains(get.color(card))) return false;
},
cardSavable:function(card){
if(get.color(card)=='black') return false;
cardSavable:function(card,player){
if(player.getStorage('zhente2').contains(get.color(card))) return false;
},
},
mark:true,
charlotte:true,
intro:{content:'本回合内不能使用黑色牌'},
onremove:true,
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
},
intro:{content:'本回合内不能使用$牌'},
},
zhiwei:{
audio:2,
trigger:{
player:['enterGame','showCharacterAfter'],
player:['enterGame','showCharacterAfter','phaseBegin'],
global:['gameDrawAfter'],
},
direct:true,
@ -4022,7 +4030,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"phaseUseBegin",
},
intro:{
content:"本局游戏内已失去过#张装备区内的牌",
content:"本局游戏内已失去过#张装备牌",
},
frequent:true,
sync:function(player){
@ -17247,10 +17255,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
luyusheng:'陆郁生',
zhente:'贞特',
zhente2:'贞特',
zhente_info:'每回合限一次当你成为其他角色使用黑色基本牌或黑色普通锦囊牌的目标后你可令使用者选择一项1.本回合不能再使用黑色牌2.此牌对你无效。 ',
zhente_info:'每回合限一次当你成为其他角色使用基本牌或普通锦囊牌的目标后你可令使用者选择一项1.本回合不能再使用与此牌颜色相同的牌2.此牌对你无效。 ',
zhente_info_guozhan:'每回合限一次当你成为其他角色使用黑色基本牌或黑色普通锦囊牌的目标后你可令使用者选择一项1.本回合不能再使用黑色牌2.此牌对你无效。 ',
zhiwei:'至微',
zhiwei2:'至微',
zhiwei_info:'游戏开始时,你选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。',
zhiwei_info:'游戏开始时/你的回合开始时若场上没有因此法被选择过的角色存活,则你选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。',
zhiwei_info_guozhan:'你明置此武将牌时,选择一名其他角色。该角色造成伤害后,你摸一张牌,该角色受到伤害后,你随机弃置一张手牌。你弃牌阶段弃置的牌均被该角色获得。该角色死亡时,若你的两个武将牌均明置,你暗置此武将牌。 ',
zhuixi:'追袭',
zhuixi_info:'锁定技,你使用【杀】的次数上限+1。',

View File

@ -4,10 +4,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2',
connect:true,
character:{
jsp_liubei:['male','qun',4,['jsprende']],
duanwei:['male','qun',4,['langmie']],
re_niujin:['male','wei',4,['recuorui','reliewei']],
zhangmiao:['male','qun',4,['mouni','zongfan']],
liangxing:['male','qun',4,['lulve','lxzhuixi'],['unseen']],
liangxing:['male','qun',4,['lulve','lxzhuixi']],
ruanyu:['male','wei',3,['xingzuo','miaoxian']],
xiahoujie:['male','wei',5,['liedan','zhuangdan']],
caosong:['male','wei',4,['cslilu','csyizheng']],
@ -87,7 +88,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
characterSort:{
sp2:{
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi"],
sp_whlw:["xurong","lijue","zhangji","fanchou","guosi","duanwei","liangxing"],
sp_zlzy:["zhangqiying","lvkai","zhanggong","weiwenzhugezhi","beimihu"],
sp_longzhou:["xf_tangzi","xf_huangquan","xf_sufei","sp_liuqi"],
sp_zizouqi:["mangyachang","xugong","zhangchangpu"],
@ -97,15 +98,172 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui','liubian'],
sp_fadong:['ol_dingyuan','wangrong','re_quyi','hanfu'],
sp_xuzhou:['re_taoqian','caosong'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','zhaozhong','ruanyu','liangxing','zhangmiao','re_niujin','duanwei'],
sp_xuzhou:['re_taoqian','caosong','zhangmiao'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','re_xinxianying','dongxie','guozhao','fanyufeng','zhaozhong','ruanyu','liangxing','re_niujin'],
sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"],
sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
sp_yongjian:["ns_chendao","yj_caoang"],
sp_s:["ns_jiaxu","ns_caoanmin"],
sp_s:["ns_jiaxu","ns_caoanmin","jsp_liubei"],
}
},
skill:{
jsprende:{
audio:'rerende',
enable:'phaseUse',
filterCard:true,
selectCard:[1,Infinity],
discard:false,
lose:false,
delay:false,
filterTarget:function(card,player,target){
return player!=target;
},
onremove:true,
check:function(card){
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du') return 0;
if(!ui.selected.cards.length&&card.name=='du') return 20;
var player=get.owner(card);
if(ui.selected.cards.length>=Math.max(2,player.countCards('h')-player.hp)) return 0;
if(player.hp==player.maxHp||player.storage.jsprende<0||player.countCards('h')<=1){
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].hasSkill('haoshi')&&
!players[i].isTurnedOver()&&
!players[i].hasJudge('lebu')&&
get.attitude(player,players[i])>=3&&
get.attitude(players[i],player)>=3){
return 11-get.value(card);
}
}
if(player.countCards('h')>player.hp) return 10-get.value(card);
if(player.countCards('h')>2) return 6-get.value(card);
return -1;
}
return 10-get.value(card);
},
content:function(){
'step 0'
var evt=_status.event.getParent('phaseUse');
if(evt&&evt.name=='phaseUse'&&!evt.jsprende){
var next=game.createEvent('jsprende_clear');
_status.event.next.remove(next);
evt.after.push(next);
evt.jsprende=true;
next.player=player;
next.setContent(function(){
delete player.storage.jsprende;
});
}
target.gain(cards,player,'giveAuto');
if(typeof player.storage.jsprende!='number'){
player.storage.jsprende=0;
}
if(player.storage.jsprende>=0){
player.storage.jsprende+=cards.length;
if(player.storage.jsprende>=2){
var list=[];
if(lib.filter.cardUsable({name:'sha'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('sha',current);
})){
list.push(['基本','','sha']);
list.push(['基本','','sha','fire']);
list.push(['基本','','sha','thunder']);
list.push(['基本','','sha','ice']);
}
if(lib.filter.cardUsable({name:'tao'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('tao',current);
})){
list.push(['基本','','tao']);
}
if(lib.filter.cardUsable({name:'jiu'},player,event.getParent('chooseToUse'))&&game.hasPlayer(function(current){
return player.canUse('jiu',current);
})){
list.push(['基本','','jiu']);
}
if(list.length){
player.chooseButton(['是否视为使用一张基本牌?',[list,'vcard']]).set('ai',function(button){
var player=_status.event.player;
var card={name:button.link[2],nature:button.link[3]};
if(card.name=='tao'){
if(player.hp==1||(player.hp==2&&!player.hasShan())||player.needsToDiscard()){
return 5;
}
return 1;
}
if(card.name=='sha'){
if(game.hasPlayer(function(current){
return player.canUse(card,current)&&get.effect(current,card,player,player)>0
})){
if(card.nature=='fire') return 2.95;
if(card.nature=='thunder'||card.nature=='ice') return 2.92;
return 2.9;
}
return 0;
}
if(card.name=='jiu'){
return 0.5;
}
return 0;
});
}
else{
event.finish();
}
player.storage.jsprende=-1;
}
else{
event.finish();
}
}
else{
event.finish();
}
'step 1'
if(result&&result.bool&&result.links[0]){
var card={name:result.links[0][2],nature:result.links[0][3]};
player.chooseUseTarget(card,true);
}
},
ai:{
fireAttack:true,
order:function(skill,player){
if(player.hp<player.maxHp&&player.storage.jsprende<2&&player.countCards('h')>1){
return 10;
}
return 4;
},
result:{
target:function(player,target){
if(target.hasSkillTag('nogain')) return 0;
if(ui.selected.cards.length&&ui.selected.cards[0].name=='du'){
if(target.hasSkillTag('nodu')) return 0;
return -10;
}
if(target.hasJudge('lebu')) return 0;
var nh=target.countCards('h');
var np=player.countCards('h');
if(player.hp==player.maxHp||player.storage.jsprende<0||player.countCards('h')<=1){
if(nh>=np-1&&np<=player.hp&&!target.hasSkill('haoshi')) return 0;
}
return Math.max(1,5-nh);
}
},
effect:{
target:function(card,player,target){
if(player==target&&get.type(card)=='equip'){
if(player.countCards('e',{subtype:get.subtype(card)})){
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)>0;
})){
return 0;
}
}
}
}
},
threaten:0.8
}
},
//狼灭
langmie:{
trigger:{global:'phaseUseEnd'},
@ -352,6 +510,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.chooseTarget(get.prompt2('lulve'),function(card,player,target){
var hs=player.countCards('h'),ts=target.countCards('h');
return target!=player&&ts>0&&hs>ts;
}).set('ai',function(target){
var player=_status.event.player,att=get.attitude(player,target);
if(target.isTurnedOver()) return att/10;
if(!player.hasShan()&&target.canUse({name:'sha',isCard:true},player,false)&&get.effect(player,{name:'sha',isCard:true},target,player)<0&&player.hp<4) return 0;
return -att*Math.sqrt(target.countCards('h'));
});
'step 1'
if(result.bool){
@ -363,6 +526,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'将所有手牌交给'+str+',然后其将武将牌翻面',
'将武将牌翻面,然后视为对'+str+'使用【杀】',
]).set('ai',function(){
var player=_status.event.player,target=_status.event.getParent().player;
if(player.isTurnedOver()) return 1;
if(!target.hasShan()&&player.canUse({name:'sha',isCard:true},target,false)&&get.effect(target,{name:'sha',isCard:true},player,player)<0) return 0;
return Math.random()<0.5?0:1;
});
}
@ -8567,6 +8733,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
//jin_yanghuiyu:['jin_yanghuiyu','yanghuiyu'],
chunyuqiong:['chunyuqiong','re_chunyuqiong'],
taoqian:['taoqian','re_taoqian'],
sp_liubei:['sp_liubei','jsp_liubei'],
},
translate:{
lijue:"李傕",
@ -9047,6 +9214,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
langmie:'狼灭',
langmie_damage:'狼灭',
langmie_info:'其他角色的出牌阶段结束时若其本阶段内使用过的牌中有名称相同的牌则你可以摸一张牌其他角色的结束阶段开始时若其本回合内一次性造成过大于1点的伤害则你可以弃置一张牌并对其造成1点伤害。',
jsp_liubei:'群刘备',
jsp_liubei_ab:'刘备',
jsprende:'仁德',
jsprende_info:'出牌阶段,你可以将至少一张手牌交给其他角色;若你于此阶段内给出的牌首次达到两张,你可以视为使用一张基本牌',
sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原",

View File

@ -840,6 +840,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhuosheng:{
audio:2,
locked:false,
init:function(player){
player.addSkill('zhuosheng_count');
if(game.phaseNumber>0){
var hs=player.getCards('h'),all=player.getAllHistory(),cards=[];
for(var i=all.length-1;i>=0;i--){
for(var j of all[i].gain){
cards.addArray(j.cards);
}
if(all[i].isRound) break;
}
cards=cards.filter(function(i){
return hs.contains(i);
});
if(cards.length) player.addGaintag(cards,'zhuosheng');
}
},
onremove:function(player){
player.removeSkill('zhuosheng_count');
player.removeGaintag('zhuosheng');
@ -932,25 +948,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
silent:{
trigger:{
player:['enterGame','useCard1'],
global:'gameDrawAfter',
player:'useCard1',
},
silent:true,
firstDo:true,
filter:function(event,player){
if(event.name=='useCard') return get.mode()!='guozhan'&&get.type(event.card)=='basic'&&lib.skill.zhuosheng.filterx(event,player)&&event.addCount!==false;
return true;
return get.mode()!='guozhan'&&get.type(event.card)=='basic'&&lib.skill.zhuosheng.filterx(event,player)&&event.addCount!==false;
},
content:function(){
if(trigger.name=='useCard'){
trigger.addCount=false;
var stat=player.getStat();
if(stat&&stat.card&&stat.card[trigger.card.name]) stat.card[trigger.card.name]--;
}
else{
player.addSkill('zhuosheng_count');
player.addGaintag(player.getCards('h'),'zhuosheng');
}
},
},
},

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.110.8',
'v1.9.110.8.2',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -729,6 +729,14 @@ window.noname_asset_list=[
'audio/die/ruanyu.mp3',
'audio/die/zhangmiao.mp3',
'audio/die/re_guotufengji.mp3',
'audio/die/duanwei.mp3',
'audio/die/liangxing.mp3',
'audio/die/shen_guojia.mp3',
'audio/die/sp_kongrong.mp3',
'audio/die/wangfuzhaolei.mp3',
'audio/die/wangling.mp3',
'audio/die/zhouchu.mp3',
'audio/die/zhouqun.mp3',
'audio/skill/decadezishou1.mp3',
'audio/skill/decadezishou2.mp3',
@ -3219,6 +3227,36 @@ window.noname_asset_list=[
'audio/skill/rejigong2.mp3',
'audio/skill/shifei_re_guotufengji1.mp3',
'audio/skill/shifei_re_guotufengji2.mp3',
'audio/die/chuhai1.mp3',
'audio/die/chuhai2.mp3',
'audio/die/langmie1.mp3',
'audio/die/langmie2.mp3',
'audio/die/lulve1.mp3',
'audio/die/lulve2.mp3',
'audio/die/lxzhuixi1.mp3',
'audio/die/lxzhuixi2.mp3',
'audio/die/mouli1.mp3',
'audio/die/mouli2.mp3',
'audio/die/sghuishi1.mp3',
'audio/die/sghuishi2.mp3',
'audio/die/shuishi1.mp3',
'audio/die/shuishi2.mp3',
'audio/die/splirang1.mp3',
'audio/die/splirang2.mp3',
'audio/die/spmingshi1.mp3',
'audio/die/spmingshi2.mp3',
'audio/die/stianyi1.mp3',
'audio/die/stianyi2.mp3',
'audio/die/tiansuan1.mp3',
'audio/die/tiansuan2.mp3',
'audio/die/xianghai1.mp3',
'audio/die/xianghai2.mp3',
'audio/die/xunyi1.mp3',
'audio/die/xunyi2.mp3',
'audio/die/zifu1.mp3',
'audio/die/zifu2.mp3',
'audio/die/zuoxing1.mp3',
'audio/die/zuoxing2.mp3',
'audio/voice/male/0.mp3',
'audio/voice/male/1.mp3',
@ -3700,6 +3738,10 @@ window.noname_asset_list=[
'image/card/gz_haolingtianxia.png',
'image/card/gz_kefuzhongyuan.png',
'image/card/gz_wenheluanwu.png',
'image/card/baiyidujiang.png',
'image/card/binglinchengxia.png',
'image/card/luojingxiashi.png',
'image/card/toushiche.png',
'image/character/shenpei.jpg',
'image/character/re_menghuo.jpg',
@ -4078,6 +4120,13 @@ window.noname_asset_list=[
'image/character/re_guotufengji.jpg',
'image/character/shen_guojia.jpg',
'image/character/zhongyan.jpg',
'image/character/jsp_liubei.jpg',
'image/character/liangxing.jpg',
'image/character/sp_kongrong.jpg',
'image/character/wangfuzhaolei.jpg',
'image/character/wangling.jpg',
'image/character/zhouchu.jpg',
'image/character/zhouqun.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',

View File

@ -22,6 +22,12 @@
cardMove:[],
custom:[],
}],
cardtag:{
yingbian_zhuzhan:[],
yingbian_kongchao:[],
yingbian_fujia:[],
yingbian_canqu:[],
},
};
var lib={
configprefix:'noname_0.9_',
@ -4118,7 +4124,7 @@
nopointer:true,
},
enableai:{
name:'AI可选',
name:'随机选将可用',
init:false
},
hide:{
@ -24385,6 +24391,7 @@
}
_status.cardtag[tag].add(this.cardid);
tagstr+=lib.translate[tag+'_tag'];
//if(i<tags.length-1) tagstr+=' ';
}
tagstr+='</span>';
this.node.range.innerHTML+=tagstr;
@ -37459,10 +37466,10 @@
onclick:togglePack
});
var cfgnodeAI=createConfig({
name:'AI禁选',
name:'仅点将可用',
_name:mode,
init:boolAI,
intro:'将该武将包内的武将全部设置为AI禁选',
intro:'将该武将包内的武将全部设置为仅点将可用',
onclick:function(bool){
if(bool){
for(var i=0;i<list.length;i++){
@ -39099,7 +39106,7 @@
grouplist.push([lib.group[i],get.translation(lib.group[i])]);
};
var groups=ui.create.selectlist(grouplist,null,ui.create.div('.indent','势力:',newCharacter));
var options=ui.create.div('.add_skill.options','<span>主公<input type="checkbox" name="zhu"></span><span>BOSS<input type="checkbox" name="boss"></span><span>AI禁选<input type="checkbox" name="forbidai"></span><br><span>隐匿技<input type="checkbox" name="hiddenSkill"></span><br>',newCharacter);
var options=ui.create.div('.add_skill.options','<span>主公<input type="checkbox" name="zhu"></span><span>BOSS<input type="checkbox" name="boss"></span><span>仅点将可用<input type="checkbox" name="forbidai"></span><br><span>隐匿技<input type="checkbox" name="hiddenSkill"></span><br>',newCharacter);
var addSkill=ui.create.div('.add_skill','添加技能<br>',newCharacter);
var list=[];
for(var i in lib.character){
@ -44810,6 +44817,9 @@
}
}
lib.inpile.sort(lib.sort.card);
for(var i in _status.cardtag){
if(!_status.cardtag[i].length) delete _status.cardtag[i];
}
game.broadcastAll(function(num,pile,top,cardtag){
if(ui.cardPileNumber) ui.cardPileNumber.innerHTML='0轮 剩余牌: '+num;
lib.inpile=pile;
@ -52299,7 +52309,7 @@
}
}
if(node._banning=='offline'){
var cfg=ui.create.div('.config','AI可选',page);
var cfg=ui.create.div('.config','随机选将可用',page);
cfg.classList.add('toggle');
cfg.listen(function(){
this.classList.toggle('on');

View File

@ -1,22 +1,23 @@
window.noname_update={
version:'1.9.110.8.1',
update:'1.9.110.8',
version:'1.9.110.8.2',
update:'1.9.110.8.1',
changeLog:[
'兵临城下(斗地主)',
'梁兴、群刘备、孔融、王甫赵累、王凌、周处、周群',
'应变牌堆调整',
'bug修复',
],
files:[
//'card/extra.js',
'card/extra.js',
//'card/gujian.js',
//'card/guozhan.js',
'card/guozhan.js',
//'card/gwent.js',
//'card/huanlekapai.js',
//'card/mtg.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/yunchou.js',
//'card/yingbian.js',
'card/yingbian.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'character/diy.js',
@ -25,21 +26,21 @@ window.noname_update={
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
//'character/mobile.js',
'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
//'character/ow.js',
//'character/rank.js',
//'character/refresh.js',
'character/rank.js',
'character/refresh.js',
//'character/shenhua.js',
//'character/sp.js',
//'character/sp2.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
//'character/yingbian.js',
'character/yingbian.js',
//'character/yijiang.js',
//'character/yxs.js',
//'extension/boss/extension.js',
@ -55,7 +56,7 @@ window.noname_update={
//'mode/single.js',
//'mode/stone.js',
//'mode/tafang.js',
//'mode/versus.js',
'mode/versus.js',
'game/game.js',
//'game/keyWords.js',
//'game/NoSleep.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 180 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

BIN
image/character/zhouchu.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

BIN
image/character/zhouqun.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

View File

@ -1903,7 +1903,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
forced:true,
ruleSkill:true,
filter:function(event,player){
return game.roundNumber>14;
return _status.mode=='binglin'&&game.roundNumber>14;
},
content:function(){
player.loseHp();
@ -2007,6 +2007,12 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
player.removeMark('binglin_shaxue',1,false);
},
intro:{content:'剩余次数:#'},
ai:{
viewHandcard:true,
skillTagFilter:function(player,tag,arg){
return player!=arg&&arg.hasSkill('binglin_shaxue');
},
},
},
binglin_neihong:{charlotte:true},
toushiche_skill:{
@ -2539,7 +2545,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
else if(choices.length==1) event._result={index:0};
else player.chooseControl().set('choiceList',choices).set('ai',function(){
var evt=_status.event.getParent();
return get.attitude(evt.player,evt.target)>0?1:0;
return get.attitude(evt.player,evt.target)>0?0:1;
});
'step 1'
if(result.index+event.addIndex==0){

View File

@ -2640,7 +2640,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.character[name][1]='wei';
return true;
});
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','re_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','guotufengji','chunyuqiong'].filter(function(name){
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','jsp_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','guotufengji','chunyuqiong'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='qun';
return true;
@ -2716,7 +2716,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
lib.character[name][1]='wei';
return true;
});
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','re_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','guotufengji','chunyuqiong'].filter(function(name){
event.trueList=['xunchen','gaolan','sp_zhanghe','sp_xuyou','chenlin','jsp_liubei','yj_jushou','sp_shenpei','tianfeng','yuantanyuanshang','lvkuanglvxiang','xinpi','guotufengji','chunyuqiong'].filter(function(name){
if(!Array.isArray(lib.character[name])) return false;
lib.character[name][1]='qun';
return true;