From 2ee07bcedc2ea16dd80fddb28bada7ba9755205a Mon Sep 17 00:00:00 2001 From: libccy Date: Thu, 9 Nov 2017 23:32:54 +0800 Subject: [PATCH] v1.9.41 --- card/gujian.js | 43 +++++----- card/swd.js | 2 +- character/gwent.js | 9 ++- character/hearth.js | 4 +- character/mtg.js | 183 +++++++++++++++++++++++++++++++++++++++++- character/standard.js | 3 + character/swd.js | 49 ++++++++--- game/game.js | 68 ++++++++++------ game/update.js | 2 +- 9 files changed, 295 insertions(+), 68 deletions(-) diff --git a/card/gujian.js b/card/gujian.js index 856ef8efe..32b1ced4d 100644 --- a/card/gujian.js +++ b/card/gujian.js @@ -10,7 +10,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('luyugeng'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.luyugeng=card; @@ -59,7 +59,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('chunbing'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.chunbing=card; @@ -90,7 +90,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('gudonggeng'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.gudonggeng=card; @@ -115,7 +115,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('liyutang'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.liyutang=card; @@ -141,7 +141,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('mizhilianou'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.mizhilianou=card; @@ -176,7 +176,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('xiajiao'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.xiajiao=card; @@ -199,7 +199,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('tanhuadong'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.tanhuadong=card; @@ -221,7 +221,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('mapodoufu'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.mapodoufu=card; @@ -245,7 +245,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('qingtuan'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.qingtuan=card; @@ -278,7 +278,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('yougeng'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.yougeng=card; @@ -304,7 +304,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('molicha'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.molicha=card; @@ -326,7 +326,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ filterTarget:function(card,player,target){ return !target.hasSkill('yuanbaorou'); }, - range:{global:1}, + //range:{global:1}, content:function(){ target.$gain2(cards); target.storage.yuanbaorou=card; @@ -744,28 +744,23 @@ game.import('card',function(lib,game,ui,get,ai,_status){ enable:true, fullskin:true, filterTarget:function(card,player,target){ - return target!=player; + return target.hp>=player.hp; }, content:function(){ 'step 0' - target.draw('visible'); + target.draw(); 'step 1' - if(Array.isArray(result)&&get.suit(result[0])=='spade'){ - return; - } - else{ - target.damage(); - } + target.loseHp(); }, ai:{ order:2, - value:[4,1], - useful:1, + value:[5,1], + useful:[4,1], result:{ target:-1.5 }, tag:{ - damage:1 + // damage:1 } } }, @@ -1539,7 +1534,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ // longxugou:'龙须钩', // longxugou_info:'龙须钩', mianlijinzhen:'棉里针', - mianlijinzhen_info:'令一名角色摸一张牌并展示,若不是黑桃,你对其造成一点伤害', + mianlijinzhen_info:'出牌阶段对一名体力值不小于你的角色使用,目标摸一张牌然后失去一点体力', // shenhuofeiya:'神火飞鸦', // shenhuofeiya_info:'神火飞鸦', // tuhunsha:'土魂砂', diff --git a/card/swd.js b/card/swd.js index a8d52190b..dadd341d9 100644 --- a/card/swd.js +++ b/card/swd.js @@ -3357,7 +3357,7 @@ game.import('card',function(lib,game,ui,get,ai,_status){ return event.player.hp<=0&&player.hp>1; }, check:function(event,player){ - return get.attitude(player,event.player)>=3; + return get.attitude(player,event.player)>=3&&!event.player.hasSkillTag('nosave'); }, logTarget:'player', content:function(){ diff --git a/character/gwent.js b/character/gwent.js index dc4d54b90..7d69bc81a 100644 --- a/character/gwent.js +++ b/character/gwent.js @@ -873,7 +873,8 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.chooseTarget(get.prompt2('gwqinwu')).ai=function(target){ var att=get.attitude(player,target); if(att<=0) return 0; - att+=1-get.distance(player,target,'absolute')/game.players.length; + if(att<3) return att; + att=10-get.distance(player,target,'absolute')/game.players.length; if(target.hasSkill('gwqinwu')){ att/=1.5; } @@ -1247,6 +1248,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ target.lose(card,ui.special); player.addSkill('gwjushi2'); } + }, + ai:{ + order:8, + result:{ + target:-1 + } } }, gwjushi2:{ diff --git a/character/hearth.js b/character/hearth.js index 1c04cf715..2dcf8ecf7 100644 --- a/character/hearth.js +++ b/character/hearth.js @@ -5837,7 +5837,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ animationColor:'thunder', derivation:'xinci', filter:function(event,player){ - return !player.storage.anying&&player.countCards('he',{color:'black'})>1; + return !player.storage.anying&&player.countCards('he',{color:'black'})>0; }, filterCard:{color:'black'}, position:'he', @@ -5848,7 +5848,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ player.storage.anying=true; player.awakenSkill('anying'); player.removeSkill('shengguang'); - player.addSkill('xinci'); + player.addAdditionalSkill('anying','xinci'); }, ai:{ order:1, diff --git a/character/mtg.js b/character/mtg.js index 34afdd093..6a1146656 100644 --- a/character/mtg.js +++ b/character/mtg.js @@ -6,7 +6,7 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mtg_jiding:['male','qun',4,['mbaizhan','msilian']], // mtg_qianzhuo:['female','shu',3,[]], mtg_jiesi:['male','wei',3,['mtongnian','msuoling','mhuanyi']], - // mtg_lilianna:['female','qun',3,[]], + mtg_lilianna:['female','qun',3,['lingyong','mduohun']], // mtg_nisha:['female','wu',3,[]], // mtg_ayeni:['male','qun',4,[]], }, @@ -19,6 +19,180 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mtg_ayeni:'金鬃阿耶尼是使用白色法术的鹏洛客。他长于净化身体与心灵的法术:用咒语来治疗、强化盟友,以及唤醒他人内在的心灵精华。', }, skill:{ + mduohun:{ + trigger:{player:'dyingAfter'}, + forced:true, + filter:function(event,player){ + return event.source&&event.source.isIn()&&event.source.hp>0; + }, + logTarget:'source', + content:function(){ + trigger.source.loseHp(); + }, + ai:{ + threaten:function(player,target){ + if(target.hp==1) return 0.6; + return 1; + }, + effect:{ + target:function(card,player,target,current){ + if(!target.hasFriend()) return; + if(target.hp<=1&&get.tag(card,'damage')) return [1,0,0,-1]; + } + } + } + }, + lingyong:{ + enable:'phaseUse', + filter:function(event,player){ + return player.hasSkillTag('lingyong'); + }, + unique:true, + forceunique:true, + group:'lingyong2', + direct:true, + delay:0, + skillAnimation:true, + animationColor:'thunder', + content:function(){ + 'step 0' + var list=[]; + var list2=[]; + var skills=player.getSkills(); + for(var i=0;i1){ + var dialog=ui.create.dialog('灵俑','hidden'); + dialog.add([list,'character']); + player.chooseButton(dialog,true); + } + else if(list.length==1){ + event.directresult=list[0]; + } + else{ + event.finish(); + } + player.logSkill('lingyong'); + 'step 1' + if(!event.directresult){ + if(result&&result.bool&&result.links[0]){ + event.directresult=result.links[0]; + } + else{ + event.finish(); + return; + } + } + if(event.directresult){ + var storage={}; + for(var i=0;i/g,'')+'之俑'; + lib.skill[name]={ + intro:{ + content:'出牌阶段,你可以移去此标记,然后变身为'+get.translation(trigger.player) + }, + mark:'character', + onremove:true, + ai:{ + lingyong:true + } + } + player.storage[name]=trigger.player; + player.addSkill(name); + } + }, + lingyong3:{ + trigger:{player:'dieBefore'}, + forced:true, + priority:-9, + onremove:true, + mark:'character', + intro:{ + content:'死亡前变回莉莲娜' + }, + content:function(){ + 'step 0' + if(player.storage.lingyong3){ + player.reinit(player.storage.lingyong3.name2,'mtg_lilianna'); + player.maxHp=player.storage.lingyong3.maxHp; + player.hp=player.storage.lingyong3.hp; + player.update(); + for(var i in player.storage.lingyong3.storage){ + player.storage[i]=player.storage.lingyong3.storage[i]; + } + player.addSkill(player.storage.lingyong3.skills); + trigger.cancel(); + player.lose(player.getCards('he'),ui.discardPile)._triggered=null; + } + 'step 1' + if(player.storage.lingyong3){ + player.directgain(player.storage.lingyong3.hs); + player.directequip(player.storage.lingyong3.es); + } + player.removeSkill('lingyong3'); + }, + ai:{ + nosave:true, + threaten:0.8 + } + }, mhuanyi:{ round:2, trigger:{player:'phaseEnd'}, @@ -397,6 +571,13 @@ game.import('character',function(lib,game,ui,get,ai,_status){ mtg_nisha:'妮莎', mtg_ayeni:'阿耶尼', + mduohun:'夺魂', + mduohun_info:'锁定技,当你解除濒死状态后,令你进入濒死状态的角色失去一点体力', + lingyong:'灵俑', + lingyong2:'灵俑', + lingyong3:'灵俑', + lingyong3_bg:'俑', + lingyong_info:'锁定技,每当一名角色死亡,你获得一枚对应该角色主将的灵俑标记;出牌阶段,你可以弃置一枚灵俑标记,并变身为标记对应的角色(体力上限设为1),若如此做,你将你的牌移出游戏,结束出牌阶段并获得一个额外回合;处于变身状态的你在死亡前变回原形', mbaizhan:'百战', mbaizhan_info:'锁定技,每当你造成一点伤害,你获得一点护甲', msilian:'祀炼', diff --git a/character/standard.js b/character/standard.js index 0047bd46e..98cc477ab 100644 --- a/character/standard.js +++ b/character/standard.js @@ -1182,6 +1182,9 @@ game.import('character',function(lib,game,ui,get,ai,_status){ keji:{ audio:4, trigger:{player:'phaseDiscardBefore'}, + frequent:function(event,player){ + return !player.needsToDiscard(); + }, filter:function(event,player){ return player.countUsed('sha')==0; }, diff --git a/character/swd.js b/character/swd.js index ed2b9e6bc..1728d0b1e 100644 --- a/character/swd.js +++ b/character/swd.js @@ -5740,9 +5740,12 @@ game.import('character',function(lib,game,ui,get,ai,_status){ group:'daixing2', trigger:{player:'phaseEnd'}, direct:true, + filter:function(event,player){ + return player.getCards('he')>0; + }, content:function(){ "step 0" - var next=player.chooseToDiscard('请选择发动代形的卡牌','he',[1,player.countCards('he')]); + var next=player.chooseToDiscard(get.prompt2('daixing'),'he',[1,player.countCards('he')]); next.logSkill='daixing'; next.ai=function(card){ if(ui.selected.cards.length>=2) return 0; @@ -8178,10 +8181,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ }, filterTarget:function(card,player,target){ if(target.hp<=1) return false; - if(get.mode()=='identity'&&_status.mode=='zhong'&&game.zhu&&!game.zhu.isZhu){ - return target==game.zhong; - } - if(target.identity=='zhu'||get.is.jun(target)) return false; + // if(get.mode()=='identity'&&_status.mode=='zhong'&&game.zhu&&!game.zhu.isZhu){ + // return target==game.zhong; + // } + // if(target.identity=='zhu'||get.is.jun(target)) return false; return player!=target; }, content:function(){ @@ -8204,14 +8207,18 @@ game.import('character',function(lib,game,ui,get,ai,_status){ 'step 0' targets[0].phase('duijue'); 'step 1' - if(targets[0].isDead()||targets[1].isDead()){ + ui.duijueLoop.round--; + ui.duijueLoop.innerHTML=get.cnNumber(ui.duijueLoop.round)+'回合'; + if(targets[0].isDead()||targets[1].isDead()||ui.duijueLoop.round==0){ event.goto(3); } else{ targets[1].phase('duijue'); } 'step 2' - if(targets[0].isDead()||targets[1].isDead()){ + ui.duijueLoop.round--; + ui.duijueLoop.innerHTML=get.cnNumber(ui.duijueLoop.round)+'回合'; + if(targets[0].isDead()||targets[1].isDead()||ui.duijueLoop.round==0){ event.goto(3); } else{ @@ -8221,6 +8228,10 @@ game.import('character',function(lib,game,ui,get,ai,_status){ for(var i=0;i