OL陆凯分包调整;
OL谋姜维【燃己】计算阶段数bugfix;
国战王基,国战群杜预bugfix;
This commit is contained in:
mengxinzxz 2024-04-08 13:33:11 +08:00
parent e7985bb3af
commit 7c02c72a8d
3 changed files with 67 additions and 21 deletions

View File

@ -1093,7 +1093,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
trigger:{player:'phaseJieshuBegin'},
prompt2:function(event,player){
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+='【诈降】';
@ -1109,7 +1109,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return str;
},
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;
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 trigger=map.trigger;
player.awakenSkill('olsbranji');
var num=lib.skill.olsbranji.getNum(trigger,player);
var num=lib.skill.olsbranji.getNum(player);
const skills = [];
if(num>=player.getHp()){
skills.push('kunfen');
@ -1159,8 +1159,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
getList:function(event){
return event.getParent().phaseList.map(list=>list.split('|')[0]);
},
getNum:function(event,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;
getNum:function(player){
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:{
norecover:{

View File

@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterSort:{
sp:{
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_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'],
@ -18,7 +18,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_zhongdan:["cuiyan","huangfusong"],
sp_guozhan2:["sp_dongzhuo","liqueguosi","zhangren"],
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:{

View File

@ -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));
},
position:'he',
/*
check(card){
const player=get.event('player');
if(player.hasUseTarget(card,true,true)) return 0;
return 5+3*Math.random()-get.value(card);
},
*/
async content(event,trigger,player){
const suit=get.suit(event.cards[0],player);
player.addTempSkill('fakezhufu_effect','phaseUseAfter');
player.markAuto('fakezhufu_effect',[[suit,false]]);
},
/*
ai:{
order:7,
result:{player:1},
},
*/
subSkill:{
effect:{
charlotte:true,
@ -2143,7 +2147,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
let str='';
str+='<li>已弃置过的花色:';
str+=suits;
if(used.length){
if(usedSuits.length){
str+='<br><li>已触发过的花色:';
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]);
},
forced:true,
content(){
const list=player.getStorage('fakezhufu_effect').filter(list=>!list[1]);
for(const i of list){
player.storage.fakezhufu_effect[player.getStorage('fakezhufu_effect').indexOf(i)][1]=true;
firstDo:true,
async content(event,trigger,player){
const list=player.getStorage('fakezhufu_effect').filter(i=>!i[1]);
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:{
'heart':'yingbian_zhuzhan',
'diamond':'yingbian_fujia',
'spade':'yingbian_canqu',
'club':'yingbian_kongchao',
'heart':['zhuzhan','add'],
'diamond':['fujia','hit'],
'spade':['canqu','draw'],
'club':['kongchao','damage'],
},
},
fakeguishu:{
@ -2349,7 +2388,8 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
async content(event,trigger,player){
const target=event.targets[0];
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))){
trigger.forceYingbian=true;
}
@ -18485,7 +18525,7 @@ return event.junling=='junling5'?1:0;});
fakedujin:'独进',
fakedujin_info:'①摸牌阶段你可以额外摸X张牌X为你装备区的牌数的一半向上取整。②当你首次明置此武将牌时若你为你们势力第一个明置武将牌的角色则你获得1个“先驱”标记。',
fakezhufu:'注傅',
fakezhufu_info:'出牌阶段,你可以弃置一张本阶段未以此法弃置过的花色的牌,然后根据此牌的花色为你使用的下一张牌添加对应的应变效果(无视条件触发):红桃——助战;方片——富甲;黑桃——残躯;草花——空巢。',
fakezhufu_info:'出牌阶段,你可以弃置一张本阶段未以此法弃置过的花色的牌,然后根据此牌的花色为你使用的下一张牌添加对应的应变效果:红桃,助战、目标+1方片富甲、不可被响应黑桃残躯、摸一张牌草花空巢、伤害+1。',
fakeguishu:'鬼术',
fakeguishu_info:'出牌阶段限一次,你可以将一张黑桃手牌当作【知己知彼】或【远交近攻】使用。若你本局游戏内已经发动过了〖鬼术〗,则你必须选择与上次不同的选项。',
fakeyuanyu:'远域',