sovereignx/include/wild_encounter.h
psf fcf90ab52d
Fishing Enhancements (#4343)
* Implemented chain fishing

* Added configs

* I_FISHING_MINIGAME implemented

* Refactored Check For Bite

* CLeaned up version of metatile checks

* Removed debug script

* Added helper functinons

* Cleaned up CalculateFishingProximityOdds

* Added new constatnts for cardinal direction and axis

* Updated with constants

* Reordered functions

* Cleaned up some functions

* Moved constants

* Created UpdateChainFishingSpeciesAndStreak
When 3 sides are blocked, every cast will get a mon

* Created DoesFishingMinigameAllowCancel

* Removed fishing chain check

* Fixed bug where streak was not incremented correctly
Fixed bug where Land was not properly counted
Fixed bug where streak was always being read as maxed

* Updated variable and function names

* Updated variable and function names

* Moved UpdateChainFishingSpeciesAndStreak to happen before shiny rolls occur

* Removed debug statements

* Applied feedback from https://github.com/rh-hideout/pokeemerald-expansion/pull/4343\#discussion_r1551278416

* Fixed default item config and changed gChainFishingDexNavStreak and sLastFishingSpecies to only use EWRAM when features are enabled

* Update include/config/item.h

Include feedback from https://github.com/rh-hideout/pokeemerald-expansion/pull/4343#discussion_r1567145660

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>

* Changed Dexnav to DexNav per https://github.com/rh-hideout/pokeemerald-expansion/pull/4343\#discussion_r1567145660

---------

Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
2024-04-16 22:53:50 +02:00

49 lines
1.3 KiB
C

#ifndef GUARD_WILD_ENCOUNTER_H
#define GUARD_WILD_ENCOUNTER_H
#include "constants/wild_encounter.h"
struct WildPokemon
{
u8 minLevel;
u8 maxLevel;
u16 species;
};
struct WildPokemonInfo
{
u8 encounterRate;
const struct WildPokemon *wildPokemon;
};
struct WildPokemonHeader
{
u8 mapGroup;
u8 mapNum;
const struct WildPokemonInfo *landMonsInfo;
const struct WildPokemonInfo *waterMonsInfo;
const struct WildPokemonInfo *rockSmashMonsInfo;
const struct WildPokemonInfo *fishingMonsInfo;
};
extern const struct WildPokemonHeader gWildMonHeaders[];
extern bool8 gIsFishingEncounter;
extern bool8 gIsSurfingEncounter;
extern u8 gChainFishingDexNavStreak;
void DisableWildEncounters(bool8 disabled);
u8 PickWildMonNature(void);
bool8 StandardWildEncounter(u16 currMetaTileBehavior, u16 previousMetaTileBehavior);
bool8 SweetScentWildEncounter(void);
bool8 DoesCurrentMapHaveFishingMons(void);
void FishingWildEncounter(u8 rod);
u16 GetLocalWildMon(bool8 *isWaterMon);
u16 GetLocalWaterMon(void);
bool8 UpdateRepelCounter(void);
bool8 TryDoDoubleWildBattle(void);
bool8 StandardWildEncounter_Debug(void);
void ResetChainFishingDexNavStreak(void);
bool32 IsCurrentEncounterFishing(void);
u32 CalculateChainFishingShinyRolls(void);
#endif // GUARD_WILD_ENCOUNTER_H