'use strict'; game.import('card',function(lib,game,ui,get,ai,_status){ return { name:'mtg', card:{ mtg_lindixiliu:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_lindixiliu',player); var card=get.cardPile2(function(card){ return get.suit(card)=='heart'; }); if(card){ player.gain(card,'draw'); } 'step 1' player.chooseToDiscard('he',[1,Infinity],{suit:'heart'},'林地溪流').set('ai',function(card){ return 8-get.value(card); }).set('prompt2','弃置任意张红桃牌,每弃置一张牌,将一张延时锦囊牌置入一名随机敌方角色的判定区'); 'step 2' if(result.bool){ event.num=result.cards.length; event.targets=player.getEnemies(); } 'step 3' if(event.num&&event.targets&&event.targets.length){ var target=event.targets.randomGet(); var list=get.inpile('delay'); for(var i=0;i<list.length;i++){ if(target.hasJudge(list[i])){ list.splice(i--,1); } } if(list.length){ player.line(target); var card=game.createCard(list.randomGet()); target.addJudge(card); target.$draw(card); game.delay(); event.num--; } else{ event.targets.remove(target); } event.redo(); } }, ai:{ value:6, useful:3, order:7, result:{ player:1 } } }, mtg_longlushanfeng:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_longlushanfeng',player); player.chooseControl('获得杀','获得闪').set('prompt','选择一项').set('ai',function(){ var player=_status.event.player; if(player.hasShan()) return 0; return 1; }); 'step 1' if(result.control=='获得杀'){ player.gain(game.createCard('sha'),'gain2'); } else{ player.gain(game.createCard('shan'),'gain2'); } }, ai:{ value:5, useful:3, order:4, result:{ player:1 } } }, mtg_cangbaohaiwan:{ type:'land', fullborder:'wood', enable:function(card,player){ if(!lib.cardPack.mode_derivation||!lib.cardPack.mode_derivation.length) return false; return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_cangbaohaiwan',player); event.map={}; var pack1=[]; var pack2=[]; for(var i=0;i<lib.cardPack.mode_derivation.length;i++){ var name=lib.cardPack.mode_derivation[i]; var info=lib.card[name]; if(info.gainable==false||info.destroy) continue; if(info.derivationpack){ var trans=lib.translate[info.derivationpack+'_card_config']+'(卡牌包)'; if(!event.map[trans]){ event.map[trans]=[]; pack2.push(trans); } event.map[trans].push(name); } else if(typeof info.derivation=='string'){ for(var j in lib.characterPack){ if(lib.characterPack[j][info.derivation]){ var trans=lib.translate[j+'_character_config']+'(武将包)'; if(!event.map[trans]){ event.map[trans]=[]; pack1.push(trans); } event.map[trans].push(name); break; } } } } if(!pack1.length&&!pack2.length){ event.finish(); return; } player.chooseControl(pack1.concat(pack2),'dialogcontrol',function(){ return _status.event.controls.randomGet('轩辕剑(卡牌包)'); }).set('prompt','选择一个扩展包获得其中一张衍生牌'); 'step 1' if(result.control&&event.map[result.control]){ player.gain(game.createCard(event.map[result.control].randomGet()),'draw'); } }, ai:{ value:7, useful:3, order:9, result:{ player:1 } } }, mtg_linzhongjianta:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_linzhongjianta',player); player.discoverCard(function(card){ return get.subtype(card)=='equip1'; },'nogain','选择一个武器装备之'); 'step 1' if(result.choice){ player.equip(game.createCard(result.choice),true); } }, ai:{ value:5, useful:3, order:9, result:{ player:function(player){ if(player.getEquip(1)) return 0; return 1; } } } }, mtg_youlin:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ game.changeLand('mtg_youlin',player); var list=get.inpile('trick'); while(list.length){ var name=list.randomRemove(); if(lib.card[name].multitarget) continue; var targets=game.filterPlayer(); while(targets.length){ var target=targets.randomRemove(); if(player.canUse(name,target,false)&&get.effect(target,{name:name},player,player)>0){ player.useCard({name:name},target); return; } } } }, ai:{ value:5, useful:3, order:4, result:{ player:1 } } }, mtg_haidao:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_haidao',player); if(player.isHealthy()){ player.changeHujia(); event.finish(); } else{ player._temp_mtg_haidao=true; player.chooseToDiscard('he','海岛').set('ai',function(card){ return 5-get.value(card); }).set('prompt2','弃置一张牌并回复1点体力,或取消并获得1点护甲'); } 'step 1' if(result.bool){ player.recover(); } else{ player.changeHujia(); } 'step 2' delete player._temp_mtg_haidao; }, ai:{ value:5, useful:3, order:4, result:{ player:1 } } }, mtg_yixialan:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_yixialan',player); player.chooseControl('基本牌','锦囊牌').set('prompt','选择一个类型获得该类型的一张牌').set('ai',function(){ var player=_status.event.player; if(!player.hasSha()||!player.hasShan()||player.hp==1) return 0; return 1; }); 'step 1' if(result.control=='基本牌'){ player.gain(game.createCard(get.inpile('basic').randomGet()),'gain2'); } else{ player.gain(game.createCard(get.inpile('trick','trick').randomGet()),'gain2'); } }, ai:{ value:5, useful:3, order:4, result:{ player:1 } } }, mtg_shuimomuxue:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_shuimomuxue',player); if(player.countDiscardableCards('he')){ player.chooseToDiscard('是否弃置一张牌并摸两张牌?','he').set('ai',function(card){ return 8-get.value(card); }); } else{ event.finish(); } 'step 1' if(result.bool){ player.draw(2); } }, ai:{ value:5, useful:3, order:4, result:{ player:function(player){ if(!player.countCards('h',function(card){ return card.name!='mtg_shuimomuxue'&&get.value(card)<8; })){ return 0; } return 1; } } } }, mtg_feixu:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ game.changeLand('mtg_feixu',player); player.discoverCard(ui.discardPile.childNodes); }, ai:{ value:5, useful:3, order:4, result:{ player:1 } } }, mtg_shamolvzhou:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ game.changeLand('mtg_shamolvzhou',player); player.discoverCard(get.inpile('basic')); }, ai:{ value:5, useful:3, order:4, result:{ player:1 } } }, mtg_duzhao:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_duzhao',player); player.chooseTarget('选择一名角色令其获得一张毒',true).set('ai',function(target){ if(target.hasSkillTag('nodu')) return 0; return -get.attitude(_status.event.player,target)/Math.sqrt(target.hp+1); }); 'step 1' if(result.bool){ var target=result.targets[0]; player.line(target,'green'); target.gain(game.createCard('du'),'gain2'); } }, ai:{ value:5, useful:3, order:4, result:{ player:function(player){ if(game.countPlayer(function(current){ if(current.hasSkillTag('nodu')) return false; return get.attitude(player,current)<0; })>game.countPlayer(function(current){ if(current.hasSkillTag('nodu')) return false; return get.attitude(player,current)>0; })){ return 1; } return 0; } } } }, mtg_bingheyaosai:{ type:'land', fullborder:'wood', enable:function(card,player){ return !player.hasSkill('land_used'); }, notarget:true, content:function(){ 'step 0' game.changeLand('mtg_bingheyaosai',player); player.draw(2); 'step 1' player.chooseToDiscard('he',2,true); }, ai:{ value:5, useful:3, order:2, result:{ player:1 } } } }, skill:{ mtg_bingheyaosai_skill:{ trigger:{player:'useCard'}, forced:true, filter:function(event,player){ if(player.countCards('he')==0) return false; return event.card.name=='sha'; }, autodelay:true, content:function(){ player.chooseToDiscard(true,'he'); }, ai:{ mapValue:-4 } }, mtg_duzhao_skill:{ trigger:{player:'phaseEnd'}, forced:true, content:function(){ player.gain(game.createCard('du'),'gain2'); }, ai:{ mapValue:-5 } }, mtg_shamolvzhou_skill:{ mod:{ ignoredHandcard:function(card){ if(get.type(card)=='basic'){ return true; } } }, ai:{ mapValue:3 } }, mtg_haidao_skill:{ trigger:{player:'changeHujiaBefore'}, forced:true, filter:function(event,player){ return player.isDamaged()&&!player._temp_mtg_haidao&&event.num>0; }, content:function(){ player.recover(trigger.num); trigger.cancel(); }, ai:{ mapValue:1 } }, mtg_yixialan_skill:{ enable:'phaseUse', filter:(event,player)=>player.hasCard(card=>lib.skill.mtg_yixialan_skill.filterCard(card,player),'h'), filterCard:(card,player)=>get.type(card)=='basic'&&player.canRecast(card), discard:false, lose:false, check:function(card){ return 7-get.value(card); }, usable:1, content:function(){ player.recast(cards,null,(player,cards)=>{ var cardsToGain=[]; for(var repetition=0;repetition<cards.length;repetition++){ var card=get.cardPile(card=>get.type(card,'trick')=='trick'); if(card) cardsToGain.push(card); } if(cardsToGain.length) player.gain(cardsToGain,'draw'); if(cards.length-cardsToGain.length) player.draw(cards.length-cardsToGain.length).log=false; }); }, ai:{ mapValue:2, order:1, result:{ player:1 } } }, mtg_shuimomuxue_skill:{ mod:{ maxHandcard:function(player,num){ return num-1; } }, trigger:{player:'phaseDiscardEnd'}, forced:true, filter:function(event){ return event.cards&&event.cards.length>0; }, content:function(){ player.draw(); }, ai:{ mapValue:2 } }, mtg_feixu_skill:{ trigger:{player:'phaseBegin'}, silent:true, content:function(){ var num=ui.discardPile.childNodes.length; if(num){ var card=ui.discardPile.childNodes[get.rand(num)]; if(card){ ui.cardPile.insertBefore(card,ui.cardPile.firstChild); } } }, ai:{ mapValue:0 } }, mtg_youlin_skill:{ enable:'phaseUse', usable:1, filter:function(event,player){ return player.countCards('h',{type:['trick','delay']}); }, filterCard:function(card){ return get.type(card,'trick')=='trick'; }, check:function(card){ return 7-get.value(card); }, content:function(){ player.discoverCard(); }, ai:{ mapValue:1, order:7, result:{ player:2 } } }, mtg_linzhongjianta_skill:{ enable:'chooseToUse', filterCard:function(card){ return get.type(card)=='basic'; }, usable:1, viewAs:{name:'sha'}, viewAsFilter:function(player){ if(!player.getEquip(1)) return false; if(!player.countCards('h',{type:'basic'})) return false; }, prompt:'将一张基本牌当杀使用', check:function(card){return 6-get.value(card)}, ai:{ mapValue:2, respondSha:true, order:function(){ return get.order({name:'sha'})-0.1; }, skillTagFilter:function(player,tag,arg){ if(arg!='use') return false; if(!player.getEquip(1)) return false; if(!player.countCards('h',{type:'basic'})) return false; }, } }, mtg_cangbaohaiwan_skill:{ trigger:{player:'drawBegin'}, silent:true, content:function(){ if(Math.random()<1/3){ var list=[]; for(var i=0;i<lib.cardPack.mode_derivation.length;i++){ var name=lib.cardPack.mode_derivation[i]; var info=lib.card[name]; if(info.gainable==false||info.destroy) continue; list.push(name); } if(list.length){ ui.cardPile.insertBefore(game.createCard(list.randomGet()),ui.cardPile.firstChild); } } }, ai:{ mapValue:5 } }, mtg_longlushanfeng_skill:{ mod:{ cardUsable:function(card,player,num){ if(card.name=='sha') return num+1; } }, ai:{ mapValue:2 } }, mtg_lindixiliu_skill:{ trigger:{player:'phaseBegin'}, direct:true, filter:function(event,player){ return player.countCards('he',{suit:'heart'})&&player.countCards('j'); }, content:function(){ 'step 0' player.chooseToDiscard('he',{suit:'heart'},get.prompt2('mtg_lindixiliu_skill')).set('ai',function(card){ return 8-get.value(card); }).set('logSkill','mtg_lindixiliu_skill'); 'step 1' if(result.bool){ player.discardPlayerCard(player,'j',true); } }, ai:{ mapValue:1.5 } } }, cardType:{ land:0.6 }, translate:{ land:'地图', mtg_yixialan:'依夏兰', mtg_yixialan_skill:'依夏兰', mtg_yixialan_info:'选项一:随机获得一张基本牌;选项二:随机获得一张锦囊牌。地图效果:出牌阶段限一次,你可以将一张基本牌重铸为锦囊牌。', mtg_yixialan_skill_info:'出牌阶段限一次,你可以将一张基本牌重铸为锦囊牌。', mtg_shuimomuxue:'水没墓穴', mtg_shuimomuxue_skill:'水没墓穴', mtg_shuimomuxue_info:'你可以弃置一张牌并摸两张牌。地图效果:锁定技,你的手牌上限-1;若弃牌阶段弃置了至少一张牌,则在此阶段结束时摸一张牌。', mtg_shuimomuxue_skill_info:'锁定技,你的手牌上限-1;若弃牌阶段弃置了至少一张牌,则在此阶段结束时摸一张牌。', mtg_feixu:'废墟', mtg_feixu_skill:'废墟', mtg_feixu_info:'从弃牌堆中发现一张牌。地图效果:准备阶段,随机将弃牌堆的一张牌置于牌堆顶。', mtg_feixu_skill_info:'准备阶段,随机将弃牌堆的一张牌置于牌堆顶。', mtg_haidao:'海岛', mtg_haidao_skill:'海岛', mtg_haidao_info:'选项一:获得1点护甲(无视地图效果);选项二:弃置一张牌并回复1点体力。地图效果:锁定技,当你获得护甲时,若你已受伤,改为回复等量体力。', mtg_haidao_skill_info:'锁定技,当你获得护甲时,若你已受伤,改为回复等量体力。', mtg_youlin:'幽林', mtg_youlin_skill:'幽林', mtg_youlin_info:'随机使用一张普通锦囊牌,随机指定一个具有正收益的目标。地图效果:出牌阶段限一次,你可以弃置一张锦囊牌并发现一张牌。', mtg_youlin_skill_info:'出牌阶段限一次,你可以弃置一张锦囊牌并发现一张牌。', mtg_shamolvzhou:'沙漠绿洲', mtg_shamolvzhou_skill:'沙漠绿洲', mtg_shamolvzhou_info:'发现一张基本牌。地图效果:你的基本牌不计入手牌上限。', mtg_shamolvzhou_skill_info:'你的基本牌不计入手牌上限。', mtg_duzhao:'毒沼', mtg_duzhao_skill:'毒沼', mtg_duzhao_info:'选择一名角色令其获得一张毒。地图效果:结束阶段,你获得一张毒。', mtg_duzhao_skill_info:'结束阶段,你获得一张毒。', mtg_linzhongjianta:'林中尖塔', mtg_linzhongjianta_skill:'林中尖塔', mtg_linzhongjianta_info:'发现一张武器牌并装备之。地图效果:若你装备区内有武器牌,你可以将一张基本牌当作杀使用。', mtg_linzhongjianta_skill_info:'若你装备区内有武器牌,你可以将一张基本牌当作杀使用。', mtg_cangbaohaiwan:'藏宝海湾', mtg_cangbaohaiwan_skill:'藏宝海湾', mtg_cangbaohaiwan_info:'选择一个护展包,随机获得来自该扩展包的一张衍生牌。地图效果:你在摸牌时有可能摸到衍生牌。', mtg_cangbaohaiwan_skill_info:'你在摸牌时有可能摸到衍生牌。', mtg_longlushanfeng:'龙颅山峰', mtg_longlushanfeng_skill:'龙颅山峰', mtg_longlushanfeng_info:'选项一:获得一张杀;选项二:获得一张闪。地图效果:你出杀的次数上限+1。', mtg_longlushanfeng_skill_info:'你出杀的次数上限+1。', mtg_bingheyaosai:'冰河要塞', mtg_bingheyaosai_skill:'冰河要塞', mtg_bingheyaosai_info:'摸两张牌,然后弃置两张牌。地图效果:锁定技,每当你使用一张杀,若你有牌,则需弃置一张牌。', mtg_bingheyaosai_skill_info:'锁定技,每当你使用一张杀,若你有牌,则需弃置一张牌。', mtg_lindixiliu:'林地溪流', mtg_lindixiliu_skill:'林地溪流', mtg_lindixiliu_info:'从牌堆中摸一张红桃牌,然后弃置任意张红桃牌,每弃置一张牌,将一张延时锦囊牌置入一名随机敌方角色的判定区。地图效果:准备阶段,你可以弃置一张红桃牌,然后弃置判定区内的一张牌。', mtg_lindixiliu_skill_info:'准备阶段,你可以弃置一张红桃牌,然后弃置判定区内的一张牌。', }, help:{ '万智牌':'<ul><li>地图牌可于出牌阶段使用,每阶段最多使用一张地图牌<li>'+ '地图牌分为两部分:即时效果以及地图效果,即时效果由使用者在使用时选择;地图效果对所有角色有效<li>'+ '当使用者死亡或下个回合开始时,当前地图效果消失<li>'+ '新地图被使用时会覆盖当前地图效果' }, list:[ ['club',12,'mtg_yixialan'], ['spade',11,'mtg_shuimomuxue'], ['diamond',5,'mtg_haidao'], ['club',10,'mtg_youlin'], ['club',8,'mtg_feixu'], ['heart',6,'mtg_shamolvzhou'], ['club',12,'mtg_cangbaohaiwan'], ['spade',11,'mtg_lindixiliu'], ['diamond',5,'mtg_bingheyaosai'], ['club',10,'mtg_longlushanfeng'], ['club',8,'mtg_duzhao'], ['heart',6,'mtg_linzhongjianta'], ], }; });