族吴乔、OL谋关羽
This commit is contained in:
parent
6208ddb0f2
commit
c8ce3a5b4f
|
@ -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',
|
||||
|
|
Loading…
Reference in New Issue