OL界程普

This commit is contained in:
mengxinzxz 2024-03-12 21:16:05 +08:00
parent 3ebbcca196
commit 55c83a20c3
4 changed files with 147 additions and 3 deletions

View File

@ -13,11 +13,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_gaoshun:['male','qun',4,['olxianzhen','decadejinjiu'],['die_audio:re_gaoshun']],
ol_sb_yuanshao:['male','qun',4,['olsbhetao','olsbshenli','olsbyufeng','olsbshishou'],['zhu']],
ol_yufan:['male','wu',3,['olzongxuan','olzhiyan'],['tempname:re_yufan','die_audio:re_yufan']],
ol_chengpu:['male','wu',4,['ollihuo','olchunlao'],['tempname:xin_chengpu','die_audio:xin_chengpu']],
},
characterSort:{
onlyOL:{
onlyOL_yijiang1:['ol_jianyong','ol_lingtong','ol_gaoshun'],
onlyOL_yijiang2:['ol_caozhang'],
onlyOL_yijiang2:['ol_caozhang','ol_chengpu'],
onlyOL_yijiang3:['ol_yufan'],
onlyOL_sb:['ol_sb_jiangwei','ol_sb_guanyu','ol_sb_taishici','ol_sb_yuanshao'],
},
@ -50,6 +51,141 @@ game.import('character',function(lib,game,ui,get,ai,_status){
},
},
skill:{
//程普
ollihuo:{
audio:'relihuo',
trigger:{player:'useCard1'},
filter(event,player){
return event.card.name=='sha'&&!game.hasNature(event.card,'fire');
},
check(event,player){
let card=new lib.element.VCard(get.copy(event.card));
game.setNature(card,'fire');
const eff1=event.targets.reduce((sum,target)=>{
return sum+get.effect(target,event.card,player,player);
},0);
let targets=event.targets.slice();
if(get.info('lihuo2').filter(event,player)){
let targetx=game.filterPlayer(target=>{
return !targets.includes(target)&&player.canUse(card,target)&&get.effect(target,card,player,player)>0;
});
if(targetx.length) targets.add(targetx.sort((a,b)=>{
return get.effect(b,card,player,player)-get.effect(a,card,player,player);
})[0]);
}
const eff2=targets.reduce((sum,target)=>{
return sum+get.effect(target,card,player,player);
},0);
return eff2>eff1;
},
content(){
game.log(player,'将',trigger.card,'改为了火属性');
game.setNature(trigger.card,'fire');
player.when('useCardAfter').filter(evt=>evt==trigger).then(()=>{
if(game.hasPlayer2(target=>{
return target.getHistory('damage',evt=>evt.card&&evt.card==trigger.card).length;
})){
player.chooseToDiscard('he','疠火弃置一张牌或失去1点体力').set('ai',card=>{
const player=get.event('player');
if((get.name(card)=='tao'||get.name(card)=='jiu')&&lib.filter.cardSavable(card,player,player)) return -1;
if(player.hp<=1){
if(cards.length<player.getEnemies().length&&player.hasCard((cardx)=>{
return (get.name(cardx)=='tao'||get.name(cardx)=='jiu')&&lib.filter.cardSavable(cardx,player,player);
},'hs')) return 7-get.value(card);
return -1;
}
return 24-5*cards.length-2*Math.min(4,player.getHp())-get.value(card);
});
}
else event.finish();
}).then(()=>{
if(!result.bool) player.loseHp();
});
},
ai:{fireAttack:true},
group:'ollihuo_add',
subSkill:{
add:{
inherit:'lihuo2',
async content(event,trigger,player){
const {result:{bool,targets}}=await player.chooseTarget(get.prompt('ollihuo'),'为'+get.translation(trigger.card)+'增加一个目标',(card,player,target)=>{
const trigger=get.event().getTrigger();
return !trigger.targets.includes(target)&&player.canUse(trigger.card,target);
}).set('card',trigger.card).set('ai',target=>{
const player=get.event('player'),trigger=get.event().getTrigger();
return get.effect(target,trigger.card,player,player);
});
if(bool){
player.logSkill('ollihuo',targets);
trigger.targets.addArray(targets);
}
},
},
},
},
olchunlao:{
audio:'chunlao',
audioname:['xin_chengpu'],
trigger:{
player:'loseAfter',
global:'loseAsyncAfter',
},
filter(event,player){
if(event.type!='discard'||event.getlx===false) return false;
const evt=event.getl(player);
return evt&&evt.cards2&&evt.cards2.some(i=>i.name=='sha'&&get.position(i)=='d');
},
forced:true,
locked:false,
content(){
const evt=trigger.getl(player);
player.addToExpansion(trigger.cards2.some(i=>i.name=='sha'&&get.position(i)=='d'),'gain2').gaintag.add('olchunlao');
},
ai:{
effect:{
player(card,player,target){
if(_status.currentPhase!=player) return;
if(card.name=='sha'&&!player.getExpansions('olchunlao').length&&target.hp>1){
return 'zeroplayertarget';
}
},
},
},
intro:{
content:'expansion',
markcount:'expansion',
},
onremove(player,skill){
var cards=player.getExpansions(skill);
if(cards.length) player.loseToDiscardpile(cards);
},
group:'olchunlao_save',
subSkill:{
save:{
inherit:'chunlao2',
filter(event,player){
return event.type=='dying'&&event.dying&&event.dying.hp<=0&&player.getExpansions('olchunlao').length;
},
async content(event,trigger,player){
const {result:{bool,links}}=await player.chooseCardButton(get.translation('olchunlao'),player.getExpansions('olchunlao'),true);
if(bool){
player.logSkill('olchunlao',target);
await player.loseToDiscardpile(links);
event.type='dying';
await target.useCard({name:'jiu',isCard:true},target);
}
},
ai:{
save:true,
skillTagFilter(player){
return player.getExpansions('olchunlao').length;
},
order:6,
result:{target:1},
},
},
},
},
//虞翻
olzongxuan:{
audio:'rezongxuan',
@ -1156,9 +1292,15 @@ game.import('character',function(lib,game,ui,get,ai,_status){
ol_yufan:'OL界虞翻',
ol_yufan_prefix:'OL界',
olzongxuan:'纵玄',
olzongxuan_info:'当你或你的上家因弃置而失去牌后,你可以将于弃牌堆的这些牌中的任意牌以任意顺序置于牌堆顶。',
olzongxuan_info:'当你或你的上家因弃置而失去牌后,你可以将于弃牌堆的这些牌中的任意牌以任意顺序置于牌堆顶。',
olzhiyan:'直言',
olzhiyan_info:'你或你的上家的结束阶段你可以令一名角色正面朝上摸一张牌然后若此牌为装备牌则其使用此牌并回复1点体力不为装备牌且其体力值大于等于你则其失去1点体力。',
ol_chengpu:'OL界程普',
ol_chengpu_prefix:'OL界',
ollihuo:'疠火',
ollihuo_info:'①你使用的非火【杀】可以改为火【杀】若如此做此牌结算完毕后若此牌造成过伤害则你弃置一张牌或失去1点体力。②你使用火【杀】可以额外指定一个目标。',
olchunlao:'醇醪',
olchunlao_info:'①当你的【杀】因弃置进入弃牌堆后,你将位于弃牌堆的这些牌称为“醇”置于武将牌上。②一名角色处于濒死状态时,你可以将一张“醇”置入弃牌堆,然后令其视为使用一张【酒】。',
onlyOL_yijiang1:'OL专属·将1',
onlyOL_yijiang2:'OL专属·将2',

View File

@ -1540,6 +1540,7 @@ window.noname_character_rank={
'sp_jiben',
'sp_fuwan',
're_chengpu',
'ol_chengpu',
're_niujin',
'wangfuzhaolei',
'caizhenji',
@ -2410,6 +2411,7 @@ window.noname_character_rank={
're_liubiao',
'liubiao',
're_chengpu',
'ol_chengpu',
're_manchong',
're_yufan',
're_liru',

View File

@ -13933,7 +13933,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liaohua:['liaohua','re_liaohua','xin_liaohua'],
bulianshi:['bulianshi','dc_bulianshi','re_bulianshi','old_bulianshi'],
handang:['handang','xin_handang','re_handang','tw_handang','old_handang'],
chengpu:['chengpu','re_chengpu','xin_chengpu','tw_chengpu','ns_chengpu'],
chengpu:['chengpu','ol_chengpu','re_chengpu','xin_chengpu','tw_chengpu','ns_chengpu'],
liubiao:['liubiao','xin_liubiao','re_liubiao','sb_liubiao','oldre_liubiao','old_liubiao'],
manchong:['manchong','re_manchong'],
caochong:['caochong','re_caochong','old_caochong'],

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB