Exemplo n.º 1
0
        public void LoadScrolls()
        {
            var scrollInstanceResult = DatabaseManager.Database.Select("SELECT `id`, `scrollEntry`, `level`, `timestamp`, `damage`, `destroyed`, `heal`," +
                "`idolKills`, `played`, `sacrificed`,`totalGames`, `unitKills`, `wins`, `tradable` FROM `scroll_instance` WHERE `accountId` = ?", Id);

            if (scrollInstanceResult != null)
            {
                for (int i = 0; i < scrollInstanceResult.Count; i++)
                {
                    ulong scrollId     = scrollInstanceResult.Read<ulong>(i, "id");
                    ushort scrollEntry = scrollInstanceResult.Read<ushort>(i, "scrollEntry");

                    // link scroll template with scroll instance
                    var scrollTemplate = AssetManager.GetScrollTemplate(scrollEntry);
                    if (scrollTemplate == null)
                    {
                        LogManager.Write("Player", "Scroll instance {0} has invalid scroll entry {1}! Skipping.",
                            scrollId, scrollEntry);
                        continue;
                    }

                    var scrollInstance = new ScrollInstance(scrollTemplate);
                    scrollInstance.Id         = scrollId;
                    scrollInstance.Timestamp  = scrollInstanceResult.Read<long>(i, "timestamp");
                    scrollInstance.Level      = scrollInstanceResult.Read<byte>(i, "level");

                    if (scrollInstance.Level > ScrollInstance.MaxLevel)
                    {
                        LogManager.Write("Player", "Scroll instance {0} has invalid scroll level {1}! Skipping.",
                            scrollInstance.Id, scrollInstance.Level);
                        continue;
                    }

                    scrollInstance.Tradable   = scrollInstanceResult.Read<bool>(i, "tradable");
                    scrollInstance.SaveNeeded = false;

                    // tracked scroll stats
                    scrollInstance.Stats.Damage     = scrollInstanceResult.Read<uint>(i, "damage");
                    scrollInstance.Stats.Destroyed  = scrollInstanceResult.Read<uint>(i, "destroyed");
                    scrollInstance.Stats.Heal       = scrollInstanceResult.Read<uint>(i, "heal");
                    scrollInstance.Stats.IdolKills  = scrollInstanceResult.Read<uint>(i, "idolKills");
                    scrollInstance.Stats.Played     = scrollInstanceResult.Read<uint>(i, "played");
                    scrollInstance.Stats.Sacrificed = scrollInstanceResult.Read<uint>(i, "sacrificed");
                    scrollInstance.Stats.TotalGames = scrollInstanceResult.Read<uint>(i, "totalGames");
                    scrollInstance.Stats.UnitKills  = scrollInstanceResult.Read<uint>(i, "unitKills");
                    scrollInstance.Stats.Wins       = scrollInstanceResult.Read<uint>(i, "wins");

                    Scrolls.Add(scrollInstance);
                }
            }
        }
Exemplo n.º 2
0
        public void CreateScroll(ScrollTemplate scrollTemplate)
        {
            var scrollInstance = new ScrollInstance(scrollTemplate);
            scrollInstance.Id         = AssetManager.GetNewScrollInstanceId();
            scrollInstance.Timestamp  = DateTime.UtcNow.Ticks;
            scrollInstance.SaveNeeded = true;

            Scrolls.Add(scrollInstance);
        }