/**********************************************************************************/ // функция извещающая CompanyManager о загрузке новой карты в компании // /**********************************************************************************/ public void OnSceneLoaded() { // переключаем состояние миссии в "запущено" m_missionState = MISSION_STATE.RUNNED; // при загрузке новой сцены запускаем генерацию карты MissionDescriptor missionSettings = m_companyMissionData.missions[m_levelNumber]; MapGenerator.MapGeneratorSettings set = new MapGenerator.MapGeneratorSettings(); set.MapXSize = missionSettings.MapXSize; set.MapYSize = missionSettings.MapYSize; // разбираем все доступные для данной миссии здания и устанавливаем их в сет for (int i = 0; i < missionSettings.Buildings.Length; i++) { AvailableBuilding building = missionSettings.Buildings[i]; Base.BLOCK_TYPE blockType = Base.StringToBlockType(building.BuildingType); MapGenerator.BlockWeight bw = new MapGenerator.BlockWeight(); bw.BlockType = blockType; bw.Weight = building.Weight; set.AvalibleBlocks.Add(bw); } // генерируем карту для уровня в соответствии с настройками MapGenerator.GetInstance().GenerateMap(set); // добавляем новые цели для уровня TargetController.GetInstance().SetNewCompanyMission(missionSettings.MissionDifficulties, new List <string>(missionSettings.MissionBosses)); CompanyDialogManager.GetInstance().OnMissionLoaded(m_levelNumber); List <DropItemDescriptor> dropList = new List <DropItemDescriptor>(missionSettings.DropDescriptor.DropItems); DropManager.GetInstance().SetLevel(dropList, missionSettings.DropDescriptor.MaxNumOfDroppedItem); }
/**********************************************************************************/ // функция извещающая CompanyManager о том, что игрок проиграл парию // /**********************************************************************************/ public void OnGoalsFailed() { CompanyDialogManager.GetInstance().OnMissionFailed(); m_missionState = MISSION_STATE.FAILED; m_state = CM_STATE.WAIT_FOR_DIALOG_CLOSE; }
/**********************************************************************************/ // функция извещающая CompanyManager о том, что все цели игры были уничтожены // /**********************************************************************************/ public void OnGoalsAchieved() { CompanyDialogManager.GetInstance().OnMissionComplite(); m_missionState = MISSION_STATE.COMPLITED; m_state = CM_STATE.WAIT_FOR_DIALOG_CLOSE; }