/**********************************************************************************/ // функция извещающая CompanyManager о загрузке новой карты в компании // /**********************************************************************************/ public void OnSceneLoaded() { 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); // устанавливаем параметры дропа List <DropItemDescriptor> dropList = new List <DropItemDescriptor>(missionSettings.DropDescriptor.DropItems); DropManager.GetInstance().SetLevel(dropList, missionSettings.DropDescriptor.MaxNumOfDroppedItem); /* * DropManager.GetInstance().TimeBetweenDropMin = 8; * DropManager.GetInstance().TimeBetweenDropMin = 16; */ // приостанавливаем игру до момента начала раунда GameManager.SetPauseState(true, true); // ожидаем начала раунда m_state = DM_STATE.WAIT_FOR_ROUND_START; m_currectTimer = PauseBeforeRound; // обновляем счётчик побед UIController.GetInstance().SetGameScore(m_pl1WinnNum, m_pl2WinnNum); }
/**********************************************************************************/ // функция извещающая 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); }
/**********************************************************************************/ // проверяем подбор объекта // /**********************************************************************************/ protected virtual void CheckForPicking() { m_chekingRateCounter -= Time.deltaTime; if (m_chekingRateCounter <= 0.0f) { m_chekingRateCounter += m_chekingRate; // производим проверку подбора foreach (PlayerController plCtr in m_playerControllers) { m_position = GetLocalPosition(); Point playerPosition = plCtr.GetGlobalPosition(); if (playerPosition.IsSamePoint(m_position)) { plCtr.ApplyBonus(BonusType); m_state = BONUS_STATE.TAKEN; // если бонус был сброшен с орбиты if (BonusSource == BONUS_SOURCE.ALIEN) { // оповещаем DropManager о том, что бонус был подобран DropManager.GetInstance().BonusWasTaked((Base.GO_TYPE)BonusType); } // включаем анимацию взятия бонуса и выходим m_animator.SetBool("Burn", true); if (m_productionBase != null) { m_productionBase.ReleaseProduction(0); } return; } } } }