From fdcfe06ca9b0e18f6c87ed0d276772c2cfdc8a0e Mon Sep 17 00:00:00 2001 From: libccy Date: Mon, 17 Jul 2017 10:45:11 +0800 Subject: [PATCH] 4 --- card/gwent.js | 70 +++++++++++++++-------- card/swd.js | 49 ++++++++++++++++- card/yunchou.js | 47 ---------------- character/gwent.js | 134 +++++++++++++++++++++++++++++++++++++++++++-- game/game.js | 1 + 5 files changed, 223 insertions(+), 78 deletions(-) diff --git a/card/gwent.js b/card/gwent.js index b2881796e..36a3d3549 100644 --- a/card/gwent.js +++ b/card/gwent.js @@ -931,7 +931,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){ order:7, } }, - gw_zirankuizeng:{ fullborder:'silver', type:'spell', @@ -1028,7 +1027,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ } }, ai:{ - value:6, + value:7, useful:[4,1], result:{ player:function(player){ @@ -1038,6 +1037,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ order:7, } }, + gw_qinpendayu:{ fullborder:'bronze', type:'spell', @@ -1054,7 +1054,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ target.addTempSkill('gw_qinpendayu',{player:'phaseAfter'}); }, ai:{ - value:4, + value:[5,1], useful:[3,1], result:{ player:function(player,target){ @@ -1092,7 +1092,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ target.addTempSkill('gw_birinongwu',{player:'phaseAfter'}); }, ai:{ - value:4, + value:[5,1], useful:[3,1], result:{ player:function(player,target){ @@ -1126,7 +1126,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ target.addSkill('gw_ciguhanshuang'); }, ai:{ - value:4, + value:[5,1], useful:[3,1], result:{ player:function(player,target){ @@ -1189,7 +1189,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ target.loseMaxHp(true); }, ai:{ - value:4, + value:[4,1], useful:[3,1], result:{ target:function(player,target){ @@ -1219,7 +1219,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ } }, ai:{ - value:4, + value:[4.5,1], useful:[4,1], result:{ target:function(player,target){ @@ -1259,7 +1259,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ ai:{ basic:{ order:1.8, - value:[6,1], + value:[5,1], useful:[4,1], }, result:{ @@ -1282,7 +1282,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ 'step 0' var choice=1; if(game.countPlayer(function(current){ - if(current.countCards('j')){ + if(current.countCards('j')||current.hasSkillTag('weather')){ if(get.attitude(player,current)>0){ choice=0; } @@ -1292,7 +1292,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ player.chooseControl(function(){ return choice; }).set('choiceList',[ - '弃置一名角色判定区内的所有牌', + '解除任意名角色的天气效果并移除其判定区内的牌', '随机获得一张铜卡法术(破晓除外)并展示之' ]); } @@ -1301,10 +1301,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){ } 'step 1' if(!event.directfalse&&result.index==0){ - player.chooseTarget(true,'弃置一名角色判定区内的所有牌',function(card,player,target){ - return target.countCards('j'); + player.chooseTarget(true,[1,Infinity],'解除任意名角色的天气效果并移除其判定区内的牌',function(card,player,target){ + return target.countCards('j')||target.hasSkillTag('weather'); }).ai=function(target){ - return get.attitude(player,target)*target.countCards('j'); + return get.attitude(player,target); }; } else{ @@ -1320,14 +1320,27 @@ game.import('card',function(lib,game,ui,get,ai,_status){ event.finish(); } 'step 2' - if(result.targets[0]){ - player.line(result.targets[0],'green'); - result.targets[0].discard(result.targets[0].getCards('j')); + event.list=result.targets.slice(0).sortBySeat(); + 'step 3' + if(event.list.length){ + var target=event.list.shift(); + player.line(target,'green'); + var cards=target.getCards('j'); + if(cards.length){ + target.discard(cards); + } + if(target.hasSkillTag('weather')){ + target.removeSkill('gw_qinpendayu'); + target.removeSkill('gw_birinongwu'); + target.removeSkill('gw_ciguhanshuang'); + } + event.redo(); } }, ai:{ order:4, - useful:[3,1], + value:[5,1], + useful:[4,1], result:{ player:1, } @@ -1370,7 +1383,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){ maxHandcard:function(player,num){ return num-1; } - } + }, + ai:{ + weather:true + } }, gw_birinongwu:{ mark:true, @@ -1382,7 +1398,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){ cardEnabled:function(card){ if(card.name=='sha') return false; } - } + }, + ai:{ + weather:true + } }, gw_ciguhanshuang:{ trigger:{player:'phaseDrawBegin'}, @@ -1398,7 +1417,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){ content:function(){ trigger.num--; player.removeSkill('gw_ciguhanshuang'); - } + }, + ai:{ + weather:true + } }, gw_dieyi:{ init:function(player){ @@ -1589,7 +1611,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ gw_zirankuizeng:'自然馈赠', gw_zirankuizeng_info:'选择任意一张铜卡法术使用', gw_poxiao:'破晓', - gw_poxiao_info:'选择一项:弃置一名角色判定区内的所有牌,或随机获得一张铜卡法术(破晓除外)并展示之', + gw_poxiao_info:'选择一项:解除任意名角色的天气效果并移除其判定区内的牌,或随机获得一张铜卡法术(破晓除外)并展示之', gw_zumoshoukao:'阻魔手铐', gw_zumoshoukao_info:'令一名角色失去所有护甲且非锁定技失效直到下一回合结束', gw_aozuzhilei:'奥祖之雷', @@ -1607,13 +1629,13 @@ game.import('card',function(lib,game,ui,get,ai,_status){ gw_baoxueyaoshui_info:'令一名角色弃置两张手牌并摸一张牌', gw_birinongwu:'蔽日浓雾', gw_birinongwu_bg:'雾', - gw_birinongwu_info:'出牌阶段对一名角色及其相邻角色使用,目标不能使用杀直到下一回合结束', + gw_birinongwu_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标不能使用杀直到下一回合结束', gw_qinpendayu:'倾盆大雨', gw_qinpendayu_bg:'雨', - gw_qinpendayu_info:'出牌阶段对一名角色及其相邻角色使用,目标手牌上限-1直到下一回合结束', + gw_qinpendayu_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标手牌上限-1直到下一回合结束', gw_ciguhanshuang:'刺骨寒霜', gw_ciguhanshuang_bg:'霜', - gw_ciguhanshuang_info:'出牌阶段对一名角色及其相邻角色使用,目标下个摸牌阶段摸牌数-1', + gw_ciguhanshuang_info:'天气牌,出牌阶段对一名角色及其相邻角色使用,目标下个摸牌阶段摸牌数-1', gw_wenyi:'瘟疫', gw_wenyi_info:'令所有体力值为全场最少的角色随机弃置一张牌', gw_yanziyaoshui:'燕子药水', diff --git a/card/swd.js b/card/swd.js index b67b8ad56..397fae4d0 100644 --- a/card/swd.js +++ b/card/swd.js @@ -3,7 +3,48 @@ game.import('card',function(lib,game,ui,get,ai,_status){ return { name:'swd', card:{ - + yihuajiemu:{ + fullskin:true, + type:'trick', + enable:true, + singleCard:true, + filterTarget:function(card,player,target){ + if(target.isMin()) return false; + if(ui.selected.targets.length){ + return target.getCards('e',{subtype:'equip5'}).length==0; + } + else{ + return target.getCards('e',{subtype:'equip5'}).length>0; + } + }, + selectTarget:2, + multitarget:true, + complexTarget:true, + content:function(){ + if(target.getEquip(5)){ + target.$give(target.getEquip(5),event.addedTarget); + event.addedTarget.equip(target.getEquip(5)); + game.delay(); + } + }, + ai:{ + order:1, + result:{ + target:function(player,target){ + if(target.getCards('e',{subtype:'equip5'}).length){ + if(get.attitude(target,player)>0){ + return -0.5; + } + return -1; + } + return 1; + } + }, + tag:{ + loseCard:1 + } + } + }, liuxinghuoyu:{ fullskin:true, type:'trick', @@ -4729,6 +4770,8 @@ game.import('card',function(lib,game,ui,get,ai,_status){ '护甲:和体力类似,每点护甲可抵挡一点伤害,但不影响手牌上限' }, translate:{ + yihuajiemu:'移花接木', + yihuajiemu_info:'对一名装备区内有宝物的角色使用,将其宝物牌转移至另一名角色', liuxinghuoyu:'流星火羽', liuxinghuoyu_info:'出牌阶段,对一名角色使用,令目标弃置2张牌,或受到一点火焰伤害', g_yuchan_equip:'玉蝉', @@ -5099,6 +5142,10 @@ game.import('card',function(lib,game,ui,get,ai,_status){ lianyaohu_info:'出牌阶段各限一次,你可以选择一项:1.弃置一张手牌,并将一名其他角色的一张手牌置入炼妖壶;2.弃置两张炼妖壶中的牌,从牌堆中获得一张与弃置的牌类别均不相同的牌', }, list:[ + ['heart',3,'yihuajiemu'], + ['diamond',1,'yihuajiemu'], + ['diamond',7,'yihuajiemu'], + ['diamond',3,'liuxinghuoyu','fire'], ['heart',6,'liuxinghuoyu','fire'], ['heart',9,'liuxinghuoyu','fire'], diff --git a/card/yunchou.js b/card/yunchou.js index e5ce5498a..624bb2bc7 100644 --- a/card/yunchou.js +++ b/card/yunchou.js @@ -534,48 +534,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){ } } }, - yihuajiemu:{ - fullskin:true, - type:'trick', - enable:true, - singleCard:true, - filterTarget:function(card,player,target){ - if(target.isMin()) return false; - if(ui.selected.targets.length){ - return target.getCards('e',{subtype:'equip5'}).length==0; - } - else{ - return target.getCards('e',{subtype:'equip5'}).length>0; - } - }, - selectTarget:2, - multitarget:true, - complexTarget:true, - content:function(){ - if(target.getEquip(5)){ - target.$give(target.getEquip(5),event.addedTarget); - event.addedTarget.equip(target.getEquip(5)); - game.delay(); - } - }, - ai:{ - order:1, - result:{ - target:function(player,target){ - if(target.getCards('e',{subtype:'equip5'}).length){ - if(get.attitude(target,player)>0){ - return -0.5; - } - return -1; - } - return 1; - } - }, - tag:{ - loseCard:1 - } - } - }, fudichouxin:{ fullskin:true, type:'trick', @@ -1036,8 +994,6 @@ game.import('card',function(lib,game,ui,get,ai,_status){ toulianghuanzhu:'偷梁换柱', toulianghuanzhu_info:'出牌阶段对一名有手牌的角色使用,选择另一名有手牌的角色获得目标两张手牌(不足则全拿),然后还给其等量手牌', toulianghuanzhu_bg:'柱', - yihuajiemu:'移花接木', - yihuajiemu_info:'对一名装备区内有宝物的角色使用,将其宝物牌转移至另一名角色', fudichouxin:'釜底抽薪', fudichouxin_info:'与一名角色进行拼点,若成功则获得双方拼点牌', shuiyanqijun:'水攻', @@ -1065,15 +1021,12 @@ game.import('card',function(lib,game,ui,get,ai,_status){ ['club',1,'qiankundai'], ['heart',6,'huoshan','fire'], ['club',7,'hongshui'], - ['heart',3,'yihuajiemu'], ["diamond",3,'guohe'], ['diamond',4,'fudichouxin'], - ['diamond',1,'yihuajiemu'], ['club',6,'fudichouxin'], ['spade',1,'fudichouxin'], ['club',7,'shuiyanqijun'], - ['diamond',7,'yihuajiemu'], ['club',8,'shuiyanqijun'], ['club',8,'guohe'], ['spade',9,'shuiyanqijun'], diff --git a/character/gwent.js b/character/gwent.js index e5d0ae9ce..0962fed0a 100644 --- a/character/gwent.js +++ b/character/gwent.js @@ -16,7 +16,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ gw_laduoweide:['male','wei',4,['gwxiaoshou']], gw_dagong:['male','qun',4,['tianbian']], - // gw_bulanwang:['male','qun',4,['bolang']], + gw_bulanwang:['male','qun',4,['bolang']], // gw_kuite:['male','qun',3,[]], // gw_fuertaisite:['male','qun',3,[]], // gw_hengsaite:['male','wei',4,['jinsheng']], @@ -32,12 +32,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ gw_aigeleisi:['female','wu',3,['gwshenyu']], gw_aokeweisite:['male','qun',4,['yunhuo']], - gw_kaxier:['male','wu',4,['gwfengchi']], + gw_kaxier:['male','shu',4,['gwfengchi']], gw_luobo:['male','qun',3,['junchi']], gw_mieren:['male','shu',3,['lingji']], gw_sanhanya:['male','shu',3,['gwjinyan']], gw_shanhu:['female','qun',3,['shuijian']], - // gw_zhangyujushou:['male','wu',4,[]], + gw_zhangyujushou:['male','wu',4,['gwjushi']], gw_zhuoertan:['male','wu',3,['hupeng']], }, characterIntro:{ @@ -54,9 +54,130 @@ game.import('character',function(lib,game,ui,get,ai,_status){ gw_yioufeisi:'国王还是乞丐,两者有何区别,人类少一个算一个', }, skill:{ + bolang:{ + trigger:{player:'phaseBegin'}, + frequent:true, + init:function(player){ + player.storage.bolang=[]; + }, + content:function(){ + 'step 0' + var cards=[]; + for(var i=0;i