commit
69fe42b72c
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -22,10 +22,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clan_zhongyu:['male','wei',3,['clanjiejian','clanhuanghan','clanbaozu'],['clan:颍川钟氏']],
|
||||
clan_wanglun:['male','wei',3,['clanqiuxin','clanjianyuan','clanzhongliu'],['clan:太原王氏']],
|
||||
clan_xunyou:['male','wei',3,['clanbaichu','clandaojie'],['clan:颍川荀氏']],
|
||||
clan_wuqiao:['male','jin',4,['clanqiajue','clanmuyin'],['clan:陈留吴氏']],
|
||||
},
|
||||
characterSort:{
|
||||
clan:{
|
||||
clan_wu:['clan_wuxian','clan_wuban','clan_wukuang'],
|
||||
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'],
|
||||
|
@ -33,6 +34,46 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//族吴乔
|
||||
clanqiajue:{
|
||||
audio:2,
|
||||
trigger:{player:'phaseDrawBegin'},
|
||||
filter(event,player){
|
||||
return player.countCards('he',card=>{
|
||||
if(_status.connectMode&&get.position(card)=='h') return true;
|
||||
return get.color(card,player)=='black'&&lib.filter.cardDiscardable(card,player);
|
||||
});
|
||||
},
|
||||
direct:true,
|
||||
async content(event,trigger,player){
|
||||
const {result:{bool}}=await player.chooseToDiscard(get.prompt2('clanqiajue'),(card,player)=>{
|
||||
return get.color(card,player)=='black'&&lib.filter.cardDiscardable(card,player);
|
||||
},'he').set('ai',card=>{
|
||||
const player=get.event('player'),goon=get.position(card)=='h';
|
||||
let num=player.getCards('h').reduce((sum,card)=>sum+get.number(card),0);
|
||||
if(num-(goon?get.number(card):0)>30) return 0;
|
||||
return goon?get.number(card):1/(get.value(card)||0.5);
|
||||
}).set('logSkill','clanqiajue');
|
||||
if(bool){
|
||||
player.when({player:['phaseDrawEnd','phaseDrawCancelled','phaseUseSkipped']})
|
||||
.filter(evt=>evt==trigger)
|
||||
.then(()=>{
|
||||
const cards=player.getCards('h'),num=cards.reduce((sum,card)=>sum+get.number(card),0);
|
||||
if(cards.length) player.showCards(cards,get.translation(player)+'【跒倔】展示');
|
||||
if(num>30){
|
||||
player.popup('杯具');
|
||||
lib.skill.chenliuwushi.change(player,-2);
|
||||
}
|
||||
else{
|
||||
player.popup('洗具');
|
||||
const next=player.phaseDraw();
|
||||
event.next.remove(next);
|
||||
trigger.getParent('phase').next.push(next);
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
},
|
||||
//族荀攸
|
||||
clanbaichu:{
|
||||
derivation:'qice',
|
||||
|
@ -2508,7 +2549,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clanmuyin:{
|
||||
audio:2,
|
||||
clanSkill:true,
|
||||
audioname:['clan_wuxian','clan_wuban','clan_wukuang'],
|
||||
audioname:['clan_wuxian','clan_wuban','clan_wukuang','clan_wuqiao'],
|
||||
trigger:{player:'phaseBegin'},
|
||||
isMax(player){
|
||||
var num=player.getHandcardLimit();
|
||||
|
@ -2582,6 +2623,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
wanghun:'王浑(223年~297年),字玄冲,太原郡晋阳县(今山西省太原市)人。魏晋时期名臣,曹魏司空王昶的儿子。王浑早年为大将军曹爽的掾吏,高平陵政变后,循例免官,出任怀县县令、散骑侍郎等职,袭封京陵县侯。西晋王朝建立后,加号扬烈将军,历任征虏将军、东中郎将、豫州刺史等职,积极筹划伐吴方略。咸宁五年(279年),配合镇南将军杜预灭亡吴国,迁征东大将军、左仆射、司徒公,晋爵京陵县公。晋惠帝司马衷即位,加任侍中衔。楚王司马玮发动政变,有意寻求支持,遭到严词拒绝。楚王司马玮死后,复任司徒、录尚书事。元康七年(297年),王浑去世,享年七十五岁,谥号为元。《唐会要》尊为“魏晋八君子”之一。',
|
||||
zhongyu:'钟毓(?-263年),字稚叔,颍川长社(今河南长葛市)人。三国时期魏国大臣,太傅钟繇之子、司徒钟会之兄。出身颍川钟氏,机灵敏捷,有其父之遗风。十四岁时,起家散骑侍郎。太和初年,迁黄门侍郎,袭封定陵县侯。正始年间,拜散骑常侍,迁魏郡太守,入为侍中、御史中丞、廷尉 [5] 。随平诸葛诞的淮南叛乱,拜青州刺史、后将军,都督徐州、荆州诸军事。景元四年(263年),去世,追赠车骑将军,谥号为惠,著有文集五卷(见《隋书·经籍志》及《两唐书·经籍志》),传于世。',
|
||||
wanglun:'王沦(233年-257年)字太冲,出身太原晋阳王姓世族(今山西省太原市),王昶三子,王浑、王深之弟,王湛之兄。醇粹简远,崇尚老庄之学,心思平淡。二十多时被举荐为孝廉,没有前往,后任大将军参军。257年,诸葛诞不满司马氏篡权而在寿春起义,王沦跟随司马昭征讨,遭遇疾疫去世,时年二十五,时人惜之,司马昭为他流泪。其兄著诔文《表德论》,表述其德行,说“因为畏惧帝王的典章制度,不能写墓志铭,于是撰写过往的事迹,刻在墓的背面。”',
|
||||
wuqiao:'吴乔,西晋人物,蜀车骑将军吴懿之孙。李雄建立成汉政权,他沦落益州,长达三十年,始终不向李雄屈服。',
|
||||
},
|
||||
dynamicTranslate:{
|
||||
clanlianzhu(player){
|
||||
|
@ -2615,6 +2657,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clan_zhongyu_prefix:'族',
|
||||
clan_wanglun_prefix:'族',
|
||||
clan_xunyou_prefix:'族',
|
||||
clan_wuqiao_prefix:'族',
|
||||
|
||||
clan_wuxian:'族吴苋',
|
||||
clanyirong:'移荣',
|
||||
|
@ -2708,6 +2751,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
clan_xunyou:'族荀攸',
|
||||
clanbaichu:'百出',
|
||||
clanbaichu_info:'锁定技,当你使用一张牌结算完毕后,若你:未记录过此牌的花色和类型组合,则你记录此组合并记录一个普通锦囊牌名,否则你于本轮获得技能〖奇策〗;已记录此牌牌名,你回复1点体力或摸一张牌。',
|
||||
clan_wuqiao:'族吴乔',
|
||||
clanqiajue:'跒倔',
|
||||
clanqiajue_info:'摸牌阶段开始时,你可以弃置一张黑色牌。若如此做,此阶段结束时,你展示手牌,若这些牌的点数和大于30,你的手牌上限-2,否则你执行一个额外的摸牌阶段。',
|
||||
|
||||
clan_wu:'陈留·吴氏',
|
||||
clan_xun:'颍川·荀氏',
|
||||
|
|
|
@ -8,12 +8,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
ol_caozhang:['male','wei',4,['oljiangchi'],['die_audio:xin_caozhang']],
|
||||
ol_jianyong:['male','shu',3,['olqiaoshui','jyzongshi'],['tempname:re_jianyong','die_audio:re_jianyong']],
|
||||
ol_lingtong:['male','wu',4,['olxuanfeng'],['die_audio:re_lingtong']],
|
||||
ol_sb_guanyu:['male','shu',4,['olsbfumeng','olsbguidao']],
|
||||
},
|
||||
characterSort:{
|
||||
onlyOL:{
|
||||
onlyOL_yijiang1:['ol_jianyong','ol_lingtong'],
|
||||
onlyOL_yijiang2:['ol_caozhang'],
|
||||
onlyOL_sb:['ol_sb_jiangwei'],
|
||||
onlyOL_sb:['ol_sb_jiangwei','ol_sb_guanyu'],
|
||||
},
|
||||
},
|
||||
characterIntro:{
|
||||
|
@ -21,6 +22,141 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
characterReplace:{
|
||||
},
|
||||
skill:{
|
||||
//OL谋关羽
|
||||
//可以和手杀谋关羽组成卧龙凤雏了
|
||||
olsbfumeng:{
|
||||
audio:2,
|
||||
trigger:{global:'roundStart'},
|
||||
filter(event,player){
|
||||
return player.countCards('h');
|
||||
},
|
||||
direct:true,
|
||||
async content(event,trigger,player){
|
||||
const {result:{bool,cards}}=await player.chooseCard(get.prompt2('olsbfumeng'),[1,Infinity]).set('ai',card=>{
|
||||
const player=get.event('player');
|
||||
if(player.hasSkill('olsbfumeng')) return 7-get.value(card);
|
||||
return 4.5-get.value(card);
|
||||
});
|
||||
if(!bool) return;
|
||||
player.logSkill('olsbfumeng');
|
||||
player.addSkill('olsbfumeng_buff');
|
||||
player.addGaintag(cards,'olsbfumeng_buff');
|
||||
},
|
||||
subSkill:{
|
||||
buff:{
|
||||
charlotte:true,
|
||||
mod:{
|
||||
cardname:function(card){
|
||||
if(get.itemtype(card)=='card'&&card.hasGaintag('olsbfumeng_buff')) return 'sha';
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
olsbguidao:{
|
||||
audio:2,
|
||||
enable:'phaseUse',
|
||||
filter(event,player){
|
||||
if(event.olsbguidao_num>2) return false;
|
||||
const card=new lib.element.VCard({name:'juedou',storage:{olsbguidao:true}});
|
||||
return game.hasPlayer(target=>{
|
||||
return player.canUse(card,target,false);
|
||||
})&&player.countCards('he',cardx=>{
|
||||
return player.canRecast(cardx);
|
||||
})>=2&&player.countCards('he',cardx=>{
|
||||
return get.name(cardx,player)=='sha'&&player.canRecast(cardx);
|
||||
})>=event.olsbguidao_num;
|
||||
},
|
||||
onChooseToUse(event){
|
||||
if(!game.online&&!event.olsbguidao_num){
|
||||
const player=event.player,history=player.getHistory('lose',evt=>{
|
||||
return evt.getParent(2).name=='recast'&&evt.getParent(3).name=='olsbguidao';
|
||||
});
|
||||
if(!history.length) event.set('olsbguidao_num',0);
|
||||
else{
|
||||
const evt=history[history.length-1];
|
||||
event.set('olsbguidao_num',evt.cards.filter(card=>get.name(card,player)=='sha').length+1);
|
||||
}
|
||||
}
|
||||
},
|
||||
filterCard(card,player){
|
||||
const num=get.event('olsbguidao_num');
|
||||
if(ui.selected.cards.filter(cardx=>get.name(cardx,player)=='sha').length<num&&get.name(card,player)!='sha') return false;
|
||||
return player.canRecast(card);
|
||||
},
|
||||
selectCard:2,
|
||||
position:'he',
|
||||
check(card){
|
||||
const player=get.event('player');
|
||||
if(get.name(card,player)=='sha') return 1/(get.value(card)||0.5);
|
||||
return 7-get.value(card);
|
||||
},
|
||||
complexCard:true,
|
||||
lose:false,
|
||||
discard:false,
|
||||
delay:0,
|
||||
filterTarget(card,player,target){
|
||||
const cardx=new lib.element.VCard({name:'juedou',storage:{olsbguidao:true}});
|
||||
return player.canUse(cardx,target,false);
|
||||
},
|
||||
prompt(){
|
||||
let str='重铸两张牌';
|
||||
const num=get.event('olsbguidao_num');
|
||||
if(num>0) str+='(至少重铸'+get.cnNumber(num)+'张【杀】)';
|
||||
str+='并视为使用【决斗】';
|
||||
return str;
|
||||
},
|
||||
async content(event,trigger,player){
|
||||
const target=event.target,cards=event.cards;
|
||||
const card=new lib.element.VCard({name:'juedou',storage:{olsbguidao:true}});
|
||||
await player.recast(cards);
|
||||
player.addTempSkill('olsbguidao_buff');
|
||||
if(player.canUse(card,target,false)) player.useCard(card,target,false);
|
||||
},
|
||||
ai:{
|
||||
order(item,player){
|
||||
const card=new lib.element.VCard({name:'juedou',storage:{olsbguidao:true}});
|
||||
const order=get.order(card,player);
|
||||
if(order<=0) return 0;
|
||||
return order+0.1;
|
||||
},
|
||||
result:{
|
||||
target(player,target){
|
||||
const card=new lib.element.VCard({name:'juedou',storage:{olsbguidao:true}});
|
||||
return get.sgn(get.attitude(player,target))*get.effect(target,card,player,player);
|
||||
},
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
buff:{
|
||||
charlotte:true,
|
||||
trigger:{global:'damageBegin3'},
|
||||
filter(event,player){
|
||||
return event.card&&event.source&&event.card.storage&&event.card.storage.olsbguidao&&event.source==player;
|
||||
},
|
||||
forced:true,
|
||||
popup:false,
|
||||
async content(event,trigger,player){
|
||||
const target=trigger.player;
|
||||
const {result:{control}}=await target.chooseControl('【杀】更多','非【杀】更多')
|
||||
.set('prompt','归刀:请猜测'+get.translation(player)+'手牌中【杀】与非【杀】牌数哪个更多')
|
||||
.set('prompt2','若猜错,则'+get.translation(trigger.card)+'对你造成的伤害+1')
|
||||
.set('ai',()=>_status.event.controls.randomGet());
|
||||
const goon1=player.countCards('h',card=>get.name(card,player)=='sha')>=player.countCards('h',card=>get.name(card,player)!='sha');
|
||||
const goon2=player.countCards('h',card=>get.name(card,player)!='sha')>=player.countCards('h',card=>get.name(card,player)=='sha');
|
||||
if((goon1&&control=='【杀】更多')||(goon2&&control=='非【杀】更多')){
|
||||
target.popup('判断正确','wood');
|
||||
game.log(target,'猜测','#g正确');
|
||||
}
|
||||
else{
|
||||
target.popup('判断错误','fire');
|
||||
game.log(target,'猜测','#y错误');
|
||||
trigger.increase('num');
|
||||
}
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//OL谋姜维
|
||||
olsbzhuri:{
|
||||
audio:2,
|
||||
|
@ -354,6 +490,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
olsbranji_info:'限定技,结束阶段。若你本回合使用过牌的阶段数大于等于/小于等于体力值,你可以获得技能〖困奋〗/〖诈降〗(同时满足则都获得,以此法获得的〖困奋〗直接修改为非锁定技)。若如此做,你将手牌数调整至手牌上限或将体力值回复至体力上限,然后你不能回复体力直到你杀死角色。',
|
||||
kunfenx:'困奋',
|
||||
kunfenx_info:'结束阶段开始时,你可以失去1点体力,然后摸两张牌。',
|
||||
ol_sb_guanyu:'OL谋关羽',
|
||||
ol_sb_guanyu_prefix:'OL谋',
|
||||
olsbfumeng:'赋梦',
|
||||
olsbfumeng_info:'一轮游戏开始时,你可以令任意张手牌的牌名视为【杀】。',
|
||||
olsbguidao:'归刀',
|
||||
olsbguidao_info:'出牌阶段,你可以重铸两张牌并视为使用一张【决斗】(若你本回合已发动过〖归刀〗,则此次重铸的【杀】数必须比本回合上一次发动〖归刀〗重铸的【杀】数多)。目标角色受到此牌伤害时,其须猜测你手牌中牌名为【杀】的牌数量多还是牌名不为【杀】的牌数多,若其猜错,则此【决斗】对其造成的伤害+1。',
|
||||
|
||||
onlyOL_yijiang1:'OL专属·将1',
|
||||
onlyOL_yijiang2:'OL专属·将2',
|
||||
|
|
|
@ -361,6 +361,7 @@ window.noname_character_rank={
|
|||
'shen_lusu',
|
||||
],
|
||||
am:[
|
||||
'clan_wuqiao',
|
||||
'muludawang',
|
||||
'diy_caiwenji',
|
||||
'diy_liuyan',
|
||||
|
@ -1038,6 +1039,7 @@ window.noname_character_rank={
|
|||
'jsrg_weiwenzhugezhi',
|
||||
],
|
||||
b:[
|
||||
'ol_sb_guanyu',
|
||||
'liyi',
|
||||
'diy_feishi',
|
||||
'diy_liufu',
|
||||
|
@ -1965,6 +1967,7 @@ window.noname_character_rank={
|
|||
'xushi',
|
||||
'machao',
|
||||
'sunce',
|
||||
're_sunce',
|
||||
're_wangyun',
|
||||
'zuoci',
|
||||
'xuyou',
|
||||
|
@ -2111,6 +2114,7 @@ window.noname_character_rank={
|
|||
'dc_sb_zhouyu',
|
||||
],
|
||||
rare:[
|
||||
'clan_wuqiao',
|
||||
'xin_huojun',
|
||||
'muludawang',
|
||||
'mb_huban',
|
||||
|
@ -2585,10 +2589,10 @@ window.noname_character_rank={
|
|||
'dc_sb_lusu',
|
||||
],
|
||||
junk:[
|
||||
'ol_sb_guanyu',
|
||||
'sunshao',
|
||||
'ol_guohuai',
|
||||
'gongsunzan',
|
||||
're_sunce',
|
||||
'chengpu',
|
||||
'zangba',
|
||||
'tianfeng',
|
||||
|
|
|
@ -647,7 +647,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return player.countCards('h',card=>lib.skill.sbqicai.filterCardx(card,player))||event.sbqicai&&event.sbqicai.length;
|
||||
},
|
||||
filterCardx:function(card,player){
|
||||
//if(player.getStorage('sbqicai').includes(card.name)) return false;
|
||||
if(player.getStorage('sbqicai').includes(card.name)) return false;
|
||||
return get.type(card)=='equip'&&game.hasPlayer(target=>target!=player&&target.hasEmptySlot(get.subtype(card)));
|
||||
},
|
||||
usable:1,
|
||||
|
@ -699,7 +699,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
target.$gain2(cards);
|
||||
game.delayx();
|
||||
}
|
||||
//player.markAuto('sbqicai',[cards[0].name]);
|
||||
if(get.mode()=='doudizhu') player.markAuto('sbqicai',[cards[0].name]);
|
||||
target.equip(cards[0]);
|
||||
player.addSkill('sbqicai_gain');
|
||||
lib.skill.sbqicai.updateCounter(player,target,0);
|
||||
|
@ -945,7 +945,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sbkanpo:{
|
||||
init:function(player){
|
||||
if(!player.storage.sbkanpo){
|
||||
player.storage.sbkanpo=[4,[],[]];
|
||||
player.storage.sbkanpo=[get.mode()=='doudizhu'?2:4,[],[]];
|
||||
player.markSkill('sbkanpo');
|
||||
}
|
||||
},
|
||||
|
@ -6342,6 +6342,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sbhuoji_info:'使命技。①使命:出牌阶段限一次。你可以对一名其他角色造成1点火焰伤害,然后你对所有与其势力相同的不为其的其他角色各造成1点火焰伤害。②成功:准备阶段,若你本局游戏已造成的火焰伤害不小于本局游戏总角色数,则你失去〖火计〗和〖看破〗,然后获得〖观星〗和〖空城〗。③失败:使命成功前进入濒死状态。',
|
||||
sbkanpo:'看破',
|
||||
sbkanpo_info:'①一轮游戏开始时,你清除〖看破①〗记录的牌名,然后你可以依次记录任意个未于上次发动〖看破①〗记录清除过的非装备牌牌名(对其他角色不可见,每局游戏至多记录4个牌名)。②其他角色使用你〖看破①〗记录过的牌名的牌时,你可以移去一个〖看破①〗中的此牌名的记录令此牌无效,然后你摸一张牌。',
|
||||
sbkanpo_info_doudizhu:'①一轮游戏开始时,你清除〖看破①〗记录的牌名,然后你可以依次记录任意个未于上次发动〖看破①〗记录清除过的非装备牌牌名(对其他角色不可见,每局游戏至多记录2个牌名)。②其他角色使用你〖看破①〗记录过的牌名的牌时,你可以移去一个〖看破①〗中的此牌名的记录令此牌无效,然后你摸一张牌。',
|
||||
sbguanxing:'观星',
|
||||
sbguanxing_info:'①准备阶段,你将所有“星”置入弃牌堆,将牌堆顶的X张牌置于你的武将牌上,称为“星”(X为7-此前发动〖观星①〗次数的三倍,且X至少为0)。然后你可以将任意张“星”置于牌堆顶。②结束阶段,若你未于本回合的准备阶段将“星”置于过牌堆顶,你可以将任意张“星”置于牌堆顶。③你可以如手牌般使用或打出“星”。',
|
||||
sbkongcheng:'空城',
|
||||
|
@ -6351,6 +6352,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sbqicai:'奇才',
|
||||
sbqicai_backup:'奇才',
|
||||
sbqicai_info:'①出牌阶段限一次。你可以将手牌中或弃牌堆中的一张装备牌置于一名其他角色的对应装备栏,然后其获得如下效果:当其得到普通锦囊牌后,其将此牌交给你(限三张)。②你使用锦囊牌无距离限制。',
|
||||
sbqicai_info_doudizhu:'①出牌阶段限一次。你可以将手牌中或弃牌堆中的一张装备牌置于一名其他角色的对应装备栏(每种牌名的装备牌每局游戏限选择一次),然后其获得如下效果:当其得到普通锦囊牌后,其将此牌交给你(限三张)。②你使用锦囊牌无距离限制。',
|
||||
sbjizhi:'集智',
|
||||
sbjizhi_info:'锁定技,当你使用一张普通锦囊牌时,你摸一张牌,且此牌本回合不计入你的手牌上限。',
|
||||
sb_guanyu:'谋关羽',
|
||||
|
|
134
character/tw.js
134
character/tw.js
|
@ -20,6 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
xia_guanyu:['male','qun',4,['twzhongyi','twchue']],
|
||||
xia_liubei:['male','shu',4,['twshenyi','twxinghan']],
|
||||
xia_xiahousone:['female','qun',3,['twchengxi']],
|
||||
xia_xiahoudun:['male','qun',4,['twdanlie']],
|
||||
|
@ -284,6 +285,133 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//侠关羽
|
||||
twzhongyi:{
|
||||
mod:{
|
||||
targetInRange(card){
|
||||
if(card.name=='sha') return true;
|
||||
},
|
||||
},
|
||||
audio:2,
|
||||
trigger:{player:'useCardAfter'},
|
||||
filter(event,player){
|
||||
return player.getHistory('sourceDamage',evt=>evt.card&&evt.card==event.card).length;
|
||||
},
|
||||
forced:true,
|
||||
async content(event,trigger,player){
|
||||
const num=player.getHistory('sourceDamage',evt=>evt.card&&evt.card==trigger.card).reduce((sum,evt)=>sum+evt.num,0);
|
||||
const num2=1+player.getAllHistory('custom',evt=>evt.twzhongyi).length;
|
||||
let choice=['摸牌'],choiceList=['摸'+get.cnNumber(num)+'张牌'];
|
||||
if(player.isDamaged()){
|
||||
choice.addArray(['回血','背水!']);
|
||||
choiceList.addArray([
|
||||
'回复'+num+'点体力',
|
||||
'失去'+num2+'点体力,依次执行以上所有项',
|
||||
]);
|
||||
}
|
||||
const {result:{control}}=await player.chooseControl(choice)
|
||||
.set('prompt','忠义:请选择一项').set('choiceList',choiceList)
|
||||
.set('ai',()=>{
|
||||
const player=get.event('player');
|
||||
const num=get.event('num'),num2=get.event('num2');
|
||||
if(player.isHealthy()) return '摸牌';
|
||||
return (player.hp+player.countCards('hs',card=>player.canSaveCard(card,player))-num2>0&&num>num2)?'背水!':'回血';
|
||||
}).set('num',num).set('num2',num2);
|
||||
if(control!='cancel2'){
|
||||
if(control=='背水'){
|
||||
await player.loseHp(num2);
|
||||
player.getHistory('custom').push({twzhongyi:true});
|
||||
}
|
||||
if(control!='回血') await player.draw(num);
|
||||
if(control!='摸牌') await player.recover(num2);
|
||||
}
|
||||
},
|
||||
},
|
||||
twchue:{
|
||||
audio:2,
|
||||
trigger:{player:'useCardToPlayer'},
|
||||
filter(event,player){
|
||||
return event.card.name=='sha'&&event.isFirstTarget&&event.targets.length==1&&game.hasPlayer(target=>!event.targets.includes(target)&&player.canUse(event.card,target));
|
||||
},
|
||||
prompt2:'失去1点体力,额外指定至多等同于你体力值的目标',
|
||||
check(event,player){
|
||||
return player.hp+player.countCards('hs',card=>player.canSaveCard(card,player))-1>0;
|
||||
},
|
||||
async content(event,trigger,player){
|
||||
await player.loseHp();
|
||||
const targetx=trigger.targets.slice(),num=player.getHp();
|
||||
if(!num) return;
|
||||
const {result:{bool,targets}}=await player.chooseTarget('额外指定至多'+get.cnNumber(num)+'名目标',[1,num],(card,player,target)=>{
|
||||
const trigger=_status.event.getTrigger();
|
||||
return !trigger.targets.includes(target)&&player.canUse(trigger.card,target);
|
||||
}).set('ai',target=>{
|
||||
const player=get.event('player'),trigger=_status.event.getTrigger();
|
||||
return get.effect(target,trigger.card,player,player);
|
||||
});
|
||||
if(!bool) return;
|
||||
player.line(targets);
|
||||
trigger.targets.addArray(targets);
|
||||
},
|
||||
group:['twchue_gain','twchue_effect'],
|
||||
marktext:'勇',
|
||||
intro:{
|
||||
name:'勇',
|
||||
content:'mark',
|
||||
},
|
||||
subSkill:{
|
||||
gain:{
|
||||
audio:'twchue',
|
||||
trigger:{player:['damageEnd','loseHpEnd']},
|
||||
forced:true,
|
||||
locked:false,
|
||||
async content(event,trigger,player){
|
||||
await player.draw();
|
||||
await player.addMark('twchue',1);
|
||||
},
|
||||
},
|
||||
effect:{
|
||||
audio:'twchue',
|
||||
trigger:{global:'phaseEnd'},
|
||||
filter(event,player){
|
||||
const card=new lib.element.VCard({name:'sha'});
|
||||
return player.hasUseTarget(card)&&player.getHistory('useSkill',evt=>{
|
||||
return evt.skill=='twchue_gain';
|
||||
}).length&&player.getHp()&&player.countMark('twchue')>=player.getHp();
|
||||
},
|
||||
check(event,player){
|
||||
return player.hasValueTarget(new lib.element.VCard({name:'sha'}));
|
||||
},
|
||||
prompt2(event,player){
|
||||
const num=player.getHp();
|
||||
return '失去'+num+'个“勇”标记,视为使用一张造成的伤害+1且可以额外指定'+num+'个目标的【杀】';
|
||||
},
|
||||
async content(event,trigger,player){
|
||||
const num=player.getHp();
|
||||
player.removeMark('twchue',num);
|
||||
const card=new lib.element.VCard({name:'sha'});
|
||||
player.when('useCard2')
|
||||
.filter(evt=>evt.card==card&&game.hasPlayer(target=>!evt.targets.includes(target)&&player.canUse(evt.card,target)))
|
||||
.then(()=>{
|
||||
trigger.baseDamage++;
|
||||
player.chooseTarget('额外指定至多'+get.cnNumber(num)+'名目标',[1,num],(card,player,target)=>{
|
||||
const trigger=_status.event.getTrigger();
|
||||
return !trigger.targets.includes(target)&&player.canUse(trigger.card,target);
|
||||
}).set('ai',target=>{
|
||||
const player=get.event('player'),trigger=_status.event.getTrigger();
|
||||
return get.effect(target,trigger.card,player,player);
|
||||
});
|
||||
})
|
||||
.then(()=>{
|
||||
if(result.bool){
|
||||
player.line(targets);
|
||||
trigger.targets.addArray(targets);
|
||||
}
|
||||
}).vars({card:card,num:num});
|
||||
player.chooseUseTarget('视为使用造成的伤害+1且可以额外指定'+num+'个目标的【杀】',card,false,true);
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//夏侯惇
|
||||
twdanlie:{
|
||||
audio:2,
|
||||
|
@ -15231,6 +15359,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
twshenyi_info:'每回合限一次,当你或你攻击范围内的一名角色于一回合内首次受到伤害后,你可以声明一种基本牌或锦囊牌(每种牌名限一次),然后从牌堆中将一张同名牌(若没有同名牌则改为同类型的牌)称为“侠义”置于武将牌上。若受伤角色不为你,则你可以将任意张手牌交给其,且当其失去一张你以此法交给其的牌后,你摸一张牌。',
|
||||
twxinghan:'兴汉',
|
||||
twxinghan_info:'①你的回合外或你处于濒死状态时,你可以如手牌般使用或打出“侠义”牌。②准备阶段,若“侠义”牌数大于存活角色数,则你可以依次使用其中所有可以使用的牌。然后你获得如下效果:回合结束时,你弃置所有手牌并失去X点体力(X为你的体力值-1且X至少为1)。',
|
||||
xia_guanyu:'侠关羽',
|
||||
xia_guanyu_prefix:'侠',
|
||||
twzhongyi:'忠义',
|
||||
twzhongyi_info:'锁定技。①你使用【杀】无距离限制。②当你使用【杀】结算完毕后,你选择一项:⒈摸X张牌;⒉回复X点体力;⒊背水:失去Y点体力,依次执行以上两项(X为此牌造成的伤害值,Y为你本局游戏此前选择此项的次数+1)。',
|
||||
twchue:'除恶',
|
||||
twchue_info:'①当你使用【杀】指定唯一目标时,你可以失去1点体力,为此牌额外指定Z个目标。②当你受到伤害或失去体力后,你摸一张牌并获得1个“勇”标记。③回合结束时,若你本回合发动过〖除恶②〗,则你可以失去Z个“勇”标记,视为使用一张伤害+1且可以额外指定Z个目标的【杀】。(Z为你的体力值)',
|
||||
|
||||
tw_mobile:'海外服·稀有专属',
|
||||
tw_yunchouzhi:'运筹帷幄·智',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
Binary file not shown.
After Width: | Height: | Size: 40 KiB |
Loading…
Reference in New Issue