Make SecondaryEffect a trait
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2022-11-27 18:22:57 +01:00
parent e04f61d9e6
commit 1c0b953d9a
6 changed files with 95 additions and 40 deletions

View File

@@ -18,7 +18,7 @@ use pkmn_lib::script_implementations::wasm::script_resolver::WebAssemblyScriptRe
use pkmn_lib::static_data::{
AbilityImpl, AbilityLibrary, BattleItemCategory, DataLibrary, EffectParameter, Form, GrowthRateLibrary, ItemImpl,
ItemLibrary, LearnableMoves, LibrarySettings, LookupGrowthRate, MoveData, MoveLibrary, NatureImpl, NatureLibrary,
SecondaryEffect, Species, StaticData, StaticStatisticSet, Statistic, TypeLibrary,
SecondaryEffect, SecondaryEffectImpl, Species, StaticData, StaticStatisticSet, Statistic, TypeLibrary,
};
use pkmn_lib::StringKey;
@@ -182,7 +182,7 @@ pub fn load_moves(path: &String, lib: &mut StaticData) {
let pp = move_data.get("pp").unwrap().as_i64().unwrap() as u8;
let target = serde_json::from_value(move_data.get("target").unwrap().clone()).unwrap();
let priority = move_data.get("priority").unwrap().as_i64().unwrap() as i8;
let secondary_effect = if let Some(v) = move_data.get("effect") {
let secondary_effect: Option<Box<dyn SecondaryEffect>> = if let Some(v) = move_data.get("effect") {
let mut chance = -1.0;
if let Some(chance_value) = v.get("chance") {
chance = chance_value.as_f64().unwrap() as f32;
@@ -195,11 +195,11 @@ pub fn load_moves(path: &String, lib: &mut StaticData) {
}
}
Some(SecondaryEffect::new(
Some(Box::new(SecondaryEffectImpl::new(
chance,
v.get("name").unwrap().as_str().unwrap().into(),
parameters,
))
)))
} else {
None
};