Adds a bunch of script hooks to the damage library calculations
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -411,3 +411,24 @@ void AngelScriptScript::OnFaintingOpponent(const CreatureLib::Battling::Executin
|
||||
ctx->SetArgByte(2, hitNumber);
|
||||
})
|
||||
}
|
||||
void AngelScriptScript::ModifyOffensiveStatValue(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
CreatureLib::Battling::Creature* target, u8 hitIndex,
|
||||
float* modifier) {
|
||||
CALL_HOOK(ModifyOffensiveStatValue, {
|
||||
ctx->SetArgObject(0, (void*)attack);
|
||||
ctx->SetArgObject(1, (void*)target);
|
||||
ctx->SetArgByte(2, hitIndex);
|
||||
ctx->SetArgAddress(3, modifier);
|
||||
})
|
||||
|
||||
}
|
||||
void AngelScriptScript::ModifyDefensiveStatValue(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
CreatureLib::Battling::Creature* target, u8 hitIndex,
|
||||
float* modifier) {
|
||||
CALL_HOOK(ModifyDefensiveStatValue, {
|
||||
ctx->SetArgObject(0, (void*)attack);
|
||||
ctx->SetArgObject(1, (void*)target);
|
||||
ctx->SetArgByte(2, hitIndex);
|
||||
ctx->SetArgAddress(3, modifier);
|
||||
})
|
||||
}
|
||||
|
||||
@@ -152,6 +152,11 @@ public:
|
||||
bool* shareExperience) override;
|
||||
|
||||
void BlockWeather(CreatureLib::Battling::Battle* battle, bool* blockWeather) override;
|
||||
|
||||
void ModifyOffensiveStatValue(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
CreatureLib::Battling::Creature* target, u8 hitIndex, float* modifier) override;
|
||||
void ModifyDefensiveStatValue(CreatureLib::Battling::ExecutingAttack* attack,
|
||||
CreatureLib::Battling::Creature* target, u8 hitIndex, float* modifier) override;
|
||||
};
|
||||
|
||||
#undef CALL_HOOK
|
||||
|
||||
@@ -182,6 +182,13 @@ public:
|
||||
SCRIPT_HOOK_FUNCTION(OnFaint, "void OnFaint(Pokemon@ pokemon, DamageSource damageSource)");
|
||||
SCRIPT_HOOK_FUNCTION(BlockWeather, "void BlockWeather(Battle@ battle, bool& result)");
|
||||
SCRIPT_HOOK_FUNCTION(OnSwitchIn, "void OnSwitchIn(Pokemon@ pokemon)");
|
||||
|
||||
SCRIPT_HOOK_FUNCTION(
|
||||
ModifyOffensiveStatValue,
|
||||
"void ModifyOffensiveStatValue(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& offensiveStatValue)");
|
||||
SCRIPT_HOOK_FUNCTION(
|
||||
ModifyDefensiveStatValue,
|
||||
"void ModifyDefensiveStatValue(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& defensiveStatValue)");
|
||||
};
|
||||
|
||||
#undef SCRIPT_HOOK_FUNCTION
|
||||
|
||||
@@ -69,6 +69,9 @@ shared abstract class PkmnScript {
|
||||
void DoesShareExperience(Pokemon@ faintedMon, Pokemon@ winningMon, bool& shareExperience){};
|
||||
void BlockWeather(Battle@ battle, bool& blockWeather){};
|
||||
void OnSwitchIn(Pokemon@ pokemon){};
|
||||
|
||||
void ModifyOffensiveStatValue(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& offensiveStatValue){};
|
||||
void ModifyDefensiveStatValue(ExecutingMove@ attack, Pokemon@ target, uint8 hit, float& defensiveStatValue){};
|
||||
}
|
||||
)");
|
||||
Ensure(r >= 0);
|
||||
|
||||
Reference in New Issue
Block a user