parent
e7985bb3af
commit
7c02c72a8d
|
@ -1093,7 +1093,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
trigger:{player:'phaseJieshuBegin'},
|
trigger:{player:'phaseJieshuBegin'},
|
||||||
prompt2:function(event,player){
|
prompt2:function(event,player){
|
||||||
var str='获得技能';
|
var str='获得技能';
|
||||||
var num=lib.skill.olsbranji.getNum(event,player);
|
var num=lib.skill.olsbranji.getNum(player);
|
||||||
if(num>=player.getHp()) str+='【困奋】';
|
if(num>=player.getHp()) str+='【困奋】';
|
||||||
if(num==player.getHp()) str+='和';
|
if(num==player.getHp()) str+='和';
|
||||||
if(num<=player.getHp()) str+='【诈降】';
|
if(num<=player.getHp()) str+='【诈降】';
|
||||||
|
@ -1109,7 +1109,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return str;
|
return str;
|
||||||
},
|
},
|
||||||
check:function(event,player){
|
check:function(event,player){
|
||||||
var num=lib.skill.olsbranji.getNum(event,player);
|
var num=lib.skill.olsbranji.getNum(player);
|
||||||
if(num==player.getHp()) return true;
|
if(num==player.getHp()) return true;
|
||||||
return player.getHandcardLimit()-player.countCards('h')>=3||player.getDamagedHp()>=2;
|
return player.getHandcardLimit()-player.countCards('h')>=3||player.getDamagedHp()>=2;
|
||||||
},
|
},
|
||||||
|
@ -1120,7 +1120,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
var player=map.player;
|
var player=map.player;
|
||||||
var trigger=map.trigger;
|
var trigger=map.trigger;
|
||||||
player.awakenSkill('olsbranji');
|
player.awakenSkill('olsbranji');
|
||||||
var num=lib.skill.olsbranji.getNum(trigger,player);
|
var num=lib.skill.olsbranji.getNum(player);
|
||||||
const skills = [];
|
const skills = [];
|
||||||
if(num>=player.getHp()){
|
if(num>=player.getHp()){
|
||||||
skills.push('kunfen');
|
skills.push('kunfen');
|
||||||
|
@ -1159,8 +1159,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
getList:function(event){
|
getList:function(event){
|
||||||
return event.getParent().phaseList.map(list=>list.split('|')[0]);
|
return event.getParent().phaseList.map(list=>list.split('|')[0]);
|
||||||
},
|
},
|
||||||
getNum:function(event,player){
|
getNum:function(player){
|
||||||
return lib.skill.olsbranji.getList(event).slice(0,event.getParent().num).filter(name=>player.getHistory('useCard',evt=>evt.getParent(name).name==name).length).length;
|
return player.getHistory('useCard',evt=>{
|
||||||
|
return lib.phaseName.some(name=>{
|
||||||
|
return evt.getParent(name).name==name;
|
||||||
|
});
|
||||||
|
}).reduce((list,evt)=>{
|
||||||
|
return list.add(evt.getParent(lib.phaseName.find(name=>evt.getParent(name).name==name)));
|
||||||
|
},[]).length;
|
||||||
},
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
norecover:{
|
norecover:{
|
||||||
|
|
|
@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
characterSort:{
|
characterSort:{
|
||||||
sp:{
|
sp:{
|
||||||
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji",'caoxiancaohua'],
|
sp_tianji:["sunhao","liuxie","caoang","hetaihou","sunluyu",'ol_wangrong',"zuofen","ol_bianfuren","qinghegongzhu","tengfanglan","ruiji",'caoxiancaohua'],
|
||||||
sp_sibi:["yangxiu",'guotu',"chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','wangyan','xiahouxuan','quhuang','zhanghua','wangguan','sunhong','caoxi','tianchou'],
|
sp_sibi:['ol_lukai',"yangxiu",'guotu',"chenlin","chengyu","shixie","fuwan","wangyun","zhugejin","simalang","maliang","buzhi","dongyun","kanze","sunqian","xizhicai","sunshao",'duxi',"jianggan",'ol_dengzhi','ol_yangyi','ol_dongzhao','ol_chendeng','jin_yanghu','wangyan','xiahouxuan','quhuang','zhanghua','wangguan','sunhong','caoxi','tianchou'],
|
||||||
sp_tianzhu:['liyi','zhangyan','niujin','hejin','hansui',"wutugu","yanbaihu","shamoke","zhugedan",'huangzu','gaogan',"tadun","fanjiangzhangda","ahuinan","dongtuna",'ol_wenqin'],
|
sp_tianzhu:['liyi','zhangyan','niujin','hejin','hansui',"wutugu","yanbaihu","shamoke","zhugedan",'huangzu','gaogan',"tadun","fanjiangzhangda","ahuinan","dongtuna",'ol_wenqin'],
|
||||||
sp_nvshi:['ol_dingshangwan',"lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu',"daxiaoqiao","jin_guohuai",'ol_hujinding'],
|
sp_nvshi:['ol_dingshangwan',"lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu',"daxiaoqiao","jin_guohuai",'ol_hujinding'],
|
||||||
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','zhangzhi','lushi'],
|
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','zhangzhi','lushi'],
|
||||||
|
@ -18,7 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_zhongdan:["cuiyan","huangfusong"],
|
sp_zhongdan:["cuiyan","huangfusong"],
|
||||||
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
|
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
|
||||||
sp_others:["hanba","caiyang"],
|
sp_others:["hanba","caiyang"],
|
||||||
sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_liwan','ol_liuyan','caoyu','liupan','ol_lukai','ol_liupi'],
|
sp_waitforsort:['ol_luyusheng','ol_pengyang','ol_tw_zhangji','ol_liwan','ol_liuyan','caoyu','liupan','ol_liupi'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
characterFilter:{
|
characterFilter:{
|
||||||
|
|
|
@ -2117,20 +2117,24 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
return lib.filter.cardDiscardable(card,player)&&!player.getStorage('fakezhufu_effect').includes(get.suit(card));
|
return lib.filter.cardDiscardable(card,player)&&!player.getStorage('fakezhufu_effect').includes(get.suit(card));
|
||||||
},
|
},
|
||||||
position:'he',
|
position:'he',
|
||||||
|
/*
|
||||||
check(card){
|
check(card){
|
||||||
const player=get.event('player');
|
const player=get.event('player');
|
||||||
if(player.hasUseTarget(card,true,true)) return 0;
|
if(player.hasUseTarget(card,true,true)) return 0;
|
||||||
return 5+3*Math.random()-get.value(card);
|
return 5+3*Math.random()-get.value(card);
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
const suit=get.suit(event.cards[0],player);
|
const suit=get.suit(event.cards[0],player);
|
||||||
player.addTempSkill('fakezhufu_effect','phaseUseAfter');
|
player.addTempSkill('fakezhufu_effect','phaseUseAfter');
|
||||||
player.markAuto('fakezhufu_effect',[[suit,false]]);
|
player.markAuto('fakezhufu_effect',[[suit,false]]);
|
||||||
},
|
},
|
||||||
|
/*
|
||||||
ai:{
|
ai:{
|
||||||
order:7,
|
order:7,
|
||||||
result:{player:1},
|
result:{player:1},
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
subSkill:{
|
subSkill:{
|
||||||
effect:{
|
effect:{
|
||||||
charlotte:true,
|
charlotte:true,
|
||||||
|
@ -2143,7 +2147,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
let str='';
|
let str='';
|
||||||
str+='<li>已弃置过的花色:';
|
str+='<li>已弃置过的花色:';
|
||||||
str+=suits;
|
str+=suits;
|
||||||
if(used.length){
|
if(usedSuits.length){
|
||||||
str+='<br><li>已触发过的花色:';
|
str+='<br><li>已触发过的花色:';
|
||||||
str+=usedSuits;
|
str+=usedSuits;
|
||||||
}
|
}
|
||||||
|
@ -2156,22 +2160,57 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
return player.getStorage('fakezhufu_effect').some(list=>!list[1]);
|
return player.getStorage('fakezhufu_effect').some(list=>!list[1]);
|
||||||
},
|
},
|
||||||
forced:true,
|
forced:true,
|
||||||
content(){
|
firstDo:true,
|
||||||
const list=player.getStorage('fakezhufu_effect').filter(list=>!list[1]);
|
async content(event,trigger,player){
|
||||||
for(const i of list){
|
const list=player.getStorage('fakezhufu_effect').filter(i=>!i[1]);
|
||||||
player.storage.fakezhufu_effect[player.getStorage('fakezhufu_effect').indexOf(i)][1]=true;
|
const forced=(function(trigger,player){
|
||||||
|
if(trigger.forceYingbian||player.hasSkillTag('forceYingbian')) return true;
|
||||||
|
const list=(trigger.temporaryYingbian||[]);
|
||||||
|
return list.includes('force')||get.cardtag(trigger.card,'yingbian_force');
|
||||||
|
}(trigger,player));
|
||||||
|
if(forced){
|
||||||
|
player.popup('yingbian_force_tag',lib.yingbian.condition.color.get('force'));
|
||||||
|
game.log(player,'触发了','#g【注傅】','为',trigger.card,'添加的应变条件');
|
||||||
|
}
|
||||||
|
const hasYingBian=(trigger.temporaryYingbian||[]),map=get.info('fakezhufu').YingBianMap;
|
||||||
|
for(const j of list){
|
||||||
|
player.storage.fakezhufu_effect[player.getStorage('fakezhufu_effect').indexOf(j)][1]=true;
|
||||||
|
const tag=map[j[0]][0],eff=map[j[0]][1];
|
||||||
|
if(get.cardtag(trigger.card,`yingbian_${tag}`)) continue;
|
||||||
|
if(j[0]=='heart'){
|
||||||
|
if(!forced&&!hasYingBian.includes('add')){
|
||||||
|
const {result}=await lib.yingbian.condition.complex.get('zhuzhan')(trigger);
|
||||||
|
if(result.bool){
|
||||||
|
game.log(player,'触发了','#g【注傅】','为',trigger.card,'添加的应变条件(','#g'+get.translation(j[0]),')');
|
||||||
|
trigger.yingbian_addTarget=true;
|
||||||
|
player.addTempSkill('yingbian_changeTarget');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(!forced){
|
||||||
|
game.log(player,'触发了','#g【注傅】','为',trigger.card,'添加的应变条件(','#g'+get.translation(j[0]),')');
|
||||||
|
}
|
||||||
|
trigger.yingbian_addTarget=true;
|
||||||
|
player.addTempSkill('yingbian_changeTarget');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
const goon=(hasYingBian.includes(eff)||lib.yingbian.condition.simple.get(tag)(trigger));
|
||||||
|
if(!forced&&goon){
|
||||||
|
player.popup('yingbian_force_tag',lib.yingbian.condition.color.get(eff));
|
||||||
|
game.log(player,'触发了','#g【注傅】','为',trigger.card,'添加的应变条件(','#g'+get.translation(j[0]),')');
|
||||||
|
}
|
||||||
|
if(forced||goon) await game.yingbianEffect(trigger,lib.yingbian.effect.get(eff));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(!Array.isArray(trigger.temporaryYingbian)) trigger.temporaryYingbian=[];
|
|
||||||
trigger.forceYingbian=true
|
|
||||||
trigger.temporaryYingbian.addArray(list.map(i=>get.info('fakezhufu').YingBianMap[i[0]]));
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
YingBianMap:{
|
YingBianMap:{
|
||||||
'heart':'yingbian_zhuzhan',
|
'heart':['zhuzhan','add'],
|
||||||
'diamond':'yingbian_fujia',
|
'diamond':['fujia','hit'],
|
||||||
'spade':'yingbian_canqu',
|
'spade':['canqu','draw'],
|
||||||
'club':'yingbian_kongchao',
|
'club':['kongchao','damage'],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
fakeguishu:{
|
fakeguishu:{
|
||||||
|
@ -2349,7 +2388,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
||||||
async content(event,trigger,player){
|
async content(event,trigger,player){
|
||||||
const target=event.targets[0];
|
const target=event.targets[0];
|
||||||
const {result:{bool,cards}}=await player.discardPlayerCard(target,'he',true);
|
const {result:{bool,cards}}=await player.discardPlayerCard(target,'he',true);
|
||||||
if(get.yingbianConditions(trigger.card).length&&bool){
|
if(bool){
|
||||||
|
await target.draw();
|
||||||
if(cards.some(i=>get.suit(i,target)==get.suit(trigger.card))){
|
if(cards.some(i=>get.suit(i,target)==get.suit(trigger.card))){
|
||||||
trigger.forceYingbian=true;
|
trigger.forceYingbian=true;
|
||||||
}
|
}
|
||||||
|
@ -18485,7 +18525,7 @@ return event.junling=='junling5'?1:0;});
|
||||||
fakedujin:'独进',
|
fakedujin:'独进',
|
||||||
fakedujin_info:'①摸牌阶段,你可以额外摸X张牌(X为你装备区的牌数的一半,向上取整)。②当你首次明置此武将牌时,若你为你们势力第一个明置武将牌的角色,则你获得1个“先驱”标记。',
|
fakedujin_info:'①摸牌阶段,你可以额外摸X张牌(X为你装备区的牌数的一半,向上取整)。②当你首次明置此武将牌时,若你为你们势力第一个明置武将牌的角色,则你获得1个“先驱”标记。',
|
||||||
fakezhufu:'注傅',
|
fakezhufu:'注傅',
|
||||||
fakezhufu_info:'出牌阶段,你可以弃置一张本阶段未以此法弃置过的花色的牌,然后根据此牌的花色为你使用的下一张牌添加对应的应变效果(无视条件触发):红桃——助战;方片——富甲;黑桃——残躯;草花——空巢。',
|
fakezhufu_info:'出牌阶段,你可以弃置一张本阶段未以此法弃置过的花色的牌,然后根据此牌的花色为你使用的下一张牌添加对应的应变效果:红桃,助战、目标+1;方片,富甲、不可被响应;黑桃,残躯、摸一张牌;草花,空巢、伤害+1。',
|
||||||
fakeguishu:'鬼术',
|
fakeguishu:'鬼术',
|
||||||
fakeguishu_info:'出牌阶段限一次,你可以将一张黑桃手牌当作【知己知彼】或【远交近攻】使用。若你本局游戏内已经发动过了〖鬼术〗,则你必须选择与上次不同的选项。',
|
fakeguishu_info:'出牌阶段限一次,你可以将一张黑桃手牌当作【知己知彼】或【远交近攻】使用。若你本局游戏内已经发动过了〖鬼术〗,则你必须选择与上次不同的选项。',
|
||||||
fakeyuanyu:'远域',
|
fakeyuanyu:'远域',
|
||||||
|
|
Loading…
Reference in New Issue