乐小乔+庞山民修改

This commit is contained in:
mengxinzxz 2024-01-13 14:45:13 +08:00
parent 1115ed9072
commit f1c915d9c9
1 changed files with 160 additions and 9 deletions

View File

@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
name:'huicui',
connect:true,
character:{
yue_xiaoqiao:['female','wu',3,['dcqiqin','dcweiwan']],
dc_dongzhao:['male','wei',3,['dcyijia','dcdingji']],
kuaiqi:['male','wei',3,['dcliangxiu','dcxunjie']],
yue_caiyong:['male','qun',3,['dcjiaowei','dcfeibai']],
@ -110,6 +111,144 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}
},
skill:{
//小乔
dcqiqin:{
audio:2,
audioname:['yue_daqiao'],
trigger:{
global:'phaseBefore',
player:'enterGame'
},
filter:function(event,player){
return event.name!='phase'||game.phaseNumber==0;
},
forced:true,
content:function(){
let cards=player.getCards('h');
player.addGaintag(cards,'dcqiqin_tag');
player.markAuto('dcqiqin',cards);
},
group:'dcqiqin_restore',
subSkill:{
tag:{},
restore:{
audio:'dcqiqin',
audioname:['yue_daqiao'],
trigger:{player:'phaseZhunbeiBegin'},
filter:function(event,player){
return player.getStorage('dcqiqin').filterInD('d').length;
},
forced:true,
content:function(){
player.gain(player.getStorage('dcqiqin').filterInD('d'),'gain2').gaintag.add('dcqiqin_tag');
},
},
},
mod:{
ignoredHandcard:function(card,player){
if(card.hasGaintag('dcqiqin_tag')) return true;
},
cardDiscardable:function(card,player,name){
if(name=='phaseDiscard'&&card.hasGaintag('dcqiqin_tag')) return false;
},
},
},
dcweiwan:{
audio:2,
enable:'phaseUse',
filter:(event,player)=>{
return player.countCards(lib.skill.dcweiwan.position,card=>{
return lib.skill.dcweiwan.filterCard(card,player);
})&&game.hasPlayer(target=>{
return lib.skill.dcweiwan.filterTarget(null,player,target);
});
},
filterCard:(card,player)=>{
return card.hasGaintag('dcqiqin_tag')&&lib.filter.cardDiscardable(card,player);
},
filterTarget:(card,player,target)=>{
return target!=player&&target.countCards('he');
},
position:'h',
check:(card)=>{
let player=_status.event.player;
let targets=game.filterPlayer(target=>target!=player&&lib.skill.dcweiwan.ai.result.target(player,target)!=0);
targets.sort((a,b)=>Math.abs(lib.skill.dcweiwan.ai.result.target(player,b))-Math.abs(lib.skill.dcweiwan.ai.result.target(player,a)));
return lib.skill.dcweiwan.getWeiWanEffect(player,card,targets[0]);
},
usable:1,
content:function*(event,map){
let player=map.player,target=event.target;
let suit=get.suit(event.cards[0],player);
let cards=target.getCards('hej',card=>get.suit(card,target)!=suit&&lib.filter.canBeGained(card,player,target));
if(!cards.length){
player.chat('无牌可得!!');
return;
}
let suits=lib.suit.slice();
suits.reverse();
suits.add('none');
suits.forEach(suit2=>{
let cards2=cards.filter(card=>get.suit(card,target)==suit2);
if(cards2.length){
cards2.randomRemove();
cards.removeArray(cards2);
}
});
if(!cards.length){
player.chat('无牌可得!!');
return;
}
player.gain(cards,target,'give');
switch(cards.length){
case 1:
target.loseHp();
break;
case 2:
player.addTempSkill('tanbei_effect3');
target.addTempSkill('tanbei_effect1');
break;
case 3:
player.addTempSkill('tanbei_effect3');
target.addTempSkill('tanbei_effect2');
break;
}
},
ai:{
order:9,
result:{
target:(player,target)=>{
let att=get.sgn(get.attitude(player,target))-1;
let cards=player.getCards(lib.skill.dcweiwan.position,card=>{
return lib.skill.dcweiwan.filterCard(card,player);
});
cards.sort((a,b)=>lib.skill.dcweiwan.getWeiWanEffect(player,b,target)-lib.skill.dcweiwan.getWeiWanEffect(player,a,target));
return att*lib.skill.dcweiwan.getWeiWanEffect(player,cards[0],target);
},
},
},
getWeiWanEffect:(player,cardx,target)=>{
let suit=get.suit(cardx,player);
let cards=target.getCards('hej',card=>get.suit(card,target)!=suit&&lib.filter.canBeGained(card,player,target));
if(!cards.length) return 0;
let suits=lib.suit.slice();
suits.reverse();
suits.add('none');
let num=suits.filter(suit2=>cards.some(card=>get.suit(card,target)==suit2)).length;
switch(num){
case 1:
num+=Math.max(0,get.sgn(get.effect(target,{name:'losehp'},player,player)));
break;
case 2:
num+=player.countCards('he',card=>player.canUse(card,target,false)&&get.effect(target,card,player,player)>0);
break;
case 3:
num=Math.ceil(num/2);
break;
}
return num;
},
},
//董昭
dcyijia:{
audio:2,
@ -491,29 +630,35 @@ game.import('character',function(lib,game,ui,get,ai,_status){
return _status.currentPhase;
},
prompt2:function(event,player){
return `${player==_status.currentPhase?'牌堆':'弃牌'}堆中随机获得一张非基本牌`;
const num=player.hasSkill('dccaisi_more')?2:1;
return `${player==_status.currentPhase?'牌堆':'弃牌'}堆中随机获得${get.cnNumber(num)}张非基本牌`;
},
content:function*(event,map){
const player=map.player,trigger=map.trigger;
const position=player==_status.currentPhase?'cardPile':'discardPile';
const card=get[position](card=>{
return get.type(card,false)!='basic';
});
if(card){
player.gain(card,'gain2');
let cards=[],num=player.hasSkill('dccaisi_more')?2:1;
player.removeSkill('dccaisi_more');
while(num>0){
num--;
let card=get[position](card=>get.type(card)!='basic'&&!cards.includes(card));
if(card) cards.add(card);
else break;
}
if(cards.length) player.gain(cards,'gain2');
else{
player.chat('没有非基本牌…');
game.log(`但是${position=='discardPile'?'弃':''}牌堆里没有非基本牌!`);
}
player.addTempSkill('dccaisi_more');
},
subSkill:{more:{charlotte:true}},
},
dczhuoli:{
audio:2,
trigger:{global:'phaseEnd'},
forced:true,
filter:function(event,player){
return player.getHistory('useCard').length>player.maxHp;
return player.getHistory('useCard').length>player.getHp();
},
content:function*(event,map){
const player=map.player;
@ -11384,9 +11529,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcshizong_info:'当你需要使用一张基本牌时你可以交给一名其他角色X张牌然后其可以将一张牌置于牌堆底视为你使用之。若其不为当前回合角色此技能失效直到回合结束X为你本回合发动〖恃纵〗的次数。',
pangshanmin:'庞山民',
dccaisi:'才思',
dccaisi_info:'当你于回合内/回合外使用基本牌结算结束后,若你本回合以此法得到的牌数不大于你的体力上限,你可以从牌堆/弃牌堆随机获得一张非基本牌。',
dccaisi_info:'当你于回合内/回合外使用基本牌结算结束后,若你本回合以此法得到的牌数于你的体力上限,你可以从牌堆/弃牌堆随机获得一张非基本牌,然后本回合下次发动此技能获得的牌数+1。',
dczhuoli:'擢吏',
dczhuoli_info:'锁定技。一名角色的回合结束时,若你本回合使用的牌数大于体力上限你加1点体力上限不能超过存活角色数回复1点体力。',
dczhuoli_info:'锁定技。一名角色的回合结束时,若你本回合使用的牌数大于体力你加1点体力上限不能超过存活角色数回复1点体力。',
yue_caiyong:'乐蔡邕',
yue_caiyong_prefix:'乐',
dcjiaowei:'焦尾',
@ -11404,6 +11549,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
dcyijia_info:'一名角色受到伤害后若你至其的距离不大于1你可以将场上一张装备牌移动至其对应装备栏替换原装备。若其因此脱离了一名角色的攻击范围你摸一张牌。',
dcdingji:'定基',
dcdingji_info:'准备阶段,你可以令一名角色将手牌摸或弃置至五张,然后其展示手牌。若牌名均不同,则其可以视为使用其中一张基本或普通锦囊牌。',
yue_xiaoqiao:'乐小乔',
yue_xiaoqiao_prefix:'乐',
dcqiqin:'绮琴',
dcqiqin_info:'锁定技。①游戏开始时,你将所有手牌标记为“乐”。②你的“乐”牌不计入手牌上限。③准备阶段,你获得弃牌堆中所有你标记过的“乐”牌。',
dcweiwan:'媦婉',
dcweiwan_info:'出牌阶段限一次你可以弃置一张“乐”并获得一名其他角色区域内花色与此牌不相同的牌各一张若你获得了一张牌其失去1点体力两张牌本回合你对其使用牌无距离和次数限制三张牌本回合你不能对其使用牌。',
sp_baigei:'无双上将',
sp_caizijiaren:'才子佳人',