2015-06-12 05:35:29 +00:00
|
|
|
|
'use strict';
|
2015-06-10 09:10:24 +00:00
|
|
|
|
character.hearth={
|
|
|
|
|
character:{
|
2015-06-27 16:21:25 +00:00
|
|
|
|
hs_jaina:['female','wei',3,['huopu','bianxing','bingjia'],['fullskin']],
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_lrexxar:['male','qun',4,['shoulie','gongji'],['fullskin']],
|
|
|
|
|
hs_wuther:['male','qun',4,['fengxian','jieming'],['fullskin']],
|
|
|
|
|
hs_jgarrosh:['male','qun',4,['zhanhou','qiangxi'],['fullskin']],
|
2015-06-10 09:10:24 +00:00
|
|
|
|
hs_malfurion:['male','wu',4,['jihuo'],['fullskin']],
|
2015-06-27 16:21:25 +00:00
|
|
|
|
hs_guldan:['male','qun',3,['fenliu','hongxi'],['fullskin']],
|
2015-08-15 09:10:06 +00:00
|
|
|
|
hs_anduin:['male','qun',3,['shengguang','shijie','anying'],['fullskin']],
|
2015-09-10 09:35:58 +00:00
|
|
|
|
hs_sthrall:['male','wu',4,['tuteng','tzhenji'],['fullskin']],
|
2015-06-13 06:53:40 +00:00
|
|
|
|
hs_waleera:['female','qun',3,['jianren','mengun','wlianji'],['fullskin']],
|
2015-06-19 15:31:36 +00:00
|
|
|
|
|
2015-06-27 16:21:25 +00:00
|
|
|
|
hs_medivh:['male','wei',3,['jingxiang','moying','mdzhoufu'],['fullskin']],
|
|
|
|
|
hs_alleria:['male','wu',3,['fengxing','qiaodong','liegong'],['fullskin']],
|
|
|
|
|
hs_magni:['male','qun',4,['zhongjia','dunji'],['fullskin']],
|
2015-08-15 09:10:06 +00:00
|
|
|
|
|
|
|
|
|
hs_neptulon:['male','wu',4,['liechao','qingliu'],['fullskin']],
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_wvelen:['male','qun',3,['shengyan','xianzhi'],['fullskin']],
|
2015-08-15 09:10:06 +00:00
|
|
|
|
hs_antonidas:['male','wei',3,['yanshu','bingshuang'],['fullskin']],
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_alakir:['male','wei',3,['fengnu','shengdun'],['fullskin']],
|
2015-09-10 09:35:58 +00:00
|
|
|
|
hs_zhouzhuo:['male','qun',3,['jubao','qice'],['fullskin']],
|
2015-09-10 13:56:57 +00:00
|
|
|
|
hs_yngvar:['male','qun',3,['huanwu'],['fullskin']],
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_bchillmaw:['male','wei',6,['hanshuang','bingshi'],['fullskin']],
|
2015-09-16 02:45:45 +00:00
|
|
|
|
hs_malorne:['male','wu',3,['enze','chongsheng'],['fullskin']],
|
2015-08-15 09:10:06 +00:00
|
|
|
|
|
|
|
|
|
hs_ronghejuren:['male','shu',8,[],['fullskin']],
|
|
|
|
|
hs_wujiyuansu:['male','qun',3,['wujiwuji'],['fullskin']],
|
|
|
|
|
hs_mijiaojisi:['female','qun',3,['kuixin'],['fullskin']],
|
|
|
|
|
hs_huzhixiannv:['female','wu',3,['jingmeng','qingliu'],['fullskin']],
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_tgolem:['male','qun',4,['guozai'],['fullskin']],
|
2015-09-10 09:35:58 +00:00
|
|
|
|
hs_totemic:['male','wu',3,['s_tuteng'],['fullskin']],
|
|
|
|
|
},
|
|
|
|
|
perfectPair:{
|
|
|
|
|
hs_sthrall:['hs_totemic','hs_alakir','hs_neptulon','hs_yngvar','hs_tgolem'],
|
|
|
|
|
hs_anduin:['hs_wvelen','hs_mijiaojisi'],
|
|
|
|
|
hs_jaina:['hs_antonidas'],
|
|
|
|
|
hs_malfurion:['hs_malorne'],
|
2015-06-10 09:10:24 +00:00
|
|
|
|
},
|
|
|
|
|
skill:{
|
2015-09-16 02:45:45 +00:00
|
|
|
|
enze:{
|
2015-09-03 03:49:14 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player.num('h')!=target.num('h');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var num=player.num('h')-target.num('h');
|
|
|
|
|
if(num>0){
|
|
|
|
|
target.draw(num);
|
|
|
|
|
}
|
|
|
|
|
else if(num<0){
|
|
|
|
|
target.chooseToDiscard(-num,true);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.8,
|
2015-09-10 13:56:57 +00:00
|
|
|
|
order:function(name,player){
|
2015-09-03 03:49:14 +00:00
|
|
|
|
return 10;
|
|
|
|
|
},
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return player.num('h')-target.num('h');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
expose:0.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
chongsheng:{
|
|
|
|
|
unique:true,
|
|
|
|
|
enable:'chooseToUse',
|
|
|
|
|
mark:true,
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.chongsheng=0;
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(event.type!='dying') return false;
|
|
|
|
|
if(player!=_status.dying) return false;
|
|
|
|
|
if(player.storage.chongsheng==3) return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.hp=Math.min(3-player.storage.chongsheng,player.maxHp);
|
|
|
|
|
player.discard(player.get('hej'));
|
|
|
|
|
player.draw(3-player.storage.chongsheng);
|
|
|
|
|
player.storage.chongsheng++;
|
|
|
|
|
if(player.storage.chongsheng==3){
|
|
|
|
|
player.unmarkSkill('chongsheng');
|
|
|
|
|
}
|
|
|
|
|
if(player.classList.contains('linked')) player.link();
|
|
|
|
|
if(player.classList.contains('turnedover')) player.turnOver();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
skillTagFilter:function(player){
|
|
|
|
|
if(player.storage.chongsheng==3) return false;
|
|
|
|
|
if(player.hp>0) return false;
|
|
|
|
|
},
|
|
|
|
|
save:true,
|
|
|
|
|
result:{
|
|
|
|
|
player:10
|
|
|
|
|
},
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(target.storage.chongsheng<3) return 0.6;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage){
|
|
|
|
|
return '剩余'+get.cnNumber(3-storage)+'次';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
guozai:{
|
2015-09-10 09:35:58 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:2,
|
2015-09-03 03:49:14 +00:00
|
|
|
|
filter:function(event,player){
|
2015-09-10 09:35:58 +00:00
|
|
|
|
return player.num('h')<4;
|
|
|
|
|
},
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.storage.guozai2=0;
|
2015-09-03 03:49:14 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
2015-09-10 09:35:58 +00:00
|
|
|
|
var num=4-player.num('h');
|
|
|
|
|
player.draw(num);
|
|
|
|
|
player.addSkill('guozai2');
|
|
|
|
|
player.storage.guozai2+=num;
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
2015-09-10 13:56:57 +00:00
|
|
|
|
player:1
|
2015-09-10 09:35:58 +00:00
|
|
|
|
}
|
2015-09-03 03:49:14 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
guozai2:{
|
|
|
|
|
mark:true,
|
|
|
|
|
intro:{
|
2015-09-10 09:35:58 +00:00
|
|
|
|
content:function(storage){
|
|
|
|
|
return '需弃置'+get.cnNumber(storage)+'张牌';
|
2015-09-03 03:49:14 +00:00
|
|
|
|
}
|
2015-09-10 09:35:58 +00:00
|
|
|
|
},
|
|
|
|
|
trigger:{player:'phaseUseEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.chooseToDiscard('he',true,player.storage.guozai2);
|
|
|
|
|
player.storage.guozai2=0;
|
|
|
|
|
player.removeSkill('guozai2');
|
2015-09-03 03:49:14 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
hanshuang:{
|
|
|
|
|
trigger:{source:'damageEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.card&&get.color(event.card)=='black'&&
|
|
|
|
|
!event.player.isTurnedOver()&&event.player.isAlive();
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.player.turnOver();
|
|
|
|
|
player.loseHp();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5,
|
|
|
|
|
effect:{
|
|
|
|
|
player:function(card,player,target,current){
|
|
|
|
|
if(get.color(card)=='black'&&get.tag(card,'damage')){
|
|
|
|
|
console.log(1);
|
|
|
|
|
return [1,0,1,-2];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
bingshi:{
|
|
|
|
|
trigger:{player:'dieBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
event.targets=get.players(player);
|
|
|
|
|
event.targets.remove(player);
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.targets.length){
|
|
|
|
|
event.targets.shift().damage();
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huanwu:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return !target.storage.huanwu;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
target.gainMaxHp();
|
|
|
|
|
target.recover();
|
|
|
|
|
target.draw(2);
|
|
|
|
|
target.storage.huanwu=true;
|
|
|
|
|
target.mark('huanwu',{
|
|
|
|
|
name:'唤雾',
|
|
|
|
|
content:'已发动'
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.2,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return 1/target.hp;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
order:10,
|
|
|
|
|
expose:0.3
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fengnu:{
|
|
|
|
|
mod:{
|
|
|
|
|
cardUsable:function(){
|
|
|
|
|
return Infinity;
|
|
|
|
|
},
|
|
|
|
|
targetInRange:function(){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(_status.currentPhase!=player) return false;
|
|
|
|
|
return get.cardCount(event.card,player)>1;
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shengdun:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
silent:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
priority:10,
|
|
|
|
|
init2:function(player){
|
|
|
|
|
player.markSkill('shengdun');
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
if(player.storage.shengdun){
|
|
|
|
|
player.markSkill('shengdun');
|
|
|
|
|
}
|
|
|
|
|
player.storage.shengdun=false;
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'未发动'
|
|
|
|
|
},
|
|
|
|
|
group:'shengdun2'
|
|
|
|
|
},
|
|
|
|
|
shengdun2:{
|
|
|
|
|
trigger:{player:'damageBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.num>0&&!player.storage.shengdun;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.num--;
|
|
|
|
|
player.storage.shengdun=true;
|
|
|
|
|
player.unmarkSkill('shengdun');
|
|
|
|
|
}
|
|
|
|
|
},
|
2015-08-15 09:10:06 +00:00
|
|
|
|
jingmeng:{
|
|
|
|
|
trigger:{player:'useCard'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return _status.currentPhase==player&&get.cardCount(true,player)==1;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var type=get.type(trigger.card);
|
|
|
|
|
var card=get.cardPile(function(card){
|
|
|
|
|
return get.type(card)==type;
|
|
|
|
|
});
|
|
|
|
|
if(card){
|
|
|
|
|
player.gain(card,'gain2');
|
|
|
|
|
game.log(get.translation(player)+'获得了'+get.translation(card));
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.1
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
kuixin:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var nh=player.num('h');
|
|
|
|
|
var nm=1;
|
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
var target=game.players[i];
|
|
|
|
|
if(target!=player&&Math.abs(target.num('h')-nh)<=nm){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var nh=player.num('h');
|
|
|
|
|
var nm=1;
|
|
|
|
|
var check=true;
|
|
|
|
|
if(player.num('h','tao')){
|
|
|
|
|
check=false;
|
|
|
|
|
}
|
|
|
|
|
else if(player.num('h','shan')&&player.num('h','wuxie')){
|
|
|
|
|
check=false;
|
|
|
|
|
}
|
|
|
|
|
player.chooseTarget('是否发动【窥心】?',function(card,player,target){
|
|
|
|
|
return target!=player&&Math.abs(target.num('h')-nh)<=nm;
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
if(!check) return 0;
|
|
|
|
|
if(ai.get.attitude(player,target)<0){
|
|
|
|
|
return target.num('h')-nh;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.logSkill('kuixin',result.targets);
|
|
|
|
|
var cards0=target.get('h');
|
|
|
|
|
var cards1=player.get('h');
|
|
|
|
|
target.gain(cards1);
|
|
|
|
|
player.gain(cards0);
|
|
|
|
|
target.$give(cards0.length,player);
|
|
|
|
|
player.$give(cards1.length,target);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.2,
|
|
|
|
|
threaten:1.5
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
wujiwuji:{
|
|
|
|
|
trigger:{player:'phaseUseEnd'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return get.cardCount(true,player)>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw(get.cardCount(true,player));
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.3
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
bingshuang:{
|
|
|
|
|
trigger:{source:'damageEnd'},
|
|
|
|
|
filter:function(event,player){
|
2015-09-03 03:49:14 +00:00
|
|
|
|
return event.card&&get.type(event.card)=='trick'&&
|
|
|
|
|
event.player.isAlive()&&!event.player.isTurnedOver();
|
2015-08-15 09:10:06 +00:00
|
|
|
|
},
|
|
|
|
|
prompt:function(event,player){
|
|
|
|
|
return '是否对'+get.translation(event.player)+'发动【冰霜】?';
|
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return ai.get.attitude(player,event.player)<=0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.player.draw(2);
|
|
|
|
|
trigger.player.turnOver();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
yanshu:{
|
2015-09-03 03:49:14 +00:00
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('h',{type:'basic'})<player.num('h');
|
|
|
|
|
},
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.type(card)!='basic';
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 6-ai.get.value(card);
|
|
|
|
|
},
|
2015-08-15 09:10:06 +00:00
|
|
|
|
content:function(){
|
2015-09-03 03:49:14 +00:00
|
|
|
|
var card=cards[0];
|
|
|
|
|
player.gain(game.createCard('liuxinghuoyu',get.suit(card),get.number(card)),'gain2');
|
2015-08-15 09:10:06 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
2015-09-03 03:49:14 +00:00
|
|
|
|
order:9,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
},
|
2015-08-15 09:10:06 +00:00
|
|
|
|
threaten:2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shengyan:{
|
|
|
|
|
trigger:{global:'recoverEnd'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.skills.contains('shengyan2')&&event.player.hp<event.player.maxHp;
|
|
|
|
|
},
|
|
|
|
|
prompt:function(event,player){
|
|
|
|
|
return '是否对'+get.translation(event.player)+'发动【圣言】?';
|
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return ai.get.attitude(player,event.player)>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.player.recover();
|
|
|
|
|
player.addTempSkill('shengyan2','phaseAfter');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shengyan2:{},
|
|
|
|
|
liechao:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.isTurnedOver()&&player.num('h')<=player.hp;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw(4);
|
|
|
|
|
player.turnOver();
|
|
|
|
|
player.skip('phaseDiscard');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:10,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qingliu:{
|
|
|
|
|
trigger:{player:'damageBefore'},
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.nature=='fire';
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.untrigger();
|
|
|
|
|
trigger.finish();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
nofire:true,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
if(get.tag(card,'fireDamage')) return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2015-06-27 16:21:25 +00:00
|
|
|
|
zhongjia:{
|
|
|
|
|
trigger:{player:'damageEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.num>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.changeHujia();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
nohujia:true,
|
|
|
|
|
skillTagFilter:function(player){
|
|
|
|
|
return player.hp>1;
|
|
|
|
|
},
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(!target.hujia) return 0.8;
|
|
|
|
|
},
|
|
|
|
|
effect:{
|
2015-06-27 16:36:03 +00:00
|
|
|
|
target:function(card,player){
|
2015-06-27 16:21:25 +00:00
|
|
|
|
if(get.tag(card,'damage')){
|
|
|
|
|
if(player.skills.contains('jueqing')) return [1,-1];
|
|
|
|
|
return 0.8;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
dunji:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.hujia?true:false;
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player!=target;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:function(){
|
|
|
|
|
return [1,_status.event.player.hujia];
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
if(target==targets[0]){
|
|
|
|
|
player.changeHujia(-player.hujia);
|
|
|
|
|
}
|
|
|
|
|
target.damage();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return ai.get.damageEffect(target,player,target)+0.5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fengxing:{
|
2015-08-15 09:10:06 +00:00
|
|
|
|
trigger:{player:['useCard']},
|
2015-06-27 16:21:25 +00:00
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.card&&event.card.name=='sha';
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fengxian:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target.num('h')>0;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.chooseToDiscard(true);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var nh=target.num('h');
|
|
|
|
|
switch(nh){
|
|
|
|
|
case 0:return 0;
|
|
|
|
|
case 1:return -1.5;
|
|
|
|
|
case 2:return -1.3;
|
|
|
|
|
case 3:return -1;
|
|
|
|
|
default:return -0.8;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
qiaodong:{
|
|
|
|
|
enable:['chooseToRespond'],
|
|
|
|
|
filterCard:{type:'equip'},
|
2015-08-15 09:10:06 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('he',{type:'equip'})>0;
|
|
|
|
|
},
|
2015-06-27 16:21:25 +00:00
|
|
|
|
viewAs:{name:'shan'},
|
|
|
|
|
position:'he',
|
|
|
|
|
prompt:'将一张装备牌当闪使用或打出',
|
|
|
|
|
check:function(){return 1},
|
|
|
|
|
ai:{
|
|
|
|
|
respondShan:true,
|
|
|
|
|
skillTagFilter:function(player){
|
|
|
|
|
if(!player.num('he',{type:'equip'})) return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zhanhou:{
|
|
|
|
|
init:function(player){
|
|
|
|
|
player.forcemin=true;
|
|
|
|
|
},
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filterCard:{type:'equip'},
|
2015-08-15 09:10:06 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('h',{type:'equip'})>0;
|
|
|
|
|
},
|
2015-06-27 16:21:25 +00:00
|
|
|
|
check:function(){
|
|
|
|
|
return 1;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.changeHujia();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:2,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mod:{
|
|
|
|
|
globalFrom:function(from,to,distance){
|
|
|
|
|
return distance-from.hujia;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
shijie:{
|
2015-06-19 15:31:36 +00:00
|
|
|
|
trigger:{player:'phaseEnd'},
|
2015-06-27 16:21:25 +00:00
|
|
|
|
direct:true,
|
2015-06-19 15:31:36 +00:00
|
|
|
|
filter:function(event,player){
|
2015-06-27 16:21:25 +00:00
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
if(game.players[i]!=player&&game.players[i].num('h')){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget('是否发动【视界】',function(card,player,target){
|
|
|
|
|
return player!=target&&target.num('h')>0;
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return 11-ai.get.attitude(player,target);
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('shijie',result.targets);
|
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.gain(target.get('h').randomGet());
|
|
|
|
|
event.target=target;
|
|
|
|
|
target.$give(1,player);
|
|
|
|
|
game.delay();
|
|
|
|
|
event.target.draw();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.1
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shengguang:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filterCard:{color:'red'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('he',{color:'red'})>0;
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
usable:1,
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 9-ai.get.value(card)
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player.storage.anying) return true;
|
|
|
|
|
if(target.hp>=target.maxHp) return false;
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
if(player.storage.anying){
|
|
|
|
|
target.loseHp();
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.recover();
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(target.hp<target.maxHp){
|
|
|
|
|
target.draw();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(player.storage.anying) return -1;
|
|
|
|
|
if(target.hp==1) return 5;
|
|
|
|
|
if(player==target&&player.num('h')>player.hp) return 5;
|
|
|
|
|
return 2;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:2,
|
|
|
|
|
expose:0.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xinci:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filterCard:{color:'black'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('he',{color:'black'})>0;
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
usable:1,
|
|
|
|
|
mark:true,
|
|
|
|
|
intro:{
|
|
|
|
|
content:'已进入暗影形态'
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 9-ai.get.value(card)
|
|
|
|
|
},
|
|
|
|
|
filterTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.loseHp();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9,
|
|
|
|
|
result:{
|
|
|
|
|
target:-1
|
|
|
|
|
},
|
|
|
|
|
threaten:2,
|
|
|
|
|
expose:0.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
anying:{
|
|
|
|
|
unique:true,
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.storage.anying&&player.num('he',{color:'black'})>1;
|
|
|
|
|
},
|
|
|
|
|
selectCard:2,
|
|
|
|
|
filterCard:{color:'black'},
|
|
|
|
|
position:'he',
|
|
|
|
|
check:function(card){
|
|
|
|
|
return 5-ai.get.value(card);
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.storage.anying=true;
|
|
|
|
|
player.removeSkill('shengguang');
|
|
|
|
|
player.addSkill('xinci');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
bianxing:{
|
|
|
|
|
trigger:{global:'useCard'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.skills.contains('bianxing2')) return false;
|
|
|
|
|
if(event.player==player) return false;
|
|
|
|
|
if(_status.currentPhase!=event.player) return false;
|
|
|
|
|
if(!event.targets) return false;
|
|
|
|
|
if(event.targets.length!=1) return false;
|
2015-08-15 09:10:06 +00:00
|
|
|
|
if(event.targets[0]==event.player) return false;
|
2015-06-27 16:21:25 +00:00
|
|
|
|
var hs=player.get('h');
|
|
|
|
|
for(var i=0;i<hs.length;i++){
|
|
|
|
|
if(hs[i].name!=event.card.name){
|
2015-08-15 09:10:06 +00:00
|
|
|
|
var card=hs[i];
|
2015-09-16 07:31:41 +00:00
|
|
|
|
if(get.type(card)=='basic'&&get.info(card.enable)){
|
2015-08-15 09:10:06 +00:00
|
|
|
|
return true;
|
2015-06-27 16:21:25 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
2015-06-19 15:31:36 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
2015-06-27 16:21:25 +00:00
|
|
|
|
'step 0'
|
|
|
|
|
var eff=ai.get.effect(trigger.targets[0],trigger.card,trigger.player,player);
|
|
|
|
|
var att=ai.get.attitude(player,trigger.player);
|
|
|
|
|
player.chooseCard('是否发动【变形】?',function(card){
|
2015-08-15 09:10:06 +00:00
|
|
|
|
if(card.name!=trigger.card.name){
|
2015-09-16 07:31:41 +00:00
|
|
|
|
if(get.type(card)=='basic'&&get.info(card).enable){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
2015-06-19 15:31:36 +00:00
|
|
|
|
}
|
2015-06-27 16:21:25 +00:00
|
|
|
|
return false;
|
|
|
|
|
}).ai=function(card){
|
|
|
|
|
if(att>=0) return 0;
|
2015-08-15 09:10:06 +00:00
|
|
|
|
if(card.name=='tao'||card.name=='caoyao'){
|
|
|
|
|
if(trigger.targets[0].hp==trigger.targets[0].maxHp) return 0;
|
|
|
|
|
}
|
|
|
|
|
if(eff>=0) return 0;
|
|
|
|
|
return ai.get.effect(trigger.targets[0],card,trigger.player,player);
|
2015-06-19 15:31:36 +00:00
|
|
|
|
};
|
2015-06-27 16:21:25 +00:00
|
|
|
|
'step 1'
|
2015-06-19 15:31:36 +00:00
|
|
|
|
if(result.bool){
|
2015-06-27 16:21:25 +00:00
|
|
|
|
var card=result.cards[0];
|
|
|
|
|
player.lose(result.cards);
|
|
|
|
|
event.cards=result.cards;
|
|
|
|
|
player.logSkill('bianxing',trigger.player);
|
2015-08-15 09:10:06 +00:00
|
|
|
|
game.log(get.translation(player)+'将'+get.translation(trigger.card.name)+'变为'+get.translation(result.cards));
|
2015-06-27 16:21:25 +00:00
|
|
|
|
game.delay(0.5);
|
|
|
|
|
trigger.untrigger();
|
|
|
|
|
trigger.card=card;
|
|
|
|
|
trigger.cards=[card];
|
|
|
|
|
player.addTempSkill('bianxing2','phaseAfter');
|
2015-06-19 15:31:36 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
2015-06-27 16:21:25 +00:00
|
|
|
|
'step 2'
|
|
|
|
|
player.$throw(event.cards);
|
|
|
|
|
game.delay();
|
2015-08-15 09:10:06 +00:00
|
|
|
|
'step 3'
|
|
|
|
|
// player.draw();
|
|
|
|
|
'step 4'
|
2015-06-27 16:21:25 +00:00
|
|
|
|
trigger.trigger('useCard');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.2,
|
|
|
|
|
threaten:1.8
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
bingjia:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.skills.contains('bingjia2');
|
|
|
|
|
},
|
2015-08-15 09:10:06 +00:00
|
|
|
|
filterCard:true,
|
2015-06-27 16:21:25 +00:00
|
|
|
|
check:function(card){
|
|
|
|
|
return 6-ai.get.value(card);
|
|
|
|
|
},
|
|
|
|
|
discard:false,
|
|
|
|
|
prepare:function(cards,player){
|
|
|
|
|
player.$give(1,player);
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.storage.bingjia=cards[0];
|
|
|
|
|
player.addSkill('bingjia2');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
bingjia2:{
|
|
|
|
|
mark:true,
|
|
|
|
|
trigger:{target:'useCardToBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
2015-08-15 09:10:06 +00:00
|
|
|
|
return event.player!=player&&get.suit(event.card)==get.suit(player.storage.bingjia);
|
2015-06-27 16:21:25 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.showCards([player.storage.bingjia],get.translation(player)+'发动了【冰甲】');
|
|
|
|
|
'step 1'
|
|
|
|
|
ui.discardPile.appendChild(player.storage.bingjia);
|
|
|
|
|
delete player.storage.bingjia;
|
2015-08-15 09:10:06 +00:00
|
|
|
|
player.changeHujia();
|
2015-06-27 16:21:25 +00:00
|
|
|
|
player.removeSkill('bingjia2');
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
mark:function(dialog,content,player){
|
|
|
|
|
if(player==game.me||player.isUnderControl()){
|
|
|
|
|
dialog.add([player.storage.bingjia]);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return '已发动冰甲';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
content:function(content,player){
|
|
|
|
|
if(player==game.me||player.isUnderControl()){
|
|
|
|
|
return get.translation(player.storage.bingjia);
|
|
|
|
|
}
|
|
|
|
|
return '已发动冰甲';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
bianxing2:{},
|
|
|
|
|
moying:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
2015-09-03 03:49:14 +00:00
|
|
|
|
skillcheck:function(event,player){
|
|
|
|
|
if(!player.num('h',{suit:'spade'})) return false;
|
2015-06-27 16:21:25 +00:00
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
if(game.players[i].num('j','shandian')){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
check:function(){
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
2015-09-03 03:49:14 +00:00
|
|
|
|
if(!lib.skill.moying.skillcheck(trigger,player)){
|
|
|
|
|
player.draw();
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
2015-06-27 16:21:25 +00:00
|
|
|
|
var card=null;
|
|
|
|
|
for(var i=0;i<ui.cardPile.childNodes.length;i++){
|
|
|
|
|
if(ui.cardPile.childNodes[i].name=='shandian'){
|
|
|
|
|
card=ui.cardPile.childNodes[i];break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!card){
|
|
|
|
|
for(var i=0;i<ui.discardPile.childNodes.length;i++){
|
|
|
|
|
if(ui.discardPile.childNodes[i].name=='shandian'){
|
|
|
|
|
card=ui.discardPile.childNodes[i];break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(card){
|
|
|
|
|
player.addJudge(card);
|
|
|
|
|
}
|
2015-06-29 02:51:59 +00:00
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
2015-06-27 16:21:25 +00:00
|
|
|
|
'step 1'
|
|
|
|
|
game.delay();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.5
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mdzhoufu:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
filterCard:{color:'black'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('h',{color:'black'})>0;
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player!=target&&!target.skills.contains('mdzhoufu2');
|
|
|
|
|
},
|
|
|
|
|
prepare:function(cards,player){
|
|
|
|
|
player.$throw(cards);
|
|
|
|
|
},
|
|
|
|
|
discard:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.$gain2(cards);
|
|
|
|
|
target.storage.mdzhoufu2=cards[0];
|
|
|
|
|
target.addSkill('mdzhoufu2');
|
|
|
|
|
target.storage.mdzhoufu3=player;
|
|
|
|
|
ui.special.appendChild(cards[0]);
|
|
|
|
|
},
|
|
|
|
|
check:function(card){
|
2015-06-29 02:51:59 +00:00
|
|
|
|
if(get.suit(card)=='spade'&&card.number>=2&&card.number<=9){
|
|
|
|
|
return 6-ai.get.value(card);
|
|
|
|
|
}
|
|
|
|
|
return -1;
|
2015-06-27 16:21:25 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
2015-08-15 09:10:06 +00:00
|
|
|
|
tag:{
|
|
|
|
|
rejudge:0.1,
|
|
|
|
|
},
|
2015-06-27 16:36:03 +00:00
|
|
|
|
threaten:1.5,
|
2015-06-27 16:21:25 +00:00
|
|
|
|
expose:0.1,
|
2015-06-29 02:51:59 +00:00
|
|
|
|
order:10,
|
2015-06-27 16:21:25 +00:00
|
|
|
|
result:{
|
2015-06-29 02:51:59 +00:00
|
|
|
|
target:-1
|
2015-06-27 16:21:25 +00:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mdzhoufu2:{
|
|
|
|
|
trigger:{player:'judge'},
|
|
|
|
|
forced:true,
|
|
|
|
|
priority:10,
|
|
|
|
|
mark:'card',
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
ui.discardPile.appendChild(player.storage.mdzhoufu2);
|
|
|
|
|
player.$throw(player.storage.mdzhoufu2);
|
|
|
|
|
if(player.storage.mdzhoufu3.isAlive()){
|
2015-09-03 03:49:14 +00:00
|
|
|
|
// player.storage.mdzhoufu3.draw();
|
|
|
|
|
player.storage.mdzhoufu3.gain(player.judging,'gain2');
|
2015-06-19 15:31:36 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
2015-06-27 16:21:25 +00:00
|
|
|
|
game.delay(1.5);
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
|
|
|
|
player.judging=player.storage.mdzhoufu2;
|
|
|
|
|
trigger.position.appendChild(player.storage.mdzhoufu2);
|
|
|
|
|
// trigger.untrigger();
|
|
|
|
|
game.log(get.translation(player)+'的判定牌改为'+get.translation(player.storage.mdzhoufu2));
|
|
|
|
|
player.removeSkill('mdzhoufu2');
|
|
|
|
|
delete player.storage.mdzhoufu2;
|
|
|
|
|
delete player.storage.mdzhoufu3;
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'card'
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
moying_old:{
|
|
|
|
|
trigger:{player:'damageEnd',source:'damageEnd'},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
var target=(player==event.player)?event.source:event.player;
|
|
|
|
|
return ai.get.attitude(player,target)<0;
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var target=(player==event.player)?event.source:event.player;
|
|
|
|
|
return target.isAlive();
|
|
|
|
|
},
|
|
|
|
|
prompt:function(event,player){
|
|
|
|
|
var target=(player==event.player)?event.source:event.player;
|
|
|
|
|
return '是否对'+get.translation(target)+'发动【魔影】?';
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
event.target=(player==trigger.player)?trigger.source:trigger.player;
|
|
|
|
|
event.target.judge(function(card){
|
|
|
|
|
return get.color(card)=='black'?-1:0;
|
|
|
|
|
});
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.color=='black'){
|
2015-06-19 15:31:36 +00:00
|
|
|
|
event.target.loseHp();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.1,
|
|
|
|
|
threaten:1.3
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xianzhi:{
|
|
|
|
|
trigger:{global:'judgeBegin'},
|
2015-06-27 16:21:25 +00:00
|
|
|
|
direct:true,
|
2015-06-19 15:31:36 +00:00
|
|
|
|
filter:function(){
|
|
|
|
|
return ui.cardPile.childNodes.length>1;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var str='';
|
|
|
|
|
if(trigger.card) str=get.translation(trigger.card.viewAs||trigger.card.name);
|
|
|
|
|
else if(trigger.skill) str=get.translation(trigger.skill);
|
|
|
|
|
else str=get.translation(trigger.parent.name);
|
|
|
|
|
|
|
|
|
|
var cards=[ui.cardPile.childNodes[0],ui.cardPile.childNodes[1]];
|
|
|
|
|
var att=ai.get.attitude(player,trigger.player);
|
|
|
|
|
var delta=trigger.judge(ui.cardPile.childNodes[1])-trigger.judge(ui.cardPile.childNodes[0]);
|
|
|
|
|
player.chooseControl('调换顺序','cancel',
|
|
|
|
|
ui.create.dialog('先知:'+get.translation(trigger.player)+'的'+str+'判定',cards,'hidden')).ai=function(){
|
|
|
|
|
if(att*delta>0) return '调换顺序';
|
|
|
|
|
else return 'cancel';
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.control=='调换顺序'){
|
2015-06-27 16:21:25 +00:00
|
|
|
|
player.logSkill('xianzhi');
|
2015-06-19 15:31:36 +00:00
|
|
|
|
var card=ui.cardPile.firstChild;
|
|
|
|
|
ui.cardPile.removeChild(card);
|
|
|
|
|
ui.cardPile.insertBefore(card,ui.cardPile.firstChild.nextSibling);
|
|
|
|
|
game.log(get.translation(player)+'调换了牌堆顶两张牌的顺序');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.1,
|
2015-06-27 16:21:25 +00:00
|
|
|
|
tag:{
|
|
|
|
|
rejudge:0.5
|
|
|
|
|
}
|
2015-06-19 15:31:36 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jingxiang:{
|
|
|
|
|
trigger:{player:'chooseToRespondBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(event.responded) return false;
|
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
if(game.players[i]!=player&&game.players[i].num('h')){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var players=[];
|
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
if(game.players[i]!=player&&game.players[i].num('h')){
|
|
|
|
|
players.push(game.players[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(!players.length){
|
|
|
|
|
event.finish();
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
var target=players.randomGet();
|
|
|
|
|
event.target=target;
|
|
|
|
|
var cards=target.get('h');
|
|
|
|
|
player.chooseCardButton('镜像:选择'+get.translation(target)+'的一张卡手牌打出',cards).filterButton=function(button){
|
|
|
|
|
return trigger.filterCard(button.link);
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('jingxiang',event.target);
|
|
|
|
|
event.target.lose(result.links);
|
|
|
|
|
trigger.untrigger();
|
|
|
|
|
trigger.responded=true;
|
|
|
|
|
result.buttons[0].link.remove();
|
|
|
|
|
trigger.result={bool:true,card:result.buttons[0].link}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
2015-06-27 16:36:03 +00:00
|
|
|
|
target:function(card){
|
2015-06-19 15:31:36 +00:00
|
|
|
|
if(get.tag(card,'respondShan')) return 0.7;
|
|
|
|
|
if(get.tag(card,'respondSha')) return 0.7;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
2015-06-13 06:53:40 +00:00
|
|
|
|
wlianji:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
frequent:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return get.cardCount(true,player)>player.hp;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw(2);
|
|
|
|
|
},
|
|
|
|
|
init:function(player){player.storage.jingce=true},
|
|
|
|
|
intro:{
|
|
|
|
|
content:function(storage,player){
|
|
|
|
|
if(_status.currentPhase==player) return '已使用'+get.cardCount(true,player)+'张牌';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mengun:{
|
|
|
|
|
trigger:{global:'useCardToBefore'},
|
|
|
|
|
priority:12,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(event.player==player) return false;
|
|
|
|
|
if(_status.currentPhase!=event.player) return false;
|
|
|
|
|
if(event.player.skills.contains('mengun2')) return false;
|
|
|
|
|
if(get.itemtype(event.card)!='card') return false;
|
|
|
|
|
if(!player.num('h',{suit:get.suit(event.card)})) return false;
|
|
|
|
|
return get.type(event.card)=='basic';
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
var val=ai.get.value(trigger.card);
|
|
|
|
|
var suit=get.suit(trigger.card);
|
|
|
|
|
var eff=ai.get.effect(trigger.target,trigger.card,trigger.player,player);
|
|
|
|
|
player.chooseToDiscard('是否对'+get.translation(trigger.player)+'使用的'+get.translation(trigger.card)+'发动【闷棍】?',function(card){
|
|
|
|
|
return get.suit(card)==suit;
|
|
|
|
|
}).ai=function(card){
|
|
|
|
|
if(eff>=0) return 0;
|
|
|
|
|
return Math.min(8,1+val)-ai.get.value(card);
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('mengun',trigger.player);
|
|
|
|
|
game.log(get.translation(trigger.player)+'收回了'+get.translation(trigger.cards));
|
|
|
|
|
trigger.untrigger();
|
|
|
|
|
trigger.finish();
|
|
|
|
|
game.delay();
|
|
|
|
|
}
|
2015-08-15 09:10:06 +00:00
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
2015-06-13 06:53:40 +00:00
|
|
|
|
"step 2"
|
|
|
|
|
trigger.player.$gain2(trigger.cards);
|
|
|
|
|
trigger.player.gain(trigger.cards);
|
|
|
|
|
trigger.player.storage.mengun2=trigger.cards[0];
|
|
|
|
|
trigger.player.addTempSkill('mengun2','phaseEnd');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
mengun2:{
|
|
|
|
|
mark:'card',
|
|
|
|
|
mod:{
|
|
|
|
|
cardEnabled:function(card,player){
|
|
|
|
|
if(card==player.storage.mengun2) return false;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'card',
|
|
|
|
|
onunmark:function(storage,player){
|
|
|
|
|
delete player.storage.mengun2;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
jianren:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.get('e','1')?true:false;
|
|
|
|
|
},
|
|
|
|
|
filterCard:function(card,player){
|
|
|
|
|
return card==player.get('e','1');
|
|
|
|
|
},
|
|
|
|
|
position:'e',
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target!=player;
|
|
|
|
|
},
|
|
|
|
|
selectCard:-1,
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.damage();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return ai.get.damageEffect(target,player,target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2015-06-10 09:10:24 +00:00
|
|
|
|
jihuo:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return !player.storage.jihuo&&player.num('h')>0;
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseToDiscard('是否发动【激活】?').ai=ai.get.unuseful2;
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('jihuo');
|
|
|
|
|
player.storage.jihuo=true;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
player.phase();
|
|
|
|
|
"step 3"
|
|
|
|
|
player.storage.jihuo=false;
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tzhenji:{
|
2015-06-12 05:35:29 +00:00
|
|
|
|
trigger:{player:'discardAfter'},
|
|
|
|
|
direct:true,
|
2015-08-15 09:10:06 +00:00
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(player.skills.contains('tzhenji2')){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
2015-06-12 05:35:29 +00:00
|
|
|
|
if(event.cards){
|
|
|
|
|
for(var i=0;i<event.cards.length;i++){
|
|
|
|
|
if(get.color(event.cards[i])=='black') return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0";
|
|
|
|
|
player.chooseTarget('是否发动【震击】?').ai=function(target){
|
2015-08-15 09:10:06 +00:00
|
|
|
|
var bool=ai.get.attitude(player,target)>0;
|
|
|
|
|
return ai.get.damageEffect(target,player,player,'thunder')-(bool?1:0);
|
2015-06-12 05:35:29 +00:00
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
game.delay(0.5);
|
|
|
|
|
var target=result.targets[0];
|
|
|
|
|
player.logSkill('tzhenji',target,'thunder');
|
2015-08-15 09:10:06 +00:00
|
|
|
|
target.damage('thunder');
|
2015-06-12 05:35:29 +00:00
|
|
|
|
var cs=target.get('he');
|
|
|
|
|
if(cs.length){
|
|
|
|
|
target.discard(cs.randomGet());
|
|
|
|
|
}
|
2015-08-15 09:10:06 +00:00
|
|
|
|
player.addTempSkill('tzhenji2','phaseAfter');
|
2015-06-12 05:35:29 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
2015-06-14 05:07:39 +00:00
|
|
|
|
threaten:1.2,
|
|
|
|
|
expose:0.3,
|
|
|
|
|
effect:{
|
2015-06-27 16:36:03 +00:00
|
|
|
|
target:function(card,player,target){
|
2015-06-14 05:07:39 +00:00
|
|
|
|
if(get.tag(card,'loseCard')&&target.num('he')){
|
|
|
|
|
return 0.7;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2015-06-12 05:35:29 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
2015-08-15 09:10:06 +00:00
|
|
|
|
tzhenji2:{},
|
2015-06-12 05:35:29 +00:00
|
|
|
|
tzhenji_old:{
|
|
|
|
|
trigger:{player:['useCard','respondEnd']},
|
|
|
|
|
filter:function(event){
|
|
|
|
|
return get.suit(event.card)=='spade';
|
2015-06-10 09:10:24 +00:00
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0";
|
|
|
|
|
player.chooseTarget('是否发动【震击】?').ai=function(target){
|
|
|
|
|
return ai.get.damageEffect(target,player,player,'thunder')-1;
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('tzhenji',result.targets,'thunder');
|
|
|
|
|
event.target=result.targets[0];
|
2015-06-12 05:35:29 +00:00
|
|
|
|
event.target.judge();
|
2015-06-10 09:10:24 +00:00
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
2015-06-12 05:35:29 +00:00
|
|
|
|
if(result.color=='red'){
|
|
|
|
|
event.target.damage('fire');
|
|
|
|
|
}
|
|
|
|
|
else{
|
2015-06-10 09:10:24 +00:00
|
|
|
|
event.target.damage('thunder');
|
|
|
|
|
var cs=event.target.get('he');
|
|
|
|
|
if(cs.length){
|
|
|
|
|
event.target.discard(cs.randomGet());
|
|
|
|
|
}
|
2015-06-12 05:35:29 +00:00
|
|
|
|
cs=player.get('he');
|
|
|
|
|
if(cs.length){
|
|
|
|
|
player.discard(cs.randomGet());
|
|
|
|
|
}
|
2015-06-10 09:10:24 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
2015-06-12 05:35:29 +00:00
|
|
|
|
expose:0.2,
|
|
|
|
|
threaten:1.2,
|
|
|
|
|
effect_old:{
|
|
|
|
|
target:function(card,player,target){
|
2015-06-10 09:10:24 +00:00
|
|
|
|
if(get.tag(card,'respondShan')){
|
|
|
|
|
var hastarget=false;
|
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
if(ai.get.attitude(target,game.players[i])<0){
|
|
|
|
|
hastarget=true;break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var ns=target.num('h','shan');
|
|
|
|
|
var nh=target.num('h');
|
|
|
|
|
if(ns>1){
|
|
|
|
|
return [0,hastarget?1:0];
|
|
|
|
|
}
|
|
|
|
|
if(ns&&nh>=2){
|
|
|
|
|
return [0,0];
|
|
|
|
|
}
|
|
|
|
|
if(nh>3){
|
|
|
|
|
return [0,0];
|
|
|
|
|
}
|
|
|
|
|
if(nh==0){
|
2015-06-12 05:35:29 +00:00
|
|
|
|
return 1.5;
|
2015-06-10 09:10:24 +00:00
|
|
|
|
}
|
|
|
|
|
return [1,0.05];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tuteng_s:{
|
|
|
|
|
trigger:{player:'phaseUseBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
|
|
|
|
for(var i=0;i<player.skills.length;i++){
|
|
|
|
|
rand.remove(player.skills[i]);
|
|
|
|
|
if(rand.length==0) return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
|
|
|
|
for(var i=0;i<player.skills.length;i++){
|
|
|
|
|
rand.remove(player.skills[i]);
|
|
|
|
|
}
|
|
|
|
|
if(rand.length){
|
|
|
|
|
player.addSkill(rand.randomGet());
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:function(card,player){
|
|
|
|
|
if(get.tag(card,'damage')){
|
|
|
|
|
if(player.skills.contains('jueqing')) return [1,1];
|
|
|
|
|
return 1.2;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:1.3
|
|
|
|
|
},
|
|
|
|
|
group:'tuteng_lose'
|
|
|
|
|
},
|
2015-09-03 03:49:14 +00:00
|
|
|
|
s_tuteng:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
var rand=['tuteng1','tuteng2','tuteng4',
|
|
|
|
|
'tuteng5','tuteng6','tuteng7'];
|
|
|
|
|
if(player.storage.s_tuteng){
|
|
|
|
|
|
|
|
|
|
var rand2=player.storage.s_tuteng;
|
|
|
|
|
for(var i=0;i<3;i++){
|
|
|
|
|
rand.remove(rand2[i]);
|
|
|
|
|
}
|
|
|
|
|
player.removeSkill(rand2.randomRemove());
|
|
|
|
|
var totem=rand.randomGet();
|
|
|
|
|
rand2.push(totem);
|
|
|
|
|
player.addSkill(totem);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
for(var i=0;i<3;i++){
|
|
|
|
|
rand.randomRemove();
|
|
|
|
|
}
|
|
|
|
|
for(var i=0;i<3;i++){
|
|
|
|
|
player.addSkill(rand[i]);
|
|
|
|
|
}
|
|
|
|
|
player.storage.s_tuteng=rand;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:2
|
|
|
|
|
}
|
|
|
|
|
},
|
2015-06-10 09:10:24 +00:00
|
|
|
|
tuteng:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
usable:1,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
|
|
|
|
for(var i=0;i<player.skills.length;i++){
|
|
|
|
|
rand.remove(player.skills[i]);
|
|
|
|
|
if(rand.length==0) return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
content:function(){
|
|
|
|
|
var rand=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
|
|
|
|
for(var i=0;i<player.skills.length;i++){
|
|
|
|
|
rand.remove(player.skills[i]);
|
|
|
|
|
}
|
|
|
|
|
if(rand.length){
|
|
|
|
|
player.addSkill(rand.randomGet());
|
|
|
|
|
}
|
2015-08-15 09:10:06 +00:00
|
|
|
|
player.addTempSkill('tuteng_h','phaseAfter');
|
2015-06-10 09:10:24 +00:00
|
|
|
|
},
|
|
|
|
|
ai:{
|
2015-08-15 09:10:06 +00:00
|
|
|
|
order:11,
|
2015-06-10 09:10:24 +00:00
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
},
|
|
|
|
|
effect:function(card,player){
|
|
|
|
|
if(get.tag(card,'damage')){
|
|
|
|
|
if(player.skills.contains('jueqing')) return [1,1];
|
|
|
|
|
return 1.2;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:1.3
|
|
|
|
|
},
|
|
|
|
|
group:'tuteng_lose'
|
|
|
|
|
},
|
2015-08-15 09:10:06 +00:00
|
|
|
|
tuteng_h:{
|
|
|
|
|
mod:{
|
|
|
|
|
maxHandcard:function(player,num){
|
|
|
|
|
return num-1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2015-06-10 09:10:24 +00:00
|
|
|
|
tuteng_lose:{
|
|
|
|
|
trigger:{player:'damageEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var tuteng=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
|
|
|
|
for(var i=0;i<player.skills.length;i++){
|
|
|
|
|
if(tuteng.contains(player.skills[i])) return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
var tuteng=['tuteng1','tuteng2','tuteng3','tuteng4'];
|
|
|
|
|
var rand=[];
|
|
|
|
|
for(var i=0;i<player.skills.length;i++){
|
|
|
|
|
if(tuteng.contains(player.skills[i])){
|
|
|
|
|
rand.push(player.skills[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(rand.length){
|
|
|
|
|
player.removeSkill(rand.randomGet());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tuteng1:{
|
|
|
|
|
mark:'image',
|
|
|
|
|
intro:{
|
|
|
|
|
content:'回合结束阶段,你回复一点体力'
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.hp<player.maxHp;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.recover();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tuteng2:{
|
|
|
|
|
mark:'image',
|
|
|
|
|
intro:{
|
2015-08-15 09:10:06 +00:00
|
|
|
|
content:'每当你造成一点伤害,你摸一张牌'
|
2015-06-10 09:10:24 +00:00
|
|
|
|
},
|
2015-06-12 05:35:29 +00:00
|
|
|
|
filter:function(event){
|
|
|
|
|
return event.num>0;
|
|
|
|
|
},
|
2015-06-10 09:10:24 +00:00
|
|
|
|
trigger:{source:'damageAfter'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
2015-08-15 09:10:06 +00:00
|
|
|
|
player.draw(trigger.num);
|
2015-06-10 09:10:24 +00:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tuteng3:{
|
|
|
|
|
mark:'image',
|
|
|
|
|
intro:{
|
|
|
|
|
content:'你受到的伤害-1'
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:'damageBegin'},
|
|
|
|
|
forced:true,
|
2015-06-12 05:35:29 +00:00
|
|
|
|
filter:function(event){
|
2015-06-10 09:10:24 +00:00
|
|
|
|
return event.num>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.num--;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
tuteng4:{
|
|
|
|
|
mark:'image',
|
|
|
|
|
intro:{
|
2015-08-15 09:10:06 +00:00
|
|
|
|
content:'你的锦囊牌造成的伤害+1'
|
2015-06-10 09:10:24 +00:00
|
|
|
|
},
|
|
|
|
|
trigger:{source:'damageBegin'},
|
|
|
|
|
forced:true,
|
2015-06-12 05:35:29 +00:00
|
|
|
|
filter:function(event){
|
2015-09-10 13:56:57 +00:00
|
|
|
|
return event.card&&get.type(event.card)=='trick'&&event.parent.name!='_lianhuan'&&event.parent.name!='_lianhuan2';
|
2015-06-10 09:10:24 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.num++;
|
|
|
|
|
}
|
|
|
|
|
},
|
2015-09-03 03:49:14 +00:00
|
|
|
|
tuteng5:{
|
|
|
|
|
mark:'image',
|
|
|
|
|
intro:{
|
|
|
|
|
content:'回合结束阶段,你摸一张牌'
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tuteng6:{
|
|
|
|
|
mark:'image',
|
|
|
|
|
intro:{
|
|
|
|
|
content:'你的杀造成的伤害+1'
|
|
|
|
|
},
|
|
|
|
|
trigger:{source:'damageBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event){
|
2015-09-10 13:56:57 +00:00
|
|
|
|
return event.card&&event.card.name=='sha'&&event.parent.name!='_lianhuan'&&event.parent.name!='_lianhuan2';
|
2015-09-03 03:49:14 +00:00
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.num++;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tuteng7:{
|
|
|
|
|
mark:'image',
|
|
|
|
|
intro:{
|
|
|
|
|
content:'回合结束阶段,你令一名其他角色回复一点体力'
|
|
|
|
|
},
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
for(var i=0;i<game.players.length;i++){
|
|
|
|
|
if(game.players[i]!=player&&game.players[i].hp<game.players[i].maxHp){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
player.chooseTarget('活力图腾:令一名其他角色回复一点体力',function(card,player,target){
|
|
|
|
|
return target!=player&&target.hp<target.maxHp;
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
return ai.get.recoverEffect(target,player,player);
|
|
|
|
|
};
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('tuteng7',result.targets[0]);
|
|
|
|
|
result.targets[0].recover();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
2015-06-10 09:10:24 +00:00
|
|
|
|
fenliu:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
prompt:'流失1点体力并摸两张牌',
|
|
|
|
|
usable:1,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.loseHp(1);
|
|
|
|
|
"step 1"
|
|
|
|
|
player.draw(3);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player){
|
|
|
|
|
if(player.num('h')>=player.hp-1) return -1;
|
|
|
|
|
if(player.hp<3) return -1;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card){
|
|
|
|
|
if(get.tag(card,'damage')||get.tag(card,'loseHp')){
|
|
|
|
|
return 1.5;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:1.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
hongxi:{
|
|
|
|
|
trigger:{global:'dieAfter'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.hp<player.maxHp;
|
|
|
|
|
},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.recover(player.maxHp-player.hp);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
threaten:1.2
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
card:{
|
|
|
|
|
tuteng1:{
|
|
|
|
|
image:'card/tuteng1',
|
|
|
|
|
},
|
|
|
|
|
tuteng2:{
|
|
|
|
|
image:'card/tuteng2',
|
|
|
|
|
},
|
|
|
|
|
tuteng3:{
|
|
|
|
|
image:'card/tuteng3',
|
|
|
|
|
},
|
|
|
|
|
tuteng4:{
|
|
|
|
|
image:'card/tuteng4',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
},
|
|
|
|
|
tuteng5:{
|
|
|
|
|
image:'card/tuteng5',
|
|
|
|
|
},
|
|
|
|
|
tuteng6:{
|
|
|
|
|
image:'card/tuteng6',
|
|
|
|
|
},
|
|
|
|
|
tuteng7:{
|
|
|
|
|
image:'card/tuteng7',
|
|
|
|
|
},
|
2015-06-10 09:10:24 +00:00
|
|
|
|
},
|
|
|
|
|
translate:{
|
2015-06-27 16:21:25 +00:00
|
|
|
|
hs_alleria:'奥蕾莉亚',
|
|
|
|
|
hs_magni:'麦格尼',
|
2015-06-19 15:31:36 +00:00
|
|
|
|
hs_medivh:'麦迪文',
|
2015-06-10 09:10:24 +00:00
|
|
|
|
hs_jaina:'吉安娜',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_lrexxar:'雷克萨',
|
|
|
|
|
hs_wuther:'乌瑟尔',
|
|
|
|
|
hs_jgarrosh:'加尔鲁什',
|
2015-06-10 09:10:24 +00:00
|
|
|
|
hs_malfurion:'玛法里奥',
|
|
|
|
|
hs_guldan:'古尔丹',
|
|
|
|
|
hs_anduin:'安度因',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_sthrall:'萨尔',
|
2015-06-10 09:10:24 +00:00
|
|
|
|
hs_waleera:'瓦莉拉',
|
|
|
|
|
|
2015-08-15 09:10:06 +00:00
|
|
|
|
hs_neptulon:'耐普图隆',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_wvelen:'维纶',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
hs_antonidas:'安东尼达斯',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_alakir:'奥拉基尔',
|
|
|
|
|
hs_zhouzhuo:'周卓',
|
|
|
|
|
hs_yngvar:'伊戈瓦尔',
|
|
|
|
|
hs_bchillmaw:'冰喉',
|
|
|
|
|
hs_malorne:'玛洛恩',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
|
|
|
|
|
hs_ronghejuren:'熔核巨人',
|
|
|
|
|
hs_wujiyuansu:'无羁元素',
|
|
|
|
|
hs_mijiaojisi:'秘教祭司',
|
|
|
|
|
hs_huzhixiannv:'湖之仙女',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hs_tgolem:'图腾魔像',
|
|
|
|
|
hs_totemic:'图腾师',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
|
2015-09-16 02:45:45 +00:00
|
|
|
|
enze:'恩泽',
|
|
|
|
|
enze_info:'出牌阶段限一次,你可以指定一名角色令其手牌数与你相等',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
chongsheng:'重生',
|
2015-09-16 02:45:45 +00:00
|
|
|
|
chongsheng_bg:'生',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
chongsheng_info:'濒死阶段,你可弃置所有牌,将体力回复至3-X,并摸X张牌,X为你本局发动此技能的次数。每局最多发动3次',
|
|
|
|
|
s_tuteng:'滋养',
|
|
|
|
|
s_tuteng_info:'在你首个回合开始时,你获得三个随机图腾;在此后的每个回合开始阶段,你随机替换其中的一个图腾',
|
|
|
|
|
guozai:'过载',
|
|
|
|
|
guozai2:'过载',
|
|
|
|
|
guozai2_bg:'载',
|
2015-09-10 09:35:58 +00:00
|
|
|
|
guozai_info:'出牌阶段,你可将手牌补至四张,并于此阶段结束时弃置等量的牌,每阶段最多发动两次',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
hanshuang:'寒霜',
|
|
|
|
|
hanshuang_info:'锁定技,你使用黑色牌造成伤害后,受伤害角色须将武将牌翻至背面,然后你流失一点体力',
|
|
|
|
|
bingshi:'冰噬',
|
|
|
|
|
bingshi_info:'锁定技,你死亡时,对所有其他角色造成一点伤害',
|
|
|
|
|
huanwu:'唤雾',
|
|
|
|
|
huanwu_info:'出牌阶段限一次,你可以令一名角色增加一点体力上限,回复一点体力,并摸两张牌(每名角色限发动一次)',
|
|
|
|
|
fengnu:'风怒',
|
|
|
|
|
fengnu_info:'锁定技,你使用的任何卡牌无数量及距离限制;当你于回合内重复使用卡牌时,你摸一张牌',
|
|
|
|
|
shengdun:'圣盾',
|
|
|
|
|
shengdun2:'圣盾',
|
|
|
|
|
shengdun_info:'锁定技,你受到的首次伤害-1,此技能于你回合开始阶段重置',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
jingmeng:'镜梦',
|
|
|
|
|
jingmeng_info:'每当你于回合内使用第一张牌时,你可以从牌堆中随机获得一张与之类型相同的牌',
|
|
|
|
|
kuixin:'窥心',
|
|
|
|
|
kuixin_info:'回合结束阶段,你可以将你的手牌与一名其他角色交换(手牌数之差不能多于1)',
|
|
|
|
|
wujiwuji:'无羁',
|
|
|
|
|
wujiwuji_info:'出牌阶段结束时,你可以摸X张牌,X为你本回合使用的卡牌数',
|
|
|
|
|
yanshu:'炎术',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
yanshu_info:'出牌阶段限一次,你可以弃置一张非基本牌,并获得一张流星火雨',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
bingshuang:'冰霜',
|
|
|
|
|
bingshuang_info:'你使用锦囊牌造成伤害后,可令目标摸两张牌并翻面',
|
|
|
|
|
shengyan:'圣言',
|
|
|
|
|
shengyan_info:'任意一名角色回复体力后,你可以令其额外回复一点体力,每回合限发动一次',
|
|
|
|
|
qingliu:'清流',
|
|
|
|
|
qingliu_info:'锁定技,你防止即将受到的火焰伤害',
|
|
|
|
|
liechao:'猎潮',
|
|
|
|
|
liechao_info:'出牌阶阶段限一次,若你的武将牌正面朝上且手牌数不大于当前体力值,你可以翻面并摸四张牌,若如此做,你跳过本回合的弃牌阶段',
|
|
|
|
|
|
2015-06-27 16:21:25 +00:00
|
|
|
|
fengxing:'风行',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
fengxing_info:'每当你使用一张杀,你可以摸一张牌',
|
2015-06-27 16:21:25 +00:00
|
|
|
|
xinci:'心刺',
|
|
|
|
|
xinci_info:'出牌阶段限一次,你可以弃置一张黑色牌令一名角色流失一点体力',
|
|
|
|
|
zhongjia:'重甲',
|
|
|
|
|
zhongjia_info:'锁定技,每当你受到一次伤害,你获得一点护甲值;当你的体力值大于1时,你的护甲不为你抵挡伤害',
|
|
|
|
|
dunji:'盾击',
|
|
|
|
|
dunji_info:'出牌阶段限,你可以失去你的所有护甲,并对等量的其他角色各造成一点伤害',
|
|
|
|
|
qiaodong:'巧动',
|
2015-07-09 05:21:22 +00:00
|
|
|
|
qiaodong_info:'你可以将一张装备牌当作闪使用或打出',
|
2015-06-27 16:21:25 +00:00
|
|
|
|
fengxian:'奉献',
|
|
|
|
|
fengxian_info:'出牌阶段限一次,你可以令场上所有角色各弃置一张手牌',
|
|
|
|
|
zhanhou:'战吼',
|
|
|
|
|
zhanhou_info:'锁定技,你没有装备区,你可以弃置一张装备牌并获得一点护甲值;每有一点护甲值,你与其他角色的距离-1',
|
|
|
|
|
anying:'暗影',
|
|
|
|
|
anying_info:'限定技,出牌阶段,你可以弃置两张黑色牌,失去技能圣光,并获得技能心刺',
|
|
|
|
|
shijie:'视界',
|
|
|
|
|
shijie_info:'回合结束阶段,你可以获得一名其他角色的一张手牌,然后该角色摸一张牌',
|
|
|
|
|
shengguang:'圣光',
|
|
|
|
|
shengguang_info:'出牌阶段限一次,你可以弃置一张红色牌令一名角色回复一点体力,若其仍处于受伤状态则摸一张牌',
|
|
|
|
|
bingjia:'冰甲',
|
|
|
|
|
bingjia2:'冰甲',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
bingjia_info:'出牌阶段,若你武将牌上没有牌,你可以将一张手牌背面朝上置于你的武将牌上,当你成为其他角色的与此牌花色相同的牌的目标时,你将此牌置于弃牌堆,并获得一点护甲值',
|
2015-06-27 16:21:25 +00:00
|
|
|
|
bianxing:'变形',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
bianxing_info:'当一其他角色于回合内使用卡牌指定了惟一的其他目标后,你可以用一张合理的基本牌替代此牌,每名角色的回合限一次',
|
2015-06-19 15:31:36 +00:00
|
|
|
|
xianzhi:'先知',
|
|
|
|
|
xianzhi_info:'任意一名角色进行判定前,你可以观看牌堆顶的两张牌,并可以将其调换顺序',
|
2015-09-10 09:35:58 +00:00
|
|
|
|
mdzhoufu:'缚魂',
|
|
|
|
|
mdzhoufu2:'缚魂',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
mdzhoufu_info:'出牌阶段,你可以将一张黑色手牌置于一名其他角色的武将牌上,在其判定时以此牌作为判定结果,然后你获得亮出的判定牌',
|
2015-09-10 09:35:58 +00:00
|
|
|
|
moying:'诅咒',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
moying_info:'锁定技,回合开始阶段,若场上没有闪电且你手牌中有黑桃牌,你将牌堆中的一张闪电置于你的判定区,否则你摸一张牌',
|
2015-06-27 16:21:25 +00:00
|
|
|
|
moying_old_info:'每当你造成或受到一次伤害,你可以令伤害目标或来源进行一次判定,若结果为黑色,其流失一点体力',
|
2015-06-19 15:31:36 +00:00
|
|
|
|
jingxiang:'镜像',
|
|
|
|
|
jingxiang_info:'每当你需要打出卡牌时,你可以观看一名随机角色的手牌并将其视为你的手牌打出',
|
2015-06-10 09:10:24 +00:00
|
|
|
|
tuteng:'图腾',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
tuteng_info:'出牌阶段限一次,你可以随机获得一个图腾,并令你本回合的手牌上限-1;每当你受到一次伤害,你随机失去一个图腾',
|
2015-06-10 09:10:24 +00:00
|
|
|
|
tuteng1:'治疗图腾',
|
|
|
|
|
tuteng2:'灼热图腾',
|
|
|
|
|
tuteng3:'石爪图腾',
|
|
|
|
|
tuteng4:'空气之怒图腾',
|
2015-09-03 03:49:14 +00:00
|
|
|
|
tuteng5:'法力之潮图腾',
|
|
|
|
|
tuteng6:'火舌图腾',
|
|
|
|
|
tuteng7:'活力图腾',
|
2015-06-10 09:10:24 +00:00
|
|
|
|
tzhenji:'震击',
|
2015-08-15 09:10:06 +00:00
|
|
|
|
tzhenji_info:'每当你因弃置而失去黑色牌,可对一名角色造成1点雷电伤害,并随机弃置其一张牌,每回合限发动一次',
|
2015-06-10 09:10:24 +00:00
|
|
|
|
fenliu:'分流',
|
|
|
|
|
fenliu_info:'出牌阶段限一次,你可以失去一点体力并获得3张牌',
|
|
|
|
|
hongxi:'虹吸',
|
|
|
|
|
hongxi_info:'锁定技,每当有一名角色死亡,你将体力回复至体力上限',
|
|
|
|
|
jihuo:'激活',
|
|
|
|
|
jihuo_info:'回合结束阶段,你可以弃置一张手牌并进行一个额外的回合',
|
2015-06-13 06:53:40 +00:00
|
|
|
|
jianren:'剑刃',
|
|
|
|
|
jianren_info:'出牌阶段限一次,你可以弃置装备区内的武器牌,对所有其他角色造成一点伤害',
|
|
|
|
|
mengun:'闷棍',
|
|
|
|
|
mengun2:'闷棍',
|
|
|
|
|
mengun_info:'每当一名其他角色于回合内使用基本牌,你可以弃置一张与之花色相同的牌令其收回此牌,且在本回合内不能再次使用,每回合限一次',
|
|
|
|
|
wlianji:'连击',
|
|
|
|
|
wlianji_info:'回合结束阶段,若你本回合使用的卡牌数大于你当前的体力值,你可以摸两张牌',
|
2015-06-10 09:10:24 +00:00
|
|
|
|
},
|
|
|
|
|
}
|