import { lib, game, ui, get, ai, _status } from '../noname.js'; game.import('card', function () { 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.hp0; }, 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'&& _status.event.filterCard(new lib.element.VCard({name:'shandianjian'}))){ 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'&& _status.event.filterCard(new lib.element.VCard({name:'shandianjian'}))){ 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, // recastable:true, 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;i2) 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=6){ return 0; } } return 1; } } } }, zhiliaobo:{ fullskin:true, enable:true, filterTarget:function(card,player,target){ return target.hp=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:'灵魂之火', linghunzhihuo_info:'对一名角色造成1点火焰伤害,然后随机弃置一张手牌。', shenenshu:'神恩术', shenenshu_info:'出牌阶段对自己使用,将所有手牌(含此张)替换为基本牌。', zhiliaobo:'治疗波', zhiliaobo_info:'出牌阶段对一名受伤角色使用,目标进行一次判定,若结果为红色,则回复1点体力,否则获得1点护甲。', yuansuhuimie:'元素毁灭', yuansuhuimie_info:'对所有角色使用,令目标弃置0~2张牌,并受到2-X点雷电伤害,X为其弃置的手牌数。', xingjiegoutong:'星界沟通', xingjiegoutong_info:'增加1点体力上限并回复1点体力,弃置你的所有手牌。', tanshezhiren:'弹射之刃', tanshezhiren_info:'出牌阶段对自己使用,依次按敌方-友方-敌方-的顺序随机弃置阵营内一名随机角色的一张牌(目标不包含你),共结算X次,X为存活角色数,若X为偶数,改为X-1。', chuansongmen:'传送门', chuansongmen_info:'摸一张牌并展示,若发生在出牌阶段,你可以立即使用摸到的牌,若如此做,你将传送门收回手牌(每阶段最多收回2张传送门)。', dunpaigedang:'盾牌格挡', dunpaigedang_info:'获得1点护甲值,摸一张牌,然后弃置一张牌。', siwangchanrao:'死亡缠绕', siwangchanrao_infox:'弃置一名其他角色的一张手牌,若其此时没有手牌,则你摸一张牌。', shihuawuqi:'石化武器', shihuawuqi_infox:'本回合内攻击范围+1;若你手牌中没有杀,则从牌堆中获得一张杀。', shandianjian:'闪电箭', shandianjian_info:'目标角色展示一张手牌,然后若你能弃掉一张与所展示牌相同花色的手牌,则对该角色造成1点雷电伤害。', shijieshu:'视界术', shijieshu_info:'目标从牌堆或弃牌堆中随机装备两张类别不同的装备牌,然后弃置一张牌。', zhaomingdan:'照明弹', zhaomingdan_info:'观看一名其他角色的手牌,并弃置其区域内的一张牌,然后其与你各摸一张牌。', jihuocard:'激活', jihuocard_info:'摸一张牌,本回合手牌上限+2。', }, 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'], ], }; });