This commit is contained in:
@@ -276,7 +276,7 @@ pub fn load_species(path: &String, library: &mut StaticData) {
|
||||
}
|
||||
|
||||
fn load_wasm(path: &String, library: &mut WebAssemblyScriptResolver) {
|
||||
let file = File::open(path.to_string() + "gen7_scripts_rs.wasm").unwrap();
|
||||
let file = File::open(path.to_string() + "gen7_scripts.wasm").unwrap();
|
||||
let mut reader = BufReader::new(file);
|
||||
let mut buffer = Vec::new();
|
||||
reader.read_to_end(&mut buffer).unwrap();
|
||||
@@ -392,7 +392,7 @@ fn parse_effect_parameter(value: &Value) -> EffectParameter {
|
||||
EffectParameter::Int(n.as_i64().unwrap())
|
||||
}
|
||||
}
|
||||
Value::String(s) => EffectParameter::String(s.clone()),
|
||||
Value::String(s) => EffectParameter::String(StringKey::new(s.as_str())),
|
||||
Value::Array(_) => {
|
||||
panic!("Unexpected type")
|
||||
}
|
||||
|
||||
BIN
tests/data/gen7_scripts.wasm
Executable file
BIN
tests/data/gen7_scripts.wasm
Executable file
Binary file not shown.
Binary file not shown.
@@ -5,10 +5,12 @@
|
||||
use std::fs::File;
|
||||
use std::io::Read;
|
||||
use std::path::Path;
|
||||
use std::sync::Arc;
|
||||
|
||||
use conquer_once::OnceCell;
|
||||
|
||||
use pkmn_lib::dynamic_data::{DynamicLibrary, ScriptCategory};
|
||||
use pkmn_lib::dynamic_data::{DynamicLibrary, MoveChoice, PokemonBuilder, ScriptCategory, TurnChoice};
|
||||
use pkmn_lib::static_data::EffectParameter;
|
||||
|
||||
use crate::common::{library_loader, TestCase};
|
||||
|
||||
@@ -51,10 +53,47 @@ fn integration_tests(input: &Path) {
|
||||
#[test]
|
||||
#[cfg_attr(miri, ignore)]
|
||||
fn validate_script() {
|
||||
let lib = library_loader::load_library();
|
||||
let lib = get_library();
|
||||
let script = lib
|
||||
.load_script(0 as *const u8, ScriptCategory::Move, &"test".into())
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
script.on_initialize(&lib, &[]);
|
||||
let parameters = [EffectParameter::String("foo".into())];
|
||||
script.on_initialize(&lib, ¶meters);
|
||||
script.on_initialize(&lib, ¶meters);
|
||||
script.on_initialize(&lib, ¶meters);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg_attr(miri, ignore)]
|
||||
fn validate_script_2() {
|
||||
let lib = get_library();
|
||||
let script = lib
|
||||
.load_script(0 as *const u8, ScriptCategory::Move, &"test".into())
|
||||
.unwrap()
|
||||
.unwrap();
|
||||
let user = Arc::new(
|
||||
PokemonBuilder::new(&lib, "charizard".into(), 100)
|
||||
.learn_move("fire_blast".into())
|
||||
.build(),
|
||||
);
|
||||
script.on_before_turn(&TurnChoice::Move(MoveChoice::new(
|
||||
user.clone(),
|
||||
user.learned_moves().read().get(0).unwrap().as_ref().unwrap().clone(),
|
||||
0,
|
||||
0,
|
||||
)));
|
||||
assert_eq!(user.current_health(), user.max_health() - 50);
|
||||
|
||||
let mut speed: u32 = 100;
|
||||
script.change_speed(
|
||||
&TurnChoice::Move(MoveChoice::new(
|
||||
user.clone(),
|
||||
user.learned_moves().read().get(0).unwrap().as_ref().unwrap().clone(),
|
||||
0,
|
||||
0,
|
||||
)),
|
||||
&mut speed,
|
||||
);
|
||||
assert_eq!(speed, 684);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user