Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class PokedexSeen {
- /* onGameInitialization
- *
- * This method will register this object/mod to the event bus so it can have listeners
- */
- @Listener
- public void onGameInitialization(GameInitializationEvent event) {
- Pixelmon.EVENT_BUS.register(this);
- }
- /* updateDex method
- *
- * This method takes in a BattleControllerBase
- * which contains information about participants in order
- * to implement the seen functionality for pokedex.
- *
- * This works for both wild and trainer battle. This supports single battles,
- * one player double battles, and two player double battles.
- *
- * @playersDex Stores pokedex object of each player participant
- * @opponents Store pixelmon of each opponents
- */
- private void updateDex(BattleControllerBase event) {
- List<Pokedex> playersDex = new LinkedList<Pokedex>();
- List<PixelmonWrapper> opponents = new LinkedList<PixelmonWrapper>();
- event.participants.forEach((participant) -> {
- if (participant instanceof PlayerParticipant) {
- playersDex.add(((PlayerParticipant)participant).party.pokedex);
- }
- else {
- opponents.addAll(participant.controlledPokemon);
- }
- });
- for (Pokedex playerDex : playersDex) {
- for (PixelmonWrapper opponent : opponents) {
- int pokemonID = opponent.pokemon.getSpecies().getNationalPokedexInteger();
- if (playerDex.isUnknown(pokemonID)) {
- Pixelmon.EVENT_BUS.post(new PokedexEvent(playerDex.uuid, opponent.pokemon, EnumPokedexRegisterStatus.seen, PokedexEvent.POKEDEX_KEY));
- playerDex.set(pokemonID, EnumPokedexRegisterStatus.seen);
- playerDex.update();
- }
- }
- }
- }
- /* onTurnEnd method
- *
- * This method will listen to when a turn ends in battle.
- */
- @SubscribeEvent
- public void onTurnEnd(TurnEndEvent event) {
- this.updateDex(event.bcb);
- }
- /* onBattleEnd method
- *
- * This method will listen to when a battle ends (via forfeit, run, etc.)
- */
- @SubscribeEvent
- public void onBattleEnd(BattleEndEvent event) {
- this.updateDex(event.bc);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement