国战晋张春华、张虎乐綝、宣公主

This commit is contained in:
mengxinzxz 2024-04-05 02:15:33 +08:00
parent f9eb13d8a2
commit bfe1e87055
1 changed files with 246 additions and 5 deletions

View File

@ -571,14 +571,14 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_zhangxiu:['male','qun',4,['gzfudi','gzcongjian'],['gzskin']],
gz_jun_caocao:['male','wei',4,['jianan','huibian','gzzongyu','wuziliangjiangdao'],[]],
gz_jin_zhangchunhua:['female','jin',3,['gzhuishi','gzqingleng']],
gz_jin_zhangchunhua:['female','jin',3,['gzhuishi','fakeqingleng']],
gz_jin_simayi:['male','jin',3,['fakequanbian','smyyingshi','fakezhouting']],
gz_jin_wangyuanji:['female','jin',3,['yanxi']],
gz_jin_simazhao:['male','jin',3,['zhaoran','gzchoufa']],
gz_jin_xiahouhui:['female','jin',3,['jyishi','shiduo']],
gz_jin_simashi:['male','jin',5,['gzyimie','gztairan']],
gz_duyu:['male','jin',4,['gzsanchen','gzpozhu']],
gz_zhanghuyuechen:['male','jin',4,['xijue']],
gz_zhanghuyuechen:['male','jin',4,['fakexijue']],
gz_jin_yanghuiyu:['female','jin',3,['ciwei','gzcaiyuan']],
gz_simazhou:['male','jin',4,['recaiwang','naxiang']],
gz_shibao:['male','jin',4,['gzzhuosheng']],
@ -586,7 +586,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
gz_zhongyan:['female','jin',3,['gzbolan','yifa']],
gz_yangyan:['female','jin',3,['gzxuanbei','xianwan']],
gz_zuofen:['female','jin',3,['gzzhaosong','gzlisi']],
gz_xuangongzhu:['female','jin',3,['qimei','ybzhuiji']],
gz_xuangongzhu:['female','jin',3,['fakeqimei','ybzhuiji']],
gz_xinchang:['male','jin',3,['canmou','congjian']],
gz_yangzhi:['female','jin',3,['gzwanyi','gzmaihuo']],
@ -648,7 +648,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
async content(event,trigger,player){
const num=trigger.player.countCards('e'),num2=event.cards.length;
await player.chooseToDiscard(trigger.player,'e',num2,true);
if(num2>num) trigger.player.damage();
if(num2>num) await trigger.player.damage();
},
},
fakeduanbing:{
@ -3030,6 +3030,239 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
},
},
},
fakeqingleng:{
audio:'qingleng',
trigger:{global:'phaseEnd'},
filter(event,player){
var target=event.player;
return target!=player&&target.isIn()&&!target.isUnseen(2)&&player.countCards('he')&&player.canUse({name:'sha',nature:'ice'},target,false);
},
direct:true,
preHidden:true,
async content(event,trigger,player){
const target=trigger.player;
const {result:{bool}}=await player.chooseToUse()
.set('openskilldialog',get.prompt2('fakeqingleng',target))
.set('norestore',true).set('_backupevent','fakeqingleng_backup')
.set('custom',{
add:{},
replace:{window:function(){}}
}).set('targetRequired',true).set('complexSelect',true)
.set('filterTarget',function(card,player,target){
if(target!=_status.event.sourcex&&!ui.selected.targets.includes(_status.event.sourcex)) return false;
return lib.filter.targetEnabled.apply(this,arguments);
}).set('sourcex',target).set('addCount',false)
.backup('fakeqingleng_backup').set('logSkill',['fakeqingleng',target]);
if(bool&&!player.getHistory('sourceDamage',evt=>{
return evt.getParent(4)==event;
}).length){
const {result:{bool,links}}=await player.chooseButton([
'清冷:暗置'+get.translation(target)+'的一张武将牌',
'<div class="text center">'+get.translation(target)+'的武将牌</div>',
[[target.name1,target.name2],'character'],
],true).set('filterButton',button=>!get.is.jun(button.link));
if(bool){
player.addSkill('fakeqingleng_effect');
if(player.getStorage('fakeqingleng_effect').some(list=>list[0]==target)){
player.storage.fakeqingleng_effect.indexOf(player.getStorage('fakeqingleng_effect').find(list=>list[0]==target))[1].addArray(links);
}
else player.markAuto('fakeqingleng_effect',[[target,links[0]]]);
target.when(['phaseBegin','die'])
.vars({target:player}).then(()=>{
const removes=target.getStorage('fakeqingleng_effect').filter(list=>list[0]==player);
target.unmarkAuto('fakeqingleng_effect',removes);
if(!target.getStorage('fakeqingleng_effect').length){
target.removeSkill('fakeqingleng_effect');
}
});
await target.hideCharacter(target.name1==links[0]?0:1);
}
}
},
subSkill:{
backup:{
filterCard:true,
check(card){
return 7.5-get.value(card);
},
position:'he',
popname:true,
viewAs:{name:'sha',nature:'ice'},
precontent(){
delete event.result.skill;
},
},
effect:{
charlotte:true,
onremove:true,
intro:{
content(storage){
return '•'+storage.map(list=>{
return get.translation(list[0])+'明置'+get.translation(list[1])+'后对其造成1点伤害';
}).join('<br>•');
},
},
audio:'qingleng',
trigger:{global:'showCharacterEnd'},
filter(event,player){
const list=player.getStorage('fakeqingleng_effect').find(list=>list[0]==event.player);
return list&&list[1].includes(event.toShow);
},
forced:true,
logTarget:'player',
content(){
trigger.player.damage();
},
},
},
},
fakexijue:{
audio:'xijue',
trigger:{player:'showCharacterEnd'},
filter(event,player){
return game.getAllGlobalHistory('everything',evt=>{
return evt.name=='showCharacter'&&evt.toShow.some(i=>get.character(i,3).includes('fakexijue'));
},event).indexOf(event)==0;
},
forced:true,
popup:false,
preHidden:['xijue_tuxi','fakexijue_xiaoguo'],
content(){
player.addMark('xijue',2);
},
derivation:['xijue_tuxi','fakexijue_xiaoguo'],
group:['fakexijue_effect','xijue_tuxi','fakexijue_xiaoguo'],
subSkill:{
effect:{
audio:'xijue',
trigger:{player:['phaseDrawBegin2','phaseEnd']},
filter(event,player){
if(event.name=='phaseDraw') return !event.numFixed;
return player.getHistory('sourceDamage').length;
},
forced:true,
popup:false,
content(){
if(trigger.name=='phaseDraw') trigger.num=Math.min(player.countMark('xijue'),player.maxHp);
else player.addMark('xijue',1);
},
},
xiaoguo:{
audio:'xijue_xiaoguo',
trigger:{global:'phaseZhunbeiBegin'},
filter(event,player){
if(!player.hasMark('xijue')) return false;
return event.player!=player&&player.countCards('h',card=>{
if(_status.connectMode) return true;
return get.type(card)=='basic'&&lib.filter.cardDiscardable(card,player);
});
},
async cost(event,trigger,player){
event.result=await player.chooseToDiscard(get.prompt('fakexijue_xiaoguo',trigger.player),(card,player)=>{
return get.type(card)=='basic';
},[1,Math.min(player.countMark('xijue'),player.maxHp)]).set('complexSelect',true).set('ai',card=>{
const player=get.event('player'),target=get.event().getTrigger().player;
const effect=get.damageEffect(target,player,player);
const cards=target.getCards('e',card=>get.attitude(player,target)*get.value(card,target)<0);
if(effect<=0&&!cards.length) return 0;
if(ui.selected.cards.length>cards.length-(effect<=0?1:0)) return 0;
return 1/(get.value(card)||0.5);
}).set('logSkill',['fakexiaoguo',trigger.player]).setHiddenSkill('fakexijue_xiaoguo').forResult();
},
preHidden:true,
async content(event,trigger,player){
const num=trigger.player.countCards('e'),num2=event.cards.length;
await player.chooseToDiscard(trigger.player,'e',num2,true);
if(num2>num) await trigger.player.damage();
player.removeMark('xijue',1);
},
},
},
},
fakeqimei:{
audio:'qimei',
trigger:{player:'phaseZhunbeiBegin'},
direct:true,
preHidden:true,
content(){
'step 0'
player.chooseTarget(get.prompt('fakeqimei'),'选择一名其他角色并获得“齐眉”效果',lib.filter.notMe).set('ai',target=>{
var player=_status.event.player;
return get.attitude(player,target)/(Math.abs(player.countCards('h')+2-target.countCards('h'))+1)
}).setHiddenSkill('fakeqimei');
'step 1'
if(result.bool){
var target=result.targets[0];
player.logSkill('fakeqimei',target);
player.addTempSkill('fakeqimei_draw');
player.storage.fakeqimei_draw=target;
game.delayx();
}
},
subSkill:{
draw:{
audio:'fakeqimei',
charlotte:true,
forced:true,
popup:false,
trigger:{global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','loseAfter','addToExpansionAfter']},
filter(event,player){
var target=player.storage.fakeqimei_draw;
if(!target||!target.isIn()) return false;
if(player.countCards('h')!=target.countCards('h')) return false;
var hasChange=function(event,player){
var gain=0,lose=0;
if(event.getg) gain=event.getg(player).length;
if(event.getl) lose=event.getl(player).hs.length;
return gain!=lose;
};
return (hasChange(event,player)&&target.isDamaged())||(hasChange(event,target)&&player.isDamaged());
},
content(){
'step 0'
if(trigger.delay===false) game.delayx();
'step 1'
var target=player.storage.fakeqimei_draw;
player.logSkill('fakeqimei_draw',target);
var drawer=[];
var hasChange=function(event,player){
var gain=0,lose=0;
if(event.getg) gain=event.getg(player).length;
if(event.getl) lose=event.getl(player).hs.length;
return gain!=lose;
};
if(hasChange(trigger,player)) drawer.push(target);
if(hasChange(trigger,target)) drawer.push(player);
for(const i of drawers){
if(i.isDamaged()) i.recover();
}
},
group:'fakeqimei_hp',
onremove:true,
mark:'character',
intro:{content:'已和$组成齐眉组合'},
},
hp:{
audio:'fakeqimei',
trigger:{global:'changeHp'},
charlotte:true,
forced:true,
logTarget(event,player){
return player.storage.fakeqimei_draw;
},
filter(event,player){
var target=player.storage.fakeqimei_draw;
if(!target||!target.isIn()) return false;
if(player!=event.player&&target!=event.player) return false;
return player.hp==target.hp;
},
content(){
game.delayx();
(player==trigger.player?player.storage.fakeqimei_draw:player).draw();
},
},
},
},
//国战典藏2023补充
//吕范
gzdiaodu:{
@ -17299,7 +17532,7 @@ return event.junling=='junling5'?1:0;});
gzhuishi:'慧识',
gzhuishi_info:'摸牌阶段你可以放弃摸牌改为观看牌堆顶的X张牌获得其中的一半向下取整然后将其余牌置入牌堆底。X为弃牌堆顶的两张牌的名称字数之和',
gzqingleng:'清冷',
gzqingleng_info:'一名角色的回合结束时,若其有未明置的,则你可将一张牌当无距离限制的冰属性【杀】对其使用;若其所有武将牌均未明置,则你摸一张牌。',
gzqingleng_info:'一名角色的回合结束时,若其有未明置的武将牌,则你可将一张牌当无距离限制的冰属性【杀】对其使用;若其所有武将牌均未明置,则你摸一张牌。',
gzchoufa:'筹伐',
gzchoufa_info:'出牌阶段限一次你可展示一名其他角色的一张手牌A。你令其所有类型与A不同的手牌的牌名均视为【杀】且均视为无属性直到本回合结束。',
gzbolan:'博览',
@ -17509,6 +17742,14 @@ return event.junling=='junling5'?1:0;});
fakequanbian_info:'当你于回合内使用或打出牌时你可以将一张手牌与牌堆顶X张牌的其中一张进行交换X为你的体力上限。',
fakezhouting:'骤霆',
fakezhouting_info:'限定技出牌阶段你可以依次使用牌堆顶X张牌中所有可以使用的牌然后获得其中不能使用的牌然后若有角色因此死亡则你重置〖骤霆〗X为你的体力上限。',
fakeqingleng:'清冷',
fakeqingleng_info:'其他角色的结束阶段若其武将牌均明置则你可以将一张牌当作冰【杀】对其使用无距离限制。然后若此牌未对其造成伤害则你暗置其一张武将牌且直到其下个回合开始其明置此武将牌时你对其造成1点伤害。',
fakexijue:'袭爵',
fakexijue_info:'①当你首次明置此武将牌时你获得2枚“爵”标记。②回合结束时若你本回合造成过伤害则你获得1枚“爵”标记。③你可以于合适的时机发动〖突袭〗或〖骁果〗至多弃置X张基本牌然后移去1枚“爵”标记。④摸牌阶段你改为摸X张牌。X为你的“爵”标记数且X至多为你的体力上限',
fakexijue_xiaoguo:'骁果',
fakexijue_xiaoguo_info:'一名其他角色的准备阶段你可以弃置至多X张基本牌X为你的“爵”标记数且X至多为你的体力上限然后弃置其装备区等量的牌若其装备区的牌数小于你弃置的牌数则你对其造成1点伤害。',
fakeqimei:'齐眉',
fakeqimei_info:'准备阶段,你可以选择一名其他角色。若如此做,直到回合结束:当你或其获得牌/失去手牌后若你与其手牌数相等则另一名角色回复1点体力当你或其的体力值变化后若你与其体力值相等则另一名角色摸一张牌。',
guozhan_default:"国战标准",
guozhan_zhen:"君临天下·阵",