OL彭羕,陆郁生
This commit is contained in:
parent
76f780041c
commit
2d6c683fb2
300
character/sp.js
300
character/sp.js
|
@ -13,7 +13,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_huben:['duanjiong','ol_mengda',"caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian','ol_huban','haopu','ol_qianzhao'],
|
sp_huben:['duanjiong','ol_mengda',"caohong","xiahouba","zhugeke","zumao","wenpin","litong","mazhong","heqi","quyi","luzhi","zangba","yuejin","dingfeng","wuyan","ol_zhuling","tianyu","huojun",'zhaoyǎn','dengzhong','ol_furong','macheng','ol_zhangyì','ol_zhujun','maxiumatie','luoxian','ol_huban','haopu','ol_qianzhao'],
|
||||||
sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'],
|
sp_liesi:['mizhu','weizi','ol_liuba','zhangshiping'],
|
||||||
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
sp_default:["sp_diaochan","sp_zhaoyun","sp_sunshangxiang","sp_caoren","sp_jiangwei","sp_machao","sp_caiwenji","jsp_guanyu","jsp_huangyueying","sp_pangde","sp_jiaxu","yuanshu",'sp_zhangliao','sp_ol_zhanghe','sp_menghuo'],
|
||||||
sp_waitforsort:[],
|
sp_waitforsort:['ol_pengyang','ol_luyusheng'],
|
||||||
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
sp_qifu:["caoying",'panshu',"caochun","yuantanyuanshang",'caoshuang','wolongfengchu','guansuo','baosanniang','fengfangnv','jin_zhouchu'],
|
||||||
sp_wanglang:['ol_wanglang','ol_puyuan','ol_zhouqun'],
|
sp_wanglang:['ol_wanglang','ol_puyuan','ol_zhouqun'],
|
||||||
sp_zhongdan:["cuiyan","huangfusong"],
|
sp_zhongdan:["cuiyan","huangfusong"],
|
||||||
|
@ -27,6 +27,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
ol_luyusheng:['female','wu',3,['olcangxin','skill_luyusheng_B']],
|
||||||
|
ol_pengyang:['male','shu',3,['olqifan','oltuishi','nzry_cunmu']],
|
||||||
ol_qianzhao:['male','wei',4,['olweifu','olkuansai']],
|
ol_qianzhao:['male','wei',4,['olweifu','olkuansai']],
|
||||||
niujin:['male','wei',4,['olcuorui','liewei']],
|
niujin:['male','wei',4,['olcuorui','liewei']],
|
||||||
hejin:['male','qun',4,['olmouzhu','olyanhuo']],
|
hejin:['male','qun',4,['olmouzhu','olyanhuo']],
|
||||||
|
@ -692,6 +694,292 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//OL陆郁生
|
||||||
|
olcangxin:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'damageBegin4'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return ui.cardPile.childNodes.length>0;
|
||||||
|
},
|
||||||
|
check:function(event,player){
|
||||||
|
var target=event.source;
|
||||||
|
return get.damageEffect(player,target,target);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var cards=[],cardx=Array.from(ui.cardPile.childNodes);
|
||||||
|
for(var i=cardx.length-1;i>=0;i--){
|
||||||
|
cards.push(cardx[i]);
|
||||||
|
if(cards.length>=3) break;
|
||||||
|
}
|
||||||
|
if(!cards.length){
|
||||||
|
event.finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
player.chooseButton(['###藏心:请选择要弃置的牌###若以此法弃置了红桃牌,则防止此伤害',cards],[1,cards.length],true).set('ai',function(button){
|
||||||
|
if(get.suit(button.link,false)!='heart') return 1;
|
||||||
|
if(!ui.selected.buttons.some(but=>get.suit(but.link,false)=='heart')) return 1;
|
||||||
|
return 0;
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
player.$throw(result.links,1000);
|
||||||
|
game.cardsDiscard(result.links);
|
||||||
|
if(result.links.some(card=>get.suit(card,false)=='heart')) trigger.cancel();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
group:'olcangxin_yingzi',
|
||||||
|
subSkill:{
|
||||||
|
yingzi:{
|
||||||
|
audio:'olcangxin',
|
||||||
|
trigger:{player:'phaseDrawBegin2'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.numFixed) return false;
|
||||||
|
var cards=[],cardx=Array.from(ui.cardPile.childNodes);
|
||||||
|
for(var i=cardx.length-1;i>=0;i--){
|
||||||
|
cards.push(cardx[i]);
|
||||||
|
if(cards.length>=3) break;
|
||||||
|
}
|
||||||
|
return cards.some(card=>get.suit(card,false)=='heart');
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
locked:false,
|
||||||
|
content:function(){
|
||||||
|
var cards=[],cardx=Array.from(ui.cardPile.childNodes);
|
||||||
|
for(var i=cardx.length-1;i>=0;i--){
|
||||||
|
cards.push(cardx[i]);
|
||||||
|
if(cards.length>=3) break;
|
||||||
|
}
|
||||||
|
cards=cards.filter(card=>get.suit(card,false)=='heart');
|
||||||
|
trigger.num+=cards.length;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
skill_luyusheng_B:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{global:'phaseDiscardBegin'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.player==player) return false;
|
||||||
|
return event.player.isDamaged()&&event.player.countCards('h')!=event.player.getHandcardLimit();
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var str=get.translation(trigger.player);
|
||||||
|
player.chooseControl('弃牌,+1','摸牌,-1','cancel2').set('choiceList',[
|
||||||
|
'令'+str+'弃置一张牌,且其本回合手牌上限+1',
|
||||||
|
'令'+str+'摸一张牌,且其本回合手牌上限-1',
|
||||||
|
]).set('ai',function(){
|
||||||
|
var player=_status.event.player;
|
||||||
|
var trigger=_status.event.getTrigger();
|
||||||
|
var target=trigger.player;
|
||||||
|
var num1=target.countCards('h'),num2=target.getHandcardLimit();
|
||||||
|
switch(get.sgn(get.attitude(player,target))){
|
||||||
|
case 0:
|
||||||
|
return 2;
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
if(num1-1>=num2) return 0;
|
||||||
|
if(num1+1<=num2) return 1;
|
||||||
|
return 2;
|
||||||
|
break;
|
||||||
|
case -1:
|
||||||
|
if(num1-2<=num2) return 0;
|
||||||
|
if(num1+3>=num2) return 1;
|
||||||
|
return 2;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}).set('prompt',get.prompt('skill_luyusheng_B',trigger.player));
|
||||||
|
'step 1'
|
||||||
|
if(result.index!=2){
|
||||||
|
player.logSkill('skill_luyusheng_B',trigger.player);
|
||||||
|
if(result.index==0){
|
||||||
|
trigger.player.chooseToDiscard('he',true).set('ai',card=>{
|
||||||
|
if(get.position(card)=='e') return -get.value(card);
|
||||||
|
return 1/(get.value(card)||0.5);
|
||||||
|
});
|
||||||
|
trigger.player.addTempSkill('skill_luyusheng_B_+');
|
||||||
|
trigger.player.addMark('skill_luyusheng_B_+',1,false);
|
||||||
|
}
|
||||||
|
if(result.index==1){
|
||||||
|
trigger.player.draw();
|
||||||
|
trigger.player.addTempSkill('skill_luyusheng_B_-');
|
||||||
|
trigger.player.addMark('skill_luyusheng_B_-',1,false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
'+':{
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
marktext:'+',
|
||||||
|
intro:{content:'手牌上限+#'},
|
||||||
|
mod:{
|
||||||
|
maxHandcard:function(player,num){
|
||||||
|
return num+player.countMark('skill_luyusheng_B_+');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
'-':{
|
||||||
|
charlotte:true,
|
||||||
|
onremove:true,
|
||||||
|
marktext:'-',
|
||||||
|
intro:{content:'手牌上限-#'},
|
||||||
|
mod:{
|
||||||
|
maxHandcard:function(player,num){
|
||||||
|
return num-player.countMark('skill_luyusheng_B_-');
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
//OL彭羕
|
||||||
|
olqifan:{
|
||||||
|
audio:2,
|
||||||
|
enable:'chooseToUse',
|
||||||
|
hiddenCard:function(player,name){
|
||||||
|
if(lib.inpile.contains(name)&&(!player.hasSkill('oltuishi')||name!='wuxie')) return true;
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(event.responded||event.olqifan) return false;
|
||||||
|
for(var i of lib.inpile){
|
||||||
|
if(event.filterCard({name:i},player,event)) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
delay:false,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var evt=event.getParent(2);
|
||||||
|
evt.set('olqifan',true);
|
||||||
|
var cards=get.bottomCards(1+player.getStorage('olqifan').length);
|
||||||
|
for(var i=cards.length-1;i>=0;i--){
|
||||||
|
ui.cardPile.appendChild(cards[i]);
|
||||||
|
}
|
||||||
|
var aozhan=player.hasSkill('aozhan');
|
||||||
|
player.chooseButton(['器翻:请选择要使用的牌',cards]).set('filterButton',function(button){
|
||||||
|
return _status.event.cards.contains(button.link);
|
||||||
|
}).set('cards',cards.filter(function(card){
|
||||||
|
if(aozhan&&card.name=='tao'){
|
||||||
|
return evt.filterCard({
|
||||||
|
name:'sha',isCard:true,cards:[card],
|
||||||
|
},evt.player,evt)||evt.filterCard({
|
||||||
|
name:'shan',isCard:true,cards:[card],
|
||||||
|
},evt.player,evt);
|
||||||
|
}
|
||||||
|
return evt.filterCard(card,evt.player,evt);
|
||||||
|
})).set('ai',function(button){
|
||||||
|
var evt=_status.event.getParent(3);
|
||||||
|
if(evt&&evt.ai){
|
||||||
|
var tmp=_status.event;
|
||||||
|
_status.event=evt;
|
||||||
|
var result=(evt.ai||event.ai1)(button.link,_status.event.player,evt);
|
||||||
|
_status.event=tmp;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
var evt=event.getParent(2);
|
||||||
|
if(result.bool&&result.links&&result.links.length){
|
||||||
|
var name=result.links[0].name,aozhan=(player.hasSkill('aozhan')&&name=='tao');
|
||||||
|
if(aozhan){
|
||||||
|
name=evt.filterCard({
|
||||||
|
name:'sha',isCard:true,cards:[card],
|
||||||
|
},evt.player,evt)?'sha':'shan';
|
||||||
|
}
|
||||||
|
if(evt.name=='chooseToUse'){
|
||||||
|
game.broadcastAll(function(result,name){
|
||||||
|
lib.skill.olqifan_backup.viewAs={name:name,cards:[result],isCard:true};
|
||||||
|
lib.skill.olqifan_backup.prompt='请选择'+get.translation(result)+'的目标';
|
||||||
|
},result.links[0],name);
|
||||||
|
evt.set('_backupevent','olqifan_backup');
|
||||||
|
evt.backup('olqifan_backup');
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
delete evt.result.skill;
|
||||||
|
delete evt.result.used;
|
||||||
|
evt.result.card=get.autoViewAs(result.links[0]);
|
||||||
|
if(aozhan) evt.result.card.name=name;
|
||||||
|
evt.result.cards=[result.links[0]];
|
||||||
|
evt.redo();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
evt.goto(0);
|
||||||
|
},
|
||||||
|
intro:{content:'已使用$牌'},
|
||||||
|
ai:{
|
||||||
|
effect:{
|
||||||
|
target:function(card,player,target,effect){
|
||||||
|
if(get.tag(card,'respondShan')) return 0.7;
|
||||||
|
if(get.tag(card,'respondSha')) return 0.7;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
order:11,
|
||||||
|
respondShan:true,
|
||||||
|
respondSha:true,
|
||||||
|
result:{
|
||||||
|
player:function(player){
|
||||||
|
if(_status.event.dying) return get.attitude(player,_status.event.dying);
|
||||||
|
return 1;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
olqifan_backup:{
|
||||||
|
sourceSkill:'olqifan',
|
||||||
|
precontent:function(){
|
||||||
|
delete event.result.skill;
|
||||||
|
var name=event.result.card.name;
|
||||||
|
event.result.cards=event.result.card.cards;
|
||||||
|
event.result.card=get.autoViewAs(event.result.cards[0]);
|
||||||
|
event.result.card.name=name;
|
||||||
|
player.markAuto('olqifan',[get.type2(name)]);
|
||||||
|
var next=game.createEvent('twmouli_update');
|
||||||
|
next.player=player;
|
||||||
|
event.next.remove(next);
|
||||||
|
event.getParent().after.push(next);
|
||||||
|
next.setContent(function(){
|
||||||
|
game.updateRoundNumber();
|
||||||
|
var num=player.getStorage('olqifan').length;
|
||||||
|
if(num>0) player.discard(player.getCards('j')).discarder=player;
|
||||||
|
if(num>1) player.discard(player.getCards('e')).discarder=player;
|
||||||
|
if(num>2) player.discard(player.getCards('h')).discarder=player;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
filterCard:()=>false,
|
||||||
|
selectCard:-1,
|
||||||
|
},
|
||||||
|
oltuishi:{
|
||||||
|
mod:{
|
||||||
|
cardEnabled:function(card,player){
|
||||||
|
if(get.name(card,player)=='wuxie') return false;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
audio:2,
|
||||||
|
trigger:{player:'useCardAfter'},
|
||||||
|
filter:function(event,player){
|
||||||
|
return typeof get.number(event.card,player)=='number'&&[1,11,12,13].contains(get.number(event.card,player));
|
||||||
|
},
|
||||||
|
forced:true,
|
||||||
|
content:function(){
|
||||||
|
player.draw(2);
|
||||||
|
player.addTempSkill('oltuishi_buff',{player:'useCard1'});
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
buff:{
|
||||||
|
charlotte:true,
|
||||||
|
mark:true,
|
||||||
|
intro:{content:'使用下一张牌无距离和次数限制'},
|
||||||
|
mod:{
|
||||||
|
cardUsable:()=>Infinity,
|
||||||
|
targetInRange:()=>true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
//OL牵招
|
//OL牵招
|
||||||
olweifu:{
|
olweifu:{
|
||||||
audio:2,
|
audio:2,
|
||||||
|
@ -24598,6 +24886,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
olweifu_info:'出牌阶段,你可以弃置一张牌并判定。你本回合下次使用与结果类型相同的牌无距离限制,且可以额外指定一个目标。若你弃置的牌与判定牌类型相同,你摸一张牌。',
|
olweifu_info:'出牌阶段,你可以弃置一张牌并判定。你本回合下次使用与结果类型相同的牌无距离限制,且可以额外指定一个目标。若你弃置的牌与判定牌类型相同,你摸一张牌。',
|
||||||
olkuansai:'款塞',
|
olkuansai:'款塞',
|
||||||
olkuansai_info:'当一张牌指定第一个目标后,若目标数大于你的体力值,你可以令其中一个目标选择一项:1.交给你一张牌;2.令你回复1点体力。',
|
olkuansai_info:'当一张牌指定第一个目标后,若目标数大于你的体力值,你可以令其中一个目标选择一项:1.交给你一张牌;2.令你回复1点体力。',
|
||||||
|
ol_pengyang:'彭羕',
|
||||||
|
olqifan:'器翻',
|
||||||
|
olqifan_info:'当你需要使用牌时,你可以观看牌堆底的X+1张牌并使用其中的牌,此牌结算完毕后,你依次弃置以下X个区域的所有牌:1.判定区;2.装备区;3.手牌区(X为你以此法使用过的牌的类别数)。',
|
||||||
|
oltuishi:'侻失',
|
||||||
|
oltuishi_info:'锁定技。①你不能使用【无懈可击】。②当你使用点数为字母的牌结算完毕后,你使用下一张牌无距离和次数限制。',
|
||||||
|
ol_luyusheng:'OL陆郁生',
|
||||||
|
olcangxin:'藏心',
|
||||||
|
olcangxin_info:'①当你受到伤害时,你可以观看牌堆底的三张牌并弃置其中任意张牌,若你以此法弃置了红桃牌,则防止此伤害。②摸牌阶段,你多摸X张牌(X为牌堆底前三张牌中红桃牌的数量)。',
|
||||||
|
skill_luyusheng_B:'技能',
|
||||||
|
skill_luyusheng_B_info:'其他角色的弃牌阶段开始时,若其已受伤且其手牌数不等于其体力上限,则你可以选择一项:①令其弃置一张牌,其本回合手牌上限+1;②令其摸一张牌,其本回合手牌上限-1。',
|
||||||
|
|
||||||
sp_tianji:'天极·皇室宗亲',
|
sp_tianji:'天极·皇室宗亲',
|
||||||
sp_sibi:'四弼·辅国文曲',
|
sp_sibi:'四弼·辅国文曲',
|
||||||
|
|
Loading…
Reference in New Issue