interface PokemonTemplate {
val name: String
val description: String
val speciesId: Int
fun apply(pokemon: MutablePokemon)
}
class MewTemplate(trainer: Trainer) : PokemonTemplate {
override val name = "Empty Pokemon"
override val description = "An empty template for R/B/Y games"
override val speciesId = 151
override fun apply(pokemon: MutablePokemon) {
pokemon.mutator
.speciesId(151)
.nickname("TEMPLATE")
.trainer(trainer) // etc...
}
}