From e396e112ffc78c004719feeaaa43bf39ac668af6 Mon Sep 17 00:00:00 2001 From: WEBXOSS Date: Sun, 15 Oct 2017 18:02:17 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=AB=20implement=20nonBustSigniEffectBa?= =?UTF-8?q?nned=20(for=20SP26-002)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Card.js | 1 + CardInfo.js | 36 ++++++------------------------------ Effect.js | 16 +++++++++++++--- Player.js | 1 + 4 files changed, 21 insertions(+), 33 deletions(-) diff --git a/Card.js b/Card.js index ec69f16..1b9933b 100644 --- a/Card.js +++ b/Card.js @@ -1876,6 +1876,7 @@ Card.prototype.handleTrapAsyn = function(arg) { } }).callback(this,function () { if (!this.trap) return; + if (this.player.nonBustSigniEffectBanned && (this.type === 'SIGNI')) return; return this.game.blockAsyn(source,this,function () { this.player.onTrapTriggered.trigger(); return this.trap.actionAsyn.call(this,event); diff --git a/CardInfo.js b/CardInfo.js index c6fc9db..fffba94 100644 --- a/CardInfo.js +++ b/CardInfo.js @@ -128196,28 +128196,6 @@ var CardInfo = { "limiting": "", "imgUrl": "http://www.takaratomy.co.jp/products/wixoss/wxwp/images/card/SP26/SP26-002.jpg", "illust": "アカバネ", - faqs: [ - { - "q": "対戦相手の場に《幻獣神 オサキ》などの「スペルを使用したとき」に発動するトリガー能力を持つシグニがあり、対戦相手がスペルを使用しました。そのスペルにスペルカットインで《アンチ・アビリティ》を使用した場合、「スペルを使用したとき」のトリガー能力は発動しますか?", - "a": "いいえ、発動しません。対戦相手がスペルを使用したことでトリガー能力がトリガーしていますが、発動前にスペルカットインで《アンチ・アビリティ》の効果が処理されましたので、スペル処理後にそのトリガー能力は不発となります。" - }, - { - "q": "《幻水姫 ダイホウイカ》など、アタックフェイズ開始時に発動するトリガー能力より前に《アンチ・アビリティ》を使用して防ぐことはできますか?", - "a": "「アタックフェイズ開始時」に発動するトリガー能力が発動してからお互いに使用タイミングが【アタックフェイズ】のアーツや能力使用しますので、《幻水姫 ダイホウイカ》の能力が先となり防ぐことはできません。対戦相手がメインフェイズにスペルを使用し、その【スペルカットイン】で《アンチ・アビリティ》を使用すれば、そのターンのアタックフェイズ開始時の能力は発動しなくなります。" - }, - { - "q": "対戦相手のアタックフェイズ開始時に、対戦相手が《幻水姫 ダイホウイカ》のトリガー能力でカードを2枚引きました。その後にこちらが《アンチ・アビリティ》を使用した場合、引いたカードはどうなりますか?", - "a": "《アンチ・アビリティ》は、既に発動し終わったトリガー能力の処理を無効にするわけではありませんので、《幻水姫 ダイホウイカ》のトリガー能力で既に引かれた2枚はそのままとなります。" - }, - { - "q": "《アンチ・アビリティ》を使用されていた場合、アタックされたときに【トラップ】を表向きにすることもできませんか?", - "a": "いいえ、裏向きの【トラップ】はシグニではなく【トラップ】ですので、アタックされたときに表向きにすることができます。それがスペルだった場合はトラップ能力が発動できますが、シグニだった場合はトラップ能力は発動できず、トラッシュに置かれます。" - }, - { - "q": "《アンチ・アビリティ》を使用されていた場合、《トワリング》の①の効果で【トラップ】を表向きにして発動させることもできませんか?", - "a": "それがスペルの場合は表向きにしてそのままトラップ能力を発動できますが、シグニの場合は《トワリング》の発動させるという効果で発動することができず、その【トラップ】はそのままトラッシュに置かれます。" - } - ], "classes": [], "costWhite": 0, "costBlack": 0, @@ -128226,11 +128204,6 @@ var CardInfo = { "costGreen": 0, "costColorless": 0, "guardFlag": false, - cardSkills: [ - "このアーツは対戦相手のターンにしか使用できない。", - "このターン、すべての領域にある【ライフバースト】以外の対戦相手のシグニのトリガー能力は発動しない。", - "(「~したとき、」「~するたび、」「~時、」と書かれた能力、【出】、【自】、《トラップアイコン》、【ライフバースト】、はトリガー能力である)" - ], "multiEner": false, cardText: "ここを、こうやって、こうするんだよォ! ~あや~", // ====================== @@ -128242,11 +128215,14 @@ var CardInfo = { "このターン、すべての領域にある【ライフバースト】以外の対戦相手のシグニのトリガー能力は発動しない。\n" + "(「~したとき、」「~するたび、」「~時、」と書かれた能力、【出】、【自】、《トラップアイコン》、【ライフバースト】、はトリガー能力である)" ], + useCondition: function () { + return this.game.turnPlayer === this.player; + }, artsEffect: { actionAsyn: function () { - // TODO: ... - } - } + this.game.tillTurnEndSet(this.player.opponent,'nonBustSigniEffectBanned',true); + }, + }, }, "2504": { "pid": 2504, diff --git a/Effect.js b/Effect.js index ac5b03b..d782b3b 100644 --- a/Effect.js +++ b/Effect.js @@ -36,8 +36,18 @@ function Effect (effectManager,cfg) { this.disabled = false; // 失去能力时设置为 true . } +Effect.prototype.checkTiggerable = function() { + if (this.disabled) { + return false; + } + if (this.source.player.nonBustSigniEffectBanned && !this.isBurst && this.source.type === 'SIGNI') { + return false; + } + return true; +}; + Effect.prototype.trigger = function (event) { - if (this.disabled) return; + if (!this.checkTiggerable()) return; if (this.once && inArr(this,this.effectManager.triggeredEffects)) { return; } @@ -52,7 +62,7 @@ Effect.prototype.trigger = function (event) { }; Effect.prototype.triggerAndHandleAsyn = function (event) { - if (this.disabled) return Callback.immediately(); + if (!this.checkTiggerable()) return Callback.immediately(); if (!this.triggerCondition || this.triggerCondition.call(this.source,event)) { // this.source.activate(); var effect = Object.create(this); @@ -65,7 +75,7 @@ Effect.prototype.triggerAndHandleAsyn = function (event) { }; Effect.prototype.checkCondition = function () { - if (this.disabled) return false; + if (!this.checkTiggerable()) return false; // "结束这个回合",如<终结之洞> var game = this.effectManager.game; if (game.getData(game,'endThisTurn')) return false; diff --git a/Player.js b/Player.js index aa02376..cfa47d3 100644 --- a/Player.js +++ b/Player.js @@ -142,6 +142,7 @@ function Player (game,io,mainDeck,lrigDeck) { this.canNotUseColorlessSigni = false; // <绿罗植 世界树> this.canNotUseColorlessSpell = false; // <绿罗植 世界树> this.skipNextTurn = false; + this.nonBustSigniEffectBanned = false; // <アンチ・アビリティ> this.usedActionEffects = []; this.chain = null;