OL牵招
This commit is contained in:
parent
3b79b5bcd8
commit
6e4abaa784
|
@ -14146,7 +14146,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
mbaosi_info:'锁定技。当你于出牌阶段对一名攻击范围内的角色造成伤害后,你于此阶段对其使用牌无次数限制。',
|
mbaosi_info:'锁定技。当你于出牌阶段对一名攻击范围内的角色造成伤害后,你于此阶段对其使用牌无次数限制。',
|
||||||
xin_zhoutai:'手杀周泰',
|
xin_zhoutai:'手杀周泰',
|
||||||
re_yanwen:"手杀颜良文丑",
|
re_yanwen:"手杀颜良文丑",
|
||||||
qianzhao:'牵招',
|
qianzhao:'手杀牵招',
|
||||||
mbshihe:'势吓',
|
mbshihe:'势吓',
|
||||||
mbshihe_info_identity:'出牌阶段限一次。你可以与一名角色拼点。若你:赢,当其于其下回合结束前对你造成伤害时,取消之;没赢,你随机弃置一张牌。',
|
mbshihe_info_identity:'出牌阶段限一次。你可以与一名角色拼点。若你:赢,当其于其下回合结束前对你造成伤害时,取消之;没赢,你随机弃置一张牌。',
|
||||||
mbshihe_info:'出牌阶段限一次。你可以与一名角色拼点。若你:赢,当其于其下回合结束前对你和你的友方角色造成伤害时,取消之;没赢,你随机弃置一张牌。',
|
mbshihe_info:'出牌阶段限一次。你可以与一名角色拼点。若你:赢,当其于其下回合结束前对你和你的友方角色造成伤害时,取消之;没赢,你随机弃置一张牌。',
|
||||||
|
|
|
@ -1247,6 +1247,7 @@ window.noname_character_rank={
|
||||||
'jsrg_zhanghe',
|
'jsrg_zhanghe',
|
||||||
'jsrg_zoushi',
|
'jsrg_zoushi',
|
||||||
'gaoxiang',
|
'gaoxiang',
|
||||||
|
'ol_qianzhao',
|
||||||
],
|
],
|
||||||
bm:[
|
bm:[
|
||||||
'diy_xizhenxihong',
|
'diy_xizhenxihong',
|
||||||
|
|
190
character/sp.js
190
character/sp.js
|
@ -10,7 +10,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
sp_tianzhu:['niujin','hejin','hansui',"wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun","fanjiangzhangda","ahuinan","dongtuna",'ol_wenqin'],
|
sp_tianzhu:['niujin','hejin','hansui',"wutugu","yanbaihu","shamoke","panfeng","zhugedan",'huangzu','gaogan',"tadun","fanjiangzhangda","ahuinan","dongtuna",'ol_wenqin'],
|
||||||
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao","jin_guohuai"],
|
sp_nvshi:["lingju","guanyinping","zhangxingcai","mayunlu","dongbai","zhaoxiang",'ol_zhangchangpu','ol_xinxianying',"daxiaoqiao","jin_guohuai"],
|
||||||
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','zhangzhi','lushi'],
|
sp_shaowei:["simahui","zhangbao","zhanglu","zhugeguo","xujing","zhangling",'huangchengyan','zhangzhi','lushi'],
|
||||||
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'],
|
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:[],
|
||||||
|
@ -27,6 +27,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
character:{
|
character:{
|
||||||
|
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']],
|
||||||
hansui:['male','qun',4,['olniluan','olxiaoxi']],
|
hansui:['male','qun',4,['olniluan','olxiaoxi']],
|
||||||
|
@ -691,6 +692,185 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
skill:{
|
skill:{
|
||||||
|
//OL牵招
|
||||||
|
olweifu:{
|
||||||
|
audio:2,
|
||||||
|
enable:'phaseUse',
|
||||||
|
filterCard:true,
|
||||||
|
position:'he',
|
||||||
|
check:function(card){
|
||||||
|
var player=_status.event.player;
|
||||||
|
return (5-get.value(card))/Math.pow(Math.max(0.1,player.getUseValue(card)),0.33);
|
||||||
|
},
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.judge(card=>{
|
||||||
|
var evt=_status.event.getParent();
|
||||||
|
var cardx=evt.cards[0];
|
||||||
|
if(get.type2(card)==get.type2(cardx)) return 0.5;
|
||||||
|
return 0.1;
|
||||||
|
}).set('callback',function(){
|
||||||
|
var card=event.judgeResult.card;
|
||||||
|
player.addTempSkill('olweifu_clear');
|
||||||
|
player.addTempSkill('olweifu_add');
|
||||||
|
if(!get.is.object(player.storage.olweifu_add)) player.storage.olweifu_add={};
|
||||||
|
var type=get.type2(card,player);
|
||||||
|
if(typeof player.storage.olweifu_add[type]!='number') player.storage.olweifu_add[type]=0;
|
||||||
|
player.storage.olweifu_add[type]++;
|
||||||
|
player.markSkill('olweifu_add');
|
||||||
|
if(type==get.type2(event.getParent(2).cards[0],player)) player.draw();
|
||||||
|
}).set('judge2',result=>result.bool);
|
||||||
|
},
|
||||||
|
ai:{
|
||||||
|
order:7,
|
||||||
|
result:{
|
||||||
|
player:function(player){
|
||||||
|
return player.hasCard(card=>{
|
||||||
|
var type=get.type2(card);
|
||||||
|
if(type=='equip') return false;
|
||||||
|
return player.hasUseTarget(card)&&player.getUseValue(card)>5&&game.countPlayer(current=>{
|
||||||
|
return lib.filter.targetEnabled2(card,player,current)&&get.effect(current,card,player,player)>0;
|
||||||
|
})+1>(get.is.object(player.storage.olweifu_add)?(player.storage.olweifu_add[type]||0):0);
|
||||||
|
},'hs')?1:0;
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
subSkill:{
|
||||||
|
clear:{
|
||||||
|
trigger:{player:'useCard1'},
|
||||||
|
filter:function(event,player){
|
||||||
|
var type=get.type2(event.card);
|
||||||
|
if(get.is.object(player.storage.olweifu_add)&&typeof player.storage.olweifu_add[type]=='number') return true;
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
silent:true,
|
||||||
|
firstDo:true,
|
||||||
|
charlotte:true,
|
||||||
|
content:function(){
|
||||||
|
var type=get.type2(trigger.card);
|
||||||
|
var num=player.storage.olweifu_add[type];
|
||||||
|
delete player.storage.olweifu_add[type];
|
||||||
|
if(get.is.empty(player.storage.olweifu_add)){
|
||||||
|
delete player.storage.olweifu_add;
|
||||||
|
player.unmarkSkill('olweifu_add');
|
||||||
|
}
|
||||||
|
trigger._olweifu_clear=num;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
add:{
|
||||||
|
trigger:{player:'useCard2'},
|
||||||
|
filter:function(event,player){
|
||||||
|
if(!event._olweifu_clear) return false;
|
||||||
|
var info=get.info(event.card);
|
||||||
|
if(info.allowMultiple==false) return false;
|
||||||
|
if(event.targets&&!info.multitarget){
|
||||||
|
if(game.hasPlayer(current=>{
|
||||||
|
return !event.targets.contains(current)&&lib.filter.targetEnabled2(event.card,player,current);
|
||||||
|
})) return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
onremove:true,
|
||||||
|
charlotte:true,
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
var num=trigger._olweifu_clear;
|
||||||
|
player.chooseTarget(get.prompt('olweifu'),'为'+get.translation(trigger.card)+'额外指定'+get.cnNumber(num)+'个目标。',[1,num],(card,player,target)=>{
|
||||||
|
return !_status.event.sourcex.contains(target)&&lib.filter.targetEnabled2(_status.event.card,player,target);
|
||||||
|
}).set('sourcex',trigger.targets).set('ai',function(target){
|
||||||
|
var player=_status.event.player;
|
||||||
|
return get.effect(target,_status.event.card,player,player);
|
||||||
|
}).set('card',trigger.card);
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var targets=result.targets;
|
||||||
|
player.logSkill('olweifu_add',targets);
|
||||||
|
trigger.targets.addArray(targets);
|
||||||
|
if(!event.isMine()&&!event.isOnline()) game.delayex();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
intro:{
|
||||||
|
markcount:()=>0,
|
||||||
|
content:(storage,player)=>{
|
||||||
|
if(!get.is.object(storage)) return;
|
||||||
|
var str='使用下一张以下类型的牌无距离限制,且可以额外指定对应数量个目标:';
|
||||||
|
for(var type in storage){
|
||||||
|
str+='<li>'+get.translation(type)+'牌:+'+storage[type];
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mod:{
|
||||||
|
targetInRange:(card,player)=>{
|
||||||
|
var type=get.type2(card);
|
||||||
|
if(get.is.object(player.storage.olweifu_add)&&typeof player.storage.olweifu_add[type]=='number') return true;
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
olkuansai:{
|
||||||
|
audio:2,
|
||||||
|
trigger:{
|
||||||
|
global:'useCardToPlayered',
|
||||||
|
},
|
||||||
|
filter:function(event,player){
|
||||||
|
return event.isFirstTarget&&event.targets.length>player.getHp();
|
||||||
|
},
|
||||||
|
direct:true,
|
||||||
|
content:function(){
|
||||||
|
'step 0'
|
||||||
|
player.chooseTarget(get.prompt('olkuansai'),'令其中一个目标选择一项:1.交给你一张牌;2.令你回复1点体力。',(card,player,target)=>{
|
||||||
|
return _status.event.targets.contains(target);
|
||||||
|
}).set('targets',trigger.targets).set('ai',target=>{
|
||||||
|
var player=_status.event.player;
|
||||||
|
var att=get.attitude(player,target);
|
||||||
|
if(att>0) return 1;
|
||||||
|
return (1-att)/Math.sqrt(1+target.countCards('he'));
|
||||||
|
});
|
||||||
|
'step 1'
|
||||||
|
if(result.bool){
|
||||||
|
var target=result.targets[0];
|
||||||
|
event.target=target;
|
||||||
|
player.logSkill('olkuansai',target);
|
||||||
|
var position='e';
|
||||||
|
if(player!=target) position+='h';
|
||||||
|
if(!target.countCards(position)) event._result={bool:false};
|
||||||
|
else target.chooseCard(get.translation(player)+'对你发动了【款塞】','请交给其一张牌;或点击“取消”令其回复1点体力。',position).set('ai',card=>{
|
||||||
|
if(_status.event.recover) return 0;
|
||||||
|
var target=_status.event.player,player=_status.event.getParent().player;
|
||||||
|
if(get.attitude(target,player)>0){
|
||||||
|
return get.value(card,target)-get.value(card,player);
|
||||||
|
}
|
||||||
|
if(get.tag(card,'recover')) return -1;
|
||||||
|
return 6.5-get.value(card);
|
||||||
|
}).set('recover',function(){
|
||||||
|
var recoverEff=get.recoverEffect(player,target,target);
|
||||||
|
var att=get.attitude(target,player);
|
||||||
|
if(att<0){
|
||||||
|
if(recoverEff>=0) return true;
|
||||||
|
if(target.hasCard(card=>{
|
||||||
|
return get.value(card)<6.5&&!get.tag(card,'recover')||get.value(card)<=0.05;
|
||||||
|
},position)) return false;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(recoverEff>0) return true;
|
||||||
|
if(target.hasCard(card=>{
|
||||||
|
return get.value(card,target)<get.value(card,player);
|
||||||
|
},position)) return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}());
|
||||||
|
}
|
||||||
|
else event.finish();
|
||||||
|
'step 2'
|
||||||
|
if(result.bool){
|
||||||
|
target.give(result.cards,player);
|
||||||
|
}
|
||||||
|
else player.recover(target);
|
||||||
|
},
|
||||||
|
},
|
||||||
//牛金
|
//牛金
|
||||||
olcuorui:{
|
olcuorui:{
|
||||||
audio:'cuorui',
|
audio:'cuorui',
|
||||||
|
@ -23288,6 +23468,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
ganfuren:['dc_ganfuren','ganfuren'],
|
ganfuren:['dc_ganfuren','ganfuren'],
|
||||||
wenqin:['wenqin','pe_wenqin'],
|
wenqin:['wenqin','pe_wenqin'],
|
||||||
zhouqun:['ol_zhouqun','zhouqun'],
|
zhouqun:['ol_zhouqun','zhouqun'],
|
||||||
|
qianzhao:['ol_qianzhao','qianzhao'],
|
||||||
},
|
},
|
||||||
translate:{
|
translate:{
|
||||||
"xinfu_lingren":"凌人",
|
"xinfu_lingren":"凌人",
|
||||||
|
@ -24404,7 +24585,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
||||||
olniluan:'逆乱',
|
olniluan:'逆乱',
|
||||||
olniluan_info:'体力值大于你的其他角色的结束阶段,若其本回合内使用过【杀】,则你可以将一张黑色牌当作【杀】对其使用(无距离限制)。',
|
olniluan_info:'体力值大于你的其他角色的结束阶段,若其本回合内使用过【杀】,则你可以将一张黑色牌当作【杀】对其使用(无距离限制)。',
|
||||||
olxiaoxi:'骁袭',
|
olxiaoxi:'骁袭',
|
||||||
olxiaoxi_info:'新的一轮开始时,你可以视为使用一张无距离限制的【杀】。',
|
olxiaoxi_info:'一轮游戏开始时,你可以视为使用一张无距离限制的【杀】。',
|
||||||
|
ol_qianzhao:'牵招',
|
||||||
|
olweifu:'威抚',
|
||||||
|
olweifu_info:'出牌阶段,你可以弃置一张牌并判定。你本回合下次使用与结果类型相同的牌无距离限制,且可以额外指定一个目标。若你弃置的牌与判定牌类型相同,你摸一张牌。',
|
||||||
|
olkuansai:'款塞',
|
||||||
|
olkuansai_info:'当一张牌指定第一个目标后,若目标数大于你的体力值,你可以令其中一个目标选择一项:1.交给你一张牌;2.令你回复1点体力。',
|
||||||
|
|
||||||
sp_tianji:'天极·皇室宗亲',
|
sp_tianji:'天极·皇室宗亲',
|
||||||
sp_sibi:'四弼·辅国文曲',
|
sp_sibi:'四弼·辅国文曲',
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 122 KiB |
Loading…
Reference in New Issue