manueldidonna / pokemon-save-editor-android

A work-in-progress pokémon save editor for Android
GNU General Public License v3.0
0 stars 0 forks source link

Edit Trainer Info #4

Closed manueldidonna closed 4 years ago

manueldidonna commented 4 years ago
data class Trainer(
    val name: String,
    val visibleId: Int,
    val secretId: Int
)

interface SaveData {
    var trainer: Trainer
}

interface Pokemon {
    val trainer: Trainer
}

interface MutablePokemon {
    interface Mutator {
        fun trainer(value: Trainer): Mutator
    }
}

fun example(pokemon: MutablePokemon, saveData: SaveData) {
    val trainer = saveData.trainer
    // replace only the trainer name
    pokemon.mutator.trainer(pokemon.trainer.copy(name = trainer.name))
}