/// <summary> /// Adds or changes a progression level /// </summary> /// <param name="lvl">level to be added/changed</param> /// <param name="names">list of mobiles/items</param> /// <param name="amt">list of amounts for the mobiles/items</param> /// <param name="limit">time limit for this level</param> public void SetLevel(int lvl, List <string> names, List <int> amt, TimeSpan limit) { ProgressionLevel level = new ProgressionLevel(); level.Mobs = names; level.MobAmts = amt; level.TimeLimit = limit; if (m_Levels.Count >= lvl) { m_Levels[lvl - 1] = level; } else if ((m_Levels.Count + 1) == lvl) { m_Levels.Add(level); } else { for (int i = m_Levels.Count; i < lvl; i++) { if (i != (lvl - 1)) { m_Levels.Add(new ProgressionLevel()); } else { m_Levels.Add(level); } } } }
public List <Quest> GetQuestsOfLevel(ProgressionLevel level) { return(progressor.GetQuestsOfLevel(level)); }
/// <summary>Returns a list of quests that belong to the given progression level</summary> public List <Quest> GetQuestsOfLevel(ProgressionLevel level) { return(quests[(int)level]); }
/// <summary> /// Loads the object /// </summary> /// <param name="reader"></param> public override void Deserialize(GenericReader reader) { base.Deserialize(reader); m_Active = reader.ReadBool(); m_CurrLvl = reader.ReadInt(); m_HomeRange = reader.ReadInt(); m_LevelAmt = reader.ReadInt(); m_PlayerRange = reader.ReadInt(); m_RechargeDelay = reader.ReadDateTime(); m_RechargeTime = reader.ReadTimeSpan(); m_SpawnStarted = reader.ReadBool(); m_UseRitual = reader.ReadBool(); m_WalkingRange = reader.ReadInt(); m_WaveStarted = reader.ReadBool(); int size = reader.ReadInt(); m_CreaturesName = new List <string>(); for (int i = 0; i < size; ++i) { string typeName = reader.ReadString(); m_CreaturesName.Add(typeName); } int count = reader.ReadInt(); m_Creatures = new List <IEntity>(); for (int i = 0; i < count; ++i) { IEntity e = World.FindEntity(reader.ReadInt()); if (e != null) { m_Creatures.Add(e); } } // Hack to load the progression level info m_Levels = new List <ProgressionLevel>(); int amt = reader.ReadInt(); for (int i = 0; i < amt; i++) { ProgressionLevel lvl = new ProgressionLevel(); lvl.Load(reader); m_Levels.Add(lvl); } m_Timer = new SpawnerTimer(this); if (m_Active && !m_UseRitual) { m_Timer.Start(); } DateTime recupe = reader.ReadDateTime(); if (recupe > DateTime.Now) { m_RecupeTimer = new RecupeTimer(recupe.Subtract(DateTime.Now), this); } DateTime limit = reader.ReadDateTime(); if (limit > DateTime.Now) { m_TimeLimit = new LimitTimer(limit.Subtract(DateTime.Now), this); } }