Пример #1
0
        /// <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);
                    }
                }
            }
        }
Пример #2
0
 public List <Quest> GetQuestsOfLevel(ProgressionLevel level)
 {
     return(progressor.GetQuestsOfLevel(level));
 }
Пример #3
0
 /// <summary>Returns a list of quests that belong to the given progression level</summary>
 public List <Quest> GetQuestsOfLevel(ProgressionLevel level)
 {
     return(quests[(int)level]);
 }
Пример #4
0
        /// <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);
            }
        }