use crate::dynamic_data::{ExecutingMove, HitData, LearnedMove, Pokemon}; use crate::script_implementations::wasm::export_registry::register; use crate::script_implementations::wasm::extern_ref::ExternRef; use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; use crate::static_data::MoveData; use wasmer::FunctionEnvMut; register! { fn executing_move_get_user( env: FunctionEnvMut, executing_move: ExternRef, ) -> ExternRef { ExternRef::func_new(&env, executing_move.value_func(&env).unwrap().user().as_ref()) } fn executing_move_get_use_move( env: FunctionEnvMut, executing_move: ExternRef, ) -> ExternRef { ExternRef::func_new(&env, executing_move.value_func(&env).unwrap().use_move().as_ref()) } fn executing_move_get_chosen_move( env: FunctionEnvMut, executing_move: ExternRef, ) -> ExternRef { ExternRef::func_new(&env, executing_move.value_func(&env).unwrap().chosen_move().as_ref()) } fn executing_move_get_number_of_hits( env: FunctionEnvMut, executing_move: ExternRef, ) -> u8 { executing_move.value_func(&env).unwrap().number_of_hits() } fn executing_move_get_hit_data( env: FunctionEnvMut, executing_move: ExternRef, target: ExternRef, hit: u8 ) -> ExternRef { ExternRef::func_new(&env, executing_move.value_func(&env).unwrap().get_hit_data(target.value_func(&env).unwrap(), hit).unwrap()) } }