This commit is contained in:
Spmario233 2021-01-23 19:25:04 +08:00
parent 61654469e5
commit 15b757a946
494 changed files with 521 additions and 190 deletions

View File

@ -984,12 +984,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(arg&&arg.player){ if(arg&&arg.player){
if(arg.player.hasSkillTag('unequip',false,{ if(arg.player.hasSkillTag('unequip',false,{
name:arg.card?arg.card.name:null, name:arg.card?arg.card.name:null,
target:target, target:player,
card:arg.card, card:arg.card,
})) return false; })) return false;
if(arg.player.hasSkillTag('unequip_ai',false,{ if(arg.player.hasSkillTag('unequip_ai',false,{
name:arg.card?arg.card.name:null, name:arg.card?arg.card.name:null,
target:target, target:player,
card:arg.card, card:arg.card,
})) return false; })) return false;
if(arg.player.hasSkillTag('jueqing',false,player)) return false; if(arg.player.hasSkillTag('jueqing',false,player)) return false;

View File

@ -202,13 +202,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
fullskin:true, fullskin:true,
type:'trick', type:'trick',
filterTarget:function(card,player,target){ filterTarget:function(card,player,target){
return target!=player&&(get.mode()!='guozhan'||target.countCards('e')>0); return target!=player&&(get.mode()!='guozhan'||_status.mode=='yingbian'||_status.mode=='free'||target.countCards('e')>0);
}, },
enable:true, enable:true,
yingbian_prompt:'此牌的效果改为依次执行所有选项', yingbian_prompt:'此牌的效果改为依次执行所有选项',
content:function(){ content:function(){
'step 0' 'step 0'
if(get.mode()!='guozhan'&&!get.is.single()) event.goto(2); if((get.mode()!='guozhan'||_status.mode=='yingbian'||_status.mode=='free')&&!get.is.single()) event.goto(2);
else if(!target.countCards('e',function(card){ else if(!target.countCards('e',function(card){
return lib.filter.cardDiscardable(card,target); return lib.filter.cardDiscardable(card,target);
})){ })){
@ -274,7 +274,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
result:{ result:{
target:function(player,target){ target:function(player,target){
if(get.mode()!='guozhan'&&!get.is.single()){ if(!get.is.single()&&(get.mode()!='guozhan'||_status.mode=='yingbian'||_status.mode=='free')){
if(target.countCards('e',function(card){ if(target.countCards('e',function(card){
return get.value(card,target)<=0; return get.value(card,target)<=0;
})>1) return 1; })>1) return 1;

View File

@ -451,7 +451,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
}, },
equipValue:function(card,player){ equipValue:function(card,player){
if(!game.hasPlayer(function(current){ if(!game.hasPlayer(function(current){
return player.canUse('sha',current)&&get.distance(player,current)<=1&&get.effect(current,{name:'sha'},player,player)>0; return get.distance(player,current)<=1&&player.canUse('sha',current)&&get.effect(current,{name:'sha'},player,player)>0;
})){ })){
return 1; return 1;
} }
@ -1362,7 +1362,18 @@ game.import('card',function(lib,game,ui,get,ai,_status){
expose:0.2 expose:0.2
}, },
notarget:true, notarget:true,
yingbian_prompt:'当此牌生效后,你获得此牌响应的目标牌', yingbian_prompt:function(card){
var suit=card.suit;
if(suit=='club'||suit=='spade') return '当你声明使用此牌时,你摸一张牌';
else return '当此牌生效后,你获得此牌响应的目标牌';
},
yingbian:function(event){
if(event.card.cards&&event.card.cards.length==1){
var suit=event.card.cards[0].suit;
if(suit=='heart'||suit=='diamond') return;
}
event.player.draw();
},
contentBefore:function(){ contentBefore:function(){
'step 0' 'step 0'
if(get.mode()=='guozhan'&&get.cardtag(card,'guo')){ if(get.mode()=='guozhan'&&get.cardtag(card,'guo')){
@ -1403,8 +1414,11 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
} }
if(event.card.yingbian){ if(event.card.yingbian){
if(!event.card.cards||event.card.cards.length!=1) return;
var suit=event.card.cards[0].suit;
if(suit!='heart'&&suit!='diamond') return;
var cardx=event.getParent().respondTo; var cardx=event.getParent().respondTo;
if(cardx&&cardx[1]&&cardx[1].cards&&cardx[1].cards.filterInD().length) player.gain(cardx[1].cards.filterInD(),'gain2','log'); if(cardx&&cardx[1]&&cardx[1].cards&&cardx[1].cards.filterInD().length) player.gain(cardx[1].cards.filterInD('od'),'gain2','log');
} }
}, },
}, },
@ -1872,10 +1886,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
ai:{ ai:{
directHit_ai:true, directHit_ai:true,
skillTagFilter:function(player,tag,arg){ skillTagFilter:function(player,tag,arg){
if(get.attitude(player,arg.target)<0&&arg.card.name=='sha'&&player.countCards('he',function(card){ if(player._guanshi_temp) return;
player._guanshi_temp=true;
var bool=(get.attitude(player,arg.target)<0&&arg.card.name=='sha'&&player.countCards('he',function(card){
return card!=player.getEquip('guanshi')&&card!=arg.card&&(!arg.card.cards||!arg.card.cards.contains(card))&&get.value(card)<5; return card!=player.getEquip('guanshi')&&card!=arg.card&&(!arg.card.cards||!arg.card.cards.contains(card))&&get.value(card)<5;
})>1) return true; })>1);
return false; delete player._guanshi_temp;
return bool;
}, },
}, },
}, },

View File

@ -433,6 +433,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
popup:false, popup:false,
firstDo:true, firstDo:true,
ruleSkill:true, ruleSkill:true,
forceLoad:true,
filter:function(event,player){ filter:function(event,player){
if(event.card.yingbian) return false; if(event.card.yingbian) return false;
var bool=player.hasSkillTag('forceYingbian'); var bool=player.hasSkillTag('forceYingbian');
@ -474,7 +475,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
if(skillState){ if(skillState){
player.applySkills(skillState); player.applySkills(skillState);
} }
var type=get.type(card); var type=get.type2(card);
var str=get.translation(source); var str=get.translation(source);
if(targets&&targets.length){ if(targets&&targets.length){
str+='对'; str+='对';
@ -483,7 +484,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
str+='使用了'; str+='使用了';
var next=player.chooseCard({ var next=player.chooseCard({
filterCard:function(card){ filterCard:function(card){
return get.type(card)==type&&lib.filter.cardDiscardable.apply(this,arguments); return get.type2(card)==type&&lib.filter.cardDiscardable.apply(this,arguments);
}, },
prompt:str+=(get.translation(card)+',是否弃置一张'+get.translation(type)+'为其助战?'), prompt:str+=(get.translation(card)+',是否弃置一张'+get.translation(type)+'为其助战?'),
position:'h', position:'h',
@ -507,12 +508,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
} }
}; };
'step 2' 'step 2'
var type=get.type(card); var type=get.type2(card);
var list=game.filterPlayer(function(current){ var list=game.filterPlayer(function(current){
if(current==player) return false; if(current==player) return false;
if(!current.countCards('h')) return false; if(!current.countCards('h')) return false;
return _status.connectMode||current.countCards('h',function(cardx){ return _status.connectMode||current.countCards('h',function(cardx){
return get.type(cardx)==type; return get.type2(cardx)==type;
}) })
}); });
event.list=list; event.list=list;

View File

@ -142,6 +142,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
old_jiakui:['male','wei',4,['tongqu','xinwanlan']], old_jiakui:['male','wei',4,['tongqu','xinwanlan']],
ol_guohuai:['male','wei',3,['rejingce']], ol_guohuai:['male','wei',3,['rejingce']],
junk_zhangrang:['male','qun',3,['junktaoluan']], junk_zhangrang:['male','qun',3,['junktaoluan']],
junk_simayi:['male','jin',3,['buchen','smyyingshi','xiongzhi','xinquanbian'],['hiddenSkill']],
}, },
characterFilter:{ characterFilter:{
key_jojiro:function(mode){ key_jojiro:function(mode){
@ -171,7 +172,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
diy_fakenews:["diy_wenyang","ns_zhangwei","ns_caimao"], 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_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","key_shizuku","key_hiroto"], 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","key_shizuku","key_hiroto"],
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang'], diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang','junk_simayi'],
}, },
}, },
characterIntro:{ characterIntro:{
@ -4362,7 +4363,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger.directHit.add(target); trigger.directHit.add(target);
} }
if(result.suit=='spade'||result.suit=='heart'){ if(result.suit=='spade'||result.suit=='heart'){
var evt=event.getParent(); var evt=trigger.getParent();
if(evt.addCount!==false){ if(evt.addCount!==false){
evt.addCount=false; evt.addCount=false;
player.getStat().card.sha--; player.getStat().card.sha--;
@ -12359,6 +12360,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ns_caimao:'蔡瑁', ns_caimao:'蔡瑁',
nsdingzhou:'定州', nsdingzhou:'定州',
nsdingzhou_info:'出牌阶段限一次你可以选择一名区域内有牌的其他角色。你随机获得其区域内的一张牌然后摸一张牌。若你以此法获得了两张颜色不同的牌则你失去1点体力。', nsdingzhou_info:'出牌阶段限一次你可以选择一名区域内有牌的其他角色。你随机获得其区域内的一张牌然后摸一张牌。若你以此法获得了两张颜色不同的牌则你失去1点体力。',
junk_simayi:'止息司马懿',
ol_guohuai_ab:'郭淮',
junk_zhangrang_ab:'张让',
old_jiakui_ab:'贾逵',
junk_simayi_ab:'司马懿',
diy_tieba:'吧友设计', diy_tieba:'吧友设计',
diy_default:'常规', diy_default:'常规',
diy_key:'论外', diy_key:'论外',

View File

@ -3823,7 +3823,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
remoucheng:{ remoucheng:{
derivation:'rejingong', derivation:'jingong',
trigger:{ trigger:{
player:'remoucheng_awaken' player:'remoucheng_awaken'
}, },
@ -3835,59 +3835,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
content:function(){ content:function(){
player.awakenSkill('remoucheng'); player.awakenSkill('remoucheng');
player.removeSkill('relianji'); player.removeSkill('relianji');
player.addSkill('rejingong'); player.addSkill('jingong');
player.gainMaxHp(); player.gainMaxHp();
player.recover(); player.recover();
}, },
}, },
rejingong:{
audio:'jingong',
enable:'phaseUse',
delay:0,
usable:1,
content:function(){
'step 0'
var list=get.inpile('trick').randomGets(2);
if(Math.random()<0.5){
list.push('wy_meirenji');
}
else{
list.push('wy_xiaolicangdao');
}
for(var i=0;i<list.length;i++){
list[i]=['锦囊','',list[i]];
}
player.chooseButton(['矜功',[list,'vcard']]).set('filterButton',function(button,player){
return game.hasPlayer(function(current){
return player.canUse(button.link[2],current,true,false);
});
}).set('ai',function(button){
var player=_status.event.player;
var name=button.link[2];
if(game.hasPlayer(function(current){
return player.canUse(name,current)&&get.effect(current,{name:name},player,player)>0;
})){
if(name=='wy_meirenji'||name=='wy_xiaolicangdao') return Math.random()+0.5;
return Math.random();
}
return 0;
});
'step 1'
if(result.bool){
player.chooseUseTarget(result.links[0][2],true);
player.addTempSkill('jingong2');
}
},
ai:{
order:2,
result:{
player:function(player){
if((player.hp<=2||player.needsToDiscard())&&!player.getStat('damage')) return 0;
return 1;
}
}
}
},
shouye:{ shouye:{
audio:2, audio:2,
group:'shouye_after', group:'shouye_after',
@ -6441,8 +6393,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
relianji_info:'出牌阶段限一次你可以选择两名其他角色。第一名角色随机使用牌堆中的一张武器牌然后这名角色视为对另一名角色随机使用一张下列的牌名的牌【决斗】、【火攻】、【南蛮入侵】、【万箭齐发】或普【杀】。然后若此牌造成伤害你获得X枚“连计”标记X为此次扣减的体力值点数。', relianji_info:'出牌阶段限一次你可以选择两名其他角色。第一名角色随机使用牌堆中的一张武器牌然后这名角色视为对另一名角色随机使用一张下列的牌名的牌【决斗】、【火攻】、【南蛮入侵】、【万箭齐发】或普【杀】。然后若此牌造成伤害你获得X枚“连计”标记X为此次扣减的体力值点数。',
remoucheng:'谋逞', remoucheng:'谋逞',
remoucheng_info:'觉醒技当一名角色造成伤害后若你拥有的“连计”标记数大于2你加1点体力上限回复1点体力失去“连计”获得“矜功”。', remoucheng_info:'觉醒技当一名角色造成伤害后若你拥有的“连计”标记数大于2你加1点体力上限回复1点体力失去“连计”获得“矜功”。',
rejingong:'矜功',
rejingong_info:'每回合可以用三个随机锦囊中的一个三个锦囊中有一个是专属锦囊本回合未造成伤害会失去1点体力。',
mobile_default:'常规', mobile_default:'常规',
mobile_others:'其他', mobile_others:'其他',

View File

@ -7614,7 +7614,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
xiaoqiao:'旧小乔', xiaoqiao:'旧小乔',
zhoutai:'界周泰', zhoutai:'界周泰',
zhangjiao:'张角', zhangjiao:'张角',
yuji:'于吉', //yuji:'于吉',
shensu:'神速', shensu:'神速',
shensu1:'神速', shensu1:'神速',
shensu2:'神速', shensu2:'神速',

View File

@ -988,7 +988,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
backup:function(links,player){ backup:function(links,player){
return { return {
audio:'xinjingong', audio:'jingong',
filterCard:true, filterCard:true,
popname:true, popname:true,
position:'he', position:'he',
@ -3764,15 +3764,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
jingong:{ jingong:{
audio:2, audio:2,
enable:'phaseUse', enable:'phaseUse',
usable:1,
filter:function(event,player){ filter:function(event,player){
return player.countCards('he',function(card){ return event.xinjingong_list&&player.countCards('he',function(card){
return card.name=='sha'||get.type(card)=='equip'; return card.name=='sha'||get.type(card)=='equip';
}); });
}, },
delay:false, onChooseToUse:function(event){
usable:1, if(!game.online){
content:function(){ var evt=event.getParent();
'step 0' if(evt.name!='phaseUse') return;
if(!evt.xinjingong_list){
var list=get.inpile('trick').randomGets(2); var list=get.inpile('trick').randomGets(2);
if(Math.random()<0.5){ if(Math.random()<0.5){
list.push('wy_meirenji'); list.push('wy_meirenji');
@ -3780,47 +3782,43 @@ game.import('character',function(lib,game,ui,get,ai,_status){
else{ else{
list.push('wy_xiaolicangdao'); list.push('wy_xiaolicangdao');
} }
for(var i=0;i<list.length;i++){ evt.xinjingong_list=list;
list[i]=['锦囊','',list[i]];
} }
player.chooseButton(['矜功',[list,'vcard']]).set('filterButton',function(button,player){ if(!event.xinjingong_list) event.set('xinjingong_list',evt.xinjingong_list);
return game.hasPlayer(function(current){ }
return player.canUse(button.link[2],current,true,false); },
}); chooseButton:{
}).set('ai',function(button){ dialog:function(event,player){
var player=_status.event.player; var list=[];
return player.getUseValue(button.link[2]); for(var i of event.xinjingong_list) list.push(['锦囊','',i]);
}); return ui.create.dialog('矜功',[list,'vcard']);
'step 1' },
if(result.bool){ filter:function(button,player){
var name=result.links[0][2]; return lib.filter.filterCard({name:button.link[2]},player,_status.event.getParent());
event.fakecard={name:name}; },
player.chooseCardTarget({ check:function(button){
return _status.event.player.getUseValue({name:button.link[2]});
},
backup:function(links,player){
return {
audio:'jingong',
filterCard:true,
popname:true,
position:'he',
viewAs:{name:links[0][2]},
check:function(card){
return 6-get.value(card);
},
filterCard:function(card){ filterCard:function(card){
return card.name=='sha'||get.type(card)=='equip'; return card.name=='sha'||get.type(card)=='equip';
}, },
position:'he', precontent:function(){
filterTarget:lib.filter.filterTarget,
selectTarget:lib.filter.selectTarget,
ai1:function(card){
return 7-get.value(card);
},
ai2:function(target){
var card=_status.event.fakecard;
var player=_status.event.player;
return get.effect(target,card,player,player);
},
_get_card:event.fakecard,
prompt:'将一张装备牌或【杀】当作'+get.translation(name)+'使用'
}).set('fakecard',event.fakecard);
}
else{
event.finish();
}
'step 2'
if(result.bool){
player.useCard(event.fakecard,result.cards,result.targets);
player.addTempSkill('jingong2'); player.addTempSkill('jingong2');
},
};
},
prompt:function(links,player){
return '将一张【杀】或装备牌当做'+get.translation(links[0][2])+'使用';
} }
}, },
ai:{ ai:{

View File

@ -101,6 +101,67 @@ game.import('character',function(lib,game,ui,get,ai,_status){
} }
}, },
skill:{ skill:{
xinquanbian:{
audio:'quanbian',
trigger:{player:['useCard','respond']},
filter:function(event,player){
var phase=event.getParent('phaseUse');
if(!phase||phase.player!=player) return false;
var suit=get.suit(event.card);
if(!lib.suit.contains(suit)||!lib.skill.quanbian.hasHand(event)) return false;
return player.getHistory('useCard',function(evt){
return evt!=event&&get.suit(evt.card)==suit&&lib.skill.quanbian.hasHand(evt)&&evt.getParent('phaseUse')==phase;
}).length+player.getHistory('respond',function(evt){
return evt!=event&&get.suit(evt.card)==suit&&lib.skill.quanbian.hasHand(evt)&&evt.getParent('phaseUse')==phase;
}).length==0;
},
content:function(){
'step 0'
var cards=get.cards(Math.min(5,player.maxHp));
event.cards=cards;
var suit=get.suit(trigger.card);
player.chooseButton(['权变:获得一张不为'+get.translation(suit)+'花色的牌',cards]).set('suit',suit).set('filterButton',function(button){
return get.suit(button)!=_status.event.suit;
});
'step 1'
if(result.bool){
var card=result.links[0];
cards.remove(card);
player.gain(card,'gain2','log');
if(!cards.length) event.finish();
}
'step 2'
player.chooseCardButton(cards.length,true,cards,'按顺序将卡牌置于牌堆顶(先选择的在上)');
'step 3'
if(result.bool){
var list=result.links.slice(0);
while(list.length){
ui.cardPile.insertBefore(list.pop(),ui.cardPile.firstChild);
}
game.updateRoundNumber();
}
},
group:'xinquanbian_count',
},
xinquanbian_count:{
trigger:{player:'useCard1'},
silent:true,
firstDo:true,
filter:function(event,player){
return player.isPhaseUsing()&&lib.skill.quanbian.hasHand(event);
},
content:function(){
var stat=player.getStat('skill');
if(!stat.quanbian) stat.quanbian=0;
stat.quanbian++;
},
mod:{
cardEnabled2:function(card,player){
var stat=player.getStat('skill');
if(stat.quanbian&&stat.quanbian>=player.maxHp&&get.position(card)=='h') return false;
},
},
},
taoyin:{ taoyin:{
audio:2, audio:2,
trigger:{player:'showCharacterAfter'}, trigger:{player:'showCharacterAfter'},
@ -1128,7 +1189,12 @@ 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(); if(!player.hasUseTarget(card)){
card.fix();
ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
game.updateRoundNumber();
event.finish();
}
'step 2' 'step 2'
var next=player.chooseUseTarget(card,true); var next=player.chooseUseTarget(card,true);
if(get.info(card).updateUsable=='phaseUse') next.addCount=false; if(get.info(card).updateUsable=='phaseUse') next.addCount=false;
@ -8122,6 +8188,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return '出牌阶段限'+(player.hasSkill('recaishi2')?'两':'一')+'次,你可以选择一名本回合内未选择过的角色。你令其获得一项效果直至你的下回合开始:①其下次造成伤害后弃置两张牌,然后你摸一张牌。②其下次受到伤害后摸两张牌,然后你摸一张牌。' return '出牌阶段限'+(player.hasSkill('recaishi2')?'两':'一')+'次,你可以选择一名本回合内未选择过的角色。你令其获得一项效果直至你的下回合开始:①其下次造成伤害后弃置两张牌,然后你摸一张牌。②其下次受到伤害后摸两张牌,然后你摸一张牌。'
}, },
}, },
perfectPair:{
jin_simayi:['jin_zhangchunhua'],
jin_simazhao:['jin_wangyuanji'],
jin_simashi:['jin_xiahouhui'],
},
characterReplace:{ characterReplace:{
lijue:['lijue','ns_lijue'], lijue:['lijue','ns_lijue'],
fanchou:['fanchou','ns_fanchou'], fanchou:['fanchou','ns_fanchou'],
@ -8189,7 +8260,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
"xz_xunxun":"恂恂", "xz_xunxun":"恂恂",
"xz_xunxun_info":"摸牌阶段,你可以观看牌堆顶的四张牌,然后将其中的两张牌置于牌堆顶,并将其余的牌以任意顺序置于牌堆底。", "xz_xunxun_info":"摸牌阶段,你可以观看牌堆顶的四张牌,然后将其中的两张牌置于牌堆顶,并将其余的牌以任意顺序置于牌堆底。",
"xinfu_xingzhao":"兴棹", "xinfu_xingzhao":"兴棹",
"xinfu_xingzhao_info":"锁定技,若场上的已受伤角色合计为1个以上你视为拥有技能〖恂恂〗2个以上当你使用装备牌时摸一张牌3个以上弃牌阶段开始时你跳过此阶段。", "xinfu_xingzhao_info":"锁定技,若X≥1你视为拥有技能〖恂恂〗。若X≥2当你使用装备牌时你摸一张牌。若X≥3弃牌阶段开始时你跳过此阶段。X为场上已受伤的角色数",
"xinfu_xingzhao2":"兴棹", "xinfu_xingzhao2":"兴棹",
"xinfu_xingzhao2_info":"", "xinfu_xingzhao2_info":"",
"xinfu_dianhu":"点虎", "xinfu_dianhu":"点虎",
@ -8597,8 +8668,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
tairan:'泰然', tairan:'泰然',
tairan2:'泰然', tairan2:'泰然',
tairan_info:'锁定技回合结束时你回复Y点体力并将手牌摸至X张。出牌阶段开始时你失去Y点体力弃置上次以此法获得的牌。X为你的体力上限且至多为5Y=X-你的体力值)', tairan_info:'锁定技回合结束时你回复Y点体力并将手牌摸至X张。出牌阶段开始时你失去Y点体力弃置上次以此法获得的牌。X为你的体力上限且至多为5Y=X-你的体力值)',
gz_jin_simayi:'司马懿',
gz_jin_zhangchunhua:'张春华',
gz_jin_simazhao:'司马昭',
gz_jin_wangyuanji:'王元姬',
gz_jin_simashi:'司马师',
gz_jin_xiahouhui:'夏侯徽',
xinquanbian:'权变',
xinquanbian_info:'出牌阶段,每当你首次使用/打出一种花色的手牌时你可以从牌堆顶的X张牌中获得一张与此牌花色不同的牌并将其余牌以任意顺序置于牌堆顶。出牌阶段你至多可使用X张手牌。X为你的体力上限',
sp_yingbian:'应变篇', sp_yingbian:'文德武备',
sp_whlw:"文和乱武", sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原", sp_zlzy:"逐鹿中原",
sp_longzhou:"同舟共济", sp_longzhou:"同舟共济",

View File

@ -2687,7 +2687,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:['jin_simayi','re_simayi','simayi'], simayi:['jin_simayi','re_simayi','junk_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

@ -1,5 +1,5 @@
window.noname_asset_list=[ window.noname_asset_list=[
'v1.9.108.3', 'v1.9.108.3.2',
'audio/background/aozhan_chaoming.mp3', 'audio/background/aozhan_chaoming.mp3',
'audio/background/aozhan_online.mp3', 'audio/background/aozhan_online.mp3',
'audio/background/aozhan_rewrite.mp3', 'audio/background/aozhan_rewrite.mp3',
@ -3658,6 +3658,7 @@ window.noname_asset_list=[
'image/character/zhanghuyuechen.jpg', 'image/character/zhanghuyuechen.jpg',
'image/character/zhangling.jpg', 'image/character/zhangling.jpg',
'image/character/xin_zhangfei.jpg', 'image/character/xin_zhangfei.jpg',
'image/character/junk_simayi.jpg',
'image/character/baiwuchang.jpg', 'image/character/baiwuchang.jpg',
'image/character/baosanniang.jpg', 'image/character/baosanniang.jpg',

View File

@ -4710,6 +4710,18 @@
map.connect_junzhu.hide(); map.connect_junzhu.hide();
} }
}, },
connect_guozhan_mode:{
name:'游戏模式',
init:'normal',
item:{
normal:'势备',
yingbian:'应变',
old:'怀旧',
},
frequent:true,
restart:true,
intro:'<li>势备:默认模式,使用线下《君临天下·势备篇》的牌堆进行游戏。<br><li>应变使用OL的应变国战牌堆进行游戏。<br><li>怀旧:使用传统国战的牌堆进行游戏。',
},
connect_player_number:{ connect_player_number:{
name:'游戏人数', name:'游戏人数',
init:'8', init:'8',
@ -4753,19 +4765,6 @@
// frequent:true, // frequent:true,
intro:'主将和副将都明置后,若为特定组合,可获得【珠联璧合】标记' intro:'主将和副将都明置后,若为特定组合,可获得【珠联璧合】标记'
}, },
connect_guozhanpile:{
name:'使用国战牌堆',
init:true,
frequent:true,
restart:true,
},
connect_onlyguozhan:{
name:'使用国战武将',
init:true,
frequent:true,
restart:true,
intro:'开启武将技能将替换为国战版本并禁用非国战武将'
},
connect_junzhu:{ connect_junzhu:{
name:'替换君主', name:'替换君主',
init:true, init:true,
@ -4803,10 +4802,14 @@
name:'游戏模式', name:'游戏模式',
init:'normal', init:'normal',
item:{ item:{
normal:'标准', normal:'势备',
mingjiang:'明将' yingbian:'应变',
old:'怀旧',
free:'自由',
}, },
frequent:true, frequent:true,
restart:true,
intro:'<li>势备:默认模式,使用线下《君临天下·势备篇》的牌堆进行游戏。<br><li>应变使用OL的应变国战牌堆进行游戏。<br><li>怀旧:使用传统国战的牌堆进行游戏。<br><li>自由:使用玩家的自定义牌堆进行游戏。',
}, },
player_number:{ player_number:{
name:'游戏人数', name:'游戏人数',
@ -4865,12 +4868,6 @@
// frequent:true, // frequent:true,
intro:'主将和副将都明置后,若为特定组合,可获得【珠联璧合】标记' intro:'主将和副将都明置后,若为特定组合,可获得【珠联璧合】标记'
}, },
guozhanpile:{
name:'使用国战牌堆',
init:true,
frequent:true,
restart:true,
},
changeViceType:{ changeViceType:{
name:'副将变更方式', name:'副将变更方式',
init:'default', init:'default',
@ -26728,6 +26725,11 @@
} }
} }
game.finishCards(); game.finishCards();
if(mode.characterPack){
for(var i in mode.characterPack){
lib.characterPack[i]=mode.characterPack[i];
}
}
_status.event={ _status.event={
finished:true, finished:true,
next:[], next:[],
@ -36950,7 +36952,7 @@
updateActive(); updateActive();
}, },
}; };
if(mode.indexOf('mode_')==0&&mode.indexOf('mode_extension_')!=0){ if(mode.indexOf('mode_')==0&&mode.indexOf('mode_extension_')!=0&&mode.indexOf('mode_guozhan')!=0){
cfgnodeY.clear=true; cfgnodeY.clear=true;
delete cfgnodeY.onclick; delete cfgnodeY.onclick;
} }
@ -49082,6 +49084,12 @@
case 'zhong':return '忠胆英杰'; case 'zhong':return '忠胆英杰';
} }
} }
else if(config.mode=='guozhan'&&config.guozhan_mode!='normal'){
switch(config.guozhan_mode){
case 'yingbian':return '应变国战';
case 'old':return '怀旧国战';
}
}
else{ else{
if(server){ if(server){
return get.translation(config.mode)+'模式'; return get.translation(config.mode)+'模式';

View File

@ -1,43 +1,42 @@
window.noname_update={ window.noname_update={
version:'1.9.108.3.1', version:'1.9.108.3.2',
update:'1.9.108.3', update:'1.9.108.3.1',
changeLog:[ changeLog:[
'手杀厉勇张飞', '应变国战',
'晋势力技能修改(司马懿除外)', '止息晋司马懿',
'手牌标记机制',
'bug修复', 'bug修复',
], ],
files:[ files:[
'card/extra.js', 'card/extra.js',
//'card/gujian.js', //'card/gujian.js',
//'card/guozhan.js', 'card/guozhan.js',
//'card/gwent.js', //'card/gwent.js',
//'card/huanlekapai.js', //'card/huanlekapai.js',
//'card/mtg.js', //'card/mtg.js',
//'card/sp.js', //'card/sp.js',
//'card/standard.js', 'card/standard.js',
//'card/swd.js', //'card/swd.js',
//'card/yunchou.js', //'card/yunchou.js',
//'card/yingbian.js', 'card/yingbian.js',
//'card/zhenfa.js', //'card/zhenfa.js',
//'card/zhulu.js', //'card/zhulu.js',
//'character/diy.js', 'character/diy.js',
//'character/extra.js', //'character/extra.js',
//'character/hearth.js', //'character/hearth.js',
//'character/gujian.js', //'character/gujian.js',
//'character/gwent.js', //'character/gwent.js',
//'character/hearth.js', //'character/hearth.js',
//'character/mobile.js', 'character/mobile.js',
//'character/mtg.js', //'character/mtg.js',
//'character/old.js', //'character/old.js',
//'character/ow.js', //'character/ow.js',
//'character/rank.js', //'character/rank.js',
//'character/refresh.js', //'character/refresh.js',
//'character/shenhua.js', 'character/shenhua.js',
//'character/sp.js', 'character/sp.js',
//'character/sp2.js', 'character/sp2.js',
//'character/tw.js', //'character/tw.js',
//'character/standard.js', 'character/standard.js',
//'character/swd.js', //'character/swd.js',
//'character/xianjian.js', //'character/xianjian.js',
//'character/xinghuoliaoyuan.js', //'character/xinghuoliaoyuan.js',
@ -47,9 +46,9 @@ window.noname_update={
//'layout/default/layout.css', //'layout/default/layout.css',
//'layout/default/menu.css', //'layout/default/menu.css',
//'layout/nova/layout.css', //'layout/nova/layout.css',
//'mode/identity.js', 'mode/identity.js',
//'mode/doudizhu.js', //'mode/doudizhu.js',
//'mode/guozhan.js', 'mode/guozhan.js',
//'mode/chess.js', //'mode/chess.js',
//'mode/tafang.js', //'mode/tafang.js',
//'mode/single.js', //'mode/single.js',
@ -57,7 +56,7 @@ window.noname_update={
//'mode/brawl.js', //'mode/brawl.js',
//'mode/versus.js', //'mode/versus.js',
//'mode/boss.js', //'mode/boss.js',
//'game/game.js', 'game/game.js',
//'game/keyWords.js', //'game/keyWords.js',
//'game/NoSleep.js', //'game/NoSleep.js',
//'game/config.js', //'game/config.js',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 206 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 169 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

After

Width:  |  Height:  |  Size: 213 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 255 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 176 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 222 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 172 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 91 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 186 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

After

Width:  |  Height:  |  Size: 268 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 150 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 261 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 212 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 266 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 217 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 475 KiB

After

Width:  |  Height:  |  Size: 201 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 235 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 177 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 240 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 262 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 224 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 211 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 103 KiB

After

Width:  |  Height:  |  Size: 171 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

After

Width:  |  Height:  |  Size: 160 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 227 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 45 KiB

After

Width:  |  Height:  |  Size: 233 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 244 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 236 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 188 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 200 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 252 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 203 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

After

Width:  |  Height:  |  Size: 214 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 242 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 159 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 216 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 179 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 229 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 174 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 192 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 209 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 167 KiB

Some files were not shown because too many files have changed in this diff Show More