Merge pull request #868 from mengxinzxz/PR-Branch

OL/外服新武将+技能调整
This commit is contained in:
Spmario233 2024-01-28 14:21:43 +08:00 committed by GitHub
commit 69fe42b72c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
64 changed files with 335 additions and 7 deletions

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.

View File

@ -22,10 +22,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
clan_zhongyu:['male','wei',3,['clanjiejian','clanhuanghan','clanbaozu'],['clan:颍川钟氏']], clan_zhongyu:['male','wei',3,['clanjiejian','clanhuanghan','clanbaozu'],['clan:颍川钟氏']],
clan_wanglun:['male','wei',3,['clanqiuxin','clanjianyuan','clanzhongliu'],['clan:太原王氏']], clan_wanglun:['male','wei',3,['clanqiuxin','clanjianyuan','clanzhongliu'],['clan:太原王氏']],
clan_xunyou:['male','wei',3,['clanbaichu','clandaojie'],['clan:颍川荀氏']], clan_xunyou:['male','wei',3,['clanbaichu','clandaojie'],['clan:颍川荀氏']],
clan_wuqiao:['male','jin',4,['clanqiajue','clanmuyin'],['clan:陈留吴氏']],
}, },
characterSort:{ characterSort:{
clan:{ 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_xun:['clan_xunshu','clan_xunchen','clan_xuncai','clan_xuncan','clan_xunyou'],
clan_han:['clan_hanshao','clan_hanrong'], 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'],
@ -33,6 +34,46 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
skill:{ 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:{ clanbaichu:{
derivation:'qice', derivation:'qice',
@ -2508,7 +2549,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
clanmuyin:{ clanmuyin:{
audio:2, audio:2,
clanSkill:true, clanSkill:true,
audioname:['clan_wuxian','clan_wuban','clan_wukuang'], audioname:['clan_wuxian','clan_wuban','clan_wukuang','clan_wuqiao'],
trigger:{player:'phaseBegin'}, trigger:{player:'phaseBegin'},
isMax(player){ isMax(player){
var num=player.getHandcardLimit(); var num=player.getHandcardLimit();
@ -2582,6 +2623,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
wanghun:'王浑223年297年字玄冲太原郡晋阳县今山西省太原市人。魏晋时期名臣曹魏司空王昶的儿子。王浑早年为大将军曹爽的掾吏高平陵政变后循例免官出任怀县县令、散骑侍郎等职袭封京陵县侯。西晋王朝建立后加号扬烈将军历任征虏将军、东中郎将、豫州刺史等职积极筹划伐吴方略。咸宁五年279年配合镇南将军杜预灭亡吴国迁征东大将军、左仆射、司徒公晋爵京陵县公。晋惠帝司马衷即位加任侍中衔。楚王司马玮发动政变有意寻求支持遭到严词拒绝。楚王司马玮死后复任司徒、录尚书事。元康七年297年王浑去世享年七十五岁谥号为元。《唐会要》尊为“魏晋八君子”之一。', wanghun:'王浑223年297年字玄冲太原郡晋阳县今山西省太原市人。魏晋时期名臣曹魏司空王昶的儿子。王浑早年为大将军曹爽的掾吏高平陵政变后循例免官出任怀县县令、散骑侍郎等职袭封京陵县侯。西晋王朝建立后加号扬烈将军历任征虏将军、东中郎将、豫州刺史等职积极筹划伐吴方略。咸宁五年279年配合镇南将军杜预灭亡吴国迁征东大将军、左仆射、司徒公晋爵京陵县公。晋惠帝司马衷即位加任侍中衔。楚王司马玮发动政变有意寻求支持遭到严词拒绝。楚王司马玮死后复任司徒、录尚书事。元康七年297年王浑去世享年七十五岁谥号为元。《唐会要》尊为“魏晋八君子”之一。',
zhongyu:'钟毓(?-263年字稚叔颍川长社今河南长葛市人。三国时期魏国大臣太傅钟繇之子、司徒钟会之兄。出身颍川钟氏机灵敏捷有其父之遗风。十四岁时起家散骑侍郎。太和初年迁黄门侍郎袭封定陵县侯。正始年间拜散骑常侍迁魏郡太守入为侍中、御史中丞、廷尉 [5] 。随平诸葛诞的淮南叛乱拜青州刺史、后将军都督徐州、荆州诸军事。景元四年263年去世追赠车骑将军谥号为惠著有文集五卷见《隋书·经籍志》及《两唐书·经籍志》传于世。', zhongyu:'钟毓(?-263年字稚叔颍川长社今河南长葛市人。三国时期魏国大臣太傅钟繇之子、司徒钟会之兄。出身颍川钟氏机灵敏捷有其父之遗风。十四岁时起家散骑侍郎。太和初年迁黄门侍郎袭封定陵县侯。正始年间拜散骑常侍迁魏郡太守入为侍中、御史中丞、廷尉 [5] 。随平诸葛诞的淮南叛乱拜青州刺史、后将军都督徐州、荆州诸军事。景元四年263年去世追赠车骑将军谥号为惠著有文集五卷见《隋书·经籍志》及《两唐书·经籍志》传于世。',
wanglun:'王沦233年257年字太冲出身太原晋阳王姓世族今山西省太原市王昶三子王浑、王深之弟王湛之兄。醇粹简远崇尚老庄之学心思平淡。二十多时被举荐为孝廉没有前往后任大将军参军。257年诸葛诞不满司马氏篡权而在寿春起义王沦跟随司马昭征讨遭遇疾疫去世时年二十五时人惜之司马昭为他流泪。其兄著诔文《表德论》表述其德行说“因为畏惧帝王的典章制度不能写墓志铭于是撰写过往的事迹刻在墓的背面。”', wanglun:'王沦233年257年字太冲出身太原晋阳王姓世族今山西省太原市王昶三子王浑、王深之弟王湛之兄。醇粹简远崇尚老庄之学心思平淡。二十多时被举荐为孝廉没有前往后任大将军参军。257年诸葛诞不满司马氏篡权而在寿春起义王沦跟随司马昭征讨遭遇疾疫去世时年二十五时人惜之司马昭为他流泪。其兄著诔文《表德论》表述其德行说“因为畏惧帝王的典章制度不能写墓志铭于是撰写过往的事迹刻在墓的背面。”',
wuqiao:'吴乔,西晋人物,蜀车骑将军吴懿之孙。李雄建立成汉政权,他沦落益州,长达三十年,始终不向李雄屈服。',
}, },
dynamicTranslate:{ dynamicTranslate:{
clanlianzhu(player){ clanlianzhu(player){
@ -2615,6 +2657,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
clan_zhongyu_prefix:'族', clan_zhongyu_prefix:'族',
clan_wanglun_prefix:'族', clan_wanglun_prefix:'族',
clan_xunyou_prefix:'族', clan_xunyou_prefix:'族',
clan_wuqiao_prefix:'族',
clan_wuxian:'族吴苋', clan_wuxian:'族吴苋',
clanyirong:'移荣', clanyirong:'移荣',
@ -2708,6 +2751,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){
clan_xunyou:'族荀攸', clan_xunyou:'族荀攸',
clanbaichu:'百出', clanbaichu:'百出',
clanbaichu_info:'锁定技当你使用一张牌结算完毕后若你未记录过此牌的花色和类型组合则你记录此组合并记录一个普通锦囊牌名否则你于本轮获得技能〖奇策〗已记录此牌牌名你回复1点体力或摸一张牌。', clanbaichu_info:'锁定技当你使用一张牌结算完毕后若你未记录过此牌的花色和类型组合则你记录此组合并记录一个普通锦囊牌名否则你于本轮获得技能〖奇策〗已记录此牌牌名你回复1点体力或摸一张牌。',
clan_wuqiao:'族吴乔',
clanqiajue:'跒倔',
clanqiajue_info:'摸牌阶段开始时你可以弃置一张黑色牌。若如此做此阶段结束时你展示手牌若这些牌的点数和大于30你的手牌上限-2否则你执行一个额外的摸牌阶段。',
clan_wu:'陈留·吴氏', clan_wu:'陈留·吴氏',
clan_xun:'颍川·荀氏', clan_xun:'颍川·荀氏',

View File

@ -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_caozhang:['male','wei',4,['oljiangchi'],['die_audio:xin_caozhang']],
ol_jianyong:['male','shu',3,['olqiaoshui','jyzongshi'],['tempname:re_jianyong','die_audio:re_jianyong']], 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_lingtong:['male','wu',4,['olxuanfeng'],['die_audio:re_lingtong']],
ol_sb_guanyu:['male','shu',4,['olsbfumeng','olsbguidao']],
}, },
characterSort:{ characterSort:{
onlyOL:{ onlyOL:{
onlyOL_yijiang1:['ol_jianyong','ol_lingtong'], onlyOL_yijiang1:['ol_jianyong','ol_lingtong'],
onlyOL_yijiang2:['ol_caozhang'], onlyOL_yijiang2:['ol_caozhang'],
onlyOL_sb:['ol_sb_jiangwei'], onlyOL_sb:['ol_sb_jiangwei','ol_sb_guanyu'],
}, },
}, },
characterIntro:{ characterIntro:{
@ -21,6 +22,141 @@ game.import('character',function(lib,game,ui,get,ai,_status){
characterReplace:{ characterReplace:{
}, },
skill:{ 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谋姜维 //OL谋姜维
olsbzhuri:{ olsbzhuri:{
audio:2, audio:2,
@ -354,6 +490,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
olsbranji_info:'限定技,结束阶段。若你本回合使用过牌的阶段数大于等于/小于等于体力值,你可以获得技能〖困奋〗/〖诈降〗(同时满足则都获得,以此法获得的〖困奋〗直接修改为非锁定技)。若如此做,你将手牌数调整至手牌上限或将体力值回复至体力上限,然后你不能回复体力直到你杀死角色。', olsbranji_info:'限定技,结束阶段。若你本回合使用过牌的阶段数大于等于/小于等于体力值,你可以获得技能〖困奋〗/〖诈降〗(同时满足则都获得,以此法获得的〖困奋〗直接修改为非锁定技)。若如此做,你将手牌数调整至手牌上限或将体力值回复至体力上限,然后你不能回复体力直到你杀死角色。',
kunfenx:'困奋', kunfenx:'困奋',
kunfenx_info:'结束阶段开始时你可以失去1点体力然后摸两张牌。', kunfenx_info:'结束阶段开始时你可以失去1点体力然后摸两张牌。',
ol_sb_guanyu:'OL谋关羽',
ol_sb_guanyu_prefix:'OL谋',
olsbfumeng:'赋梦',
olsbfumeng_info:'一轮游戏开始时,你可以令任意张手牌的牌名视为【杀】。',
olsbguidao:'归刀',
olsbguidao_info:'出牌阶段,你可以重铸两张牌并视为使用一张【决斗】(若你本回合已发动过〖归刀〗,则此次重铸的【杀】数必须比本回合上一次发动〖归刀〗重铸的【杀】数多)。目标角色受到此牌伤害时,其须猜测你手牌中牌名为【杀】的牌数量多还是牌名不为【杀】的牌数多,若其猜错,则此【决斗】对其造成的伤害+1。',
onlyOL_yijiang1:'OL专属·将1', onlyOL_yijiang1:'OL专属·将1',
onlyOL_yijiang2:'OL专属·将2', onlyOL_yijiang2:'OL专属·将2',

View File

@ -361,6 +361,7 @@ window.noname_character_rank={
'shen_lusu', 'shen_lusu',
], ],
am:[ am:[
'clan_wuqiao',
'muludawang', 'muludawang',
'diy_caiwenji', 'diy_caiwenji',
'diy_liuyan', 'diy_liuyan',
@ -1038,6 +1039,7 @@ window.noname_character_rank={
'jsrg_weiwenzhugezhi', 'jsrg_weiwenzhugezhi',
], ],
b:[ b:[
'ol_sb_guanyu',
'liyi', 'liyi',
'diy_feishi', 'diy_feishi',
'diy_liufu', 'diy_liufu',
@ -1965,6 +1967,7 @@ window.noname_character_rank={
'xushi', 'xushi',
'machao', 'machao',
'sunce', 'sunce',
're_sunce',
're_wangyun', 're_wangyun',
'zuoci', 'zuoci',
'xuyou', 'xuyou',
@ -2111,6 +2114,7 @@ window.noname_character_rank={
'dc_sb_zhouyu', 'dc_sb_zhouyu',
], ],
rare:[ rare:[
'clan_wuqiao',
'xin_huojun', 'xin_huojun',
'muludawang', 'muludawang',
'mb_huban', 'mb_huban',
@ -2585,10 +2589,10 @@ window.noname_character_rank={
'dc_sb_lusu', 'dc_sb_lusu',
], ],
junk:[ junk:[
'ol_sb_guanyu',
'sunshao', 'sunshao',
'ol_guohuai', 'ol_guohuai',
'gongsunzan', 'gongsunzan',
're_sunce',
'chengpu', 'chengpu',
'zangba', 'zangba',
'tianfeng', 'tianfeng',

View File

@ -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; return player.countCards('h',card=>lib.skill.sbqicai.filterCardx(card,player))||event.sbqicai&&event.sbqicai.length;
}, },
filterCardx:function(card,player){ 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))); return get.type(card)=='equip'&&game.hasPlayer(target=>target!=player&&target.hasEmptySlot(get.subtype(card)));
}, },
usable:1, usable:1,
@ -699,7 +699,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
target.$gain2(cards); target.$gain2(cards);
game.delayx(); game.delayx();
} }
//player.markAuto('sbqicai',[cards[0].name]); if(get.mode()=='doudizhu') player.markAuto('sbqicai',[cards[0].name]);
target.equip(cards[0]); target.equip(cards[0]);
player.addSkill('sbqicai_gain'); player.addSkill('sbqicai_gain');
lib.skill.sbqicai.updateCounter(player,target,0); lib.skill.sbqicai.updateCounter(player,target,0);
@ -945,7 +945,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sbkanpo:{ sbkanpo:{
init:function(player){ init:function(player){
if(!player.storage.sbkanpo){ if(!player.storage.sbkanpo){
player.storage.sbkanpo=[4,[],[]]; player.storage.sbkanpo=[get.mode()=='doudizhu'?2:4,[],[]];
player.markSkill('sbkanpo'); player.markSkill('sbkanpo');
} }
}, },
@ -6342,6 +6342,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sbhuoji_info:'使命技。①使命出牌阶段限一次。你可以对一名其他角色造成1点火焰伤害然后你对所有与其势力相同的不为其的其他角色各造成1点火焰伤害。②成功准备阶段若你本局游戏已造成的火焰伤害不小于本局游戏总角色数则你失去〖火计〗和〖看破〗然后获得〖观星〗和〖空城〗。③失败使命成功前进入濒死状态。', sbhuoji_info:'使命技。①使命出牌阶段限一次。你可以对一名其他角色造成1点火焰伤害然后你对所有与其势力相同的不为其的其他角色各造成1点火焰伤害。②成功准备阶段若你本局游戏已造成的火焰伤害不小于本局游戏总角色数则你失去〖火计〗和〖看破〗然后获得〖观星〗和〖空城〗。③失败使命成功前进入濒死状态。',
sbkanpo:'看破', sbkanpo:'看破',
sbkanpo_info:'①一轮游戏开始时你清除〖看破①〗记录的牌名然后你可以依次记录任意个未于上次发动〖看破①〗记录清除过的非装备牌牌名对其他角色不可见每局游戏至多记录4个牌名。②其他角色使用你〖看破①〗记录过的牌名的牌时你可以移去一个〖看破①〗中的此牌名的记录令此牌无效然后你摸一张牌。', sbkanpo_info:'①一轮游戏开始时你清除〖看破①〗记录的牌名然后你可以依次记录任意个未于上次发动〖看破①〗记录清除过的非装备牌牌名对其他角色不可见每局游戏至多记录4个牌名。②其他角色使用你〖看破①〗记录过的牌名的牌时你可以移去一个〖看破①〗中的此牌名的记录令此牌无效然后你摸一张牌。',
sbkanpo_info_doudizhu:'①一轮游戏开始时你清除〖看破①〗记录的牌名然后你可以依次记录任意个未于上次发动〖看破①〗记录清除过的非装备牌牌名对其他角色不可见每局游戏至多记录2个牌名。②其他角色使用你〖看破①〗记录过的牌名的牌时你可以移去一个〖看破①〗中的此牌名的记录令此牌无效然后你摸一张牌。',
sbguanxing:'观星', sbguanxing:'观星',
sbguanxing_info:'①准备阶段你将所有“星”置入弃牌堆将牌堆顶的X张牌置于你的武将牌上称为“星”X为7-此前发动〖观星①〗次数的三倍且X至少为0。然后你可以将任意张“星”置于牌堆顶。②结束阶段若你未于本回合的准备阶段将“星”置于过牌堆顶你可以将任意张“星”置于牌堆顶。③你可以如手牌般使用或打出“星”。', sbguanxing_info:'①准备阶段你将所有“星”置入弃牌堆将牌堆顶的X张牌置于你的武将牌上称为“星”X为7-此前发动〖观星①〗次数的三倍且X至少为0。然后你可以将任意张“星”置于牌堆顶。②结束阶段若你未于本回合的准备阶段将“星”置于过牌堆顶你可以将任意张“星”置于牌堆顶。③你可以如手牌般使用或打出“星”。',
sbkongcheng:'空城', sbkongcheng:'空城',
@ -6351,6 +6352,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
sbqicai:'奇才', sbqicai:'奇才',
sbqicai_backup:'奇才', sbqicai_backup:'奇才',
sbqicai_info:'①出牌阶段限一次。你可以将手牌中或弃牌堆中的一张装备牌置于一名其他角色的对应装备栏,然后其获得如下效果:当其得到普通锦囊牌后,其将此牌交给你(限三张)。②你使用锦囊牌无距离限制。', sbqicai_info:'①出牌阶段限一次。你可以将手牌中或弃牌堆中的一张装备牌置于一名其他角色的对应装备栏,然后其获得如下效果:当其得到普通锦囊牌后,其将此牌交给你(限三张)。②你使用锦囊牌无距离限制。',
sbqicai_info_doudizhu:'①出牌阶段限一次。你可以将手牌中或弃牌堆中的一张装备牌置于一名其他角色的对应装备栏(每种牌名的装备牌每局游戏限选择一次),然后其获得如下效果:当其得到普通锦囊牌后,其将此牌交给你(限三张)。②你使用锦囊牌无距离限制。',
sbjizhi:'集智', sbjizhi:'集智',
sbjizhi_info:'锁定技,当你使用一张普通锦囊牌时,你摸一张牌,且此牌本回合不计入你的手牌上限。', sbjizhi_info:'锁定技,当你使用一张普通锦囊牌时,你摸一张牌,且此牌本回合不计入你的手牌上限。',
sb_guanyu:'谋关羽', sb_guanyu:'谋关羽',

View File

@ -20,6 +20,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
character:{ character:{
xia_guanyu:['male','qun',4,['twzhongyi','twchue']],
xia_liubei:['male','shu',4,['twshenyi','twxinghan']], xia_liubei:['male','shu',4,['twshenyi','twxinghan']],
xia_xiahousone:['female','qun',3,['twchengxi']], xia_xiahousone:['female','qun',3,['twchengxi']],
xia_xiahoudun:['male','qun',4,['twdanlie']], xia_xiahoudun:['male','qun',4,['twdanlie']],
@ -284,6 +285,133 @@ game.import('character',function(lib,game,ui,get,ai,_status){
}, },
}, },
skill:{ 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:{ twdanlie:{
audio:2, audio:2,
@ -15231,6 +15359,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
twshenyi_info:'每回合限一次,当你或你攻击范围内的一名角色于一回合内首次受到伤害后,你可以声明一种基本牌或锦囊牌(每种牌名限一次),然后从牌堆中将一张同名牌(若没有同名牌则改为同类型的牌)称为“侠义”置于武将牌上。若受伤角色不为你,则你可以将任意张手牌交给其,且当其失去一张你以此法交给其的牌后,你摸一张牌。', twshenyi_info:'每回合限一次,当你或你攻击范围内的一名角色于一回合内首次受到伤害后,你可以声明一种基本牌或锦囊牌(每种牌名限一次),然后从牌堆中将一张同名牌(若没有同名牌则改为同类型的牌)称为“侠义”置于武将牌上。若受伤角色不为你,则你可以将任意张手牌交给其,且当其失去一张你以此法交给其的牌后,你摸一张牌。',
twxinghan:'兴汉', twxinghan:'兴汉',
twxinghan_info:'①你的回合外或你处于濒死状态时你可以如手牌般使用或打出“侠义”牌。②准备阶段若“侠义”牌数大于存活角色数则你可以依次使用其中所有可以使用的牌。然后你获得如下效果回合结束时你弃置所有手牌并失去X点体力X为你的体力值-1且X至少为1。', 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_mobile:'海外服·稀有专属',
tw_yunchouzhi:'运筹帷幄·智', tw_yunchouzhi:'运筹帷幄·智',

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB