コード例 #1
0
        private mg_jr_Level AddRandomLevelToQueue(EnvironmentType _environmentType, int _difficulty)
        {
            Assert.AreNotEqual(EnvironmentType.MAX, _environmentType, "Invalid value: " + _environmentType);
            _difficulty = m_availableDifficulties[_environmentType].ClampToRange(_difficulty);
            EnvironmentTypeAndDifficultyID key  = new EnvironmentTypeAndDifficultyID(_environmentType, _difficulty);
            List <mg_jr_LevelDefinition>   list = m_levelDefinitions[key];
            mg_jr_LevelDefinition          mg_jr_LevelDefinition2 = null;
            int num = -1;

            foreach (mg_jr_LevelDefinition item in list)
            {
                if (!item.IsUseLimitReached)
                {
                    int num2 = Random.Range(0, 1000) * item.CurrentRarity;
                    if (num2 > num)
                    {
                        mg_jr_LevelDefinition2 = item;
                        num = num2;
                    }
                }
            }
            if (mg_jr_LevelDefinition2 == null)
            {
                ResetLevelRarity(_environmentType);
                mg_jr_LevelDefinition2 = list[0];
            }
            Assert.NotNull(mg_jr_LevelDefinition2, "No useablelevel def found");
            return(LoadLevelAfterExisting(mg_jr_LevelDefinition2));
        }
コード例 #2
0
 private void LoadLevelDeffinitions(TextAsset[] levelXmls)
 {
     foreach (TextAsset xmlLevelDef in levelXmls)
     {
         mg_jr_LevelDefinition mg_jr_LevelDefinition2 = new mg_jr_LevelDefinition();
         mg_jr_LevelDefinition2.LoadFromXML(xmlLevelDef);
         EnvironmentTypeAndDifficultyID key = new EnvironmentTypeAndDifficultyID(mg_jr_LevelDefinition2.EnvironmentType, mg_jr_LevelDefinition2.Difficulty);
         if (!m_levelDefinitions.ContainsKey(key))
         {
             m_levelDefinitions.Add(key, new List <mg_jr_LevelDefinition>());
         }
         m_levelDefinitions[key].Add(mg_jr_LevelDefinition2);
         DifficultyRange value;
         if (!m_availableDifficulties.ContainsKey(mg_jr_LevelDefinition2.EnvironmentType))
         {
             value = new DifficultyRange(mg_jr_LevelDefinition2.Difficulty);
             m_availableDifficulties.Add(mg_jr_LevelDefinition2.EnvironmentType, value);
             continue;
         }
         value         = m_availableDifficulties[mg_jr_LevelDefinition2.EnvironmentType];
         value.Minimum = Mathf.Min(mg_jr_LevelDefinition2.Difficulty, value.Minimum);
         value.Maximum = Mathf.Max(mg_jr_LevelDefinition2.Difficulty, value.Maximum);
         m_availableDifficulties[mg_jr_LevelDefinition2.EnvironmentType] = value;
     }
 }
コード例 #3
0
        public void ResetLevelRarity(EnvironmentType _forEnvironment)
        {
            Assert.AreNotEqual(EnvironmentType.MAX, _forEnvironment, "Invalid value: " + _forEnvironment);
            DifficultyRange difficultyRange = m_availableDifficulties[_forEnvironment];

            for (int i = difficultyRange.Minimum; i <= difficultyRange.Maximum; i++)
            {
                EnvironmentTypeAndDifficultyID key  = new EnvironmentTypeAndDifficultyID(_forEnvironment, i);
                List <mg_jr_LevelDefinition>   list = m_levelDefinitions[key];
                foreach (mg_jr_LevelDefinition item in list)
                {
                    item.ResetUsage();
                }
            }
        }
コード例 #4
0
        private bool AddLevelToQueueWith(mg_jr_ResourceList _resource, EnvironmentType _environmentType, int _difficulty)
        {
            bool result = false;
            EnvironmentTypeAndDifficultyID key  = new EnvironmentTypeAndDifficultyID(_environmentType, _difficulty);
            List <mg_jr_LevelDefinition>   list = m_levelDefinitions[key];
            mg_jr_Resources resources           = MinigameManager.GetActive <mg_JetpackReboot>().Resources;

            foreach (mg_jr_LevelDefinition item in list)
            {
                if (item.ContainsAtLeastOne(resources.FindXmlNameOfPrefab(_resource)))
                {
                    LoadLevelAfterExisting(item);
                    result = true;
                    break;
                }
            }
            return(result);
        }