protected override bool OnLinkToScriptAssembly(Assembly ass)
        {
            if (ass == null)
            {
                return(false);
            }

            if (string.IsNullOrWhiteSpace(ScriptPath))
            {
                return(false);
            }

            var linker = new BooModuleLinker(ass, ScriptPath);

            OnCheckReplace  = linker.TryCreateDelegate <NpcCheckReplaceHandler>("OnCheckReplace");
            OnCheckSpawn    = linker.TryCreateDelegate <NpcCheckSpawnHandler>("OnCheckSpawn");
            OnSpawn         = linker.TryCreateDelegate <NpcSpawnHandler>("OnSpawn");
            OnCollision     = linker.TryCreateDelegate <NpcCollisionHandler>("OnCollision");
            OnTileCollision = linker.TryCreateDelegate <NpcTileCollisionHandler>("OnTileCollision");
            OnTransformed   = linker.TryCreateDelegate <NpcTransformedHandler>("OnTransformed");
            OnKilled        = linker.TryCreateDelegate <NpcKilledHandler>("OnKilled");
            OnStrike        = linker.TryCreateDelegate <NpcStrikeHandler>("OnStrike");
            OnAiUpdate      = linker.TryCreateDelegate <NpcAiUpdateHandler>("OnAiUpdate");

            return(true);
        }
 /// <summary>
 ///     Disposes the definition.
 /// </summary>
 public void Dispose()
 {
     OnCheckReplace  = null;
     OnCheckSpawn    = null;
     OnSpawn         = null;
     OnKilled        = null;
     OnTransformed   = null;
     OnCollision     = null;
     OnTileCollision = null;
     OnStrike        = null;
     OnAiUpdate      = null;
 }