shared interface Battle { const BattleLibrary@ Library { get const; } bool CanUse(BaseTurnChoice@ choice); bool CanFlee { get const; } uint CurrentTurn { get const; } BattleRandom@ Random { get const; } ChoiceQueue@ TurnQueue { get const; } ref AddVolatile(const constString &in name); void RemoveVolatile(const constString &in name) const; void SetWeather(const constString &in name) const; void ClearWeather(const constString &in name) const; const constString& GetWeatherName() const; BattleSide@ GetBattleSide(uint8 index); BattleParty@ GetParty(uint8 index); BattleParty@ FindPartyForPokemon(Pokemon@ pokemon); }