2015-04-29 03:25:17 +00:00
|
|
|
|
character.wind={
|
|
|
|
|
character:{
|
|
|
|
|
xiahouyuan:['male','wei',4,['shensu'],['fullskin']],
|
|
|
|
|
caoren:['male','wei',4,['jushou'],['fullskin']],
|
|
|
|
|
huangzhong:['male','shu',4,['liegong'],['fullskin']],
|
|
|
|
|
weiyan:['male','shu',4,['kuanggu'],['fullskin']],
|
|
|
|
|
xiaoqiao:['female','wu',3,['tianxiang','hongyan'],['fullskin']],
|
|
|
|
|
zhoutai:['male','wu',4,['buqu','fenji'],['fullskin']],
|
|
|
|
|
zhangjiao:['male','qun',3,['leiji','guidao','huangtian'],['zhu','fullskin']],
|
|
|
|
|
diy_zhangjiao:['male','qun',3,['diyleiji','guidao','huangtian'],['zhu','fullskin']],
|
|
|
|
|
// spzhangjiao:['male','qun',3,['spleiji','guidao','huangtian'],['zhu']],
|
|
|
|
|
// yuji:['male','qun',3,['guhuo']],
|
|
|
|
|
},
|
|
|
|
|
skill:{
|
|
|
|
|
shensu:{
|
|
|
|
|
group:['shensu1','shensu2']
|
|
|
|
|
},
|
|
|
|
|
shensu1:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.addSkill('shensu3');
|
|
|
|
|
var check= player.num('h')>2;
|
|
|
|
|
player.chooseTarget('是否发动神速?',function(card,player,target){
|
|
|
|
|
if(player==target) return false;
|
|
|
|
|
return player.canUse({name:'sha'},target);
|
|
|
|
|
}).ai=function(target){
|
|
|
|
|
if(!check) return 0;
|
|
|
|
|
return ai.get.effect(target,{name:'sha'},_status.event.player);
|
|
|
|
|
}
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('shensu1',result.targets);
|
|
|
|
|
player.useCard({name:'sha'},result.targets[0],false);
|
|
|
|
|
player.skip('phaseJudge');
|
|
|
|
|
player.skip('phaseDraw');
|
|
|
|
|
}
|
|
|
|
|
player.removeSkill('shensu3');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shensu2:{
|
|
|
|
|
trigger:{player:'phaseUseBefore'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('he',{type:'equip'})>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.addSkill('shensu3');
|
|
|
|
|
var check=player.num('h')<=player.hp;
|
|
|
|
|
player.chooseCardTarget({
|
|
|
|
|
prompt:'是否发动【神速】?',
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.type(card)=='equip'
|
|
|
|
|
},
|
|
|
|
|
position:'he',
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
if(player==target) return false;
|
|
|
|
|
return player.canUse({name:'sha'},target);
|
|
|
|
|
},
|
|
|
|
|
ai1:function(card){
|
|
|
|
|
if(!check) return 0;
|
|
|
|
|
return 6-ai.get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
if(!check) return 0;
|
|
|
|
|
return ai.get.effect(target,{name:'sha'},_status.event.player);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('shensu2',result.targets);
|
|
|
|
|
player.discard(result.cards[0]);
|
|
|
|
|
player.useCard({name:'sha'},result.targets[0]);
|
|
|
|
|
trigger.untrigger();
|
|
|
|
|
trigger.finish();
|
|
|
|
|
}
|
|
|
|
|
player.removeSkill('shensu3');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shensu3:{
|
|
|
|
|
mod:{
|
|
|
|
|
targetInRange:function(card,player,target,now){
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
jushou:{
|
|
|
|
|
trigger:{player:'phaseEnd'},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.turnOver();
|
|
|
|
|
player.draw(3);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
liegong:{
|
|
|
|
|
trigger:{player:'shaBegin'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
var length=event.target.num('h');
|
|
|
|
|
return (length>=player.hp||length<=get.attackRange(player));
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
trigger.directHit=true;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
kuanggu:{
|
|
|
|
|
trigger:{source:'damageEnd'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return get.distance(player,event.player)<=1;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
player.recover(trigger.num);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tianxiang:{
|
|
|
|
|
trigger:{player:'damageBefore'},
|
|
|
|
|
direct:true,
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('h',{suit:'heart'})>0&&event.num>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseCardTarget({
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return get.suit(card)=='heart';
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player!=target;
|
|
|
|
|
},
|
|
|
|
|
ai1:function(card){
|
|
|
|
|
return 10-ai.get.value(card);
|
|
|
|
|
},
|
|
|
|
|
ai2:function(target){
|
|
|
|
|
if(trigger.num>1){
|
|
|
|
|
if(target.maxHp>5&&target.hp>1) return 0;
|
|
|
|
|
return -att;
|
|
|
|
|
}
|
|
|
|
|
var eff=ai.get.damageEffect(target,trigger.source,target,trigger.nature);
|
|
|
|
|
var att=ai.get.attitude(player,target);
|
|
|
|
|
if(att==0) return 0.1;
|
|
|
|
|
if(eff>=0&&trigger.num==1){
|
|
|
|
|
return att;
|
|
|
|
|
}
|
|
|
|
|
if(target.hp==target.maxHp) return -att;
|
|
|
|
|
if(target.hp==1){
|
|
|
|
|
if(target.maxHp<=4&&!target.hasSkillTag('maixie')){
|
|
|
|
|
if(target.maxHp<=3){
|
|
|
|
|
return -att;
|
|
|
|
|
}
|
|
|
|
|
return -att/2;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
if(target.hp==target.maxHp-1){
|
|
|
|
|
if(target.hp>2||target.hasSkillTag('maixie')) return att/5;
|
|
|
|
|
if(att>0) return 0.02;
|
|
|
|
|
return 0.05;
|
|
|
|
|
}
|
|
|
|
|
return att/2;
|
|
|
|
|
},
|
|
|
|
|
prompt:'天香:弃置一张红桃牌转移伤害'
|
|
|
|
|
});
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('tianxiang',result.targets);
|
|
|
|
|
trigger.untrigger();
|
|
|
|
|
trigger.player=result.targets[0];
|
|
|
|
|
trigger.player.addSkill('tianxiang2');
|
|
|
|
|
player.discard(result.cards[0]);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
trigger.trigger('damageBefore');
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target){
|
|
|
|
|
if(player.skills.contains('jueqing')) return;
|
|
|
|
|
if(get.tag(card,'damage')&&target.num('h')>1) return 0.7;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
threaten:function(player,target){
|
|
|
|
|
if(target.num('h')==0) return 2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tianxiang2:{
|
|
|
|
|
trigger:{player:['damageAfter','damageCancelled']},
|
|
|
|
|
forced:true,
|
|
|
|
|
popup:false,
|
|
|
|
|
content:function(){
|
|
|
|
|
if(player.hp<player.maxHp) player.draw(player.maxHp-player.hp);
|
|
|
|
|
player.removeSkill('tianxiang2');
|
|
|
|
|
player.popup('tianxiang');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
hongyan:{
|
|
|
|
|
mod:{
|
|
|
|
|
suit:function(card,suit){
|
|
|
|
|
if(suit=='spade') return 'heart';
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
buqu:{
|
|
|
|
|
trigger:{player:'dieBefore'},
|
|
|
|
|
forced:true,
|
|
|
|
|
filter:function(event,player){return player.maxHp>0},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
event.card=get.cards()[0];
|
|
|
|
|
if(player.storage.buqu==undefined) player.storage.buqu=[];
|
|
|
|
|
player.storage.buqu.push(event.card);
|
|
|
|
|
event.dialog=ui.create.dialog('不屈',player.storage.buqu);
|
|
|
|
|
var str=get.translation(player)+'的不屈牌为'+player.storage.buqu[0].number;
|
|
|
|
|
for(var i=1;i<player.storage.buqu.length;i++){
|
|
|
|
|
str+='、'+player.storage.buqu[i].number;
|
|
|
|
|
}
|
|
|
|
|
game.log(str);
|
|
|
|
|
game.delay(2);
|
|
|
|
|
player.markSkill('buqu');
|
|
|
|
|
"step 1"
|
|
|
|
|
event.dialog.close();
|
|
|
|
|
for(var i=0;i<player.storage.buqu.length-1;i++){
|
2015-05-04 14:27:10 +00:00
|
|
|
|
if(get.number(event.card)&&get.number(event.card)==get.number(player.storage.buqu[i])) return;
|
2015-04-29 03:25:17 +00:00
|
|
|
|
}
|
|
|
|
|
trigger.untrigger();
|
|
|
|
|
trigger.finish();
|
|
|
|
|
player.hp=0;
|
|
|
|
|
},
|
|
|
|
|
mod:{
|
|
|
|
|
maxHandcard:function(player){
|
|
|
|
|
if(player.storage.buqu&&player.storage.buqu.length) return player.storage.buqu.length;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
intro:{
|
|
|
|
|
content:'cards',
|
|
|
|
|
onunmark:function(storage,player){
|
|
|
|
|
if(storage&&storage.length){
|
|
|
|
|
player.$throw(storage);
|
|
|
|
|
for(var i=0;i<storage.length;i++){
|
|
|
|
|
ui.discardPile.appendChild(storage[i]);
|
|
|
|
|
}
|
|
|
|
|
delete player.storage.buqu;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
fenji:{
|
|
|
|
|
trigger:{global:'discardAfter'},
|
|
|
|
|
filter:function(event){
|
|
|
|
|
if(_status.currentPhase!=event.player){
|
|
|
|
|
for(var i=0;i<event.cards.length;i++){
|
|
|
|
|
if(event.cards[i].original=='h') return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
},
|
|
|
|
|
check:function(event,player){
|
|
|
|
|
return ai.get.attitude(player,event.player)>2;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.loseHp();
|
|
|
|
|
"step 1"
|
|
|
|
|
trigger.player.draw(2);
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
leiji:{
|
|
|
|
|
trigger:{player:'respond'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return event.card.name=='shan';
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0";
|
|
|
|
|
player.chooseTarget('是否发动雷击?').ai=function(target){
|
|
|
|
|
return ai.get.damageEffect(target,player,player);
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('leiji',result.targets,'thunder');
|
|
|
|
|
event.target=result.targets[0];
|
|
|
|
|
event.target.judge(function(card){
|
|
|
|
|
if(get.suit(card)=='spade') return -4;
|
|
|
|
|
return 0;
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool==false){
|
|
|
|
|
event.target.damage(2,'thunder');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
mingzhi:false,
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card,player,target,current){
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(target.num('h','shan')&&target.num('e',{suit:'spade'})){
|
|
|
|
|
return [0,hastarget?target.num('he')/2:0];
|
|
|
|
|
}
|
|
|
|
|
if(target.num('h','shan')){
|
|
|
|
|
return [1,hastarget?target.num('he')/2:0];
|
|
|
|
|
}
|
|
|
|
|
return [1,target.num('h')/4];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
guidao:{
|
|
|
|
|
trigger:{global:'judge'},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
return player.num('he',{color:'black'})>0;
|
|
|
|
|
},
|
|
|
|
|
direct:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
player.chooseCard('请选择替换判定的牌','he',function(card){
|
|
|
|
|
return get.color(card)=='black';
|
|
|
|
|
}).ai=function(card){
|
|
|
|
|
var trigger=_status.event.parent._trigger;
|
|
|
|
|
var player=_status.event.player;
|
|
|
|
|
var result=trigger.judge(card)-trigger.judge(trigger.player.judging);
|
|
|
|
|
var attitude=ai.get.attitude(player,trigger.player);
|
|
|
|
|
if(attitude==0||result==0) return 0;
|
|
|
|
|
if(attitude>0){
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return -result;
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.respond(result.cards);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
player.logSkill('guidao');
|
|
|
|
|
player.$gain2(trigger.player.judging);
|
|
|
|
|
player.gain(trigger.player.judging);
|
|
|
|
|
trigger.player.judging=result.cards[0];
|
|
|
|
|
trigger.position.appendChild(result.cards[0]);
|
|
|
|
|
game.log(get.translation(trigger.player)+'的判定牌改为'+get.translation(result.cards[0]));
|
|
|
|
|
}
|
|
|
|
|
"step 3"
|
|
|
|
|
game.delay(2);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
tag:{
|
|
|
|
|
rejudge:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
guhuo:{
|
|
|
|
|
trigger:{player:'phaseBegin'},
|
|
|
|
|
forced:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.draw();
|
|
|
|
|
player.chooseToDiscard('hej',true).ai=ai.get.disvalue;
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
effect:{
|
|
|
|
|
target:function(card){
|
|
|
|
|
if(get.type(card)=='delay') return [0,1];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
huangtian:{
|
|
|
|
|
unique:true,
|
|
|
|
|
global:'huangtian2'
|
|
|
|
|
},
|
|
|
|
|
huangtian2:{
|
|
|
|
|
enable:'phaseUse',
|
|
|
|
|
discard:false,
|
|
|
|
|
line:true,
|
|
|
|
|
prepare:function(cards,player,targets){
|
|
|
|
|
player.$give(cards,targets[0]);
|
|
|
|
|
},
|
|
|
|
|
filter:function(event,player){
|
|
|
|
|
if(!game.zhu) return false;
|
|
|
|
|
return (player!=game.zhu&&game.zhu.skills.contains('huangtian')&&player.group=='qun')
|
|
|
|
|
},
|
|
|
|
|
filterCard:function(card){
|
|
|
|
|
return (card.name=='shan'||card.name=='shandian')
|
|
|
|
|
},
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target==game.zhu;
|
|
|
|
|
},
|
|
|
|
|
usable:1,
|
|
|
|
|
content:function(){
|
|
|
|
|
target.gain(cards);
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
expose:0.3,
|
|
|
|
|
order:10,
|
|
|
|
|
result:{
|
|
|
|
|
target:5
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
translate:{
|
|
|
|
|
xiahouyuan:'夏侯渊',
|
|
|
|
|
caoren:'曹仁',
|
|
|
|
|
huangzhong:'黄忠',
|
|
|
|
|
weiyan:'魏延',
|
|
|
|
|
xiaoqiao:'小乔',
|
|
|
|
|
zhoutai:'周泰',
|
|
|
|
|
zhangjiao:'张角',
|
|
|
|
|
spzhangjiao:'张角',
|
|
|
|
|
yuji:'于吉',
|
|
|
|
|
shensu:'神速',
|
|
|
|
|
shensu1:'神速',
|
|
|
|
|
shensu2:'神速',
|
|
|
|
|
jushou:'据守',
|
|
|
|
|
liegong:'烈弓',
|
|
|
|
|
kuanggu:'狂骨',
|
|
|
|
|
tianxiang:'天香',
|
|
|
|
|
hongyan:'红颜',
|
|
|
|
|
buqu:'不屈',
|
|
|
|
|
leiji:'雷击',
|
|
|
|
|
spleiji:'新雷击',
|
|
|
|
|
guidao:'鬼道',
|
|
|
|
|
huangtian:'黄天',
|
|
|
|
|
huangtian2:'黄天',
|
|
|
|
|
guhuo:'蛊惑',
|
|
|
|
|
fenji:'奋激',
|
|
|
|
|
shensu_info:
|
|
|
|
|
'你可以跳过摸牌阶段,或跳过出牌阶段并弃置一张装备牌,'+
|
|
|
|
|
'若如此则视为对任意一名使用一张【杀】',
|
|
|
|
|
jushou_info:
|
|
|
|
|
'回合结束阶段,你可以将武将牌翻页并摸3张牌',
|
|
|
|
|
liegong_info:
|
|
|
|
|
'当你使用【杀】时,若目标的手牌数大于等于你的体力值,或小于等于你的攻击范围,你可令此【杀】不能闪避',
|
|
|
|
|
kuanggu_info:
|
|
|
|
|
'锁定技,每当你造成一点伤害,若受伤害角色与你的距离不大于1,你回复一点体力',
|
|
|
|
|
tianxiang_info:
|
|
|
|
|
'当你即将受到伤害时,你可以弃置一张红桃牌将伤害转移给任意一名其他角色,然后该角色摸x张牌,x为其已损失体力值',
|
|
|
|
|
hongyan_info:
|
|
|
|
|
'锁定技,你的黑桃牌均视为红桃',
|
|
|
|
|
buqu_info:
|
|
|
|
|
'锁定技,每当你扣减1点体力后,若你当前的体力值为0,你可以将牌堆顶的一张牌置于你的武将牌上,'+
|
|
|
|
|
'称为“创”,若所有“创”的点数均不同,你不会死亡。你的手牌上限为“创”的个数',
|
|
|
|
|
leiji_info:
|
|
|
|
|
'每当你使用或打出一张【闪】,可令任意一名角色进行一次判定,若结果为黑桃,其受到两点雷电伤害',
|
|
|
|
|
spleiji_info:
|
|
|
|
|
'每当你使用或打出一张【闪】,可令任意一名角色进行一次判定,若结果为黑色,其受到一点雷电伤害,然后你回复一点体力',
|
|
|
|
|
guidao_info:
|
|
|
|
|
'任意一名角色的判定生效前,你可以打出一张黑色牌替换之',
|
|
|
|
|
huangtian_info:
|
|
|
|
|
'主公技,群雄角色可在他们各自的回合里给你一张【闪】或【闪电】。',
|
|
|
|
|
guhuo_info:
|
|
|
|
|
'锁定技,回合开始阶段,你摸一张牌并弃置区域内的一张牌',
|
|
|
|
|
fenji_info:
|
|
|
|
|
'每当一名角色的手牌于回合外被弃置时,你可以失去1点体力,然后该角色摸两张牌。'
|
|
|
|
|
},
|
|
|
|
|
}
|