💫 implement token (for WX17-034)

This commit is contained in:
WEBXOSS 2017-10-18 23:06:34 +08:00
parent c96d67fa8b
commit 69238ab419
3 changed files with 41 additions and 29 deletions

18
Card.js
View file

@ -124,6 +124,7 @@ function Card (game,player,zone,pid,side) {
this._data = null; // 私有的数据储存,约定: 只能在 CardInfo.js 自身的代码里访问 this._data = null; // 私有的数据储存,约定: 只能在 CardInfo.js 自身的代码里访问
this.fieldData = {}; // 离场即清空的数据 this.fieldData = {}; // 离场即清空的数据
this.fieldTurnData = {}; // 离场或回合结束即清空的数据 this.fieldTurnData = {}; // 离场或回合结束即清空的数据
this.tokenData = {}; // 衍生物,离场清空
// 时点 // 时点
this.onMove = new Timming(game); this.onMove = new Timming(game);
@ -1102,6 +1103,7 @@ Card.prototype.moveTo = function (zone,arg) {
card.onLeaveField.trigger(leaveFieldEvent); card.onLeaveField.trigger(leaveFieldEvent);
card.onLeaveField2.trigger(leaveFieldEvent); card.onLeaveField2.trigger(leaveFieldEvent);
card.player.onSigniLeaveField.trigger(leaveFieldEvent); card.player.onSigniLeaveField.trigger(leaveFieldEvent);
card.resetTokens();
// SIGNI 离场时,下面的卡送入废弃区, // SIGNI 离场时,下面的卡送入废弃区,
// 此处理在块结束时执行。 // 此处理在块结束时执行。
// http://www.takaratomy.co.jp/products/wixoss/rule/rule_rulechange/151211/index.html // http://www.takaratomy.co.jp/products/wixoss/rule/rule_rulechange/151211/index.html
@ -1896,4 +1898,20 @@ Card.prototype.getBottomCards = function() {
},this); },this);
}; };
Card.prototype.getToken = function(name) {
return this.tokenData[name] || 0;
};
Card.prototype.setToken = function(name,value) {
return this.tokenData[name] = value;
};
Card.prototype.addToken = function(name,value) {
return this.setToken(name,this.getToken(name) + value);
};
Card.prototype.resetTokens = function() {
this.tokenData = {};
};
global.Card = Card; global.Card = Card;

View file

@ -125459,24 +125459,6 @@ var CardInfo = {
"limiting": "ナナシ", "limiting": "ナナシ",
"imgUrl": "http://www.takaratomy.co.jp/products/wixoss/wxwp/images/card/WX17/WX17-034.jpg", "imgUrl": "http://www.takaratomy.co.jp/products/wixoss/wxwp/images/card/WX17/WX17-034.jpg",
"illust": "甲冑", "illust": "甲冑",
faqs: [
{
"q": "【シャドウ】とは何ですか?",
"a": "【シャドウ】を持つシグニは、対戦相手の効果によって選択されず、例えば「シグニ1体をバニッシュする。」といった効果によっては選ばれません。\n逆に、「すべてのシグニをバニッシュする」といった効果の影響は受けます。"
},
{
"q": "【貯菌】とは何ですか?",
"a": "【貯菌】は《羅菌姫 ボツリネス》の能力により《羅菌姫 ボツリネス》の上に置かれ、起動能力を使用するために使われるマーカーです。《羅菌姫 ボツリネス》が場から離れたら、上に乗っていた【貯菌】は取り除かれます。"
},
{
"q": "対戦相手のシグニゾーン3つすべてに【ウィルス】があり、こちらの場に《羅菌姫 ボツリネス》がある状態で《羅菌姫 ボツリネス》のライフバーストが発動した場合、対戦相手のシグニゾーンに【ウィルス】は置けませんが自動能力は発動しますか?",
"a": "いいえ、既にシグニゾーンに【ウィルス】が置かれていて【ウィルス】を置けない場合は、自動能力は発動しません。実際に【ウィルス】が置かれた場合のみ、この自動能力は発動します。"
},
{
"q": "《羅菌姫 ボツリネス》の正面に《コードラビリンス ルーブル》があり、《羅菌姫 ボツリネス》が能力を失っている場合、《羅菌姫 ボツリネス》はアタックできますか?また、既に【貯菌】が置かれている状態で能力を失ったらどうなりますか?",
"a": "能力を失っている《羅菌姫 ボツリネス》は、常時能力も失っていますので通常のシグニと同じくアタックが可能です。また、【貯菌】が置かれている状態で能力を失っても、【貯菌】は置かれたままとなります。"
}
],
"classes": [ "classes": [
"精羅", "精羅",
"微菌" "微菌"
@ -125507,11 +125489,15 @@ var CardInfo = {
set(this,'canNotAttack',true); set(this,'canNotAttack',true);
} }
},{ },{
action: function (set,add) { auto: function (add,effect) {
// TODO: 每当一个「感染」放置到对手场上,为这张卡增加一个细菌指示物 add(this.player.opponent,'onPutVirus',effect);
// TODO: 这张卡离场时,清除所有细菌指示物 },
// TODO: 面对卢浮宫(WX05-019)时会失去shadow效果但不会失去细菌指示物 effect: {
} actionAsyn: function () {
// TODO: show token
this.addToken('貯菌',1);
},
},
}], }],
// ====================== // ======================
// 起动效果 // 起动效果
@ -125522,18 +125508,24 @@ var CardInfo = {
], ],
actionEffects: [{ actionEffects: [{
attackPhase: true, attackPhase: true,
useCondition: function () {
return this.getToken('貯菌') >= 1;
},
actionAsyn: function () { actionAsyn: function () {
// TODO: 首先移除1个细菌指示物 this.addToken('貯菌',-1);
return this.decreasePowerAsyn(5000); return this.decreasePowerAsyn(5000);
} },
},{ },{
useCondition: function () {
return this.getToken('貯菌') >= 2;
},
actionAsyn: function () { actionAsyn: function () {
// TODO: 首先移除2个细菌指示物 this.addToken('貯菌',-2);
return this.player.selectOpponentSigniAsyn().callback(this,function(card) { return this.player.selectOpponentSigniAsyn().callback(this,function(card) {
if (!card) return; if (!card) return;
card.trashAsyn(); card.trashAsyn();
}); });
} },
}], }],
// ====================== // ======================
// 迸发效果 // 迸发效果

View file

@ -809,14 +809,16 @@ Game.prototype.outputCardStates = function () {
return { return {
card: card, card: card,
power: card.power, power: card.power,
states: card.getStates() states: card.getStates(),
tokenData: card.tokenData,
} }
},this); },this);
cards = [this.turnPlayer.lrig,this.turnPlayer.opponent.lrig]; cards = [this.turnPlayer.lrig,this.turnPlayer.opponent.lrig];
var lrigInfos = cards.map(function (card) { var lrigInfos = cards.map(function (card) {
return { return {
card: card, card: card,
states: card.getStates() states: card.getStates(),
tokenData: card.tokenData,
} }
},this); },this);
var zones = concat(this.turnPlayer.signiZones,this.turnPlayer.opponent.signiZones); var zones = concat(this.turnPlayer.signiZones,this.turnPlayer.opponent.signiZones);