#ifndef PKMNLIB_PKMNSCRIPT_HPP #define PKMNLIB_PKMNSCRIPT_HPP #include #include "Battle/Battle.hpp" #ifdef __clang__ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wunused-parameter" #elif defined __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wunused-parameter" #endif namespace PkmnLib::Battling { class PkmnScript : public CreatureLib::Battling::BattleScript { public: PkmnScript(const ArbUt::OptionalBorrowedPtr& owner) : CreatureLib::Battling::BattleScript(owner) {} virtual void PreventIncomingCritical(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target, uint8_t hit, bool* preventCrit){}; virtual void ModifyCriticalStage(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target, uint8_t hit, uint8_t* critStage){}; virtual void OverrideCriticalModifier(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target, uint8_t hit, float* critModifier){}; virtual void OverrideSTABModifier(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target, uint8_t hit, float* stabModifier){}; virtual void ModifyExperienceGain(CreatureLib::Battling::Creature* faintedMon, CreatureLib::Battling::Creature* winningMon, uint32_t* experienceGain){}; virtual void DoesShareExperience(CreatureLib::Battling::Creature* faintedMon, CreatureLib::Battling::Creature* winningMon, bool* shareExperience){}; virtual void BlockWeather(CreatureLib::Battling::Battle* battle, bool* blockWeather){}; virtual void ModifyOffensiveStatValue(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target, u8 hitIndex, float* modifier){}; virtual void ModifyDefensiveStatValue(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target, u8 hitIndex, float* modifier){}; }; } #ifdef __clang__ #pragma clang diagnostic pop #elif defined __GNUC__ #pragma GCC diagnostic pop #endif #endif // PKMNLIB_PKMNSCRIPT_HPP