diff --git a/card/gwent.js b/card/gwent.js index da17681d8..71d120bf2 100644 --- a/card/gwent.js +++ b/card/gwent.js @@ -3,6 +3,48 @@ game.import('card',function(lib,game,ui,get,ai,_status){ return { name:'gwent', card:{ + gw_ansha:{ + fullborder:'gold', + type:'spell', + subtype:'spell_gold', + vanish:true, + enable:function(card,player){ + var enemies=player.getEnemies(); + return game.hasPlayer(function(current){ + return current.hp==1&&enemies.contains(current); + }); + }, + notarget:true, + contentBefore:function(){ + player.$skill('暗杀','legend','metal'); + game.delay(2); + }, + content:function(){ + var enemies=player.getEnemies(); + var list=game.filterPlayer(function(current){ + return current.hp==1&&enemies.contains(current); + }); + if(list.length){ + var target=list.randomGet(); + player.line(target); + target.die()._triggered=null; + } + }, + contentAfter:function(){ + var evt=_status.event.getParent('phaseUse'); + if(evt&&evt.name=='phaseUse'){ + evt.skipped=true; + } + }, + ai:{ + value:8, + useful:[6,1], + result:{ + player:1 + }, + order:0.6, + } + }, gw_xinsheng:{ fullborder:'gold', type:'spell', @@ -252,6 +294,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ order:0.5, } }, + gw_butianshu:{ fullborder:'silver', type:'spell', @@ -321,6 +364,109 @@ game.import('card',function(lib,game,ui,get,ai,_status){ order:6, } }, + gw_shizizhaohuan:{ + fullborder:'silver', + type:'spell', + subtype:'spell_silver', + vanish:true, + enable:true, + filterTarget:function(card,player,target){ + return target==player; + }, + selectTarget:-1, + contentBefore:function(){ + player.$skill('十字召唤','legend','water'); + game.delay(2); + }, + content:function(){ + var list=[]; + list.push(get.cardPile('sha','cardPile')); + list.push(get.cardPile('shan','cardPile')); + list.push(get.cardPile('tao','cardPile')); + list.push(get.cardPile('jiu','cardPile')); + if(list.length){ + player.gain(list,'gain2'); + } + }, + ai:{ + value:8, + useful:[6,1], + result:{ + player:1 + }, + order:6, + } + }, + gw_zuihouyuanwang:{ + fullborder:'silver', + type:'spell', + subtype:'spell_silver', + vanish:true, + enable:true, + filterTarget:function(card,player,target){ + return target==player; + }, + selectTarget:-1, + contentBefore:function(){ + player.$skill('最后愿望','legend','water'); + game.delay(2); + }, + content:function(){ + 'step 0' + event.num=game.countPlayer(); + player.draw(event.num); + 'step 1' + player.chooseToDiscard(true,event.num,'he'); + }, + ai:{ + value:6, + useful:[4,1], + result:{ + player:1 + }, + order:7, + } + }, + gw_zirankuizeng:{ + fullborder:'silver', + type:'spell', + subtype:'spell_silver', + vanish:true, + enable:function(card,player){ + if(!player.storage.gw_zirankuizeng) return false; + var evtcard=player.storage.gw_zirankuizeng[0]; + var targets=player.storage.gw_zirankuizeng[1]; + if(!lib.filter.cardEnabled(evtcard,player)) return false; + for(var i=0;i=player.hp; + }, + content:function(){ + 'step 0' + target.damage('thunder'); + 'step 1' + if(target.isIn()){ + target.draw(); + } + }, + ai:{ + basic:{ + order:1.8, + value:[6,1], + useful:[4,1], + }, + result:{ + target:-1 + }, + tag:{ + damage:1, + thunderDamage:1, + natureDamage:1, + } + } + }, + gw_poxiao:{ + fullborder:'bronze', + type:'spell', + subtype:'spell_bronze', + enable:true, + notarget:true, + content:function(){ + 'step 0' + var choice=1; + if(game.countPlayer(function(current){ + if(current.countCards('j')){ + if(get.attitude(player,current)>0){ + choice=0; + } + return true; + } + })){ + player.chooseControl().set('choiceList',[ + '弃置一名角色判定区内的所有牌', + '随机获得一张铜卡法术(破晓除外)并展示之' + ],function(){ + return choice; + }); + } + else{ + event.directfalse=true; + } + 'step 1' + if(!event.directfalse&&result.index==0){ + player.chooseTarget(true,'弃置一名角色判定区内的所有牌',function(card,player,target){ + return target.countCards('j'); + }).ai=function(target){ + return get.attitude(player,target)*target.countCards('j'); + }; + } + else{ + var list=get.libCard(function(info,name){ + return name!='gw_poxiao'&&info.subtype=='spell_bronze'; + }); + if(list.length){ + player.gain(game.createCard(list.randomGet()),'gain2'); + } + else{ + player.draw(); + } + event.finish(); + } + 'step 2' + if(result.targets[0]){ + player.line(result.targets[0],'green'); + result.targets[0].discard(result.targets[0].getCards('j')); + } + }, + ai:{ + order:4, + useful:[3,1], + result:{ + player:1, + } + } } }, skill:{ + _gw_zirankuizeng:{ + trigger:{player:'useCard'}, + forced:true, + popup:false, + silent:true, + filter:function(event,player){ + if(get.info(event.card).complexTarget) return false; + if(!event.targets) return false; + return (get.type(event.card)=='trick'&&event.cards[0]&&event.cards[0]==event.card); + }, + content:function(){ + player.storage.gw_zirankuizeng=[trigger.cards[0],trigger.targets.concat(trigger.addedTargets||[])]; + } + }, _gainspell:{ trigger:{player:'drawBegin'}, forced:true, @@ -362,7 +644,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ if(!player.storage.spell_gain||Math.max.apply(null,player.storage.spell_gain)<0){ var tmp=player.storage.spell_gain2; player.storage.spell_gain=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15].randomGets(3); - player.storage.spell_gain2=15-Math.max.apply(null,player.storage.spell_gain); + player.storage.spell_gain2=Math.floor((15-Math.max.apply(null,player.storage.spell_gain))/2); if(tmp){ for(var i=0;i<3;i++){ player.storage.spell_gain[i]+=tmp; @@ -395,6 +677,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ '昆特牌':'