type Battle { const BattleLibrary@ Library { get const; }; bool CanFlee { get const; }; uint CurrentTurn { get const; }; uint8 PokemonPerSide { get const; }; BattleRandom@ Random { get const; }; ChoiceQueue@ TurnQueue { get const; }; narray@ Sides { get const; }; narray@ Parties { get const; }; BattleHistory@ History { get const; }; bool CanUse(BaseTurnChoice@ choice); ref@ AddVolatile(const constString &in name); ref@ GetVolatile(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); bool HasVolatile(const constString &in name) const; }