新杀王凌

This commit is contained in:
copcap 2024-02-26 22:09:32 +08:00
parent 6a463894d1
commit 9372c28742
No known key found for this signature in database
GPG Key ID: 30E7AB6699451AEE
3 changed files with 144 additions and 3 deletions

View File

@ -6527,11 +6527,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
liuzhang:['liuzhang','tw_liuzhang'], liuzhang:['liuzhang','tw_liuzhang'],
chenzhen:['sp_chenzhen','tw_chenzhen'], chenzhen:['sp_chenzhen','tw_chenzhen'],
feiyi:['ol_feiyi','feiyi','tw_feiyi'], feiyi:['ol_feiyi','feiyi','tw_feiyi'],
wangling:['wangling','tw_wangling'], wangling:['dc_wangling','wangling','tw_wangling'],
qiaogong:['qiaogong','tw_qiaogong'], qiaogong:['qiaogong','tw_qiaogong'],
sp_chendong:['sp_chendong','tw_chendong','chendong'], sp_chendong:['sp_chendong','tw_chendong','chendong'],
sp_jiangqing:['sp_jiangqing','tw_jiangqing','jiangqing'], sp_jiangqing:['sp_jiangqing','tw_jiangqing','jiangqing'],
kongrong:['dc_kongrong','sp_kongrong','jsrg_kongrong','kongrong'], kongrong:['dc_kongrong','sp_kongrong','jsrg_kongrong','kongrong'],
dc_mifuren:['dc_mifuren','sp_mifuren'], dc_mifuren:['dc_mifuren','sp_mifuren'],
}, },
translate:{ translate:{

View File

@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'sp2', name:'sp2',
connect:true, connect:true,
character:{ character:{
dc_wangling:['male','wei',4,['dcjichou','dcmouli']],
star_yuanshao:['male','qun',4,['starxiaoyan','starzongshi','starjiaowang','staraoshi'],['zhu']], star_yuanshao:['male','qun',4,['starxiaoyan','starzongshi','starjiaowang','staraoshi'],['zhu']],
star_dongzhuo:['male','qun',5,['starweilin','starzhangrong','starhaoshou'],['zhu']], star_dongzhuo:['male','qun',5,['starweilin','starzhangrong','starhaoshou'],['zhu']],
star_yuanshu:['male','qun',4,['starcanxi','starpizhi','starzhonggu'],['zhu']], star_yuanshu:['male','qun',4,['starcanxi','starpizhi','starzhonggu'],['zhu']],
@ -113,10 +114,143 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sp_xiaohu:['haomeng','yanfuren','yanrou','dc_zhuling'], sp_xiaohu:['haomeng','yanfuren','yanrou','dc_zhuling'],
sp_star:['star_caoren','star_yuanshu','star_dongzhuo','star_yuanshao'], sp_star:['star_caoren','star_yuanshu','star_dongzhuo','star_yuanshao'],
mini_qixian:['mp_liuling'], mini_qixian:['mp_liuling'],
sp_decade:['caobuxing','re_maliang','dc_jikang'], sp_decade:['caobuxing','re_maliang','dc_jikang','dc_wangling'],
} }
}, },
skill:{ skill:{
//王凌
dcjichou:{
audio:2,
trigger:{player:'phaseUseEnd'},
filter(event,player){
const evts=player.getHistory('useCard',evt=>evt.getParent('phaseUse')===event);
const names=evts.map(evt=>evt.card.name).unique();
return evts.length>0&&evts.length===names.length&&evts.some(evt=>evt.cards.some(card=>get.position(card)==='d'));
},
async content(event,trigger,player){
const cards=[];
player.checkHistory('useCard',evt=>{
if(evt.getParent('phaseUse')!==trigger) return;
cards.addArray(evt.cards.filterInD('d'));
});
const num=Math.min(cards.length,game.countPlayer());
if(_status.connectMode) game.broadcastAll(()=>{_status.noclearcountdown=true});
const [bool,links]=await player.chooseButton([
`集筹:将${num<cards.length?'至多'+get.cnNumber(num)+'张牌':'任意张牌'}交给等量角色`,
cards
])
.set('selectButton',[1,num])
.set('population',[
game.countPlayer(current=>get.attitude(player,current)>0),
game.countPlayer(current=>get.attitude(player,current)<0)
])
.set('ai',button=>{
const card=button.link,population=get.event('population');
if(ui.selected.buttons.length>population[0]+population[1]) return 0;
if(ui.selected.buttons.length>get.event('population')[0]) return 2-get.value(card);
return 2+get.value(card);
})
.forResult('bool','links');
if(bool){
const [bool,targets]=await player.chooseTarget(
`集筹:请选择${get.cnNumber(links.length)}名角色`,
`操作提示:请按照顺序选择要交给牌的目标,令这些角色按顺序获得这些牌:${get.translation(links)}`,
true,
links.length,
)
.set('values',links.map(i=>get.value(i)))
.set('ai',target=>{
const att=get.attitude(get.player(),target);
const chosenNum=ui.selected.targets.length,values=get.event('values');
if(values[chosenNum]>0) return att;
return 0.01-att;
})
.forResult('bool','targets');
if(_status.connectMode){game.broadcastAll(()=>{delete _status.noclearcountdown;game.stopCountChoose()})}
if(bool){
const gain_list=[],givenCards=[];
targets.forEach((target,i)=>{
player.line(target,'green');
gain_list.push([target,links[i]]);
givenCards.push(links[i]);
game.log(player,'将',links[i],'交给了',target);
});
event.getParent().set('givenCards',givenCards);
await game.loseAsync({
gain_list,
player:player,
cards:givenCards,
giver:player,
animate:'gain2',
}).setContent('gaincardMultiple');
const toDraw=player.getAllHistory('useSkill',evt=>{
const evtx=evt.event;
return evt.skill==='dcjichou'&&evtx.givenCards&&evtx.givenCards.length;
})[0].event.givenCards.length;
await game.asyncDelayx();
await player.draw(toDraw);
}
}
if(_status.connectMode){game.broadcastAll(()=>{delete _status.noclearcountdown;game.stopCountChoose()})}
},
},
dcmouli:{
audio:2,
trigger:{player:'phaseEnd'},
filter(event,player){
const names=[];
player.checkAllHistory('useSkill',evt=>{
if(evt.skill!=='dcjichou') return;
const evtx=evt.event;
if(evtx.givenCards) names.addArray(evtx.givenCards.map(card=>get.name(card,false)));
});
return names.length>=5;
},
forced:true,
juexingji:true,
skillAnimation:true,
animationColor:'water',
derivation:['dczifu'],
async content(event,trigger,player){
player.awakenSkill('dcmouli');
await player.gainMaxHp();
await player.recover();
await player.addSkills('dczifu');
},
},
dczifu:{
audio:2,
trigger:{player:'phaseUseBegin'},
forced:true,
async content(event,trigger,player){
const maxLimit=Math.min(5,player.maxHp);
let count=player.countCards('h');
if(count<maxLimit){
await player.draw(maxLimit-count);
}
if(!player.hasHistory('gain',evt=>evt.getParent(2)===event)) return;
count=player.countCards('h');
const toKeepCount=player.getCards('h').map(card=>get.name(card)).unique();
if(count>toKeepCount){
const [bool,cards]=await player.chooseCard('自缚:选择要保留的手牌','选择不同牌名的手牌各一张,然后弃置其余手牌',toKeepCount)
.set('filterCard',card=>{
if(!ui.selected.cards.length) return true;
const name=get.name(card,player);
if(ui.selected.cards.some(card=>get.name(card,player)===name)) return false;
return true;
})
.set('complexCard',true)
.set('ai',get.value)
.forResult('bool','cards');
if(!bool) return;
const toDiscard=player.getCards('h').removeArray(cards);
if(toDiscard.length) player.discard(toDiscard);
}
},
ai:{
halfneg:true,
},
},
//星袁绍 //星袁绍
starxiaoyan:{ starxiaoyan:{
audio:2, audio:2,
@ -11383,6 +11517,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
starjiaowang_info:'锁定技非首轮游戏开始时若上一轮没有角色死亡因〖硝焰〗死亡的角色除外则你失去1点体力并发动〖硝焰〗。', starjiaowang_info:'锁定技非首轮游戏开始时若上一轮没有角色死亡因〖硝焰〗死亡的角色除外则你失去1点体力并发动〖硝焰〗。',
staraoshi:'傲势', staraoshi:'傲势',
staraoshi_info:'主公技,其他群势力角色的出牌阶段限一次,其可以交给你一张手牌,然后你可以发动一次〖纵势〗。', staraoshi_info:'主公技,其他群势力角色的出牌阶段限一次,其可以交给你一张手牌,然后你可以发动一次〖纵势〗。',
dc_wangling:'王凌',
dcjichou:'集筹',
dcjichou_info:'出牌阶段结束时若你于此阶段使用过牌且这些牌的牌名均不同你可以观看位于弃牌堆中的这些牌选择任意张牌并选择等量角色将这些牌交给这些角色各一张然后你摸X张牌X为你本局游戏首次发动〖集筹〗给出的牌数。',
dcmouli:'谋立',
dcmouli_info:'觉醒技。回合结束时若你因〖集筹〗给出的牌的牌名总数不小于5你加1点体力上限并回复1点体力然后获得〖自缚〗。',
dczifu:'自缚',
dczifu_info:'锁定技。出牌阶段开始时,你将手牌摸至体力上限(至多摸至五张)。若你以此法得到牌,你须选择手牌中不同牌名的牌各一张,然后弃置其余的手牌。',
sp_whlw:"文和乱武", sp_whlw:"文和乱武",
sp_zlzy:"逐鹿中原", sp_zlzy:"逐鹿中原",

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB