2024-04-13 17:11:10 +00:00
|
|
|
|
import { lib, game, ui, get, ai, _status } from '../noname.js';
|
|
|
|
|
game.import('card', function () {
|
2020-03-10 03:43:11 +00:00
|
|
|
|
return {
|
|
|
|
|
name:'hearth',
|
|
|
|
|
card:{
|
|
|
|
|
linghunzhihuo:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
target.damage('fire');
|
|
|
|
|
'step 1'
|
|
|
|
|
var hs=player.getCards('h');
|
|
|
|
|
if(hs.length){
|
|
|
|
|
player.discard(hs.randomGet());
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
order:1.8,
|
|
|
|
|
value:[6,1],
|
|
|
|
|
useful:[4,1],
|
|
|
|
|
},
|
|
|
|
|
result:{
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
if(player==target) return -1;
|
|
|
|
|
if(player.countCards('h')>=player.hp) return -0.1;
|
|
|
|
|
if(player.countCards('h')>1) return -0.5;
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
target:-1
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
damage:1,
|
|
|
|
|
fireDamage:1,
|
|
|
|
|
natureDamage:1,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jihuocard:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
enable:true,
|
|
|
|
|
toself:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player==target;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
modTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
if(_status.currentPhase==target){
|
|
|
|
|
target.addTempSkill('jihuocard2');
|
|
|
|
|
}
|
|
|
|
|
target.draw();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:10,
|
|
|
|
|
result:{
|
|
|
|
|
target:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zhaomingdan:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player!=target&&target.countCards('hej')>0;
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
if(target.countCards('hej')){
|
|
|
|
|
var next=player.discardPlayerCard('hej',target,true);
|
|
|
|
|
next.visible=true;
|
|
|
|
|
next.delay=false;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.goto(2);
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
game.delay(0.5);
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
target.draw(false);
|
|
|
|
|
target.$draw();
|
|
|
|
|
game.delay(0.5);
|
|
|
|
|
'step 3'
|
|
|
|
|
player.draw();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9.5,
|
|
|
|
|
value:6,
|
|
|
|
|
useful:3,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(get.attitude(player,target)>0){
|
|
|
|
|
var js=target.getCards('j');
|
|
|
|
|
if(js.length){
|
|
|
|
|
var jj=js[0].viewAs?{name:js[0].viewAs}:js[0];
|
|
|
|
|
if(jj.name=='zhaomingdan') return 3;
|
|
|
|
|
if(js.length==1&&get.effect(target,jj,target,player)>=0){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return 3;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
var es=target.getCards('e');
|
|
|
|
|
var nh=target.countCards('h');
|
|
|
|
|
var noe=(es.length==0||target.hasSkillTag('noe'));
|
|
|
|
|
var noe2=(es.length==1&&es[0].name=='baiyin'&&target.hp<target.maxHp);
|
|
|
|
|
var noh=(nh==0||target.hasSkillTag('noh'));
|
|
|
|
|
if(noh&&noe) return 0;
|
|
|
|
|
if(noh&&noe2) return 0.01;
|
|
|
|
|
if(get.attitude(player,target)<=0) return (target.countCards('he'))?-1.5:1.5;
|
|
|
|
|
return 0.1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shijieshu:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
enable:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return !target.isMin();
|
|
|
|
|
},
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var cards=[];
|
|
|
|
|
var subtype=null;
|
|
|
|
|
for(var i=0;i<2;i++){
|
|
|
|
|
var card=get.cardPile(function(card){
|
|
|
|
|
if(get.type(card)=='equip'){
|
|
|
|
|
if(subtype){
|
|
|
|
|
if(get.subtype(card)==subtype){
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
subtype=get.subtype(card);
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
if(card){
|
|
|
|
|
ui.special.appendChild(card);
|
|
|
|
|
cards.push(card);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
switch(cards.length){
|
|
|
|
|
case 1:{
|
|
|
|
|
target.$gain(cards[0]);
|
|
|
|
|
game.delay();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
case 2:{
|
|
|
|
|
target.$gain(cards[0]);
|
|
|
|
|
setTimeout(function(){
|
|
|
|
|
target.$gain(cards[1]);
|
|
|
|
|
},250);
|
|
|
|
|
game.delay();
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
event.cards=cards;
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.cards.length){
|
|
|
|
|
target.equip(event.cards.shift());
|
|
|
|
|
game.delay(0.5);
|
|
|
|
|
if(event.cards.length){
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
'step 2'
|
|
|
|
|
game.delay(0.5);
|
|
|
|
|
'step 3'
|
|
|
|
|
if(target.countCards('he')){
|
|
|
|
|
target.chooseToDiscard('he',true);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9,
|
|
|
|
|
value:6,
|
|
|
|
|
useful:2,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return Math.max(0,2-target.countCards('e'));
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
norepeat:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shandianjian:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
enable:true,
|
|
|
|
|
cardnature:'thunder',
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
var rand=Math.random()<0.5;
|
|
|
|
|
target.chooseCard(true).ai=function(card){
|
|
|
|
|
if(rand) return Math.random();
|
|
|
|
|
return get.value(card);
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
event.dialog=ui.create.dialog(get.translation(target.name)+'展示的手牌',result.cards);
|
|
|
|
|
event.card2=result.cards[0];
|
|
|
|
|
event.videoId=lib.status.videoId++;
|
|
|
|
|
game.addVideo('cardDialog',null,[get.translation(target.name)+'展示的手牌',get.cardsInfo(result.cards),event.videoId]);
|
|
|
|
|
game.log(target,'展示了',event.card2);
|
|
|
|
|
player.chooseToDiscard(function(card){
|
|
|
|
|
return get.suit(card)==get.suit(_status.event.parent.card2);
|
|
|
|
|
},function(card){
|
|
|
|
|
if(get.damageEffect(target,player,player,'thunder')>0){
|
|
|
|
|
return 6-get.value(card,_status.event.player);
|
|
|
|
|
}
|
|
|
|
|
return -1;
|
|
|
|
|
}).prompt=false;
|
|
|
|
|
game.delay(2);
|
|
|
|
|
"step 2"
|
|
|
|
|
if(result.bool){
|
|
|
|
|
target.damage('thunder');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.addTempSkill('huogong2');
|
|
|
|
|
}
|
|
|
|
|
game.addVideo('cardDialog',null,event.videoId);
|
|
|
|
|
event.dialog.close();
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
order:4,
|
|
|
|
|
value:[3,1],
|
|
|
|
|
useful:1,
|
|
|
|
|
},
|
|
|
|
|
wuxie:function(target,card,player,current,state){
|
|
|
|
|
if(get.attitude(current,player)>=0&&state>0) return false;
|
|
|
|
|
},
|
|
|
|
|
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'&&
|
2024-01-10 08:40:41 +00:00
|
|
|
|
_status.event.filterCard(new lib.element.VCard({name:'shandianjian'}))){
|
2020-03-10 03:43:11 +00:00
|
|
|
|
return -10;
|
|
|
|
|
}
|
|
|
|
|
if(_status.event.skill){
|
|
|
|
|
var viewAs=get.info(_status.event.skill).viewAs;
|
|
|
|
|
if(viewAs=='shandianjian') return -10;
|
|
|
|
|
if(viewAs&&viewAs.name=='shandianjian') 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(target==player){
|
|
|
|
|
if(typeof _status.event.filterCard=='function'&&
|
2024-01-10 08:40:41 +00:00
|
|
|
|
_status.event.filterCard(new lib.element.VCard({name:'shandianjian'}))){
|
2020-03-10 03:43:11 +00:00
|
|
|
|
return -1.5;
|
|
|
|
|
}
|
|
|
|
|
if(_status.event.skill){
|
|
|
|
|
var viewAs=get.info(_status.event.skill).viewAs;
|
|
|
|
|
if(viewAs=='shandianjian') return -1.5;
|
|
|
|
|
if(viewAs&&viewAs.name=='shandianjian') return -1.5;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
return -1.5;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
damage:1,
|
|
|
|
|
thunderDamage:1,
|
|
|
|
|
natureDamage:1,
|
|
|
|
|
norepeat:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shihuawuqi:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'basic',
|
|
|
|
|
enable:true,
|
|
|
|
|
usable:1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player==target;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
content:function(){
|
|
|
|
|
player.addTempSkill('shihuawuqi');
|
|
|
|
|
if(!player.countCards('h','sha')){
|
|
|
|
|
var card=get.cardPile('sha');
|
|
|
|
|
if(card){
|
|
|
|
|
player.gain(card,'gain2');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
value:4,
|
|
|
|
|
useful:2,
|
|
|
|
|
order:8,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
return target.countCards('h','sha')?0:1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
siwangchanrao:{
|
|
|
|
|
enable:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player!=target&&target.countCards('h')>0;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:1,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var hs=target.getCards('h');
|
|
|
|
|
if(hs.length){
|
|
|
|
|
target.discard(hs.randomGet());
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(!target.countCards('h')){
|
|
|
|
|
player.draw();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9,
|
|
|
|
|
value:4,
|
|
|
|
|
useful:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:-1,
|
|
|
|
|
player:function(player,target){
|
|
|
|
|
if(target.countCards('h')==1) return 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
dunpaigedang:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
enable:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
toself:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return player==target;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
modTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
target.changeHujia();
|
|
|
|
|
target.draw();
|
|
|
|
|
'step 1'
|
|
|
|
|
if(target.countCards('he')){
|
|
|
|
|
target.chooseToDiscard('he',true);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8.5,
|
|
|
|
|
value:7,
|
|
|
|
|
useful:3,
|
|
|
|
|
result:{
|
|
|
|
|
target:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
chuansongmen:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
enable:true,
|
|
|
|
|
discard:false,
|
|
|
|
|
toself:true,
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target==player;
|
|
|
|
|
},
|
|
|
|
|
modTarget:true,
|
|
|
|
|
// usable:3,
|
|
|
|
|
// forceUsable:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var gained=get.cards()[0];
|
|
|
|
|
target.gain(gained,'gain2');
|
|
|
|
|
if(event.getParent(3).name=='phaseUse'&&_status.currentPhase==target&&
|
|
|
|
|
lib.filter.filterCard(gained,target,event.getParent(2))){
|
|
|
|
|
var next=target.chooseToUse();
|
|
|
|
|
next.filterCard=function(card){
|
|
|
|
|
return card==gained;
|
|
|
|
|
};
|
|
|
|
|
next.prompt='是否使用'+get.translation(gained)+'?';
|
|
|
|
|
if(cards[0]){
|
|
|
|
|
ui.special.appendChild(cards[0]);
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
// if(cards[0]){
|
|
|
|
|
// cards[0].discard();
|
|
|
|
|
// }
|
|
|
|
|
event.finish();
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool&&!target.hasSkill('chuansongmen3')){
|
|
|
|
|
if(target.hasSkill('chuansongmen2')){
|
|
|
|
|
target.addTempSkill('chuansongmen3');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.addTempSkill('chuansongmen2');
|
|
|
|
|
}
|
|
|
|
|
cards[0].fix();
|
|
|
|
|
target.gain(cards,'gain2');
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
cards[0].discard();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:9.5,
|
|
|
|
|
value:7,
|
|
|
|
|
useful:3,
|
|
|
|
|
result:{
|
|
|
|
|
target:1
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
norepeat:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tanshezhiren:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
enable:true,
|
2023-08-29 08:45:58 +00:00
|
|
|
|
// recastable:true,
|
2020-03-10 03:43:11 +00:00
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target==player;
|
|
|
|
|
},
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
modTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
event.current=target;
|
|
|
|
|
event.num=game.countPlayer();
|
|
|
|
|
if(event.num%2==0){
|
|
|
|
|
event.num--;
|
|
|
|
|
}
|
|
|
|
|
'step 1'
|
|
|
|
|
if(event.num){
|
|
|
|
|
var enemies=event.current.getEnemies();
|
|
|
|
|
enemies.remove(player);
|
|
|
|
|
for(var i=0;i<enemies.length;i++){
|
|
|
|
|
if(!enemies[i].countCards('h')){
|
|
|
|
|
enemies.splice(i--,1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(enemies.length){
|
|
|
|
|
var enemy=enemies.randomGet();
|
|
|
|
|
event.current.line(enemy);
|
|
|
|
|
enemy.discard(enemy.getCards('h').randomGet());
|
|
|
|
|
event.current=enemy;
|
|
|
|
|
event.num--;
|
|
|
|
|
event.redo();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:8.5,
|
|
|
|
|
wuxie:function(){
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
result:{
|
|
|
|
|
player:1
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
multineg:1,
|
|
|
|
|
multitarget:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
xingjiegoutong:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
enable:true,
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
modTarget:true,
|
|
|
|
|
toself:true,
|
|
|
|
|
filterTarget:function(card,player,target){return player==target},
|
|
|
|
|
content:function(){
|
|
|
|
|
target.gainMaxHp();
|
|
|
|
|
target.recover();
|
|
|
|
|
target.discard(target.getCards('h'));
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
useful:[1,1],
|
|
|
|
|
value:[1,1],
|
|
|
|
|
},
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(target.countCards('h','tao')) return 0;
|
|
|
|
|
var nh=target.countCards('h');
|
|
|
|
|
if(nh<=2) return 1;
|
|
|
|
|
if(target.hp==1&&target.maxHp>2) return 1;
|
|
|
|
|
return 0;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
recover:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
shenenshu:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
enable:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target==player;
|
|
|
|
|
},
|
|
|
|
|
modTarget:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
var cards=target.getCards('h');
|
|
|
|
|
if(cards.length){
|
|
|
|
|
target.lose(cards)._triggered=null;
|
|
|
|
|
}
|
|
|
|
|
event.num=1+cards.length;
|
|
|
|
|
'step 1'
|
|
|
|
|
var cards=[];
|
|
|
|
|
var list=get.typeCard('basic');
|
|
|
|
|
list.remove('du');
|
|
|
|
|
if(list.length){
|
|
|
|
|
for(var i=0;i<event.num;i++){
|
|
|
|
|
cards.push(game.createCard(list.randomGet()));
|
|
|
|
|
}
|
|
|
|
|
target.directgain(cards);
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:1,
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var hs=target.getCards('h');
|
|
|
|
|
for(var i=0;i<hs.length;i++){
|
|
|
|
|
if(get.type(hs[i])!='basic'&&get.useful(hs[i])>=6){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
zhiliaobo:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
enable:true,
|
|
|
|
|
filterTarget:function(card,player,target){
|
|
|
|
|
return target.hp<target.maxHp;
|
|
|
|
|
},
|
|
|
|
|
type:'trick',
|
|
|
|
|
content:function(){
|
|
|
|
|
'step 0'
|
|
|
|
|
target.judge(function(card){
|
|
|
|
|
return get.color(card)=='red'?1:0;
|
|
|
|
|
});
|
|
|
|
|
'step 1'
|
|
|
|
|
if(result.bool){
|
|
|
|
|
target.recover();
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
target.changeHujia();
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
order:4,
|
|
|
|
|
value:[7,3],
|
|
|
|
|
useful:[6,3],
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
var eff=get.recoverEffect(target,player,target);
|
|
|
|
|
if(eff<=0) return 0;
|
|
|
|
|
var num=target.maxHp-target.hp;
|
|
|
|
|
if(num<1) return 0;
|
|
|
|
|
if(num==1) return 1;
|
|
|
|
|
if(target.hp==1) return 2.5;
|
|
|
|
|
return 2;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
recover:1
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
yuansuhuimie:{
|
|
|
|
|
fullskin:true,
|
|
|
|
|
type:'trick',
|
|
|
|
|
enable:true,
|
|
|
|
|
selectTarget:-1,
|
|
|
|
|
filterTarget:true,
|
|
|
|
|
reverseOrder:true,
|
|
|
|
|
content:function(){
|
|
|
|
|
"step 0"
|
|
|
|
|
target.chooseToDiscard([1,2],'he').ai=function(card){
|
|
|
|
|
if(get.damageEffect(target,player,target,'thunder')>=0){
|
|
|
|
|
if(target.hasSkillTag('maixie')){
|
|
|
|
|
if(ui.selected.cards.length) return 0;
|
|
|
|
|
}
|
|
|
|
|
else{
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if(player.hasSkillTag('notricksource')) return 0;
|
|
|
|
|
if(target.hasSkillTag('notrick')) return 0;
|
|
|
|
|
if(card.name=='tao') return 0;
|
|
|
|
|
if(target.hp==1&&card.name=='jiu') return 0;
|
|
|
|
|
if(get.type(card)!='basic'){
|
|
|
|
|
return 10-get.value(card);
|
|
|
|
|
}
|
|
|
|
|
return 8-get.value(card);
|
|
|
|
|
};
|
|
|
|
|
"step 1"
|
|
|
|
|
if(!result.bool||result.cards.length<2){
|
|
|
|
|
if(result.bool) target.damage(2-result.cards.length,'thunder');
|
|
|
|
|
else target.damage(2,'thunder');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
ai:{
|
|
|
|
|
basic:{
|
|
|
|
|
order:7,
|
|
|
|
|
useful:[5,1]
|
|
|
|
|
},
|
|
|
|
|
result:{
|
|
|
|
|
target:function(player,target){
|
|
|
|
|
if(target.hasSkillTag('nothunder')) return 0;
|
|
|
|
|
if(player.hasUnknown(2)) return 0;
|
|
|
|
|
var nh=target.countCards('he');
|
|
|
|
|
if(target==player) nh--;
|
|
|
|
|
if(nh==2) return -2.5;
|
|
|
|
|
if(nh==1) return -3;
|
|
|
|
|
if(nh==0) return -4;
|
|
|
|
|
return -2;
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
tag:{
|
|
|
|
|
damage:1,
|
|
|
|
|
natureDamage:1,
|
|
|
|
|
thunderDamage:1,
|
|
|
|
|
multitarget:1,
|
|
|
|
|
multineg:1,
|
|
|
|
|
discard:2,
|
|
|
|
|
loseCard:2,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
skill:{
|
|
|
|
|
chuansongmen2:{},
|
|
|
|
|
chuansongmen3:{},
|
|
|
|
|
shihuawuqi:{
|
|
|
|
|
mod:{
|
|
|
|
|
attackFrom:function(from,to,distance){
|
|
|
|
|
return distance-1;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
jihuocard2:{
|
|
|
|
|
mod:{
|
|
|
|
|
maxHandcard:function(player,num){
|
|
|
|
|
return num+2;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
translate:{
|
|
|
|
|
linghunzhihuo:'灵魂之火',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
linghunzhihuo_info:'对一名角色造成1点火焰伤害,然后随机弃置一张手牌。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
shenenshu:'神恩术',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
shenenshu_info:'出牌阶段对自己使用,将所有手牌(含此张)替换为基本牌。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
zhiliaobo:'治疗波',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
zhiliaobo_info:'出牌阶段对一名受伤角色使用,目标进行一次判定,若结果为红色,则回复1点体力,否则获得1点护甲。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
yuansuhuimie:'元素毁灭',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
yuansuhuimie_info:'对所有角色使用,令目标弃置0~2张牌,并受到2-X点雷电伤害,X为其弃置的手牌数。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
xingjiegoutong:'星界沟通',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
xingjiegoutong_info:'增加1点体力上限并回复1点体力,弃置你的所有手牌。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
tanshezhiren:'弹射之刃',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
tanshezhiren_info:'出牌阶段对自己使用,依次按敌方-友方-敌方-的顺序随机弃置阵营内一名随机角色的一张牌(目标不包含你),共结算X次,X为存活角色数,若X为偶数,改为X-1。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
chuansongmen:'传送门',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
chuansongmen_info:'摸一张牌并展示,若发生在出牌阶段,你可以立即使用摸到的牌,若如此做,你将传送门收回手牌(每阶段最多收回2张传送门)。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
dunpaigedang:'盾牌格挡',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
dunpaigedang_info:'获得1点护甲值,摸一张牌,然后弃置一张牌。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
siwangchanrao:'死亡缠绕',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
siwangchanrao_infox:'弃置一名其他角色的一张手牌,若其此时没有手牌,则你摸一张牌。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
shihuawuqi:'石化武器',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
shihuawuqi_infox:'本回合内攻击范围+1;若你手牌中没有杀,则从牌堆中获得一张杀。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
shandianjian:'闪电箭',
|
|
|
|
|
shandianjian_info:'目标角色展示一张手牌,然后若你能弃掉一张与所展示牌相同花色的手牌,则对该角色造成1点雷电伤害。',
|
|
|
|
|
shijieshu:'视界术',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
shijieshu_info:'目标从牌堆或弃牌堆中随机装备两张类别不同的装备牌,然后弃置一张牌。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
zhaomingdan:'照明弹',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
zhaomingdan_info:'观看一名其他角色的手牌,并弃置其区域内的一张牌,然后其与你各摸一张牌。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
jihuocard:'激活',
|
2023-12-05 11:03:36 +00:00
|
|
|
|
jihuocard_info:'摸一张牌,本回合手牌上限+2。',
|
2020-03-10 03:43:11 +00:00
|
|
|
|
},
|
|
|
|
|
list:[
|
|
|
|
|
['heart',2,'shenenshu'],
|
|
|
|
|
['diamond',12,'shenenshu'],
|
|
|
|
|
['club',7,'zhiliaobo'],
|
|
|
|
|
['spade',1,'zhiliaobo'],
|
|
|
|
|
['spade',13,'yuansuhuimie'],
|
|
|
|
|
['spade',13,'xingjiegoutong'],
|
|
|
|
|
['diamond',2,'tanshezhiren'],
|
|
|
|
|
['diamond',2,'chuansongmen'],
|
|
|
|
|
['heart',2,'chuansongmen'],
|
|
|
|
|
['club',3,'dunpaigedang'],
|
|
|
|
|
['club',3,'shandianjian','thunder'],
|
|
|
|
|
['spade',1,'shandianjian','thunder'],
|
|
|
|
|
['spade',7,'shijieshu'],
|
|
|
|
|
['diamond',5,'zhaomingdan'],
|
|
|
|
|
['heart',10,'zhaomingdan'],
|
|
|
|
|
['diamond',2,'jihuocard'],
|
|
|
|
|
['diamond',1,'linghunzhihuo'],
|
|
|
|
|
],
|
|
|
|
|
};
|
|
|
|
|
});
|