qpremake 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +184 -0
- package/lib/_localizationFiles/English.d.ts +2 -0
- package/lib/_localizationFiles/English.js +307 -0
- package/lib/_mods/parserModules/addSymbol.d.ts +7 -0
- package/lib/_mods/parserModules/addSymbol.js +18 -0
- package/lib/_mods/parserModules/expression.d.ts +7 -0
- package/lib/_mods/parserModules/expression.js +45 -0
- package/lib/_mods/parserModules/expression_parser.d.ts +143 -0
- package/lib/_mods/parserModules/expression_parser.js +728 -0
- package/lib/_mods/parserModules/img.d.ts +8 -0
- package/lib/_mods/parserModules/img.js +42 -0
- package/lib/_mods/parserModules/qpOriginal.d.ts +5 -0
- package/lib/_mods/parserModules/qpOriginal.js +27 -0
- package/lib/_mods/parserModules/sectionID.d.ts +13 -0
- package/lib/_mods/parserModules/sectionID.js +56 -0
- package/lib/_mods/parserModules/tags.d.ts +9 -0
- package/lib/_mods/parserModules/tags.js +29 -0
- package/lib/_mods/parserModules/uaddminus.d.ts +9 -0
- package/lib/_mods/parserModules/uaddminus.js +42 -0
- package/lib/_mods/parserModules/variantCheck.d.ts +10 -0
- package/lib/_mods/parserModules/variantCheck.js +53 -0
- package/lib/_queenSystem/handler/actionGenrator.d.ts +994 -0
- package/lib/_queenSystem/handler/actionGenrator.js +646 -0
- package/lib/_queenSystem/handler/actionInputGenerator.d.ts +95 -0
- package/lib/_queenSystem/handler/actionInputGenerator.js +373 -0
- package/lib/_queenSystem/handler/actionInputRequesterGenerator.d.ts +92 -0
- package/lib/_queenSystem/handler/actionInputRequesterGenerator.js +341 -0
- package/lib/_queenSystem/handler/cardHandler.d.ts +20 -0
- package/lib/_queenSystem/handler/cardHandler.js +61 -0
- package/lib/_queenSystem/handler/effectGenerator.d.ts +1 -0
- package/lib/_queenSystem/handler/effectGenerator.js +127 -0
- package/lib/_queenSystem/handler/localizationHandler.d.ts +28 -0
- package/lib/_queenSystem/handler/localizationHandler.js +166 -0
- package/lib/_queenSystem/handler/modHandler.d.ts +10 -0
- package/lib/_queenSystem/handler/modHandler.js +36 -0
- package/lib/_queenSystem/handler/oldDataProcessor.d.ts +9 -0
- package/lib/_queenSystem/handler/oldDataProcessor.js +129 -0
- package/lib/_queenSystem/handler/registryHandler.d.ts +36 -0
- package/lib/_queenSystem/handler/registryHandler.js +63 -0
- package/lib/_queenSystem/handler/zoneHandler.d.ts +102 -0
- package/lib/_queenSystem/handler/zoneHandler.js +606 -0
- package/lib/_queenSystem/loader/loader_card.d.ts +20 -0
- package/lib/_queenSystem/loader/loader_card.js +124 -0
- package/lib/_queenSystem/loader/loader_effect.d.ts +27 -0
- package/lib/_queenSystem/loader/loader_effect.js +163 -0
- package/lib/_queenSystem/loader/loader_handler.d.ts +11 -0
- package/lib/_queenSystem/loader/loader_handler.js +24 -0
- package/lib/_queenSystem/loader/loader_localization.d.ts +11 -0
- package/lib/_queenSystem/loader/loader_localization.js +73 -0
- package/lib/_queenSystem/loader/loader_mod.d.ts +10 -0
- package/lib/_queenSystem/loader/loader_mod.js +72 -0
- package/lib/_queenSystem/loader/loader_subtype.d.ts +9 -0
- package/lib/_queenSystem/loader/loader_subtype.js +39 -0
- package/lib/_queenSystem/loader/loader_type.d.ts +9 -0
- package/lib/_queenSystem/loader/loader_type.js +39 -0
- package/lib/_queenSystem/loader/loader_zone.d.ts +14 -0
- package/lib/_queenSystem/loader/loader_zone.js +35 -0
- package/lib/_queenSystem/queenSystem.d.ts +127 -0
- package/lib/_queenSystem/queenSystem.js +996 -0
- package/lib/_queenSystem/renderer/rendererInterface.d.ts +9 -0
- package/lib/_queenSystem/renderer/rendererInterface.js +2 -0
- package/lib/data/actionRegistry.d.ts +56 -0
- package/lib/data/actionRegistry.js +60 -0
- package/lib/data/cardRegistry.d.ts +1162 -0
- package/lib/data/cardRegistry.js +716 -0
- package/lib/data/deckRegistry.d.ts +19 -0
- package/lib/data/deckRegistry.js +41 -0
- package/lib/data/effectRegistry.d.ts +465 -0
- package/lib/data/effectRegistry.js +151 -0
- package/lib/data/effectTypeRegistry.d.ts +14 -0
- package/lib/data/effectTypeRegistry.js +14 -0
- package/lib/data/operatorRegistry.d.ts +92 -0
- package/lib/data/operatorRegistry.js +82 -0
- package/lib/data/rarityRegistry.d.ts +28 -0
- package/lib/data/rarityRegistry.js +63 -0
- package/lib/data/registryRegistry.d.ts +10 -0
- package/lib/data/registryRegistry.js +14 -0
- package/lib/data/subtypeRegistry.d.ts +15 -0
- package/lib/data/subtypeRegistry.js +15 -0
- package/lib/data/systemRegistry.d.ts +253 -0
- package/lib/data/systemRegistry.js +56 -0
- package/lib/data/zoneRegistry.d.ts +43 -0
- package/lib/data/zoneRegistry.js +157 -0
- package/lib/effectTextParser/index.d.ts +42 -0
- package/lib/effectTextParser/index.js +316 -0
- package/lib/global/index.d.ts +8 -0
- package/lib/global/index.js +12 -0
- package/lib/index.d.ts +6344 -0
- package/lib/index.js +213 -0
- package/lib/specificEffects/e_cond.d.ts +11 -0
- package/lib/specificEffects/e_cond.js +36 -0
- package/lib/specificEffects/e_fruit.d.ts +3 -0
- package/lib/specificEffects/e_fruit.js +187 -0
- package/lib/specificEffects/e_generic.d.ts +191 -0
- package/lib/specificEffects/e_generic.js +662 -0
- package/lib/specificEffects/e_generic_cardTargetting.d.ts +38 -0
- package/lib/specificEffects/e_generic_cardTargetting.js +82 -0
- package/lib/specificEffects/e_generic_noneTargetting.d.ts +10 -0
- package/lib/specificEffects/e_generic_noneTargetting.js +26 -0
- package/lib/specificEffects/e_status.d.ts +80 -0
- package/lib/specificEffects/e_status.js +151 -0
- package/lib/specificEffects/e_test.d.ts +3 -0
- package/lib/specificEffects/e_test.js +21 -0
- package/lib/types/abstract/gameComponents/API.d.ts +19 -0
- package/lib/types/abstract/gameComponents/API.js +2 -0
- package/lib/types/abstract/gameComponents/card.d.ts +108 -0
- package/lib/types/abstract/gameComponents/card.js +771 -0
- package/lib/types/abstract/gameComponents/effect.d.ts +82 -0
- package/lib/types/abstract/gameComponents/effect.js +331 -0
- package/lib/types/abstract/gameComponents/effectSubtype.d.ts +22 -0
- package/lib/types/abstract/gameComponents/effectSubtype.js +40 -0
- package/lib/types/abstract/gameComponents/effectType.d.ts +11 -0
- package/lib/types/abstract/gameComponents/effectType.js +8 -0
- package/lib/types/abstract/gameComponents/settings.d.ts +80 -0
- package/lib/types/abstract/gameComponents/settings.js +68 -0
- package/lib/types/abstract/gameComponents/zone.d.ts +113 -0
- package/lib/types/abstract/gameComponents/zone.js +614 -0
- package/lib/types/abstract/gameComponents/zone_gridBased.d.ts +18 -0
- package/lib/types/abstract/gameComponents/zone_gridBased.js +58 -0
- package/lib/types/abstract/gameComponents/zone_stackBased.d.ts +13 -0
- package/lib/types/abstract/gameComponents/zone_stackBased.js +55 -0
- package/lib/types/abstract/generics/node.d.ts +23 -0
- package/lib/types/abstract/generics/node.js +46 -0
- package/lib/types/abstract/generics/position.d.ts +23 -0
- package/lib/types/abstract/generics/position.js +91 -0
- package/lib/types/abstract/generics/tree.d.ts +25 -0
- package/lib/types/abstract/generics/tree.js +153 -0
- package/lib/types/abstract/generics/universalResponse.d.ts +4 -0
- package/lib/types/abstract/generics/universalResponse.js +2 -0
- package/lib/types/abstract/generics/wraper.d.ts +21 -0
- package/lib/types/abstract/generics/wraper.js +56 -0
- package/lib/types/abstract/parser/component.d.ts +88 -0
- package/lib/types/abstract/parser/component.js +132 -0
- package/lib/types/abstract/parser/index.d.ts +6 -0
- package/lib/types/abstract/parser/index.js +28 -0
- package/lib/types/abstract/parser/modPack.d.ts +21 -0
- package/lib/types/abstract/parser/modPack.js +48 -0
- package/lib/types/abstract/parser/moduleInputObject.d.ts +12 -0
- package/lib/types/abstract/parser/moduleInputObject.js +21 -0
- package/lib/types/abstract/parser/options.d.ts +31 -0
- package/lib/types/abstract/parser/options.js +45 -0
- package/lib/types/abstract/serializedGameComponents/Gamestate.d.ts +46 -0
- package/lib/types/abstract/serializedGameComponents/Gamestate.js +70 -0
- package/lib/types/abstract/serializedGameComponents/Localized.d.ts +69 -0
- package/lib/types/abstract/serializedGameComponents/Localized.js +84 -0
- package/lib/types/defaultZones/ability.d.ts +10 -0
- package/lib/types/defaultZones/ability.js +22 -0
- package/lib/types/defaultZones/deck.d.ts +25 -0
- package/lib/types/defaultZones/deck.js +90 -0
- package/lib/types/defaultZones/drop.d.ts +5 -0
- package/lib/types/defaultZones/drop.js +13 -0
- package/lib/types/defaultZones/field.d.ts +11 -0
- package/lib/types/defaultZones/field.js +35 -0
- package/lib/types/defaultZones/grave.d.ts +8 -0
- package/lib/types/defaultZones/grave.js +21 -0
- package/lib/types/defaultZones/hand.d.ts +5 -0
- package/lib/types/defaultZones/hand.js +14 -0
- package/lib/types/defaultZones/storage.d.ts +9 -0
- package/lib/types/defaultZones/storage.js +21 -0
- package/lib/types/defaultZones/system.d.ts +12 -0
- package/lib/types/defaultZones/system.js +35 -0
- package/lib/types/defaultZones/void.d.ts +4 -0
- package/lib/types/defaultZones/void.js +10 -0
- package/lib/types/effects/effectSubtypes/subtype_chained.d.ts +10 -0
- package/lib/types/effects/effectSubtypes/subtype_chained.js +17 -0
- package/lib/types/effects/effectSubtypes/subtype_delayed.d.ts +9 -0
- package/lib/types/effects/effectSubtypes/subtype_delayed.js +16 -0
- package/lib/types/effects/effectSubtypes/subtype_fieldLock.d.ts +9 -0
- package/lib/types/effects/effectSubtypes/subtype_fieldLock.js +21 -0
- package/lib/types/effects/effectSubtypes/subtype_graveLock.d.ts +9 -0
- package/lib/types/effects/effectSubtypes/subtype_graveLock.js +21 -0
- package/lib/types/effects/effectSubtypes/subtype_hand_or_fieldLock.d.ts +9 -0
- package/lib/types/effects/effectSubtypes/subtype_hand_or_fieldLock.js +21 -0
- package/lib/types/effects/effectSubtypes/subtype_hardUnique.d.ts +9 -0
- package/lib/types/effects/effectSubtypes/subtype_hardUnique.js +15 -0
- package/lib/types/effects/effectSubtypes/subtype_instant.d.ts +8 -0
- package/lib/types/effects/effectSubtypes/subtype_instant.js +20 -0
- package/lib/types/effects/effectSubtypes/subtype_once.d.ts +12 -0
- package/lib/types/effects/effectSubtypes/subtype_once.js +27 -0
- package/lib/types/effects/effectSubtypes/subtype_unique.d.ts +9 -0
- package/lib/types/effects/effectSubtypes/subtype_unique.js +16 -0
- package/lib/types/effects/effectTypes/initEffect.d.ts +7 -0
- package/lib/types/effects/effectTypes/initEffect.js +23 -0
- package/lib/types/effects/effectTypes/lockEffect.d.ts +9 -0
- package/lib/types/effects/effectTypes/lockEffect.js +25 -0
- package/lib/types/effects/effectTypes/manualEffect.d.ts +9 -0
- package/lib/types/effects/effectTypes/manualEffect.js +18 -0
- package/lib/types/effects/effectTypes/passiveEffect.d.ts +9 -0
- package/lib/types/effects/effectTypes/passiveEffect.js +23 -0
- package/lib/types/effects/effectTypes/triggerEffect.d.ts +9 -0
- package/lib/types/effects/effectTypes/triggerEffect.js +28 -0
- package/lib/types/errors/cannotLoad.d.ts +5 -0
- package/lib/types/errors/cannotLoad.js +13 -0
- package/lib/types/errors/cardNotExist.d.ts +5 -0
- package/lib/types/errors/cardNotExist.js +13 -0
- package/lib/types/errors/cardNotInApplicableZone.d.ts +5 -0
- package/lib/types/errors/cardNotInApplicableZone.js +13 -0
- package/lib/types/errors/effectCondNotMet.d.ts +5 -0
- package/lib/types/errors/effectCondNotMet.js +13 -0
- package/lib/types/errors/effectNotExist.d.ts +5 -0
- package/lib/types/errors/effectNotExist.js +13 -0
- package/lib/types/errors/error.d.ts +17 -0
- package/lib/types/errors/error.js +42 -0
- package/lib/types/errors/incorrectActionType.d.ts +5 -0
- package/lib/types/errors/incorrectActionType.js +13 -0
- package/lib/types/errors/index.d.ts +16 -0
- package/lib/types/errors/index.js +36 -0
- package/lib/types/errors/invalidOrderMap.d.ts +6 -0
- package/lib/types/errors/invalidOrderMap.js +14 -0
- package/lib/types/errors/invalidPosition.d.ts +6 -0
- package/lib/types/errors/invalidPosition.js +13 -0
- package/lib/types/errors/subTypeOverrideConflict.d.ts +7 -0
- package/lib/types/errors/subTypeOverrideConflict.js +15 -0
- package/lib/types/errors/unknownError.d.ts +5 -0
- package/lib/types/errors/unknownError.js +13 -0
- package/lib/types/errors/unregisteredAction.d.ts +6 -0
- package/lib/types/errors/unregisteredAction.js +13 -0
- package/lib/types/errors/wrongEffectIdx.d.ts +5 -0
- package/lib/types/errors/wrongEffectIdx.js +14 -0
- package/lib/types/errors/zoneAttrConflict.d.ts +5 -0
- package/lib/types/errors/zoneAttrConflict.js +15 -0
- package/lib/types/errors/zoneFull.d.ts +5 -0
- package/lib/types/errors/zoneFull.js +13 -0
- package/lib/types/errors/zoneNotExist.d.ts +5 -0
- package/lib/types/errors/zoneNotExist.js +13 -0
- package/lib/types/misc.d.ts +97 -0
- package/lib/types/misc.js +8 -0
- package/lib/types/mods/effectTextParserModule.d.ts +16 -0
- package/lib/types/mods/effectTextParserModule.js +81 -0
- package/lib/types/mods/gameModule.d.ts +5 -0
- package/lib/types/mods/gameModule.js +8 -0
- package/lib/utils/index.d.ts +78 -0
- package/lib/utils/index.js +562 -0
- package/package.json +45 -0
|
@@ -0,0 +1,662 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.e_reset_all_once = exports.e_capacitor_2 = exports.e_capacitor_1 = exports.e_add_all_to_grave = exports.e_add_all_to_hand = exports.e_send_all_to_grave = exports.e_shuffle_into_deck = exports.e_deal_dmg_card = exports.e_remove_all_effects = exports.e_add_all_to_zone = exports.e_delay = exports.e_bounce = exports.e_lock = exports.e_draw_until = exports.e_draw = exports.e_fragile = exports.e_volatile = exports.e_revive = exports.e_add_counter_to_targets = exports.e_add_counter = exports.e_dmg_reduction = exports.e_reflect = exports.e_revenge = exports.e_deal_dmg_ahead = exports.e_add_stat_change_override = exports.e_add_stat_change_diff = exports.e_add_to_hand = exports.e_attack = exports.e_quick = void 0;
|
|
7
|
+
const effect_1 = __importDefault(require("../types/abstract/gameComponents/effect"));
|
|
8
|
+
const subtype_instant_1 = __importDefault(require("../types/effects/effectSubtypes/subtype_instant"));
|
|
9
|
+
const subtypeRegistry_1 = __importDefault(require("../data/subtypeRegistry"));
|
|
10
|
+
const systemRegistry_1 = require("../data/systemRegistry");
|
|
11
|
+
const actionRegistry_1 = __importDefault(require("../data/actionRegistry"));
|
|
12
|
+
const actionGenrator_1 = require("../_queenSystem/handler/actionGenrator");
|
|
13
|
+
const misc_1 = require("../types/misc");
|
|
14
|
+
const zoneRegistry_1 = require("../data/zoneRegistry");
|
|
15
|
+
const e_status_1 = require("./e_status");
|
|
16
|
+
const actionInputRequesterGenerator_1 = __importDefault(require("../_queenSystem/handler/actionInputRequesterGenerator"));
|
|
17
|
+
const error_1 = __importDefault(require("../types/errors/error"));
|
|
18
|
+
const e_generic_cardTargetting_1 = require("./e_generic_cardTargetting");
|
|
19
|
+
/**
|
|
20
|
+
* All typical effects should have 3 versions
|
|
21
|
+
* - target c or this
|
|
22
|
+
* - target inputs
|
|
23
|
+
* - target all of a higher order input (card -> zone, eff -> card)
|
|
24
|
+
*
|
|
25
|
+
*/
|
|
26
|
+
class e_quick extends effect_1.default {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(...arguments);
|
|
29
|
+
this.instant_subtype = new subtype_instant_1.default(subtypeRegistry_1.default[subtypeRegistry_1.default.e_st_instant]);
|
|
30
|
+
}
|
|
31
|
+
canRespondAndActivate_final(c, system, a) {
|
|
32
|
+
return system.turnAction !== undefined && system.turnAction.id === a.id;
|
|
33
|
+
}
|
|
34
|
+
activate_final(c, system, a) {
|
|
35
|
+
return [
|
|
36
|
+
actionGenrator_1.actionConstructorRegistry.a_modify_action("a_turn_end")(system, system.getRootAction())(this.cause(system, c))({
|
|
37
|
+
doIncreaseTurnCount: false
|
|
38
|
+
})
|
|
39
|
+
];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.e_quick = e_quick;
|
|
43
|
+
class e_attack extends effect_1.default {
|
|
44
|
+
get dmg() { return this.attr.get("dmg"); }
|
|
45
|
+
set dmg(val) { this.attr.set("dmg", val); }
|
|
46
|
+
get dmgType() { var _a; return (_a = this.attr.get("dmgType")) !== null && _a !== void 0 ? _a : misc_1.damageType.physical; }
|
|
47
|
+
set dmgType(val) { this.attr.set("dmgType", val); }
|
|
48
|
+
getDisplayInput(c, system) {
|
|
49
|
+
var _a;
|
|
50
|
+
return [this.count, (_a = this.dmg) !== null && _a !== void 0 ? _a : -1, this.dmgType];
|
|
51
|
+
}
|
|
52
|
+
createInputObj(c, s, a) {
|
|
53
|
+
return actionInputRequesterGenerator_1.default.field(s, c).cards().many(this.count, this);
|
|
54
|
+
}
|
|
55
|
+
canRespondAndActivate_final(c, system, a) {
|
|
56
|
+
return this.count > 0;
|
|
57
|
+
}
|
|
58
|
+
activate_final(c, s, a, input) {
|
|
59
|
+
let t = this.count;
|
|
60
|
+
if (!t || isNaN(t) || !isFinite(t))
|
|
61
|
+
return [];
|
|
62
|
+
const cards = input.next();
|
|
63
|
+
const cause = this.cause(s, c);
|
|
64
|
+
let res = [];
|
|
65
|
+
while (t > 0) {
|
|
66
|
+
res.push(...cards.map(c => actionGenrator_1.actionConstructorRegistry.a_attack(s, c.data.card)(cause, {
|
|
67
|
+
dmg: (this.dmg === undefined) ? c.data.card.atk : this.dmg,
|
|
68
|
+
dmgType: this.dmgType
|
|
69
|
+
})));
|
|
70
|
+
t--;
|
|
71
|
+
}
|
|
72
|
+
return res;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.e_attack = e_attack;
|
|
76
|
+
class e_add_to_hand extends effect_1.default {
|
|
77
|
+
createInputObj(c, s, a) {
|
|
78
|
+
const x = actionInputRequesterGenerator_1.default.allZones(s, c).cards().many(this.count, this);
|
|
79
|
+
const y = actionInputRequesterGenerator_1.default.hand(s, c).once(this);
|
|
80
|
+
return x.merge(y);
|
|
81
|
+
}
|
|
82
|
+
canRespondAndActivate_final(c, system, a) {
|
|
83
|
+
return this.count > 0;
|
|
84
|
+
}
|
|
85
|
+
activate_final(c, s, a, input) {
|
|
86
|
+
const n = input.next();
|
|
87
|
+
const cards = n.splice(0, -1);
|
|
88
|
+
const z = n[0].data.zone;
|
|
89
|
+
return cards.map(c => actionGenrator_1.actionConstructorRegistry.a_pos_change(s, c.data.card)(z.top)(this.cause(s, c.data.card)));
|
|
90
|
+
}
|
|
91
|
+
getDisplayInput(c, system) {
|
|
92
|
+
var _a;
|
|
93
|
+
return [(_a = this.count) !== null && _a !== void 0 ? _a : 0];
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
exports.e_add_to_hand = e_add_to_hand;
|
|
97
|
+
class e_add_stat_change_diff extends effect_1.default {
|
|
98
|
+
get maxAtk() { return this.attr.get("maxAtk"); }
|
|
99
|
+
get maxHp() { return this.attr.get("maxHp"); }
|
|
100
|
+
get level() { return this.attr.get("level"); }
|
|
101
|
+
get statObj() {
|
|
102
|
+
const k = {};
|
|
103
|
+
if (this.maxAtk !== undefined)
|
|
104
|
+
k.maxAtk = this.maxAtk;
|
|
105
|
+
if (this.maxHp !== undefined)
|
|
106
|
+
k.maxHp = this.maxHp;
|
|
107
|
+
if (this.level !== undefined)
|
|
108
|
+
k.level = this.level;
|
|
109
|
+
return k;
|
|
110
|
+
}
|
|
111
|
+
createInputObj(c, s, a) {
|
|
112
|
+
return actionInputRequesterGenerator_1.default.field(s, c).cards().many(this.count, this);
|
|
113
|
+
}
|
|
114
|
+
canRespondAndActivate_final(c, system, a) {
|
|
115
|
+
return this.count > 0;
|
|
116
|
+
}
|
|
117
|
+
activate_final(c, s, a, input) {
|
|
118
|
+
const cards = input.next();
|
|
119
|
+
const cause = this.cause(s, c);
|
|
120
|
+
return cards.map(c => actionGenrator_1.actionConstructorRegistry.a_add_status_effect("e_generic_stat_change_diff", true)(s, c.data.card)(cause, this.statObj));
|
|
121
|
+
}
|
|
122
|
+
getDisplayInput(c, system) {
|
|
123
|
+
var _a, _b, _c;
|
|
124
|
+
return [(_a = this.maxAtk) !== null && _a !== void 0 ? _a : 0, (_b = this.maxHp) !== null && _b !== void 0 ? _b : 0, (_c = this.level) !== null && _c !== void 0 ? _c : 0];
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
exports.e_add_stat_change_diff = e_add_stat_change_diff;
|
|
128
|
+
class e_add_stat_change_override extends e_add_stat_change_diff {
|
|
129
|
+
activate_final(c, s, a, input) {
|
|
130
|
+
const cause = this.cause(s, c);
|
|
131
|
+
return input.next().map(c => actionGenrator_1.actionConstructorRegistry.a_add_status_effect("e_generic_stat_change_override", true)(s, c.data.card)(cause, this.statObj));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.e_add_stat_change_override = e_add_stat_change_override;
|
|
135
|
+
class e_deal_dmg_ahead extends e_attack {
|
|
136
|
+
activate_final(c, s, a) {
|
|
137
|
+
let t = this.count;
|
|
138
|
+
if (!t || isNaN(t) || !isFinite(t))
|
|
139
|
+
return [];
|
|
140
|
+
const cause = this.cause(s, c);
|
|
141
|
+
let res = [];
|
|
142
|
+
while (t > 0) {
|
|
143
|
+
res.push(actionGenrator_1.actionConstructorRegistry.a_deal_damage_ahead(s, c)(cause, {
|
|
144
|
+
dmg: (this.dmg === undefined) ? c.atk : this.dmg,
|
|
145
|
+
dmgType: this.dmgType
|
|
146
|
+
}));
|
|
147
|
+
t--;
|
|
148
|
+
}
|
|
149
|
+
return res;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
exports.e_deal_dmg_ahead = e_deal_dmg_ahead;
|
|
153
|
+
class e_revenge extends e_attack {
|
|
154
|
+
canRespondAndActivate_final(c, system, a) {
|
|
155
|
+
if (a.typeID !== actionRegistry_1.default.a_deal_damage_card &&
|
|
156
|
+
a.typeID !== actionRegistry_1.default.a_deal_damage_internal &&
|
|
157
|
+
a.typeID !== actionRegistry_1.default.a_deal_damage_position)
|
|
158
|
+
return false;
|
|
159
|
+
if (a.targets[0].type === systemRegistry_1.identificationType.card &&
|
|
160
|
+
a.targets[0].card.id !== c.id)
|
|
161
|
+
return false;
|
|
162
|
+
if (a.targets[0].type === systemRegistry_1.identificationType.position &&
|
|
163
|
+
!a.targets[0].pos.is(c.pos))
|
|
164
|
+
return false;
|
|
165
|
+
return super.canRespondAndActivate_final(c, system, a);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.e_revenge = e_revenge;
|
|
169
|
+
class e_reflect extends e_revenge {
|
|
170
|
+
activate_final(c, system, a, i) {
|
|
171
|
+
const attr = a.flatAttr();
|
|
172
|
+
this.dmg = attr.dmg;
|
|
173
|
+
return super.activate_final(c, system, a, i);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.e_reflect = e_reflect;
|
|
177
|
+
class e_dmg_reduction extends effect_1.default {
|
|
178
|
+
get reductionAmmount() { var _a; return (_a = this.attr.get("reductionAmmount")) !== null && _a !== void 0 ? _a : 0; }
|
|
179
|
+
;
|
|
180
|
+
set reductionAmmount(val) { this.attr.set("reductionAmmount", val); }
|
|
181
|
+
;
|
|
182
|
+
get minDmg() { var _a; return (_a = this.attr.get("minDmg")) !== null && _a !== void 0 ? _a : 0; }
|
|
183
|
+
;
|
|
184
|
+
set minDmg(val) { this.attr.set("minDmg", val); }
|
|
185
|
+
;
|
|
186
|
+
get reductionDmgType() { return this.attr.get("reductionDmgType"); } //undefined is all damage
|
|
187
|
+
set reductionDmgType(val) {
|
|
188
|
+
if (val === undefined)
|
|
189
|
+
this.attr.delete("reductionDmgType");
|
|
190
|
+
else
|
|
191
|
+
this.attr.set("reductionDmgType", val);
|
|
192
|
+
}
|
|
193
|
+
canRespondAndActivate_final(c, system, a) {
|
|
194
|
+
//all dmg
|
|
195
|
+
if (a.typeID === actionRegistry_1.default.a_deal_damage_card ||
|
|
196
|
+
a.typeID === actionRegistry_1.default.a_deal_damage_internal ||
|
|
197
|
+
a.typeID === actionRegistry_1.default.a_deal_damage_position) {
|
|
198
|
+
if (this.reductionDmgType === undefined)
|
|
199
|
+
return true;
|
|
200
|
+
return a.flatAttr().dmgType === this.reductionDmgType;
|
|
201
|
+
}
|
|
202
|
+
return false;
|
|
203
|
+
}
|
|
204
|
+
activate_final(c, system, a) {
|
|
205
|
+
var _a;
|
|
206
|
+
const attr = a.flatAttr();
|
|
207
|
+
let oldDmg = (_a = attr.dmg) !== null && _a !== void 0 ? _a : 0;
|
|
208
|
+
let newDmg = oldDmg - this.reductionAmmount;
|
|
209
|
+
if (newDmg < this.minDmg)
|
|
210
|
+
newDmg = this.minDmg;
|
|
211
|
+
const cause = this.cause(system, c);
|
|
212
|
+
return [
|
|
213
|
+
actionGenrator_1.actionConstructorRegistry.a_modify_action("a_deal_damage_card")(system, a)(cause)({
|
|
214
|
+
dmg: newDmg
|
|
215
|
+
})
|
|
216
|
+
];
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
exports.e_dmg_reduction = e_dmg_reduction;
|
|
220
|
+
class e_add_counter extends effect_1.default {
|
|
221
|
+
get times() { var _a; return (_a = this.attr.get("times")) !== null && _a !== void 0 ? _a : 0; }
|
|
222
|
+
set times(val) { this.attr.set("times", val); }
|
|
223
|
+
canRespondAndActivate_final(c, system, a) {
|
|
224
|
+
return this.times > 0;
|
|
225
|
+
}
|
|
226
|
+
activate_final(c, system, a) {
|
|
227
|
+
let t = this.times;
|
|
228
|
+
if (!t || isNaN(t) || !isFinite(t))
|
|
229
|
+
return [];
|
|
230
|
+
const cause = this.cause(system, c);
|
|
231
|
+
let res = [];
|
|
232
|
+
while (t > 0) {
|
|
233
|
+
res.push(actionGenrator_1.actionConstructorRegistry.a_add_status_effect("e_generic_counter", true)(system, c)(cause, {}));
|
|
234
|
+
t--;
|
|
235
|
+
}
|
|
236
|
+
return res;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
exports.e_add_counter = e_add_counter;
|
|
240
|
+
class e_add_counter_to_targets extends effect_1.default {
|
|
241
|
+
get times() { var _a; return (_a = this.attr.get("times")) !== null && _a !== void 0 ? _a : 0; }
|
|
242
|
+
set times(val) { this.attr.set("times", val); }
|
|
243
|
+
createInputObj(c, s, a) {
|
|
244
|
+
return actionInputRequesterGenerator_1.default.allZones(s, c).cards().many(this.count, this);
|
|
245
|
+
}
|
|
246
|
+
canRespondAndActivate_final(c, system, a) {
|
|
247
|
+
return this.times > 0 && this.count > 0;
|
|
248
|
+
}
|
|
249
|
+
activate_final(c, s, a, input) {
|
|
250
|
+
let t = this.times;
|
|
251
|
+
if (!t || isNaN(t) || !isFinite(t))
|
|
252
|
+
return [];
|
|
253
|
+
const cause = this.cause(s, c);
|
|
254
|
+
let res = [];
|
|
255
|
+
while (t > 0) {
|
|
256
|
+
input.next().forEach(c => {
|
|
257
|
+
res.push(actionGenrator_1.actionConstructorRegistry.a_add_status_effect("e_generic_counter", true)(s, c.data.card)(cause, {}));
|
|
258
|
+
});
|
|
259
|
+
t--;
|
|
260
|
+
}
|
|
261
|
+
return res;
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
exports.e_add_counter_to_targets = e_add_counter_to_targets;
|
|
265
|
+
class e_revive extends effect_1.default {
|
|
266
|
+
//condition: card in grave, pos on field=
|
|
267
|
+
createInputObj(c, s, a) {
|
|
268
|
+
const z = s.getZoneOf(c);
|
|
269
|
+
const s1 = actionInputRequesterGenerator_1.default.grave(s, c).ofSamePlayer(z).cards().once(this);
|
|
270
|
+
const s2 = actionInputRequesterGenerator_1.default.field(s, c).ofSamePlayer(z).pos().isEmpty().once(this);
|
|
271
|
+
return s1.merge(s2);
|
|
272
|
+
}
|
|
273
|
+
activate_final(c, s, a, input) {
|
|
274
|
+
const tc = input.next()[0].data.card;
|
|
275
|
+
const tp = input.next()[1].data.pos;
|
|
276
|
+
const cause = actionGenrator_1.actionFormRegistry.effect(s, c, this);
|
|
277
|
+
return [
|
|
278
|
+
actionGenrator_1.actionConstructorRegistry.a_pos_change(s, tc)(tp)(cause)
|
|
279
|
+
];
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
exports.e_revive = e_revive;
|
|
283
|
+
/**Remove this card when it leaves the field */
|
|
284
|
+
class e_volatile extends effect_1.default {
|
|
285
|
+
canRespondAndActivate_final(c, system, a) {
|
|
286
|
+
//activate cond : when this card is removed from field
|
|
287
|
+
if ((a.typeID === actionRegistry_1.default.a_pos_change ||
|
|
288
|
+
a.typeID === actionRegistry_1.default.a_pos_change_force) &&
|
|
289
|
+
a.targets[0].card.id === c.id) {
|
|
290
|
+
let zid1 = a.targets[1].pos.zoneID;
|
|
291
|
+
let zid2 = c.pos.zoneID;
|
|
292
|
+
if (zid1 === zid2)
|
|
293
|
+
return false;
|
|
294
|
+
let zFrom = system.getZoneWithID(zid2);
|
|
295
|
+
if (!zFrom)
|
|
296
|
+
return false;
|
|
297
|
+
return zFrom.is(zoneRegistry_1.zoneRegistry.z_field);
|
|
298
|
+
}
|
|
299
|
+
return false;
|
|
300
|
+
}
|
|
301
|
+
activate_final(c, s, a) {
|
|
302
|
+
const cause = this.cause(s, c);
|
|
303
|
+
return [
|
|
304
|
+
actionGenrator_1.actionConstructorRegistry.a_replace_action(s, actionGenrator_1.actionConstructorRegistry.a_void(s, c)(cause))(cause)
|
|
305
|
+
];
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
exports.e_volatile = e_volatile;
|
|
309
|
+
/**Destroy self after attack */
|
|
310
|
+
class e_fragile extends e_generic_cardTargetting_1.e_destroy.toThisCard() {
|
|
311
|
+
canRespondAndActivate_final(c, system, a) {
|
|
312
|
+
//if this card attacks
|
|
313
|
+
return (a.is("a_attack") &&
|
|
314
|
+
a.targets[0].is(c));
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
exports.e_fragile = e_fragile;
|
|
318
|
+
class e_draw extends effect_1.default {
|
|
319
|
+
//deck, hand
|
|
320
|
+
get times() { var _a; return (_a = this.attr.get("times")) !== null && _a !== void 0 ? _a : 0; }
|
|
321
|
+
set times(val) { this.attr.set("times", val); }
|
|
322
|
+
get cooldown() { var _a; return (_a = this.attr.get("cooldown")) !== null && _a !== void 0 ? _a : NaN; }
|
|
323
|
+
set cooldown(val) { this.attr.set("cooldown", val); }
|
|
324
|
+
get doTurnDraw() { return this.attr.get("doTurnDraw") != 0; }
|
|
325
|
+
set doTurnDraw(val) { this.attr.set("doTurnDraw", Number(val)); }
|
|
326
|
+
getDisplayInput(c, system) {
|
|
327
|
+
return [this.times, this.cooldown, Number(this.doTurnDraw)];
|
|
328
|
+
}
|
|
329
|
+
canRespondAndActivate_final(c, system, a) {
|
|
330
|
+
return this.times > 0 && !isNaN(this.times) && isFinite(this.times);
|
|
331
|
+
}
|
|
332
|
+
createInputObj(c, s, a) {
|
|
333
|
+
const z = s.getZoneOf(c);
|
|
334
|
+
const g1 = actionInputRequesterGenerator_1.default.deck(s, c).ofSamePlayerType(z).once(this);
|
|
335
|
+
const g2 = actionInputRequesterGenerator_1.default.hand(s, c).ofSamePlayerType(z).once(this);
|
|
336
|
+
return g1.merge(g2);
|
|
337
|
+
}
|
|
338
|
+
activate_final(c, s, a, input) {
|
|
339
|
+
let t = this.times;
|
|
340
|
+
let res = [];
|
|
341
|
+
const i = input.next();
|
|
342
|
+
const hand = i[0].data.zone;
|
|
343
|
+
const deck = i[1].data.zone;
|
|
344
|
+
const cause = actionGenrator_1.actionFormRegistry.effect(s, c, this);
|
|
345
|
+
while (t > 0) {
|
|
346
|
+
res.push(deck.getAction_draw(s, hand, cause, this.doTurnDraw));
|
|
347
|
+
t--;
|
|
348
|
+
}
|
|
349
|
+
res.unshift(deck.getAction_shuffle(s, cause));
|
|
350
|
+
return res;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
exports.e_draw = e_draw;
|
|
354
|
+
class e_draw_until extends e_draw {
|
|
355
|
+
canRespondAndActivate_final(c, system, a) {
|
|
356
|
+
return this.count > 0;
|
|
357
|
+
}
|
|
358
|
+
activate_final(c, s, a, input) {
|
|
359
|
+
const i = input.next();
|
|
360
|
+
const hand = i[0].data.zone;
|
|
361
|
+
let diff = this.count - hand.cardArr_filtered.length;
|
|
362
|
+
if (diff > 0) {
|
|
363
|
+
this.times = diff;
|
|
364
|
+
return super.activate_final(c, s, a, input);
|
|
365
|
+
}
|
|
366
|
+
return [];
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
exports.e_draw_until = e_draw_until;
|
|
370
|
+
//Lock actually has 2 forms :
|
|
371
|
+
// This implements the condition form
|
|
372
|
+
// There is another form as a forced negative effect, like decompiling X cards on your side of the field
|
|
373
|
+
// That...can just be added to the beginning of the Action arr tho
|
|
374
|
+
class e_lock extends effect_1.default {
|
|
375
|
+
constructor() {
|
|
376
|
+
//delegates the actual condition to a sensible function rather than the inverses
|
|
377
|
+
super(...arguments);
|
|
378
|
+
//return true to unlock
|
|
379
|
+
this.key_condition = () => true;
|
|
380
|
+
}
|
|
381
|
+
canRespondAndActivate_final(c, system, a) {
|
|
382
|
+
return !this.key_condition(c, system, a, this.attr);
|
|
383
|
+
}
|
|
384
|
+
activate_final(c, s, a, input) {
|
|
385
|
+
return [actionGenrator_1.actionConstructorRegistry.a_negate_action(this.cause(s, c))];
|
|
386
|
+
}
|
|
387
|
+
static keyCondition(f) {
|
|
388
|
+
return class ExtendedEff extends this {
|
|
389
|
+
constructor(...p) {
|
|
390
|
+
super(...p);
|
|
391
|
+
this.key_condition = f.bind(this);
|
|
392
|
+
}
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
exports.e_lock = e_lock;
|
|
397
|
+
class e_bounce extends effect_1.default {
|
|
398
|
+
//target cards, deck
|
|
399
|
+
get target_zone() { var _a; return (_a = this.attr.get("target_zone")) !== null && _a !== void 0 ? _a : zoneRegistry_1.zoneRegistry.z_field; }
|
|
400
|
+
createInputObj(c, s, a) {
|
|
401
|
+
const z = s.getZoneOf(c);
|
|
402
|
+
const s1 = actionInputRequesterGenerator_1.default.specificType(s, c, this.target_zone).ofSamePlayerType(z).cards().many(this.count, this);
|
|
403
|
+
const s2 = actionInputRequesterGenerator_1.default.deck(s, c).once(this);
|
|
404
|
+
return s1.merge(s2);
|
|
405
|
+
}
|
|
406
|
+
activate_final(c, s, a, input) {
|
|
407
|
+
const i = input.next();
|
|
408
|
+
const deck = i.pop().data.zone;
|
|
409
|
+
const cards = i;
|
|
410
|
+
const cause = this.cause(s, c);
|
|
411
|
+
const res = cards.map(c_i => {
|
|
412
|
+
return actionGenrator_1.actionConstructorRegistry.a_add_top(s, c_i.data.card)(deck)(cause);
|
|
413
|
+
});
|
|
414
|
+
res.push(deck.getAction_shuffle(s, cause));
|
|
415
|
+
return res;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
exports.e_bounce = e_bounce;
|
|
419
|
+
class e_delay extends effect_1.default {
|
|
420
|
+
get delayCount() { var _a; return (_a = this.attr.get("delayCount")) !== null && _a !== void 0 ? _a : 0; }
|
|
421
|
+
canRespondAndActivate_final(c, system, a) {
|
|
422
|
+
return this.count > 0 && this.delayCount > 0;
|
|
423
|
+
}
|
|
424
|
+
createInputObj(c, s, a) {
|
|
425
|
+
return actionInputRequesterGenerator_1.default.field(s, c).cards().hasAutomate().many(this.count, this);
|
|
426
|
+
}
|
|
427
|
+
activate_final(c, s, a, input) {
|
|
428
|
+
const cards = input.next().map(c => c.data.card);
|
|
429
|
+
const res = [];
|
|
430
|
+
const cause = this.cause(s, c);
|
|
431
|
+
cards.forEach(c => {
|
|
432
|
+
const automateEff = c.statusEffects.filter(e => e instanceof e_status_1.e_automate_base);
|
|
433
|
+
automateEff.forEach(eff => {
|
|
434
|
+
res.push(actionGenrator_1.actionConstructorRegistry.a_delay(cause, {
|
|
435
|
+
delayAmmount: this.delayCount,
|
|
436
|
+
delayCID: c.id,
|
|
437
|
+
delayEID: eff.id
|
|
438
|
+
}));
|
|
439
|
+
});
|
|
440
|
+
});
|
|
441
|
+
return res;
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
exports.e_delay = e_delay;
|
|
445
|
+
/**Add all cards of a particular dataID from the same zone too hand */
|
|
446
|
+
class e_add_all_to_zone extends effect_1.default {
|
|
447
|
+
constructor() {
|
|
448
|
+
super(...arguments);
|
|
449
|
+
this.target_zone = zoneRegistry_1.zoneRegistry.z_system;
|
|
450
|
+
}
|
|
451
|
+
createInputObj(c, s, a) {
|
|
452
|
+
const x = actionInputRequesterGenerator_1.default.allZones(s, c).cards().once(this);
|
|
453
|
+
const y = actionInputRequesterGenerator_1.default.specificType(s, c, this.target_zone).once(this);
|
|
454
|
+
return x.merge(y);
|
|
455
|
+
}
|
|
456
|
+
activate_final(c, s, a, input) {
|
|
457
|
+
const n = input.next();
|
|
458
|
+
const candidate = n[0].data.card;
|
|
459
|
+
const z = n[1].data.zone;
|
|
460
|
+
const cause = this.cause(s, c);
|
|
461
|
+
const cards = z.cardArr_filtered.filter(c => c.dataID === candidate.dataID);
|
|
462
|
+
return cards.map(c => actionGenrator_1.actionConstructorRegistry.a_pos_change(s, c)(z.top)(cause));
|
|
463
|
+
}
|
|
464
|
+
static to(zType) {
|
|
465
|
+
return class extendedEff extends this {
|
|
466
|
+
constructor() {
|
|
467
|
+
super(...arguments);
|
|
468
|
+
this.target_zone = zType;
|
|
469
|
+
}
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
exports.e_add_all_to_zone = e_add_all_to_zone;
|
|
474
|
+
class e_remove_all_effects extends effect_1.default {
|
|
475
|
+
createInputObj(c, s, a) {
|
|
476
|
+
return actionInputRequesterGenerator_1.default.allZones(s, c).cards().many(this.count, this);
|
|
477
|
+
}
|
|
478
|
+
canRespondAndActivate_final(c, system, a) {
|
|
479
|
+
return this.count > 0;
|
|
480
|
+
}
|
|
481
|
+
activate_final(c, s, a, input) {
|
|
482
|
+
const cards = input.next();
|
|
483
|
+
const cause = this.cause(s, c);
|
|
484
|
+
return cards.map(c => actionGenrator_1.actionConstructorRegistry.a_remove_all_effects(s, c.data.card)(cause));
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
exports.e_remove_all_effects = e_remove_all_effects;
|
|
488
|
+
class e_deal_dmg_card extends effect_1.default {
|
|
489
|
+
get dmg() { var _a; return (_a = this.attr.get("dmg")) !== null && _a !== void 0 ? _a : 0; }
|
|
490
|
+
get dmgType() { var _a; return (_a = this.attr.get("dmgType")) !== null && _a !== void 0 ? _a : misc_1.damageType.physical; }
|
|
491
|
+
canRespondAndActivate_final(c, system, a) {
|
|
492
|
+
return this.count > 0;
|
|
493
|
+
}
|
|
494
|
+
createInputObj(c, s, a) {
|
|
495
|
+
return actionInputRequesterGenerator_1.default.field(s, c).cards().many(this.count, this);
|
|
496
|
+
}
|
|
497
|
+
activate_final(c, s, a, input) {
|
|
498
|
+
const cards = input.next();
|
|
499
|
+
const cause = this.cause(s, c);
|
|
500
|
+
return cards.map(c => actionGenrator_1.actionConstructorRegistry.a_deal_damage_card(s, c.data.card)(cause, {
|
|
501
|
+
dmg: this.dmg,
|
|
502
|
+
dmgType: this.dmgType
|
|
503
|
+
}));
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
exports.e_deal_dmg_card = e_deal_dmg_card;
|
|
507
|
+
class e_shuffle_into_deck extends effect_1.default {
|
|
508
|
+
get target_zone() { var _a; return (_a = this.attr.get("target_zone")) !== null && _a !== void 0 ? _a : zoneRegistry_1.zoneRegistry.z_field; }
|
|
509
|
+
canRespondAndActivate_final(c, system, a) {
|
|
510
|
+
return this.count > 0;
|
|
511
|
+
}
|
|
512
|
+
createInputObj(c, s, a) {
|
|
513
|
+
const z = s.getZoneOf(c);
|
|
514
|
+
const s1 = actionInputRequesterGenerator_1.default.specificType(s, c, this.target_zone).ofSamePlayerType(z).cards().many(this.count, this);
|
|
515
|
+
const s2 = actionInputRequesterGenerator_1.default.deck(s, c).once(this);
|
|
516
|
+
return s1.merge(s2);
|
|
517
|
+
}
|
|
518
|
+
activate_final(c, s, a, input) {
|
|
519
|
+
const data = input.next();
|
|
520
|
+
const deck = data.pop();
|
|
521
|
+
const cards = data;
|
|
522
|
+
const cause = this.cause(s, c);
|
|
523
|
+
const res = cards.map(c => actionGenrator_1.actionConstructorRegistry.a_pos_change(s, c.data.card)(deck.data.zone.top)(cause));
|
|
524
|
+
const k = deck.data.zone.getAction_shuffle(s, cause);
|
|
525
|
+
if (k instanceof error_1.default)
|
|
526
|
+
return [];
|
|
527
|
+
res.push(k);
|
|
528
|
+
return res;
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
exports.e_shuffle_into_deck = e_shuffle_into_deck;
|
|
532
|
+
class e_send_all_to_grave extends effect_1.default {
|
|
533
|
+
createInputObj(c, s, a) {
|
|
534
|
+
const x = actionInputRequesterGenerator_1.default.allZones(s, c).cards().once(this);
|
|
535
|
+
const y = actionInputRequesterGenerator_1.default.grave(s, c).once(this);
|
|
536
|
+
return x.merge(y);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
exports.e_send_all_to_grave = e_send_all_to_grave;
|
|
540
|
+
exports.e_add_all_to_hand = e_add_all_to_zone.to(zoneRegistry_1.zoneRegistry.z_hand);
|
|
541
|
+
exports.e_add_all_to_grave = e_add_all_to_zone.to(zoneRegistry_1.zoneRegistry.z_grave);
|
|
542
|
+
class e_capacitor_1 extends effect_1.default {
|
|
543
|
+
canRespondAndActivate_final(c, s, a) {
|
|
544
|
+
return a.is("a_deal_damage_card") && !c.hasCounter;
|
|
545
|
+
}
|
|
546
|
+
activate_final(c, s, a, input) {
|
|
547
|
+
var _a;
|
|
548
|
+
//if any card would take damage, add counter (max 3) instead
|
|
549
|
+
if (!a.is("a_deal_damage_card"))
|
|
550
|
+
return [];
|
|
551
|
+
const wouldBeDmg = a.flatAttr().dmg;
|
|
552
|
+
const cause = this.cause(s, c);
|
|
553
|
+
const counter_count = Utils.clamp(wouldBeDmg, (_a = this.attr.get("maxCount")) !== null && _a !== void 0 ? _a : 0, 0);
|
|
554
|
+
const res = [
|
|
555
|
+
actionGenrator_1.actionConstructorRegistry.a_modify_action("a_deal_damage_card")(s, a)(cause)({
|
|
556
|
+
dmg: 0
|
|
557
|
+
})
|
|
558
|
+
];
|
|
559
|
+
if (counter_count > 0) {
|
|
560
|
+
res.push(actionGenrator_1.actionConstructorRegistry.a_add_status_effect("e_generic_counter", true)(s, c)(cause, {
|
|
561
|
+
count: counter_count
|
|
562
|
+
}));
|
|
563
|
+
}
|
|
564
|
+
return res;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
exports.e_capacitor_1 = e_capacitor_1;
|
|
568
|
+
class e_capacitor_2 extends effect_1.default {
|
|
569
|
+
canRespondAndActivate_final(c, system, a) {
|
|
570
|
+
return a.is("a_deal_damage_card") && c.hasCounter;
|
|
571
|
+
}
|
|
572
|
+
activate_final(c, s, a, input) {
|
|
573
|
+
if (!a.is("a_deal_damage_card"))
|
|
574
|
+
return [];
|
|
575
|
+
const counterCount = c.numCounters;
|
|
576
|
+
const originalDmg = a.flatAttr().dmg;
|
|
577
|
+
const cause = this.cause(s, c);
|
|
578
|
+
return [
|
|
579
|
+
actionGenrator_1.actionConstructorRegistry.a_modify_action("a_deal_damage_card")(s, a)(cause)({
|
|
580
|
+
dmg: originalDmg + counterCount
|
|
581
|
+
}),
|
|
582
|
+
actionGenrator_1.actionConstructorRegistry.a_clear_all_counters(s, c)(cause)
|
|
583
|
+
];
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
exports.e_capacitor_2 = e_capacitor_2;
|
|
587
|
+
class e_reset_all_once extends effect_1.default {
|
|
588
|
+
canRespondAndActivate_final(c, system, a) {
|
|
589
|
+
return this.count > 0;
|
|
590
|
+
}
|
|
591
|
+
createInputObj(c, s, a) {
|
|
592
|
+
return actionInputRequesterGenerator_1.default.field(s, c).ofSamePlayer(s.getZoneOf(c)).cards().many(this.count);
|
|
593
|
+
}
|
|
594
|
+
activate_final(c, s, a, input) {
|
|
595
|
+
const cause = this.cause(s, c);
|
|
596
|
+
const target = input.next();
|
|
597
|
+
return target.map(c => actionGenrator_1.actionConstructorRegistry.a_reset_all_once(s, c.data.card)(cause));
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
exports.e_reset_all_once = e_reset_all_once;
|
|
601
|
+
exports.default = {
|
|
602
|
+
e_add_to_hand,
|
|
603
|
+
e_add_all_to_hand: exports.e_add_all_to_hand,
|
|
604
|
+
e_add_all_to_grave: exports.e_add_all_to_grave,
|
|
605
|
+
e_quick,
|
|
606
|
+
e_attack,
|
|
607
|
+
e_add_counter,
|
|
608
|
+
e_add_stat_change_diff,
|
|
609
|
+
e_add_stat_change_override,
|
|
610
|
+
e_dmg_reduction,
|
|
611
|
+
e_revenge,
|
|
612
|
+
e_reflect,
|
|
613
|
+
e_revive,
|
|
614
|
+
e_volatile,
|
|
615
|
+
e_fragile,
|
|
616
|
+
e_draw,
|
|
617
|
+
e_draw_until,
|
|
618
|
+
e_deal_dmg_card,
|
|
619
|
+
e_deal_dmg_ahead,
|
|
620
|
+
e_reset_all_once,
|
|
621
|
+
e_remove_all_effects,
|
|
622
|
+
e_delay,
|
|
623
|
+
e_delay_all: e_delay.toAllEnemies(),
|
|
624
|
+
e_bounce,
|
|
625
|
+
e_lock,
|
|
626
|
+
e_void_this: e_generic_cardTargetting_1.e_void.toThisCard(),
|
|
627
|
+
e_destroy_this: e_generic_cardTargetting_1.e_destroy.toThisCard(),
|
|
628
|
+
e_clear_all_status_this: e_generic_cardTargetting_1.e_clear_all_status.toThisCard(),
|
|
629
|
+
e_reactivate_this: e_generic_cardTargetting_1.e_reactivate.toThisCard(),
|
|
630
|
+
e_deactivate_this: e_generic_cardTargetting_1.e_deactivate.toThisCard(),
|
|
631
|
+
e_decompile_this: e_generic_cardTargetting_1.e_decompile.toThisCard(),
|
|
632
|
+
e_execute_this: e_generic_cardTargetting_1.e_execute.toThisCard(),
|
|
633
|
+
e_reset_all_once_this: e_reset_all_once.toThisCard(),
|
|
634
|
+
//specific sections
|
|
635
|
+
//afterburner is e_draw_until
|
|
636
|
+
//avarice is e_shuffle_into_deck + e_draw
|
|
637
|
+
e_avarice_1: e_shuffle_into_deck.implyCondition("c", function (c, oldc, s, a) {
|
|
638
|
+
const z = s.getZoneOf(c);
|
|
639
|
+
const z1 = s.getZoneOf(oldc);
|
|
640
|
+
return z.is(zoneRegistry_1.zoneRegistry.z_grave) && z.playerIndex === z1.playerIndex;
|
|
641
|
+
}),
|
|
642
|
+
//avraice_2 is e_draw
|
|
643
|
+
//battery is e_draw with isTurnDraw = true
|
|
644
|
+
//clawtrap is gravebound
|
|
645
|
+
e_clawtrap: e_deal_dmg_card.toAllEnemies(),
|
|
646
|
+
e_capacitor_1,
|
|
647
|
+
e_capacitor_2,
|
|
648
|
+
//** damage capacitor is just weird, implement later
|
|
649
|
+
//cinder is e_delay
|
|
650
|
+
//constant correction is e_add_stat_change_override
|
|
651
|
+
//** crystal ball is less weird but also must be custom coded
|
|
652
|
+
//double execute is just...e_execute switched to input mode
|
|
653
|
+
//ember is e_draw
|
|
654
|
+
//fireball is e_deal_damage_ahead
|
|
655
|
+
//flash is e_deal_damage_card, change the effect to its smallest turn countdown
|
|
656
|
+
//flashbang is e_destroy + e_delay (all enemies),
|
|
657
|
+
//e_force is .then to e_deal_damage_ahead
|
|
658
|
+
//inferno is e_deal_damage_card with changed input, changed condition
|
|
659
|
+
//magic ember is e_decompile signaling count to e_draw
|
|
660
|
+
//magic flare is e_decompile and e_deal_damage_card both listen to numbe rof 0|1 card on field for input
|
|
661
|
+
//rush mega is e_add_stat_change_diff
|
|
662
|
+
};
|