135
character/sp.js
|
@ -58,7 +58,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ol_mengda:['male','shu',4,['olgoude']],
|
||||
ol_wanglang:['male','wei',3,['gushe','oljici']],
|
||||
ol_liuyan:['male','qun','4/6',['olpianan','olyinji','olkuisi']],
|
||||
lushi:['female','qun',3,['olzhuyan','olleijie']],
|
||||
lushi:['female','qun',3,['olzhuyan','releijie']],
|
||||
zhangshiping:['male','shu',3,['olhongji','olxinggu']],
|
||||
sunhong:['male','wu',3,['olxianbi','olzenrun']],
|
||||
luoxian:['male','shu',4,['oldaili']],
|
||||
|
@ -1718,56 +1718,86 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
usable:1,
|
||||
logTarget:()=>_status.currentPhase,
|
||||
async content(event,trigger,player){
|
||||
player.when({global:'phaseEnd'}).then(()=>{
|
||||
player.when({global:'phaseEnd'})
|
||||
.then(()=>{
|
||||
if(target&&target.isIn()){
|
||||
var num=target.countCards('h')-player.countCards('h');
|
||||
if(num){
|
||||
if(num>0){
|
||||
if(player.countCards('h')<5) player.draw(Math.min(5-player.countCards('h'),num));
|
||||
event.finish();
|
||||
}
|
||||
else player.chooseToDiscard(-num,'h',true);
|
||||
}
|
||||
else event.finish();
|
||||
}
|
||||
}).vars({target:_status.currentPhase});
|
||||
else event.finish();
|
||||
})
|
||||
.then(()=>{
|
||||
if(result.bool&&result.cards.length>1){
|
||||
if(player.isDamaged()) player.recover();
|
||||
}
|
||||
})
|
||||
.vars({target:_status.currentPhase});
|
||||
},
|
||||
},
|
||||
olxiangzuo:{
|
||||
audio:2,
|
||||
trigger:{player:'dying'},
|
||||
filter(event,player){
|
||||
if(!_status.currentPhase||!_status.currentPhase.isIn()) return false;
|
||||
return player.countCards('he');
|
||||
return player.countCards('he')&&game.hasPlayer(target=>target!=player);
|
||||
},
|
||||
async cost(event,trigger,player){
|
||||
event.result=await player.chooseCardTarget({
|
||||
prompt:get.prompt2('olxiangzuo'),
|
||||
filterCard:true,
|
||||
selectCard:[1,Infinity],
|
||||
filterTarget:lib.filter.notMe,
|
||||
complexCard:true,
|
||||
complexTarget:true,
|
||||
complexSelect:true,
|
||||
ai1(card){
|
||||
const player=get.event('player');
|
||||
if(!ui.selected.targets.length) return 0;
|
||||
const target=ui.selected.targets[0];
|
||||
if(player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='olgongjie'&&(evt.targets||[evt.target]).includes(target);
|
||||
}).length&&player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='olxiangxv'&&(evt.targets||[evt.target]).includes(target);
|
||||
}).length){
|
||||
if(get.attitude(player,target)>0) return 1;
|
||||
if(player.canSaveCard(card,player)) return 0;
|
||||
if(ui.selected.cards.length+player.hp>=player.maxHp) return 0;
|
||||
return 20-get.value(card);
|
||||
}
|
||||
if(get.attitude(player,target)>0&&!player.countCards('he',cardx=>player.canSaveCard(cardx,player))) return 1;
|
||||
return 0;
|
||||
},
|
||||
ai2(target){
|
||||
const player=get.event('player');
|
||||
const goon=(player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='olgongjie'&&(evt.targets||[evt.target]).includes(target);
|
||||
}).length&&player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='olxiangxv'&&(evt.targets||[evt.target]).includes(target);
|
||||
}).length),att=get.attitude(player,target);
|
||||
if(goon) return 5*att;
|
||||
if(!!player.countCards('he',cardx=>player.canSaveCard(cardx,player))) return att;
|
||||
return 0;
|
||||
},
|
||||
}).forResult();
|
||||
},
|
||||
direct:true,
|
||||
limited:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'water',
|
||||
async content(event,trigger,player){
|
||||
var target=_status.currentPhase,num=player.countCards('he');
|
||||
var {result:{bool,cards}}=await player.chooseToGive(get.prompt2('olxiangzuo',target),[1,num],'he').set('ai',card=>{
|
||||
var player=_status.event.player,target=_status.event.target;
|
||||
if(player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='olgongjie'&&evt.targets.includes(target);
|
||||
}).length&&player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='olxiangxv'&&evt.targets.includes(target);
|
||||
}).length){
|
||||
if(get.attitude(player,target)>0) return 1;
|
||||
if(player.canSaveCard(card,player)) return 0;
|
||||
if(ui.selected.cards.length+player.hp>=player.maxHp) return 0;
|
||||
return 20-get.value(card);
|
||||
}
|
||||
else{
|
||||
if(get.attitude(player,target)>0&&!player.countCards('he',cardx=>player.canSaveCard(cardx,player))) return 1;
|
||||
return 0;
|
||||
}
|
||||
}).set('target',target).set('complexCard',true).set('logSkill',['olxiangzuo',target]);
|
||||
if(!bool) return;
|
||||
const target=event.targets[0],cards=event.cards;
|
||||
player.awakenSkill('olxiangzuo');
|
||||
await player.give(cards,target);
|
||||
if(player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='olgongjie'&&evt.targets.includes(target);
|
||||
}).length&&player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='olxiangxv'&&evt.targets.includes(target);
|
||||
}).length) player.recover(cards.length);
|
||||
}).length) await player.recover(cards.length);
|
||||
},
|
||||
},
|
||||
//OL飞扬
|
||||
|
@ -5280,7 +5310,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
subSkill:{
|
||||
record:{
|
||||
trigger:{
|
||||
global:['phaseZhunbeiAfter','phaseBefore','enterGame'],
|
||||
global:['phaseJieshuAfter','phaseBefore','enterGame'],
|
||||
},
|
||||
lastDo:true,
|
||||
charlotte:true,
|
||||
|
@ -5350,6 +5380,49 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
releijie:{
|
||||
audio:'olleijie',
|
||||
enable:'phaseUse',
|
||||
filterTarget:true,
|
||||
usable:1,
|
||||
async content(event,trigger,player){
|
||||
const target=event.target,result=await target.judge(card=>{
|
||||
var number=get.number(card);
|
||||
if(get.suit(card)=='spade'&&number>=2&&number<=9) return -4;
|
||||
return 2;
|
||||
}).set('judge2',result=>{
|
||||
return result.bool===false?true:false;
|
||||
}).forResult();
|
||||
if(result.bool) await target.draw(2);
|
||||
else{
|
||||
const card=new lib.element.VCard({name:'sha',nature:'thunder'});
|
||||
if(player.canUse(card,target,false)){
|
||||
for(let i=1;i<=2;i++){
|
||||
await player.useCard(card,target,false);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
order:1,
|
||||
result:{
|
||||
target(player,target){
|
||||
let sgn=0,eff=0,num=get.attitude(player,target);
|
||||
const card=new lib.element.VCard({name:'sha',nature:'thunder'});
|
||||
game.countPlayer(current=>{
|
||||
if(!current.hasSkillTag('rejudge')) return;
|
||||
sgn=get.sgnAttitude(player,current);
|
||||
});
|
||||
if(sgn>0&&player.canUse(card,target,false)){
|
||||
eff+=get.effect(target,card,player,player)*2;
|
||||
return eff*get.sgn(num);
|
||||
}
|
||||
else if(sgn==0) return num*get.sgn(num);
|
||||
return 0;
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//张世平
|
||||
olhongji:{
|
||||
audio:2,
|
||||
|
@ -27637,9 +27710,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olxinggu_info:'①游戏开始时,你将牌堆中的三张坐骑牌扣置于武将牌上。②结束阶段,你可以将一张〖行贾①〗牌置于一名其他角色的装备区,然后你从牌堆获得一张♦牌。',
|
||||
lushi:'卢氏',
|
||||
olzhuyan:'驻颜',
|
||||
olzhuyan_info:'每名角色每项各限一次。结束阶段,你可以令一名角色将以下一项调整至与其上一个准备阶段结束后相同:1.体力值;2.手牌数(体力值至多失去至1,手牌数至多摸至5;若其未执行过准备阶段则改为游戏开始时)。',
|
||||
olzhuyan_info:'每名角色每项各限一次。结束阶段,你可以令一名角色将以下一项调整至与其上一个结束阶段结束后相同:1.体力值;2.手牌数(体力值至多失去至1,手牌数至多摸至5;若其未执行过准备阶段则改为游戏开始时)。',
|
||||
olleijie:'雷劫',
|
||||
olleijie_info:'准备阶段,你可以令一名角色判定,若结果为♠2~9,其受到2点雷电伤害,否则其摸两张牌。',
|
||||
releijie:'雷劫',
|
||||
releijie_info:'出牌阶段限一次,你可以令一名角色判定,若结果为黑桃2~9,则你视为依次对其使用两张雷【杀】,否则其摸两张牌。',
|
||||
ol_liuyan:'OL刘焉',
|
||||
ol_liuyan_prefix:'OL',
|
||||
olpianan:'偏安',
|
||||
|
@ -27759,9 +27834,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olgongjie:'恭节',
|
||||
olgongjie_info:'每轮的首个回合开始时,你可以令任意名角色获得你的一张牌,然后你摸X张牌(X为你本次失去的花色数)。',
|
||||
olxiangxv:'相胥',
|
||||
olxiangxv_info:'当你的手牌数变为全场最少时,你可以获得以下效果:本回合结束时,将手牌数调整至与当前回合角色手牌数相同(至多摸至五张)。',
|
||||
olxiangxv_info:'当你的手牌数变为全场最少时,你可以获得以下效果:本回合结束时,将手牌数调整至与当前回合角色手牌数相同(至多摸至五张),然后若你以此法弃置了至少两张手牌,则你回复1点体力。',
|
||||
olxiangzuo:'襄胙',
|
||||
olxiangzuo_info:'限定技,当你进入濒死状态时,你可以交给当前回合角色任意张牌,若如此做,若你本回合已对其发动过〖恭节〗和〖相胥〗,你回复等量的体力。',
|
||||
olxiangzuo_info:'限定技,当你进入濒死状态时,你可以交给一名其他角色任意张牌,然后若你本回合已对其发动过〖恭节〗和〖相胥〗,你回复等量的体力。',
|
||||
liyi:'李异',
|
||||
olchanshuang:'缠双',
|
||||
olchanshuang_info:'①出牌阶段限一次,你可以选择一名其他角色。你与其依次选择〖缠双③〗的一项,然后你与其依次执行各自选择的项。②结束阶段,若X大于0,你执行〖缠双③〗的前X项(X为你本回合以任意形式执行过的〖缠双③〗的选项数)。③选项:1.重铸一张牌;2.使用一张【杀】;3.弃置两张牌。',
|
||||
|
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 124 KiB |
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 144 KiB |
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 126 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 106 KiB |