update
This commit is contained in:
parent
6eb57eb0ec
commit
fbd3fb9bf1
|
@ -222,12 +222,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
target:target,
|
||||
card:card,
|
||||
},true)) return false;
|
||||
if(player.hasSkill('jueqing')||target.hasSkill('gangzhi')||target.hasSkill('gangzhi')) return false;
|
||||
if(player.hasSkill('jueqing')||player.hasSkill('gangzhi')||target.hasSkill('gangzhi')) return false;
|
||||
return true;
|
||||
},
|
||||
basic:{
|
||||
useful:[5,1],
|
||||
value:[5,1],
|
||||
useful:[5,3,1],
|
||||
value:[5,3,1],
|
||||
},
|
||||
order:function(item,player){
|
||||
if(player.hasSkillTag('presha',true,null,true)) return 10;
|
||||
|
@ -293,8 +293,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
shacopy:{
|
||||
ai:{
|
||||
basic:{
|
||||
useful:[5,1],
|
||||
value:[5,1],
|
||||
useful:[5,3,1],
|
||||
value:[5,3,1],
|
||||
},
|
||||
order:3,
|
||||
result:{
|
||||
|
@ -357,8 +357,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
order:3,
|
||||
basic:{
|
||||
useful:[7,2],
|
||||
value:[7,2],
|
||||
useful:[7,5.1,2],
|
||||
value:[7,5.1,2],
|
||||
},
|
||||
result:{player:1},
|
||||
//expose:0.2
|
||||
|
@ -389,8 +389,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(player.hasSkillTag('pretao')) return 5;
|
||||
return 2;
|
||||
},
|
||||
useful:[8,6.5,5,4],
|
||||
value:[8,6.5,5,4],
|
||||
useful:[6.5,4,3,2],
|
||||
value:[6.5,4,3,2],
|
||||
},
|
||||
result:{
|
||||
target:2,
|
||||
|
@ -800,7 +800,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
basic:{
|
||||
order:3,
|
||||
useful:1,
|
||||
useful:0.5,
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
|
@ -848,7 +848,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
return 11;
|
||||
},
|
||||
useful:[3,1],
|
||||
value:0
|
||||
value:0,
|
||||
},
|
||||
result:{
|
||||
target:function(player,target){
|
||||
|
@ -886,7 +886,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(get.damageEffect(evt.target,evt.player,evt.target)>=0) return 0;
|
||||
if(evt.player.hasSkillTag('notricksource')) return 0;
|
||||
if(evt.target.hasSkillTag('notrick')) return 0;
|
||||
return 11-get.value(card);
|
||||
return get.order(card);
|
||||
});
|
||||
next.autochoose=lib.filter.autoRespondSha;
|
||||
}
|
||||
|
@ -964,7 +964,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(evt.target.hasSkillTag('noShan')){
|
||||
return -1;
|
||||
}
|
||||
return 11-get.value(card);
|
||||
return get.order(card);
|
||||
});
|
||||
next.autochoose=lib.filter.autoRespondShan;
|
||||
}
|
||||
|
@ -1101,14 +1101,14 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
if(event.player==target){
|
||||
if(player.hasSkill('naman')) return -1;
|
||||
if(get.attitude(target,player)<0||event.player.hp<=1){
|
||||
return get.unuseful2(card)
|
||||
return get.order(card);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
else{
|
||||
if(target.hasSkill('naman')) return -1;
|
||||
if(get.attitude(player,target)<0||event.player.hp<=1){
|
||||
return get.unuseful2(card)
|
||||
return get.order(card);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
@ -1320,7 +1320,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
ai:{
|
||||
basic:{
|
||||
order:9,
|
||||
useful:1,
|
||||
useful:5,
|
||||
value:5,
|
||||
},
|
||||
yingbian:function(card,player,targets,viewer){
|
||||
|
@ -1445,8 +1445,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){
|
|||
type:'trick',
|
||||
ai:{
|
||||
basic:{
|
||||
useful:[6,4],
|
||||
value:[6,4],
|
||||
useful:[6,4,3],
|
||||
value:[6,4,3],
|
||||
},
|
||||
result:{player:1},
|
||||
expose:0.2
|
||||
|
|
|
@ -11550,7 +11550,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinpi:['xinpi','sp_xinpi'],
|
||||
duyu:['duyu','sp_duyu'],
|
||||
zhangwen:['sp_zhangwen','zhangwen'],
|
||||
//bianfuren:['sp_bianfuren','bianfuren'],
|
||||
bianfuren:['bianfuren','sp_bianfuren'],
|
||||
},
|
||||
translate:{
|
||||
liuzan:'手杀留赞',
|
||||
|
|
|
@ -698,6 +698,8 @@ window.noname_character_rank={
|
|||
'xin_zhonghui',
|
||||
'jiachong',
|
||||
'wuban',
|
||||
'tw_zhaoxiang',
|
||||
'ol_lusu',
|
||||
],
|
||||
b:[
|
||||
'diy_feishi',
|
||||
|
@ -888,6 +890,7 @@ window.noname_character_rank={
|
|||
're_dongbai',
|
||||
'xin_guyong',
|
||||
'duosidawang',
|
||||
're_jiaxu',
|
||||
],
|
||||
bm:[
|
||||
'diy_xizhenxihong',
|
||||
|
@ -1427,6 +1430,7 @@ window.noname_character_rank={
|
|||
'key_kotomi',
|
||||
'zhongyan',
|
||||
'kaisa',
|
||||
'tw_zhaoxiang',
|
||||
],
|
||||
rare:[
|
||||
'pal_shenqishuang',
|
||||
|
@ -1726,6 +1730,7 @@ window.noname_character_rank={
|
|||
'zhangzhongjing',
|
||||
'xin_zhonghui',
|
||||
'jiachong',
|
||||
'ol_lusu',
|
||||
],
|
||||
junk:[
|
||||
'sunshao',
|
||||
|
|
|
@ -7,7 +7,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
refresh_standard:["re_caocao","re_simayi","re_guojia","re_lidian","re_zhangliao","re_xuzhu","re_xiahoudun","re_zhangfei","re_zhaoyun","re_guanyu","re_machao","re_xushu","re_zhouyu","re_lvmeng","re_ganning","re_luxun","re_daqiao","re_huanggai","re_lvbu","re_huatuo","re_liubei","re_diaochan","re_huangyueying","re_sunquan","re_sunshangxiang","re_zhenji","re_zhugeliang","re_huaxiong",'re_gongsunzan'],
|
||||
refresh_feng:['caoren','ol_xiahouyuan','re_huangzhong','ol_weiyan','ol_xiaoqiao','zhoutai','re_zhangjiao','xin_yuji'],
|
||||
refresh_huo:["ol_sp_zhugeliang","re_xunyu","re_dianwei","re_yanwen","ol_pangtong","ol_yuanshao","ol_pangde","re_taishici"],
|
||||
refresh_lin:['re_menghuo','ol_sunjian','re_caopi','re_xuhuang','ol_dongzhuo','ol_zhurong','re_jiaxu'],
|
||||
refresh_lin:['re_menghuo','ol_sunjian','re_caopi','re_xuhuang','ol_dongzhuo','ol_zhurong','re_jiaxu','ol_lusu'],
|
||||
refresh_shan:['ol_jiangwei','re_caiwenji','ol_liushan','re_zhangzhang','re_zuoci','re_sunce','ol_dengai'],
|
||||
refresh_yijiang1:['re_wuguotai','re_gaoshun','re_caozhi','yujin_yujin','re_masu','xin_xusheng','re_fazheng','xin_lingtong','re_zhangchunhua'],
|
||||
refresh_yijiang2:['old_madai','wangyi','guanzhang','xin_handang','xin_zhonghui','re_liaohua','re_chengpu','re_caozhang','re_bulianshi','xin_liubiao'],
|
||||
|
@ -18,7 +18,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
connect:true,
|
||||
character:{
|
||||
re_jiaxu:['male','qun',3,['rewansha','reluanwu','reweimu'],['unseen']],
|
||||
ol_lusu:['male','wu',3,['olhaoshi','oldimeng']],
|
||||
re_jiaxu:['male','qun',3,['rewansha','luanwu','reweimu']],
|
||||
re_guyong:['male','wu',3,['reshenxing','rebingyi']],
|
||||
xin_zhonghui:['male','wei',4,['xinquanji','xinzili']],
|
||||
re_caifuren:['female','qun',3,['reqieting','rexianzhou']],
|
||||
|
@ -138,6 +139,170 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
re_xushu:['zhaoyun','sp_zhugeliang'],
|
||||
},
|
||||
skill:{
|
||||
//鲁肃
|
||||
olhaoshi:{
|
||||
trigger:{player:'phaseDrawBegin2'},
|
||||
filter:function(event,player){
|
||||
return !event.numFixed;
|
||||
},
|
||||
check:function(event,player){
|
||||
return (player.countCards('h')+2+event.num)<=5||game.hasPlayer(function(target){
|
||||
return !game.hasPlayer(function(current){
|
||||
return current!=player&¤t!=target&¤t.countCards('h')<target.countCards('h');
|
||||
})&&get.attitude(player,target)>0;
|
||||
});
|
||||
},
|
||||
content:function(){
|
||||
trigger.num+=2;
|
||||
player.addTempSkill('olhaoshi_give','phaseDrawAfter');
|
||||
},
|
||||
subSkill:{
|
||||
give:{
|
||||
trigger:{player:'phaseDrawEnd'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
popup:false,
|
||||
filter:function(event,player){
|
||||
return player.countCards('h')>5;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
var targets=game.filterPlayer(function(target){
|
||||
return !game.hasPlayer(function(current){
|
||||
return current!=player&¤t!=target&¤t.countCards('h')<target.countCards('h');
|
||||
});
|
||||
}),num=Math.floor(player.countCards('h')/2);
|
||||
player.chooseCardTarget({
|
||||
position:'h',
|
||||
filterCard:true,
|
||||
filterTarget:function(card,player,target){
|
||||
return _status.event.targets.contains(target);
|
||||
},
|
||||
targets:targets,
|
||||
selectTarget:targets.length==1?-1:1,
|
||||
selectCard:num,
|
||||
prompt:'将'+get.cnNumber(num)+'张手牌交给一名手牌数最少的其他角色',
|
||||
ai1:function(card){
|
||||
var goon=false,player=_status.event.player;
|
||||
for(var i of _status.event.targets){
|
||||
if(get.attitude(i,target)>0&&get.attitude(target,i)>0) goon=true;break;
|
||||
}
|
||||
if(goon){
|
||||
if(!player.hasValueTarget(card)||card.name=='sha'&&player.countCards('h',function(cardx){
|
||||
return cardx.name=='sha'&&!ui.selected.cards.contains(cardx);
|
||||
})>player.getCardUsable('sha')) return 2;
|
||||
return Math.max(2,get.value(card)/4);
|
||||
}
|
||||
return 1/Math.max(1,get.value(card));
|
||||
},
|
||||
ai2:function(target){
|
||||
return get.attitude(_status.event.player,target);
|
||||
},
|
||||
});
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var target=result.targets[0];
|
||||
player.line(target,'green');
|
||||
target.gain(result.cards,player,'giveAuto');
|
||||
player.markAuto('olhaoshi_help',[target]);
|
||||
player.addTempSkill('olhaoshi_help',{player:'phaseBeginStart'});
|
||||
}
|
||||
},
|
||||
},
|
||||
help:{
|
||||
trigger:{target:'useCardToTargeted'},
|
||||
direct:true,
|
||||
charlotte:true,
|
||||
onremove:true,
|
||||
filter:function(event,player){
|
||||
if(!player.storage.olhaoshi_help||!player.storage.olhaoshi_help.length) return false;
|
||||
if(event.card.name!='sha'&&get.type(event.card)!='trick') return false;
|
||||
for(var i of player.storage.olhaoshi_help){
|
||||
if(i.countCards('h')>0) return true;
|
||||
}
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(!event.targets) event.targets=player.storage.olhaoshi_help.slice(0).sortBySeat();
|
||||
event.target=event.targets.shift();
|
||||
event.target.chooseCard('h','好施:是否将一张手牌交给'+get.translation(player)+'?').set('ai',function(card){
|
||||
var player=_status.event.player,target=_status.event.getTrigger().player;
|
||||
if(!_status.event.goon){
|
||||
if(get.value(card,player)<0||get.value(card,target)<0) return 1;
|
||||
return 0;
|
||||
}
|
||||
var cardx=_status.event.getTrigger().card;
|
||||
if(card.name=='shan'&&get.tag(cardx,'respondShan')&&target.countCards('h','shan')<player.countCards('h','shan')) return 2;
|
||||
if(card.name=='sha'&&(cardx.name=='juedou'||get.tag(card,'respondSha')&&(target.countCards('h','sha')<player.countCards('h','sha')))) return 2;
|
||||
if(get.value(card,target)>get.value(card,player)||target.getUseValue(card)>player.getUseValue(card)) return 1;
|
||||
if(player.hasSkillTag('noh')) return 0.5/Math.max(1,get.value(card,player));
|
||||
return 0;
|
||||
}).set('goon',get.attitude(event.target,player)>0);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
target.logSkill('olhaoshi_help',player);
|
||||
player.gain(result.cards,target,'giveAuto');
|
||||
}
|
||||
if(targets.length) event.goto(0);
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
oldimeng:{
|
||||
enable:'phaseUse',
|
||||
usable:1,
|
||||
filter:function(event,player){
|
||||
return game.hasPlayer((current)=>current.countCards('h')>0);
|
||||
},
|
||||
selectTarget:2,
|
||||
complexTarget:true,
|
||||
filterTarget:function(card,player,target){
|
||||
if(!ui.selected.targets.length||ui.selected.targets[0].countCards('h')>0) return true;
|
||||
return target.countCards('h')>0;
|
||||
},
|
||||
multitarget:true,
|
||||
multiline:true,
|
||||
content:function(){
|
||||
targets[0].swapHandcards(targets[1]);
|
||||
var num=Math.abs(targets[0].countCards('h')-targets[1].countCards('h'));
|
||||
if(num>0){
|
||||
player.addMark('oldimeng_discard',num,false);
|
||||
player.addTempSkill('oldimeng_discard','phaseUseAfter');
|
||||
}
|
||||
},
|
||||
ai:{
|
||||
threaten:4.5,
|
||||
pretao:true,
|
||||
nokeep:true,
|
||||
order:1,
|
||||
expose:0.2,
|
||||
result:{
|
||||
target:function(player,target){
|
||||
if(!ui.selected.targets.length) return -Math.sqrt(target.countCards('h'));
|
||||
var h1=ui.selected.targets[0].getCards('h'),h2=target.getCards('h');
|
||||
if(h2.length>h1.length) return 0;
|
||||
var delval=get.value(h2,target)-get.value(h1,ui.selected.targets[0]);
|
||||
if(delval>=0) return 0;
|
||||
return -delval*(h1.length-h2.length);
|
||||
},
|
||||
},
|
||||
},
|
||||
subSkill:{
|
||||
discard:{
|
||||
trigger:{player:'phaseUseEnd'},
|
||||
forced:true,
|
||||
charlotte:true,
|
||||
onremove:true,
|
||||
filter:function(event,player){
|
||||
return player.countCards('he')>0;
|
||||
},
|
||||
content:function(){
|
||||
player.chooseToDiscard('he',true,player.countMark('oldimeng_discard'));
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//贾诩
|
||||
rewansha:{
|
||||
audio:'wansha',
|
||||
|
@ -213,16 +378,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
event.currented.push(event.current);
|
||||
event.current.animate('target');
|
||||
event.current.chooseToUse('乱武:使用一张杀或流失一点体力',{name:'sha'},function(card,player,target){
|
||||
event.current.chooseToUse('乱武:使用一张杀或失去一点体力',function(card){
|
||||
if(get.name(card)!='sha') return false;
|
||||
return lib.filter.filterCard.apply(this,arguments)
|
||||
},function(card,player,target){
|
||||
if(player==target) return false;
|
||||
if(!player.canUse('sha',target)) return false;
|
||||
if(get.distance(player,target)<=1) return true;
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=player&&get.distance(player,current)<get.distance(player,target);
|
||||
})){
|
||||
return false;
|
||||
var dist=get.distance(player,target);
|
||||
if(dist>1){
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=player&&get.distance(player,current)<dist;
|
||||
})){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return lib.filter.filterTarget.apply(this,arguments)
|
||||
}).set('ai2',function(){
|
||||
return get.effect_use.apply(this,arguments)+0.01;
|
||||
});
|
||||
"step 2"
|
||||
if(result.bool==false){
|
||||
|
@ -283,6 +454,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
content:function(){
|
||||
trigger.cancel();
|
||||
},
|
||||
ai:{
|
||||
effect:{
|
||||
target:function(card,player,target){
|
||||
if(target==_status.currentPhase&&get.tag(card,'damage')) return 'zerotarget';
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
//顾雍
|
||||
reshenxing:{
|
||||
|
@ -353,7 +531,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
else player.chooseBool(get.prompt('bingyi'),'展示所有手牌').ai=function(){return false};
|
||||
"step 1"
|
||||
if(result.bool){
|
||||
player.logSkill('xinbingyi');
|
||||
player.logSkill('rebingyi');
|
||||
player.showHandcards(get.translation(player)+'发动了【秉壹】');
|
||||
event.targets=result.targets;
|
||||
}
|
||||
|
@ -2283,10 +2461,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var att=get.attitude(player,target);
|
||||
var sgnatt=get.sgn(att);
|
||||
if(ui.selected.targets.length==0){
|
||||
if(att>0){
|
||||
if(target==player&&player.hasSkill('decadexuanfeng')){
|
||||
if(player.countCards('e',function(card){
|
||||
return !_status.event.cards.contains(card)&&game.hasPlayer(function(current){
|
||||
return current!=target&¤t.isEmpty(get.subtype(card))&&get.effect(current,card,player,player)<0;
|
||||
});
|
||||
})>0) return 18;
|
||||
return 7;
|
||||
}
|
||||
else if(att>0){
|
||||
if(target.countCards('e',function(card){
|
||||
return get.value(card,target)<0&&!_status.event.cards.contains(card)&&game.hasPlayer(function(current){
|
||||
return current!=target&&get.attitude(player,current)<0&¤t.isEmpty(get.subtype(card))
|
||||
return current!=target&¤t.isEmpty(get.subtype(card))&&get.effect(current,card,player,player)<0;
|
||||
});
|
||||
})>0) return 9;
|
||||
}
|
||||
|
@ -2312,6 +2498,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var i;
|
||||
var att2=get.sgn(get.attitude(player,ui.selected.targets[0]));
|
||||
for(i=0;i<es.length;i++){
|
||||
if(ui.selected.targets[0]==player&&player.hasSkill('decadexuanfeng')){
|
||||
var bool=game.hasPlayer(function(current){
|
||||
return get.attitude(player,current)<0&¤t.countDiscardableCards(player,'he')>0&&get.damageEffect(current,player,player)>0;
|
||||
});
|
||||
if(bool&&player.countCards('e',function(card){
|
||||
return !_status.event.cards.contains(card)&&target.isEmpty(get.subtype(card))&&get.effect(target,card,player,player)>0;
|
||||
})) return 2.5*Math.abs(att);
|
||||
else if(bool) return 1/Math.max(1,Math.abs(att));
|
||||
else return get.damageEffect(target,player,player);
|
||||
}
|
||||
if(sgnatt!=0&&att2!=0&&sgnatt!=att2&&
|
||||
get.sgn(get.value(es[i],ui.selected.targets[0]))==-att2&&
|
||||
get.sgn(get.effect(target,es[i],player,target))==sgnatt&&
|
||||
|
@ -2395,14 +2591,17 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
var sources=game.filterPlayer(function(current){
|
||||
return get.attitude(player,current)<0&¤t.countCards('e');
|
||||
return ((current==player&¤t.hasSkill('decadexuanfeng'))||get.attitude(player,current)<0)&¤t.countCards('e');
|
||||
});
|
||||
for(var i=0;i<sources.length;i++){
|
||||
var es=sources[i].getCards('e');
|
||||
for(var j=0;j<es.length;j++){
|
||||
var type=get.subtype(es[j]);
|
||||
if(vacancies[type]&&get.value(es[j])>0){
|
||||
if(sources[i]==player||vacancies[type]>0&&get.value(es[j])>0){
|
||||
num++;
|
||||
if(sources[i]==player&&vacancies[type]&&game.hasPlayer(function(current){
|
||||
return get.attitude(player,current)<0&¤t.countDiscardableCards(player,'he')>0&&get.damageEffect(current,player,player)>0;
|
||||
})) num+=0.5;
|
||||
if(num>=3){
|
||||
return 1;
|
||||
}
|
||||
|
@ -2483,8 +2682,27 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
ai:{
|
||||
effect:{
|
||||
player_use:function(card,player,target){
|
||||
if(player==target&&get.type(card)=='equip'&&player.countCards('hes',function(cardx){
|
||||
return card!=cardx&&(!card.cards||!card.cards.contains(cardx))&&(player.hasSkill('yongjin')||get.subtype(card)==get.subtype(cardx))&&(get.position(cardx)=='e'||player.canUse(cardx,player));
|
||||
})>0) return;
|
||||
if(!game.hasPlayer(function(current){
|
||||
return get.attitude(player,current)<0&¤t.countDiscardableCards(player,'he')>0&&get.damageEffect(current,player,player)>0;
|
||||
})) return;
|
||||
if(typeof card=='object'&&player.isPhaseUsing()&&
|
||||
player.needsToDiscard()==2&&card.cards&&card.cards.filter(function(i){
|
||||
return get.position(i)=='h';
|
||||
}).length>0&&!get.tag(card,'draw')&&!get.tag(card,'gain')&&!(get.tag(card,'discard')&&target==player&&player.countCards('e')>0)) return 'zeroplayertarget';
|
||||
},
|
||||
target:function(card,player,target,current){
|
||||
if(get.type(card)=='equip'&&!get.cardtag(card,'gifts')) return [1,3];
|
||||
if(get.tag(card,'damage')&&target.hp>2){
|
||||
var num1=target.countCards('h'),num2=target.getHandcardLimit();
|
||||
if(num1>num2) return [1,1];
|
||||
if(num1==num2) return [1.1,_status.event.player==target?3:0.5];
|
||||
if(num1==num2-1) return [0.1,_status.event.player==target?4.5:0.1];
|
||||
}
|
||||
if(typeof card=='object'&&(card.name=='shunshou'||card.name=='guohe'||card.name=='zhujinqiyuan')&&target.countCards('h')>0&&get.attitude(player,target)<0) return [1,-1];
|
||||
}
|
||||
},
|
||||
reverseEquip:true,
|
||||
|
@ -3488,6 +3706,25 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
ollongdan:{
|
||||
mod:{
|
||||
aiValue:function(player,card,num){
|
||||
if(card.name!='sha'&&card.name!='shan') return;
|
||||
var geti=function(){
|
||||
var cards=player.getCards('hs',function(card){
|
||||
return card.name=='sha'||card.name=='shan';
|
||||
});
|
||||
if(cards.contains(card)){
|
||||
return cards.indexOf(card);
|
||||
}
|
||||
return cards.length;
|
||||
};
|
||||
return Math.max(num,[7,5,5,3][Math.min(geti(),3)]);
|
||||
},
|
||||
aiUseful:function(){
|
||||
return lib.skill.ollongdan.mod.aiValue.apply(this,arguments);
|
||||
},
|
||||
},
|
||||
locked:false,
|
||||
audio:'longdan_sha',
|
||||
audioname:['re_zhaoyun'],
|
||||
hiddenCard:function(player,name){
|
||||
|
@ -6070,6 +6307,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
xinleiji_faq:{},
|
||||
reqingguo:{
|
||||
mod:{
|
||||
aiValue:function(player,card,num){
|
||||
if(get.name(card)!='shan'&&get.color(card)!='black') return;
|
||||
var cards=player.getCards('hs',function(card){
|
||||
return get.name(card)=='shan'||get.color(card)=='black';
|
||||
});
|
||||
cards.sort(function(a,b){
|
||||
return (get.name(b)=='shan'?1:2)-(get.name(a)=='shan'?1:2);
|
||||
});
|
||||
var geti=function(){
|
||||
if(cards.contains(card)){
|
||||
return cards.indexOf(card);
|
||||
}
|
||||
return cards.length;
|
||||
};
|
||||
if(get.name(card)=='shan') return Math.min(num,[6,4,3][Math.min(geti(),2)])*0.6;
|
||||
return Math.max(num,[6.5,4,3][Math.min(geti(),2)]);
|
||||
},
|
||||
aiUseful:function(){
|
||||
return lib.skill.reqingguo.mod.aiValue.apply(this,arguments);
|
||||
},
|
||||
},
|
||||
locked:false,
|
||||
audio:2,
|
||||
enable:['chooseToRespond','chooseToUse'],
|
||||
filterCard:function(card){
|
||||
|
@ -6083,6 +6343,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
prompt:'将一张黑色牌当闪打出',
|
||||
check:function(){return 1},
|
||||
ai:{
|
||||
order:2,
|
||||
respondShan:true,
|
||||
skillTagFilter:function(player){
|
||||
if(!player.countCards('hes',{color:'black'})) return false;
|
||||
|
@ -6168,6 +6429,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
rekanpo:{
|
||||
mod:{
|
||||
aiValue:function(player,card,num){
|
||||
if(get.name(card)!='wuxie'&&get.color(card)!='black') return;
|
||||
var cards=player.getCards('hs',function(card){
|
||||
return get.name(card)=='wuxie'||get.color(card)=='black';
|
||||
});
|
||||
cards.sort(function(a,b){
|
||||
return (get.name(b)=='wuxie'?1:2)-(get.name(a)=='wuxie'?1:2);
|
||||
});
|
||||
var geti=function(){
|
||||
if(cards.contains(card)){
|
||||
return cards.indexOf(card);
|
||||
}
|
||||
return cards.length;
|
||||
};
|
||||
if(get.name(card)=='wuxie') return Math.min(num,[6,4,3][Math.min(geti(),2)])*0.6;
|
||||
return Math.max(num,[6,4,3][Math.min(geti(),2)]);
|
||||
},
|
||||
aiUseful:function(){
|
||||
return lib.skill.rekanpo.mod.aiValue.apply(this,arguments);
|
||||
},
|
||||
},
|
||||
locked:false,
|
||||
audio:2,
|
||||
audioname:['ol_sp_zhugeliang','ol_pangtong'],
|
||||
position:"hes",
|
||||
|
@ -10160,7 +10444,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
xinpaiyi_info:'出牌阶段每项各限一次,你可移去一张“权”并选择一项:①令一名角色摸X张牌。②对至多X名角色各造成1点伤害。(X为“权”数)',
|
||||
re_guyong:'界顾雍',
|
||||
reshenxing:'慎行',
|
||||
reshenxing_info:'出牌阶段,你可以弃置X张牌(X为你本阶段内发动过〖慎行〗的次数),然后摸一张牌。若这两张牌颜色不同,则改为摸两张牌。',
|
||||
reshenxing_info:'出牌阶段,你可以弃置X张牌(X为你本阶段内发动过〖慎行〗的次数且至多为2),然后摸一张牌。',
|
||||
rebingyi:'秉壹',
|
||||
rebingyi_info:'结束阶段,你可展示所有手牌。若这些牌:颜色均相同,则你可以令至多X名角色各摸一张牌(X为你的手牌数);点数均相同,则你摸一张牌。',
|
||||
re_jiaxu:'界贾诩',
|
||||
|
@ -10170,6 +10454,11 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
reluanwu_info:'限定技,出牌阶段,你可令所有其他角色依次选择一项:①对距离最近(或之一)的角色使用一张【杀】;②失去1点体力。然后你摸X张牌(X为选择①和②的角色数中的最大值)。',
|
||||
reweimu:'帷幕',
|
||||
reweimu_info:'锁定技。①你不能成为黑色锦囊牌的目标。②当你于回合内受到伤害时,防止此伤害。',
|
||||
ol_lusu:'界鲁肃',
|
||||
olhaoshi:'好施',
|
||||
olhaoshi_info:'摸牌阶段开始时,你可以多摸两张牌。然后摸牌阶段结束时,若你的手牌数大于5,则你将手牌数的一半(向下取整)交给一名手牌最少其他角色并获得如下效果直到你下回合开始:当你成为【杀】或普通锦囊牌的目标后,其可以交给你一张手 牌。',
|
||||
oldimeng:'缔盟',
|
||||
oldimeng_info:'出牌阶段限一次,你可令两名角色交换手牌并获得如下效果:出牌阶段结束时,你弃置X张牌(X为这两名角色的手牌数之差)。',
|
||||
|
||||
refresh_standard:'界限突破·标',
|
||||
refresh_feng:'界限突破·风',
|
||||
|
|
|
@ -4942,16 +4942,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
"step 1"
|
||||
event.currented.push(event.current);
|
||||
event.current.animate('target');
|
||||
event.current.chooseToUse('乱武:使用一张杀或流失一点体力',{name:'sha'},function(card,player,target){
|
||||
event.current.chooseToUse('乱武:使用一张杀或失去一点体力',function(card){
|
||||
if(get.name(card)!='sha') return false;
|
||||
return lib.filter.filterCard.apply(this,arguments)
|
||||
},function(card,player,target){
|
||||
if(player==target) return false;
|
||||
if(!player.canUse('sha',target)) return false;
|
||||
if(get.distance(player,target)<=1) return true;
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=player&&get.distance(player,current)<get.distance(player,target);
|
||||
})){
|
||||
return false;
|
||||
var dist=get.distance(player,target);
|
||||
if(dist>1){
|
||||
if(game.hasPlayer(function(current){
|
||||
return current!=player&&get.distance(player,current)<dist;
|
||||
})){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
return lib.filter.filterTarget.apply(this,arguments)
|
||||
}).set('ai2',function(){
|
||||
return get.effect_use.apply(this,arguments)+0.01;
|
||||
});
|
||||
"step 2"
|
||||
if(result.bool==false) event.current.loseHp();
|
||||
|
@ -5092,6 +5098,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
kanpo:{
|
||||
mod:{
|
||||
aiValue:function(player,card,num){
|
||||
if(get.name(card)!='wuxie'&&get.color(card)!='black') return;
|
||||
var cards=player.getCards('hs',function(card){
|
||||
return get.name(card)=='wuxie'||get.color(card)=='black';
|
||||
});
|
||||
cards.sort(function(a,b){
|
||||
return (get.name(b)=='wuxie'?1:2)-(get.name(a)=='wuxie'?1:2);
|
||||
});
|
||||
var geti=function(){
|
||||
if(cards.contains(card)){
|
||||
return cards.indexOf(card);
|
||||
}
|
||||
return cards.length;
|
||||
};
|
||||
if(get.name(card)=='wuxie') return Math.min(num,[6,4,3][Math.min(geti(),2)])*0.6;
|
||||
return Math.max(num,[6,4,3][Math.min(geti(),2)]);
|
||||
},
|
||||
aiUseful:function(){
|
||||
return lib.skill.kanpo.mod.aiValue.apply(this,arguments);
|
||||
},
|
||||
},
|
||||
locked:false,
|
||||
audio:2,
|
||||
enable:'chooseToUse',
|
||||
filterCard:function(card){
|
||||
|
@ -7338,6 +7367,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
guanqiujian:['guanqiujian','re_guanqiujian','old_guanqiujian'],
|
||||
chendao:['chendao','ns_chendao'],
|
||||
zhugezhan:['zhugezhan','old_zhugezhan'],
|
||||
ol_lusu:['ol_lusu','re_lusu'],
|
||||
},
|
||||
translate:{
|
||||
re_yuanshao:'袁绍',
|
||||
|
|
147
character/sp.js
147
character/sp.js
|
@ -8,7 +8,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
sp_default:["caoying","simahui","yangxiu","chenlin","caohong","xiahouba","yuanshu","sp_diaochan","sp_zhaoyun","zhugejin","zhugeke","guanyinping","simalang","zhangxingcai","sp_sunshangxiang","caoang","sp_caoren","zhangbao","maliang","zhugedan","sp_jiangwei","sp_machao","sunhao","shixie","mayunlu","zhanglu","wutugu","sp_caiwenji","zhugeguo","jsp_guanyu","jsp_huangyueying","sunluyu","zumao","wenpin","daxiaoqiao","tadun","yanbaihu","chengyu","wanglang","sp_pangde","sp_jiaxu","litong","mizhu","buzhi","caochun","dongbai","zhaoxiang","mazhong","dongyun","kanze","heqi","wangyun","sunqian","xizhicai","quyi","luzhi","xujing","yuantanyuanshang","sunshao","zhangling",'guansuo','baosanniang','ol_zhangchangpu','caoshuang','sp_zhangliao','wolongfengchu','ol_xinxianying','panshu','huangzu','huangchengyan','gaogan','duxi'],
|
||||
sp_tongque:["liuxie","lingju","fuwan","sp_fuwan","sp_fuhuanghou","sp_jiben"],
|
||||
sp_zhongdan:["cuiyan","huangfusong"],
|
||||
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","sp_mifangfushiren"],
|
||||
sp_guozhan:["zangba","shamoke","ganfuren","yuejin","hetaihou","dingfeng","panfeng","jianggan","sp_mifangfushiren","bianfuren"],
|
||||
sp_guozhan2:["mateng","tianfeng","chendong","sp_dongzhuo","jiangfei","jiangqing","liqueguosi","lvfan","cuimao","jiling","zhangren","zoushi","zongyu"],
|
||||
//sp_single:["niujin"],
|
||||
sp_others:["hanba","caiyang"],
|
||||
|
@ -16,6 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
characterFilter:{},
|
||||
character:{
|
||||
bianfuren:['female','wei',3,['fuwei','yuejian']],
|
||||
duxi:['male','wei',3,['quxi','bixiong']],
|
||||
gaogan:['male','qun',4,['juguan']],
|
||||
sp_mifangfushiren:['male','shu',4,['mffengshi']],
|
||||
|
@ -123,7 +124,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
hetaihou:['female','qun',3,['zhendu','qiluan']],
|
||||
//kongrong:['male','qun',3,['lirang','mingshi']],
|
||||
dingfeng:['male','wu',4,['reduanbing','refenxun']],
|
||||
//bianfuren:['female','wei',3,['wanwei','yuejian']],
|
||||
shamoke:['male','shu',4,['gzjili']],
|
||||
liqueguosi:['male','qun',4,['xiongsuan']],
|
||||
lvfan:['male','wu',3,['diaodu','diancai']],
|
||||
|
@ -392,6 +392,92 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
//卞夫人
|
||||
fuwei:{
|
||||
audio:'wanwei',
|
||||
trigger:{
|
||||
player:'loseAfter',
|
||||
global:'gainAfter',
|
||||
},
|
||||
filter:function(event,player){
|
||||
var evt=event;
|
||||
if(event.name=='lose'){
|
||||
if(event.type!='discard') return false;
|
||||
evt=event.getParent();
|
||||
}
|
||||
if(evt[event.name=='gain'?'bySelf':'notBySelf']!=true) return false;
|
||||
var evtx=event.getl(player);
|
||||
return evtx&&evtx.cards2&&evtx.cards2.length>0;
|
||||
},
|
||||
prompt2:function(event,player){
|
||||
var evt=event.getl(player),origins=evt.cards2.map(function(i){
|
||||
return get.name(i,evt.hs.contains(i)?player:false);
|
||||
});
|
||||
return '从牌堆中获得'+get.translation(origins)+';若没有则改为摸一张牌';
|
||||
},
|
||||
usable:1,
|
||||
content:function(){
|
||||
var num=0,cards=[],evt=trigger.getl(player),origins=evt.cards2.map(function(i){
|
||||
return get.name(i,evt.hs.contains(i)?player:false);
|
||||
});
|
||||
for(var i of origins){
|
||||
var card=get.cardPile2(function(card){
|
||||
return card.name==i&&!cards.contains(card);
|
||||
});
|
||||
if(card) cards.push(card);
|
||||
else num++;
|
||||
}
|
||||
if(cards.length) player.gain(cards,'gain2');
|
||||
if(num) player.draw(num);
|
||||
},
|
||||
},
|
||||
yuejian:{
|
||||
audio:2,
|
||||
usable:2,
|
||||
trigger:{global:'useCardAfter'},
|
||||
filter:function(event,player){
|
||||
return player!=event.player&&event.targets&&event.targets.contains(player)&&player.countCards('h')>0;
|
||||
},
|
||||
prompt2:function(event,player){
|
||||
var suit=get.suit(event.card),hs=player.getCards('h'),cards=event.cards.filterInD();
|
||||
if(!lib.suit.contains(suit)||!cards.length){
|
||||
return '展示所有手牌,然后无事发生';
|
||||
}
|
||||
for(var i of hs){
|
||||
if(get.suit(i)==suit){
|
||||
return '展示所有手牌,然后无事发生';
|
||||
}
|
||||
}
|
||||
return '展示所有手牌,然后<span class="yellowtext">获得'+get.translation(cards)+'</span>';
|
||||
},
|
||||
check:function(event,player){
|
||||
var suit=get.suit(event.card),hs=player.getCards('h'),cards=event.cards.filterInD();
|
||||
if(!lib.suit.contains(suit)||!cards.length){
|
||||
return false;
|
||||
}
|
||||
for(var i of hs){
|
||||
if(get.suit(i)==suit){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
player.showHandcards(get.translation(player)+'发动了【约俭】');
|
||||
var suit=get.suit(trigger.card),hs=player.getCards('h');
|
||||
if(!lib.suit.contains(suit)){event.finish();return;}
|
||||
for(var i of hs){
|
||||
if(get.suit(i)==suit){
|
||||
event.finish();
|
||||
return;
|
||||
}
|
||||
}
|
||||
'step 1'
|
||||
var cards=trigger.cards.filterInD();
|
||||
if(cards.length) player.gain(cards,'gain2');
|
||||
},
|
||||
},
|
||||
//杜袭
|
||||
quxi:{
|
||||
audio:2,
|
||||
|
@ -1082,7 +1168,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
var player=_status.event.player;
|
||||
if(button.link[2]=='jiu'){
|
||||
if(player.getUseValue({name:'jiu'})<=0) return 0;
|
||||
if(player.countCards('h','sha')) return 4
|
||||
if(player.countCards('h','sha')) return player.getUseValue({name:'jiu'});
|
||||
}
|
||||
return player.getUseValue({name:button.link[2],nature:button.link[3]})/4;
|
||||
},
|
||||
|
@ -1100,7 +1186,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
position:'he',
|
||||
check:function(card){
|
||||
var player=_status.event.player,color=get.color(card,player);
|
||||
if(player.countCards('he',{color:color})<=player.countMark('jinzhi2')||(ui.selected.cards.length&&get.color(ui.selected.cards[0],player)!=color)) return 0;
|
||||
if(player.countCards('he',{color:color})<=player.countMark('jinzhi2')||(ui.selected.cards.length&&get.color(ui.selected.cards[0],player)!=color)) return -1;
|
||||
if(lib.skill.jinzhi_backup.viewAs.name=='jiu'&&!player.countCards('h',function(cardx){
|
||||
return card!=cardx&&!ui.selected.cards.contains(cardx)&&get.name(cardx,player)=='sha';
|
||||
})) return 0;
|
||||
|
@ -1142,7 +1228,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
ai:{
|
||||
order:function(item,player){
|
||||
if(_status.event.type=='phase'&&player.getUseValue({name:'jiu'},null,true)>0&&player.countCards('h','sha')) return 4;
|
||||
if(_status.event.type=='phase'&&!player.countMark('jinzhi2')&&player.getUseValue({name:'jiu'},null,true)>0&&player.countCards('h','sha')) return get.order({name:'jiu'})+1;
|
||||
return 1;
|
||||
},
|
||||
respondShan:true,
|
||||
|
@ -3314,29 +3400,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
}
|
||||
},
|
||||
yuejian:{
|
||||
trigger:{global:'phaseDiscardBegin'},
|
||||
audio:2,
|
||||
filter:function(event,player){
|
||||
return event.player.countUsed()<event.player.maxHp;
|
||||
},
|
||||
content:function(){
|
||||
trigger.player.addTempSkill('yuejian_num');
|
||||
},
|
||||
logTarget:'player',
|
||||
check:function(event,player){
|
||||
return get.attitude(player,event.player)>0&&event.player.needsToDiscard();
|
||||
},
|
||||
subSkill:{
|
||||
num:{
|
||||
mod:{
|
||||
maxHandcard:function(player,num){
|
||||
return num+player.maxHp;
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
gzjili:{
|
||||
mod:{
|
||||
aiOrder:function(player,card,num){
|
||||
|
@ -6364,6 +6427,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
refanghun:{
|
||||
mod:{
|
||||
aiValue:function(player,card,num){
|
||||
if(card.name!='sha'&&card.name!='shan') return;
|
||||
var geti=function(){
|
||||
var cards=player.getCards('hs',function(card){
|
||||
return card.name=='sha'||card.name=='shan';
|
||||
});
|
||||
if(cards.contains(card)){
|
||||
return cards.indexOf(card);
|
||||
}
|
||||
return cards.length;
|
||||
};
|
||||
return Math.max(num,[7,5,5,3][Math.min(geti(),3)]);
|
||||
},
|
||||
},
|
||||
locked:false,
|
||||
audio:'fanghun',
|
||||
inherit:'fanghun',
|
||||
trigger:{
|
||||
|
@ -6495,10 +6574,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(temp>max) max=temp;
|
||||
}
|
||||
}
|
||||
if(max>0) max+=0.3;
|
||||
if(max>0) max+=((player.storage.refuhan||player.storage.twfuhan)?0.3:-0.3);
|
||||
return max;
|
||||
}
|
||||
return 4;
|
||||
return (player.storage.refuhan||player.storage.twfuhan)?4:1;
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -14683,6 +14762,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
fuwan:['fuwan','sp_fuwan'],
|
||||
huaxin:['ol_huaxin','huaxin','sp_huaxin'],
|
||||
xujing:['xujing','sp_xujing'],
|
||||
zhaoxiang:['zhaoxiang','tw_zhaoxiang'],
|
||||
},
|
||||
translate:{
|
||||
"xinfu_lingren":"凌人",
|
||||
|
@ -14936,8 +15016,6 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
|
||||
wanwei:'挽危',
|
||||
wanwei_info:'当你因被其他角色获得或弃置而失去牌时,你可以改为自己选择失去的牌。',
|
||||
yuejian:'约俭',
|
||||
yuejian_info:'一名角色的弃牌阶段开始时,若其本回合内使用过的牌数小于X,则你可以令其本回合的手牌上限+X。(X为其的体力上限)',
|
||||
gzjili:'蒺藜',
|
||||
gzjili_info:'当你于一回合内使用或打出第X张牌时,你可以摸X张牌(X为你的攻击范围)。',
|
||||
xiongsuan:'凶算',
|
||||
|
@ -15505,7 +15583,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
bixiong:'避凶',
|
||||
bixiong2:'避凶',
|
||||
bixiong_info:'锁定技,当你于弃牌阶段弃置手牌后,你不能成为与这些牌花色相同的牌的目标直到你下回合开始。',
|
||||
|
||||
fuwei:'扶危',
|
||||
fuwei_info:'每回合限一次。当你的牌被其他角色弃置或获得后,你可从牌堆中获得一张与此牌名称相同的牌(若没有则改为摸一张牌)。',
|
||||
yuejian:'约俭',
|
||||
yuejian_info:'每回合限两次。当其他角色对你使用的牌A结算结束后,你可展示所有手牌。若牌A有花色且你的手牌中没有同花色的牌,则你获得牌A对应的所有实体牌。',
|
||||
|
||||
sp_default:"常规",
|
||||
sp_tongque:"铜雀台",
|
||||
|
|
|
@ -727,6 +727,29 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
qingguo:{
|
||||
mod:{
|
||||
aiValue:function(player,card,num){
|
||||
if(get.name(card)!='shan'&&get.color(card)!='black') return;
|
||||
var cards=player.getCards('hs',function(card){
|
||||
return get.name(card)=='shan'||get.color(card)=='black';
|
||||
});
|
||||
cards.sort(function(a,b){
|
||||
return (get.name(b)=='shan'?1:2)-(get.name(a)=='shan'?1:2);
|
||||
});
|
||||
var geti=function(){
|
||||
if(cards.contains(card)){
|
||||
return cards.indexOf(card);
|
||||
}
|
||||
return cards.length;
|
||||
};
|
||||
if(get.name(card)=='shan') return Math.min(num,[6,4,3][Math.min(geti(),2)])*0.6;
|
||||
return Math.max(num,[6.5,4,3][Math.min(geti(),2)]);
|
||||
},
|
||||
aiUseful:function(){
|
||||
return lib.skill.qingguo.mod.aiValue.apply(this,arguments);
|
||||
},
|
||||
},
|
||||
locked:false,
|
||||
audio:2,
|
||||
enable:['chooseToRespond','chooseToUse'],
|
||||
filterCard:function(card){
|
||||
|
@ -740,6 +763,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
prompt:'将一张黑色手牌当闪使用或打出',
|
||||
check:function(){return 1},
|
||||
ai:{
|
||||
order:3,
|
||||
respondShan:true,
|
||||
skillTagFilter:function(player){
|
||||
if(!player.countCards('hs',{color:'black'})) return false;
|
||||
|
@ -2372,6 +2396,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
jijiu:{
|
||||
mod:{
|
||||
aiValue:function(player,card,num){
|
||||
if(get.name(card)!='tao'&&get.color(card)!='red') return;
|
||||
var cards=player.getCards('hs',function(card){
|
||||
return get.name(card)=='tao'||get.color(card)=='red';
|
||||
});
|
||||
cards.sort(function(a,b){
|
||||
return (get.name(a)=='tao'?1:2)-(get.name(b)=='tao'?1:2);
|
||||
});
|
||||
var geti=function(){
|
||||
if(cards.contains(card)){
|
||||
return cards.indexOf(card);
|
||||
}
|
||||
return cards.length;
|
||||
};
|
||||
return Math.max(num,[6.5,4,3,2][Math.min(geti(),2)]);
|
||||
},
|
||||
aiUseful:function(){
|
||||
return lib.skill.kanpo.mod.aiValue.apply(this,arguments);
|
||||
},
|
||||
},
|
||||
locked:false,
|
||||
audio:2,
|
||||
audioname:['re_huatuo'],
|
||||
enable:'chooseToUse',
|
||||
|
|
180
character/tw.js
180
character/tw.js
|
@ -11,6 +11,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
character:{
|
||||
tw_zhaoxiang:['female','shu',4,['refanghun','twfuhan','twqueshi']],
|
||||
yuejiu:['male','qun',4,['cuijin']],
|
||||
wuban:['male','shu',4,['jintao']],
|
||||
duosidawang:['male','qun','4/5',['equan','manji']],
|
||||
|
@ -119,7 +120,22 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
equipValue:7,
|
||||
}
|
||||
},
|
||||
skills:['gx_chongyingshenfu']
|
||||
skills:['gx_chongyingshenfu'],
|
||||
loseDelay:false,
|
||||
},
|
||||
meiyingqiang:{
|
||||
fullskin:true,
|
||||
type:'equip',
|
||||
subtype:'equip1',
|
||||
cardimage:'yinyueqiang',
|
||||
derivation:'tw_zhaoxiang',
|
||||
distance:{attackFrom:-2},
|
||||
ai:{
|
||||
basic:{
|
||||
equipValue:4.5,
|
||||
}
|
||||
},
|
||||
skills:['meiyingqiang'],
|
||||
},
|
||||
},
|
||||
characterFilter:{
|
||||
|
@ -131,6 +147,131 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
},
|
||||
skill:{
|
||||
twfuhan:{
|
||||
audio:'fuhan',
|
||||
trigger:{player:'phaseZhunbeiBegin'},
|
||||
unique:true,
|
||||
limited:true,
|
||||
skillAnimation:true,
|
||||
animationColor:'orange',
|
||||
forceunique:true,
|
||||
filter:function(event,player){
|
||||
return player.countMark('fanghun')>0;
|
||||
},
|
||||
prompt:function(event,player){
|
||||
var num=Math.max(2,player.storage.fanghun);
|
||||
num=Math.min(num,8);
|
||||
return get.prompt('twfuhan')+'(体力上限:'+num+')';
|
||||
},
|
||||
check:function(event,player){
|
||||
if(player.storage.fanghun>=Math.min(4,player.maxHp)) return true;
|
||||
if(player.hp<=2&&player.storage.fanghun>=3) return true;
|
||||
return false;
|
||||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
event.num=player.storage.fanghun;
|
||||
player.removeMark('fanghun',player.storage.fanghun);
|
||||
player.awakenSkill('twfuhan');
|
||||
if(_status.characterlist){
|
||||
list=[];
|
||||
for(var i=0;i<_status.characterlist.length;i++){
|
||||
var name=_status.characterlist[i];
|
||||
if(lib.character[name][1]=='shu') list.push(name);
|
||||
}
|
||||
}
|
||||
else if(_status.connectMode){
|
||||
list=get.charactersOL(function(i){
|
||||
return lib.character[i][1]!='shu';
|
||||
});
|
||||
}
|
||||
else{
|
||||
list=get.gainableCharacters(function(info){
|
||||
return info[1]=='shu';
|
||||
});
|
||||
}
|
||||
var players=game.players.concat(game.dead);
|
||||
for(var i=0;i<players.length;i++){
|
||||
list.remove(players[i].name);
|
||||
list.remove(players[i].name1);
|
||||
list.remove(players[i].name2);
|
||||
}
|
||||
list.remove('zhaoxiang');
|
||||
player.chooseButton(['扶汉:选择获得一张武将牌上的所有技能',[list.randomGets(5),'character']],true);
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
var name=result.links[0];
|
||||
player.flashAvatar('twhuashen',name);
|
||||
game.log(player,'获得了','#y'+get.translation(name),'的所有技能');
|
||||
player.addSkill(lib.character[name][3])
|
||||
}
|
||||
'step 2'
|
||||
var num=event.num-player.maxHp;
|
||||
if(num>0) player.gainMaxHp(num);
|
||||
else player.loseMaxHp(-num);
|
||||
player.recover();
|
||||
'step 3'
|
||||
var card=get.cardPile('meiyingqiang','field');
|
||||
if(card){
|
||||
player.gain(card,'gain2','log');
|
||||
}
|
||||
},
|
||||
},
|
||||
twqueshi:{
|
||||
trigger:{
|
||||
global:'gameDrawAfter',
|
||||
player:'enterGame',
|
||||
},
|
||||
forced:true,
|
||||
locked:false,
|
||||
filter:function(event,player){
|
||||
return !player.isDisabled(1);
|
||||
},
|
||||
content:function(){
|
||||
if(!lib.inpile.contains('meiyingqiang')){
|
||||
lib.inpile.push('meiyingqiang');
|
||||
player.equip(game.createCard('meiyingqiang','diamond',12));
|
||||
}
|
||||
else{
|
||||
var card=get.cardPile(function(card){
|
||||
return card.name=='meiyingqiang'&&card!=player.getEquip(1);
|
||||
},'field');
|
||||
if(card) player.equip(card);
|
||||
}
|
||||
},
|
||||
},
|
||||
meiyingqiang:{
|
||||
equipSkill:true,
|
||||
trigger:{
|
||||
player:['loseAfter','gainAfter'],
|
||||
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter'],
|
||||
},
|
||||
filter:function(event,player){
|
||||
if(player==_status.currentPhase) return false;
|
||||
var evt=event.getl(player);
|
||||
if(!evt||!evt.cards2||!evt.cards2.length) return false;
|
||||
var list=player.getHistory('lose',function(evt){
|
||||
return evt.cards2&&evt.cards2.length;
|
||||
});
|
||||
if(event.name=='lose'){
|
||||
if(list.indexOf(event)!=0) return false;
|
||||
}
|
||||
else{
|
||||
if(!player.hasHistory('lose',function(evt){
|
||||
return evt.getParent()==event&&list.indexOf(evt)==0;
|
||||
})) return false;
|
||||
}
|
||||
return _status.connectMode||!lib.config.skip_shan||player.hasSha();
|
||||
},
|
||||
direct:true,
|
||||
content:function(){
|
||||
if(trigger.delay===false) game.delayx();
|
||||
player.chooseToUse('梅影枪:是否使用一张【杀】?',function(card){
|
||||
if(get.name(card)!='sha') return false;
|
||||
return lib.filter.cardEnabled.apply(this,arguments);
|
||||
}).set('addCount',false).logSkill='meiyingqiang';
|
||||
},
|
||||
},
|
||||
cuijin:{
|
||||
trigger:{global:'useCard'},
|
||||
direct:true,
|
||||
|
@ -139,9 +280,30 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
},
|
||||
content:function(){
|
||||
'step 0'
|
||||
if(player!=game.me&&!player.isOnline()) game.delayx();
|
||||
var target=trigger.player;
|
||||
event.target=target;
|
||||
player.chooseToDiscard('he',get.prompt('cuijin',target),'弃置一张牌并令'+get.translation(trigger.player)+'使用的【杀】伤害+1,但若其未造成伤害,则你对其造成1点伤害。').logSkill=['cuijin',target];
|
||||
player.chooseToDiscard('he',get.prompt('cuijin',target),'弃置一张牌并令'+get.translation(trigger.player)+'使用的【杀】伤害+1,但若其未造成伤害,则你对其造成1点伤害。').set('ai',function(card){
|
||||
if(_status.event.goon) return 7-get.value(card);
|
||||
return 0;
|
||||
}).set('goon',function(){
|
||||
var d1=true;
|
||||
if(trigger.player.hasSkill('jueqing')||trigger.player.hasSkill('gangzhi')) d1=false
|
||||
for(var target of trigger.targets){
|
||||
if(!target.mayHaveShan()||trigger.player.hasSkillTag('directHit_ai',true,{
|
||||
target:target,
|
||||
card:trigger.card,
|
||||
},true)){
|
||||
if(!target.hasSkill('gangzhi')) d1=false;
|
||||
if(!target.hasSkillTag('filterDamage',null,{
|
||||
player:trigger.player,
|
||||
card:trigger.card,
|
||||
})&&get.attitude(player,target)<0) return true;
|
||||
}
|
||||
}
|
||||
if(d1) return get.damageEffect(trigger.player,player,player)>0;
|
||||
return false;
|
||||
}()).logSkill=['cuijin',target];
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
if(typeof trigger.baseDamage!='number') trigger.baseDamage=1;
|
||||
|
@ -528,17 +690,16 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
return true;
|
||||
},
|
||||
content:function(){
|
||||
player.addSkill('gx_chongyingshenfu_effect');
|
||||
player.markAuto('gx_chongyingshenfu_effect',[trigger.card.name]);
|
||||
},
|
||||
group:'gx_chongyingshenfu_effect',
|
||||
subSkill:{
|
||||
effect:{
|
||||
trigger:{player:'damageBegin4'},
|
||||
forced:true,
|
||||
equipSkill:true,
|
||||
charlotte:true,
|
||||
filter:function(event,player){
|
||||
if(!event.card||!event.card.name||!player.getStorage('gx_chongyingshenfu_effect').contains(event.card.name)) return false;
|
||||
if(!event.card||!event.card.name||!player.storage.gx_chongyingshenfu_effect||!player.getStorage('gx_chongyingshenfu_effect').contains(event.card.name)) return false;
|
||||
if(player.hasSkillTag('unequip2')) return false;
|
||||
if(event.source.hasSkillTag('unequip',false,{
|
||||
name:event.card.name,
|
||||
|
@ -1390,7 +1551,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
gx_taijifuchen:'太极拂尘',
|
||||
gx_taijifuchen_info:'锁定技,当你使用【杀】指定目标后,你令目标角色选择一项:①弃置一张牌,若此牌和【杀】花色相同,则你获得之。②其不可响应此【杀】。',
|
||||
gx_chongyingshenfu:'冲应神符',
|
||||
gx_chongyingshenfu_info:'锁定技,当你受到牌造成的伤害后,你令所有同名牌对你造成的伤害-1直到游戏结束。',
|
||||
gx_chongyingshenfu_info:'锁定技。①当你受到牌造成的伤害后,你记录此牌的名称。②当你受到〖冲应神符①〗记录过的牌造成的伤害时,你令此牌伤害-1。',
|
||||
tw_dongzhao:'TW董昭',
|
||||
twmiaolve:'妙略',
|
||||
twmiaolve_info:'游戏开始时,你获得两张【瞒天过海】。当你受到1点伤害后,你可选择:①获得一张【瞒天过海】并摸一张牌。②获得一张智囊。',
|
||||
|
@ -1414,6 +1575,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
yuejiu:'乐就',
|
||||
cuijin:'催进',
|
||||
cuijin_info:'当你或你攻击范围内的角色使用【杀】时,你可以弃置一张牌并获得如下效果:此【杀】的伤害值基数+1,且当此【杀】结算结束后,若未造成过伤害,则你对使用者造成1点伤害。',
|
||||
tw_zhaoxiang:'TW赵襄',
|
||||
twfuhan:'扶汉',
|
||||
twfuhan_info:'限定技。准备阶段开始时时,你可以移去所有"梅影"标记,然后从五张未登场的蜀势力武将牌中选择一名获得其所有技能,将体力上限数调整为以此技能移去所有“梅影”标记的数量(最少为2,最多为8)并回复1点体力,然后从牌堆/弃牌堆/场上获得【梅影枪】。',
|
||||
twqueshi:'鹊拾',
|
||||
twqueshi_info:'游戏开始时,你将【梅影枪】置于你的装备区。',
|
||||
meiyingqiang:'梅影枪',
|
||||
meiyingqiang_info:'当你于其他角色的回合内第一次失去牌时,你可以使用一张【杀】。',
|
||||
tw_mobile:'移动版',
|
||||
tw_yijiang:'一将成名TW',
|
||||
tw_english:'英文版',
|
||||
|
|
|
@ -490,7 +490,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
if(event.triggername=='phaseJieshuBegin'){
|
||||
var num=trigger.player.countCards('h');
|
||||
if(num>0) player.chooseToDiscard(get.prompt('xindanshou',trigger.player),num,'弃置'+get.cnNumber(num)+'张牌并对'+get.translation(trigger.player)+'造成1点伤害','he').set('logSkill',['xindanshou',trigger.player]).set('ai',function(card){
|
||||
if(get.damageEffect(_status.event.getTrigger().player,_status.event.player,_status.event.player)>0) return 6-get.value(card);
|
||||
if(get.damageEffect(_status.event.getTrigger().player,_status.event.player,_status.event.player)>0) return Math.max(5.5,8-_status.event.selectTarget)-get.value(card);
|
||||
return -1;
|
||||
});
|
||||
else player.chooseBool(get.prompt('xindanshou',trigger.player),'对'+get.translation(trigger.player)+'造成1点伤害').ai=function(){
|
||||
|
@ -506,7 +506,28 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
});
|
||||
event.num=num;
|
||||
player.chooseBool(get.prompt('xindanshou')+'(可摸'+get.cnNumber(num)+'张牌)',get.translation('xindanshou_info'));
|
||||
player.chooseBool(get.prompt('xindanshou')+'(可摸'+get.cnNumber(num)+'张牌)',get.translation('xindanshou_info')).set('ai',function(){
|
||||
return _status.event.choice;
|
||||
}).set('choice',function(){
|
||||
if(player.isPhaseUsing()){
|
||||
if(player.countCards('h',function(card){
|
||||
return ['basic','trick'].contains(get.type(card,'trick'))&&player.canUse(card,player,null,true)&&get.effect(player,card,player)>0&&player.getUseValue(card,null,true)>0;
|
||||
})) return false;
|
||||
return true;
|
||||
}
|
||||
if(num>2) return true;
|
||||
var card=trigger.card;
|
||||
if(get.tag(card,'damage')&&player.hp<=trigger.getParent().baseDamage&&(!get.tag(card,'respondShan')||!player.hasShan())&&(!get.tag(card,'respondSha')||!player.hasSha())) return true;
|
||||
var source=_status.currentPhase,todis=(source.countCards('h')-Math.max(0,source.needsToDiscard()));
|
||||
if(todis<=Math.max(Math.min(2+(source.hp<=1?1:0),player.countCards('he',function(card){
|
||||
return get.value(card,player)<Math.max(5.5,8-todis)
|
||||
})),player.countCards('he',function(card){
|
||||
return get.value(card,player)<=0;
|
||||
}))&&get.damageEffect(source,player,player)>0) return false;
|
||||
if(!source.isPhaseUsing()||get.attitude(player,source)>0) return true;
|
||||
if(card.name=='sha'&&!source.getCardUsable('sha')) return true;
|
||||
return Math.random()<num/3;
|
||||
}());
|
||||
}
|
||||
'step 1'
|
||||
if(result.bool){
|
||||
|
@ -523,6 +544,23 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
}
|
||||
},
|
||||
subSkill:{as:{sub:true}},
|
||||
ai:{
|
||||
threaten:0.6,
|
||||
effect:{
|
||||
target:function(card,player,target,current){
|
||||
if(typeof card!='object'||target.hasSkill('xindanshou_as')||!['basic','trick'].contains(get.type(card,'trick'))) return;
|
||||
var num=0;
|
||||
game.countPlayer2(function(current){
|
||||
var history=current.getHistory('useCard');
|
||||
for(var j=0;j<history.length;j++){
|
||||
if(['basic','trick'].contains(get.type(history[j].card,'trick'))&&history[j].targets&&history[j].targets.contains(player)) num++;
|
||||
}
|
||||
});
|
||||
if(player==target&¤t>0) return [1.1,num];
|
||||
return [0.9,num];
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
xinbenxi:{
|
||||
group:['xinbenxi_summer','xinbenxi_damage'],
|
||||
|
|
|
@ -667,7 +667,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){
|
|||
group:'chexuan_lose',
|
||||
subfrequent:['lose'],
|
||||
ai:{
|
||||
order:0.4,
|
||||
order:6,
|
||||
result:{
|
||||
player:1,
|
||||
},
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
window.noname_asset_list=[
|
||||
'v1.9.110.9.2.2',
|
||||
'v1.9.110.9.2.3',
|
||||
'audio/background/aozhan_chaoming.mp3',
|
||||
'audio/background/aozhan_online.mp3',
|
||||
'audio/background/aozhan_rewrite.mp3',
|
||||
|
@ -4418,6 +4418,11 @@ window.noname_asset_list=[
|
|||
'image/character/jiachong.jpg',
|
||||
'image/character/wuban.jpg',
|
||||
'image/character/yuejiu.jpg',
|
||||
'image/character/gz_xiahouba.jpg',
|
||||
'image/character/ol_lusu.jpg',
|
||||
'image/character/re_jiaxu.jpg',
|
||||
'image/character/tw_zhaoxiang.jpg',
|
||||
'image/character/yuejiu.jpg',
|
||||
|
||||
'image/character/baiwuchang.jpg',
|
||||
'image/character/baosanniang.jpg',
|
||||
|
|
28
game/game.js
28
game/game.js
|
@ -32752,7 +32752,7 @@
|
|||
else{
|
||||
skills2=player.getSkills(true,true,false);
|
||||
}
|
||||
skills2=game.filterSkills(skills2.concat(lib.skill.global),player,player.getSkills('e'));
|
||||
skills2=game.filterSkills(skills2.concat(lib.skill.global),player,player.getSkills('e').concat(lib.skill.global));
|
||||
event._skillChoice=[];
|
||||
game.expandSkills(skills2);
|
||||
for(i=0;i<skills2.length;i++){
|
||||
|
@ -52922,30 +52922,34 @@
|
|||
sgnAttitude:function(){
|
||||
return get.sgn(get.attitude.apply(this,arguments));
|
||||
},
|
||||
useful:function(card){
|
||||
useful:function(card,player){
|
||||
if(get.position(card)=='j') return -1;
|
||||
if(get.position(card)=='e') return get.equipValue(card);
|
||||
if(card._modUseful){
|
||||
return card._modUseful();
|
||||
}
|
||||
var i=0;
|
||||
if(_status.event.player){
|
||||
i=_status.event.player.getCards('h',card.name).indexOf(card);
|
||||
if(!player) player=_status.event.player;
|
||||
if(player){
|
||||
i=player.getCards('h',card.name).indexOf(card);
|
||||
if(i<0) i=0;
|
||||
}
|
||||
var aii=get.info(card).ai;
|
||||
var useful;
|
||||
if(aii&&aii.useful) useful=aii.useful;
|
||||
else if(aii&&aii.basic) useful=aii.basic.useful;
|
||||
if(useful==undefined) return -1;
|
||||
if(typeof useful=='function'){
|
||||
return useful(card,i);
|
||||
var result;
|
||||
if(useful==undefined) result=-1;
|
||||
else if(typeof useful=='function'){
|
||||
result=useful(card,i);
|
||||
}
|
||||
if(typeof useful=='number') return useful;
|
||||
if(i<useful.length){
|
||||
return useful[i];
|
||||
else if(typeof useful=='number') result=useful;
|
||||
else if(i<useful.length){
|
||||
result=useful[i];
|
||||
}
|
||||
return useful[useful.length-1];
|
||||
else result=useful[useful.length-1];
|
||||
result=game.checkMod(player,card,result,'aiUseful',player);
|
||||
return result;
|
||||
},
|
||||
unuseful:function(card){
|
||||
return -get.useful(card);
|
||||
|
@ -52976,7 +52980,7 @@
|
|||
if(player==undefined||get.itemtype(player)!='player') player=_status.event.player;
|
||||
var geti=function(){
|
||||
var num=0,i;
|
||||
var cards=player.getCards('h',card.name);
|
||||
var cards=player.getCards('hs',card.name);
|
||||
if(cards.contains(card)){
|
||||
return cards.indexOf(card);
|
||||
}
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
window.noname_update={
|
||||
version:'1.9.110.9.2.2',
|
||||
update:'1.9.110.9.2.1',
|
||||
version:'1.9.110.9.2.3',
|
||||
update:'1.9.110.9.2.2',
|
||||
changeLog:[
|
||||
'乐就',
|
||||
'联机优化',
|
||||
'界鲁肃、界贾诩',
|
||||
'海外服赵襄',
|
||||
'bug修复',
|
||||
],
|
||||
files:[
|
||||
|
@ -14,7 +14,7 @@ window.noname_update={
|
|||
//'card/huanlekapai.js',
|
||||
//'card/mtg.js',
|
||||
//'card/sp.js',
|
||||
//'card/standard.js',
|
||||
'card/standard.js',
|
||||
//'card/swd.js',
|
||||
//'card/yunchou.js',
|
||||
//'card/yingbian.js',
|
||||
|
@ -26,23 +26,23 @@ window.noname_update={
|
|||
//'character/gujian.js',
|
||||
//'character/gwent.js',
|
||||
//'character/hearth.js',
|
||||
//'character/mobile.js',
|
||||
'character/mobile.js',
|
||||
//'character/mtg.js',
|
||||
//'character/offline.js',
|
||||
//'character/old.js',
|
||||
//'character/ow.js',
|
||||
'character/rank.js',
|
||||
//'character/refresh.js',
|
||||
//'character/shenhua.js',
|
||||
//'character/sp.js',
|
||||
'character/refresh.js',
|
||||
'character/shenhua.js',
|
||||
'character/sp.js',
|
||||
//'character/sp2.js',
|
||||
'character/tw.js',
|
||||
//'character/standard.js',
|
||||
'character/standard.js',
|
||||
//'character/swd.js',
|
||||
//'character/xianjian.js',
|
||||
//'character/xinghuoliaoyuan.js',
|
||||
//'character/yingbian.js',
|
||||
//'character/yijiang.js',
|
||||
'character/yingbian.js',
|
||||
'character/yijiang.js',
|
||||
//'character/yxs.js',
|
||||
//'extension/boss/extension.js',
|
||||
//'layout/default/layout.css',
|
||||
|
@ -51,12 +51,12 @@ window.noname_update={
|
|||
//'layout/nova/layout.css',
|
||||
//'mode/boss.js',
|
||||
//'mode/brawl.js',
|
||||
//'mode/chess.js',
|
||||
'mode/chess.js',
|
||||
//'mode/connect.js',
|
||||
//'mode/doudizhu.js',
|
||||
//'mode/guozhan.js',
|
||||
'mode/guozhan.js',
|
||||
//'mode/identity.js',
|
||||
//'mode/single.js',
|
||||
'mode/single.js',
|
||||
//'mode/stone.js',
|
||||
//'mode/tafang.js',
|
||||
//'mode/versus.js',
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 202 KiB |
Binary file not shown.
After Width: | Height: | Size: 180 KiB |
Binary file not shown.
After Width: | Height: | Size: 130 KiB |
Binary file not shown.
After Width: | Height: | Size: 159 KiB |
|
@ -2357,6 +2357,9 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
if(lib.character[name][1]=='qun') return 3;
|
||||
if(lib.character[name][1]=='key') return 4;
|
||||
};
|
||||
game.data.character=game.data.character.filter(function(i){
|
||||
return Array.isArray(lib.character[i]);
|
||||
})
|
||||
game.data.character.sort(function(a,b){
|
||||
var del=groupSort(a)-groupSort(b);
|
||||
if(del!=0) return del;
|
||||
|
|
|
@ -394,7 +394,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
gz_wujing:['male','wu',4,['donggui','fengyang'],['gzskin']],
|
||||
gz_yanbaihu:['male','qun',4,['gzzhidao','gzyjili'],['gzskin']],
|
||||
gz_xuyou:['male','wei',3,['gzchenglve','gzshicai'],['doublegroup:wei:qun']],
|
||||
gz_xiahouba:['male','shu',4,['gzbaolie'],['doublegroup:shu:wei']],
|
||||
gz_xiahouba:['male','shu',4,['gzbaolie'],['doublegroup:shu:wei','gzskin']],
|
||||
gz_panjun:['male','wu',3,['gzguanwei','xinfu_gongqing'],['doublegroup:wu:shu']],
|
||||
gz_huangzu:['male','qun',4,['gzwangong']],
|
||||
gz_zhugeke:['male','wu',3,['aocai','gzduwu']],
|
||||
|
|
|
@ -1072,6 +1072,7 @@ game.import('mode',function(lib,game,ui,get,ai,_status){
|
|||
position:'e',
|
||||
check:function(){return 1},
|
||||
ai:{
|
||||
order:0.5,
|
||||
respondShan:true,
|
||||
skillTagFilter:function(player){
|
||||
if(!player.countCards('e')) return false;
|
||||
|
|
Loading…
Reference in New Issue