noname/card/extra.js

1094 lines
32 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

'use strict';
game.import('card',function(lib,game,ui,get,ai,_status){
return {
name:'extra',
connect:true,
card:{
muniu:{
fullskin:true,
type:'equip',
subtype:'equip5',
nomod:true,
onEquip:function(){
if(card&&card.cards&&card.cards.length){
player.directgains(card.cards,null,'muniu');
}
player.markSkill('muniu_skill');
},
forceDie:true,
onLose:function(){
delete player.getStat('skill').muniu_skill;
player.unmarkSkill('muniu_skill');
if(!card||!card.cards||!card.cards.length) return;
if((!event.getParent(2)||event.getParent(2).name!='swapEquip')&&(event.getParent().type!='equip'||event.getParent().swapEquip)){
player.lose(card.cards,ui.discardPile);
player.$throw(card.cards,1000);
player.popup('muniu');
game.log(card,'掉落了',card.cards);
card.cards.length=0;
}
else{
player.lose(card.cards,ui.special);
}
},
clearLose:true,
equipDelay:false,
loseDelay:false,
skills:['muniu_skill','muniu_skill7'],
ai:{
equipValue:function(card){
if(card.card) return 7+card.card.length;
return 7;
},
basic:{
equipValue:7
}
}
},
jiu:{
audio:true,
fullskin:true,
type:"basic",
toself:true,
enable:function(event,player){
//return !player.hasSkill('jiu');
return true;
},
lianheng:true,
logv:false,
savable:function(card,player,dying){
return dying==player||player.hasSkillTag('jiuOther',null,dying,true);
},
usable:1,
selectTarget:-1,
modTarget:true,
filterTarget:function(card,player,target){
return target==player;
},
content:function(){
if(typeof event.baseDamage!='number') event.baseDamage=1;
if(target.isDying()||event.getParent(2).type=='dying'){
target.recover();
if(_status.currentPhase==target){
target.getStat().card.jiu--;
}
}
else{
game.addVideo('jiuNode',target,true);
if(cards&&cards.length){
card=cards[0];
}
if(!target.storage.jiu) target.storage.jiu=0;
target.storage.jiu+=event.baseDamage;
game.broadcastAll(function(target,card,gain2){
target.addSkill('jiu');
if(!target.node.jiu&&lib.config.jiu_effect){
target.node.jiu=ui.create.div('.playerjiu',target.node.avatar);
target.node.jiu2=ui.create.div('.playerjiu',target.node.avatar2);
}
if(gain2&&card.clone&&(card.clone.parentNode==target.parentNode||card.clone.parentNode==ui.arena)){
card.clone.moveDelete(target);
}
},target,card,target==targets[0]&&cards.length==1);
if(target==targets[0]&&cards.length==1){
if(card.clone&&(card.clone.parentNode==target.parentNode||card.clone.parentNode==ui.arena)){
game.addVideo('gain2',target,get.cardsInfo([card]));
}
}
}
},
ai:{
basic:{
useful:(card,i)=>{
if(_status.event.player.hp>1){
if(i===0) return 4;
return 1;
}
if(i===0) return 7.3;
return 3;
},
value:(card,player,i)=>{
if(player.hp>1){
if(i===0) return 5;
return 1;
}
if(i===0) return 7.3;
return 3;
}
},
order:()=>{
if(_status.event.dying) return 9;
let sha=get.order({name:'sha'});
if(sha>0) return sha+0.2;
return 0;
},
result:{
target:(player,target,card)=>{
if(target&&target.isDying()) return 2;
if(!target || target._jiu_temp || !target.isPhaseUsing()) return 0;
let usable=target.getCardUsable('sha');
if(!usable || lib.config.mode==='stone'&&!player.isMin()&&player.getActCount()+1>=player.actcount || !target.mayHaveSha(player,'use',card)) return 0;
let effs={order:0},temp;
target.getCards('hs',i=>{
if(get.name(i)!=='sha' || ui.selected.cards.includes(i)) return false;
temp=get.order(i,target);
if(temp<effs.order) return false;
if(temp>effs.order) effs={order:temp};
effs[i.cardid]={
card:i,
target:null,
eff:0
};
});
delete effs.order;
for(let i in effs){
if(!lib.filter.filterCard(effs[i].card,target)) continue;
game.filterPlayer(current=>{
if(get.attitude(target,current)>=0 || !target.canUse(effs[i].card,current,null,true) || current.hasSkillTag('filterDamage',null,{
player:target,
card:effs[i].card,
jiu:true
})) return false;
temp=get.effect(current,effs[i].card,target,player);
if(temp<=effs[i].eff) return false;
effs[i].target=current;
effs[i].eff=temp;
return false;
});
if(!effs[i].target) continue;
if(target.hasSkillTag('directHit_ai',true,{
target:effs[i].target,
card:i
},true) || usable===1&&(target.needsToDiscard()>Math.max(0,3-target.hp) || !effs[i].target.mayHaveShan(player,'use',effs[i].target.getCards(i=>{
return i.hasGaintag('sha_notshan');
})))){
delete target._jiu_temp;
return 1;
}
}
delete target._jiu_temp;
return 0;
}
},
tag:{
save:1,
recover:0.1,
}
}
},
huogong:{
audio:true,
fullskin:true,
type:'trick',
enable:true,
//cardnature:'fire',
filterTarget:function(card,player,target){
//if(player!=game.me&&player.countCards('h')<2) return false;
return target.countCards('h')>0;
},
content:function(){
"step 0"
if(target.countCards('h')==0){
event.finish();
return;
}
else if(target.countCards('h')==1) event._result={cards:target.getCards('h')};
else target.chooseCard(true).ai=function(card){
if(_status.event.getRand()<0.5) return Math.random();
return get.value(card);
};
"step 1"
target.showCards(result.cards).setContent(function(){});
event.dialog=ui.create.dialog(get.translation(target)+'展示的手牌',result.cards);
event.videoId=lib.status.videoId++;
game.broadcast('createDialog',event.videoId,get.translation(target)+'展示的手牌',result.cards);
game.addVideo('cardDialog',null,[get.translation(target)+'展示的手牌',get.cardsInfo(result.cards),event.videoId]);
event.card2=result.cards[0];
game.log(target,'展示了',event.card2);
game.addCardKnower(result.cards, 'everyone');
event._result={};
player.chooseToDiscard({suit:get.suit(event.card2)},function(card){
var evt=_status.event.getParent();
if(get.damageEffect(evt.target,evt.player,evt.player,'fire')>0){
return 6.2+Math.min(4,evt.player.hp)-get.value(card,evt.player);
}
return -1;
}).set('prompt',false);
game.delay(2);
"step 2"
if(result.bool){
target.damage('fire');
}
else{
target.addTempSkill('huogong2');
}
event.dialog.close();
game.addVideo('cardDialog',null,event.videoId);
game.broadcast('closeDialog',event.videoId);
},
ai:{
basic:{
order:4,
value:[3,1],
useful:1,
},
wuxie:function(target,card,player,viewer,status){
if(get.attitude(viewer,player._trueMe||player)>0) return 0;
if(status*get.attitude(viewer,target)*get.effect(target,card,player,target)>=0) return 0;
if(_status.event.getRand('huogong_wuxie')*4>player.countCards('h')) return 0;
},
result:{
player:function(player){
var nh=player.countCards('h');
if(nh<=player.hp&&nh<=4&&_status.event.name=='chooseToUse'){
if(typeof _status.event.filterCard=='function'&&
_status.event.filterCard(new lib.element.VCard({name:'huogong'}),player,_status.event)){
return -10;
}
if(_status.event.skill){
var viewAs=get.info(_status.event.skill).viewAs;
if(viewAs=='huogong') return -10;
if(viewAs&&viewAs.name=='huogong') return -10;
}
}
return 0;
},
target:function(player,target){
if(target.hasSkill('huogong2')||target.countCards('h')==0) return 0;
if(player.countCards('h')<=1) return 0;
if(_status.event.player == player){
if(target.isAllCardsKnown(player)){
if(!target.countCards('h',card=>{
return player.countCards('h',card2=>{
return get.suit(card2) == get.suit(card);
});
})){
return 0;
}
}
}
if(target==player){
if(typeof _status.event.filterCard=='function'&&
_status.event.filterCard(new lib.element.VCard({name:'huogong'}),player,_status.event)){
return -1.15;
}
if(_status.event.skill){
var viewAs=get.info(_status.event.skill).viewAs;
if(viewAs=='huogong') return -1.15;
if(viewAs&&viewAs.name=='huogong') return -1.15;
}
return 0;
}
return -1.15;
}
},
tag:{
damage:1,
fireDamage:1,
natureDamage:1,
norepeat:1
}
}
},
tiesuo:{
audio:true,
fullskin:true,
type:'trick',
enable:true,
filterTarget:true,
selectTarget:[1,2],
complexTarget:true,
content:function(){
target.link();
},
recastable:true,
ai:{
wuxie:(target,card,player,viewer, status)=>{
if(status*get.attitude(viewer,player._trueMe||player)>0 || target.hasSkillTag('nodamage') || target.hasSkillTag('nofire') || target.hasSkillTag('nothunder') || get.attitude(viewer,player)>0 || (1+target.countCards('hs'))*_status.event.getRand()>1.57) return 0;
},
basic:{
order:(item,player)=>{
if(player.hasCard(card=>{
return get.tag(card,'damage')&&game.hasNature(card)&&player.hasValueTarget(card);
},'hs')) return 7.3;
return 4.1;
},
useful:1.2,
value:4
},
result:{
target:(player,target)=>{
if(target.hasSkillTag('link')) return 0;
let curs = game.filterPlayer(current=>{
if(current.hasSkillTag('nodamage')) return false;
return !current.hasSkillTag('nofire') || !current.hasSkillTag('nothunder');
});
if(curs.length<2) return 0;
let f = target.hasSkillTag('nofire'),
t = target.hasSkillTag('nothunder'),
res = 0.9;
if(f&&t || target.hasSkillTag('nodamage')) return 0;
if(f || t) res = 0.45;
if(target.getEquip('tengjia')) res *= 2;
if(!target.isLinked()) res = -res;
if(ui.selected.targets.length) return res;
let fs = 0,
es = 0,
att = get.attitude(player,target),
linkf = false,
alink = true;
curs.forEach(i=>{
let atti = get.attitude(player,i);
if(atti>0){
fs++;
if(i.isLinked()) linkf = true;
}
else if(atti<0){
es++;
if(!i.isLinked()) alink = false;
}
});
if(es<2&&!alink) {
if(att<=0 || att>0 && linkf && fs<2) return 0;
}
return res;
}
},
tag:{
multitarget:1,
multineg:1,
norepeat:1
}
}
},
bingliang:{
audio:true,
fullskin:true,
type:'delay',
range:{global:1},
filterTarget:function(card,player,target){
return (lib.filter.judge(card,player,target)&&player!=target);
},
judge:function(card){
if(get.suit(card)=='club') return 1;
return -2;
},
judge2:function(result){
if(result.bool==false) return true;
return false;
},
effect:function(){
if(result.bool==false){
if(get.is.changban()) player.addTempSkill('bingliang_changban');
else player.skip('phaseDraw');
}
},
ai:{
basic:{
order:1,
useful:1,
value:4,
},
result:{
target:function(player,target){
if(target.hasJudge('caomu')) return 0;
return -2.7/Math.sqrt(target.countCards('h')+1);
}
},
tag:{
skip:'phaseDraw'
}
}
},
hualiu:{
fullskin:true,
type:'equip',
subtype:'equip3',
distance:{globalTo:1},
},
zhuque:{
fullskin:true,
type:'equip',
subtype:'equip1',
//cardnature:'fire',
distance:{attackFrom:-3},
ai:{
basic:{
equipValue:2
}
},
skills:['zhuque_skill']
},
guding:{
fullskin:true,
type:'equip',
subtype:'equip1',
distance:{attackFrom:-1},
ai:{
basic:{
equipValue:2
}
},
skills:['guding_skill']
},
tengjia:{
fullskin:true,
type:'equip',
subtype:'equip2',
//cardnature:'fire',
ai:{
value:function(card,player,index,method){
if(player.isDisabled(2)) return 0.01;
if(player.getEquips('tengjia').includes(card)){
if(player.hasSkillTag('noDirectDamage')) return 10;
if(game.hasPlayer(function(current){
return current!=player&&get.attitude(current,player)<0&&current.hasSkillTag('fireAttack',null,null,true);
})) return 0;
return 6;
}
var value=0;
var info=get.info(card);
var current=player.getEquip(info.subtype);
if(current&&card!=current){
value=get.value(current,player);
}
var equipValue=info.ai.equipValue;
if(equipValue==undefined){
equipValue=info.ai.basic.equipValue;
}
if(typeof equipValue=='function'){
if(method=='raw') return equipValue(card,player);
if(method=='raw2') return equipValue(card,player)-value;
return Math.max(0.1,equipValue(card,player)-value);
}
if(typeof equipValue!='number') equipValue=0;
if(method=='raw') return equipValue;
if(method=='raw2') return equipValue-value;
return Math.max(0.1,equipValue-value);
},
equipValue:function(card,player){
if(player._tengjiaEv_temp) return Math.max(1,6-player.hp);
if(player.hasSkillTag('maixie')&&player.hp>1) return 0;
if(player.hasSkillTag('noDirectDamage')) return 10;
player._tengjiaEv_temp=true;
let eff=get.damageEffect(player,player,player,'fire');
delete player._tengjiaEv_temp;
if(eff>=0) return 10;
let num=4-game.countPlayer(function(current){
if(get.attitude(current,player)<0){
if(current.hasSkillTag('fireAttack',null,null,true)) return 3;
return 1;
}
return false;
});
if(player.hp==1) num+=3;
if(player.hp==2) num+=1;
return num;
},
basic:{
equipValue:3
},
},
skills:['tengjia1','tengjia2','tengjia3']
},
baiyin:{
fullskin:true,
type:'equip',
subtype:'equip2',
loseDelay:false,
onLose:function(){
player.addTempSkill('baiyin_skill_lose')
},
skills:['baiyin_skill'],
tag:{
recover:1,
},
ai:{
order:9.5,
equipValue:function(card,player){
if(player.hp==player.maxHp) return 5;
if(player.countCards('h','baiyin')) return 6;
return 0;
},
basic:{
equipValue:5
}
}
},
},
skill:{
bingliang_changban:{
cardSkill:true,
unique:true,
trigger:{player:'phaseDrawBegin'},
silent:true,
content:function(){
trigger.num--;
},
group:'bingliang_changban2'
},
bingliang_changban2:{
cardSkill:true,
trigger:{player:'phaseDrawAfter'},
silent:true,
content:function(){
if(player.enemy) player.enemy.draw();
}
},
muniu_skill:{
equipSkill:true,
enable:'phaseUse',
usable:1,
filterCard:true,
check:function(card){
if(card.name=='du') return 20;
var player=_status.event.player;
var nh=player.countCards('h');
if(!player.needsToDiscard()){
if(nh<3) return 0;
if(nh==3) return 5-get.value(card);
return 7-get.value(card);
}
return 10-get.useful(card);
},
discard:false,
lose:false,
delay:false,
sync:function(muniu){
if(game.online){
return;
}
if(!muniu.cards){
muniu.cards=[];
}
for(var i=0;i<muniu.cards.length;i++){
if(get.position(muniu.cards[i])!='s'){
muniu.cards.splice(i--,1);
}
}
game.broadcast(function(muniu,cards){
muniu.cards=cards;
},muniu,muniu.cards);
},
filter:function(event,player){
return player.countCards('h')>0;
},
prepare:function(cards,player){
player.$give(1,player,false);
},
content:function(){
"step 0"
player.loseToSpecial(cards,'muniu');
"step 1"
for(var i=0;i<cards.length;i++){
if(cards[i].destroyed||!cards[i].hasGaintag('muniu')||get.position(cards[i])!='s'){
cards[i].remove();
cards.splice(i--,1);
}
}
var muniu=player.getEquip('muniu');
if(!muniu||!cards.length){
for(var i=0;i<cards.length;i++){
cards[i].discard();
}
event.finish();
return;
}
if(muniu.cards==undefined) muniu.cards=[];
muniu.cards.push(cards[0]);
game.broadcast(function(muniu,cards){
muniu.cards=cards;
},muniu,muniu.cards);
game.delayx();
"step 2"
var muniu=player.getEquip('muniu');
var players=game.filterPlayer(function(current){
if(current.canEquip(muniu)&&current!=player&&!current.isTurnedOver()&&
get.attitude(player,current)>=3&&get.attitude(current,player)>=3){
return true;
}
});
players.sort(lib.sort.seat);
var choice=players[0];
var next=player.chooseTarget('是否移动木牛流马?',function(card,player,target){
return !target.isMin()&&player!=target&&target.canEquip(_status.event.muniu);
}).set('muniu',muniu)
next.set('ai',function(target){
return target==_status.event.choice?1:-1;
});
next.set('choice',choice);
"step 3"
if(result.bool){
var card=player.getEquip('muniu');
result.targets[0].equip(card);
player.$give(card,result.targets[0]);
player.line(result.targets,'green');
game.delay();
}
else{
player.updateMarks();
}
},
ai:{
order:1,
expose:0.1,
result:{
player:1
}
},
mod:{
cardEnabled2:function(card,player){
if(!ui.selected.cards.length) return;
var muniu=player.getEquip('muniu');
if(!muniu||!muniu.cards||!muniu.cards.length) return;
for(var i of ui.selected.cards){
if(i==muniu&&muniu.cards.includes(card)) return false;
if(muniu.cards.includes(i)&&card==muniu) return false;
}
},
},
mark:true,
markimage2:'image/card/muniu_small.png',
intro:{
content:function(storage,player){
var muniu=player.getEquip('muniu');
if(!muniu||!muniu.cards||!muniu.cards.length) return '共有〇张牌';
if(player.isUnderControl(true)){
return get.translation(muniu.cards);
}
else{
return '共有'+get.cnNumber(muniu.cards.length)+'张牌';
}
},
mark:function(dialog,storage,player){
var muniu=player.getEquip('muniu');
if(!muniu||!muniu.cards||!muniu.cards.length) return '共有〇张牌';
if(player.isUnderControl(true)){
dialog.addAuto(muniu.cards);
}
else{
return '共有'+get.cnNumber(muniu.cards.length)+'张牌';
}
},
markcount:function(storage,player){
var muniu=player.getEquip('muniu');
if(muniu&&muniu.cards) return muniu.cards.length;
return 0;
}
}
},
muniu_skill7:{
trigger:{player:'loseEnd'},
firstDo:true,
forced:true,
//silent:true,
filter:function(event,player){
if(!event.ss||!event.ss.length||event.parent.name=='lose_muniu') return false;
var muniu=player.getEquip('muniu');
if(!muniu||!muniu.cards) return false;
return event.ss.filter(function(card){
return muniu.cards.includes(card);
}).length>0;
},
content:function(){
var muniu=player.getEquip('muniu');
if(muniu&&muniu.cards){
muniu.cards.removeArray(trigger.ss);
lib.skill.muniu_skill.sync(muniu);
}
player.updateMarks();
},
},
huogong2:{charlotte:true},
jiu:{
trigger:{player:'useCard1'},
filter:function(event){
return event.card&&event.card.name=='sha';
},
forced:true,
charlotte:true,
firstDo:true,
content:function(){
if(!trigger.baseDamage) trigger.baseDamage=1;
trigger.baseDamage+=player.storage.jiu;
trigger.jiu=true;
trigger.jiu_add=player.storage.jiu;
game.addVideo('jiuNode',player,false);
game.broadcastAll(function(player){
player.removeSkill('jiu');
},player);
},
temp:true,
vanish:true,
silent:true,
popup:false,
nopop:true,
onremove:function(player){
if(player.node.jiu){
player.node.jiu.delete();
player.node.jiu2.delete();
delete player.node.jiu;
delete player.node.jiu2;
}
delete player.storage.jiu;
},
ai:{
damageBonus:true,
skillTagFilter:function(player,tag,arg){
if(tag==='damageBonus') return arg&&arg.card&&arg.card.name==='sha';
}
},
group:'jiu2'
},
jiu2:{
trigger:{player:'useCardAfter',global:'phaseAfter'},
priority:2,
firstDo:true,
charlotte:true,
filter:function(event,player){
if(player.hasSkillTag('jiuSustain',null,event.name)) return false;
if(event.name=='useCard') return (event.card&&(event.card.name=='sha'));
return true;
},
forced:true,
popup:false,
audio:false,
content:function(){
game.broadcastAll(function(player){
player.removeSkill('jiu');
},player);
game.addVideo('jiuNode',player,false);
},
},
guding_skill:{
equipSkill:true,
audio:true,
trigger:{source:'damageBegin1'},
filter:function(event){
if(event.parent.name=='_lianhuan'||event.parent.name=='_lianhuan2') return false;
if(event.card&&event.card.name=='sha'){
if(event.player.countCards('h')==0) return true;
}
return false;
},
forced:true,
content:function(){
trigger.num++;
},
ai:{
effect:{
player:function(card,player,target,current,isLink){
if(card.name=='sha'&&!isLink&&target.countCards('h')==0&&!target.hasSkillTag('filterDamage',null,{
player:player,
card:card,
})) return [1,0,1,-3];
}
}
}
},
tengjia1:{
equipSkill:true,
trigger:{target:['useCardToBefore']},
forced:true,
priority:6,
audio:true,
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
if(event.card.name=='nanman') return true;
if(event.card.name=='wanjian') return true;
//if(event.card.name=='chuqibuyi') return true;
return false;
},
content:function(){
trigger.cancel();
},
ai:{
effect:{
target:function(card,player,target,current){
if(target.hasSkillTag('unequip2')) return;
if(player.hasSkillTag('unequip',false,{
name:card?card.name:null,
target:target,
card:card
})||player.hasSkillTag('unequip_ai',false,{
name:card?card.name:null,
target:target,
card:card
})) return;
//if(card.name=='nanman'||card.name=='wanjian'||card.name=='chuqibuyi') return 'zerotarget';
if(card.name=='nanman'||card.name=='wanjian') return 'zerotarget';
if(card.name=='sha'){
var equip1=player.getEquip('zhuque');
if(equip1&&equip1.name=='zhuque') return 1.9;
if(!game.hasNature(card)) return 'zerotarget';
}
}
}
}
},
tengjia2:{
equipSkill:true,
trigger:{player:'damageBegin3'},
filter:function(event,player){
if(!event.hasNature('fire')) return false;
if(player.hasSkillTag('unequip2')) return false;
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
return true;
},
audio:true,
forced:true,
content:function(){
trigger.num++;
},
ai:{
fireAttack:true,
effect:{
target:function(card,player,target,current){
if(card.name=='sha'){
if(game.hasNature(card,'fire')) return 2;
if(player.hasSkill('zhuque_skill')) return 1.9;
}
if(get.tag(card,'fireDamage')&&current<0) return 2;
}
}
}
},
tengjia3:{
equipSkill:true,
audio:'tengjia1',
trigger:{target:'shaBefore'},
forced:true,
filter:function(event,player){
if(player.hasSkillTag('unequip2')) return false;
if(event.player.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
if(event.card.name=='sha'&&!game.hasNature(event.card)) return true;
return false;
},
content:function(){
trigger.cancel();
},
},
baiyin_skill:{
equipSkill:true,
trigger:{player:'damageBegin4'},
forced:true,
audio:true,
filter:function(event,player){
if(event.num<=1) return false;
if(player.hasSkillTag('unequip2')) return false;
if(event.source&&event.source.hasSkillTag('unequip',false,{
name:event.card?event.card.name:null,
target:player,
card:event.card
})) return false;
return true;
},
//priority:-10,
content:function(){
trigger.num=1;
},
subSkill:{
lose:{
audio:'baiyin_skill',
forced:true,
charlotte:true,
equipSkill:true,
trigger:{
player:'loseAfter',
global:['equipAfter','addJudgeAfter','gainAfter','loseAsyncAfter','addToExpansionAfter'],
},
filter:(event,player)=>{
if(player.isHealthy()||player.hasSkillTag('unequip2')) return false;
var evt=event.getl(player);
return evt&&evt.es.some(card=>card.name=='baiyin')
},
content:function(){
var evt=trigger.getl(player);
evt.es.forEach(card=>{
if(card.name=='baiyin'){
player.recover();
}
})
},
},
},
ai:{
filterDamage:true,
skillTagFilter:function(player,tag,arg){
if(player.hasSkillTag('unequip2')) return false;
if(arg&&arg.player){
if(arg.player.hasSkillTag('unequip',false,{
name:arg.card?arg.card.name:null,
target:player,
card:arg.card,
})) return false;
if(arg.player.hasSkillTag('unequip_ai',false,{
name:arg.card?arg.card.name:null,
target:player,
card:arg.card,
})) return false;
if(arg.player.hasSkillTag('jueqing',false,player)) return false;
}
},
},
},
zhuque_skill:{
equipSkill:true,
trigger:{player:'useCard1'},
//priority:7,
filter:function(event,player){
if(event.card.name=='sha'&&!game.hasNature(event.card)) return true;
},
audio:true,
check:function(event,player){
var eff=0;
for(var i=0;i<event.targets.length;i++){
var target=event.targets[i];
var eff1=get.damageEffect(target,player,player);
var eff2=get.damageEffect(target,player,player,'fire');
eff+=eff2;
eff-=eff1;
}
return eff>=0;
},
prompt2:function(event,player){
return '将'+get.translation(event.card)+'改为火属性';
},
content:function(){
game.setNature(trigger.card,'fire');
if(get.itemtype(trigger.card)=='card'){
var next=game.createEvent('zhuque_clear');
next.card=trigger.card;
event.next.remove(next);
trigger.after.push(next);
next.setContent(function(){
game.setNature(trigger.card,[]);
});
}
}
},
zhuque_skill2:{
trigger:{player:'useCardAfter'},
forced:true,
popup:false,
content:function(){
delete player.storage.zhuque_skill.nature;
}
},
huogon2:{},
},
translate:{
jiu:'酒',
jiu_info:'①每回合限一次。出牌阶段,对你自己使用。本回合目标角色使用的下一张【杀】的伤害值基数+1。②当你处于濒死状态时对你自己使用。目标角色回复1点体力。',
huogong:'火攻',
tiesuo:'铁索连环',
tiesuo_info:'此牌可被重铸。出牌阶段,对至多两名角色使用。目标角色横置。',
huogong_bg:'攻',
huogong_info:'出牌阶段对一名有手牌的角色使用。目标角色展示一张手牌A然后你可以弃置一张与A花色相同的手牌对目标造成1点火属性伤害。',
tiesuo_bg:'索',
bingliang:'兵粮寸断',
hualiu:'骅骝',
zhuque:'朱雀羽扇',
bingliang_bg:'粮',
bingliang_info:'出牌阶段对一名距离为1的其他角色使用。目标角色于其判定阶段进行判定若判定结果不为梅花则其跳过下一个摸牌阶段。',
hualiu_bg:'+马',
hualiu_info:'锁定技,其他角色计算与你的距离+1。',
zhuque_bg:'扇',
zhuque_skill:'朱雀羽扇',
zhuque_info:'当你声明使用普【杀】后,你可以为此【杀】赋予火属性。',
guding:'古锭刀',
guding_info:'锁定技,当你因执行【杀】的效果而对目标角色造成伤害时,若其没有手牌,则此伤害+1。',
guding_skill:'古锭刀',
tengjia:'藤甲',
//tengjia_info:'锁定技,【南蛮入侵】、【万箭齐发】、【出其不意】和普通【杀】对你无效。当你受到火焰伤害时,该伤害+1。',
tengjia_info:'锁定技。①【南蛮入侵】、【万箭齐发】和普【杀】对你无效。②当你受到火属性伤害时,此伤害+1。',
tengjia1:'藤甲',
tengjia2:'藤甲',
tengjia3:'藤甲',
baiyin:'白银狮子',
baiyin_info:'锁定技。①当你受到伤害时若此伤害大于1则你将伤害值扣减至1点。②当你失去装备区内的【白银狮子】后你回复1点体力。',
baiyin_skill:'白银狮子',
muniu:'木牛流马',
muniu_bg:'牛',
muniu_skill:'木牛',
muniu_skill7:'木牛流马',
muniu_skill_bg:'辎',
muniu_info:'①出牌阶段限一次,你可以将一张手牌扣置于你装备区里的【木牛流马】下,然后你可以将【木牛流马】移动到一名其他角色的装备区里。②你可以将【木牛流马】下的牌如手牌般使用或打出。③当你失去装备区的【木牛流马】后,你刷新〖木牛流马①〗的使用次数限制。若此牌不是因置入其他角色的装备区而失去的,则你将【木牛流马】下的所有牌置入弃牌堆。',
muniu_skill_info:'将一张手牌扣置于你装备区里的【木牛流马】下,然后可以将此装备移动到一名其他角色的装备区里。',
},
list:[
["heart",4,"sha","fire"],
["heart",7,"sha","fire"],
["heart",10,"sha","fire"],
["diamond",4,"sha","fire"],
["diamond",5,"sha","fire"],
["spade",4,"sha","thunder"],
["spade",5,"sha","thunder"],
["spade",6,"sha","thunder"],
["spade",7,"sha","thunder"],
["spade",8,"sha","thunder"],
["club",5,"sha","thunder"],
["club",6,"sha","thunder"],
["club",7,"sha","thunder"],
["club",8,"sha","thunder"],
["heart",8,"shan"],
["heart",9,"shan"],
["heart",11,"shan"],
["heart",12,"shan"],
["diamond",6,"shan"],
["diamond",7,"shan"],
["diamond",8,"shan"],
["diamond",10,"shan"],
["diamond",11,"shan"],
["heart",5,"tao"],
["heart",6,"tao"],
["diamond",2,"tao"],
["diamond",3,"tao"],
["diamond",9,"jiu"],
["spade",3,"jiu"],
["spade",9,"jiu"],
["club",3,"jiu"],
["club",9,"jiu"],
["diamond",13,"hualiu"],
["club",1,"baiyin"],
["spade",2,"tengjia"],
["club",2,"tengjia"],
["spade",1,"guding"],
["diamond",1,"zhuque"],
["heart",2,"huogong"],
["heart",3,"huogong"],
["diamond",12,"huogong"],
["spade",11,"tiesuo"],
["spade",12,"tiesuo"],
["club",10,"tiesuo"],
["club",11,"tiesuo"],
["club",12,"tiesuo"],
["club",13,"tiesuo"],
["heart",1,"wuxie"],
["heart",13,"wuxie"],
["spade",13,"wuxie"],
["spade",10,"bingliang"],
["club",4,"bingliang"],
['diamond',5,'muniu'],
],
}
});