Merge branch 'libccy:PR-Branch' into PR-Branch

This commit is contained in:
nonameShijian 2024-03-29 23:40:21 +08:00 committed by GitHub
commit d197912d0c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 232 additions and 51 deletions

View File

@ -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);

View File

@ -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:'颍川·荀氏',

View File

@ -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:'尹夫人',

View File

@ -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',

View File

@ -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,

View File

@ -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:'谋刘表',

View File

@ -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点体力且本回合手牌上限-13.你随机获得其一张手牌和一张装备区的牌。',
xinfu_xionghuo_info:'游戏开始时你获得3个“暴戾”标记标记上限为3。出牌阶段你可以交给一名其他角色一个“暴戾”标记。当你对有“暴戾”标记的其他角色造成伤害时此伤害+1。有“暴戾”标记的其他角色的出牌阶段开始时其移去所有“暴戾”标记并随机执行一项1.受到1点火焰伤害且本回合不能对你使用【杀】2.失去1点体力且本回合手牌上限-13.你随机获得其两张牌。',
xinfu_shajue:'杀绝',
xinfu_shajue_info:'锁定技其他角色进入濒死状态时你获得一个“暴戾”标记。然后若其体力值小于0你获得使其进入濒死状态的牌。',
xinfu_jianjie:"荐杰",

View File

@ -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为你的体力值并选择其中一张且获得如下效果①当其使用对应实体牌包含此牌的牌指定你为目标后你令此牌对你无效。②当其使用对应实体牌包含此牌的牌结算结束后若你不是此牌的目标则你摸两张牌。③其出牌阶段结束时若此牌位于其的手牌区则你获得此牌。',

View File

@ -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

View File

@ -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 返回的结果
*/