shared abstract class ItemUseScript { void OnInitialize(const EffectParameter@[] &in){}; bool IsItemUsable(){}; bool IsPokemonUseItem(){}; bool IsUseValidForPokemon(Pokemon@){}; bool IsHoldable(){}; void OnUse(){}; void OnPokemonUse(Pokemon@){}; }