diff --git a/card/gwent.js b/card/gwent.js index 8e76d7f9b..0a568229f 100644 --- a/card/gwent.js +++ b/card/gwent.js @@ -979,7 +979,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ selectTarget:-1, content:function(){ target.recover(); - target.changeHujia(); + target.draw(); }, ai:{ basic:{ @@ -2294,7 +2294,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ gw_zhuoshao:'灼烧', gw_zhuoshao_info:'对任意名体力值为全场最高的角色使用,造成一点火属性伤害', gw_fuyuan:'复原', - gw_fuyuan_info:'对一名濒死状态角色使用,目标回复一点体力并获得一点护甲', + gw_fuyuan_info:'对一名濒死状态角色使用,目标回复一点体力并摸一张牌', gw_youer:'诱饵', gw_youer_bg:'饵', gw_youer_info:'将一名其他角色的所有手牌移出游戏,然后摸一张牌,当前回合结束后该角色将以此法失去的牌收回手牌', diff --git a/character/gwent.js b/character/gwent.js index 408e82813..2796111c3 100644 --- a/character/gwent.js +++ b/character/gwent.js @@ -2279,12 +2279,19 @@ game.import('character',function(lib,game,ui,get,ai,_status){ draw:{ trigger:{player:'phaseEnd'}, filter:function(event,player){ - return player.hasSkill('hunmo3')&&player.countCards('h')<2; + return player.getStat('skill').hunmo>=3; }, frequent:true, content:function(){ - var num=2-player.countCards('h'); - if(num>0) player.draw(num); + 'step 0' + player.chooseTarget(get.prompt('魂墨:造成一点伤害')).ai=function(target){ + return get.damageEffect(target,player,player); + } + 'step 1' + if(result.bool){ + player.logSkill('hunmo_draw',result.targets); + result.targets[0].damage(); + } } }, } @@ -4294,7 +4301,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ gwminxiang_info:'出牌阶段限一次,你可以弃置一张基本牌或普通锦囊牌并选择两名角色,令目标分别视为对对方使用一张与弃置的牌同名的牌;每当有角色因此受到一点伤害,你在结算后摸一张牌', gwlangshi:'狼噬', gwlangshi_info:'每当你造成一次伤害,你可以对一名体力值不小于受伤害角色的其他角色造一点伤害', - gwjingshi:'镜师', + gwjingshi:'血契', gwjingshi_info:'出牌阶段限一次,你可以猜测手牌中黑色牌最多的角色是谁,若猜对,你可以观看所有其他角色的手牌并获得任意一张', gwjingtian:'经天', gwjingtian_info:'锁定技,牌堆顶的9张牌对你始终可见;你始终跳过摸牌阶段,改为获得3枚“经天”标记;每名角色的回合限一次,你可以在任意时间点移去一枚“经天”标记,然后获得牌堆顶的一张牌', @@ -4394,7 +4401,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ gwbaquan:'霸权', gwbaquan_info:'出牌阶段限一次,你可以获得一名其他角色的所有牌,然后还给其等量的牌,若你归还的牌均为你获得的牌且该角色体力值不小于你,你对其造成一点伤害', hunmo:'魂墨', - hunmo_info:'出牌阶段,若你手牌数小于2,你可以选择一名手牌数小于2的角色与其各摸一张牌;若你手牌数不小于2,你可以选择一名手牌数不小于2的角色与你各弃置一张手牌;结束阶段,若你发动过魂墨,你可以将手牌数补至2;同一阶段不能对同一角色发动两次', + hunmo_info:'出牌阶段,若你手牌数小于2,你可以选择一名手牌数小于2的角色与其各摸一张牌;若你手牌数不小于2,你可以选择一名手牌数不小于2的角色与你各弃置一张手牌;结束阶段,若你发动过至少3次魂墨,你可以造成一点伤害;同一阶段不能对同一角色发动两次', huihun:'回魂', huihun_info:'结束阶段,你可以从弃牌堆中获得本回合使用的前两张红色牌', lanquan:'远略', diff --git a/character/hearth.js b/character/hearth.js index 29ef59a8a..414b1216d 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -270,7 +270,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ process:function(skill,name){ var cardname='hsnitai_'+skill; lib.translate[cardname]=lib.translate[skill]; - lib.translate[cardname+'_info']='出牌阶段对自己使用,获得技能'+lib.translate[skill]+'(替换前一个以此法获得的技能)'; + lib.translate[cardname+'_info']='出牌阶段对自己使用,获得技能'+lib.translate[skill]+'(替换前一个以此法获得的技能,效果持续2回合)'; lib.translate[cardname+'_append']='
【'+lib.translate[skill]+'】
'+ get.skillInfoTranslation(skill)+'
'; lib.card[cardname]=lib.card[cardname]||{ @@ -290,6 +290,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ target.$gain2(card); target.removeSkill('hsnitai_card'); target.storage.hsnitai_card=card; + target.storage.hsnitai_card_count=1; player.syncStorage('hsnitai_card'); target.addAdditionalSkill('hsnitai_card',skill); target.addSkill('hsnitai_card'); @@ -337,13 +338,24 @@ game.import('character',function(lib,game,ui,get,ai,_status){ subSkill:{ card:{ mark:'card', - onremove:true, + onremove:['hsnitai_card','hsnitai_card_count'], intro:{ content:function(storage){ var skill=storage.name.slice(8); return '
【'+lib.translate[skill]+'】
'+ get.skillInfoTranslation(skill)+'
'; } + }, + trigger:{player:'phaseUseBegin'}, + priority:-10, + silent:true, + content:function(){ + if(player.storage.hsnitai_card_count>0){ + player.storage.hsnitai_card_count--; + } + else{ + player.removeSkill('hsnitai_card'); + } } } } diff --git a/character/yxs.js b/character/yxs.js index de305f750..5127a4b3e 100644 --- a/character/yxs.js +++ b/character/yxs.js @@ -1702,7 +1702,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ forced:true, trigger:{global:'damageAfter'}, filter:function(event,player){ - return event.player!=player&&player.storage.tongling<3; + return event.source&&event.source.isFriendsOf(player)&&player.storage.tongling<3; }, content:function(){ player.storage.tongling++; @@ -1714,13 +1714,36 @@ game.import('character',function(lib,game,ui,get,ai,_status){ } }, fanpu:{ + enable:'phaseUse', + usable:1, + filter:function(event,player){ + return player.storage.tongling>=3; + }, + filterTarget:function(card,player,target){ + return player.canUse('sha',target); + }, + selectTarget:[1,3], + multitarget:true, + multiline:true, + content:function(){ + player.storage.tongling-=3; + player.unmarkSkill('tongling'); + player.syncStorage('tongling'); + player.useCard({name:'sha'},targets,false); + }, + ai:{ + combo:'tongling', + order:2 + } + }, + fanpu_old:{ enable:'phaseUse', usable:1, filter:function(event,player){ return player.storage.tongling>=3; }, promptfunc:function(){ - return '令自己在本轮内不能成为出杀的目标(选择自己),或对攻击范围内的一名其他角色造成一点伤害' + return '令自己在本轮内不能成为出杀的目标(选择自己),或对攻击范围内的至多两名角色使用一张杀' }, filterTarget:function(card,player,target){ return player==target||get.distance(player,target,'attack')<=1; @@ -2934,9 +2957,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ ducai3:'独裁', ducai_info:'出牌阶段限一次,你可以弃置一张牌,则本轮内除你外的角色不能使用或打出与该手牌花色相同的手牌', tongling:'统领', - tongling_info:'每当其他角色受到一次伤害时,你获得1个统领标记(标记上限为3)', + tongling_info:'锁定技,每当一名友方角色造成一次伤害,你获得1个统领标记(标记上限为3)', fanpu:'反扑', - fanpu_info:'出牌阶段限一次,你可以弃掉3个统领标记并选择1项执行:(1)本轮内不能成为【杀】的目标;(2)对你攻击范围内的1名其他角色造成1点伤害。', + fanpu_info:'出牌阶段限一次,你可以移去3枚统领标记并视为对攻击范围内的至多3名角色使用一张杀', fenghuo:'烽火', fenghuo_info:'你可以将一张装备区内的牌当作南蛮入侵使用', weiyi:'威仪', diff --git a/game/game.js b/game/game.js index b293e2687..a04afba73 100644 --- a/game/game.js +++ b/game/game.js @@ -18031,6 +18031,12 @@ } return this==player; }, + isFriendsOf:function(player){ + return player.getFriends(true).contains(this); + }, + isEnemiesOf:function(player){ + return player.getEnemies().contains(this); + }, isAlive:function(){ return this.classList.contains('dead')==false; },