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); } } }
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); }