Merry Christmas

This commit is contained in:
Spmario233 2020-12-25 21:57:32 +08:00
parent 18539af71b
commit 22a4950770
20 changed files with 159 additions and 81 deletions

View File

@ -277,18 +277,24 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
trigger:{ trigger:{
player:['useCard1','respond'], player:['useCard1','respond'],
global:'phaseBeginStart',
}, },
silent:true, silent:true,
firstDo:true, firstDo:true,
filter:function(event,player,name){ filter:function(event,player,name){
//if(name=='phaseBeginStart') return true; if(name=='phaseBeginStart') return true;
var type=get.type(event.card); var type=get.type(event.card);
return type=='basic'||type=='trick'; return type=='basic'||type=='trick';
}, },
content:function(){ content:function(){
//if(event.triggername=='phaseBeginStart') delete player.storage.suijiyingbian; if(event.triggername=='phaseBeginStart'){
delete player.storage.suijiyingbian;
delete player.storage.suijiyingbian_nature;
}
else{
player.storage.suijiyingbian=trigger.card.name; player.storage.suijiyingbian=trigger.card.name;
player.storage.suijiyingbian_nature=trigger.card.nature; player.storage.suijiyingbian_nature=trigger.card.nature;
}
}, },
}, },
wuxinghelingshan_skill:{ wuxinghelingshan_skill:{
@ -390,10 +396,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
direct:true, direct:true,
content:function(){ content:function(){
'step 0' 'step 0'
player.chooseTarget(true,function(card,player,target){ player.chooseTarget(function(card,player,target){
return !target.isLinked(); return !target.isLinked();
},'是否发动【太公阴符】横置一名角色?').set('',function(target){ },'是否发动【太公阴符】横置一名角色?').set('',function(target){
return get.effect(target,{name:'tiesuo'},_status.event.player); return get.effect(target,{name:'tiesuo'},_status.event.player,_status.event.player);
}); });
'step 1' 'step 1'
if(result.bool){ if(result.bool){
@ -653,7 +659,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
translate:{ translate:{
suijiyingbian:'随机应变', suijiyingbian:'随机应变',
suijiyingbian_info:'此牌的牌名视为你本局游戏内使用或打出的上一张基本牌或普通锦囊牌的牌名。', suijiyingbian_info:'此牌的牌名视为你本回合内使用或打出的上一张基本牌或普通锦囊牌的牌名。',
zhujinqiyuan:'逐近弃远', zhujinqiyuan:'逐近弃远',
zhujinqiyuan_info:'出牌阶段对一名有牌的其他角色使用。若你与其距离的大于1你弃置其区域内的一张牌若你与其的距离等于1你获得其区域内的一张牌。', zhujinqiyuan_info:'出牌阶段对一名有牌的其他角色使用。若你与其距离的大于1你弃置其区域内的一张牌若你与其的距离等于1你获得其区域内的一张牌。',
dongzhuxianji:'洞烛先机', dongzhuxianji:'洞烛先机',
@ -763,7 +769,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['heart',12,'tao'], ['heart',12,'tao'],
['heart',12,'shan'], ['heart',12,'shan'],
['heart',12,'guohe'], ['heart',12,'guohe'],
['heart',1,'shandian'], ['heart',12,'shandian'],
['heart',13,'wuxie',null,['yingbian_kongchao']], ['heart',13,'wuxie',null,['yingbian_kongchao']],
['heart',13,'shan'], ['heart',13,'shan'],
['heart',13,'zhuahuang'], ['heart',13,'zhuahuang'],
@ -774,7 +780,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['club',2,'sha',null,['yingbian_kongchao']], ['club',2,'sha',null,['yingbian_kongchao']],
['club',2,'heiguangkai'], ['club',2,'heiguangkai'],
['club',2,'tengjia'], ['club',2,'tengjia'],
['club',1,'renwang'], ['club',2,'renwang'],
['club',3,'sha',null,['yingbian_kongchao']], ['club',3,'sha',null,['yingbian_kongchao']],
['club',3,'jiu'], ['club',3,'jiu'],
['club',3,'zhujinqiyuan',null,['yingbian_zhuzhan']], ['club',3,'zhujinqiyuan',null,['yingbian_zhuzhan']],
@ -792,7 +798,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
['club',7,'nanman'], ['club',7,'nanman'],
['club',8,'sha'], ['club',8,'sha'],
['club',8,'sha','thunder'], ['club',8,'sha','thunder'],
['club',8,'jiu'], ['club',8,'sha'],
['club',9,'sha','thunder'], ['club',9,'sha','thunder'],
['club',9,'sha','thunder'], ['club',9,'sha','thunder'],
['club',9,'jiu'], ['club',9,'jiu'],

View File

@ -6445,7 +6445,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xinqiaoshui_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,则你本阶段内使用的下一张基本牌或普通锦囊牌可以增加减少一个目标。若你没赢,你本阶段内不能使用锦囊牌。', xinqiaoshui_info:'出牌阶段限一次,你可以和一名其他角色拼点。若你赢,则你本阶段内使用的下一张基本牌或普通锦囊牌可以增加减少一个目标。若你没赢,你本阶段内不能使用锦囊牌。',
xinjyzongshi:'纵适', xinjyzongshi:'纵适',
xinjyzongshi_info:'当你拼点后,你可以观看牌堆顶的一张牌,然后选择一项:获得此牌,或获得两张拼点牌中点数较小的一张。', xinjyzongshi_info:'当你拼点后,你可以观看牌堆顶的一张牌,然后选择一项:获得此牌,或获得两张拼点牌中点数较小的一张。',
dingyuan:'丁原', dingyuan:'手杀丁原',
beizhu:'备诛', beizhu:'备诛',
beizhu_draw:'备诛', beizhu_draw:'备诛',
beizhu_info:'出牌阶段限一次你可以观看一名其他角色的手牌。若其中没有【杀】你弃置其一张牌然后你可令其获得牌堆中的一张【杀】有【杀】其依次对你使用这些【杀】当你因此受到1点伤害后你摸一张牌。', beizhu_info:'出牌阶段限一次你可以观看一名其他角色的手牌。若其中没有【杀】你弃置其一张牌然后你可令其获得牌堆中的一张【杀】有【杀】其依次对你使用这些【杀】当你因此受到1点伤害后你摸一张牌。',

View File

@ -1233,6 +1233,7 @@ window.noname_character_rank={
'mini_zhugeliang', 'mini_zhugeliang',
'jin_simayi', 'jin_simayi',
'jin_zhangchunhua', 'jin_zhangchunhua',
'liuhong',
'key_haruko', 'key_haruko',
'key_akiko', 'key_akiko',
'key_sunohara', 'key_sunohara',
@ -1507,6 +1508,8 @@ window.noname_character_rank={
'xin_lingtong', 'xin_lingtong',
'xin_liubiao', 'xin_liubiao',
're_xinxianying', 're_xinxianying',
'ol_dingyuan',
'wangrong',
], ],
junk:[ junk:[
'sunshao', 'sunshao',

View File

@ -8293,6 +8293,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
decadezishou_info:'摸牌阶段你可以多摸X张牌,然后本回合你对其他角色造成伤害时,防止此伤害。结束阶段,若你本回合没有使用牌指定其他角色为目标,你可以弃置任意张花色不同的手牌,然后摸等量的牌。', decadezishou_info:'摸牌阶段你可以多摸X张牌,然后本回合你对其他角色造成伤害时,防止此伤害。结束阶段,若你本回合没有使用牌指定其他角色为目标,你可以弃置任意张花色不同的手牌,然后摸等量的牌。',
decadezongshi:'宗室', decadezongshi:'宗室',
decadezongshi_info:'锁定技,你的手牌上限+XX为现存势力数。你的回合外若你的手牌数大于等于手牌上限则当你成为延时类锦囊牌或无颜色的牌的目标后你令此牌对你无效。', decadezongshi_info:'锁定技,你的手牌上限+XX为现存势力数。你的回合外若你的手牌数大于等于手牌上限则当你成为延时类锦囊牌或无颜色的牌的目标后你令此牌对你无效。',
re_caozhen:'界曹真',
residi:'司敌',
residi_info:'结束阶段你可以摸一张牌并将一张牌置于你的武将牌上称为“司”。其他角色的出牌阶段开始时你可以移去任意张“司”。若如此做其本阶段内不能使用或打出与这些“司”颜色相同的牌且此阶段结束时若X不大于2你视为对其使用【杀】不大于1你摸两张牌不大于0你将牌堆顶的一张牌置于你的武将牌上称为“司”。X为该角色本阶段内使用过牌的类型数',
refresh_standard:'界限突破·标', refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风', refresh_feng:'界限突破·风',

View File

@ -143,7 +143,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wangyun:['male','qun',4,['xinlianji','xinmoucheng']], wangyun:['male','qun',4,['xinlianji','xinmoucheng']],
sunqian:['male','shu',3,['qianya','shuimeng']], sunqian:['male','shu',3,['qianya','shuimeng']],
xizhicai:['male','wei',3,['tiandu','xianfu','chouce']], xizhicai:['male','wei',3,['tiandu','xianfu','chouce']],
quyi:['male','qun',4,['fuqi','jiaozi']],
luzhi:['male','wei',3,['qingzhongx','weijing']], luzhi:['male','wei',3,['qingzhongx','weijing']],
@ -14864,7 +14863,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wangyun:'王允', wangyun:'王允',
sunqian:'孙乾', sunqian:'孙乾',
xizhicai:'戏志才', xizhicai:'戏志才',
quyi:'麴义',
liuye:'刘晔', liuye:'刘晔',
beimihu:'卑弥呼', beimihu:'卑弥呼',
luzhi:'鲁芝', luzhi:'鲁芝',

View File

@ -6,16 +6,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
character:{ character:{
jin_zhangchunhua:['female','jin',3,['huishi','qingleng','xuanmu'],['hiddenSkill']], jin_zhangchunhua:['female','jin',3,['huishi','qingleng','xuanmu'],['hiddenSkill']],
jin_simayi:['male','jin',3,['buchen','smyyingshi','xiongzhi','quanbian'],['hiddenSkill']], jin_simayi:['male','jin',3,['buchen','smyyingshi','xiongzhi','quanbian'],['hiddenSkill']],
quyi:['male','qun',4,['fuqi','jiaozi']],
dongxie:['female','qun','3/4',['juntun','jiaojie']], dongxie:['female','qun','3/4',['juntun','jiaojie']],
re_xinxianying:['female','wei',3,['rezhongjian','recaishi']], re_xinxianying:['female','wei',3,['rezhongjian','recaishi']],
wangrong:['female','qun',3,['sicong','xianzhao'],['unseen']], wangrong:['female','qun',3,['minsi','jijing','zhuide']],
ol_dingyuan:['male','qun',4,['weihuan','shouchong'],['unseen']], ol_dingyuan:['male','qun',4,['cixiao','xianshuai']],
liubian:['male','qun',3,['shiyuan','dushi']], liubian:['male','qun',3,['shiyuan','dushi','yuwei'],['zhu']],
xin_baosanniang:['female','shu',3,['decadewuniang','decadexushen']], xin_baosanniang:['female','shu',3,['decadewuniang','decadexushen']],
re_hejin:['male','qun',4,['spmouzhu']], re_hejin:['male','qun',4,['spmouzhu']],
hansui:['male','qun',4,['spniluan','spweiwu']], re_hansui:['male','qun',4,['spniluan','spweiwu']],
liuhong:['male','qun',4,['yujue','tuxing'],['unseen']], liuhong:['male','qun',4,['yujue','tuxing']],
zhujun:['male','qun',4,['gongjian','kuimang'],['unseen']], zhujun:['male','qun',4,['gongjian','kuimang']],
caoxing:['male','qun',4,['cxliushi','zhanwan']], caoxing:['male','qun',4,['cxliushi','zhanwan']],
re_maliang:['male','shu',3,['rexiemu','heli'],[]], re_maliang:['male','shu',3,['rexiemu','heli'],[]],
ol_yujin:['male','wei',4,['rezhenjun']], ol_yujin:['male','wei',4,['rezhenjun']],
@ -83,8 +84,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_shengun:["puyuan","guanlu","gexuan","xushao"], sp_shengun:["puyuan","guanlu","gexuan","xushao"],
sp_baigei:['re_panfeng','xingdaorong','caoxing'], sp_baigei:['re_panfeng','xingdaorong','caoxing'],
sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"], sp_guandu:["sp_zhanghe","xunchen","sp_shenpei","gaolan","lvkuanglvxiang","chunyuqiong","sp_xuyou"],
sp_huangjin:['liuhong','zhujun','re_hejin','hansui'], sp_huangjin:['liuhong','zhujun','re_hejin','re_hansui','liubian'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','liubian','re_xinxianying','dongxie'], sp_fadong:['ol_dingyuan','wangrong','quyi'],
sp_decade:['wulan','leitong','huaman','wangshuang','wenyang','re_liuzan','re_sunluyu','caobuxing','ol_yujin','re_maliang','xin_baosanniang','re_xinxianying','dongxie'],
sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"], sp_mini:["mini_sunquan","mini_zuoci","mini_jiangwei","mini_diaochan","mini_zhangchunhua"],
sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"], sp_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
sp_yongjian:["ns_chendao","yj_caoang"], sp_yongjian:["ns_chendao","yj_caoang"],
@ -92,6 +94,38 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
skill:{ skill:{
zhuide:{
audio:2,
trigger:{player:'die'},
forceDie:true,
skillAnimation:true,
animationColor:'thunder',
direct:true,
content:function(){
'step 0'
player.chooseTarget(get.prompt2('zhuide'),lib.filter.notMe).set('ai',function(target){
return get.attitude(_status.event.player,target);
});
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('zhuide',target);
var names=[];
var cards=[];
while(cards.length<4){
var card=get.cardPile2(function(card){
return !cards.contains(card)&&!names.contains(card.name)&&get.type(card)=='basic';
});
if(card){
cards.push(card);
names.push(card.name);
}
else break;
}
if(cards.length) target.gain(cards,'gain2');
}
},
},
buchen:{ buchen:{
audio:2, audio:2,
trigger:{player:'showCharacterAfter'}, trigger:{player:'showCharacterAfter'},
@ -146,8 +180,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var card=get.cards()[0]; var card=get.cards()[0];
event.card=card; event.card=card;
player.showCards(card); player.showCards(card);
if(!player.hasUseTarget(card)) event.finish();
'step 2' 'step 2'
player.chooseUseTarget(card,true); var next=player.chooseUseTarget(card,true);
if(get.info(card).updateUsable=='phaseUse') next.addCount=false;
'step 3' 'step 3'
if(result.bool) event.goto(1); if(result.bool) event.goto(1);
else{ else{
@ -1081,7 +1117,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.target.discard(trigger.target.getCards('h',{color:result.control})); trigger.target.discard(trigger.target.getCards('h',{color:result.control}));
}, },
}, },
sicong:{ minsi:{
audio:2, audio:2,
enable:'phaseUse', enable:'phaseUse',
getResult:function(cards){ getResult:function(cards){
@ -1127,8 +1163,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
check:function(card){ check:function(card){
var evt=_status.event; var evt=_status.event;
if(!evt.sicong_choice) evt.sicong_choice=lib.skill.sicong.getResult(evt.player.getCards('he')); if(!evt.minsi_choice) evt.minsi_choice=lib.skill.minsi.getResult(evt.player.getCards('he'));
if(!evt.sicong_choice.contains(card)) return 0; if(!evt.minsi_choice.contains(card)) return 0;
return 1; return 1;
}, },
position:'he', position:'he',
@ -1137,8 +1173,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.draw(cards.length*2); player.draw(cards.length*2);
'step 1' 'step 1'
if(get.itemtype(result)=='cards'){ if(get.itemtype(result)=='cards'){
player.addTempSkill('sicong2'); player.addTempSkill('minsi2');
player.markAuto('sicong2',result); player.markAuto('minsi2',result);
} }
}, },
ai:{ ai:{
@ -1146,7 +1182,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
result:{player:1}, result:{player:1},
}, },
}, },
sicong2:{ minsi2:{
intro:{ intro:{
mark:function(dialog,content,player){ mark:function(dialog,content,player){
if(content&&content.length){ if(content&&content.length){
@ -1164,36 +1200,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
mod:{ mod:{
targetInRange:function(card,player,target){ targetInRange:function(card,player,target){
if(!card.cards) return; if(!card.cards) return;
var storage=player.getStorage('sicong2'); var storage=player.getStorage('minsi2');
for(var i of card.cards){ for(var i of card.cards){
if(!storage.contains(i)||get.color(i)!='black') return; if(!storage.contains(i)||get.color(i)!='black') return;
} }
return true; return true;
}, },
cardUsable:function(card,player,target){
if(!card.cards) return;
var storage=player.getStorage('sicong2');
for(var i of card.cards){
if(!storage.contains(i)||get.color(i)!='black') return;
}
return Infinity;
},
ignoredHandcard:function(card,player){ ignoredHandcard:function(card,player){
if(player.getStorage('sicong2').contains(card)&&get.color(card)=='red'){ if(player.getStorage('minsi2').contains(card)&&get.color(card)=='red'){
return true; return true;
} }
}, },
cardDiscardable:function(card,player,name){ cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&player.getStorage('sicong2').contains(card)&&get.color(card)=='red'){ if(name=='phaseDiscard'&&player.getStorage('minsi2').contains(card)&&get.color(card)=='red'){
return false; return false;
} }
}, },
aiOrder:function(player,card,num){ aiOrder:function(player,card,num){
if(player.getStorage('sicong2').contains(card)&&get.color(card)=='black') return num-0.1; if(player.getStorage('minsi2').contains(card)&&get.color(card)=='black') return num-0.1;
}, },
}, },
}, },
xianzhao:{ jijing:{
audio:2, audio:2,
trigger:{player:'damageEnd'}, trigger:{player:'damageEnd'},
frequent:true, frequent:true,
@ -1251,14 +1279,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(result.bool) player.recover(); if(result.bool) player.recover();
}, },
}, },
weihuan:{ cixiao:{
trigger:{player:'phaseZhunbeiBegin'}, trigger:{player:'phaseZhunbeiBegin'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
if(!game.hasPlayer(function(current){ if(!game.hasPlayer(function(current){
return current.hasSkill('panshi'); return current.hasSkill('panshi');
})) return true; })) return true;
return player.countCards('he')>1&&game.hasPlayer(function(current){ return player.countCards('he')>=1&&game.hasPlayer(function(current){
return current!=player&&!current.hasSkill('panshi'); return current!=player&&!current.hasSkill('panshi');
}); });
}, },
@ -1267,31 +1295,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(game.hasPlayer(function(current){ if(game.hasPlayer(function(current){
return current.hasSkill('panshi'); return current.hasSkill('panshi');
})) event.goto(2); })) event.goto(2);
else player.chooseTarget(lib.filter.notMe,get.prompt('weihuan'),'令一名其他角色获得「虎」标记'); else player.chooseTarget(lib.filter.notMe,get.prompt('cixiao'),'令一名其他角色获得「义子」标记').set('ai',function(target){
var player=_status.event.player;
var att=-get.attitude(player,target);
return att*target.countCards('h');
});
'step 1' 'step 1'
if(result.bool){ if(result.bool){
var target=result.targets[0]; var target=result.targets[0];
player.logSkill('weihuan',target); player.logSkill('cixiao',target);
target.addSkill('panshi'); target.addSkill('panshi');
} }
event.finish(); event.finish();
'step 2' 'step 2'
player.chooseCardTarget({ player.chooseCardTarget({
prompt:get.prompt('weihuan'), prompt:get.prompt('cixiao'),
prompt2:('弃置张牌并将'+get.translation(game.filterPlayer(function(current){ prompt2:('弃置张牌并将'+get.translation(game.filterPlayer(function(current){
return current.hasSkill('panshi'); return current.hasSkill('panshi');
}))+'的「」标记转移给其他角色'), }))+'的「义子」标记转移给其他角色'),
position:'he', position:'he',
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return player!=target&&!target.hasSkill('panshi'); return player!=target&&!target.hasSkill('panshi');
}, },
filterCard:lib.filter.cardDiscardable, filterCard:lib.filter.cardDiscardable,
selectCard:2,
}); });
'step 3' 'step 3'
if(result.bool){ if(result.bool){
var target=result.targets[0]; var target=result.targets[0];
player.logSkill('weihuan'); player.logSkill('cixiao');
player.discard(result.cards).delay=false; player.discard(result.cards).delay=false;
player.line2(game.filterPlayer(function(current){ player.line2(game.filterPlayer(function(current){
if(current.hasSkill('panshi')){ if(current.hasSkill('panshi')){
@ -1306,22 +1337,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.delayx(); game.delayx();
}, },
derivation:'panshi', derivation:'panshi',
ai:{threaten:8},
}, },
panshi:{ panshi:{
mark:true, mark:true,
marktext:'', marktext:'',
intro:{content:'吾乃吕奉先是也'}, intro:{content:'我是儿子'},
trigger:{player:'phaseZhunbeiBegin'}, trigger:{player:'phaseZhunbeiBegin'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player.countCards('h')>0&&game.hasPlayer(function(current){ return player.countCards('h')>0&&game.hasPlayer(function(current){
return current!=player&&current.hasSkill('weihuan'); return current!=player&&current.hasSkill('cixiao');
}); });
}, },
content:function(){ content:function(){
'step 0' 'step 0'
var targets=game.filterPlayer(function(current){ var targets=game.filterPlayer(function(current){
return current!=player&&current.hasSkill('weihuan'); return current!=player&&current.hasSkill('cixiao');
}); });
if(targets.length==1){ if(targets.length==1){
event.target=targets[0]; event.target=targets[0];
@ -1351,20 +1383,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
forced:true, forced:true,
logTarget:'player', logTarget:'player',
filter:function(event,player){ filter:function(event,player){
return event.card&&event.card.name=='sha'&&event.player.hasSkill('weihuan'); return player.isPhaseUsing()&&event.card&&event.card.name=='sha'&&event.player.hasSkill('cixiao');
}, },
content:function(){ content:function(){
trigger.num++; trigger.num++;
var evt=event.getParent('phaseUse');
if(evt&&evt.player==player) evt.skipped=true;
}, },
}, },
shouchong:{ xianshuai:{
trigger:{global:'damageEnd'}, trigger:{global:'damageEnd'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return event.source&&event.source.isAlive()&&!player.hasSkill('shouchong2'); return event.source&&event.source.isAlive()&&!player.hasSkill('xianshuai2');
}, },
content:function(){ content:function(){
player.addTempSkill('shouchong2','roundStart'); player.addTempSkill('xianshuai2','roundStart');
if(trigger.source!=player) player.draw(); if(trigger.source!=player) player.draw();
else if(trigger.player.isAlive()){ else if(trigger.player.isAlive()){
player.line(trigger.player,'green'); player.line(trigger.player,'green');
@ -1372,14 +1406,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
}, },
shouchong2:{}, xianshuai2:{},
shiyuan:{ shiyuan:{
trigger:{target:'useCardToTargeted'}, trigger:{target:'useCardToTargeted'},
frequent:true, frequent:true,
filter:function(event,player){ filter:function(event,player){
return player!=event.player&&!player.getHistory('gain',function(evt){ var num=1;
if(_status.currentPhase&&_status.currentPhase.group=='qun'&&player.hasZhuSkill('yuwei',_status.currentPhase)) num=2;
return player!=event.player&&player.getHistory('gain',function(evt){
return evt.getParent(2).name=='shiyuan'&&evt.cards.length==(2+get.sgn(event.player.hp-player.hp)); return evt.getParent(2).name=='shiyuan'&&evt.cards.length==(2+get.sgn(event.player.hp-player.hp));
}).length; }).length<num;
}, },
content:function(){ content:function(){
player.draw(2+get.sgn(trigger.player.hp-player.hp)); player.draw(2+get.sgn(trigger.player.hp-player.hp));
@ -1415,6 +1451,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
}, },
yuwei:{
zhuSkill:true,
ai:{combo:'shiyuan'},
},
decadexushen:{ decadexushen:{
derivation:'decadezhennan', derivation:'decadezhennan',
audio:'xinfu_xushen', audio:'xinfu_xushen',
@ -1526,6 +1566,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return next; return next;
}, },
}, },
ai:{
order:1,
result:{
player:function(player){
if(game.hasPlayer(function(target){
if(player==target) return false;
var hs=target.countCards('h');
return hs>0&&!game.hasPlayer(function(current){
return current!=player&&current!=target&&current.countCards('h')>hs;
})&&get.attitude(player,target)>0;
})) return 1;
return 0;
},
},
},
}, },
yujuex:{ yujuex:{
audio:'yujue', audio:'yujue',
@ -1542,6 +1597,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return hs>0&&!game.hasPlayer(function(current){ return hs>0&&!game.hasPlayer(function(current){
return current!=player&&current!=target&&current.countCards('h')>hs; return current!=player&&current!=target&&current.countCards('h')>hs;
}); });
}).set('ai',function(target){
return get.attitude(_status.event.player,target)*target.countCards('h');
}); });
} }
else event.finish(); else event.finish();
@ -1563,14 +1620,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
zhihu:{ zhihu:{
usable:3, usable:2,
trigger:{source:'damageSource'}, trigger:{source:'damageSource'},
forced:true, forced:true,
filter:function(event,player){ filter:function(event,player){
return player!=event.player; return player!=event.player;
}, },
content:function(){ content:function(){
player.draw(); player.draw(2);
}, },
}, },
zhihu_mark:{ zhihu_mark:{
@ -1637,6 +1694,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return evt.targets.contains(target); return evt.targets.contains(target);
}).length>0&&event.target.countDiscardableCards(player,'he')>0; }).length>0&&event.target.countDiscardableCards(player,'he')>0;
}, },
check:function(event,player){
return get.attitude(player,event.target)<=0;
},
content:function(){ content:function(){
'step 0' 'step 0'
player.discardPlayerCard(trigger.target,true,'he',2); player.discardPlayerCard(trigger.target,true,'he',2);
@ -7065,6 +7125,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zhangchangpu:['ol_zhangchangpu','zhangchangpu'], zhangchangpu:['ol_zhangchangpu','zhangchangpu'],
huangfusong:['huangfusong','old_huangfusong'], huangfusong:['huangfusong','old_huangfusong'],
wenyang:['wenyang','diy_wenyang'], wenyang:['wenyang','diy_wenyang'],
dingyuan:['ol_dingyuan','dingyuan'],
}, },
translate:{ translate:{
lijue:"李傕", lijue:"李傕",
@ -7359,7 +7420,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yujue_info:'出牌阶段限一次,你可以废除一个装备栏,然后令除你之外手牌数最多的一名其他角色交给你一张手牌。其获得〖执笏〗直到你的下回合开始。', yujue_info:'出牌阶段限一次,你可以废除一个装备栏,然后令除你之外手牌数最多的一名其他角色交给你一张手牌。其获得〖执笏〗直到你的下回合开始。',
zhihu:'执笏', zhihu:'执笏',
zhihu_mark:'执笏', zhihu_mark:'执笏',
zhihu_info:'锁定技,每回合限三次,当你对其他角色造成伤害后,你摸一张牌。', zhihu_info:'锁定技,每回合限两次,当你对其他角色造成伤害后,你摸两张牌。',
tuxing:'图兴', tuxing:'图兴',
tuxing2:'图兴', tuxing2:'图兴',
tuxing_info:'锁定技当你废除一个装备栏时你加1点体力上限并回复1点体力。然后若你所有的装备栏均已被废除则你减4点体力上限且本局游戏内使用【杀】造成的伤害+1。', tuxing_info:'锁定技当你废除一个装备栏时你加1点体力上限并回复1点体力。然后若你所有的装备栏均已被废除则你减4点体力上限且本局游戏内使用【杀】造成的伤害+1。',
@ -7375,20 +7436,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){
shiyuan_info:'每回合每项限一次,当你成为其他角色使用牌的目标后:①若其体力值大于你,你摸三张牌。②若其体力值等于你,你摸两张牌。③若其体力值小于你,你摸一张牌。', shiyuan_info:'每回合每项限一次,当你成为其他角色使用牌的目标后:①若其体力值大于你,你摸三张牌。②若其体力值等于你,你摸两张牌。③若其体力值小于你,你摸一张牌。',
dushi:'毒逝', dushi:'毒逝',
dushi_info:'锁定技,你处于濒死状态时,其他角色不能对你使用【桃】。你死亡时,你选择一名其他角色获得〖毒逝〗。', dushi_info:'锁定技,你处于濒死状态时,其他角色不能对你使用【桃】。你死亡时,你选择一名其他角色获得〖毒逝〗。',
yuwei:'余威',
yuwei_info:'主公技,锁定技,其他群雄角色的回合内,你将〖诗怨〗改为“每回合每项限两次”。',
ol_dingyuan:'丁原', ol_dingyuan:'丁原',
weihuan:'为患', cixiao:'慈孝',
weihuan_info:'准备阶段,若场上没有“虎”标记,你可令一名其他角色获得一个“虎”标记;若场上有“虎”标记,你可以弃置两张牌移动“虎”标记。拥有“虎”标记的角色获得技能“叛弑”', cixiao_info:'准备阶段,若场上没有“义子”标记,你可令一名其他角色获得一个“义子”标记;若场上有“义子”标记,你可以弃置一张牌移动“义子”标记。拥有“义子”标记的角色获得技能“叛弑”。',
panshi:'叛弑', panshi:'叛弑',
panshi_info:'锁定技,准备阶段,你交给有“为患”技能的角色一张手牌;你的【杀】对其造成的伤害+1', panshi_info:'锁定技,准备阶段,你交给有“慈孝”技能的角色一张手牌;当你于出牌阶段因使用【杀】对其他角色造成伤害时,若其拥有技能“慈孝”,则此伤害+1且你结束出牌阶段。',
shouchong:'首冲', xianshuai:'先率',
shouchong_info:'锁定技有角色造成伤害后若此伤害是本轮第一次造成伤害且伤害来源是其他角色则你摸一张牌若伤害来源是你则你对受伤角再造成1点伤害。', xianshuai_info:'锁定技有角色造成伤害后若此伤害是本轮第一次造成伤害且伤害来源是其他角色则你摸一张牌若伤害来源是你则你对受伤角再造成1点伤害。',
luyusheng:'陆郁生', luyusheng:'陆郁生',
wangrong:'王荣', wangrong:'王荣',
sicong:'思聪', minsi:'敏思',
sicong2:'思聪', minsi2:'敏思',
sicong_info:'出牌阶段限一次你可以弃置任意张点数之和为13的牌然后摸两倍数量的牌。以此法获得的牌中黑色牌本回合无距离和次数限制红色牌本回合不计入手牌上限。', minsi_info:'出牌阶段限一次你可以弃置任意张点数之和为13的牌然后摸两倍数量的牌。以此法获得的牌中黑色牌本回合无距离限制红色牌本回合不计入手牌上限。',
xianzhao:'先兆', jijing:'吉境',
xianzhao_info:'当你受到伤害后你可以进行一次判定然后若你弃置任意张点数之和与判定结果点数相同的牌你回复1点体力。', jijing_info:'当你受到伤害后你可以进行一次判定然后若你弃置任意张点数之和与判定结果点数相同的牌你回复1点体力。',
zhuide:'追德',
zhuide_info:'当你死亡时,你可令一名其他角色从牌堆中获得四张名称各不相同的基本牌。',
yj_caoang:'SP曹昂', yj_caoang:'SP曹昂',
yjxuepin:'血拼', yjxuepin:'血拼',
yjxuepin_info:'出牌阶段限一次你可以选择攻击范围内的一名角色并失去1点体力。你弃置其两张牌。若这两张牌类型相同你回复1点体力。', yjxuepin_info:'出牌阶段限一次你可以选择攻击范围内的一名角色并失去1点体力。你弃置其两张牌。若这两张牌类型相同你回复1点体力。',
@ -7445,6 +7510,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xuanmu2:'宣穆', xuanmu2:'宣穆',
xuanmu_info:'锁定技,隐匿技。你于其他角色的回合登场时,防止你受到的伤害直到回合结束。', xuanmu_info:'锁定技,隐匿技。你于其他角色的回合登场时,防止你受到的伤害直到回合结束。',
jin_simayi:'晋司马懿', jin_simayi:'晋司马懿',
jin_simayi_ab:'司马懿',
dongxie:'董翓', dongxie:'董翓',
juntun:'军屯', juntun:'军屯',
juntun_info:'锁定技准备阶段若X大于1则你减1点体力上限并摸X张牌X为你的体力上限。', juntun_info:'锁定技准备阶段若X大于1则你减1点体力上限并摸X张牌X为你的体力上限。',
@ -7459,6 +7525,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
quanbian:'权变', quanbian:'权变',
quanbian2:'权变', quanbian2:'权变',
quanbian_info:'当你于出牌阶段内使用/打出手牌时,若此牌有花色且你本回合内未使用/打出过该花色的其他手牌则你可以选择一项①摸一张牌。②将牌堆顶X张牌中的一张置于牌堆底X为你的体力上限。若你发动此技能则你本回合内不能再使用与此牌花色相同的手牌。', quanbian_info:'当你于出牌阶段内使用/打出手牌时,若此牌有花色且你本回合内未使用/打出过该花色的其他手牌则你可以选择一项①摸一张牌。②将牌堆顶X张牌中的一张置于牌堆底X为你的体力上限。若你发动此技能则你本回合内不能再使用与此牌花色相同的手牌。',
re_hansui:'韩遂',
quyi:'麴义',
sp_yingbian:'应变篇', sp_yingbian:'应变篇',
sp_whlw:"文和乱武", sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原", sp_zlzy:"逐鹿中原",
@ -7469,6 +7537,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_baigei:'无双上将', sp_baigei:'无双上将',
sp_guandu:'官渡之战', sp_guandu:'官渡之战',
sp_huangjin:'黄巾之乱', sp_huangjin:'黄巾之乱',
sp_fadong:'诸侯伐董',
sp_decade:'其他新服武将', sp_decade:'其他新服武将',
sp_mini:'欢乐三国杀', sp_mini:'欢乐三国杀',
sp_luanwu:'文和乱武·线下', sp_luanwu:'文和乱武·线下',

View File

@ -2681,7 +2681,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterReplace:{ characterReplace:{
caocao:['re_caocao','caocao'], caocao:['re_caocao','caocao'],
guojia:['re_guojia','guojia'], guojia:['re_guojia','guojia'],
simayi:['re_simayi','simayi'], simayi:['jin_simayi','re_simayi','simayi'],
zhenji:['re_zhenji','zhenji'], zhenji:['re_zhenji','zhenji'],
xuzhu:['re_xuzhu','xuzhu'], xuzhu:['re_xuzhu','xuzhu'],
zhangliao:['re_zhangliao','sp_zhangliao','yj_zhangliao','zhangliao'], zhangliao:['re_zhangliao','sp_zhangliao','yj_zhangliao','zhangliao'],

View File

@ -11472,7 +11472,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yuce:{ yuce:{
audio:2, audio:2,
audioname:['re_manchong'], audioname:['re_manchong'],
trigger:{player:'damageAfter'}, trigger:{player:'damageEnd'},
direct:true, direct:true,
filter:function(event,player){ filter:function(event,player){
return player.countCards('h')>0&&player.isDamaged(); return player.countCards('h')>0&&player.isDamaged();
@ -12060,7 +12060,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
characterReplace:{ characterReplace:{
caozhi:['re_caozhi','caozhi'], caozhi:['re_caozhi','caozhi'],
zhangchunhua:['zhangchunhua','jin_zhangchunhua','mini_zhangchunhua'], zhangchunhua:['jin_zhangchunhua','zhangchunhua','mini_zhangchunhua'],
yujin:['yujin_yujin','re_yujin','ol_yujin','xin_yujin','yujin'], yujin:['yujin_yujin','re_yujin','ol_yujin','xin_yujin','yujin'],
xushu:['re_xushu','xin_xushu','xushu'], xushu:['re_xushu','xin_xushu','xushu'],
fazheng:['xin_fazheng','fazheng'], fazheng:['xin_fazheng','fazheng'],
@ -12614,7 +12614,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zongxuan_info:'当你的牌因弃置而进入弃牌堆时,你可以将其按任意顺序置于牌堆顶', zongxuan_info:'当你的牌因弃置而进入弃牌堆时,你可以将其按任意顺序置于牌堆顶',
zhiyan_info:'结束阶段,你可以令一名角色摸一张牌并展示之,若为装备牌,其使用此牌并回复一点体力。', zhiyan_info:'结束阶段,你可以令一名角色摸一张牌并展示之,若为装备牌,其使用此牌并回复一点体力。',
miji_info:'结束阶段若你已受伤则可以摸X张牌然后可以将等量的牌交给一名其他角色X为你已损失的体力值。', miji_info:'结束阶段若你已受伤则可以摸X张牌然后可以将等量的牌交给一名其他角色X为你已损失的体力值。',
zhenlie_info:'当你成为其他角色使用牌的目标后,你可以失去一点体力并令此牌对你无效,然后弃置对方一张牌。', zhenlie_info:'当你成为其他角色使用【杀】或普通锦囊牌的目标后,你可以失去一点体力并令此牌对你无效,然后弃置对方一张牌。',
chengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌', chengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于13的牌',
oldchengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌', oldchengxiang_info:'当你受到伤害后你可以亮出牌堆顶的四张牌。然后获得其中任意数量点数之和不大于12的牌',
renxin_info:'当体力值为1的一名其他角色受到伤害时你可以将武将牌翻面并弃置一张装备牌然后防止此伤害。', renxin_info:'当体力值为1的一名其他角色受到伤害时你可以将武将牌翻面并弃置一张装备牌然后防止此伤害。',

View File

@ -21393,10 +21393,10 @@
return _status.dying.contains(this)&&this.hp<=0&&this.isAlive(); return _status.dying.contains(this)&&this.hp<=0&&this.isAlive();
}, },
isDamaged:function(){ isDamaged:function(){
return this.hp<this.maxHp; return this.hp<this.maxHp&&!this.storage.nohp;
}, },
isHealthy:function(){ isHealthy:function(){
return this.hp==this.maxHp; return this.hp==this.maxHp||this.storage.nohp;
}, },
isMaxHp:function(equal){ isMaxHp:function(equal){
for(var i=0;i<game.players.length;i++){ for(var i=0;i<game.players.length;i++){
@ -49006,7 +49006,6 @@
roomId:game.roomId, roomId:game.roomId,
over:_status.over, over:_status.over,
inpile:lib.inpile, inpile:lib.inpile,
cardtag:_status.cardtag,
}; };
for(var i in lib.playerOL){ for(var i in lib.playerOL){
state.players[i]=lib.playerOL[i].getState(); state.players[i]=lib.playerOL[i].getState();

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 113 KiB

BIN
image/character/liuhong.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 89 KiB

BIN
image/character/zhujun.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

BIN
image/skin/key_hiroto/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

BIN
image/skin/key_komari/1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

BIN
image/skin/key_yuri/5.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB