This commit is contained in:
parent
1fd09c9cac
commit
0aa848735e
|
@ -4,6 +4,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
name:'huicui',
|
name:'huicui',
|
||||||
connect:true,
|
connect:true,
|
||||||
character:{
|
character:{
|
||||||
|
dc_jiangji:['male','wei',3,['dcshiju','dcyingshi']],
|
||||||
gongsunxiu:['male','qun',4,['dcgangu','dckuizhen']],
|
gongsunxiu:['male','qun',4,['dcgangu','dckuizhen']],
|
||||||
dc_liuli:['male','shu',3,['dcfuli','dcdehua']],
|
dc_liuli:['male','shu',3,['dcfuli','dcdehua']],
|
||||||
yue_daqiao:['female','wu',3,['dcqiqin','dczixi']],
|
yue_daqiao:['female','wu',3,['dcqiqin','dczixi']],
|
||||||
|
@ -115,10 +116,181 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_raoting:['dc_huanghao','dc_sunziliufang','dc_sunchen','dc_jiachong'],
|
sp_raoting:['dc_huanghao','dc_sunziliufang','dc_sunchen','dc_jiachong'],
|
||||||
sp_yijun:['gongsundu','mengyou','dc_sp_menghuo','gongsunxiu'],
|
sp_yijun:['gongsundu','mengyou','dc_sp_menghuo','gongsunxiu'],
|
||||||
sp_zhengyin:['yue_caiwenji','yue_zhoufei','yue_caiyong','yue_xiaoqiao','yue_daqiao'],
|
sp_zhengyin:['yue_caiwenji','yue_zhoufei','yue_caiyong','yue_xiaoqiao','yue_daqiao'],
|
||||||
|
sp_zhonghu:['dc_jiangji'],
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
/** @type { importCharacterConfig['skill'] } */
|
/** @type { importCharacterConfig['skill'] } */
|
||||||
skill:{
|
skill:{
|
||||||
|
//蒋济
|
||||||
|
dcshiju:{
|
||||||
|
audio:2,
|
||||||
|
global:'dcshiju_global',
|
||||||
|
subSkill:{
|
||||||
|
global:{
|
||||||
|
audio:'dcshiju',
|
||||||
|
enable:'phaseUse',
|
||||||
|
usable:1,
|
||||||
|
filter(event,player){
|
||||||
|
return game.hasPlayer(current=>{
|
||||||
|
if(current==player||!current.hasSkill('dcshiju')) return false;
|
||||||
|
return player.countCards('he');
|
||||||
|
});
|
||||||
|
},
|
||||||
|
filterTarget(card,player,target){
|
||||||
|
return target!=player&&target.hasSkill('dcshiju');
|
||||||
|
},
|
||||||
|
selectTarget(){
|
||||||
|
const num=game.countPlayer(current=>{
|
||||||
|
return current.hasSkill('dcshiju');
|
||||||
|
});
|
||||||
|
return num>1?1:-1;
|
||||||
|
},
|
||||||
|
filterCard:true,
|
||||||
|
position:'he',
|
||||||
|
check(card){
|
||||||
|
const player=get.player();
|
||||||
|
if(get.type(card)==='equip'){
|
||||||
|
if(player.countCards('he',{subtype:get.subtype(card)})>1){
|
||||||
|
return 11-get.equipValue(card);
|
||||||
|
}
|
||||||
|
return 6-get.value(card);
|
||||||
|
}
|
||||||
|
return 4-get.value(card);
|
||||||
|
},
|
||||||
|
prompt(){
|
||||||
|
const list=game.filterPlayer(current=>{
|
||||||
|
return current.hasSkill('dcshiju');
|
||||||
|
});
|
||||||
|
return `将一张牌交给${get.translation(list)}${list.length>1?'中的一人':''},若此牌为装备牌,其可以使用之,且你本回合的攻击范围+X(X为其装备区的牌数)。若其以此法替换了装备,你与其各摸两张牌。`;
|
||||||
|
},
|
||||||
|
discard:false,
|
||||||
|
lose:false,
|
||||||
|
prepare(cards,player,targets){
|
||||||
|
player.$give(cards,targets[0],false);
|
||||||
|
},
|
||||||
|
async content(event,trigger,player){
|
||||||
|
const card=event.cards[0],target=event.target;
|
||||||
|
await player.give(card,target);
|
||||||
|
if(!target.getCards('h').includes(card)||get.type(card)!=='equip') return;
|
||||||
|
const bool=await target.chooseUseTarget(card).forResultBool();
|
||||||
|
if(!bool) return;
|
||||||
|
const count=target.countCards('e');
|
||||||
|
if(count>0){
|
||||||
|
player.addTempSkill('dcshiju_range');
|
||||||
|
player.addMark('dcshiju_range',count);
|
||||||
|
if(target.hasHistory('lose',evt=>{
|
||||||
|
return evt.getParent().name==='equip'&&evt.getParent(4)===event&&evt.es&&evt.es.length>0;
|
||||||
|
})){
|
||||||
|
for(const current of [player,target]) await current.draw(2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:10,
|
||||||
|
result:{
|
||||||
|
target(player,target){
|
||||||
|
const card=ui.selected.cards[0];
|
||||||
|
if(card&&get.type(card)!=='equip') return get.value(card,target)/5;
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
range:{
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
mod:{
|
||||||
|
attackRange:function(player,num){
|
||||||
|
return num+player.countMark('dcshiju_range');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
intro:{content:'本回合攻击范围+#'},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
dcyingshi:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'useCardToPlayered'},
|
||||||
|
filter(event,player){
|
||||||
|
if(!event.isFirstTarget) return false;
|
||||||
|
if(get.type(event.card)!=='trick') return false;
|
||||||
|
const evt=event.getParent();
|
||||||
|
const evts=game.getGlobalHistory('useCard',null,evt).slice().remove(evt);
|
||||||
|
return event.targets.some(target=>{
|
||||||
|
return evts.some(evt=>evt.targets.includes(target));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
costContent(event,player){
|
||||||
|
const evt=event.getParent();
|
||||||
|
const evts=game.getGlobalHistory('useCard',null,evt).slice().remove(evt);
|
||||||
|
const targets=event.targets.filter(target=>{
|
||||||
|
return evts.some(evt=>evt.targets.includes(target));
|
||||||
|
});
|
||||||
|
return player.chooseTarget()
|
||||||
|
.set('filterTarget',(card,player,target)=>{
|
||||||
|
return get.event('targets').includes(target);
|
||||||
|
})
|
||||||
|
.set('targets',targets)
|
||||||
|
.set('toFriends',(()=>{
|
||||||
|
if(player.hasSkill('dcyingshi_choice1')||player.countCards('e')<2) return true;
|
||||||
|
if(!player.hasSkill('dcyingshi_choice1')&&get.tag(event.card,'norepeat')) return true;
|
||||||
|
if(targets.some(current=>{
|
||||||
|
return get.effect(current,event.card,event.player,player)>0;
|
||||||
|
})) return true;
|
||||||
|
return false;
|
||||||
|
})())
|
||||||
|
.set('ai',target=>{
|
||||||
|
const player=get.player(),count=player.countCards('e'),att=get.attitude(player,target);
|
||||||
|
if(att>0&&get.event('toFriends')){
|
||||||
|
if(target.countCards('he',card=>get.value(card)<5)<count) return 0;
|
||||||
|
return att;
|
||||||
|
}
|
||||||
|
if(player.hasSkill('dcyingshi_choice1')&&!count) return 0;
|
||||||
|
return -get.attitude(player,target);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
async content(event,trigger,player){
|
||||||
|
const {costResult:{targets}}=event,target=targets[0];
|
||||||
|
let bool;
|
||||||
|
if([1,2].every(i=>!player.hasSkill(`dcyingshi_choice${i}`))){
|
||||||
|
const count=player.countCards('e');
|
||||||
|
if(count>0){
|
||||||
|
bool=await target.chooseToDiscard(`${get.translation(player)}对你发动了【应时】`,`是否弃置${get.cnNumber(count)}张牌,令${get.translation(trigger.card)}对你无效?或点击“取消”,令此牌对你额外结算一次。`,count).set('ai',card=>{
|
||||||
|
if(get.event('goon')) return 5.5-get.value(card);
|
||||||
|
return 0;
|
||||||
|
}).set('goon',!get.tag(trigger.card,'norepeat')&&get.effect(target,trigger.card,trigger.player,target)<-5).forResultBool();
|
||||||
|
}
|
||||||
|
else bool=false;
|
||||||
|
}
|
||||||
|
else bool=player.hasSkill('dcyingshi_choice1');
|
||||||
|
if(bool){
|
||||||
|
trigger.excluded.add(target);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
player.when({global:'useCardAfter'})
|
||||||
|
.filter(evt=>evt===trigger.getParent())
|
||||||
|
.vars({
|
||||||
|
targetx:target,
|
||||||
|
cardx:{
|
||||||
|
name:trigger.card.name,
|
||||||
|
nature:trigger.card.nature,
|
||||||
|
isCard:true,
|
||||||
|
storage:{dcyingshi:true},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
.then(()=>{
|
||||||
|
const next=player.useCard(get.copy(cardx),targetx,false);
|
||||||
|
if(trigger.addedTarget) next.addedTarget=trigger.addedTarget;
|
||||||
|
if(trigger.addedTargets&&trigger.addedTargets.length) next.addedTargets=trigger.addedTargets.slice(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
player.addTempSkill(`dcyingshi_choice${bool+1}`);
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
choice1:{charlotte:true},
|
||||||
|
choice2:{charlotte:true},
|
||||||
|
},
|
||||||
|
},
|
||||||
//公孙修
|
//公孙修
|
||||||
dcgangu:{
|
dcgangu:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -165,6 +337,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
await target.loseHp();
|
await target.loseHp();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
ai:{
|
||||||
|
result:{
|
||||||
|
target(player,target){
|
||||||
|
const [juedouEff,loseEff]=[
|
||||||
|
get.effect(player,{name:'juedou'},target,player),
|
||||||
|
get.effect(target,{name:'losehp'},target,player)
|
||||||
|
];
|
||||||
|
if(juedouEff>0) return loseEff*get.attitude(player,target)/10;
|
||||||
|
return 0;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
},
|
||||||
subSkill:{
|
subSkill:{
|
||||||
effect:{
|
effect:{
|
||||||
trigger:{player:'useCard1'},
|
trigger:{player:'useCard1'},
|
||||||
|
@ -12195,6 +12379,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
dcgangu_info:'锁定技。每回合限一次。当其他角色失去体力后,你摸两张牌,然后失去1点体力。',
|
dcgangu_info:'锁定技。每回合限一次。当其他角色失去体力后,你摸两张牌,然后失去1点体力。',
|
||||||
dckuizhen:'溃阵',
|
dckuizhen:'溃阵',
|
||||||
dckuizhen_info:'出牌阶段限一次。你可以令一名手牌数或体力值大于你的角色视为对你使用一张【决斗】。若你:受到渠道为此牌的伤害,你观看其手牌并获得其中所有的【杀】(你使用以此法得到的牌无任何次数限制);未受到渠道为此牌的伤害,其失去1点体力。',
|
dckuizhen_info:'出牌阶段限一次。你可以令一名手牌数或体力值大于你的角色视为对你使用一张【决斗】。若你:受到渠道为此牌的伤害,你观看其手牌并获得其中所有的【杀】(你使用以此法得到的牌无任何次数限制);未受到渠道为此牌的伤害,其失去1点体力。',
|
||||||
|
dc_jiangji:'蒋济',
|
||||||
|
dcshiju:'势举',
|
||||||
|
dcshiju_info:'其他角色的出牌阶段限一次。其可以交给你一张牌,若此牌为装备牌,你可以使用之,然后其本回合攻击范围+X(X为你装备区里的牌数)。若你以此法替换了装备,你与其各摸两张牌。',
|
||||||
|
dcyingshi:'应时',
|
||||||
|
dcyingshi_info:'每回合每项各限一次。当你使用普通锦囊牌指定第一个目标后,若有目标不为本回合第一次成为牌的目标,则你可以令其选择一项:⒈令你于此牌结算结束后视为对其使用一张与此牌牌名相同的牌;⒉弃置X张牌,此牌对其无效(X为你装备区里的牌数)。',
|
||||||
|
|
||||||
sp_baigei:'无双上将',
|
sp_baigei:'无双上将',
|
||||||
sp_caizijiaren:'才子佳人',
|
sp_caizijiaren:'才子佳人',
|
||||||
|
@ -12209,6 +12398,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_raoting:'绕庭之鸦',
|
sp_raoting:'绕庭之鸦',
|
||||||
sp_yijun:'异军突起',
|
sp_yijun:'异军突起',
|
||||||
sp_zhengyin:'正音雅乐',
|
sp_zhengyin:'正音雅乐',
|
||||||
|
sp_zhonghu:'冢虎狼顾',
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
|
@ -16472,7 +16472,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
mutao_info:'出牌阶段限一次。你可以选择一名角色,令其将手牌中所有的【杀】置于武将牌上,然后将这些牌依次随机交给其下家开始的每一名角色。然后其对最后一名以此法获得【杀】的角色A造成X点伤害(X为A手牌中【杀】的数量且至多为2)。',
|
mutao_info:'出牌阶段限一次。你可以选择一名角色,令其将手牌中所有的【杀】置于武将牌上,然后将这些牌依次随机交给其下家开始的每一名角色。然后其对最后一名以此法获得【杀】的角色A造成X点伤害(X为A手牌中【杀】的数量且至多为2)。',
|
||||||
yimou:'毅谋',
|
yimou:'毅谋',
|
||||||
yimou_info:'当一名角色受到伤害后,若其存活且你至其的距离不大于1,你可以选择一项:1.令其从牌堆中获得一张【杀】;2.令其将一张手牌交给另一名角色,然后摸一张牌。',
|
yimou_info:'当一名角色受到伤害后,若其存活且你至其的距离不大于1,你可以选择一项:1.令其从牌堆中获得一张【杀】;2.令其将一张手牌交给另一名角色,然后摸一张牌。',
|
||||||
jiangji:'蒋济',
|
jiangji:'手杀蒋济',
|
||||||
|
jiangji_prefix:'手杀',
|
||||||
jilun:'机论',
|
jilun:'机论',
|
||||||
jilun_info:'①当你受到伤害后,若你拥有技能〖急筹〗,则你可以一项:1.摸两张牌。2.获得1枚“机论”标记。②一名角色的结束阶段,若你拥有“机论”,则重复选择执行以下项直到你没有“机论”标记:1.失去1枚“机论”标记,视为使用一张〖急筹①〗记录过且未被〖机论②〗记录过的普通锦囊牌并记录此牌牌名。2.失去所有“机论”标记。',
|
jilun_info:'①当你受到伤害后,若你拥有技能〖急筹〗,则你可以一项:1.摸两张牌。2.获得1枚“机论”标记。②一名角色的结束阶段,若你拥有“机论”,则重复选择执行以下项直到你没有“机论”标记:1.失去1枚“机论”标记,视为使用一张〖急筹①〗记录过且未被〖机论②〗记录过的普通锦囊牌并记录此牌牌名。2.失去所有“机论”标记。',
|
||||||
liwei:'李遗',
|
liwei:'李遗',
|
||||||
|
|
|
@ -15338,7 +15338,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
tw_caocao:['tw_caocao','jsrg_caocao','yj_caocao'],
|
tw_caocao:['tw_caocao','jsrg_caocao','yj_caocao'],
|
||||||
mateng:['tw_mateng','mateng'],
|
mateng:['tw_mateng','mateng'],
|
||||||
xiahouen:['tw_xiahouen','jsrg_xiahouen'],
|
xiahouen:['tw_xiahouen','jsrg_xiahouen'],
|
||||||
jiangji:['tw_jiangji','jiangji'],
|
jiangji:['dc_jiangji','tw_jiangji','jiangji'],
|
||||||
baoxin:['tw_baoxin','baoxin'],
|
baoxin:['tw_baoxin','baoxin'],
|
||||||
yanxiang:['yanxiang','tw_yanxiang'],
|
yanxiang:['yanxiang','tw_yanxiang'],
|
||||||
liwei:['liwei','tw_liwei'],
|
liwei:['liwei','tw_liwei'],
|
||||||
|
|
Loading…
Reference in New Issue