Skip to content

Commit 825fcf0

Browse files
committed
Tersalization aspect. Pokemon will have the shader effect when they have the "terastal_active" aspect.
1 parent 8dc5447 commit 825fcf0

9 files changed

Lines changed: 57 additions & 6 deletions

File tree

common/src/main/java/generations/gg/generations/core/generationscore/common/GenerationsCobblemonEvents.kt

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,20 @@ import com.cobblemon.mod.common.api.events.CobblemonEvents.HELD_ITEM_POST
1010
import com.cobblemon.mod.common.api.events.CobblemonEvents.LOOT_DROPPED
1111
import com.cobblemon.mod.common.api.events.CobblemonEvents.POKEMON_INTERACTION_GUI_CREATION
1212
import com.cobblemon.mod.common.api.events.drops.LootDroppedEvent
13+
import com.cobblemon.mod.common.api.pokemon.feature.FlagSpeciesFeature
1314
import com.cobblemon.mod.common.api.text.text
1415
import com.cobblemon.mod.common.battles.actor.PlayerBattleActor
16+
import com.cobblemon.mod.common.client.entity.PokemonClientDelegate
1517
import com.cobblemon.mod.common.client.gui.interact.wheel.InteractWheelOption
1618
import com.cobblemon.mod.common.client.gui.interact.wheel.Orientation
1719
import com.cobblemon.mod.common.util.asTranslated
1820
import com.cobblemon.mod.common.util.cobblemonResource
1921
import com.cobblemon.mod.common.util.giveOrDropItemStack
2022
import generations.gg.generations.core.generationscore.common.api.player.Caught
2123
import generations.gg.generations.core.generationscore.common.battle.GenerationsInstructionProcessor
24+
import generations.gg.generations.core.generationscore.common.client.TeraProvider
25+
import generations.gg.generations.core.generationscore.common.client.render.CobblemonInstanceProvider
26+
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.CobblemonInstance
2227
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.instanceOrNull
2328
import generations.gg.generations.core.generationscore.common.config.LegendKeys
2429
import generations.gg.generations.core.generationscore.common.config.SpeciesKey
@@ -47,8 +52,17 @@ class GenerationsCobblemonEvents {
4752

4853

4954
fun init() {
55+
CobblemonEvents.TERASTALLIZATION.subscribe(Priority.NORMAL, {
56+
var feature = FlagSpeciesFeature("terastal_active", true)
57+
58+
feature.apply(it.pokemon.originalPokemon)
59+
feature.apply(it.pokemon.effectedPokemon)
60+
it.pokemon.originalPokemon.updateAspects()
61+
})
62+
63+
64+
5065
// FORME_CHANGE.subscribe(Priority.NORMAL, {(a, b, c) -> GenerationsInstructionProcessor.processDetailsChange(a, b, c) })
51-
// CobblemonEvents.TERASTALLIZATION.subscribe(Priority.NORMAL, GenerationsInstructionProcessor::processTerastillization)
5266
// CobblemonEvents.MEGA_EVOLUTION.subscribe(Priority.NORMAL, GenerationsInstructionProcessor::processMegaEvolution)
5367
// CobblemonEvents.POKEMON_ENTITY_SPAWN.subscribe(Priority.HIGHEST) { it ->
5468
//

common/src/main/java/generations/gg/generations/core/generationscore/common/battle/GenerationsInstructionProcessor.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
1313
import com.cobblemon.mod.common.net.messages.client.battle.BattleTransformPokemonPacket
1414
import com.cobblemon.mod.common.pokemon.Pokemon
1515
import com.mojang.datafixers.util.Unit
16+
import generations.gg.generations.core.generationscore.common.GenerationsCore
1617

1718
object GenerationsInstructionProcessor {
1819
private var originalAbility: Ability? = null
@@ -136,7 +137,7 @@ private fun Pokemon.restoreAbility(tempAbility: Ability, originalAbility: Abilit
136137
originalAbility?.let { ability ->
137138
this.updateAbility(ability)
138139
} ?: run {
139-
println("Original Ability is null")
140+
GenerationsCore.LOGGER.warn("Original Ability is null")
140141
}
141142
}
142143
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package generations.gg.generations.core.generationscore.common.client
2+
3+
interface TeraProvider {
4+
var teraActive: Boolean
5+
}

common/src/main/java/generations/gg/generations/core/generationscore/common/client/model/RareCandyBone.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import com.cobblemon.mod.common.client.render.models.blockbench.pose.Bone
77
import com.cobblemon.mod.common.client.render.models.blockbench.repository.PokemonModelRepository
88
import com.cobblemon.mod.common.client.render.models.blockbench.repository.RenderContext
99
import com.cobblemon.mod.common.client.render.models.blockbench.repository.RenderContext.RenderState
10+
import com.cobblemon.mod.common.entity.pokemon.PokemonEntity
1011
import com.cobblemon.mod.common.pokemon.FormData
1112
import com.cobblemon.mod.common.pokemon.Species
1213
import com.cobblemon.mod.common.util.asResource
@@ -19,6 +20,7 @@ import generations.gg.generations.core.generationscore.common.client.render.Cobb
1920
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.CompiledModel
2021
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.ModelRegistry
2122
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.Pipelines
23+
import generations.gg.generations.core.generationscore.common.client.render.rarecandy.instanceOrNull
2224
import net.minecraft.client.Minecraft
2325
import net.minecraft.client.model.geom.ModelPart
2426
import net.minecraft.client.renderer.texture.MissingTextureAtlasSprite
@@ -82,6 +84,10 @@ class RareCandyBone /*Remove when cobblemon doesn't have parts of code that assu
8284
}
8385
if (model.renderObject!!.isReady) {
8486
instance.light = packedLight
87+
instance.teraActive = context.request(RenderContext.ASPECTS)?.contains("terastal_active") ?: false
88+
89+
System.out.println(context.request(RenderContext.ASPECTS))
90+
8591
// instance.tint.set(r, g, b) TODO: convert color int into its float components for tint.
8692
val variant = getVariant(context)
8793
if (variant != null) {

common/src/main/java/generations/gg/generations/core/generationscore/common/client/render/rarecandy/CobblemonInstance.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package generations.gg.generations.core.generationscore.common.client.render.rarecandy;
22

3+
import generations.gg.generations.core.generationscore.common.client.TeraProvider;
34
import generations.gg.generations.core.generationscore.common.client.model.ModelContextProviders;
45
import gg.generations.rarecandy.renderer.animation.Animation;
56
import gg.generations.rarecandy.renderer.animation.AnimationInstance;
@@ -8,11 +9,12 @@
89
import org.joml.Matrix4f;
910
import org.joml.Vector3f;
1011

11-
public class CobblemonInstance extends AnimatedObjectInstance implements BlockLightValueProvider {
12+
public class CobblemonInstance extends AnimatedObjectInstance implements BlockLightValueProvider, TeraProvider {
1213

1314
public Matrix4f[] matrixTransforms;
1415
public Transform offsets;
1516
private final Vector3f tint = new Vector3f();
17+
private boolean teraActive = false;
1618

1719
public Transform getOffset(String material) {
1820
return this.offsets != null ? this.currentAnimation.getOffset(material) : null;
@@ -52,6 +54,16 @@ public Vector3f getTint() {
5254
return tint;
5355
}
5456

57+
@Override
58+
public boolean getTeraActive() {
59+
return teraActive;
60+
}
61+
62+
@Override
63+
public void setTeraActive(boolean teraActive) {
64+
this.teraActive = teraActive;
65+
}
66+
5567
private static class StaticAnimationInstance extends AnimationInstance {
5668
public StaticAnimationInstance(Animation animation) {
5769
super(animation);

common/src/main/java/generations/gg/generations/core/generationscore/common/client/render/rarecandy/Pipelines.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ object Pipelines {
123123
ctx.uniform().upload2i(light and 0xFFFF, light shr 16 and 0xFFFF)
124124
}
125125

126-
.supplyVec3("tint") { it.instance.instanceOrNull<CobblemonInstance>()?.tint?.takeIf { it != ZERO } ?: ONE }
126+
.supplyVec3("tint") { /*it.instance.instanceOrNull<CobblemonInstance>()?.tint?.takeIf { it != ZERO } ?:*/ ONE }
127127

128128
.supplyInt("frame") { pingpong(MinecraftClientGameProvider.getTimePassed()).toInt() }
129129

@@ -147,7 +147,10 @@ object Pipelines {
147147
.supplyVec3("Light0_Direction") { RenderSystem.shaderLightDirections[0] }
148148
.supplyVec3("Light1_Direction") { RenderSystem.shaderLightDirections[1] }
149149

150-
.supplyBooleanUniform("useTera") { true }
150+
.supplyBooleanUniform("useTera") {
151+
val isActive = it.instance.instanceOrNull<CobblemonInstance>()?.teraActive ?: false
152+
return@supplyBooleanUniform isActive
153+
}
151154

152155
.prePostDraw({ material ->
153156
if (material.cullType() != CullType.None) {

common/src/main/resources/assets/generations_core/shaders/animated.fs.glsl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ float linear_fog_fade(float vertexDistance, float fogStart, float fogEnd) {
7676
// ===== Lighting Method =====
7777

7878
vec4 minecraft_sample_lightmap(sampler2D lightMap, ivec2 uv) {
79-
return texture(lightMap, (vec2(uv) + 0.5) / 16.0);
79+
return texture(lightMap, clamp(uv / 256.0, vec2(0.5 / 16.0), vec2(15.5 / 16.0)));
8080
}
8181

8282
// ===== Layered Color Method =====
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"pokemon": ["annihilape", "anorith", "appletun", "applin", "araquanid", "arbok", "arboliva", "arcanine", "arceus", "archaludon", "archen", "archeops", "arctibax", "arctovish", "arctozolt", "ariados", "armaldo", "armarouge", "aromatisse", "aron", "arrokuda", "articuno", "audino", "aurorus", "avalugg", "axew", "azelf", "azumarill", "azurill", "bagon", "baltoy", "banette", "barbaracle", "barboach", "barraskewda", "basculegion", "basculin", "bastiodon", "baxcalibur", "bayleef", "beartic", "beautifly", "beedrill", "beheeyem", "beldum", "bellibolt", "bellossom", "bellsprout", "bergmite", "bewear", "bibarel", "bidoof", "binacle", "bisharp", "blacephalon", "blastoise", "blaziken", "blipbug", "blissey", "blitzle", "boldore", "boltund", "bombirdier", "bonsly", "bouffalant", "bounsweet", "braixen", "brambleghast", "bramblin", "braviary", "breloom", "brionne", "bronzong", "bronzor", "brutebonnet", "bruxish", "budew", "buizel", "bulbasaur", "buneary", "bunnelby", "burmy", "butterfree", "buzzwole", "cacnea", "cacturne", "calyrex", "camerupt", "capsakid", "carbink", "carkol", "carnivine", "carracosta", "carvanha", "cascoon", "castform", "caterpie", "celebi", "celesteela", "centiskorch", "ceruledge", "cetitan", "cetoddle", "chandelure", "chansey", "charcadet", "charizard", "charjabug", "charmander", "charmeleon", "chatot", "cherrim", "cherubi", "chesnaught", "chespin", "chewtle", "chienpao", "chikorita", "chimchar", "chimecho", "chinchou", "chingling", "chiyu", "cinccino", "cinderace", "clamperl", "clauncher", "clawitzer", "claydol", "clefable", "clefairy", "cleffa", "clobbopus", "clodsire", "cloyster", "coalossal", "cobalion", "cofagrigus", "combee", "combusken", "comfey", "conkeldurr", "copperajah", "corphish", "corsola", "corviknight", "corvisquire", "cosmoem", "cosmog", "cottonee", "crabominable", "crabrawler", "cradily", "cramorant", "cranidos", "crawdaunt", "cresselia", "croagunk", "crobat", "crocalor", "croconaw", "crustle", "cryogonal", "cubchoo", "cubone", "cufant", "cursola", "cutiefly", "cyclizar", "cyndaquil", "dachsbun", "darkrai", "darmanitan", "dartrix", "darumaka", "decidueye", "dedenne", "deerling", "deino", "delcatty", "delibird", "delphox", "deoxys", "dewgong", "dewott", "dewpider", "dhelmise", "dialga", "diancie", "diggersby", "diglett", "dipplin", "ditto", "dodrio", "doduo", "dolliv", "dondozo", "donphan", "dottler", "doublade", "dracovish", "dracozolt", "dragalge", "dragapult", "dragonair", "dragonite", "drakloak", "drampa", "drapion", "dratini", "drednaw", "dreepy", "drifblim", "drifloon", "drilbur", "drizzile", "drowzee", "druddigon", "dubwool", "ducklett", "dudunsparce", "dugtrio", "dunsparce", "duosion", "duraludon", "durant", "dusclops", "dusknoir", "duskull", "dustox", "dwebble", "eelektrik", "eelektross", "eevee", "eiscue", "ekans", "eldegoss", "electabuzz", "electivire", "electrike", "electrode", "elekid", "elgyem", "emboar", "emolga", "empoleon", "enamorus", "entei", "escavalier", "espathra", "espeon", "espurr", "eternatus", "excadrill", "exeggcute", "exeggutor", "exploud", "falinks", "farfetchd", "farigiraf", "fearow", "feebas", "fennekin", "feraligatr", "ferroseed", "ferrothorn", "fezandipiti", "fidough", "finizen", "finneon", "flaaffy", "flabebe", "flamigo", "flapple", "flareon", "fletchinder", "fletchling", "flittle", "floatzel", "floette", "floragato", "florges", "fluttermane", "flygon", "fomantis", "foongus", "forretress", "fraxure", "frigibax", "frillish", "froakie", "frogadier", "froslass", "frosmoth", "fuecoco", "furfrou", "furret", "gabite", "gallade", "galvantula", "garbodor", "garchomp", "gardevoir", "garganacl", "gastly", "gastrodon", "genesect", "gengar", "geodude", "gholdengo", "gible", "gigalith", "gimmighoul", "girafarig", "giratina", "glaceon", "glalie", "glameow", "glastrier", "gligar", "glimmet", "glimmora", "gliscor", "gloom", "gogoat", "golbat", "goldeen", "golduck", "golem", "golett", "golisopod", "golurk", "goodra", "goomy", "gorebyss", "gossifleur", "gothita", "gothitelle", "gothorita", "gougingfire", "gourgeist", "grafaiai", "granbull", "grapploct", "graveler", "greattusk", "greavard", "greedent", "greninja", "grimer", "grimmsnarl", "grookey", "grotle", "groudon", "grovyle", "growlithe", "grubbin", "grumpig", "gulpin", "gumshoos", "gurdurr", "guzzlord", "gyarados", "hakamoo", "happiny", "hariyama", "hatenna", "hatterene", "hattrem", "haunter", "hawlucha", "haxorus", "heatmor", "heatran", "heliolisk", "helioptile", "heracross", "herdier", "hippopotas", "hippowdon", "hitmonchan", "hitmonlee", "hitmontop", "honchkrow", "honedge", "hooh", "hoopa", "hoothoot", "hoppip", "horsea", "houndoom", "houndour", "houndstone", "huntail", "hydrapple", "hydreigon", "hypno", "igglybuff", "illumise", "impidimp", "incineroar", "indeedee", "infernape", "inkay", "inteleon", "ironboulder", "ironbundle", "ironcrown", "ironhands", "ironjugulis", "ironleaves", "ironmoth", "ironthorns", "irontreads", "ironvaliant", "ivysaur", "jangmoo", "jellicent", "jigglypuff", "jirachi", "jolteon", "joltik", "jumpluff", "jynx", "kabuto", "kabutops", "kadabra", "kakuna", "kangaskhan", "karrablast", "kartana", "kecleon", "keldeo", "kilowattrel", "kingambit", "kingdra", "kingler", "kirlia", "klang", "klawf", "kleavor", "klefki", "klink", "klinklang", "koffing", "komala", "kommoo", "koraidon", "krabby", "kricketot", "kricketune", "krokorok", "krookodile", "kubfu", "kyogre", "kyurem", "lairon", "lampent", "landorus", "lanturn", "lapras", "larvesta", "larvitar", "latias", "latios", "leafeon", "leavanny", "lechonk", "ledian", "ledyba", "lickilicky", "lickitung", "liepard", "lileep", "lilligant", "lillipup", "linoone", "litleo", "litten", "litwick", "lokix", "lombre", "lopunny", "lotad", "loudred", "lucario", "ludicolo", "lugia", "lumineon", "lunala", "lunatone", "lurantis", "luvdisc", "luxio", "luxray", "lycanroc", "mabosstiff", "machamp", "machoke", "machop", "magby", "magcargo", "magearna", "magikarp", "magmar", "magmortar", "magnemite", "magneton", "magnezone", "makuhita", "malamar", "mamoswine", "manaphy", "mandibuzz", "manectric", "mankey", "mantine", "mantyke", "maractus", "mareanie", "mareep", "marill", "marowak", "marshadow", "marshtomp", "maschiff", "masquerain", "maushold", "mawile", "medicham", "meditite", "meganium", "melmetal", "meloetta", "meltan", "meowscarada", "meowstic", "meowth", "mesprit", "metagross", "metang", "metapod", "mew", "mewtwo", "mienfoo", "mienshao", "mightyena", "milcery", "milotic", "miltank", "mimejr", "mimikyu", "minccino", "minior", "minun", "miraidon", "misdreavus", "mismagius", "moltres", "monferno", "morelull", "morgrem", "morpeko", "mothim", "mrmime", "mrrime", "mudbray", "mudkip", "mudsdale", "muk", "munchlax", "munkidori", "munna", "murkrow", "musharna", "nacli", "naclstack", "naganadel", "natu", "necrozma", "nickit", "nidoking", "nidoqueen", "nidoranf", "nidoranm", "nidorina", "nidorino", "nihilego", "nincada", "ninetales", "ninjask", "noctowl", "noibat", "noivern", "nosepass", "numel", "nuzleaf", "nymble", "obstagoon", "octillery", "oddish", "ogerpon", "oinkologne", "okidogi", "omanyte", "omastar", "onix", "oranguru", "orbeetle", "oricorio", "orthworm", "oshawott", "overqwil", "pachirisu", "palafin", "palkia", "palossand", "palpitoad", "pancham", "pangoro", "panpour", "pansage", "pansear", "paras", "parasect", "passimian", "patrat", "pawmi", "pawmo", "pawmot", "pawniard", "pecharunt", "pelipper", "perrserker", "persian", "petilil", "phanpy", "phantump", "pheromosa", "phione", "pichu", "pidgeot", "pidgeotto", "pidgey", "pidove", "pignite", "pikachu", "pikipek", "piloswine", "pincurchin", "pineco", "pinsir", "piplup", "plusle", "poipole", "politoed", "poliwag", "poliwhirl", "poliwrath", "poltchageist", "polteageist", "ponyta", "poochyena", "popplio", "porygon", "porygon2", "porygonz", "primarina", "primeape", "prinplup", "probopass", "psyduck", "pumpkaboo", "pupitar", "purrloin", "purugly", "pyroar", "pyukumuku", "quagsire", "quaquaval", "quaxly", "quaxwell", "quilava", "quilladin", "qwilfish", "raboot", "rabsca", "ragingbolt", "raichu", "raikou", "ralts", "rampardos", "rapidash", "raticate", "rattata", "rayquaza", "regice", "regidrago", "regieleki", "regigigas", "regirock", "registeel", "relicanth", "rellor", "remoraid", "reshiram", "reuniclus", "revavroom", "rhydon", "rhyhorn", "rhyperior", "ribombee", "rillaboom", "riolu", "roaringmoon", "rockruff", "roggenrola", "rolycoly", "rookidee", "roselia", "roserade", "rotom", "rowlet", "rufflet", "runerigus", "sableye", "salamence", "salandit", "salazzle", "samurott", "sandaconda", "sandile", "sandshrew", "sandslash", "sandygast", "sandyshocks", "sawk", "sawsbuck", "scatterbug", "sceptile", "scizor", "scolipede", "scorbunny", "scovillain", "scrafty", "scraggy", "screamtail", "scyther", "seadra", "seaking", "sealeo", "seedot", "seel", "seismitoad", "sentret", "serperior", "servine", "seviper", "sewaddle", "sharpedo", "shaymin", "shedinja", "shelgon", "shellder", "shellos", "shelmet", "shieldon", "shiftry", "shiinotic", "shinx", "shroodle", "shroomish", "shuckle", "shuppet", "sigilyph", "silcoon", "silicobra", "silvally", "simipour", "simisage", "simisear", "sinistcha", "sinistea", "sirfetchd", "sizzlipede", "skarmory", "skeledirge", "skiddo", "skiploom", "skitty", "skorupi", "skrelp", "skuntank", "skwovet", "slaking", "slakoth", "sliggoo", "slitherwing", "slowbro", "slowking", "slowpoke", "slugma", "slurpuff", "smeargle", "smoliv", "smoochum", "sneasel", "sneasler", "snivy", "snom", "snorlax", "snorunt", "snover", "snubbull", "sobble", "solgaleo", "solosis", "solrock", "spearow", "spectrier", "spewpa", "spheal", "spidops", "spinarak", "spinda", "spiritomb", "spoink", "sprigatito", "spritzee", "squawkabilly", "squirtle", "stakataka", "stantler", "staraptor", "staravia", "starly", "starmie", "staryu", "steelix", "steenee", "stonjourner", "stoutland", "stufful", "stunfisk", "stunky", "sudowoodo", "suicune", "sunflora", "sunkern", "surskit", "swablu", "swadloon", "swalot", "swampert", "swanna", "swellow", "swinub", "swirlix", "swoobat", "sylveon", "tadbulb", "taillow", "talonflame", "tandemaus", "tangela", "tangrowth", "tapubulu", "tapufini", "tapukoko", "tapulele", "tarountula", "tatsugiri", "tauros", "teddiursa", "tentacool", "tentacruel", "tepig", "terapagos", "terrakion", "thievul", "throh", "thundurus", "thwackey", "timburr", "tinglu", "tinkatink", "tinkaton", "tinkatuff", "tirtouga", "toedscool", "toedscruel", "togedemaru", "togekiss", "togepi", "togetic", "torchic", "torkoal", "tornadus", "torracat", "torterra", "totodile", "toucannon", "toxapex", "toxel", "toxicroak", "toxtricity", "tranquill", "trapinch", "treecko", "trevenant", "tropius", "trubbish", "trumbeak", "tsareena", "turtonator", "turtwig", "tympole", "tynamo", "typenull", "typhlosion", "tyranitar", "tyrantrum", "tyrogue", "tyrunt", "umbreon", "unfezant", "unown", "ursaluna", "ursaring", "urshifu", "uxie", "vanillish", "vanillite", "vanilluxe", "vaporeon", "varoom", "veluza", "venipede", "venomoth", "venonat", "venusaur", "vespiquen", "vibrava", "victini", "victreebel", "vigoroth", "vikavolt", "vileplume", "virizion", "vivillon", "volbeat", "volcanion", "volcarona", "voltorb", "vullaby", "vulpix", "wailmer", "wailord", "walkingwake", "walrein", "wartortle", "watchog", "wattrel", "weavile", "weedle", "weepinbell", "weezing", "whimsicott", "whirlipede", "whiscash", "whismur", "wigglytuff", "wiglett", "wimpod", "wingull", "wishiwashi", "wobbuffet", "wochien", "woobat", "wooloo", "wooper", "wormadam", "wugtrio", "wurmple", "wynaut", "wyrdeer", "xatu", "xerneas", "xurkitree", "yamask", "yamper", "yanma", "yanmega", "yungoos", "yveltal", "zacian", "zamazenta", "zangoose", "zapdos", "zarude", "zebstrika", "zekrom", "zeraora", "zigzagoon", "zoroark", "zorua", "zubat", "zweilous", "zygarde", "abomasnow", "abra", "absol", "accelgor", "aegislash", "aerodactyl", "aggron", "aipom", "alakazam", "alcremie", "alomomola", "altaria", "amaura", "ambipom", "amoonguss", "ampharos"],
3+
"features": ["terastal_active"]
4+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "flag",
3+
"keys": ["terastal_active"],
4+
"default": false,
5+
"isAspect": true
6+
}

0 commit comments

Comments
 (0)