Interface BreedingLogicFactory

All Known Implementing Classes:
PixelmonBreedingLogic

public interface BreedingLogicFactory
Interface for switching out the breeding logic implementations in the BreedingLogicProxy
Since:
24/06/2022
  • Method Details

    • makeEgg

      Optional<Pokemon> makeEgg(Pokemon parentOne, Pokemon parentTwo)
      Attempts to make an egg using the two given Pokemon
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      The potential egg
    • calculateForm

      Stats calculateForm(Pokemon parentOne, Pokemon parentTwo, Species child)
      Calculates the form of the child using the two parents
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      child - The child species
      Returns:
      The relevant form
    • calculatePalette

      String calculatePalette(Pokemon parentOne, Pokemon parentTwo, Species child)
      Calculates the palette of the child using the two parents
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      child - The child species
      Returns:
      The relevant palette
    • canBreed

      boolean canBreed(Pokemon parentOne, Pokemon parentTwo)
      Checks if the two Pokemon can breed
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      true if they can breed
    • makeRandomEgg

      Pokemon makeRandomEgg(Pokemon parentOne, Pokemon parentTwo)
      Makes a random Pokemon egg using the two parents for stats such as IVs and abilities
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      The new Pokemon egg
    • calculateSpecies

      Species calculateSpecies(Pokemon parentOne, Pokemon parentTwo)
      Calculates the species created by the two parent Pokemons
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      The created species
    • getIVsForEgg

      IVStore getIVsForEgg(Pokemon parentOne, Pokemon parentTwo)
      Calculates the new IVs for the Pokemon from the two parents
      Parameters:
      parentOne - First parent
      parentTwo - Second parent
      Returns:
      The new IVs
    • getNatureForEgg

      Nature getNatureForEgg(Pokemon parentOne, Pokemon parentTwo)
      Calculates the new Nature for the Pokemon from the two parents
      Parameters:
      parentOne - First parent
      parentTwo - Second parent
      Returns:
      The new Nature
    • getPokeBall

      PokeBall getPokeBall(Pokemon parentOne, Pokemon parentTwo)
      Calculates the new PokeBall for the Pokemon from the two parents
      Parameters:
      parentOne - First parent
      parentTwo - Second parent
      Returns:
      The new PokeBall
    • getEggGrowth

      EnumGrowth getEggGrowth(Pokemon parentOne, Pokemon parentTwo)
      Calculates the new Growth for the Pokemon from the two parents
      Parameters:
      parentOne - First parent
      parentTwo - Second parent
      Returns:
      The new Growth
    • getEggAbility

      Ability getEggAbility(Stats form, Pokemon parentOne, Pokemon parentTwo)
      Calculates the new Ability for the Pokemon from the two parents
      Parameters:
      parentOne - First parent
      parentTwo - Second parent
      Returns:
      The new Ability
    • getEggAbilitySlot

      com.mojang.datafixers.util.Pair<Integer,Boolean> getEggAbilitySlot(Stats form, Pokemon parentOne, Pokemon parentTwo)
      Calculates the new Ability slot for the Pokemon from the two parents
      Parameters:
      parentOne - First parent
      parentTwo - Second parent
      Returns:
      The new slot and whether it inherits the hidden ability
    • shouldEggBeShiny

      boolean shouldEggBeShiny(Pokemon parentOne, Pokemon parentTwo)
      Check used to determine if the child should be shiny
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      True if shiny
    • getEggMoveset

      Moveset getEggMoveset(Stats egg, Pokemon parentOne, Pokemon parentTwo)
      Calculates the egg move set
      Parameters:
      egg - The egg's form
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      The moveset of the child
    • getPokemonLevelupMoves

      List<ImmutableAttack> getPokemonLevelupMoves(Stats egg, Pokemon parentOne, Pokemon parentTwo)
      Gets the level up moves for the egg
      Parameters:
      egg - The form of the egg
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      The level up moves
    • getFirstFourMoves

      Moveset getFirstFourMoves(List<ImmutableAttack> masterAttackList)
      Gets the first four moves from the attack list given
      Parameters:
      masterAttackList - The attack list
      Returns:
      The move set equivalent of the attack list
    • getEggMoves

      List<ImmutableAttack> getEggMoves(Stats egg, Pokemon parent, Set<ImmutableAttack> allEggMoves)
      Gets the egg moves
      Parameters:
      egg - The egg's form
      parent - The parent
      allEggMoves - The child's egg moves
      Returns:
      The egg moves
    • canLearnVoltTackle

      boolean canLearnVoltTackle(Species species, Pokemon parentOne, Pokemon parentTwo)
      If the pokemon can learn volt tackle move
      Parameters:
      species - The egg species
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      True if it can learn volt tackle
    • getFathersTMHMTutorMoves

      List<ImmutableAttack> getFathersTMHMTutorMoves(Stats egg, Pokemon father)
      Gets the father's TM, HM and Tutor moves
      Parameters:
      egg - The egg
      father - The father
      Returns:
      The TM, HM and Tutor moves
    • findFather

      Pokemon findFather(Pokemon parentOne, Pokemon parentTwo)
      Obtains the father of the two parents
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      The father
    • findMother

      Pokemon findMother(Pokemon parentOne, Pokemon parentTwo)
      Obtains the mother of the two parents
      Parameters:
      parentOne - The first parent
      parentTwo - The second parent
      Returns:
      The mother
    • checkIncense

      boolean checkIncense(net.minecraft.world.item.Item itemTypeParent, net.minecraft.world.item.Item itemTypeOther, Pokemon parentForEggLine, net.minecraft.world.item.Item neededItem, RegistryValue<Species> baby, RegistryValue<Species>... parents)
      Checks the incense
      Parameters:
      itemTypeParent - The parent's item
      itemTypeOther - The other item
      parentForEggLine - The egg line item
      neededItem - The required item
      baby - The baby type
      parents - The parents types
      Returns:
      If the incense is used