From 6dfeeb6b1e5c1372e92373493a2b4706a83f823c Mon Sep 17 00:00:00 2001 From: deardrops Date: Thu, 21 Sep 2017 00:08:25 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A9=20coding=20cards=20effects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CardInfo.js | 143 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 98 insertions(+), 45 deletions(-) diff --git a/CardInfo.js b/CardInfo.js index eafae84..867438b 100644 --- a/CardInfo.js +++ b/CardInfo.js @@ -123866,18 +123866,6 @@ var CardInfo = { "imgUrl": "http://www.takaratomy.co.jp/products/wixoss/wxwp/images/card/WX17/WX17-035.jpg", "illust": "ピスケ", faqs: [ - { - "q": "「能力を失う」とはどういうことですか?", - "a": "能力を失ったシグニはテキストに記載された、また他のカードによって付与された能力を失います。" - }, - { - "q": "能力を新たに得られない、という効果は、パワーを増減する効果も受けませんか?", - "a": "パワーを増減させる効果は、そのシグニが能力を得ているわけではありません。パワーを増減する効果では通常通りパワーが増減されます。\nまた、レイヤーによって能力を得ているシグニは能力を得られなくなるため、結果的に失います。" - }, - { - "q": "出現時能力によって能力を失ったシグニに、《打突》のようにパワーをプラスして【ランサー】を付与するスペルを使用した場合はどうなりますか?", - "a": "その場合、パワーはプラスされますが、【ランサー】を得ることはできません。" - }, { "q": "「能力を失い、新たに得られない」という効果は、《先駆の大天使 アークゲイン》などの「効果を受けない」シグニには有効ですか?", "a": "「能力を失う」という効果は「テキストを消す」という効果であり、テキストを変更する効果は「効果を受けない」によって無効化できます。後半の「能力を新たに得られない」効果は、そのシグニのテキストを変更しているわけではないため、効果を受けないシグニであっても、この効果の適用中は新たに能力は得られません。" @@ -123894,13 +123882,52 @@ var CardInfo = { "costGreen": 0, "costColorless": 0, "guardFlag": false, - cardSkills: [ - "[レイヤー]あなたのすべての<怪異>のシグニは《レイヤーアイコン》の能力を得る", + "multiEner": false, + cardText: "みーんな眠っちゃえ!~ピグシイ~", + layer: true, + // ====================== + // 常时效果 + // ====================== + constEffectTexts: [ "《レイヤーアイコン》【自】:このシグニがアタックしたとき、ターン終了時まで、このシグニの正面のシグニ1体はすべての能力を失い、新たに得られない。", "《レイヤーアイコン》【自】:このシグニがバニッシュされたとき、ターン終了時まで、対戦相手のシグニ1体はすべての能力を失い、新たに得られない。" ], - "multiEner": false, - cardText: "みーんな眠っちゃえ!~ピグシイ~", + constEffects: [{ + // TODO: 测试失去效果和不再获得新效果 + // TODO: FAQ 「失去效果」不会受大天使影响,「不能获得新效果」受大天使影响 + layer: true, + action: function (set,add) { + var effect = this.game.newEffect({ + source: this, + description: '2421-const-0', + condition: function () { + return this.getOpposingSigni(); + }, + actionAsyn: function () { + var signi = this.getOpposingSigni(); + this.game.tillTurnEndSet(signi,'abilityLost',true); + this.game.tillTurnEndSet(signi,'canNotGainAbility',true,{forced: true}); + } + }); + add(this.player,'onAttack',effect); + }, + },{ + layer: true, + action: function (set,add) { + var effect = this.game.newEffect({ + source: this, + description: '2421-const-1', + actionAsyn: function () { + return this.player.selectOpponentSigniAsyn().callback(this,function (signi) { + if (!signi) return; + this.game.tillTurnEndSet(signi,'abilityLost',true); + this.game.tillTurnEndSet(signi,'canNotGainAbility',true,{forced: true}); + }); + }zA + }); + add(this.player,'onBanish',effect); + }, + }], }, "2422": { "pid": 2422, @@ -125296,16 +125323,6 @@ var CardInfo = { "limiting": "ドーナ", "imgUrl": "http://www.takaratomy.co.jp/products/wixoss/wxwp/images/card/WX17/WX17-036.jpg", "illust": "かにかま", - faqs: [ - { - "q": "元々ライフバーストがある<怪異>のシグニはどうなりますか?", - "a": "その<怪異>は、《幻怪 ブラウニー》によって得たライフバーストと、元々のライフバーストの2つを持っています。そのカードがライフクロスとしてクラッシュされた場合、好きな方のライフバーストから順番に発動できます。" - }, - { - "q": "《幻怪 ブラウニー》が2体、自分の場に出ている場合はどうなりますか?", - "a": "その場合、あなたの怪異はそれぞれの<ブラウニー>によりライフバーストを2つ得ます。それがクラッシュされたら、これらのライフバーストを2回発動できます。" - } - ], "classes": [ "精生", "怪異" @@ -125317,11 +125334,49 @@ var CardInfo = { "costGreen": 0, "costColorless": 0, "guardFlag": false, - cardSkills: [ + "multiEner": false, + // ====================== + // 常时效果 + // ====================== + constEffectTexts: [ "【常】:あなたのすべての領域にある<怪異>のシグニは【ライフバースト】「対戦相手のシグニ1体をトラッシュに置く。」を持つ。" ], - "multiEner": false, - cardText: "お掃除、お掃除っと。~ブラウニー~" + constEffects: [{ + action: function (set,add) { + var cards = this.game.cards.filter(function (card) { + return (card.player === this.player) && card.hasClass('怪異'); + },this); + // TODO: 效果在这张signi出场时生效,离场时失效 + // TODO: FAQ 多个生命爆发发动时,可以自己选择发动顺序 + // TODO: FAQ 多张卡在场时,生命爆发效果可以叠加 + this.game.addConstEffect({ + source: this, + fixed: true, + action: function (set,add) { + cards.forEach(function (card) { + var effect = this.game.newEffect({ + source: card, + description: '2450-attached-0', + optional: true, + actionAsyn: function () { + return this.selectOpponentSigniAsyn().callback(this,function (signi) { + if (!signi) return; + return signi.banishAsyn(); + }); + } + }); + add(card,'onBurst',effect); + },this); + } + }); + } + }], + // ====================== + // 附加效果 + // ====================== + attachedEffectTexts: [ + "【※】:対戦相手のシグニ1体をトラッシュに置く。" + ], }, "2451": { "pid": 2451, @@ -128332,7 +128387,7 @@ var CardInfo = { constEffects: [{ layer: true, condition: function () { - return this.turnPlayer === this.player.opponent; + return this.game.turnPlayer === this.player.opponent; }, action: function (set,add) { add(this,'power',3000); @@ -128372,16 +128427,16 @@ var CardInfo = { }, },{ once: true, - costCondition: function () { + actionAsyn: function () { var levels = []; this.player.trashZone.cards.forEach(function (card) { if (!card.hasClass('怪異')) return; if (inArr(card.level,levels)) return; levels.push(card.level); },this); - return levels.length >= 4 - }, - costAsyn: function () { + if (levels.length < 4) return; + levels.length = 0; + var cards_deck = []; return Callback.loop(this,4,function () { var cards = this.player.trashZone.cards.filter(function (card) { @@ -128396,18 +128451,16 @@ var CardInfo = { return this.player.opponent.showCardsAsyn(cards_deck).callback(this,function () { var cards = this.game.moveCards(cards_deck,this.player.mainDeck,{bottom: true}); if (cards.length !== 4) return; - }); - }); - }, - actionAsyn: function () { - this.game.addConstEffect({ - source: this, - destroyTimming: this.player.onTurnStart, - action: function (set,add) { - add(resona,'effectFilters',function (card) { - return (card.player !== this.player.opponent) || (card.type !== 'SIGNI'); + this.game.addConstEffect({ + source: this, + destroyTimming: this.player.onTurnStart, + action: function (set,add) { + add(resona,'effectFilters',function (card) { + return (card.player !== this.player.opponent) || (card.type !== 'SIGNI'); + }); + } }); - } + }); }); } }],