乐小乔+庞山民修改
This commit is contained in:
parent
1115ed9072
commit
f1c915d9c9
|
@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
name:'huicui',
|
name:'huicui',
|
||||||
connect:true,
|
connect:true,
|
||||||
character:{
|
character:{
|
||||||
|
yue_xiaoqiao:['female','wu',3,['dcqiqin','dcweiwan']],
|
||||||
dc_dongzhao:['male','wei',3,['dcyijia','dcdingji']],
|
dc_dongzhao:['male','wei',3,['dcyijia','dcdingji']],
|
||||||
kuaiqi:['male','wei',3,['dcliangxiu','dcxunjie']],
|
kuaiqi:['male','wei',3,['dcliangxiu','dcxunjie']],
|
||||||
yue_caiyong:['male','qun',3,['dcjiaowei','dcfeibai']],
|
yue_caiyong:['male','qun',3,['dcjiaowei','dcfeibai']],
|
||||||
|
@ -110,6 +111,144 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
skill:{
|
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:{
|
dcyijia:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -491,29 +630,35 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
return _status.currentPhase;
|
return _status.currentPhase;
|
||||||
},
|
},
|
||||||
prompt2:function(event,player){
|
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){
|
content:function*(event,map){
|
||||||
const player=map.player,trigger=map.trigger;
|
const player=map.player,trigger=map.trigger;
|
||||||
const position=player==_status.currentPhase?'cardPile':'discardPile';
|
const position=player==_status.currentPhase?'cardPile':'discardPile';
|
||||||
const card=get[position](card=>{
|
let cards=[],num=player.hasSkill('dccaisi_more')?2:1;
|
||||||
return get.type(card,false)!='basic';
|
player.removeSkill('dccaisi_more');
|
||||||
});
|
while(num>0){
|
||||||
if(card){
|
num--;
|
||||||
player.gain(card,'gain2');
|
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{
|
else{
|
||||||
player.chat('没有非基本牌…');
|
player.chat('没有非基本牌…');
|
||||||
game.log(`但是${position=='discardPile'?'弃':''}牌堆里没有非基本牌!`);
|
game.log(`但是${position=='discardPile'?'弃':''}牌堆里没有非基本牌!`);
|
||||||
}
|
}
|
||||||
|
player.addTempSkill('dccaisi_more');
|
||||||
},
|
},
|
||||||
|
subSkill:{more:{charlotte:true}},
|
||||||
},
|
},
|
||||||
dczhuoli:{
|
dczhuoli:{
|
||||||
audio:2,
|
audio:2,
|
||||||
trigger:{global:'phaseEnd'},
|
trigger:{global:'phaseEnd'},
|
||||||
forced:true,
|
forced:true,
|
||||||
filter:function(event,player){
|
filter:function(event,player){
|
||||||
return player.getHistory('useCard').length>player.maxHp;
|
return player.getHistory('useCard').length>player.getHp();
|
||||||
},
|
},
|
||||||
content:function*(event,map){
|
content:function*(event,map){
|
||||||
const player=map.player;
|
const player=map.player;
|
||||||
|
@ -11384,9 +11529,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcshizong_info:'当你需要使用一张基本牌时,你可以交给一名其他角色X张牌,然后其可以将一张牌置于牌堆底,视为你使用之。若其不为当前回合角色,此技能失效直到回合结束(X为你本回合发动〖恃纵〗的次数)。',
|
dcshizong_info:'当你需要使用一张基本牌时,你可以交给一名其他角色X张牌,然后其可以将一张牌置于牌堆底,视为你使用之。若其不为当前回合角色,此技能失效直到回合结束(X为你本回合发动〖恃纵〗的次数)。',
|
||||||
pangshanmin:'庞山民',
|
pangshanmin:'庞山民',
|
||||||
dccaisi:'才思',
|
dccaisi:'才思',
|
||||||
dccaisi_info:'当你于回合内/回合外使用基本牌结算结束后,若你本回合以此法得到的牌数不大于你的体力上限,你可以从牌堆/弃牌堆随机获得一张非基本牌。',
|
dccaisi_info:'当你于回合内/回合外使用基本牌结算结束后,若你本回合以此法得到的牌数小于你的体力上限,你可以从牌堆/弃牌堆随机获得一张非基本牌,然后本回合下次发动此技能获得的牌数+1。',
|
||||||
dczhuoli:'擢吏',
|
dczhuoli:'擢吏',
|
||||||
dczhuoli_info:'锁定技。一名角色的回合结束时,若你本回合使用的牌数大于体力上限,你加1点体力上限(不能超过存活角色数),回复1点体力。',
|
dczhuoli_info:'锁定技。一名角色的回合结束时,若你本回合使用的牌数大于体力值,你加1点体力上限(不能超过存活角色数),回复1点体力。',
|
||||||
yue_caiyong:'乐蔡邕',
|
yue_caiyong:'乐蔡邕',
|
||||||
yue_caiyong_prefix:'乐',
|
yue_caiyong_prefix:'乐',
|
||||||
dcjiaowei:'焦尾',
|
dcjiaowei:'焦尾',
|
||||||
|
@ -11404,6 +11549,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcyijia_info:'一名角色受到伤害后,若你至其的距离不大于1,你可以将场上一张装备牌移动至其对应装备栏(替换原装备)。若其因此脱离了一名角色的攻击范围,你摸一张牌。',
|
dcyijia_info:'一名角色受到伤害后,若你至其的距离不大于1,你可以将场上一张装备牌移动至其对应装备栏(替换原装备)。若其因此脱离了一名角色的攻击范围,你摸一张牌。',
|
||||||
dcdingji:'定基',
|
dcdingji:'定基',
|
||||||
dcdingji_info:'准备阶段,你可以令一名角色将手牌摸或弃置至五张,然后其展示手牌。若牌名均不同,则其可以视为使用其中一张基本或普通锦囊牌。',
|
dcdingji_info:'准备阶段,你可以令一名角色将手牌摸或弃置至五张,然后其展示手牌。若牌名均不同,则其可以视为使用其中一张基本或普通锦囊牌。',
|
||||||
|
yue_xiaoqiao:'乐小乔',
|
||||||
|
yue_xiaoqiao_prefix:'乐',
|
||||||
|
dcqiqin:'绮琴',
|
||||||
|
dcqiqin_info:'锁定技。①游戏开始时,你将所有手牌标记为“乐”。②你的“乐”牌不计入手牌上限。③准备阶段,你获得弃牌堆中所有你标记过的“乐”牌。',
|
||||||
|
dcweiwan:'媦婉',
|
||||||
|
dcweiwan_info:'出牌阶段限一次,你可以弃置一张“乐”并获得一名其他角色区域内花色与此牌不相同的牌各一张,若你获得了:一张牌,其失去1点体力;两张牌,本回合你对其使用牌无距离和次数限制;三张牌,本回合你不能对其使用牌。',
|
||||||
|
|
||||||
sp_baigei:'无双上将',
|
sp_baigei:'无双上将',
|
||||||
sp_caizijiaren:'才子佳人',
|
sp_caizijiaren:'才子佳人',
|
||||||
|
|
Loading…
Reference in New Issue