From e2bcb87746e7964d43f18096920bf3d8f4f5d6ad Mon Sep 17 00:00:00 2001 From: deardrops Date: Fri, 8 Sep 2017 00:07:19 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=92=A9=20coding=20card=20effects?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CardInfo.js | 207 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 195 insertions(+), 12 deletions(-) diff --git a/CardInfo.js b/CardInfo.js index e2e76f2..70e3e88 100644 --- a/CardInfo.js +++ b/CardInfo.js @@ -123132,7 +123132,7 @@ var CardInfo = { // 迸发效果 // ====================== burstEffectTexts: [ - "カードを1枚引く。このターン、あなたのライフクロスが2枚以上クラッシュされていた場合、あなたのデッキの一番上のカードをライフクロスに加える。" + "【※】:カードを1枚引く。このターン、あなたのライフクロスが2枚以上クラッシュされていた場合、あなたのデッキの一番上のカードをライフクロスに加える。" ], burstEffect: { actionAsyn: function () { @@ -126628,6 +126628,58 @@ var CardInfo = { ], "multiEner": false, cardText: "”ジョーカー”~カーニバル~", + // ====================== + // 技艺效果 + // ====================== + timmings: ['mainPhase','attackPhase','spellCutIn'], + artsEffectTexts: [ + "ベット―《コインアイコン》《コインアイコン》\n" + + "以下の5つから1つを選ぶ。ターン終了時まで、シグニ1体は選んだ能力を得る。あなたがベットしていた場合、この効果を1回繰り返す。" + + "(他の選択肢と他のシグニを選んでもよい)\n" + + "①【アサシン】      ②【ランサー】\n" + + "③【ダブルクラッシュ】  ④「バニッシュされない。」\n" + + "⑤「アタックできない。」", + ], + bet: 2, + artsEffect: { + actionAsyn: function (costArg) { + // TODO: 本地化效果文本, + var done = false; + var texts = [ + 'assassin', + 'lancer', + 'doubleCrash', + 'canNotBeBanished', + 'canNotAttack' + ]; + return Callback.loop(this,count,function () { + if (done) return; + return this.player.selectTextAsyn('CHOOSE_EFFECT',texts).callback(this,function (text) { + this.fieldData['_2490'] = text; + return this.player.opponent.showTextAsyn('CHOOSE_ZONE','text',text); + }).callback(this,function () { + var cards = concat(this.player.signis,this.player.opponent.signis); + return this.player.selectTargetAsyn(cards).callback(this,function (card) { + if (!card) return; + if (text === 'assassin') { + this.game.tillTurnEndAdd(this,card,'assassin',true); + } else if (text === 'lancer') { + this.game.tillTurnEndSet(this,card,'lancer',true); + } else if (text === 'doubleCrash') { + this.game.tillTurnEndSet(this,card,'doubleCrash',true); + } else if (text === 'canNotBeBanished') { + this.game.tillTurnEndAdd(this,card,'canNotBeBanished',true); + } else if (text === 'canNotAttack') { + this.game.tillTurnEndAdd(this,card,'canNotAttack',true); + } + if (!costArg.bet) { + done = true; + } + }); + }); + }); + } + } }, "2491": { "pid": 2491, @@ -126668,11 +126720,77 @@ var CardInfo = { "③あなたのトラッシュからシグニを2枚まで手札に加える。その後、手札を1枚捨てる。" ], "multiEner": false, - cardText: "クソみたいな世界 ~カーニバル~" + cardText: "クソみたいな世界 ~カーニバル~", + // ====================== + // 技艺效果 + // ====================== + timmings: ['mainPhase'], + artsEffectTexts: [ + "このアーツを使用する際、あなたは手札から<宇宙>のシグニを1枚捨ててもよい。そうした場合、このアーツを使用するためのコストは《赤》コストが2減る。\n" + + "以下の3つから1つを選ぶ。\n" + + "①カードを2枚引く。\n" + + "②あなたのデッキの上からカードを2枚エナゾーンに置く。\n" + + "③あなたのトラッシュからシグニを2枚まで手札に加える。その後、手札を1枚捨てる。", + "①カードを2枚引く。", + "②あなたのデッキの上からカードを2枚エナゾーンに置く。", + "③あなたのトラッシュからシグニを2枚まで手札に加える。その後、手札を1枚捨てる。" + ], + costChange: function () { + var cards = this.player.hands.filter(function (card) { + return card.hasClass('宇宙'); + },this); + var count = Math.min(1,cards.length); + var obj = Object.create(this); + obj.costChange = null; + obj.costRed -= count * 2; + if (obj.costRed < 0) obj.costRed = 0; + return obj; + }, + costChangeAsyn: function () { + var obj = Object.create(this); + obj.costChange = null; + var min = 0; + while (min <= 1) { + if (this.player.enoughEner(obj)) break; + min++; + obj.costRed -= 2; + if (obj.costRed < 0) obj.costRed = 0; + } + var cards = this.player.hands.filter(function (card) { + return card.hasClass('宇宙'); + },this); + return this.player.selectSomeAsyn('TRASH',cards,min,1).callback(this,function (cards) { + this.game.trashCards(cards); + var count = cards.length; + var obj = Object.create(this); + obj.costChange = null; + obj.costRed -= count * 2; + if (obj.costRed < 0) obj.costRed = 0; + return obj; + }); + }, + artsEffect: [{ + actionAsyn: function () { + return this.player.draw(2); + } + },{ + actionAsyn: function () { + return this.player.enerCharge(2); + } + },{ + actionAsyn: function () { + var filter = function (card) { + return (card.type === 'SIGNI'); + }; + return this.player.pickCardAsyn(filter,0,2).callback(this, function () { + return this.player.discardAsyn(1); + }); + } + }] }, "2492": { "pid": 2492, - cid: 2492, + cid: 1531, "timestamp": 1504360073452, "wxid": "WD21-009", name: "燐廻転生", @@ -126721,7 +126839,7 @@ var CardInfo = { }, "2493": { "pid": 2493, - cid: 2493, + cid: 1878, "timestamp": 1504360073477, "wxid": "WD21-010", name: "炎得火失", @@ -126816,11 +126934,54 @@ var CardInfo = { ], "multiEner": false, cardText: "蓋天に集いし羅星が、新たな羅星を呼び起こす!~≡ガイテン≡~", - "lifeBurst": "あなたのデッキから<宇宙>のシグニ1枚を探して公開し手札に加える。その後、デッキをシャッフルする。" + "lifeBurst": "あなたのデッキから<宇宙>のシグニ1枚を探して公開し手札に加える。その後、デッキをシャッフルする。", + // ====================== + // 起动效果 + // ====================== + actionEffectTexts: [ + "【起】《ダウン》:あなたの<宇宙>のシグニ2体を場からトラッシュに置く。そうした場合、あなたのデッキからレベル4のシグニ1枚を探して場に出す。その後、デッキをシャッフルする。" + ], + actionEffects: [{ + costDown: true, + costCondition: function () { + var cards = this.player.hands.filter(function (card) { + return card.hasClass('宇宙'); + },this); + return cards.length >= 2; + }, + costAsyn: function () { + var cards = this.player.hands.filter(function (card) { + return card.hasClass('宇宙'); + },this); + return this.player.selectSomeAsyn('PAY',cards,2,2).callback(this,function (cards) { + this.game.trashCards(cards); + }); + }, + actionAsyn: function () { + var cards = this.player.signis.filter(function (signi) { + return signi.level === 4; + },this); + return this.player.seekAndSummonAsyn(filter,1,true); + } + }], + // ====================== + // 迸发效果 + // ====================== + burstEffectTexts: [ + "【※】:あなたのデッキから<宇宙>のシグニ1枚を探して公開し手札に加える。その後、デッキをシャッフルする。" + ], + burstEffect: { + actionAsyn: function () { + var filter = function (card) { + return card.hasClass('宇宙'); + }; + return this.player.seekAsyn(filter,1); + }, + } }, "2495": { "pid": 2495, - cid: 2495, + cid: 2067, "timestamp": 1504360073544, "wxid": "WD21-014", name: "羅星 ≡レグルス≡", @@ -126849,11 +127010,10 @@ var CardInfo = { "【起】《ダウン》:カードを1枚引く。この能力は対戦相手の場にレベル3以上のシグニがある場合にしか使用できない。" ], "multiEner": false, - cardText: "隙あり!レッグがお留守だよ!~≡レグルス≡~" }, "2496": { "pid": 2496, - cid: 2496, + cid: 2143, "timestamp": 1504360073247, "wxid": "WD21-015", name: "羅星 ≡ハダル≡", @@ -126887,7 +127047,7 @@ var CardInfo = { }, "2497": { "pid": 2497, - cid: 2497, + cid: 2144, "timestamp": 1504360073970, "wxid": "WD21-016", name: "羅星 ≡アンタレス≡", @@ -126969,11 +127129,34 @@ var CardInfo = { ], "multiEner": false, cardText: "天、それは虚空なのよ。~≡センヤ≡~", - "lifeBurst": "カードを1枚引く。" + "lifeBurst": "カードを1枚引く。", + // ====================== + // 常时效果 + // ====================== + constEffectTexts: [ + "【自】:このシグニが効果またはレゾナの出現条件によって、バニッシュされるか場からトラッシュに置かれたとき、対戦相手のパワー3000以下のシグニ1体をバニッシュする。" + ], + constEffects: [{ + duringGame: true, + action: function (set,add) { + var effect = this.game.newEffect({ + source: this, + description: '2498-const-0', + triggerCondition: function (event) { + return (event.oldZone === this.player.SigniZone) && + ((event.newZone === this.player.enerZone) || (event.newZone === this.player.trashZone)); + }, + actionAsyn: function () { + return this.banishSigniAsyn(3000); + }, + }); + add(this,'onMove',effect); + } + }], }, "2499": { "pid": 2499, - cid: 2499, + cid: 235, "timestamp": 1504360075409, "wxid": "WD21-018", name: "サーバント D2", @@ -127012,7 +127195,7 @@ var CardInfo = { }, "2500": { "pid": 2500, - cid: 2500, + cid: 236, "timestamp": 1504360073943, "wxid": "WD21-019", name: "サーバント O2",