public void EmmitMissions(bool force = false) { TryToGetNextFromEmmitted(); if (force || canEmmitMissions()) { Mission currentMission = null; TryToGetNextFromEmmitted(true); if (currentMissions.Count == 0) //инициализируем текущую { currentMission = GetOneMissionObject(); if (currentMission != null) { NotifyHasMissions(); currentMissions.Add(currentMission); } CurrentMissionsSerializer.SaveCurrentMissions(currentMissions, misionCurrentTag); } //emmitted int numberOfBoughtSlots = NumberOfBoughtSlots(); if (emmittedMissionsPrefabs.Count < numberOfBoughtSlots - 1) { for (int i = emmittedMissionsPrefabs.Count; i < numberOfBoughtSlots - 1; i++) { if (availableMissionsPrefabs.Count > 0) { Mission missionPrefab = (Mission)availableMissionsPrefabs [0]; availableMissionsPrefabs.Remove(missionPrefab); emmittedMissionsPrefabs.Add(missionPrefab); } } CurrentMissionsSerializer.SaveCurrentMissions(emmittedMissionsPrefabs, misionEmmittedTag); } lastMissionEmmitTime = GlobalOptions.GetLongFromDateTime(System.DateTime.UtcNow); MissionsUpdated(); } }
public long GetNextEmmitInSeconds() { long curTime = GlobalOptions.GetLongFromDateTime(System.DateTime.UtcNow); return(emmitPeriod - curTime + lastMissionEmmitTime); }
protected bool canEmmitMissions() { long curTime = GlobalOptions.GetLongFromDateTime(System.DateTime.UtcNow); return(curTime - lastMissionEmmitTime > emmitPeriod); }