mirror of
https://github.com/webxoss/webxoss-core.git
synced 2024-11-20 06:49:53 +01:00
💫 implement token (for WX17-034)
This commit is contained in:
parent
c96d67fa8b
commit
69238ab419
3 changed files with 41 additions and 29 deletions
18
Card.js
18
Card.js
|
@ -124,6 +124,7 @@ function Card (game,player,zone,pid,side) {
|
|||
this._data = null; // 私有的数据储存,约定: 只能在 CardInfo.js 自身的代码里访问
|
||||
this.fieldData = {}; // 离场即清空的数据
|
||||
this.fieldTurnData = {}; // 离场或回合结束即清空的数据
|
||||
this.tokenData = {}; // 衍生物,离场清空
|
||||
|
||||
// 时点
|
||||
this.onMove = new Timming(game);
|
||||
|
@ -1102,6 +1103,7 @@ Card.prototype.moveTo = function (zone,arg) {
|
|||
card.onLeaveField.trigger(leaveFieldEvent);
|
||||
card.onLeaveField2.trigger(leaveFieldEvent);
|
||||
card.player.onSigniLeaveField.trigger(leaveFieldEvent);
|
||||
card.resetTokens();
|
||||
// SIGNI 离场时,下面的卡送入废弃区,
|
||||
// 此处理在块结束时执行。
|
||||
// http://www.takaratomy.co.jp/products/wixoss/rule/rule_rulechange/151211/index.html
|
||||
|
@ -1896,4 +1898,20 @@ Card.prototype.getBottomCards = function() {
|
|||
},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;
|
46
CardInfo.js
46
CardInfo.js
|
@ -125459,24 +125459,6 @@ var CardInfo = {
|
|||
"limiting": "ナナシ",
|
||||
"imgUrl": "http://www.takaratomy.co.jp/products/wixoss/wxwp/images/card/WX17/WX17-034.jpg",
|
||||
"illust": "甲冑",
|
||||
faqs: [
|
||||
{
|
||||
"q": "【シャドウ】とは何ですか?",
|
||||
"a": "【シャドウ】を持つシグニは、対戦相手の効果によって選択されず、例えば「シグニ1体をバニッシュする。」といった効果によっては選ばれません。\n逆に、「すべてのシグニをバニッシュする」といった効果の影響は受けます。"
|
||||
},
|
||||
{
|
||||
"q": "【貯菌】とは何ですか?",
|
||||
"a": "【貯菌】は《羅菌姫 ボツリネス》の能力により《羅菌姫 ボツリネス》の上に置かれ、起動能力を使用するために使われるマーカーです。《羅菌姫 ボツリネス》が場から離れたら、上に乗っていた【貯菌】は取り除かれます。"
|
||||
},
|
||||
{
|
||||
"q": "対戦相手のシグニゾーン3つすべてに【ウィルス】があり、こちらの場に《羅菌姫 ボツリネス》がある状態で《羅菌姫 ボツリネス》のライフバーストが発動した場合、対戦相手のシグニゾーンに【ウィルス】は置けませんが自動能力は発動しますか?",
|
||||
"a": "いいえ、既にシグニゾーンに【ウィルス】が置かれていて【ウィルス】を置けない場合は、自動能力は発動しません。実際に【ウィルス】が置かれた場合のみ、この自動能力は発動します。"
|
||||
},
|
||||
{
|
||||
"q": "《羅菌姫 ボツリネス》の正面に《コードラビリンス ルーブル》があり、《羅菌姫 ボツリネス》が能力を失っている場合、《羅菌姫 ボツリネス》はアタックできますか?また、既に【貯菌】が置かれている状態で能力を失ったらどうなりますか?",
|
||||
"a": "能力を失っている《羅菌姫 ボツリネス》は、常時能力も失っていますので通常のシグニと同じくアタックが可能です。また、【貯菌】が置かれている状態で能力を失っても、【貯菌】は置かれたままとなります。"
|
||||
}
|
||||
],
|
||||
"classes": [
|
||||
"精羅",
|
||||
"微菌"
|
||||
|
@ -125507,11 +125489,15 @@ var CardInfo = {
|
|||
set(this,'canNotAttack',true);
|
||||
}
|
||||
},{
|
||||
action: function (set,add) {
|
||||
// TODO: 每当一个「感染」放置到对手场上,为这张卡增加一个细菌指示物
|
||||
// TODO: 这张卡离场时,清除所有细菌指示物
|
||||
// TODO: 面对卢浮宫(WX05-019)时,会失去shadow效果,但不会失去细菌指示物
|
||||
}
|
||||
auto: function (add,effect) {
|
||||
add(this.player.opponent,'onPutVirus',effect);
|
||||
},
|
||||
effect: {
|
||||
actionAsyn: function () {
|
||||
// TODO: show token
|
||||
this.addToken('貯菌',1);
|
||||
},
|
||||
},
|
||||
}],
|
||||
// ======================
|
||||
// 起动效果
|
||||
|
@ -125522,18 +125508,24 @@ var CardInfo = {
|
|||
],
|
||||
actionEffects: [{
|
||||
attackPhase: true,
|
||||
useCondition: function () {
|
||||
return this.getToken('貯菌') >= 1;
|
||||
},
|
||||
actionAsyn: function () {
|
||||
// TODO: 首先移除1个细菌指示物
|
||||
this.addToken('貯菌',-1);
|
||||
return this.decreasePowerAsyn(5000);
|
||||
}
|
||||
},
|
||||
},{
|
||||
useCondition: function () {
|
||||
return this.getToken('貯菌') >= 2;
|
||||
},
|
||||
actionAsyn: function () {
|
||||
// TODO: 首先移除2个细菌指示物
|
||||
this.addToken('貯菌',-2);
|
||||
return this.player.selectOpponentSigniAsyn().callback(this,function(card) {
|
||||
if (!card) return;
|
||||
card.trashAsyn();
|
||||
});
|
||||
}
|
||||
},
|
||||
}],
|
||||
// ======================
|
||||
// 迸发效果
|
||||
|
|
6
Game.js
6
Game.js
|
@ -809,14 +809,16 @@ Game.prototype.outputCardStates = function () {
|
|||
return {
|
||||
card: card,
|
||||
power: card.power,
|
||||
states: card.getStates()
|
||||
states: card.getStates(),
|
||||
tokenData: card.tokenData,
|
||||
}
|
||||
},this);
|
||||
cards = [this.turnPlayer.lrig,this.turnPlayer.opponent.lrig];
|
||||
var lrigInfos = cards.map(function (card) {
|
||||
return {
|
||||
card: card,
|
||||
states: card.getStates()
|
||||
states: card.getStates(),
|
||||
tokenData: card.tokenData,
|
||||
}
|
||||
},this);
|
||||
var zones = concat(this.turnPlayer.signiZones,this.turnPlayer.opponent.signiZones);
|
||||
|
|
Loading…
Reference in a new issue