Merge branch 'libccy:PR-Branch' into PR-Branch
This commit is contained in:
commit
b6e72b0323
|
@ -188,6 +188,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
junk_huangyueying:['female','shu',3,['junkjizhi','junkqicai']],
|
junk_huangyueying:['female','shu',3,['junkjizhi','junkqicai']],
|
||||||
junk_lidian:['male','wei',3,['xunxun','junkwangxi']],
|
junk_lidian:['male','wei',3,['xunxun','junkwangxi']],
|
||||||
junk_duanwei:['male','qun',4,['junklangmie']],
|
junk_duanwei:['male','qun',4,['junklangmie']],
|
||||||
|
junk_xuyou:["male","qun",3,["nzry_chenglve","junkshicai","nzry_cunmu"]],
|
||||||
},
|
},
|
||||||
characterFilter:{
|
characterFilter:{
|
||||||
key_jojiro:function(mode){
|
key_jojiro:function(mode){
|
||||||
|
@ -222,7 +223,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
diy_default:["diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji"],
|
diy_default:["diy_yuji","diy_caiwenji","diy_lukang","diy_zhenji"],
|
||||||
diy_noname:['noname'],
|
diy_noname:['noname'],
|
||||||
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","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano","db_key_liyingxia","key_erika","key_satomi","key_iriya","key_fuuko"],
|
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","key_sakuya","key_youta","key_rumi","key_chihaya","key_yukito","key_asara","key_kotomi","key_mia","key_kano","db_key_liyingxia","key_erika","key_satomi","key_iriya","key_fuuko"],
|
||||||
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang','old_bulianshi','junk_sunquan','ol_maliang','junk_liubei','junk_huangyueying','junk_lidian','junk_duanwei'],
|
diy_trashbin:['old_jiakui','ol_guohuai','junk_zhangrang','old_bulianshi','junk_sunquan','ol_maliang','junk_liubei','junk_huangyueying','junk_lidian','junk_duanwei','junk_xuyou'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
characterIntro:{
|
characterIntro:{
|
||||||
|
@ -12543,6 +12544,64 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
|
//手杀削弱版许攸
|
||||||
|
junkshicai:{
|
||||||
|
audio:'nzry_shicai_2',
|
||||||
|
trigger:{player:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!event.cards.filterInD('oe').length) return false;
|
||||||
|
return player.getHistory('useCard',evt=>get.type2(evt.card)==get.type2(event.card)).indexOf(event)==0;
|
||||||
|
},
|
||||||
|
prompt2:function(event,player){
|
||||||
|
const cards=event.cards.filterInD('oe');
|
||||||
|
return '你可以将'+get.translation(cards)+(cards.length>1?'以任意顺序':'')+'置于牌堆顶,然后摸一张牌';
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
event.cards=trigger.cards.filterInD('oe');
|
||||||
|
var lose_list=[];
|
||||||
|
event.cards.forEach(card=>{
|
||||||
|
var owner=get.owner(card);
|
||||||
|
if(owner){
|
||||||
|
var arr=lose_list.find(i=>i[0]==owner);
|
||||||
|
if(arr) arr[1].push(card);
|
||||||
|
else lose_list.push([owner,[card]]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if(lose_list.length){
|
||||||
|
game.loseAsync({
|
||||||
|
lose_list:lose_list,
|
||||||
|
}).setContent('chooseToCompareLose');
|
||||||
|
}
|
||||||
|
'step 1'
|
||||||
|
if(cards.length>1){
|
||||||
|
var next=player.chooseToMove('恃才:将牌按顺序置于牌堆顶');
|
||||||
|
next.set('list',[['牌堆顶',cards]]);
|
||||||
|
next.set('reverse',((_status.currentPhase&&_status.currentPhase.next)?get.attitude(player,_status.currentPhase.next)>0:false));
|
||||||
|
next.set('processAI',function(list){
|
||||||
|
var cards=list[0][1].slice(0);
|
||||||
|
cards.sort(function(a,b){
|
||||||
|
return (_status.event.reverse?1:-1)*(get.value(b)-get.value(a));
|
||||||
|
});
|
||||||
|
return [cards];
|
||||||
|
});
|
||||||
|
}
|
||||||
|
'step 2'
|
||||||
|
if(result.bool&&result.moved&&result.moved[0].length) cards=result.moved[0].slice(0);
|
||||||
|
cards.reverse();
|
||||||
|
game.cardsGotoPile(cards,'insert');
|
||||||
|
game.log(player,'将',cards,'置于了牌堆顶');
|
||||||
|
player.draw();
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
reverseOrder:true,
|
||||||
|
skillTagFilter:function(player){
|
||||||
|
if(player.getHistory('useCard',function(evt){
|
||||||
|
return get.type(evt.card)=='equip';
|
||||||
|
}).length>0) return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//削弱版段煨
|
//削弱版段煨
|
||||||
junklangmie:{
|
junklangmie:{
|
||||||
audio:'langmie',
|
audio:'langmie',
|
||||||
|
@ -19101,6 +19160,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
junkwangxi_tag:'invisible',
|
junkwangxi_tag:'invisible',
|
||||||
junklangmie:'狼灭',
|
junklangmie:'狼灭',
|
||||||
junklangmie_info:'其他角色的结束阶段开始时,你可以选择一项:⒈若其本回合内使用过某种类型的牌超过一张,则你弃置一张牌并摸两张牌。⒉若其本回合累计造成过的伤害大于1,则你弃置一张牌,然后对其造成1点伤害。',
|
junklangmie_info:'其他角色的结束阶段开始时,你可以选择一项:⒈若其本回合内使用过某种类型的牌超过一张,则你弃置一张牌并摸两张牌。⒉若其本回合累计造成过的伤害大于1,则你弃置一张牌,然后对其造成1点伤害。',
|
||||||
|
junkshicai:"恃才",
|
||||||
|
junkshicai_info:"当你使用牌结束完毕后,若此牌与你本回合使用的牌类型均不同,则你可以将此牌置于牌堆顶,然后摸一张牌。",
|
||||||
ol_guohuai_ab:'郭淮',
|
ol_guohuai_ab:'郭淮',
|
||||||
old_jiakui:'通渠贾逵',
|
old_jiakui:'通渠贾逵',
|
||||||
ol_guohuai:'三血郭淮',
|
ol_guohuai:'三血郭淮',
|
||||||
|
@ -19113,6 +19174,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
junk_lidian_ab:'李典',
|
junk_lidian_ab:'李典',
|
||||||
junk_duanwei:'削弱段煨',
|
junk_duanwei:'削弱段煨',
|
||||||
junk_duanwei_ab:'段煨',
|
junk_duanwei_ab:'段煨',
|
||||||
|
junk_xuyou:'手杀许攸',
|
||||||
|
|
||||||
diy_tieba:'吧友设计',
|
diy_tieba:'吧友设计',
|
||||||
diy_xushi:'玩点论杀·虚实篇',
|
diy_xushi:'玩点论杀·虚实篇',
|
||||||
|
|
|
@ -948,6 +948,7 @@ window.noname_character_rank={
|
||||||
'jsrg_xuyou',
|
'jsrg_xuyou',
|
||||||
'jsrg_zhangliao',
|
'jsrg_zhangliao',
|
||||||
'jsrg_zhenji',
|
'jsrg_zhenji',
|
||||||
|
'junk_xuyou',
|
||||||
],
|
],
|
||||||
b:[
|
b:[
|
||||||
'diy_feishi',
|
'diy_feishi',
|
||||||
|
@ -2491,6 +2492,7 @@ window.noname_character_rank={
|
||||||
'std_panfeng',
|
'std_panfeng',
|
||||||
're_caochong',
|
're_caochong',
|
||||||
're_caorui',
|
're_caorui',
|
||||||
|
'junk_xuyou',
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -57,7 +57,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"wangping":["male","shu",4,["nzry_feijun","nzry_binglve"],[]],
|
"wangping":["male","shu",4,["nzry_feijun","nzry_binglve"],[]],
|
||||||
"luji":["male","wu",3,["nzry_huaiju","nzry_yili","nzry_zhenglun"],[]],
|
"luji":["male","wu",3,["nzry_huaiju","nzry_yili","nzry_zhenglun"],[]],
|
||||||
"sunliang":["male","wu",3,["nzry_kuizhu","nzry_zhizheng","nzry_lijun"],['zhu']],
|
"sunliang":["male","wu",3,["nzry_kuizhu","nzry_zhizheng","nzry_lijun"],['zhu']],
|
||||||
"xuyou":["male","qun",3,["nzry_chenglve","nzry_shicai","nzry_cunmu"],[]],
|
xuyou:["male","qun",3,["nzry_chenglve","nzry_shicai","nzry_cunmu"]],
|
||||||
"yl_luzhi":["male","qun",3,["nzry_mingren","nzry_zhenliang"],["die_audio"]],
|
"yl_luzhi":["male","qun",3,["nzry_mingren","nzry_zhenliang"],["die_audio"]],
|
||||||
"kuailiangkuaiyue":["male","wei",3,["nzry_jianxiang","nzry_shenshi"],[]],
|
"kuailiangkuaiyue":["male","wei",3,["nzry_jianxiang","nzry_shenshi"],[]],
|
||||||
|
|
||||||
|
@ -2157,25 +2157,45 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
nzry_shicai:{
|
nzry_shicai:{
|
||||||
audio:'nzry_shicai_2',
|
audio:'nzry_shicai_2',
|
||||||
trigger:{player:'useCardAfter'},
|
trigger:{player:['useCardAfter','useCardToTargeted']},
|
||||||
filter:function(event,player){
|
prompt2:function(event,player){
|
||||||
if(!event.cards.filterInD('oe').length) return false;
|
const cards=event.cards.filterInD('oe');
|
||||||
return player.getHistory('useCard',evt=>get.type2(evt.card)==get.type2(event.card)).indexOf(event)==0;
|
return '你可以将'+get.translation(cards)+(cards.length>1?'以任意顺序':'')+'置于牌堆顶,然后摸一张牌';
|
||||||
},
|
},
|
||||||
prompt:function(event,player){
|
filter:function(event,player){
|
||||||
return get.prompt('nzry_shicai')+'(将'+get.translation(event.cards.filterInD('oe'))+'置于牌堆顶)';
|
if(!event.cards.someInD()) return false;
|
||||||
|
let evt=event,type=get.type2(evt.card,false);
|
||||||
|
if(event.name=='useCardToPlayered'){
|
||||||
|
if(type!='equip'||player!=event.target) return false;
|
||||||
|
evt=evt.getParent();
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(type=='equip') return false;
|
||||||
|
}
|
||||||
|
return !player.hasHistory('useCard',evtx=>{
|
||||||
|
return evtx!=evt&&get.type2(evtx.card,false)==type;
|
||||||
|
},evt);
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
if(get.type(event.card)=='equip'){
|
||||||
|
if(get.subtype(event.card)=='equip6') return true;
|
||||||
|
if(get.equipResult(player,player,event.card.name)<=0) return true;
|
||||||
|
var eff1=player.getUseValue(event.card);
|
||||||
|
var subtype=get.subtype(event.card);
|
||||||
|
return player.countCards('h',function(card){
|
||||||
|
return get.subtype(card)==subtype&&player.getUseValue(card)>=eff1;
|
||||||
|
})>0;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
'step 0'
|
'step 0'
|
||||||
event.cards=trigger.cards.filterInD('oe');
|
var cards=trigger.cards.filterInD();
|
||||||
var cards=event.cards.filter(card=>get.owner(card));
|
if(cards.length==1){
|
||||||
if(!cards.length){
|
event._result={bool:true,moved:[cards]};
|
||||||
event.goto(2);
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
event.cards.removeArray(cards);
|
else{
|
||||||
if(cards.length>1){
|
var next=player.chooseToMove('恃才:将牌按顺序置于牌堆顶',true);
|
||||||
var next=player.chooseToMove('恃才:将牌按顺序置于牌堆顶');
|
|
||||||
next.set('list',[['牌堆顶',cards]]);
|
next.set('list',[['牌堆顶',cards]]);
|
||||||
next.set('reverse',((_status.currentPhase&&_status.currentPhase.next)?get.attitude(player,_status.currentPhase.next)>0:false));
|
next.set('reverse',((_status.currentPhase&&_status.currentPhase.next)?get.attitude(player,_status.currentPhase.next)>0:false));
|
||||||
next.set('processAI',function(list){
|
next.set('processAI',function(list){
|
||||||
|
@ -2186,43 +2206,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return [cards];
|
return [cards];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else event._result={bool:true,moved:[cards]};
|
|
||||||
'step 1'
|
'step 1'
|
||||||
var cardx=result.moved[0].slice(0);
|
if(result.bool){
|
||||||
while(cardx.length){
|
var cards=result.moved[0];
|
||||||
var card=cardx.pop(),owner=get.owner(card);
|
cards.reverse();
|
||||||
owner.lose([card],ui.cardPile,'insert');
|
game.cardsGotoPile(cards,'insert');
|
||||||
game.log(player,'将',card,'置于牌堆顶');
|
game.log(player,'将',cards,'置于了牌堆顶');
|
||||||
}
|
}
|
||||||
game.updateRoundNumber();
|
|
||||||
if(!cards.length){
|
|
||||||
player.draw();
|
|
||||||
event.finish();
|
|
||||||
}
|
|
||||||
'step 2'
|
|
||||||
if(cards.length>1){
|
|
||||||
var next=player.chooseToMove('恃才:将牌按顺序置于牌堆顶');
|
|
||||||
next.set('list',[['牌堆顶',cards]]);
|
|
||||||
next.set('reverse',((_status.currentPhase&&_status.currentPhase.next)?get.attitude(player,_status.currentPhase.next)>0:false));
|
|
||||||
next.set('processAI',function(list){
|
|
||||||
var cards=list[0][1].slice(0);
|
|
||||||
cards.sort(function(a,b){
|
|
||||||
return (_status.event.reverse?1:-1)*(get.value(b)-get.value(a));
|
|
||||||
});
|
|
||||||
return [cards];
|
|
||||||
});
|
|
||||||
}
|
|
||||||
'step 3'
|
|
||||||
if(result.bool&&result.moved&&result.moved[0].length) cards=result.moved[0].slice(0);
|
|
||||||
while(cards.length){
|
|
||||||
var card=cards.pop();
|
|
||||||
if(get.position(card,true)=='o'){
|
|
||||||
card.fix();
|
|
||||||
ui.cardPile.insertBefore(card,ui.cardPile.firstChild);
|
|
||||||
game.log(player,'将',card,'置于牌堆顶');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
game.updateRoundNumber();
|
|
||||||
player.draw();
|
player.draw();
|
||||||
},
|
},
|
||||||
subSkill:{'2':{audio:2}},
|
subSkill:{'2':{audio:2}},
|
||||||
|
@ -3994,7 +3984,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
if(event.player!=player&&event.player.isIn()){
|
if(event.player!=player&&event.player.isIn()){
|
||||||
return event.player.getHistory('lose',function(evt){
|
return event.player.getHistory('lose',function(evt){
|
||||||
return evt.type=='discard'&&evt.getParent('phaseDiscard')==event&&evt.hs.filterInD('d').length>0;
|
return evt.type=='discard'&&evt.getParent('phaseDiscard')==event&&evt.hs.someInD('d');
|
||||||
}).length>0;
|
}).length>0;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -4638,7 +4628,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{global:'useCardAfter'},
|
trigger:{global:'useCardAfter'},
|
||||||
forced:true,
|
forced:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return (event.card.name=='nanman'&&event.player!=player&&event.cards.filterInD().length>0);
|
return (event.card.name=='nanman'&&event.player!=player&&event.cards.someInD());
|
||||||
},
|
},
|
||||||
content:function(){
|
content:function(){
|
||||||
player.gain(trigger.cards.filterInD(),'gain2');
|
player.gain(trigger.cards.filterInD(),'gain2');
|
||||||
|
@ -7751,8 +7741,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
"nzry_chenglve1":"成略",
|
"nzry_chenglve1":"成略",
|
||||||
"nzry_chenglve":"成略",
|
"nzry_chenglve":"成略",
|
||||||
"nzry_chenglve_info":"转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。",
|
"nzry_chenglve_info":"转换技,出牌阶段限一次,阴:你可以摸一张牌,然后弃置两张手牌。阳:你可以摸两张牌,然后弃置一张手牌。若如此做,直到本回合结束,你使用与弃置牌花色相同的牌无距离和次数限制。",
|
||||||
"nzry_shicai":"恃才",
|
|
||||||
"nzry_shicai_info":"当你使用牌结束完毕后,若此牌与你本回合使用的牌类型均不同,则你可以将此牌置于牌堆顶,然后摸一张牌。",
|
|
||||||
"nzry_cunmu":"寸目",
|
"nzry_cunmu":"寸目",
|
||||||
"nzry_cunmu_info":"锁定技,当你摸牌时,改为从牌堆底摸牌。",
|
"nzry_cunmu_info":"锁定技,当你摸牌时,改为从牌堆底摸牌。",
|
||||||
"nzry_kuizhu":"溃诛",
|
"nzry_kuizhu":"溃诛",
|
||||||
|
@ -8112,6 +8100,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
olkongsheng_info:'①准备阶段开始时,你可以将任意张牌置于你的武将牌上,称为“箜”。②结束阶段开始时,若你有不为装备牌的“箜”,则你获得“箜”中的非装备牌,然后令一名角色依次使用“箜”中的装备牌并失去1点体力。',
|
olkongsheng_info:'①准备阶段开始时,你可以将任意张牌置于你的武将牌上,称为“箜”。②结束阶段开始时,若你有不为装备牌的“箜”,则你获得“箜”中的非装备牌,然后令一名角色依次使用“箜”中的装备牌并失去1点体力。',
|
||||||
dcwanglie:"往烈",
|
dcwanglie:"往烈",
|
||||||
dcwanglie_info:"①出牌阶段,你对其他角色使用的前两张牌无距离限制。②当你于出牌阶段内使用牌时,你可以令此牌不能被响应,然后你于本阶段内不能使用牌指定其他角色为目标。",
|
dcwanglie_info:"①出牌阶段,你对其他角色使用的前两张牌无距离限制。②当你于出牌阶段内使用牌时,你可以令此牌不能被响应,然后你于本阶段内不能使用牌指定其他角色为目标。",
|
||||||
|
nzry_shicai:"恃才",
|
||||||
|
nzry_shicai_info:"当你使用非装备牌结算结束后,或成为自己使用装备牌的目标后,若此牌与你本回合使用的牌类型均不同,则你可以将此牌置于牌堆顶,然后摸一张牌。",
|
||||||
|
|
||||||
shenhua_feng:'神话再临·风',
|
shenhua_feng:'神话再临·风',
|
||||||
shenhua_huo:'神话再临·火',
|
shenhua_huo:'神话再临·火',
|
||||||
|
|
17
game/game.js
17
game/game.js
|
@ -7650,12 +7650,17 @@
|
||||||
enumerable:false,
|
enumerable:false,
|
||||||
writable:true,
|
writable:true,
|
||||||
value:function(pos){
|
value:function(pos){
|
||||||
if(!pos) pos='o';
|
if(typeof pos!='string') pos='o';
|
||||||
var list=[];
|
return this.filter(card=>pos.includes(get.position(card,true)));
|
||||||
for(var i=0;i<this.length;i++){
|
}
|
||||||
if(pos.indexOf(get.position(this[i],true))!=-1) list.push(this[i]);
|
});
|
||||||
}
|
Object.defineProperty(Array.prototype, "someInD", {
|
||||||
return list;
|
configurable:true,
|
||||||
|
enumerable:false,
|
||||||
|
writable:true,
|
||||||
|
value:function(pos){
|
||||||
|
if(typeof pos!='string') pos='o';
|
||||||
|
return this.some(card=>pos.includes(get.position(card,true)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
Object.defineProperty(Array.prototype, "contains", {
|
Object.defineProperty(Array.prototype, "contains", {
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 78 KiB |
Loading…
Reference in New Issue