Support for experience sharing.
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:
@@ -258,3 +258,19 @@ void AngelScriptScript::ModifyCriticalStage(CreatureLib::Battling::ExecutingAtta
|
||||
ctx->SetArgAddress(3, critStage);
|
||||
})
|
||||
}
|
||||
void AngelScriptScript::ModifyExperienceGain(CreatureLib::Battling::Creature* faintedMon,
|
||||
CreatureLib::Battling::Creature* winningMon, uint32_t* experienceGain) {
|
||||
CALL_HOOK(ModifyExperienceGain, {
|
||||
ctx->SetArgObject(0, (void*)faintedMon);
|
||||
ctx->SetArgObject(1, (void*)winningMon);
|
||||
ctx->SetArgAddress(2, experienceGain);
|
||||
})
|
||||
}
|
||||
void AngelScriptScript::DoesShareExperience(CreatureLib::Battling::Creature* faintedMon,
|
||||
CreatureLib::Battling::Creature* winningMon, bool* shareExperience) {
|
||||
CALL_HOOK(DoesShareExperience, {
|
||||
ctx->SetArgObject(0, (void*)faintedMon);
|
||||
ctx->SetArgObject(1, (void*)winningMon);
|
||||
ctx->SetArgAddress(2, shareExperience);
|
||||
})
|
||||
}
|
||||
|
||||
@@ -104,6 +104,11 @@ public:
|
||||
|
||||
void ModifyCriticalStage(CreatureLib::Battling::ExecutingAttack* attack, CreatureLib::Battling::Creature* target,
|
||||
uint8_t hit, uint8_t* critStage) override;
|
||||
|
||||
void ModifyExperienceGain(CreatureLib::Battling::Creature* faintedMon, CreatureLib::Battling::Creature* winningMon,
|
||||
uint32_t* experienceGain) override;
|
||||
void DoesShareExperience(CreatureLib::Battling::Creature* faintedMon, CreatureLib::Battling::Creature* winningMon,
|
||||
bool* shareExperience) override;
|
||||
};
|
||||
|
||||
#undef CALL_HOOK
|
||||
|
||||
@@ -131,6 +131,10 @@ public:
|
||||
SCRIPT_HOOK_FUNCTION(
|
||||
ModifyCriticalStage,
|
||||
"void ModifyCriticalStage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& critStage)");
|
||||
SCRIPT_HOOK_FUNCTION(ModifyExperienceGain,
|
||||
"void ModifyExperienceGain(Pokemon@ faintedMon, Pokemon@ winningMon, uint32& critStage)");
|
||||
SCRIPT_HOOK_FUNCTION(DoesShareExperience,
|
||||
"void DoesShareExperience(Pokemon@ faintedMon, Pokemon@ winningMon, bool& shareExperience)");
|
||||
};
|
||||
|
||||
#undef SCRIPT_HOOK_FUNCTION
|
||||
|
||||
@@ -39,6 +39,8 @@ shared abstract class PkmnScript {
|
||||
|
||||
// PkmnLib methods
|
||||
void ModifyCriticalStage(ExecutingMove@ attack, Pokemon@ target, uint8 hit, uint8& critStage){};
|
||||
void ModifyExperienceGain(Pokemon@ faintedMon, Pokemon@ winningMon, uint32& critStage){};
|
||||
void DoesShareExperience(Pokemon@ faintedMon, Pokemon@ winningMon, bool& shareExperience){};
|
||||
}
|
||||
)");
|
||||
assert(r >= 0);
|
||||
|
||||
Reference in New Issue
Block a user