Support for errors from scripts through separate script error handling.
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2023-04-21 10:35:46 +02:00
parent a6f4b1d5c5
commit eb68977290
9 changed files with 677 additions and 222 deletions

View File

@@ -535,11 +535,18 @@ impl Pokemon {
.library
.load_script(self.into(), ScriptCategory::Ability, ability.name())?;
if let Some(ability_script) = ability_script {
self.ability_script
let script_result = self
.ability_script
.set(ability_script)
.as_ref()
// Ensure the ability script gets initialized with the parameters for the ability.
.on_initialize(&self.library, ability.parameters().to_vec())
.on_initialize(&self.library, ability.parameters().to_vec());
match script_result {
Ok(_) => (),
Err(e) => {
crate::dynamic_data::script_handling::handle_script_error(&e);
}
}
} else {
self.ability_script.clear();
}