public bool LoadArea(CLRScriptBase script)
        {
            if (TemplateAreaId == 0)
            {
                // No template? Can't instance anything. Report failure.
                return(false);
            }
            if (AreaId != 0)
            {
                // Got an Id? Great! Job's already done.
                return(true);
            }

            // Guess we need an area. Check the cache first.
            if (DungeonStore.CachedAreas.ContainsKey(TemplateAreaId))
            {
                if (DungeonStore.CachedAreas[TemplateAreaId].Count > 0)
                {
                    AreaId = DungeonStore.CachedAreas[TemplateAreaId][0];
                    DungeonStore.CachedAreas[TemplateAreaId].Remove(DungeonStore.CachedAreas[TemplateAreaId][0]);
                    script.SetLocalString(AreaId, "DUNGEON_NAME", DungeonName);
                    PopulateArea(script);
                    return(true);
                }
            }

            // No dice? OK, time to make an instance
            AreaId = script.CreateInstancedAreaFromSource(TemplateAreaId);
            if (script.GetIsObjectValid(AreaId) == CLRScriptBase.TRUE)
            {
                script.SetLocalString(AreaId, "DUNGEON_NAME", DungeonName);
                PopulateArea(script);
                return(true);
            }

            return(false);
        }