Adds HealEachEndOfTurn effect, move common usings for scripts to separate file
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
This commit is contained in:
parent
44a169cba7
commit
2df5feab26
|
@ -0,0 +1,12 @@
|
||||||
|
pub use crate::script;
|
||||||
|
pub use alloc::boxed::Box;
|
||||||
|
pub use alloc::rc::Rc;
|
||||||
|
pub use atomic_float::AtomicF32;
|
||||||
|
pub use core::any::Any;
|
||||||
|
pub use core::sync::atomic::{AtomicBool, AtomicI8, AtomicU32, Ordering};
|
||||||
|
pub use pkmn_lib_interface::app_interface::list::ImmutableList;
|
||||||
|
pub use pkmn_lib_interface::app_interface::{
|
||||||
|
get_volatile_as, BattleSide, DamageSource, DynamicLibrary, EffectParameter, ExecutingMove,
|
||||||
|
Gender, MoveCategory, MoveData, Party, Pokemon, Statistic, StringKey, TurnChoice,
|
||||||
|
};
|
||||||
|
pub use pkmn_lib_interface::handling::{Script, ScriptCapabilities, ScriptOwner};
|
|
@ -15,6 +15,7 @@ use pkmn_lib_interface::set_load_script_fn;
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
|
||||||
pub mod registered_scripts;
|
pub mod registered_scripts;
|
||||||
|
pub(crate) mod common_usings;
|
||||||
pub mod moves;
|
pub mod moves;
|
||||||
pub mod pokemon;
|
pub mod pokemon;
|
||||||
pub mod util_scripts;
|
pub mod util_scripts;
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, Pokemon};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Acrobatics, "acrobatics");
|
script!(Acrobatics, "acrobatics");
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
use core::any::Any;
|
use crate::common_usings::*;
|
||||||
use core::mem::transmute;
|
use core::mem::transmute;
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, Pokemon, Statistic};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
pub struct Acupressure {}
|
pub struct Acupressure {}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
use core::any::Any;
|
use crate::common_usings::*;
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, Pokemon};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
pub struct AfterYou {}
|
pub struct AfterYou {}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use alloc::vec::Vec;
|
use alloc::vec::Vec;
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::app_interface::{MoveData, Party, Pokemon, StringKey, TurnChoice};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Assist, "assist");
|
script!(Assist, "assist");
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use alloc::boxed::Box;
|
|
||||||
use core::any::Any;
|
|
||||||
use core::sync::atomic::{AtomicBool, Ordering};
|
|
||||||
use pkmn_lib_interface::app_interface::{
|
|
||||||
get_volatile_as, BattleSide, DamageSource, ExecutingMove, Pokemon, TurnChoice,
|
|
||||||
};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Assurance, "assurance");
|
script!(Assurance, "assurance");
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
|
use crate::common_usings::*;
|
||||||
use crate::pokemon::infatuated::Infatuated;
|
use crate::pokemon::infatuated::Infatuated;
|
||||||
use crate::script;
|
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, Gender, Pokemon};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Attract, "attract");
|
script!(Attract, "attract");
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,7 @@
|
||||||
|
use crate::common_usings::*;
|
||||||
use crate::moves::light_screen::LightScreenEffect;
|
use crate::moves::light_screen::LightScreenEffect;
|
||||||
use crate::moves::reflect::ReflectEffect;
|
use crate::moves::reflect::ReflectEffect;
|
||||||
use crate::script;
|
|
||||||
use crate::weather::hail::Hail;
|
use crate::weather::hail::Hail;
|
||||||
use alloc::boxed::Box;
|
|
||||||
use core::any::Any;
|
|
||||||
use core::sync::atomic::{AtomicU32, Ordering};
|
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, MoveCategory, Pokemon};
|
|
||||||
use pkmn_lib_interface::handling::ScriptCapabilities::OnEndTurn;
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(AuroraVeil, "aurora_veil");
|
script!(AuroraVeil, "aurora_veil");
|
||||||
|
|
||||||
|
@ -60,7 +54,10 @@ impl Script for AuroraVeilEffect {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn get_capabilities(&self) -> &[ScriptCapabilities] {
|
fn get_capabilities(&self) -> &[ScriptCapabilities] {
|
||||||
&[ScriptCapabilities::ChangeIncomingDamage, OnEndTurn]
|
&[
|
||||||
|
ScriptCapabilities::ChangeIncomingDamage,
|
||||||
|
ScriptCapabilities::OnEndTurn,
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
fn change_incoming_damage(
|
fn change_incoming_damage(
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, Pokemon, Statistic};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Automize, "automize");
|
script!(Automize, "automize");
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use alloc::rc::Rc;
|
|
||||||
use core::any::Any;
|
|
||||||
use core::sync::atomic::{AtomicI8, Ordering};
|
|
||||||
use pkmn_lib_interface::app_interface::list::ImmutableList;
|
|
||||||
use pkmn_lib_interface::app_interface::{
|
|
||||||
DynamicLibrary, EffectParameter, ExecutingMove, Pokemon, Statistic,
|
|
||||||
};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(
|
script!(
|
||||||
ChangeAllTargetStats,
|
ChangeAllTargetStats,
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
use alloc::rc::Rc;
|
use crate::common_usings::*;
|
||||||
use core::any::Any;
|
|
||||||
use core::sync::atomic::{AtomicI8, Ordering};
|
|
||||||
use pkmn_lib_interface::app_interface::list::ImmutableList;
|
|
||||||
use pkmn_lib_interface::app_interface::{
|
|
||||||
DynamicLibrary, EffectParameter, ExecutingMove, Pokemon, Statistic,
|
|
||||||
};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
macro_rules! change_stat_effect {
|
macro_rules! change_stat_effect {
|
||||||
(
|
(
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, Pokemon};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(CurePartyStatus, "cure_party_status");
|
script!(CurePartyStatus, "cure_party_status");
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use alloc::rc::Rc;
|
|
||||||
use atomic_float::AtomicF32;
|
|
||||||
use core::any::Any;
|
|
||||||
use core::sync::atomic::Ordering;
|
|
||||||
use pkmn_lib_interface::app_interface::list::ImmutableList;
|
|
||||||
use pkmn_lib_interface::app_interface::{DynamicLibrary, EffectParameter, ExecutingMove, Pokemon};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Drain, "drain", heal_modifier: AtomicF32);
|
script!(Drain, "drain", heal_modifier: AtomicF32);
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use alloc::boxed::Box;
|
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, Pokemon};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Flinch, "flinch");
|
script!(Flinch, "flinch");
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,53 @@
|
||||||
|
use crate::common_usings::*;
|
||||||
|
use crate::pokemon::heal_each_end_of_turn::HealEachEndOfTurnEffect;
|
||||||
|
|
||||||
|
script!(
|
||||||
|
HealEachEndOfTurn,
|
||||||
|
"heal_each_end_of_turn",
|
||||||
|
heal_percent: AtomicF32
|
||||||
|
);
|
||||||
|
|
||||||
|
impl Script for HealEachEndOfTurn {
|
||||||
|
fn new() -> Self {
|
||||||
|
Self {
|
||||||
|
heal_percent: Default::default(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_name(&self) -> &'static str {
|
||||||
|
Self::get_const_name()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_capabilities(&self) -> &[ScriptCapabilities] {
|
||||||
|
&[
|
||||||
|
ScriptCapabilities::Initialize,
|
||||||
|
ScriptCapabilities::OnSecondaryEffect,
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
fn on_initialize(
|
||||||
|
&self,
|
||||||
|
_library: DynamicLibrary,
|
||||||
|
parameters: Option<ImmutableList<Rc<EffectParameter>>>,
|
||||||
|
) {
|
||||||
|
self.heal_percent.store(
|
||||||
|
parameters.unwrap().get(0).unwrap().as_float() / 100.0,
|
||||||
|
Ordering::SeqCst,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn on_secondary_effect(&self, _mv: ExecutingMove, target: Pokemon, _hit: u8) {
|
||||||
|
let script = target.add_volatile_by_name("heal_each_end_of_turn_effect");
|
||||||
|
let amount = self.heal_percent.load(Ordering::SeqCst);
|
||||||
|
script
|
||||||
|
.as_any()
|
||||||
|
.downcast_ref::<HealEachEndOfTurnEffect>()
|
||||||
|
.unwrap()
|
||||||
|
.heal_percent
|
||||||
|
.store(amount, Ordering::SeqCst);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn as_any(&self) -> &dyn Any {
|
||||||
|
self
|
||||||
|
}
|
||||||
|
}
|
|
@ -15,3 +15,4 @@ pub mod light_screen;
|
||||||
pub mod multi_hit_move;
|
pub mod multi_hit_move;
|
||||||
pub mod reflect;
|
pub mod reflect;
|
||||||
pub mod struggle;
|
pub mod struggle;
|
||||||
|
pub mod heal_each_end_of_turn;
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
use core::any::Any;
|
use crate::common_usings::*;
|
||||||
use pkmn_lib_interface::app_interface::TurnChoice;
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
pub struct MultiHitMove {}
|
pub struct MultiHitMove {}
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::app_interface::{DamageSource, ExecutingMove, Pokemon, TurnChoice};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Struggle, "struggle");
|
script!(Struggle, "struggle");
|
||||||
|
|
||||||
|
@ -23,6 +20,14 @@ impl Script for Struggle {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn change_number_of_hits(&self, _choice: TurnChoice, number_of_hits: &mut u8) {
|
||||||
|
*number_of_hits = 1
|
||||||
|
}
|
||||||
|
|
||||||
|
fn is_invulnerable(&self, _move: ExecutingMove, _target: Pokemon, invulnerable: &mut bool) {
|
||||||
|
*invulnerable = false;
|
||||||
|
}
|
||||||
|
|
||||||
fn change_effectiveness(
|
fn change_effectiveness(
|
||||||
&self,
|
&self,
|
||||||
_move: ExecutingMove,
|
_move: ExecutingMove,
|
||||||
|
@ -33,14 +38,6 @@ impl Script for Struggle {
|
||||||
*effectiveness = 1.0;
|
*effectiveness = 1.0;
|
||||||
}
|
}
|
||||||
|
|
||||||
fn is_invulnerable(&self, _move: ExecutingMove, _target: Pokemon, invulnerable: &mut bool) {
|
|
||||||
*invulnerable = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
fn change_number_of_hits(&self, _choice: TurnChoice, number_of_hits: &mut u8) {
|
|
||||||
*number_of_hits = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
fn on_secondary_effect(&self, mv: ExecutingMove, _target: Pokemon, _hit: u8) {
|
fn on_secondary_effect(&self, mv: ExecutingMove, _target: Pokemon, _hit: u8) {
|
||||||
let mut damage = mv.user().max_health() / 4;
|
let mut damage = mv.user().max_health() / 4;
|
||||||
if damage == 0 {
|
if damage == 0 {
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
use crate::common_usings::*;
|
||||||
|
|
||||||
|
script!(
|
||||||
|
HealEachEndOfTurnEffect,
|
||||||
|
"heal_each_end_of_turn_effect",
|
||||||
|
pub heal_percent: AtomicF32
|
||||||
|
);
|
||||||
|
|
||||||
|
impl Script for HealEachEndOfTurnEffect {
|
||||||
|
fn new() -> Self {
|
||||||
|
Self {
|
||||||
|
heal_percent: Default::default(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_name(&self) -> &'static str {
|
||||||
|
Self::get_const_name()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn get_capabilities(&self) -> &[ScriptCapabilities] {
|
||||||
|
&[ScriptCapabilities::OnEndTurn]
|
||||||
|
}
|
||||||
|
|
||||||
|
fn on_end_turn(&self) {
|
||||||
|
if let Some(ScriptOwner::Pokemon(pokemon)) = self.get_owner() {
|
||||||
|
let mut amount =
|
||||||
|
pokemon.max_health() as f32 * self.heal_percent.load(Ordering::Relaxed);
|
||||||
|
if pokemon.has_held_item("big_root") {
|
||||||
|
amount *= 1.3;
|
||||||
|
}
|
||||||
|
pokemon.heal(amount as u32, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn as_any(&self) -> &dyn Any {
|
||||||
|
self
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,7 +1,4 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::app_interface::ExecutingMove;
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
script!(Infatuated, "infatuated");
|
script!(Infatuated, "infatuated");
|
||||||
|
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
|
pub mod heal_each_end_of_turn;
|
||||||
pub mod infatuated;
|
pub mod infatuated;
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
use crate::moves::*;
|
use crate::moves::*;
|
||||||
|
use crate::pokemon;
|
||||||
use crate::pokemon::*;
|
use crate::pokemon::*;
|
||||||
use alloc::boxed::Box;
|
use alloc::boxed::Box;
|
||||||
use pkmn_lib_interface::app_interface::{get_hash, StringKey};
|
use pkmn_lib_interface::app_interface::{get_hash, StringKey};
|
||||||
|
@ -25,14 +26,13 @@ macro_rules! resolve_match {
|
||||||
pub fn get_script(category: ScriptCategory, name: &StringKey) -> Option<Box<dyn Script>> {
|
pub fn get_script(category: ScriptCategory, name: &StringKey) -> Option<Box<dyn Script>> {
|
||||||
match category {
|
match category {
|
||||||
ScriptCategory::Move => {
|
ScriptCategory::Move => {
|
||||||
resolve_match!(
|
resolve_match! {
|
||||||
name.hash(),
|
name.hash(),
|
||||||
acrobatics::Acrobatics,
|
acrobatics::Acrobatics,
|
||||||
acupressure::Acupressure,
|
acupressure::Acupressure,
|
||||||
after_you::AfterYou,
|
after_you::AfterYou,
|
||||||
assist::Assist,
|
assist::Assist,
|
||||||
assurance::Assurance,
|
assurance::Assurance,
|
||||||
multi_hit_move::MultiHitMove,
|
|
||||||
attract::Attract,
|
attract::Attract,
|
||||||
aurora_veil::AuroraVeil,
|
aurora_veil::AuroraVeil,
|
||||||
automize::Automize,
|
automize::Automize,
|
||||||
|
@ -45,16 +45,22 @@ pub fn get_script(category: ScriptCategory, name: &StringKey) -> Option<Box<dyn
|
||||||
cure_party_status::CurePartyStatus,
|
cure_party_status::CurePartyStatus,
|
||||||
drain::Drain,
|
drain::Drain,
|
||||||
flinch::Flinch,
|
flinch::Flinch,
|
||||||
|
crate::moves::heal_each_end_of_turn::HealEachEndOfTurn,
|
||||||
|
multi_hit_move::MultiHitMove,
|
||||||
struggle::Struggle,
|
struggle::Struggle,
|
||||||
);
|
};
|
||||||
}
|
}
|
||||||
ScriptCategory::Ability => {}
|
ScriptCategory::Ability => {}
|
||||||
ScriptCategory::Status => {}
|
ScriptCategory::Status => {}
|
||||||
ScriptCategory::Pokemon => {
|
ScriptCategory::Pokemon => {
|
||||||
resolve_match!(name.hash(), infatuated::Infatuated,)
|
resolve_match! {
|
||||||
|
name.hash(),
|
||||||
|
infatuated::Infatuated,
|
||||||
|
pokemon::heal_each_end_of_turn::HealEachEndOfTurnEffect,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ScriptCategory::Battle => {
|
ScriptCategory::Battle => {
|
||||||
resolve_match!(name.hash(), crate::util_scripts::ForceEffectTriggerScript,)
|
resolve_match! {name.hash(), crate::util_scripts::ForceEffectTriggerScript,}
|
||||||
}
|
}
|
||||||
ScriptCategory::Side => {}
|
ScriptCategory::Side => {}
|
||||||
ScriptCategory::ItemBattleTrigger => {}
|
ScriptCategory::ItemBattleTrigger => {}
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
use core::any::Any;
|
use crate::common_usings::*;
|
||||||
use pkmn_lib_interface::app_interface::{ExecutingMove, Pokemon};
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
|
|
||||||
pub struct ForceEffectTriggerScript {}
|
pub struct ForceEffectTriggerScript {}
|
||||||
|
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
pub mod copyable_moves;
|
pub mod copyable_moves;
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
macro_rules! script{
|
macro_rules! script {
|
||||||
(
|
(
|
||||||
$name: ident,
|
$name: ident,
|
||||||
$id: literal
|
$id: literal
|
||||||
$(
|
$(
|
||||||
,
|
,
|
||||||
$field_name:ident : $field_type:ty
|
$field_vis:vis $field_name:ident : $field_type:ty
|
||||||
)*
|
)*
|
||||||
) => {
|
) => {
|
||||||
pub struct $name {
|
pub struct $name {
|
||||||
$(
|
$(
|
||||||
$field_name: $field_type,
|
$field_vis $field_name: $field_type,
|
||||||
)*
|
)*
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
use crate::script;
|
use crate::common_usings::*;
|
||||||
use core::any::Any;
|
|
||||||
use pkmn_lib_interface::handling::{Script, ScriptCapabilities};
|
|
||||||
script!(Hail, "hail");
|
script!(Hail, "hail");
|
||||||
|
|
||||||
impl Script for Hail {
|
impl Script for Hail {
|
||||||
|
|
|
@ -14,6 +14,7 @@ pub use capabilities::*;
|
||||||
#[cfg(not(feature = "mock_data"))]
|
#[cfg(not(feature = "mock_data"))]
|
||||||
pub(crate) use cacheable::Cacheable;
|
pub(crate) use cacheable::Cacheable;
|
||||||
pub use script::Script;
|
pub use script::Script;
|
||||||
|
pub use script::ScriptOwner;
|
||||||
|
|
||||||
#[repr(u8)]
|
#[repr(u8)]
|
||||||
pub enum ScriptCategory {
|
pub enum ScriptCategory {
|
||||||
|
|
|
@ -410,6 +410,7 @@ impl ScriptOwner {
|
||||||
Some(ScriptOwner::Battle(Rc::new(r.unwrap())))
|
Some(ScriptOwner::Battle(Rc::new(r.unwrap())))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
3 => None,
|
||||||
_ => panic!("Unknown script owner kind: {}", kind),
|
_ => panic!("Unknown script owner kind: {}", kind),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue