あたしわ死んだ世界戦線のリーダーなのよ

This commit is contained in:
Spmario233 2020-11-24 22:08:57 +08:00
parent 03aecb4927
commit e0016d8b00
23 changed files with 671 additions and 436 deletions

View File

@ -771,7 +771,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
value:5
},
result:{
target:function(player,target){
target_use:function(player,target){
if(player.hasUnknown(2)&&get.mode()!='guozhan') return 0;
var nh=target.countCards('h');
if(get.mode()=='identity'){
@ -781,6 +781,15 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(nh==1) return -1.7
return -1.5;
},
target:function(player,target){
var nh=target.countCards('h');
if(get.mode()=='identity'){
if(target.isZhu&&nh<=2&&target.hp<=1) return -100;
}
if(nh==0) return -2;
if(nh==1) return -1.7
return -1.5;
},
},
tag:{
respond:1,
@ -836,7 +845,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
value:5
},
result:{
target:function(player,target){
target_use:function(player,target){
if(player.hasUnknown(2)&&get.mode()!='guozhan') return 0;
var nh=target.countCards('h');
if(get.mode()=='identity'){
@ -846,6 +855,15 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(nh==1) return -1.7
return -1.5;
},
target:function(player,target){
var nh=target.countCards('h');
if(get.mode()=='identity'){
if(target.isZhu&&nh<=2&&target.hp<=1) return -100;
}
if(nh==0) return -2;
if(nh==1) return -1.7
return -1.5;
},
},
tag:{
respond:1,

View File

@ -234,15 +234,21 @@ game.import('card',function(lib,game,ui,get,ai,_status){
order:5
},
result:{
target:function(player,target){
var hs=target.getCards('h');
if(hs.length<=1){
if(target==player&&(hs.length==0||hs[0].name=='kaihua')){
return 0;
}
return 0.3;
}
return Math.sqrt(target.countCards('he'));
target:function(player,target,card){
var cards=ui.selected.cards.concat(card.cards||[]);
var num=player.countCards('he',function(card){
if(cards.contains(card)) return false;
if(get.type(card)=='equip') return 8>get.value(card);
return 6>get.value(card);
});
if(!num) return 0;
if(player.countCards('he',function(card){
if(cards.contains(card)) return false;
if(get.type(card)=='equip') return 4>get.value(card);
return false;
})) return 1.6;
if(num<2) return 0.5;
return 1.2;
},
},
tag:{
@ -325,9 +331,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
},
ai:{
order:9,
value:function(card,player){
if(player.getEquip(4)==card) return 0;
return 4;
},
equipValue:function(card,player){
if(get.position(card)=='e') return 0;
return 1;
if(player.getCards('e').contains(card)) return 0;
return -get.value(player.getCards('e'));
},
basic:{
equipValue:5,
@ -335,8 +345,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
result:{
keepAI:true,
target:function(player,target){
var card=target.getCards('e');
var val=get.value(card);
var cards=target.getCards('e');
var val=get.value(cards,target);
if(val>0) return -val;
return 0;
},
@ -351,10 +361,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
skills:['yajiaoqiang_skill'],
ai:{
equipValue:function(card,player){
var skills=['longdan','kanpo','rekanpo','qingguo','reqingguo'];
var skills=['longdan','kanpo','rekanpo','qingguo','reqingguo','ollongdan','refanghun'];
for(var i=0;i<skills.length;i++){
if(player.hasSkill(skills[i])) return 5;
}
if(player.countCards('h',function(card){
return get.color(card)=='black'&&['wuxie','caochuan'].contains(card);
})) return 5;
return 2;
},
basic:{
@ -374,7 +387,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
order:9,
equipValue:function(card,player){
if(get.position(card)=='e') return -2;
return 1;
return 2;
},
value:function(card,player){
if(player.getEquip(1)==card) return -1.5;
return 1.5;
},
basic:{
equipValue:5,
@ -382,10 +399,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
result:{
keepAI:true,
target:function(player,target){
var val=2.5;
var val=2;
var card=target.getEquip(2);
if(card) val+=get.value(card);
return -val;
if(card){
var val2=get.value(card,target);
if(val2<0) return 0;
}
return -val-val2;
},
},
},
@ -402,7 +422,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
order:9,
equipValue:function(card,player){
if(get.position(card)=='e') return -2;
return 1;
return 2;
},
value:function(card,player){
if(player.getEquip(1)==card) return -3;
return 3;
},
basic:{
equipValue:5,
@ -412,8 +436,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target:function(player,target){
var val=2.5;
var card=target.getEquip(2);
if(card) val+=get.value(card);
return -val;
if(card){
var val2=get.value(card,target);
if(val2<0) return 0;
}
return -val-val2;
},
},
},
@ -432,6 +459,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(get.position(card)=='e') return -1;
return 1;
},
value:function(card,player){
if(player.getEquip(2)==card) return -2.5;
return 2.5;
},
basic:{
equipValue:5,
},
@ -440,8 +471,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
target:function(player,target){
var val=2;
var card=target.getEquip(2);
if(card) val+=get.value(card);
return -val;
if(card){
var val2=get.value(card,target);
if(val2<0) return 0;
}
return -val-val2;
},
},
},
@ -479,7 +513,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
ai:{
order:9.5,
equipValue:function(card,player){
if(get.position(card)=='e'){
if(card==player.getEquip(2)){
if(player.sex!='male') return 0;
var num=player.countCards('he',function(cardx){
return cardx!=card;
@ -489,23 +523,32 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}
return 1;
},
value:function(){
return lib.card.nvzhuang.ai.equipValue.apply(this,arguments);
},
basic:{
equipValue:5,
},
result:{
keepAI:true,
target:function(player,target){
var card=target.getEquip(2);
if(target.sex=='male'){
var val=0;
var card=target.getEquip(2);
if(card) val=get.value(card);
if(card){
var val2=get.value(card,target);
if(val2<0) return 0;
}
var num=target.countCards('he',function(cardx){
return cardx!=card
});
if(num>0) val+=4/num;
return -val;
}
return 0;
if(card){
var val2=get.value(card,target);
if(val2>0) return val2/4;
}
},
},
}
@ -581,10 +624,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
ai:{
order:9.5,
equipValue:function(card,player){
if(get.position(card)!='e') return 5;
if(card!=player.getEquip(5)) return 5;
if(_status.jinhe&&_status.jinhe[card.cardid]&&(_status.event.name=='discardPlayerCard'||_status.event.name=='chooseToDiscard')) return 2*player.countCards('h');
return 0;
},
value:function(){
return lib.card.jinhe.ai.equipValue.apply(this,arguments);
},
basic:{
equipValue:5,
},

View File

@ -6,10 +6,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connectBanned:['diy_tianyu','diy_yangyi','diy_lukang','ns_huamulan','ns_yuji','ns_duangui','ns_liuzhang','key_yuu'],
character:{
sp_key_yuri:['female','qun',4,['mubing','ziqu','diaoling']],
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
ns_chendao:['male','shu',4,['nsjianglie']],
yj_caoang:['male','wei',4,['yjxuepin']],
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
key_lucia:['female','key','1/2',['lucia_duqu','lucia_zhenren']],
key_kyousuke:['male','key',4,['nk_shekong','key_huanjie']],
key_yuri:['female','key',3,['yuri_xingdong','key_huanjie','yuri_wangxi'],['zhu']],
@ -73,6 +69,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_sunchensunjun:['male','wu',5,['nsxianhai','nsxingchu']],
ns_yuanxi:['male','qun',4,['nsshengyan','nsdaizhan']],
ns_caoshuang:['male','wei',4,['nsjiquan','nsfuwei']],
ns_jiaxu:['male','qun',3,['nsyice','luanwu']],
ns_zhangwei:['female','shu',3,['nsqiyue','nsxuezhu']],
ns_chendao:['male','shu',4,['nsjianglie']],
yj_caoang:['male','wei',4,['yjxuepin']],
diy_wenyang:['male','wei','4/6',['lvli','choujue']],
// diy_caocao:['male','wei',4,['xicai','diyjianxiong','hujia']],
// diy_hanlong:['male','wei',4,['siji','ciqiu']],
diy_feishi:['male','shu',3,['nsshuaiyan','moshou']],
@ -170,7 +172,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"],
diy_default:["diy_feishi","diy_liuyan","diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji","diy_liufu","diy_xizhenxihong","diy_liuzan","diy_zaozhirenjun","diy_yangyi","diy_tianyu"],
diy_key:["key_lucia","key_kyousuke","key_yuri","key_haruko","key_umi","key_rei","key_komari","key_yukine","key_yusa","key_misa","key_masato","key_iwasawa","key_kengo","key_yoshino","key_yui","key_tsumugi","key_saya","key_harukakanata","key_inari","key_shiina","key_sunohara","key_rin","key_sasami","key_akane","key_doruji","key_yuiko","key_riki","key_hisako","key_hinata","key_noda","key_tomoya","key_nagisa","key_ayato","key_ao","key_yuzuru","sp_key_kanade","key_mio","key_midori","key_kyoko","key_shizuru","key_shiorimiyuki","key_miki","key_shiori","key_kaori","sp_key_yuri","key_akiko","key_abyusa","key_godan","key_yuu","key_ryoichi","key_kotori","key_jojiro","key_shiroha"],
diy_yongjian:["ns_chendao","yj_caoang"],
diy_yongjian:["ns_chendao","yj_caoang","ns_jiaxu"],
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'],
},
},
@ -3406,7 +3408,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
'step 0'
event.bool=player.inRange(trigger.player);
player.addTempSkill('tomoya_wangjin_'+event.bool,{global:'roundStart'});
player.addTempSkill('tomoya_wangjin_'+event.bool,'roundStart');
if(event.bool){
trigger.player.draw();
}
@ -4298,12 +4300,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
inari_baiwei:{
enable:'chooseToUse',
enable:['chooseToUse','chooseToRespond'],
filter:function(event,player){
if(event.type=='wuxie'||!player.countCards('he',{suit:'diamond'})) return false;
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(name!='du'&&get.type(name)=='basic'&&event.filterCard({name:name},player,event)) return true;
if(name!='du'&&name!='shan'&&get.type(name)=='basic'&&event.filterCard({name:name},player,event)) return true;
}
return false;
},
@ -4312,7 +4314,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var list=[];
for(var i=0;i<lib.inpile.length;i++){
var name=lib.inpile[i];
if(name=='du') continue;
if(name=='du'||name=='shan') continue;
if(name=='sha'){
list.addArray([
['基本','','sha'],
@ -4352,7 +4354,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
prompt:function(links,player){
return '将一张♦牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用';
return '将一张♦牌当做'+(get.translation(links[0][3])||'')+get.translation(links[0][2])+'使用或打出';
}
},
ai:{
@ -4375,15 +4377,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:1,
},
save:true,
respondSha:true,
skillTagFilter:function(player){
return player.countCards('he',{suit:'diamond'})>0;
},
},
group:['inari_baiwei_sha','inari_baiwei_shan','inari_baiwei_draw'],
group:['inari_baiwei_shan','inari_baiwei_draw'],
},
inari_baiwei_shan:{
prompt:'将一张♦牌当做闪打出',
enable:'chooseToRespond',
prompt:'将一张♦牌当做闪使用或打出',
enable:['chooseToRespond','chooseToUse'],
viewAs:{name:'shan'},
selectCard:1,
filterCard:{suit:'diamond'},
@ -4393,7 +4396,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
position:'he',
ai:{
order:1,
order:10,
result:{player:1},
respondShan:true,
skillTagFilter:function(player){
@ -4401,26 +4404,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
inari_baiwei_sha:{
prompt:'将一张♦牌当做杀打出',
enable:'chooseToRespond',
viewAs:{name:'sha'},
selectCard:1,
filterCard:{suit:'diamond'},
popname:true,
check:function(card){
return 1/Math.max(0.1,get.value(card));
},
position:'he',
ai:{
order:1,
result:{player:1},
respondSha:true,
skillTagFilter:function(player){
return player.countCards('he',{suit:'diamond'})>0;
},
},
},
inari_baiwei_draw:{
trigger:{player:['useCardAfter','respondAfter']},
forced:true,
@ -5289,8 +5272,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
nsxuezhu:{
trigger:{player:'damageEnd',source:'damageSource'},
filter:function(event,player){return event.player.isAlive()},
content:function(){trigger.player.draw(2);trigger.player.turnOver();},
filter:function(event,player){
return event.player.isAlive();
},
logTarget:'player',
content:function(){
trigger.player.draw(2);
trigger.player.turnOver();
},
check:function(event,player){
return !event.player.isTurnedOver()||get.attitude(player,event.player)>0;
},
},
yukine_wenzhou:{
trigger:{global:'phaseUseBegin'},
@ -6372,6 +6364,92 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
nsyice:{
trigger:{
player:'loseAfter',
global:'cardsDiscardAfter',
},
filter:function(event,player){
if(event.name=='lose'){
if(event.type!='discard') return false;
}
else{
var evt=event.getParent();
if(evt.name!='orderingDiscard'||!evt.relatedEvent||evt.relatedEvent.player!=player||!['useCard','respond'].contains(evt.relatedEvent.name)) return false;
}
return event.cards.filterInD('d').length>0;
},
forced:true,
content:function(){
'step 0'
var evt=trigger.getParent().relatedEvent;
if((trigger.name=='discard'&&!trigger.delay)||evt&&evt.name=='respond') game.delayx();
'step 1'
var cards=trigger.cards.filterInD('d');
player.$gain2(cards);
if(cards.length==1) event._result={bool:true,links:cards};
else{
var dialog=['遗策:选择要放置的卡牌','<div class="text center">(从左到右为从旧到新,后选择的后置入)</div>',cards];
var cards2=player.getStorage('nsyice');
if(cards2.length){
dialog.push('<div class="text center">原有“策”</div>');
dialog.push(cards2);
}
player.chooseButton(dialog,true,cards.length).set('filterButton',function(button){
return _status.event.cards.contains(button.link);
}).set('cards',cards);
}
'step 2'
game.cardsGotoSpecial(result.links);
player.markAuto('nsyice',result.links);
game.delayx();
'step 3'
var storage=player.storage.nsyice;
var bool=false;
for(var i=0;i<storage.length;i++){
for(var j=storage.length-1;j>i;j--){
if(get.number(storage[i])==get.number(storage[j])){
bool=true;
break;
}
}
if(bool) break;
}
if(bool){
event.cards=storage.slice(0);
event.cards=storage.splice(i,j-i+1);
player.unmarkAuto('nsyice',event.cards);
}
else event.finish();
'step 4'
var cardsx=[];
cardsx.push(cards.shift());
cardsx.push(cards.pop());
if(cards.length) player.gain(cards,'gain2');
event.cards=cardsx;
'step 5'
player.chooseButton(['将一张牌置于牌堆顶,将另一张牌置于牌堆底',cards],true);
'step 6'
ui.cardPile.insertBefore(result.links[0].fix(),ui.cardPile.firstChild);
cards.remove(result.links[0]);
ui.cardPile.appendChild(cards[0].fix());
game.updateRoundNumber();
if(_status.dying.length) event.finish();
'step 7'
player.chooseTarget('对一名角色造成1点伤害',true).set('ai',function(target){
var player=_status.event.player;
return get.damageEffect(target,player,player);
});
'step 8'
if(result.bool){
var target=result.targets[0];
player.line(target);
target.damage('nocard');
}
},
marktext:'策',
intro:{content:'cards'},
},
junktaoluan:{
audio:'taoluan',
enable:'chooseToUse',
@ -12080,10 +12158,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_caimao:'蔡瑁',
nsdingzhou:'定州',
nsdingzhou_info:'出牌阶段限一次你可以选择一名区域内有牌的其他角色。你随机获得其区域内的一张牌然后摸一张牌。若你以此法获得了两张颜色不同的牌则你失去1点体力。',
ns_jiaxu:'贾诩',
nsyice:'遗策',
nsyice_info:'锁定技,当你使用/打出/弃置的牌进入弃牌堆后你将这些牌以任意顺序置于你的武将牌上称为“策”。若这些“策”中有点数相同的牌则你获得这两张牌中的所有牌将这两张牌置于牌堆两端。若场上没有处于濒死状态的角色则你对一名角色造成1点伤害。',
diy_tieba:'吧友设计',
diy_default:'常规',
diy_key:'论外',
diy_yongjian:'用间篇',
diy_yongjian:'其他官方武将',
diy_yijiang:'设计比赛2020',
diy_fakenews:'假新闻',
diy_trashbin:'垃圾桶',

View File

@ -943,6 +943,7 @@ window.noname_character_rank={
'ns_huangchengyan',
'ns_sunchensunjun',
'ns_yuanxi',
'ns_jiaxu',
'key_haruko',
'key_akiko',
'key_sunohara',

View File

@ -9,8 +9,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
refresh_lin:['re_zhurong','re_menghuo','ol_sunjian','re_caopi','re_xuhuang','ol_dongzhuo'],
refresh_shan:['re_dengai','re_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai'],
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_lingtong','re_masu','xin_xusheng','xin_fazheng'],
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_liubiao','re_bulianshi','xin_lingtong'],
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_lingtong','re_masu','xin_xusheng','xin_fazheng','xin_lingtong'],
refresh_yijiang2:['old_madai','wangyi','guanzhang','re_handang','re_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_liubiao','re_bulianshi','xin_liubiao'],
refresh_yijiang3:['re_jianyong','re_guohuai','re_zhuran','re_panzhangmazhong','re_yufan','re_liru','re_manchong'],
refresh_yijiang4:['re_sunluban','re_wuyi','re_hanhaoshihuan'],
refresh_yijiang5:['re_zhangyi','re_quancong','re_caoxiu','re_sunxiu'],
@ -19,6 +19,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
connect:true,
character:{
xin_lingtong:['male','wu',4,['decadexuanfeng','yongjin'],['unseen']],
xin_liubiao:['male','qun',3,['decadezishou','decadezongshi'],['unseen']],
re_caoxiu:['male','wei',4,['qianju','reqingxi']],
re_sunxiu:['male','wu',3,['reyanzhu','rexingxue','zhaofu'],['zhu']],
ol_dengai:['male','wei',4,['oltuntian','olzaoxian'],['unseen']],
@ -128,6 +129,71 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sunben:['zhouyu','taishici','daqiao'],
},
skill:{
decadezongshi:{
audio:2,
mod:{
maxHandcard:function(player,num){
return num+game.countGroup();
},
},
trigger:{target:'useCardToTargeted'},
forced:true,
filter:function(event,player){
return player!=_status.currentPhase&&player.countCards('h')>player.getHandcardLimit()&&
(get.type(event.card)=='delay'||get.color(event.card)=='nocolor');
},
content:function(){
trigger.excluded.add(player);
},
ai:{
effect:{
target:function(card,player,target){
if(target!=_status.currentPhase&&target.countCards('h')>target.getHandcardLimit()&&
(get.type(card)=='delay'||get.color(card)=='nocolor')) return 'zerotarget';
},
},
},
},
decadezishou:{
audio:2,
inherit:'rezishou',
group:'decadezishou_zhiheng',
ai:{
threaten:1.8,
},
},
decadezishou_zhiheng:{
trigger:{player:'phaseJieshuBegin'},
direct:true,
filter:function(event,player){
return player.countCards('h')>0&&!player.getHistory('useCard',function(evt){
return evt.targets.filter(function(target){
return target!=player;
}).length>0;
}).length;
},
content:function(){
'step 0'
var list=[];
var hs=player.getCards('h');
for(var i of hs){
list.add(get.suit(i,player));
}
player.chooseToDiscard('h',get.prompt('decadezishou'),'弃置任意张花色不同的手牌并摸等量的牌',[1,list.length],function(card,player){
if(ui.selected.cards.length){
var suit=get.suit(card,player);
for(var i of ui.selected.cards){
if(get.suit(i,player)==suit) return false;
}
}
return true;
}).set('ai',lib.skill.zhiheng.check).set('complexCard',true).logSkill='decadezishou';
'step 1'
if(result.bool){
player.draw(result.cards.length);
}
},
},
yongjin:{
unique:true,
limited:true,
@ -211,7 +277,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var i;
var att2=get.sgn(get.attitude(player,ui.selected.targets[0]));
for(i=0;i<es.length;i++){
if(sgnatt!=0&&att2!=0&&
if(sgnatt!=0&&att2!=0&&sgnatt!=att2&&
get.sgn(get.value(es[i],ui.selected.targets[0]))==-att2&&
get.sgn(get.effect(target,es[i],player,target))==sgnatt&&
target.isEmpty(get.subtype(es[i]))){
@ -248,7 +314,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return 0;
}
else{
return get.equipValue(button.link)*get.effect(targets1,button.link,player,targets1);
return get.value(button.link)*get.effect(targets1,button.link,player,player);
}
},targets[0]).set('nojudge',event.nojudge||false).set('targets0',targets[0]).set('targets1',targets[1]).set('filterButton',function(button){
if(_status.event.cards.contains(button.link)) return false;
@ -1776,7 +1842,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(att>0){
if(target.countCards('e',function(card){
return get.value(card,target)<0&&game.hasPlayer(function(current){
return current!=player&&current!=target&&get.attitude(player,current)<0&&current.isEmpty(get.subtype(card))
return current!=player&&current!=target&&get.attitude(player,current)<0&&current.isEmpty(get.subtype(card))&&get.effect(current,card,player,player)>0;
});
})>0) return 9;
}
@ -1785,7 +1851,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(current!=target&&current!=player&&get.attitude(player,current)>0){
var es=target.getCards('e');
for(var i=0;i<es.length;i++){
if(get.value(es[i],target)>0&&current.isEmpty(get.subtype(es[i]))&&get.value(es[i],current)>0) return true;
if(get.value(es[i],target)>0&&current.isEmpty(get.subtype(es[i]))&&get.effect(current,es[i],player,player)>0) return true;
}
}
})){
@ -1798,7 +1864,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var i;
var att2=get.sgn(get.attitude(player,ui.selected.targets[0]));
for(i=0;i<es.length;i++){
if(sgnatt!=0&&att2!=0&&
if(sgnatt!=0&&att2!=0&&sgnatt!=att2&&
get.sgn(get.value(es[i],ui.selected.targets[0]))==-att2&&
get.sgn(get.value(es[i],target))==sgnatt&&
target.isEmpty(get.subtype(es[i]))){
@ -1831,11 +1897,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
var targets0=_status.event.targets0;
var targets1=_status.event.targets1;
if(get.attitude(player,targets0)>get.attitude(player,targets1)){
if(get.value(button.link,targets0)<0) return 10;
if(get.value(button.link,targets0)<0) return get.effect(targets1,button.link,player,player);
return 0;
}
else{
return get.equipValue(button.link);
return get.value(button.link,targets0)*get.effect(targets1,button.link,player,player);
}
},targets[0]).set('targets0',targets[0]).set('targets1',targets[1]).set('filterButton',function(button){
var targets1=_status.event.targets1;
@ -1866,7 +1932,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(withatt){
if(get.sgn(get.value(es[i],current))!=-att) return false;
var att2=get.sgn(get.attitude(player,current2));
if(att2!=get.sgn(get.value(es[i],current2))) return false;
if(att==att2||att2!=get.sgn(get.value(es[i],current2))) return false;
}
return current!=current2&&!current2.isMin()&&current2.isEmpty(get.subtype(es[i]));
})){
@ -3261,7 +3327,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
enable:'phaseUse',
usable:1,
//usable:1,
prompt:'请选择〖制霸〗的目标',
filter:function(event,player){
if(player.hasZhuSkill('olzhiba')&&!player.hasSkill('olzhiba3')&&game.hasPlayer(function(current){
@ -3653,10 +3719,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
reguhuo:{
audio:2,
derivation:'rechanyuan',
enable:'chooseToUse',
enable:['chooseToUse','chooseToRespond'],
filter:function(event,player){
return player.countCards('h')>0&&!player.hasSkill('reguhuo_phase')&&
event.type!='respondShan'&&event.type!='wuxie';
if(!player.countCards('h')||player.hasSkill('reguhuo_phase')) return false;
for(var i of lib.inpile){
if(i=='shan'||i=='wuxie') continue;
var type=get.type(i);
if((type=='basic'||type=='trick')&&event.filterCard({name:i},player,event)) return true;
if(i=='sha'&&(event.filterCard({name:i,nature:'fire'},player,event)||event.filterCard({name:i,nature:'thunder'},player,event))) return true;
}
return false;
},
chooseButton:{
dialog:function(){
@ -3682,7 +3754,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var card={name:button.link[2],nature:button.link[3]};
var val=player.getUseValue(card);
var val=_status.event.getParent().type=='phase'?player.getUseValue(card):1;
if(val<=0) return 0;
if(hasEnemy){
if(!player.countCards('h',function(cardx){
@ -3736,36 +3808,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:1,
},
},
group:['reguhuo_sha','reguhuo_shan','reguhuo_wuxie','reguhuo_guess'],
},
reguhuo_sha:{
enable:'chooseToRespond',
viewAs:{
name:'sha',
suit:'none',
number:null,
},
viewAsFilter:function(player){
return player.countCards('h')&&!player.hasSkill('reguhuo_phase');
},
check:function(card){
var player=_status.event.player;
var hasEnemy=game.hasPlayer(function(current){
return current!=player&&!current.hasSkill('rechanyuan')&&(get.realAttitude||get.attitude)(current,player)<0;
});
var cardx='sha';
if(hasEnemy){
if(card.name==cardx) return 10;
return 0;
}
return 6-get.value(card);
},
prompt:'将一张牌当做【杀】打出',
filterCard:true,
position:'h',
ai:{
order:4,
},
group:['reguhuo_shan','reguhuo_wuxie','reguhuo_guess'],
},
reguhuo_shan:{
enable:['chooseToUse','chooseToRespond'],
@ -3841,7 +3884,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.addTempSkill('reguhuo_phase');
event.fake=false;
var card=trigger.cards[0];
if(card.name!=trigger.card.name||(trigger.name!='respond'&&card.name=='sha'&&(trigger.card.nature||card.nature)&&trigger.card.nature!=card.nature)) event.fake=true;
if(card.name!=trigger.card.name||(card.name=='sha'&&(trigger.card.nature||card.nature)&&trigger.card.nature!=card.nature)) event.fake=true;
player.logSkill('reguhuo');
player.line(trigger.targets,get.nature(trigger.card));
event.cardTranslate=get.translation(trigger.card.name);
@ -8264,9 +8307,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_caoxiu:'界曹休',
xin_lingtong:'界凌统',
decadexuanfeng:'旋风',
decadexuanfeng_info:'当你于弃牌阶段弃置过至少两张牌,或当你失去装备区里的牌后,你可以弃置至多两名其他角色的共计两张牌。若此时是你的回合内,你可以对其中一目标造成1点伤害。',
decadexuanfeng_info:'当你于弃牌阶段弃置过至少两张牌,或当你失去装备区里的牌后,你可以弃置至多两名其他角色的共计两张牌。若此时是你的回合内,你可以对其中一目标造成1点伤害。',
yongjin:'勇进',
yongjin_info:'限定技,出牌阶段,你可以依次移动场上的至多三张不同的装备牌。',
xin_liubiao:'界刘表',
decadezishou:'自守',
decadezishou_zhiheng:'自守',
decadezishou_info:'摸牌阶段你可以多摸X张牌,然后本回合你对其他角色造成伤害时,防止此伤害。结束阶段,若你本回合没有使用牌指定其他角色为目标,你可以弃置任意张花色不同的手牌,然后摸等量的牌。',
decadezongshi:'宗室',
decadezongshi_info:'锁定技,你的手牌上限+XX为现存势力数。你的回合外若你的手牌数大于等于手牌上限延时类锦囊牌或无颜色的牌对你无效。',
refresh_standard:'界限突破·标',
refresh_feng:'界限突破·风',

View File

@ -588,12 +588,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.addSkillLog(result.control);
game.broadcastAll(function(skill){
var list=[skill];game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.caoshuang='tuogu';
}
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.caoshuang='tuogu';
}
},result.control);
},
},
@ -625,12 +625,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.broadcastAll(function(skill){
var list=[skill];
game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.caoshuang='tuogu';
}
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.caoshuang='tuogu';
}
},result.control);
},
mark:true,
@ -783,11 +783,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
content:function(){
if(trigger.name=='lose'){
for(var i of trigger.cards2){
if(player.getStorage('zlshoufu2').filter(function(magic){
return get.type2(magic)==get.type(i,trigger.hs.contains(i)?player:false);
}).length) player.storage.zlshoufu2_markcount++;
}
for(var i of trigger.cards2){
if(player.getStorage('zlshoufu2').filter(function(magic){
return get.type2(magic)==get.type(i,trigger.hs.contains(i)?player:false);
}).length) player.storage.zlshoufu2_markcount++;
}
}
if(trigger.name=='damage'||player.storage.zlshoufu2_markcount>=2) player.unmarkSkill('zlshoufu2');
else player.markSkill('zlshoufu2');
@ -845,9 +845,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
if(card){
if(card.name=='qinggang'&&!lib.inpile.contains('qibaodao')){
card.remove();
card=game.createCard('qibaodao',card.suit,card.number);
}
card.remove();
card=game.createCard('qibaodao',card.suit,card.number);
}
targets[0].chooseUseTarget(card,true,'nopopup','nothrow');
}
else{
@ -2139,28 +2139,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
gzjili:{
mod:{
aiOrder:function(player,card,num){
if(player.isPhaseUsing()&&get.subtype(card)=='equip1'&&!get.cardtag(card,'gifts')){
var range0=player.getAttackRange();
var range=0;
var info=get.info(card);
if(info&&info.distance&&info.distance.attackFrom){
range-=info.distance.attackFrom;
}
if(player.getEquip(1)){
var num=0;
var info=get.info(player.getEquip(1));
if(info&&info.distance&&info.distance.attackFrom){
num-=info.distance.attackFrom;
}
range0-=num;
}
range0+=range;
if(range0==(player.getHistory('useCard').length+player.getHistory('respond').length+2)&&player.countCards('h',function(cardx){
return get.subtype(cardx)!='equip1'&&player.getUseValue(cardx)>0;
})) return num+10;
}
},
aiOrder:function(player,card,num){
if(player.isPhaseUsing()&&get.subtype(card)=='equip1'&&!get.cardtag(card,'gifts')){
var range0=player.getAttackRange();
var range=0;
var info=get.info(card);
if(info&&info.distance&&info.distance.attackFrom){
range-=info.distance.attackFrom;
}
if(player.getEquip(1)){
var num=0;
var info=get.info(player.getEquip(1));
if(info&&info.distance&&info.distance.attackFrom){
num-=info.distance.attackFrom;
}
range0-=num;
}
range0+=range;
if(range0==(player.getHistory('useCard').length+player.getHistory('respond').length+2)&&player.countCards('h',function(cardx){
return get.subtype(cardx)!='equip1'&&player.getUseValue(cardx)>0;
})) return num+10;
}
},
},
trigger:{player:['useCard','respond']},
frequent:true,
@ -2176,31 +2176,31 @@ game.import('character',function(lib,game,ui,get,ai,_status){
threaten:1.8,
effect:{
target:function(card,player,target,current){
if(player!=target||!player.isPhaseUsing()) return;
if(get.subtype(card)=='equip1'&&!get.cardtag(card,'gifts')){
var range0=player.getAttackRange();
var range=0;
var info=get.info(card);
if(info&&info.distance&&info.distance.attackFrom){
range-=info.distance.attackFrom;
}
if(player.getEquip(1)){
var num=0;
var info=get.info(player.getEquip(1));
if(info&&info.distance&&info.distance.attackFrom){
num-=info.distance.attackFrom;
}
range0-=num;
}
range0+=range;
var delta=range0-(player.getHistory('useCard').length+player.getHistory('respond').length);
if(delta<0) return;
var num=player.countCards('h',function(card){
return (get.cardtag(card,'gifts')||get.subtype(card)!='equip1')&&player.getUseValue(card)>0;
});
if(delta==2&&num>0) return [1,3];
if(num>=delta) return 'zeroplayertarget';
}
if(player!=target||!player.isPhaseUsing()) return;
if(get.subtype(card)=='equip1'&&!get.cardtag(card,'gifts')){
var range0=player.getAttackRange();
var range=0;
var info=get.info(card);
if(info&&info.distance&&info.distance.attackFrom){
range-=info.distance.attackFrom;
}
if(player.getEquip(1)){
var num=0;
var info=get.info(player.getEquip(1));
if(info&&info.distance&&info.distance.attackFrom){
num-=info.distance.attackFrom;
}
range0-=num;
}
range0+=range;
var delta=range0-(player.getHistory('useCard').length+player.getHistory('respond').length);
if(delta<0) return;
var num=player.countCards('h',function(card){
return (get.cardtag(card,'gifts')||get.subtype(card)!='equip1')&&player.getUseValue(card)>0;
});
if(delta==2&&num>0) return [1,3];
if(num>=delta) return 'zeroplayertarget';
}
},
},
}
@ -5266,16 +5266,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
for(var i of map.skills) player.addSkillLog(i);
}
game.broadcastAll(function(list){
game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.old_yuanshu='weidi';
}
},map.skills);
'step 3'
if(player.isMinHp()) player.recover();
game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.old_yuanshu='weidi';
}
},map.skills);
'step 3'
if(player.isMinHp()) player.recover();
},
},
refanghun:{
@ -5321,94 +5321,94 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sha:{
audio:'fanghun',
enable:['chooseToUse','chooseToRespond'],
prompt:'弃置一枚【梅影】标记,将杀当做闪,或将闪当做杀,或将桃当做酒,或将酒当做桃使用或打出',
viewAs:function(cards,player){
var name=false;
switch(get.name(cards[0],player)){
case 'sha':name='shan';break;
case 'shan':name='sha';break;
case 'tao':name='jiu';break;
case 'jiu':name='tao';break;
}
if(name) return {name:name};
return null;
},
check:function(card){
var player=_status.event.player;
if(_status.event.type=='phase'){
var max=0;
var name2;
var list=['sha','tao','jiu'];
var map={sha:'shan',tao:'jiu',jiu:'tao'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('h',map[name])>(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max){
max=temp;
name2=map[name];
}
}
}
if(name2==get.name(card,player)) return 1;
return 0;
}
return 1;
},
filterCard:function(card,player,event){
event=event||_status.event;
var filter=event._backup.filterCard;
var name=get.name(card,player);
if(name=='sha'&&filter({name:'shan',cards:[card]},player,event)) return true;
if(name=='shan'&&filter({name:'sha',cards:[card]},player,event)) return true;
if(name=='tao'&&filter({name:'jiu',cards:[card]},player,event)) return true;
if(name=='jiu'&&filter({name:'tao',cards:[card]},player,event)) return true;
return false;
},
filter:function(event,player){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
var filter=event.filterCard;
if(filter({name:'sha'},player,event)&&player.countCards('h','shan')) return true;
if(filter({name:'shan'},player,event)&&player.countCards('h','sha')) return true;
if(filter({name:'tao'},player,event)&&player.countCards('h','jiu')) return true;
if(filter({name:'jiu'},player, event)&&player.countCards('h','tao')) return true;
return false;
},
onrespond:function(){return this.onuse.apply(this,arguments)},
onuse:function(result,player){
prompt:'弃置一枚【梅影】标记,将杀当做闪,或将闪当做杀,或将桃当做酒,或将酒当做桃使用或打出',
viewAs:function(cards,player){
var name=false;
switch(get.name(cards[0],player)){
case 'sha':name='shan';break;
case 'shan':name='sha';break;
case 'tao':name='jiu';break;
case 'jiu':name='tao';break;
}
if(name) return {name:name};
return null;
},
check:function(card){
var player=_status.event.player;
if(_status.event.type=='phase'){
var max=0;
var name2;
var list=['sha','tao','jiu'];
var map={sha:'shan',tao:'jiu',jiu:'tao'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('h',map[name])>(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max){
max=temp;
name2=map[name];
}
}
}
if(name2==get.name(card,player)) return 1;
return 0;
}
return 1;
},
filterCard:function(card,player,event){
event=event||_status.event;
var filter=event._backup.filterCard;
var name=get.name(card,player);
if(name=='sha'&&filter({name:'shan',cards:[card]},player,event)) return true;
if(name=='shan'&&filter({name:'sha',cards:[card]},player,event)) return true;
if(name=='tao'&&filter({name:'jiu',cards:[card]},player,event)) return true;
if(name=='jiu'&&filter({name:'tao',cards:[card]},player,event)) return true;
return false;
},
filter:function(event,player){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
var filter=event.filterCard;
if(filter({name:'sha'},player,event)&&player.countCards('h','shan')) return true;
if(filter({name:'shan'},player,event)&&player.countCards('h','sha')) return true;
if(filter({name:'tao'},player,event)&&player.countCards('h','jiu')) return true;
if(filter({name:'jiu'},player, event)&&player.countCards('h','tao')) return true;
return false;
},
onrespond:function(){return this.onuse.apply(this,arguments)},
onuse:function(result,player){
player.removeMark('fanghun',1);
},
ai:{
respondSha:true,
respondShan:true,
save:true,
skillTagFilter:function(player,tag){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
var name;
switch(tag){
case 'respondSha':name='shan';break;
case 'respondShan':name='sha';break;
case 'save':name='jiu';break;
}
if(!player.countCards('h',name)) return false;
},
order:function(item,player){
if(player&&_status.event.type=='phase'){
var max=0;
var list=['sha','tao','jiu'];
var map={sha:'shan',tao:'jiu',jiu:'tao'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('h',map[name])>(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max) max=temp;
}
}
if(max>0) max+=0.3;
return max;
}
return 4;
},
ai:{
respondSha:true,
respondShan:true,
save:true,
skillTagFilter:function(player,tag){
if(!player.storage.fanghun||player.storage.fanghun<0) return false;
var name;
switch(tag){
case 'respondSha':name='shan';break;
case 'respondShan':name='sha';break;
case 'save':name='jiu';break;
}
if(!player.countCards('h',name)) return false;
},
order:function(item,player){
if(player&&_status.event.type=='phase'){
var max=0;
var list=['sha','tao','jiu'];
var map={sha:'shan',tao:'jiu',jiu:'tao'}
for(var i=0;i<list.length;i++){
var name=list[i];
if(player.countCards('h',map[name])>(name=='jiu'?1:0)&&player.getUseValue({name:name})>0){
var temp=get.order({name:name});
if(temp>max) max=temp;
}
}
if(max>0) max+=0.3;
return max;
}
return 4;
},
},
},
}
@ -5467,14 +5467,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player.popup(event.list[0]);
player.storage.zhuSkill_yjixi=event.list;
game.broadcastAll(function(list){
game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.old_yuanshu='weidi';
}
},event.list);
game.expandSkills(list);
for(var i of list){
var info=lib.skill[i];
if(!info) continue;
if(!info.audioname2) info.audioname2={};
info.audioname2.old_yuanshu='weidi';
}
},event.list);
}
}
},
@ -9557,12 +9557,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
"step 1"
if(result.bool){
player.addSkill('rebiluan2');
var ng=Math.min(4,game.countPlayer());
player.$damagepop(ng,'unknownx');
player.storage.rebiluan2+=ng;
player.markSkill('rebiluan2');
game.addVideo('storage',player,['rebiluan2',player.storage.rebiluan2]);
player.addSkill('rebiluan2');
var ng=Math.min(4,game.countPlayer());
player.$damagepop(ng,'unknownx');
player.storage.rebiluan2+=ng;
player.markSkill('rebiluan2');
game.addVideo('storage',player,['rebiluan2',player.storage.rebiluan2]);
}
},
},
@ -9629,10 +9629,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
});
"step 1"
if(event.videoId!=undefined){
if(player.isOnline2()){
player.send('closeDialog',event.videoId);
}
event.dialog.close();
if(player.isOnline2()){
player.send('closeDialog',event.videoId);
}
event.dialog.close();
}
var map=[
function(trigger,player,event){
@ -9652,7 +9652,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
game.log(player,'选择了','#g【礼下】','的','#y选项'+get.cnNumber(result.links[i]+1,true));
map[result.links[i]](trigger,player,event);
}
player.addSkill('rebiluan2');
player.addSkill('rebiluan2');
player.storage.rebiluan2-=result.links.length;
player.markSkill('rebiluan2');
game.addVideo('storage',player,['rebiluan2',player.storage.rebiluan2]);
@ -9866,7 +9866,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(!player.storage.kunfen){
event.skillHidden=true;
}
player.chooseBool(get.prompt2('kunfen')).set('ai',function(){
player.chooseBool(get.prompt('kunfen'),'结束阶段开始时你可以失去1点体力然后摸两张牌。').set('ai',function(){
var player=_status.event.player;
if(player.hp>3) return true;
if(player.hp==3&&player.countCards('h')<3) return true;
@ -10286,12 +10286,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
ai:{
effect:function(card,player,target){
var type=get.type2(card);
var list=target.getStorage('zuixiang2');
for(var i of list){
if(get.type2(i)==type) return 'zeroplayertarget';
}
effect:{
target:function(card,player,target){
var type=get.type2(card);
var list=target.getStorage('zuixiang2');
for(var i of list){
if(get.type2(i)==type) return 'zeroplayertarget';
}
},
},
},
},
@ -12162,7 +12164,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return result;
}
return 1;
});;
});
'step 1'
var evt=event.getParent(2);
if(result.bool&&result.links&&result.links.length){
@ -13406,6 +13408,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
init:{
audio:'xinfu_xionghuo',
trigger:{
global:"gameDrawAfter",
player:"enterGame",
@ -13433,13 +13436,34 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ai:{
order:11,
result:{
target:function (player,target){
var mark=player.countMark('xionghuo');
if(mark>2) return -1;
return Math.min(-(1+mark-target.hp),0);
target:function(player,target){
if((player.countMark('xionghuo')>=2||!game.hasPlayer(function(current){
return current!=player&&get.attitude(player,current)<0&&current.hasMark('xionghuo');
}))&&player.countCards('h',function(card){
return get.tag(card,'damage')&&player.canUse(card,target,null,true)
&&player.getUseValue(card)>0&&get.effect_use(target,card,player)>0
&&target.hasSkillTag('filterDamage',null,{
player:player,
card:card,
});
})) return 3/Math.max(1,target.hp);
if((!player.hasUnknown()&&game.countPlayer(function(current){
return get.attitude(player,current)<0;
})<=1)||player.countMark('xionghuo')>=2){
return -1;
}
return 0;
},
},
threaten:1.1,
effect:{
player:function(card,player,target){
if(player!=target&&get.tag(card,'damage')&&target&&target.hasMark('xionghuo')&&!target.hasSkillTag('filterDamage',null,{
player:player,
card:card,
})) return [1,0,1,-2];
},
},
threaten:1.6,
},
},
xionghuo:{

View File

@ -1416,56 +1416,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
check:function(button){
var player=_status.event.player;
var players=game.filterPlayer();
if(player.countCards('h',button.link)) return 0;
if(button.link[2]=='wuzhong'){
if(player.countCards('h')<player.hp){
return 3+Math.random();
}
return 0;
}
if(button.link[2]=='tao'){
return 3+Math.random();
}
if(button.link[2]=='sha'){
return 2+Math.random();
}
if(button.link[2]=='juedou'){
return 2+Math.random();
}
if(button.link[2]=='guohe'){
return 2+Math.random();
}
if(button.link[2]=='shunshou'){
for(var i=0;i<players.length;i++){
if(player.canUse('shunshou',players[i])&&get.attitude(player,players[i])<0){
return 2+Math.random();
}
}
return 0;
}
if(button.link[2]=='tiesuo'){
return 1+Math.random();
}
if(button.link[2]=='jiu'){
if(get.effect(player,{name:'jiu'})>0){
return 1+Math.random();
}
return 0;
}
if(button.link[2]=='nanman'||button.link[2]=='wanjian'||button.link[2]=='taoyuan'||button.link[2]=='wugu'){
var eff=0;
for(var i=0;i<players.length;i++){
if(players[i]!=player){
eff+=get.effect(players[i],{name:button.link[2]},player,player);
}
}
if(eff>0){
return eff+Math.random();
}
return 0;
}
return Math.random();
if(player.countCards('h',button.link[2])) return 0;
if(_status.event.getParent().type!='phase') return 1;
return player.getUseValue({name:button.link[2]});
},
backup:function(links,player){
return {
@ -1475,7 +1428,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
check:function(card){
return 1;
},
viewAs:{name:links[0][2],nature:links[0][3]},
viewAs:{name:links[0][2],nature:links[0][3],isCard:true},
}
},
prompt:function(links,player){

View File

@ -16,7 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tw_xiahouba:['male','shu',4,['twyanqin','twbaobian']],
tw_zumao:['male','wu',4,['twtijin']],
tw_caoang:['male','wei',4,['twxiaolian']],
tw_dingfeng:['male','wu',4,['twqijia','twzhulin']],
tw_dingfeng:['male','wu',4,['twqijia','twzhuchen']],
tw_caohong:['male','wei',4,['twhuzhu','twliancai']],
tw_maliang:['male','shu',3,['twrangyi','twbaimei']],
kaisa:["male","western",4,["zhengfu"]],
@ -52,9 +52,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.chooseToUse({
prompt:'请使用得到的一张牌,或者受到来自'+get.translation(player)+'的一点伤害',
filterCard:function(card,player,event){
if(get.itemtype(card)!='card'||!cards.contains(card)) return false;
if(get.itemtype(card)!='card'||!event.cards.contains(card)) return false;
return lib.filter.filterCard(card,player,event);
},
cards:cards,
});
'step 2'
if(result.bool){
@ -88,18 +89,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
player:"damageBegin4",
},
forced:true,
priority:15,
filter:function (event,player){
filter:function(event,player){
if(player.countCards('h')) return false;
if(event.nature) return true;
return get.type(event.card,'trick')=='trick';
},
content:function (){
content:function(){
trigger.cancel();
},
ai:{
effect:{
target:function (card,player,target,current){
target:function(card,player,target,current){
if(target.countCards('h')) return;
if(get.tag(card,'natureDamage')) return 'zerotarget';
if(get.type(card)=='trick'&&get.tag(card,'damage')){
@ -128,9 +128,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(player.countGainableCards(player,'e')) target.gainPlayerCard(player,'e',true);
'step 3'
if(target.isDamaged()&&target.hp<=player.hp){
player.chooseBool('是否令'+get.translation(target)+'回复1点体力').ai=function(){
player.chooseBool('是否令'+get.translation(target)+'回复1点体力').set('ai',function(){
return get.recoverEffect(target,player,player);
};
});
}
'step 4'
if(result.bool) target.recover();
@ -139,7 +139,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
order:8,
result:{
target:function(player,target){
var eff=(target.isDamaged()&&target.hp<=player.hp)?get.recoverEffect(target,player,player):0;
var eff=(target.isDamaged()&&target.hp<=player.hp)?get.recoverEffect(target,player,target):0;
if(eff<=0&&!player.countGainableCards(target,'e')) return -1;
return eff;
},
@ -148,15 +148,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
twliancai:{
audio:2,
trigger:{player:['turnOverEnd','phaseEnd']},
trigger:{player:['turnOverEnd','phaseJieshuBegin']},
filter:function(card,player,target){
return target=='phaseEnd'||player.countCards('h')<player.hp;
return target=='phaseJieshuBegin'||player.countCards('h')<player.hp;
},
filterTarget:function(card,player,target){
return target!=player&&target.countGainableCards(player,'e')>0;
},
check:function(card,player){
if(card.name=='turnOve') return true;
if(card.name=='turnOver') return true;
if(player.isTurnedOver()) return true;
if(player.hp-player.countCards('h')>1) return true;
return game.hasPlayer(function(current){
@ -170,11 +170,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return -att;
},
prompt2:function(card,player,target){
return card.name=='phase'?'将武将牌翻面,然后获得一名其他角色装备区内的一张牌':'将手牌摸至与体力值相同';
return card.name=='phaseJieshu'?'将武将牌翻面,然后获得一名其他角色装备区内的一张牌':'将手牌摸至与体力值相同';
},
content:function(){
'step 0'
if(event.triggername=='phaseEnd') player.turnOver();
if(event.triggername=='phaseJieshuBegin') player.turnOver();
else{
player.draw(player.hp-player.countCards('h'));
event.finish();
@ -189,12 +189,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
twqijia:{
group:'twqijia_alka',
//group:'twqijia_alka',
audio:2,
enable:'phaseUse',
filter:function(event,player){
return player.countCards('e',function(card){
return !player.storage.twqijia.contains(get.subtype(card));
return !player.getStorage('twqijia_alka').contains(get.subtype(card));
});
},
filterTarget:function(card,player,target){
@ -202,21 +202,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
position:'e',
filterCard:function(card,player){
return !player.storage.twqijia.contains(get.subtype(card));
return !player.getStorage('twqijia_alka').contains(get.subtype(card));
},
content:function(){
'step 0'
player.storage.twqijia.push(get.subtype(cards[0]));
player.addTempSkill('twqijia_alka');
player.storage.twqijia_alka.push(get.subtype(cards[0]));
player.useCard({name:'sha'},target,false);
},
subSkill:{
alka:{
sub:true,
trigger:{player:['phaseUseBegin','phaseUseEnd']},
silent:true,
content:function(){
player.storage.twqijia=[];
player.storage.twzhulin=[];
charlotte:true,
onremove:function(player){
delete player.storage.twqijia_alka;
delete player.storage.twzhuchen;
player.unmarkSkill('twzhuchen');
},
init:function(player,skill){
if(!player.storage[skill]) player.storage[skill]=[];
if(!player.storage.twzhuchen) player.storage.twzhuchen=[];
},
mod:{
globalFrom:function(from,to,distance){
if(from.storage.twzhuchen&&from.storage.twzhuchen.contains(to)) return -Infinity;
}
},
},
},
@ -234,25 +243,20 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
},
twzhulin:{
group:'twqijia_alka',
locked:false,
mod:{
globalFrom:function(from,to,distance){
if(from.storage.twzhulin&&from.storage.twzhulin.contains(to)) return -Infinity;
}
},
twzhuchen:{
enable:'phaseUse',
filter:function(event,player){
return player.countCards('h',lib.skill.twzhulin.filterCard)>0;
return player.countCards('h',lib.skill.twzhuchen.filterCard)>0;
},
filterCard:function(card){
return card.name=='tao'||card.name=='jiu';
filterCard:function(card,player){
var name=get.name(card,player);
return name=='tao'||name=='jiu';
},
filterTarget:lib.filter.notMe,
content:function(){
player.storage.twzhulin.add(target);
player.markSkill('twzhulin');
player.addTempSkill('twqijia_alka');
player.storage.twzhuchen.add(target);
player.markSkill('twzhuchen');
},
intro:{
content:function(content,player){
@ -274,7 +278,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){
trigger.getParent().twxiaolian=trigger.targets[0];
trigger.targets.length=0;
trigger.getParent().triggeredTargets2.length=0;
trigger.getParent().triggeredTargets2.length=0;
trigger.targets.push(player);
},
group:'twxiaolian_damage',
@ -344,6 +348,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
next.player=player;
next.target=trigger.player;
next.setContent(function(){
if(target.isDead()||!target.countCards('he')) return;
player.line(target,'green');
player.discardPlayerCard(target,true,'he');
});
@ -556,8 +561,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twxiaolian_info:'当一名其他角色使用【杀】指定另一名其他角色为目标时,你可以将此【杀】的目标改为你。若如此做,当你受到此【杀】的伤害后,你可以将一张牌放在此【杀】原目标的武将牌旁,称之为“马”。锁定技,场上的一名角色每有一张“马”,其他角色计算与其的距离便+1。',
twqijia:'弃甲',
twqijia_info:'出牌阶段,你可以弃置一张装备区内的牌(每种类型的装备牌限一次),然后视为对攻击范围内的一名其他角色使用了一张【杀】。',
twzhulin:'诛綝',
twzhulin_info:'出牌阶段你可以弃置一张【桃】或【酒】并选择一名其他角色。你与其的距离视为1直到此阶段结束。',
twzhuchen:'诛綝',
twzhuchen_info:'出牌阶段你可以弃置一张【桃】或【酒】并选择一名其他角色。你与其的距离视为1直到此阶段结束。',
twhuzhu:'护主',
twhuzhu_info:'出牌阶段限一次若你的装备区内有牌则你可以令一名其他角色交给你一张手牌然后获得你装备区内的一张牌。若其体力值不大于你则你可以令其回复1点体力。',
twliancai:'敛财',

View File

@ -6192,21 +6192,21 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
shifei:{
audio:2,
trigger:{player:['chooseToRespondBegin','chooseToUseBegin']},
enable:['chooseToRespond','chooseToUse'],
filter:function(event,player){
if(!_status.currentPhase) return false;
if(event.responded) return false;
if(!event.filterCard({name:'shan'},player,event)) return false;
if(event.name!='chooseToUse'&&!lib.filter.cardRespondable({name:'shan'},player,event)) return false;
if(!_status.currentPhase||event.shifei) return false;
if(!event.filterCard({name:'shan',isCard:true},player,event)) return false;
if(event.name!='chooseToUse'&&!lib.filter.cardRespondable({name:'shan',isCard:true},player,event)) return false;
return true;
},
check:function(event,player){
delay:false,
checkx:function(player){
if(get.attitude(player,_status.currentPhase)>0) return true;
var nh=_status.currentPhase.countCards('h')+1;
var players=game.filterPlayer();
for(var i=0;i<players.length;i++){
if(players[i].countCards('h')>nh){
if(!player.hasShan()||get.attitude(player,players[i])<=0) return true;
if(!player.countCards('h','shan')||get.attitude(player,players[i])<=0) return true;
}
}
return false;
@ -6218,6 +6218,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1'
if(_status.currentPhase.isMaxHandcard(true)){
event.finish();
var evt=event.getParent(2);
evt.set('shifei',true);
evt.goto(0);
return;
}
var targets=game.filterPlayer(function(current){
@ -6237,6 +6240,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
event.finish();
}
'step 2'
var evt=event.getParent(2);
var target;
if(event.onlytarget){
target=event.onlytarget;
@ -6247,9 +6251,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
if(target){
player.line(target,'green');
player.discardPlayerCard(target,'he',true);
trigger.untrigger();
trigger.responded=true;
trigger.result={bool:true,card:{name:'shan',isCard:true}}
evt.result={bool:true,card:{name:'shan',isCard:true},cards:[]};
evt.redo();
}
else{
evt.set('shifei',true);
evt.goto(0);
}
},
ai:{
@ -6264,7 +6271,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
}
}
}
},
order:8,
result:{
player:function(player){
return lib.skill.shifei.checkx(player)?1:0;
},
},
}
},
huaiyi:{
@ -12290,7 +12303,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jigong:'急攻',
jigong_info:'出牌阶段开始时你可以摸两张牌。若如此做你本回合的手牌上限改为XX为你此阶段造成的伤害点数之和。',
shifei:'饰非',
shifei_info:'当你需要使用或打出【闪】时,你可以令当前回合角色摸一张牌然后若其手牌数不为全场最多,则你弃置全场手牌数最多(或之一)角色的一张牌,视为你使用或打出了一张【闪】。',
shifei_info:'当你需要使用或打出【闪】时,你可以令当前回合角色摸一张牌然后若其手牌数不为全场最多,则你弃置全场手牌数最多(或之一)角色的一张牌,视为你使用或打出了一张【闪】。',
huaiyi:'怀异',
huaiyi_info:'出牌阶段限一次你可以展示所有手牌若这些牌的颜色不全部相同则你选择一种颜色并弃置该颜色的所有手牌然后你可以获得至多X名角色的各一张牌X为你以此法弃置的手牌数。若你以此法获得的牌不少于两张则你失去1点体力。',
yaoming:'邀名',

View File

@ -1,5 +1,5 @@
window.noname_asset_list=[
'v1.9.106',
'v1.9.106.1',
'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3',
@ -3453,6 +3453,7 @@ window.noname_asset_list=[
'image/character/key_shiroha.jpg',
'image/character/ns_caimao.jpg',
'image/character/caoxing.jpg',
'image/character/ns_jiaxu.jpg',
'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg',
@ -4540,6 +4541,7 @@ window.noname_asset_list=[
'image/mode/chess/character/leader_caocao.jpg',
'image/mode/chess/character/leader_liubei.jpg',
'image/mode/chess/character/leader_sunquan.jpg',
'image/mode/chess/character/leader_yuri.jpg',
'image/mode/chess/difficulty/leader_easy.jpg',
'image/mode/chess/difficulty/leader_hard.jpg',
'image/mode/chess/difficulty/leader_medium.jpg',
@ -5293,8 +5295,8 @@ window.noname_skin_list={
key_yuri:4,
key_yuzuru:2,
sp_key_kanade:8,
key_kamome:1,
key_umi:2,
key_kamome:5,
key_umi:5,
key_umi2:1,
key_mio:3,
key_midori:1,

View File

@ -13645,7 +13645,7 @@
})) return 14;
if(target.countCards('e',function(card){
return get.value(card,target)<0&&game.hasPlayer(function(current){
return current!=target&&get.attitude(player,current)<0&&current.isEmpty(get.subtype(card))
return current!=target&&get.attitude(player,current)<0&&current.isEmpty(get.subtype(card))&&get.effect(target,card,player,player)<0;
});
})>0) return 9;
}
@ -13654,7 +13654,7 @@
if(current!=target&&get.attitude(player,current)>0){
var es=target.getCards('e');
for(var i=0;i<es.length;i++){
if(get.value(es[i],target)>0&&current.isEmpty(get.subtype(es[i]))&&get.effect(current,es[i],player,current)>0) return true;
if(get.value(es[i],target)>0&&current.isEmpty(get.subtype(es[i]))&&get.effect(current,es[i],player,player)>0) return true;
}
}
})){
@ -13667,7 +13667,7 @@
var i;
var att2=get.sgn(get.attitude(player,ui.selected.targets[0]));
for(i=0;i<es.length;i++){
if(sgnatt!=0&&att2!=0&&
if(sgnatt!=0&&att2!=0&&sgnatt!=att2&&
get.sgn(get.value(es[i],ui.selected.targets[0]))==-att2&&
get.sgn(get.effect(target,es[i],player,target))==sgnatt&&
target.isEmpty(get.subtype(es[i]))){
@ -13710,7 +13710,7 @@
}
else{
if(get.position(button.link)=='j') return -10;
return get.equipValue(button.link)*get.effect(targets1,button.link,player,targets1);
return get.value(button.link)*get.effect(targets1,button.link,player,targets1);
}
},targets[0]).set('nojudge',event.nojudge||false).set('targets0',targets[0]).set('targets1',targets[1]).set('filterButton',function(button){
var targets1=_status.event.targets1;
@ -18388,7 +18388,7 @@
if(withatt){
if(get.sgn(get.value(es[i],current))!=-att) return false;
var att2=get.sgn(get.attitude(player,current2));
if(att2!=get.sgn(get.effect(current2,es[i],player,current2))) return false;
if(att==att2||att2!=get.sgn(get.effect(current2,es[i],player,current2))) return false;
}
return current!=current2&&!current2.isMin()&&current2.isEmpty(get.subtype(es[i]));
})){
@ -20042,6 +20042,7 @@
if(typeof card=='string') card={name:card,isCard:true};
var info=get.info(card);
if(info.multicheck&&!info.multicheck(card,this)) return false;
if(!lib.filter.cardEnabled(card,this)) return false;
if(distance!==false&&!lib.filter.targetInRange(card,this,target)) return false;
return lib.filter[includecard?'targetEnabledx':'targetEnabled'](card,this,target);
},
@ -20626,6 +20627,16 @@
}
}
}
if(expire.global){
if(typeof expire.global=='string'){
lib.hookmap[expire.global]=true;
}
else if(Array.isArray(expire.global)){
for(var i=0;i<expire.global.length;i++){
lib.hookmap[expire.global[i]]=true;
}
}
}
}
for(var i in expire){
@ -36397,7 +36408,7 @@
}
}
if(listx.length){
var cfgnodeX=createConfig({
var cfgnodeY={
name:lib.translate[pak],
_name:pak,
init:boolx,
@ -36425,7 +36436,12 @@
game.saveConfig(connectMenu?('connect_'+modex.mode+'_banned'):(get.mode()+'_banned'),banned);
updateActive();
},
});
};
if(mode.indexOf('mode_')==0&&mode.indexOf('mode_extension_')!=0){
cfgnodeY.clear=true;
delete cfgnodeY.onclick;
}
var cfgnodeX=createConfig(cfgnodeY);
page.appendChild(cfgnodeX);
var buttons=ui.create.buttons(listx,'character',page);
for(var i=0;i<buttons.length;i++){
@ -41233,7 +41249,7 @@
if(_status.paused&&_status.imchoosing&&!_status.auto){
ui.click.auto();
}
},true);
},true,true);
},
groupControl:function(dialog){
return ui.create.control('wei','shu','wu','qun','western','key',function(link,node){

View File

@ -1,15 +1,15 @@
window.noname_update={
version:'1.9.106',
update:'1.9.105.10',
version:'1.9.106.1',
update:'1.9.106',
changeLog:[
'银河射手-曹性、诸葛恪',
'S贾诩',
'bug修复',
],
files:[
//'card/extra.js',
//'card/huanlekapai.js',
//'card/sp.js',
//'card/standard.js',
'card/standard.js',
//'card/swd.js',
//'card/mtg.js',
//'card/gujian.js',
@ -17,23 +17,23 @@ window.noname_update={
//'card/gwent.js',
//'card/yunchou.js',
//'card/zhenfa.js',
//'card/zhulu.js',
'card/zhulu.js',
'character/diy.js',
//'character/extra.js',
//'character/hearth.js',
//'character/gujian.js',
//'character/gwent.js',
//'character/hearth.js',
'character/mobile.js',
//'character/mobile.js',
//'character/mtg.js',
//'character/old.js',
'character/rank.js',
'character/refresh.js',
'character/shenhua.js',
//'character/shenhua.js',
'character/sp.js',
'character/sp2.js',
//'character/tw.js',
'character/standard.js',
'character/tw.js',
//'character/standard.js',
//'character/swd.js',
//'character/xianjian.js',
//'character/xinghuoliaoyuan.js',
@ -44,8 +44,8 @@ window.noname_update={
//'layout/nova/layout.css',
//'mode/identity.js',
//'mode/doudizhu.js',
'mode/guozhan.js',
//'mode/chess.js',
//'mode/guozhan.js',
'mode/chess.js',
//'mode/tafang.js',
//'mode/single.js',
//'mode/stone.js',

Binary file not shown.

After

Width:  |  Height:  |  Size: 154 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 183 KiB

BIN
image/skin/key_kamome/2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 129 KiB

BIN
image/skin/key_kamome/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

BIN
image/skin/key_kamome/4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
image/skin/key_kamome/6.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

BIN
image/skin/key_umi/3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

BIN
image/skin/key_umi/4.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 165 KiB

View File

@ -2385,7 +2385,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
intro.innerHTML=get.translation(rarity);
}
}
game.leaderLord=['leader_caocao','leader_liubei','leader_sunquan'];
game.leaderLord=['leader_caocao','leader_liubei','leader_sunquan','leader_yuri'];
var dialog1=ui.create.dialog('选择君主','hidden');
event.dialog1=dialog1;
dialog1.classList.add('fullheight');
@ -4566,6 +4566,18 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
}
}
},
leader_zhenlve:{
trigger:{global:'useCard1'},
unique:true,
charlotte:true,
firstDo:true,
filter:function(event,player){
return get.type(event.card)=='trick'&&event.player.isFriendOf(player);
},
content:function(){
trigger.nowuxie=true;
},
},
tongshuai:{
unique:true,
forbid:['guozhan'],
@ -5057,7 +5069,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
trigger:{player:'useCard'},
frequent:true,
filter:function(event){
filter:function(event,player){
return event.card&&event.card.name=='sha'&&player.getHistory('useCard',function(evt){
return evt.card.name=='sha';
})[0]==event;
@ -5600,12 +5612,15 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
leader_caocao:'曹操',
leader_liubei:'刘备',
leader_sunquan:'孙权',
leader_yuri:'由理',
leader_xiaoxiong:'枭雄',
leader_xiaoxiong_info:'当你造成伤害后,获胜后会得到一定数量的额外金币奖励。',
leader_renyi:'仁义',
leader_renyi_info:'你招降敌将的成功率大幅增加。',
leader_mouduan:'谋断',
leader_mouduan_info:'其他友方角色回合内的行动范围+1。',
leader_zhenlve:'缜略',
leader_zhenlve_info:'友方角色使用的普通锦囊牌不可被【无懈可击】响应。',
tongshuai:'统率',
tongshuai_info:'准备阶段和结束阶段,你可以选择一名未上场的已方武将的一个技能作为你的技能',
@ -5660,6 +5675,10 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
boss_wuying:'无影',
boss_wuying_info:'锁定技,你回合内的移动距离-1其他角色至你的距离+2。',
chess_default:'常规',
chess_boss:'魔王',
chess_leader:'君主',
mode_chess_character_config:'战棋模式',
mode_chess_card_config:'战棋模式',
},
@ -6005,11 +6024,19 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
// image:'mode/chess/difficulty/leader_hard'
}
},
characterSort:{
mode_chess:{
chess_default:["chess_zhangliao","chess_huangzhong","chess_taishici","chess_sunshangxiang","chess_diaochan"],
chess_boss:["chess_jinchidiao","chess_beimingjukun","chess_wuzhaojinlong","chess_dongzhuo","chess_xingtian"],
chess_leader:["leader_caocao","leader_liubei","leader_sunquan","leader_yuri"],
},
},
characterPack:{
mode_chess:{
leader_caocao:['male','wei',4,['leader_xiaoxiong']],
leader_liubei:['male','shu',4,['leader_renyi']],
leader_sunquan:['male','wu',4,['leader_mouduan']],
leader_yuri:['female','key',4,['leader_zhenlve']],
// chess_caocao:['male','wei',3,['']],
// chess_xunyu:['male','wei',3,['']],
// chess_simayi:['male','wei',3,['']],