Merge pull request #910 from mengxinzxz/PR-Branch

bugfix+优化
This commit is contained in:
Spmario233 2024-02-04 10:45:53 +08:00 committed by GitHub
commit 69fba5f19d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 38 additions and 58 deletions

View File

@ -982,10 +982,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
'step 1' 'step 1'
if(result.bool){ if(result.bool){
var list=result.links; var list=result.links;
game.addVideo('skill',player,['qiexie',[list]]) game.addVideo('skill',player,['qiexie',[list]]);
game.broadcastAll(function(list){ _status.characterlist.removeArray(list);
game.broadcastAll(function(player,list){
player.tempname.addArray(list);
for(var name of list) lib.skill.qiexie.createCard(name); for(var name of list) lib.skill.qiexie.createCard(name);
},list); },player,list);
var cards=list.map(function(name){ var cards=list.map(function(name){
var card=game.createCard('qiexie_'+name,'none',get.infoMaxHp(lib.character[name][2])); var card=game.createCard('qiexie_'+name,'none',get.infoMaxHp(lib.character[name][2]));
return card; return card;
@ -1138,6 +1140,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
card._destroy=true; card._destroy=true;
game.log(card,'被放回武将牌堆'); game.log(card,'被放回武将牌堆');
var name=card.name.slice(7); var name=card.name.slice(7);
if(player.tempname&&player.tempname.includes(name)){
game.broadcastAll((player,name)=>{
player.tempname.remove(name);
},player,name);
}
if(lib.character[name]) _status.characterlist.add(name); if(lib.character[name]) _status.characterlist.add(name);
} }
} }

View File

@ -96,7 +96,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
re_chunyuqiong:['male','qun',4,['recangchu','reliangying','reshishou']], re_chunyuqiong:['male','qun',4,['recangchu','reliangying','reshishou']],
xingdaorong:['male','qun','4/6',['xuxie']], xingdaorong:['male','qun','4/6',['xuxie']],
re_panfeng:['male','qun',4,['xinkuangfu']], re_panfeng:['male','qun',4,['xinkuangfu']],
dc_jiangfei:['male','shu',3,['dcshengxi','dcshoucheng']], jiangfei:['male','shu',3,['dcshengxi','dcshoucheng']],
}, },
characterSort:{ characterSort:{
huicui:{ huicui:{
@ -108,7 +108,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_jianghu:['guanning','huzhao','dc_huangchengyan','mengjie'], sp_jianghu:['guanning','huzhao','dc_huangchengyan','mengjie'],
sp_zongheng:['huaxin','luyusheng','re_xunchen','re_miheng','fengxi','re_dengzhi','dc_yanghu','zongyu'], sp_zongheng:['huaxin','luyusheng','re_xunchen','re_miheng','fengxi','re_dengzhi','dc_yanghu','zongyu'],
sp_taiping:['guanhai','liupi','peiyuanshao','zhangchu','zhangkai','dc_zhangmancheng'], sp_taiping:['guanhai','liupi','peiyuanshao','zhangchu','zhangkai','dc_zhangmancheng'],
sp_yanhan:['dc_liuba','dc_huangquan','furongfuqian','xianglang','dc_huojun','gaoxiang','dc_wuban','dc_jiangfei'], sp_yanhan:['dc_liuba','dc_huangquan','furongfuqian','xianglang','dc_huojun','gaoxiang','dc_wuban','jiangfei'],
sp_jishi:['dc_jiben','zhenghun','dc_sunhanhua','liuchongluojun'], sp_jishi:['dc_jiben','zhenghun','dc_sunhanhua','liuchongluojun'],
sp_raoting:['dc_huanghao','dc_sunziliufang','dc_sunchen','dc_jiachong'], sp_raoting:['dc_huanghao','dc_sunziliufang','dc_sunchen','dc_jiachong'],
sp_yijun:['gongsundu','mengyou','dc_sp_menghuo'], sp_yijun:['gongsundu','mengyou','dc_sp_menghuo'],
@ -117,77 +117,54 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
skill:{ skill:{
dcshengxi:{ dcshengxi:{
audio:2, inherit:'reshengxi',
trigger:{player:'phaseDiscardEnd'}, trigger:{player:'phaseDiscardEnd'},
filter(event,player){
return !player.getStat('damage');
},
frequent:true,
content(){
player.draw(2);
},
}, },
dcshoucheng:{ dcshoucheng:{
audio:2, audio:'shoucheng',
init(player){ global:'dcshoucheng_ai',
game.addGlobalSkill('dcshoucheng_draw',player);
},
trigger:{ trigger:{
global:['equipAfter','addJudgeAfter','loseAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'], global:['equipAfter','addJudgeAfter','loseAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
}, },
filter(event,player){ filter(event,player){
return game.hasPlayer(function(current){ const target=_status.currentPhase;
if(current==_status.currentPhase) return false; return game.hasPlayer(current=>{
if(target&&current==target) return false;
let evt=event.getl(current); let evt=event.getl(current);
return evt&&evt.hs&&evt.hs.length&&current.countCards('h')==0; return evt&&evt.hs&&evt.hs.length&&current.countCards('h')==0;
}); });
}, },
direct:true, direct:true,
content(){ async content(event,trigger,player){
"step 0" const targetx=_status.currentPhase;
event.list=game.filterPlayer(current=>{ const targets=game.filterPlayer(current=>{
if(current==_status.currentPhase) return false; if(targetx&&current==targetx) return false;
let evt=trigger.getl(current); let evt=trigger.getl(current);
return evt&&evt.hs&&evt.hs.length&&current.countCards('h')==0; return evt&&evt.hs&&evt.hs.length&&current.countCards('h')==0;
}).sortBySeat(_status.currentPhase); }).sortBySeat(targetx||player);
"step 1" for(const target of targets){
var target=event.list.shift(); if(!target.isIn()) continue;
event.target=target; const {result:{bool}}=await player.chooseBool(get.prompt2('dcshoucheng',target)).set('choice',get.attitude(player,target)>0);
if(target.isIn()) player.chooseBool(get.prompt2('dcshoucheng',target)).set('ai',function(){ if(bool){
return get.attitude(_status.event.player,_status.event.getParent().target)>0; player.logSkill('dcshoucheng',target);
}); if(target!=player) player.addExpose(0.2);
else event.goto(3); target.draw(2);
"step 2" }
if(result.bool){
player.logSkill(event.name,target);
if(player!==target&&(get.mode()!=='identity'||player.identity!=='nei')) player.addExpose(0.2);
target.draw(2);
} }
"step 3"
if(event.list.length) event.goto(1);
}, },
ai:{ ai:{
threaten(player,target){ threaten(player,target){
return Math.sqrt(game.countPlayer(i=>{ return Math.sqrt(game.countPlayer(i=>{
return get.attitude(target,i)>0; return get.attitude(target,i)>0;
})); }));
} },
}, },
subSkill:{ subSkill:{
draw:{ ai:{
trigger:{player:'dieAfter'},
filter(event,player){
return !game.hasPlayer(current=>{
return current.hasSkill('dcshoucheng');
},true);
},
content(){
game.removeGlobalSkill('dcshoucheng_draw');
},
ai:{ ai:{
noh:true, noh:true,
skillTagFilter(player,tag,arg){ skillTagFilter(player,tag,arg){
if(player.countCards('h')!==1) return false; if(player.countCards('h')!=1||(_status.currentPhase&&_status.currentPhase==player)) return false;
return game.hasPlayer(current=>{ return game.hasPlayer(current=>{
return current.hasSkill('dcshoucheng')&&get.attitude(current,player)>0; return current.hasSkill('dcshoucheng')&&get.attitude(current,player)>0;
}); });
@ -11991,12 +11968,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
yue_daqiao_prefix:'乐', yue_daqiao_prefix:'乐',
dczixi:'姊希', dczixi:'姊希',
dczixi_info:'①出牌阶段开始和结束时你可以将一张“琴”当作一张无效果的【乐不思蜀】、【兵粮寸断】或【闪电】置于一名角色的判定区。②当你使用基本牌或普通锦囊牌指定唯一目标后你可根据其判定区内的牌数执行对应项1.令此牌对其额外结算一次2.摸两张牌3.弃置其判定区所有牌对其造成3点伤害。', dczixi_info:'①出牌阶段开始和结束时你可以将一张“琴”当作一张无效果的【乐不思蜀】、【兵粮寸断】或【闪电】置于一名角色的判定区。②当你使用基本牌或普通锦囊牌指定唯一目标后你可根据其判定区内的牌数执行对应项1.令此牌对其额外结算一次2.摸两张牌3.弃置其判定区所有牌对其造成3点伤害。',
dc_jiangfei:'新杀蒋琬费祎', jiangfei:'蒋琬费祎',
dc_jiangfei_prefix:'新杀',
dcshengxi:'生息', dcshengxi:'生息',
dcshengxi_info:'弃牌阶段结束时,若你本回合未造成过伤害,你可以摸两张牌。', dcshengxi_info:'弃牌阶段结束时,若你本回合未造成过伤害,你可以摸两张牌。',
dcshoucheng:'守成', dcshoucheng:'守成',
dcshoucheng_info:'一名角色于其回合外失去最后的手牌,你可令其摸两张牌。', dcshoucheng_info:'一名角色于其回合外失去最后的手牌,你可令其摸两张牌。',
sp_baigei:'无双上将', sp_baigei:'无双上将',
sp_caizijiaren:'才子佳人', sp_caizijiaren:'才子佳人',

View File

@ -11,7 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
offline_yijiang:['ol_xinxianying'], offline_yijiang:['ol_xinxianying'],
offline_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"], offline_luanwu:["ns_lijue","ns_zhangji","ns_fanchou"],
offline_yongjian:["ns_chendao","yj_caoang","yj_caocao",'yj_liru','yj_caohong','yj_zhangfei','yongjian_ganning','yj_dongzhuo','yj_xuyou','yj_jiaxu','yj_zhenji'], offline_yongjian:["ns_chendao","yj_caoang","yj_caocao",'yj_liru','yj_caohong','yj_zhangfei','yongjian_ganning','yj_dongzhuo','yj_xuyou','yj_jiaxu','yj_zhenji'],
offline_piracyE:['shen_jiaxu','pe_wangyun','pe_zhonghui','pe_sunchen','pe_mengda','pe_wenqin','ns_caoanmin','jiangfei','chendong','jiangqing','zy_kongrong','jiling','tianfeng','mateng'], offline_piracyE:['shen_jiaxu','pe_wangyun','pe_zhonghui','pe_sunchen','pe_mengda','pe_wenqin','ns_caoanmin','chendong','jiangqing','zy_kongrong','jiling','tianfeng','mateng'],
offline_piracyS:['ns_jiaxu','longyufei','ps_guanyu','ps1059_guojia','ps2070_guojia','ps2063_zhaoyun','ps2067_zhaoyun','ps1062_zhouyu','ps2080_zhouyu','ps_caozhi','ps_jin_simayi','ps_caopi','ps_simayi','ps2068_simayi','ps_machao','ps_zhugeliang','ps2066_zhugeliang','ps_jiaxu','ps_lvbu','ps_shen_machao','jsp_liubei'], offline_piracyS:['ns_jiaxu','longyufei','ps_guanyu','ps1059_guojia','ps2070_guojia','ps2063_zhaoyun','ps2067_zhaoyun','ps1062_zhouyu','ps2080_zhouyu','ps_caozhi','ps_jin_simayi','ps_caopi','ps_simayi','ps2068_simayi','ps_machao','ps_zhugeliang','ps2066_zhugeliang','ps_jiaxu','ps_lvbu','ps_shen_machao','jsp_liubei'],
offline_piracyK:['pk_sp_duyu'], offline_piracyK:['pk_sp_duyu'],
offline_vtuber:['vtb_xiaosha','vtb_xiaoshan','vtb_xiaotao','vtb_xiaole','vtb_xiaojiu'], offline_vtuber:['vtb_xiaosha','vtb_xiaoshan','vtb_xiaotao','vtb_xiaole','vtb_xiaojiu'],
@ -36,7 +36,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
zy_kongrong:['male','qun',3,['zymingshi','lirang']], zy_kongrong:['male','qun',3,['zymingshi','lirang']],
chendong:['male','wu',4,['duanxie','fenming']], chendong:['male','wu',4,['duanxie','fenming']],
jiangqing:['male','wu',4,['zyshangyi']], jiangqing:['male','wu',4,['zyshangyi']],
jiangfei:['male','shu',3,['reshengxi','shoucheng']],
pk_sp_duyu:['male','qun',4,['pkwuku','pksanchen']], pk_sp_duyu:['male','qun',4,['pkwuku','pksanchen']],
ps_lvbu:['male','qun',4,['wushuang','pssheji']], ps_lvbu:['male','qun',4,['wushuang','pssheji']],
ps_jiaxu:['male','qun',4,['wansha','psqupo','psbaoquan']], ps_jiaxu:['male','qun',4,['wansha','psqupo','psbaoquan']],
@ -6794,8 +6793,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_xinxianying_prefix:'将', ol_xinxianying_prefix:'将',
chendong:'战役篇陈武董袭', chendong:'战役篇陈武董袭',
chendong_prefix:'战役篇', chendong_prefix:'战役篇',
jiangfei:'战役篇蒋琬费祎',
jiangfei_prefix:'战役篇',
jiangqing:'战役篇蒋钦', jiangqing:'战役篇蒋钦',
jiangqing_prefix:'战役篇', jiangqing_prefix:'战役篇',
tianfeng:'战役篇田丰', tianfeng:'战役篇田丰',

View File

@ -11401,7 +11401,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
starzongshi:'纵势', starzongshi:'纵势',
starzongshi_info:'出牌阶段,你可以展示一张可展示目标的基本牌或普通锦囊牌,然后你将手牌中所有与此牌花色相同的其他牌当作此牌使用,且此牌至多指定转化牌数的目标。', starzongshi_info:'出牌阶段,你可以展示一张可展示目标的基本牌或普通锦囊牌,然后你将手牌中所有与此牌花色相同的其他牌当作此牌使用,且此牌至多指定转化牌数的目标。',
starjiaowang:'骄妄', starjiaowang:'骄妄',
starjiaowang_info:'锁定技,非首轮游戏开始时,若上一轮没有角色死亡则你失去1点体力并发动〖硝焰〗。', starjiaowang_info:'锁定技,非首轮游戏开始时,若上一轮没有角色死亡(因〖硝焰〗死亡的角色除外)则你失去1点体力并发动〖硝焰〗。',
staraoshi:'傲势', staraoshi:'傲势',
staraoshi_info:'主公技,其他群势力角色的出牌阶段限一次,其可以交给你一张手牌,然后你可以发动一次〖纵势〗。', staraoshi_info:'主公技,其他群势力角色的出牌阶段限一次,其可以交给你一张手牌,然后你可以发动一次〖纵势〗。',