예제 #1
0
        /// <summary>Loads almost everything from the database.</summary>
        internal static void LoadAll()
        {
            AllClasses   = JSONInteraction.LoadClasses().OrderBy(o => o.Name).ToList();
            AllHeadArmor = JSONInteraction.LoadArmor <Item>("head").OrderBy(o => o.Value).ToList();
            AllBodyArmor = JSONInteraction.LoadArmor <Item>("body").OrderBy(o => o.Value).ToList();
            AllHandArmor = JSONInteraction.LoadArmor <Item>("hand").OrderBy(o => o.Value).ToList();
            AllLegArmor  = JSONInteraction.LoadArmor <Item>("leg").OrderBy(o => o.Value).ToList();
            AllFeetArmor = JSONInteraction.LoadArmor <Item>("feet").OrderBy(o => o.Value).ToList();
            AllRings     = JSONInteraction.LoadRings().OrderBy(o => o.Value).ToList();
            AllWeapons   = JSONInteraction.LoadWeapons().OrderBy(o => o.Type).ThenBy(o => o.Value).ToList();
            AllDrinks    = JSONInteraction.LoadDrinks().OrderBy(o => o.Value).ToList();
            AllFood      = JSONInteraction.LoadFood().OrderBy(o => o.Value).ToList();
            AllPotions   = JSONInteraction.LoadPotions().OrderBy(o => o.Cures).ThenBy(o => o.RestoreHealth).ThenBy(o => o.RestoreMagic).ToList();
            AllSpells    = JSONInteraction.LoadSpells().OrderBy(o => o.Value).ToList();
            AllEnemies   = JSONInteraction.LoadEnemies().OrderBy(o => o.Name).ToList();

            //foreach (Enemy enemy in AllEnemies)
            //{
            //    if (enemy.Equipment.Weapon != new Item())
            //        enemy.Equipment.Weapon = AllWeapons.Find(itm => itm.Name == enemy.Equipment.Weapon.Name);
            //    if (enemy.Equipment.Head != new Item())
            //        enemy.Equipment.Head = AllHeadArmor.Find(itm => itm.Name == enemy.Equipment.Head.Name);
            //    if (enemy.Equipment.Body != new Item())
            //        enemy.Equipment.Body = AllBodyArmor.Find(itm => itm.Name == enemy.Equipment.Body.Name);
            //    if (enemy.Equipment.Hands != new Item())
            //        enemy.Equipment.Hands = AllHandArmor.Find(itm => itm.Name == enemy.Equipment.Hands.Name);
            //    if (enemy.Equipment.Legs != new Item())
            //        enemy.Equipment.Legs = AllLegArmor.Find(itm => itm.Name == enemy.Equipment.Legs.Name);
            //    if (enemy.Equipment.Feet != new Item())
            //        enemy.Equipment.Feet = AllFeetArmor.Find(itm => itm.Name == enemy.Equipment.Feet.Name);
            //    if (enemy.Equipment.LeftRing != new Item())
            //        enemy.Equipment.LeftRing = AllRings.Find(itm => itm.Name == enemy.Equipment.LeftRing.Name);
            //    if (enemy.Equipment.RightRing != new Item())
            //        enemy.Equipment.RightRing = AllRings.Find(itm => itm.Name == enemy.Equipment.RightRing.Name);
            //}

            //JSONInteraction.WriteAll(AllClasses, AllHeadArmor, AllBodyArmor, AllHandArmor, AllLegArmor, AllFeetArmor, AllRings, AllWeapons, AllDrinks, AllFood, AllPotions, AllSpells, AllEnemies);

            // TODO Save scene history on application exit and load back when the same player logs in.

            AllItems.AddRanges(AllHeadArmor, AllBodyArmor, AllHandArmor, AllLegArmor, AllFeetArmor, AllRings, AllFood, AllDrinks, AllPotions, AllWeapons);

            DefaultWeapon = AllWeapons.Find(weapon => weapon.Name == "Fists");
            DefaultHead   = AllHeadArmor.Find(armor => armor.Name == "Cloth Helmet");
            DefaultBody   = AllBodyArmor.Find(armor => armor.Name == "Cloth Shirt");
            DefaultHands  = AllHandArmor.Find(armor => armor.Name == "Cloth Gloves");
            DefaultLegs   = AllLegArmor.Find(armor => armor.Name == "Cloth Pants");
            DefaultFeet   = AllFeetArmor.Find(armor => armor.Name == "Cloth Shoes");

            AllHeroes = JSONInteraction.LoadHeroes().OrderBy(o => o.Name).ToList();
        }