private async void Page_Loaded(object sender, RoutedEventArgs e)
        {
            await ItemTemplates.Load();

            await World.Load();

            await EntityNPCTemplates.Load();

            await Messages.Load();

            await EntityRelationshipTable.Load();

            // DEBUG
            // AppendParagraph(EntityRelationshipTable.DisplayString().ToParagraph());
            // END DEBUG

            // world update timer
            WorldUpdateTimer      = new Timer(Update, null, 1000, 50);
            CheckAppendQueueTimer = new Timer(CheckAppendQueue, null, 0, 100);

            // DEBUG
            AddDebug();
            // END DEBUG

            // initialize player
            Game.Initialize();
            ParsedInput input   = null;
            Handler     handler = Game.Player.DoLook(input);

            MessageQueue.Enqueue(handler.Message);
            // Messages.Display(handler.MessageCode, handler.ParagraphToAppend);

            //AppendParagraph(Game.Player.DoLook(input).ParagraphToAppend);
            txtInput.Focus(FocusState.Programmatic);
        }
        public void AddDebug()
        {
            Random r = new Random(DateTime.Now.Millisecond);

            // DEBUG ITEMS
            for (int i = 0; i < Statics.DebugItemPasses; i++)
            {
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.GEM));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.DRINK));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.FOOD));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.JUNK));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.WEAPON));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.CONTAINER_BACK));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.CONTAINER_WAIST));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.ARMOR_CHEST));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.ARMOR_FEET));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.ARMOR_HEAD));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.ARMOR_NECK));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.ARMOR_FINGER));
                World.Regions[0].Subregions[0].Rooms[r.Next(9)].AddItem(ItemTemplates.CloneRandom(ITEM_TYPE.ARMOR_SHIELD));
            }

            // DEBUG NPCS
            for (int i = 0; i < Statics.DebugNPCCount; i++)
            {
                //EntityNPCBase npc = EntityNPCTemplates.NPCTemplates.RandomListItem().Clone();
                //npc.Coordinates.Set(region, subregion, room);
                //World.Regions[0].Subregions[0].Rooms[r.Next(9)].NPCs.Add(npc);
            }
        }