예제 #1
0
        // Token: 0x06003D03 RID: 15619 RVA: 0x00113CE0 File Offset: 0x00111EE0
        public void AddNewLearntTech(TrainingTech Tech)
        {
            ConfigDataTrainingTechInfo   configDataTrainingTechInfo = this.ConfigDataLoader.GetConfigDataTrainingTechInfo(Tech.ConfigId);
            ConfigDataTrainingCourseInfo CourseConfig = this.ConfigDataLoader.GetConfigDataTrainingCourseInfo(configDataTrainingTechInfo.m_courseId);
            ConfigDataTrainingRoomInfo   RoomConfig   = this.ConfigDataLoader.GetConfigDataTrainingRoomInfo(CourseConfig.RoomID);
            TrainingCourse trainingCourse             = this.Rooms.Find((TrainingRoom r) => r.ConfigId == RoomConfig.ID).Courses.Find((TrainingCourse c) => c.ConfigId == CourseConfig.ID);

            trainingCourse.Techs.RemoveAll((TrainingTech t) => t.ConfigId == Tech.ConfigId);
            trainingCourse.Techs.Add(Tech);
        }
        // Token: 0x06004977 RID: 18807 RVA: 0x0016E56C File Offset: 0x0016C76C
        public bool IsTechLocked(int TechId)
        {
            if (!BJLuaObjHelper.IsSkipLuaHotfix && this.TryInitHotFix("") && this.m_IsTechLockedInt32_hotfix != null)
            {
                return(Convert.ToBoolean(this.m_IsTechLockedInt32_hotfix.call(new object[]
                {
                    this,
                    TechId
                })));
            }
            BJLuaObjHelper.IsSkipLuaHotfix = false;
            ConfigDataTrainingTechInfo configDataTrainingTechInfo = this.m_configDataLoader.GetConfigDataTrainingTechInfo(TechId);
            int          techMaxLevel = this.GetTechMaxLevel(TechId);
            TrainingTech tech         = this.GetTech(TechId);

            if (tech.Level >= techMaxLevel)
            {
                return(false);
            }
            TrainingTechInfo             TechInfo = configDataTrainingTechInfo.m_Infos[tech.Level];
            ConfigDataTrainingCourseInfo configDataTrainingCourseInfo = this.m_configDataLoader.GetConfigDataTrainingCourseInfo(configDataTrainingTechInfo.m_courseId);
            TrainingRoom room = this.GetRoom(configDataTrainingCourseInfo.RoomID);

            if (room.Level < TechInfo.RoomLevel)
            {
                return(true);
            }
            if (TechInfo.PreIds == null || TechInfo.PreIds.Count == 0)
            {
                return(false);
            }
            List <TrainingTech> availableTechs = this.GetAvailableTechs();
            int i;

            for (i = 0; i < TechInfo.PreIds.Count; i++)
            {
                int PreTechId = TechInfo.PreIds[i];
                if (availableTechs.Find((TrainingTech t) => t.ConfigId == PreTechId && !this.IsTechLocked(t.ConfigId) && t.Level >= TechInfo.PreTechLevels[i]) == null)
                {
                    return(true);
                }
            }
            return(false);
        }