Merge branch 'libccy:PR-Branch' into PR-Branch
This commit is contained in:
commit
d197912d0c
|
@ -469,13 +469,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
return 2;
|
||||
},
|
||||
target_use:(player,target,card)=>{
|
||||
if(!player.isPhaseUsing()||player.hasSkillTag('nokeep',true,{
|
||||
card:card,
|
||||
target:target
|
||||
},true)) return 2;
|
||||
let mode = get.mode(),
|
||||
taos = player.getCards('hs',i=>get.name(i)==='tao'&&lib.filter.cardEnabled(i,target,'forceEnable'));
|
||||
if(target.hp>0){
|
||||
if(target!==_status.event.dying){
|
||||
if(!player.isPhaseUsing() || player.hasSkillTag('nokeep',true,{
|
||||
card:card,
|
||||
target:target
|
||||
},true)) return 2;
|
||||
let min = 7.2-4*player.hp/player.maxHp,
|
||||
nd = player.needsToDiscard(0,(i,player)=>{
|
||||
return !player.canIgnoreHandcard(i)&&(taos.includes(i)||get.value(i)>=min);
|
||||
|
|
|
@ -23,18 +23,178 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clan_wanglun:['male','jin',3,['clanqiuxin','clanjianyuan','clanzhongliu'],['clan:太原王氏']],
|
||||
clan_xunyou:['male','wei',3,['clanbaichu','clandaojie'],['clan:颍川荀氏']],
|
||||
clan_wuqiao:['male','jin',4,['clanqiajue','clanmuyin'],['clan:陈留吴氏']],
|
||||
clan_wangguang:['male','wei',3,['clanlilun','clanjianji','clanzhongliu'],['clan:太原王氏']],
|
||||
},
|
||||
characterSort:{
|
||||
clan:{
|
||||
clan_wu:['clan_wuxian','clan_wuban','clan_wukuang','clan_wuqiao'],
|
||||
clan_xun:['clan_xunshu','clan_xunchen','clan_xuncai','clan_xuncan','clan_xunyou'],
|
||||
clan_han:['clan_hanshao','clan_hanrong'],
|
||||
clan_wang:['clan_wangling','clan_wangyun','clan_wanghun','clan_wanglun'],
|
||||
clan_wang:['clan_wangling','clan_wangyun','clan_wanghun','clan_wanglun','clan_wangguang'],
|
||||
clan_zhong:['clan_zhongyan','clan_zhonghui','clan_zhongyu'],
|
||||
},
|
||||
},
|
||||
/** @type { importCharacterConfig['skill'] } */
|
||||
skill:{
|
||||
//族贝斯塔[doge]
|
||||
clanlilun:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
filter(event,player){
|
||||
return player.hasCard(card=>get.info('clanlilun').filterCard(card,player),'h');
|
||||
},
|
||||
filterCard(card,player){
|
||||
if(player.getStorage('clanlilun').includes(card.name)) return false;
|
||||
if(ui.selected.cards.length&&ui.selected.cards[0].name!=card.name) return false;
|
||||
const cards=player.getCards('h',cardx=>player.canRecast(cardx));
|
||||
return cards.includes(card)&&cards.filter(i=>i.name==card.name).length>1;
|
||||
},
|
||||
selectCard:2,
|
||||
position:'h',
|
||||
check(card){
|
||||
const player=get.event('player');
|
||||
const value=function(card,player){
|
||||
const num=player.getUseValue(card);
|
||||
return num>0?(num+(1/(get.value(card)||0.5))+7):7-get.value(card);
|
||||
};
|
||||
if(ui.selected.cards.length&&value(card,player)<value(ui.selected.cards[0],player)) return 20-get.value(card);
|
||||
return value(card,player);
|
||||
},
|
||||
complexCard:true,
|
||||
discard:false,
|
||||
lose:false,
|
||||
delay:0,
|
||||
usable:1,
|
||||
async content(event,trigger,player){
|
||||
await player.recast(event.cards);
|
||||
if(!player.storage.clanlilun){
|
||||
player.when({global:'phaseAfter'}).then(()=>{
|
||||
player.unmarkSkill('clanlilun');
|
||||
delete player.storage.clanlilun;
|
||||
});
|
||||
}
|
||||
player.markAuto('clanlilun',event.cards.slice().map(card=>card.name));
|
||||
const cards=event.cards.filterInD('d');
|
||||
if(cards.some(card=>player.hasUseTarget(card))){
|
||||
const {result:{bool,links}}=await player.chooseButton(['离论:是否使用其中的一张牌?',cards]).set('filterButton',button=>{
|
||||
return get.event('player').hasUseTarget(button.link);
|
||||
}).set('ai',button=>{
|
||||
return get.event('player').getUseValue(button.link);
|
||||
});
|
||||
if(bool){
|
||||
const card=links[0];
|
||||
player.$gain2(card,false);
|
||||
await game.asyncDelayx();
|
||||
await player.chooseUseTarget(true,card,false);
|
||||
}
|
||||
}
|
||||
},
|
||||
onremove:true,
|
||||
intro:{content:'本回合已重铸过$'},
|
||||
ai:{
|
||||
order(item,player){
|
||||
let cards=player.getCards('h',card=>get.info('clanlilun').filterCard(card,player)&&player.getUseValue(card)>0);
|
||||
cards=cards.filter(card=>cards.filter(i=>i.name==card.name).length>1);
|
||||
if(!cards.length) return 1;
|
||||
cards.sort((a,b)=>get.order(b)-get.order(a));
|
||||
return get.order(cards[0])-0.001;
|
||||
},
|
||||
result:{player:1},
|
||||
},
|
||||
},
|
||||
clanjianji:{
|
||||
unique:true,
|
||||
limited:true,
|
||||
audio:2,
|
||||
trigger:{global:'phaseJieshuBegin'},
|
||||
filter(event,player){
|
||||
if(!event.player.isIn()) return false;
|
||||
const targets=game.filterPlayer(target=>{
|
||||
return event.player.getPrevious()==target||event.player.getNext()==target;
|
||||
});
|
||||
if(!targets.length) return false;
|
||||
const card=new lib.element.VCard({name:'sha'});
|
||||
return !targets.some(target=>{
|
||||
return target.getHistory('useCard').length;
|
||||
})||(player.hasUseTarget(card)&&!targets.some(target=>{
|
||||
return game.hasPlayer2(current=>{
|
||||
return current.getHistory('useCard',evt=>{
|
||||
return evt.targets&&evt.targets.includes(target);
|
||||
}).length;
|
||||
});
|
||||
}));
|
||||
},
|
||||
skillAnimation:true,
|
||||
animationColor:'watar',
|
||||
prompt2(event,player){
|
||||
let str='';
|
||||
const card=new lib.element.VCard({name:'sha'});
|
||||
const targets=game.filterPlayer(target=>{
|
||||
return event.player.getPrevious()==target||event.player.getNext()==target;
|
||||
}),bool=(!targets.some(target=>{
|
||||
return target.getHistory('useCard').length;
|
||||
})),goon=(player.hasUseTarget(card)&&!targets.some(target=>{
|
||||
return game.hasPlayer2(current=>{
|
||||
return current.getHistory('useCard',evt=>{
|
||||
return evt.targets&&evt.targets.includes(target);
|
||||
}).length;
|
||||
});
|
||||
}));
|
||||
if(bool){
|
||||
if(goon) str+='你可以';
|
||||
str+='与'+get.translation(get.translation(event.player))+'各摸一张牌';
|
||||
}
|
||||
if(goon){
|
||||
if(bool) str+=',然后你可以';
|
||||
str+='视为使用一张【杀】';
|
||||
}
|
||||
return str;
|
||||
},
|
||||
check(event,player){
|
||||
const card=new lib.element.VCard({name:'sha'});
|
||||
const targets=game.filterPlayer(target=>{
|
||||
return event.player.getPrevious()==target||event.player.getNext()==target;
|
||||
}),bool=(!targets.some(target=>{
|
||||
return target.getHistory('useCard').length;
|
||||
})),goon=(player.hasUseTarget(card)&&!targets.some(target=>{
|
||||
return game.hasPlayer2(current=>{
|
||||
return current.getHistory('useCard',evt=>{
|
||||
return evt.targets&&evt.targets.includes(target);
|
||||
}).length;
|
||||
});
|
||||
}));
|
||||
return (bool&&(get.attitude(player,event.player)>0||event.player.countCards('h')>player.countCards('h')))||(goon&&player.hasValueTarget(card));
|
||||
},
|
||||
logTarget:'player',
|
||||
async content(event,trigger,player){
|
||||
player.awakenSkill('clanjianji');
|
||||
const card=new lib.element.VCard({name:'sha'});
|
||||
const targets=game.filterPlayer(target=>{
|
||||
return trigger.player.getPrevious()==target||trigger.player.getNext()==target;
|
||||
}),boolx=(!targets.some(target=>{
|
||||
return target.getHistory('useCard').length;
|
||||
})),goon=(player.hasUseTarget(card)&&!targets.some(target=>{
|
||||
return game.hasPlayer2(current=>{
|
||||
return current.getHistory('useCard',evt=>{
|
||||
return evt.targets&&evt.targets.includes(target);
|
||||
}).length;
|
||||
});
|
||||
}));
|
||||
if(boolx){
|
||||
let draw=false;
|
||||
if(goon){
|
||||
const {result:{bool}}=await player.chooseBool('是否与'+get.translation(trigger.player)+'各摸一张牌?').set('choice',get.attitude(player,trigger.player)>0||trigger.player.countCards('h')>player.countCards('h'));
|
||||
if(bool) draw=true;
|
||||
}
|
||||
else draw=true;
|
||||
if(draw){
|
||||
await player.draw('nodelay');
|
||||
await trigger.player.draw();
|
||||
}
|
||||
}
|
||||
if(goon) await player.chooseUseTarget(card,false,!boolx);
|
||||
},
|
||||
},
|
||||
//族吴乔
|
||||
clanqiajue:{
|
||||
audio:2,
|
||||
|
@ -1236,7 +1396,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
clanzhongliu:{
|
||||
audio:2,
|
||||
audioname:['clan_wangling','clan_wangyun','clan_wanghun','clan_wanglun'],
|
||||
audioname:['clan_wangling','clan_wangyun','clan_wanghun','clan_wanglun','clan_wangguang'],
|
||||
trigger:{player:'useCard'},
|
||||
forced:true,
|
||||
clanSkill:true,
|
||||
|
@ -2627,6 +2787,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhongyu:'钟毓(?-263年),字稚叔,颍川长社(今河南长葛市)人。三国时期魏国大臣,太傅钟繇之子、司徒钟会之兄。出身颍川钟氏,机灵敏捷,有其父之遗风。十四岁时,起家散骑侍郎。太和初年,迁黄门侍郎,袭封定陵县侯。正始年间,拜散骑常侍,迁魏郡太守,入为侍中、御史中丞、廷尉 [5] 。随平诸葛诞的淮南叛乱,拜青州刺史、后将军,都督徐州、荆州诸军事。景元四年(263年),去世,追赠车骑将军,谥号为惠,著有文集五卷(见《隋书·经籍志》及《两唐书·经籍志》),传于世。',
|
||||
wanglun:'王沦(233年-257年)字太冲,出身太原晋阳王姓世族(今山西省太原市),王昶三子,王浑、王深之弟,王湛之兄。醇粹简远,崇尚老庄之学,心思平淡。二十多时被举荐为孝廉,没有前往,后任大将军参军。257年,诸葛诞不满司马氏篡权而在寿春起义,王沦跟随司马昭征讨,遭遇疾疫去世,时年二十五,时人惜之,司马昭为他流泪。其兄著诔文《表德论》,表述其德行,说“因为畏惧帝王的典章制度,不能写墓志铭,于是撰写过往的事迹,刻在墓的背面。”',
|
||||
wuqiao:'吴乔,西晋人物,蜀车骑将军吴懿之孙。李雄建立成汉政权,他沦落益州,长达三十年,始终不向李雄屈服。',
|
||||
clan_wangguang:'王广,三国时期曹魏太原祁县人,哲学家。东汉司徒王允从孙,魏太尉王凌之子。有志尚学,官至尚书。魏时随父亲在朝作官,屯骑校尉,机智有谋。当得知司马懿篡夺曹魏政权时,王凌与外甥令狐愚合谋立楚王为魏主,王广劝其父不可,王凌没有接受儿子的谏言,结果计谋泄而被害。',
|
||||
},
|
||||
dynamicTranslate:{
|
||||
clanlianzhu(player){
|
||||
|
@ -2757,6 +2918,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clan_wuqiao:'族吴乔',
|
||||
clanqiajue:'跒倔',
|
||||
clanqiajue_info:'摸牌阶段开始时,你可以弃置一张黑色牌。若如此做,此阶段结束时,你展示手牌,若这些牌的点数和大于30,你的手牌上限-2,否则你执行一个额外的摸牌阶段。',
|
||||
clan_wangguang:'族王广',
|
||||
clan_wangguang_prefix:'族',
|
||||
clanlilun:'离论',
|
||||
clanlilun_info:'出牌阶段限一次,你可以重铸两张手牌(不能是你本回合以此法重铸过的牌名的牌),然后使用其中的一张牌。',
|
||||
clanjianji:'见机',
|
||||
clanjianji_info:'限定技,一名角色的结束阶段,若其上下家均未于本回合:使用过牌,则你可以与其各摸一张牌;成为过牌的目标,则你可以视为使用一张【杀】。',
|
||||
|
||||
clan_wu:'陈留·吴氏',
|
||||
clan_xun:'颍川·荀氏',
|
||||
|
|
|
@ -7095,6 +7095,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
'step 0'
|
||||
player.showCards(cards,get.translation(player)+'发动了【数合】');
|
||||
player.addMark('dcliehou',1);
|
||||
'step 1'
|
||||
event.cards2=[];
|
||||
var num1=get.number(cards[0],player);
|
||||
|
@ -7135,7 +7136,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var target=result.targets[0];
|
||||
player.line(target,'green');
|
||||
player.give(cards,target);
|
||||
player.addMark('dcliehou',1);
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
|
@ -11908,7 +11908,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
'step 0'
|
||||
var target=trigger.player;
|
||||
event.target=target;
|
||||
if(target.getHistory('sourceDamage').length>0&&player.canUse('juedou',target)){
|
||||
if(target.getHistory('useCard',evt=>get.color(evt.card)=='black').length>0&&player.canUse('juedou',target)){
|
||||
player.useCard({name:'juedou',isCard:true},target,'dcxunji_effect');
|
||||
}
|
||||
'step 1'
|
||||
|
@ -12558,7 +12558,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhuangdan_info:'锁定技,其他角色的回合结束时,若你的手牌数为全场唯一最多,则你令〖裂胆〗失效直到你下回合结束。',
|
||||
dc_caiyang:'蔡阳',
|
||||
dcxunji:'寻嫉',
|
||||
dcxunji_info:'出牌阶段限一次,你可以选择一名其他角色。该角色的下个结束阶段开始时,若其于该回合内造成过伤害,则你视为对其使用一张【决斗】,且当此【决斗】对其造成伤害后,其对你造成等量的伤害。',
|
||||
dcxunji_info:'出牌阶段限一次,你可以选择一名其他角色。该角色的下个结束阶段开始时,若其此回合使用过黑色牌,则你视为对其使用一张【决斗】,且当此【决斗】对其造成伤害后,其对你造成等量的伤害。',
|
||||
dcjiaofeng:'交锋',
|
||||
dcjiaofeng_info:'锁定技。每回合限一次,当你造成伤害时,若你本回合内未造成过其他伤害且你已损失的体力值:大于0,则你摸一张牌;大于1,则此伤害+1;大于2,则你回复1点体力。',
|
||||
zhoushan:'周善',
|
||||
|
@ -12758,7 +12758,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
qinbao_info:'锁定技。当你使用【杀】或普通锦囊牌时,你令所有手牌数不小于你的角色不能响应此牌。',
|
||||
dc_lvkuanglvxiang:'吕旷吕翔',
|
||||
dcshuhe:'数合',
|
||||
dcshuhe_info:'出牌阶段限一次,你可以展示一张手牌。若场上有与此牌点数相同的牌,则你获得这些牌;否则你将此牌交给一名其他角色并获得一枚“爵”。',
|
||||
dcshuhe_info:'出牌阶段限一次,你可以展示一张手牌并获得一枚“爵”。若场上有与此牌点数相同的牌,则你获得这些牌;否则你将此牌交给一名其他角色。',
|
||||
dcliehou:'列侯',
|
||||
dcliehou_info:'锁定技。摸牌阶段开始时,你令额定摸牌数+X;然后此摸牌阶段结束时,你选择一项:⒈弃置X张牌。⒉失去1点体力(X为你的“爵”数+1且至多为5)。',
|
||||
yinfuren:'尹夫人',
|
||||
|
|
|
@ -684,6 +684,8 @@ window.noname_character_rank={
|
|||
'ol_sb_guanyu',
|
||||
'gongsunxiu',
|
||||
'dc_caoshuang',
|
||||
'clan_wangling',
|
||||
'clan_wangguang',
|
||||
],
|
||||
bp:[
|
||||
'xin_huojun',
|
||||
|
@ -2657,6 +2659,7 @@ window.noname_character_rank={
|
|||
'furongfuqian',
|
||||
'zhenghun',
|
||||
'clan_wangling',
|
||||
'clan_wangguang',
|
||||
'clan_wangyun',
|
||||
'quhuang',
|
||||
'ol_wenqin',
|
||||
|
|
|
@ -1356,7 +1356,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
olkanpo:{
|
||||
audio:'rekanpo',
|
||||
audioname:['ol_sp_zhugeliang'],
|
||||
audioname:['ol_sp_zhugeliang','ol_pangtong'],
|
||||
trigger:{player:'useCard'},
|
||||
forced:true,
|
||||
locked:false,
|
||||
|
|
|
@ -2735,7 +2735,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sbguose:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
usable:4,
|
||||
get usable(){
|
||||
return get.mode()=='identity'?4:2;
|
||||
},
|
||||
discard:false,
|
||||
lose:false,
|
||||
delay:false,
|
||||
|
@ -7024,7 +7026,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sbzhiba_info:'主公技,限定技。当你进入濒死状态时,你可以回复X-1点体力并修改〖激昂③〗为“出牌阶段限X次”(X为场上其他吴势力角色数+1)。然后其他吴势力角色依次受到1点无来源伤害,且当有角色因此死亡后,你摸三张牌。',
|
||||
sb_daqiao:'谋大乔',
|
||||
sbguose:'国色',
|
||||
sbguose_info:'出牌阶段限四次。你可以选择一项:1.将一张♦牌当【乐不思蜀】使用;2.弃置场上一张【乐不思蜀】。然后你摸一张牌。',
|
||||
sbguose_info:'出牌阶段限两次,你可以将一张♦牌当【乐不思蜀】使用或弃置场上一张【乐不思蜀】,然后你摸一张牌。',
|
||||
sbguose_info_identity:'出牌阶段限四次,你可以将一张♦牌当【乐不思蜀】使用或弃置场上一张【乐不思蜀】,然后你摸一张牌。',
|
||||
sbliuli:'流离',
|
||||
sbliuli_info:'当你成为【杀】的目标时,你可以弃置一张牌并选择你攻击范围内的一名不为此【杀】使用者的角色,将此【杀】转移给该角色。若你以此法弃置了♥牌,则你可以令一名不为此【杀】使用者的其他角色获得“流离”标记,且移去场上所有其他的“流离”(每回合限一次)。有“流离”的角色回合开始时,其移去其“流离”并执行一个额外的出牌阶段。',
|
||||
sb_liubiao:'谋刘表',
|
||||
|
|
|
@ -25521,12 +25521,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
break;
|
||||
case 2:
|
||||
player.line(trigger.player,'green');
|
||||
/*
|
||||
var card1=trigger.player.getCards('h').randomGet();
|
||||
var card2=trigger.player.getCards('e').randomGet();
|
||||
var list=[];
|
||||
if(card1) list.push(card1);
|
||||
if(card2) list.push(card2);
|
||||
if(list.length) player.gain(list,trigger.player,'giveAuto','bySelf');
|
||||
*/
|
||||
const cards=trigger.player.getGainableCards(player,'he');
|
||||
if(cards.length) player.gain(cards.randomGets(2),trigger.player,'giveAuto','bySelf');
|
||||
break;
|
||||
}
|
||||
'step 2'
|
||||
|
@ -26544,7 +26548,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
fujian:'伏间',
|
||||
fujian_info:'锁定技,准备阶段和结束阶段,你随机观看一名手牌数不为全场最多的其他角色的手牌。',
|
||||
xinfu_xionghuo:'凶镬',
|
||||
xinfu_xionghuo_info:'游戏开始时,你获得3个“暴戾”标记(标记上限为3)。出牌阶段,你可以交给一名其他角色一个“暴戾”标记。当你对有“暴戾”标记的其他角色造成伤害时,此伤害+1。有“暴戾”标记的其他角色的出牌阶段开始时,其移去所有“暴戾”标记并随机执行一项:1.受到1点火焰伤害且本回合不能对你使用【杀】;2.失去1点体力且本回合手牌上限-1;3.你随机获得其一张手牌和一张装备区的牌。',
|
||||
xinfu_xionghuo_info:'游戏开始时,你获得3个“暴戾”标记(标记上限为3)。出牌阶段,你可以交给一名其他角色一个“暴戾”标记。当你对有“暴戾”标记的其他角色造成伤害时,此伤害+1。有“暴戾”标记的其他角色的出牌阶段开始时,其移去所有“暴戾”标记并随机执行一项:1.受到1点火焰伤害且本回合不能对你使用【杀】;2.失去1点体力且本回合手牌上限-1;3.你随机获得其两张牌。',
|
||||
xinfu_shajue:'杀绝',
|
||||
xinfu_shajue_info:'锁定技,其他角色进入濒死状态时,你获得一个“暴戾”标记。然后若其体力值小于0,你获得使其进入濒死状态的牌。',
|
||||
xinfu_jianjie:"荐杰",
|
||||
|
|
|
@ -3272,7 +3272,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
else player.addTempSkill('piaoping_blocker');
|
||||
},
|
||||
intro:{name2:'栗',content:'mark'},
|
||||
init(player){
|
||||
player.addMark('tuoxian',1,false);
|
||||
},
|
||||
intro:{name2:'栗',content:'剩余可用#次'},
|
||||
},
|
||||
chuaili:{
|
||||
audio:2,
|
||||
|
@ -3288,8 +3291,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
player.changeZhuanhuanji('piaoping');
|
||||
}
|
||||
else{
|
||||
player.addMark('tuoxian',1);
|
||||
player.addTempSkill('chuaili_blocker');
|
||||
player.addMark('tuoxian',1,false);
|
||||
if(player.countCards('tuoxian')>3) player.addTempSkill('chuaili_blocker');
|
||||
}
|
||||
game.delayx();
|
||||
},
|
||||
|
@ -6738,7 +6741,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
trigger.num++;
|
||||
if(trigger.source.name.indexOf('lvbu')!=-1) trigger.source.storage.panshi='吾堂堂丈夫,安肯为汝子乎!';// 彩蛋
|
||||
if(['name','name1','name2'].some(name=>{
|
||||
if(!player[name]||!get.character(player[name])||typeof get.translation(player[name])!='string') return false;
|
||||
return player[name].includes('lvbu')&&get.translation(player[name]).includes('吕布');
|
||||
})) player.chat('吾堂堂丈夫,安肯为汝子乎!');
|
||||
var evt=event.getParent('phaseUse');
|
||||
if(evt&&evt.player==player) evt.skipped=true;
|
||||
},
|
||||
|
@ -11040,9 +11046,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return '转换技,锁定技。当你使用一张牌时,<span class="bluetext">阴:你摸X张牌。</span>阳:你弃置X张牌。(X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值)';
|
||||
},
|
||||
chuaili:function(player){
|
||||
if(!player.hasSkill('piaoping',null,null,false)) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。';
|
||||
if(player.storage.piaoping) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:<span class="bluetext">处于阳状态,则你将〖漂萍〗转换至阴状态;</span>处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。';
|
||||
return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;<span class="bluetext">处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。</span>';
|
||||
if(!player.hasSkill('piaoping',null,null,false)) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你令〖托献〗发动次数+1,然后若〖托献〗发动次数大于3,则〖惴栗〗于本回合内失效。';
|
||||
if(player.storage.piaoping) return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:<span class="bluetext">处于阳状态,则你将〖漂萍〗转换至阴状态;</span>处于阴状态,则你令〖托献〗发动次数+1,然后若〖托献〗发动次数大于3,则〖惴栗〗于本回合内失效。';
|
||||
return '锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;<span class="bluetext">处于阴状态,则你令〖托献〗发动次数+1,然后若〖托献〗发动次数大于3,则〖惴栗〗于本回合内失效。</span>';
|
||||
},
|
||||
dcdouzhen:function(player){
|
||||
var str='锁定技。①转换技。你的回合内,';
|
||||
|
@ -11526,9 +11532,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
piaoping:'漂萍',
|
||||
piaoping_info:'转换技,锁定技。当你使用一张牌时,阴:你摸X张牌。阳:你弃置X张牌。(X为你本阶段内发动过〖漂萍〗的次数且至多等于你的体力值)',
|
||||
tuoxian:'托献',
|
||||
tuoxian_info:'当你因执行〖漂萍〗的效果而弃置牌后,你可以弃置一枚“栗”并令一名其他角色获得这些牌,然后令该角色选择一项:⒈弃置区域内等量的牌。⒉令你的〖漂萍〗失效直到回合结束。',
|
||||
tuoxian_info:'每局游戏限一次。当你因执行〖漂萍〗的效果而弃置牌后,你可令一名其他角色获得这些牌,然后令该角色选择一项:⒈弃置区域内等量的牌。⒉令你的〖漂萍〗失效直到回合结束。',
|
||||
chuaili:'惴栗',
|
||||
chuaili_info:'锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你获得一枚“栗”,且令〖惴栗〗于本回合内失效。',
|
||||
chuaili_info:'锁定技。当你成为其他角色使用黑色牌的目标后,若你的〖漂萍〗:处于阳状态,则你将〖漂萍〗转换至阴状态;处于阴状态,则你令〖托献〗发动次数+1,然后若〖托献〗发动次数大于3,则〖惴栗〗于本回合内失效。',
|
||||
fengfang:'冯方',
|
||||
dcditing:'谛听',
|
||||
dcditing_info:'其他角色的出牌阶段开始时,若你在该角色的攻击范围内,则你可以观看其的X张手牌(X为你的体力值)并选择其中一张,且获得如下效果:①当其使用对应实体牌包含此牌的牌指定你为目标后,你令此牌对你无效。②当其使用对应实体牌包含此牌的牌结算结束后,若你不是此牌的目标,则你摸两张牌。③其出牌阶段结束时,若此牌位于其的手牌区,则你获得此牌。',
|
||||
|
|
|
@ -1282,14 +1282,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
zhuanhuanji:true,
|
||||
intro:{
|
||||
content:function(storage){
|
||||
if(!storage) return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力。(X为你的体力值)'
|
||||
return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力值,Y为X-其打出【杀】数)';
|
||||
if(!storage) return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力。(X为你的体力上限)';
|
||||
return '每回合限一次,当你得到其他角色的牌后,或其他角色得到你的牌后,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力上限,Y为X-其打出【杀】数)';
|
||||
},
|
||||
},
|
||||
audio:2,
|
||||
trigger:{global:['gainAfter','loseAsyncAfter']},
|
||||
filter:function(event,player){
|
||||
if(!player.getHp()) return false;
|
||||
if(typeof player.maxHp!='number'||player.maxHp<=0) return false;
|
||||
if(event.name=='loseAsync'&&event.type!='gain') return false;
|
||||
if(player.hasSkill('dcsbmengmou_true')&&player.hasSkill('dcsbmengmou_false')) return false;
|
||||
var cards1=event.getl(player).cards2,cards2=event.getg(player);
|
||||
|
@ -1308,7 +1308,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var player=map.player,trigger=map.trigger;
|
||||
var storage=player.storage.dcsbmengmou;
|
||||
player.addTempSkill('dcsbmengmou_effect','dcsbmengmouAfter');
|
||||
var targets=[],num=player.getHp();
|
||||
var targets=[],num=player.maxHp;
|
||||
var cards1=trigger.getl(player).cards2;
|
||||
var cards2=trigger.getg(player);
|
||||
targets.addArray(game.filterPlayer(function(current){
|
||||
|
@ -1525,14 +1525,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
audio:2,
|
||||
trigger:{player:'phaseJieshuBegin'},
|
||||
direct:true,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer(current=>current.countCards('e'));
|
||||
},
|
||||
content:function*(event,map){
|
||||
const player=map.player;
|
||||
let result=yield player.chooseTarget(get.prompt('dcnuanhui'),'选择一名装备区有牌的角色,该角色可以依次使用X张基本牌(X为其装备区牌数)。',(card,player,target)=>{
|
||||
return target.countCards('e');
|
||||
}).set('ai',target=>{
|
||||
let result=yield player.chooseTarget(get.prompt('dcnuanhui'),'选择一名装备区有牌的角色,该角色可以依次使用X张基本牌(X为其装备区牌数)。').set('ai',target=>{
|
||||
return get.event('aiTarget')==target?10:0;
|
||||
}).set('aiTarget',(()=>{
|
||||
const player=get.player();
|
||||
|
@ -1544,7 +1539,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(get.attitude(player,target)<=0) return -1;
|
||||
const toUse=[];
|
||||
const hp=target.hp;
|
||||
let eff=0,count=target.countCards('e');
|
||||
let eff=0,count=Math.max(1,target.countCards('e'));
|
||||
while(count--){
|
||||
target.hp=Math.min(target.maxHp,target.hp+toUse.filter(card=>card.name=='tao').length);
|
||||
const listx=list.map(info=>{
|
||||
|
@ -1570,11 +1565,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
return eff;
|
||||
}
|
||||
const playerList=game.filterPlayer(current=>{
|
||||
return current.countCards('e');
|
||||
}).map(current=>[current,getUseValue(current)]).sort((a,b)=>{
|
||||
return b[1]-a[1];
|
||||
});
|
||||
const playerList=game.filterPlayer().map(current=>[current,getUseValue(current)]).sort((a,b)=>b[1]-a[1]);
|
||||
if(playerList[0][1]<=0) return null;
|
||||
return playerList[0][0];
|
||||
})());
|
||||
|
@ -1582,8 +1573,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
const target=result.targets[0];
|
||||
player.logSkill('dcnuanhui',target);
|
||||
if(!target.isUnderControl(true)&&!target.isOnline()) game.delayx();
|
||||
const total=target.countCards('e');
|
||||
let count=0,forced=false;
|
||||
const total=Math.max(1,target.countCards('e'));
|
||||
let count=0,forced=false,used=[],discard=false;
|
||||
while(count<total){
|
||||
const basicList=get.inpileVCardList(info=>{
|
||||
return info[0]=='basic'&&target.hasUseTarget({name:info[2],nature:info[3],isCard:true});
|
||||
|
@ -1602,10 +1593,14 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
forced=true;
|
||||
const card=new lib.element.VCard({name:result.links[0][2],nature:result.links[0][3],isCard:true});
|
||||
yield target.chooseUseTarget(card,true,false);
|
||||
const result=yield target.chooseUseTarget(card,true,false);
|
||||
if(!discard&&result.bool){
|
||||
if(used.includes(result.links[0][2])) discard=true;
|
||||
else used.add(result.links[0][2]);
|
||||
}
|
||||
count++;
|
||||
}
|
||||
if(count>1){
|
||||
if(discard){
|
||||
const cards=target.getCards('e',card=>{
|
||||
return lib.filter.cardDiscardable(card,target,'dcnuanhui');
|
||||
});
|
||||
|
@ -14445,7 +14440,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(storage) str+='<span class="bluetext">';
|
||||
str+='阳,你可令该角色打出至多X张【杀】,然后其失去Y点体力。';
|
||||
if(storage) str+='</span>';
|
||||
str+='(X为你的体力值,Y为X-其打出【杀】数)';
|
||||
str+='(X为你的体力上限,Y为X-其打出【杀】数)';
|
||||
return str;
|
||||
},
|
||||
dcsbyingmou:function(player){
|
||||
|
@ -14969,7 +14964,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
dcqiongying:'琼英',
|
||||
dcqiongying_info:'出牌阶段限一次。你可以移动场上的一张牌,然后你弃置一张与此牌花色相同的手牌(若没有该花色的手牌则改为展示所有手牌)。',
|
||||
dcnuanhui:'暖惠',
|
||||
dcnuanhui_info:'结束阶段,你可以选择一名装备区有牌的角色,其可以视为依次使用X张基本牌(X为其装备区牌数)。若其以此法使用了至少两张牌,其弃置装备区里的所有牌。',
|
||||
dcnuanhui_info:'结束阶段,你可以选择一名装备区有牌的角色,其可以视为依次使用X张基本牌(X为其装备区牌数且至少为1)。若其此次以此法使用了同名牌,其弃置装备区里的所有牌。',
|
||||
zhangjian:'张臶',
|
||||
dc_zj_a:'技能',
|
||||
dc_zj_a_info:'锁定技。当你受到牌造成的伤害时,若此牌有点数,则你将此伤害值改为此牌点数,否则你防止此伤害。',
|
||||
|
@ -14980,7 +14975,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
dcsbmingshi:'明势',
|
||||
dcsbmingshi_info:'摸牌阶段,你可以多摸两张牌,然后展示三张牌并令一名其他角色选择获得其中的一张牌。',
|
||||
dcsbmengmou:'盟谋',
|
||||
dcsbmengmou_info:'转换技,每回合每项各限一次,当你得到其他角色的牌后,或其他角色得到你的牌后:阴,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力;阳,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力值,Y为X-其打出【杀】数)',
|
||||
dcsbmengmou_info:'转换技,每回合每项各限一次,当你得到其他角色的牌后,或其他角色得到你的牌后:阴,你可以令该角色使用至多X张【杀】,且其每以此法造成1点伤害,其回复1点体力;阳,你可令该角色打出至多X张【杀】,然后其失去Y点体力。(X为你的体力上限,Y为X-其打出【杀】数)',
|
||||
dc_sb_zhouyu:'新杀谋周瑜',
|
||||
dc_sb_zhouyu_prefix:'新杀谋',
|
||||
dcsbronghuo:'融火',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 43 KiB |
|
@ -53,10 +53,13 @@ export class Get extends Uninstantable {
|
|||
return list;
|
||||
}
|
||||
/**
|
||||
* 根据座次数n(从0开始)获取对应的“n+1号位”翻译
|
||||
* @param {number} seat
|
||||
* 根据(Player的)座次数n(从1开始)获取对应的“n号位”翻译
|
||||
* @param {number | Player} seat
|
||||
*/
|
||||
static seatTranslation(seat) { return `${get.cnNumber(seat + 1, true)}号位`; }
|
||||
static seatTranslation(seat) {
|
||||
if (get.itemtype(seat) === 'player') seat = seat.getSeatNum();
|
||||
return `${get.cnNumber(seat, true)}号位`;
|
||||
}
|
||||
/**
|
||||
* @param {number} numberOfPlayers
|
||||
* @returns {string[]}
|
||||
|
@ -4685,7 +4688,7 @@ export class Get extends Uninstantable {
|
|||
return eff;
|
||||
}
|
||||
/**
|
||||
*
|
||||
*
|
||||
* @param {any} source 如果参数是function,执行此函数并返回结果,传参为此方法剩余的参数。如果参数不是function,直接返回结果。
|
||||
* @returns 返回的结果
|
||||
*/
|
||||
|
|
Loading…
Reference in New Issue