public bool Load(string name) { string filename = Application.persistentDataPath + DIRECTORY; if (!Directory.Exists(filename)) { Directory.CreateDirectory(filename); return(false); } filename += ("/" + name); if (!File.Exists(filename)) { Debug.LogWarning("File doesn't exsist!"); return(false); } BinaryFormatter formatter = GetBinaryFormatter(); FileStream stream = new FileStream(filename, FileMode.Open); SAV_Game gameSav = formatter.Deserialize(stream) as SAV_Game; // Apply data M_BuildingManager.SAddBuildings(gameSav.GetBuildings()); M_SettlersManager.SAddSettlers(gameSav.settlers); M_InGameResourcesManager.SApplySavedData(gameSav.resources); return(true); }
public static void SShowSettler(Guid id) { if (s_instance != null) { s_instance.ShowSettler(M_SettlersManager.SGetSettler(id)); } }
public void OnOpen() { settlersText.text = M_SettlersManager.SGetSettlersCount().ToString(); upkeepText.text = M_SettlersManager.SGetUpkeep().ToString(); foodText.text = M_BuildingManager.SGetFoodPerDay().ToString(); researchText.text = M_BuildingManager.SGetResearchPerDay().ToString(); }
public void ShowEmployScreen() { m_employee = null; employButton.gameObject.SetActive(false); m_settlersAvailable = 0; int i; for (i = 0; i < container.transform.childCount; i++) { GameObject.Destroy(container.transform.GetChild(i).gameObject); } List <ISettler> settlers = M_SettlersManager.SGetSettlers(); i = 0; foreach (Settler s in settlers) { if (s.GetWorkplace() == Guid.Empty) { m_settlersAvailable++; GameObject temp = Instantiate(settlerUIprefab); temp.transform.SetParent(container.transform); temp.GetComponent <UI_ElemSettlerEmploy>().Setup(s, settlerScreen); RectTransform rectTransform = temp.GetComponent <RectTransform>(); float yOffset = container.GetComponent <RectTransform>().rect.height / 2 - rectTransform.rect.height / 2; rectTransform.localPosition = new Vector3(0, yOffset - rectTransform.rect.height * i, 0); i++; } } settlersCount.text = m_settlersAvailable.ToString(); M_ScreenManager.SChangeScreenPersistentBack(this.gameObject); }
public void Update() { // game time handling if (m_data == null) { return; } m_data.m_timeElapsed += Time.deltaTime; if (m_data.m_timeElapsed > m_data.secondsPerDay) { m_data.days++; if (m_data.days % m_data.daysPerMonth == 0) { M_SettlersManager.STriggerMonth(m_data.days / m_data.daysPerMonth); M_BuildingManager.STriggerMonth(m_data.days / m_data.daysPerMonth); } if (m_data.days > m_data.daysPerMonth * m_data.monthsPerSeason * 4 && m_data.year < m_data.maxYears) { m_data.year++; m_data.days = 0; M_BuildingManager.STriggerYear(m_data.year); } M_SettlersManager.STriggerDay(m_data.days); M_BuildingManager.STriggerDay(m_data.days); m_dayText.text = m_data.days.ToString(); m_data.m_timeElapsed -= m_data.secondsPerDay; } }
public void TriggerDay(int day) { if (m_assignedSettler != Guid.Empty) { m_moodOnThisBuilding = M_SettlersManager.SGetMoodFavBuilding(m_assignedSettler); } }
public void Setup(ISettler settler, GameObject settlerScreen) { if (settler == null) { Debug.LogWarning("Settler cannot be null!"); return; } else if (settlerScreen == null) { Debug.LogWarning("SettlerScreen cannot be null!"); return; } if (s_count % 2 == 0) { gameObject.GetComponent <Image>().color = backgroundAColor; m_baseColor = backgroundAColor; } else { gameObject.GetComponent <Image>().color = backgroundBColor; m_baseColor = backgroundBColor; } m_settler = settler; name.text = settler.GetName(); settlerPortrait.sprite = M_SettlersManager.SGetPortrait(settler.GetPortraitId()); m_settlerScreen = settlerScreen; s_count++; }
public void Setup(Settler settler, GameObject settlerScreen) { if (settler == null) { Debug.LogWarning("Settler cannot be null!"); return; } else if (settlerScreen == null) { Debug.LogWarning("SettlerScreen cannot be null!"); return; } if (s_count % 2 == 0) { gameObject.GetComponent <Image>().color = backgroundAColor; m_baseColor = backgroundAColor; } else { gameObject.GetComponent <Image>().color = backgroundBColor; m_baseColor = backgroundBColor; } m_settler = settler; name.text = settler.GetName(); settlerPortrait.sprite = M_SettlersManager.SGetPortrait(settler.GetPortraitId()); m_settlerScreen = settlerScreen; infoButton.onClick.AddListener(OnClickInfo); employButton.onClick.AddListener(OnClickEmploy); deemployButton.onClick.AddListener(OnClickDeemploy); s_count++; }
private void RefreshUI() { buildingName.text = m_currentBuilding.GetName(); buildingDesc.text = m_currentBuilding.GetDesc(); if (m_currentBuilding is IBuildingProduction) { IBuildingProduction prod = (IBuildingProduction)m_currentBuilding; foodPerDay.text = string.Format(FORMAT_PER_DAY, prod.GetProducedFood()); researchPerDay.text = string.Format(FORMAT_PER_DAY, prod.GetProducedResearch()); if (prod.GetWorker() != Guid.Empty) { workerImage.sprite = M_SettlersManager.SGetPortraitOfSettler(prod.GetWorker()); workerName.text = M_SettlersManager.SGetNameOfSettler(prod.GetWorker()); employButton.gameObject.SetActive(false); removeButton.gameObject.SetActive(true); infoButtonProd.gameObject.SetActive(true); } else { workerImage.sprite = defaultWorkerImg; workerName.text = "None"; employButton.gameObject.SetActive(true); removeButton.gameObject.SetActive(false); infoButtonProd.gameObject.SetActive(false); } } }
public static void SShowSettlers() { if (s_instance == null) { return; } s_instance.ShowSettlers(M_SettlersManager.SGetSettlers()); }
public static void SShowSettlers(List <Guid> settlers) { if (s_instance == null) { return; } s_instance.ShowSettlers(M_SettlersManager.SGetSettlers(settlers)); }
/// <summary>[SetInInspector] </summary> public void OnRemoveButtonClick() { if (!(m_currentBuilding is IBuildingProduction)) { Debug.LogWarning("Building is not a production one."); return; } Guid settler = M_BuildingManager.SRemoveSettler(m_currentBuilding.GetId()); M_SettlersManager.SRemoveWorkplace(settler); RefreshUI(); }
private void ActionOnBuildingFinished(IBuilding building) { if (building is IBuildingHouse) { IBuildingHouse house = ((IBuildingHouse)building); int count = house.GetProvidedSettlers(); for (int i = 0; i < count; i++) { house.AssignSettler(M_SettlersManager.SCreateSettler(house.GetId())); } } }
public static void AssignWorker(Guid settler) { if (s_instance == null) { return; } M_BuildingManager.SRemoveSettler(settler); M_SettlersManager.SAssignWorkplace(settler, s_instance.m_currentBuilding.GetId()); M_BuildingManager.SAssignSettler(s_instance.m_currentBuilding.GetId(), settler); s_instance.RefreshUI(); }
public void Setup(ISettler settler, GameObject settlerScreen) { if (s_counter % 2 == 0) { gameObject.GetComponent <Image>().color = colorRowA; } else { gameObject.GetComponent <Image>().color = colorRowB; } m_settler = settler; m_settlerScreen = settlerScreen; name.text = settler.GetName(); moodSlider.value = settler.GetMood(); settlerPortrait.sprite = M_SettlersManager.SGetPortrait(settler.GetPortraitId()); infoButton.onClick.AddListener(OnClickInfo); s_counter++; }
public void Save(string name) { string filename = Application.persistentDataPath + DIRECTORY; if (!Directory.Exists(filename)) { Directory.CreateDirectory(filename); } filename += ("/" + name); Debug.Log("Saving game... " + filename); BinaryFormatter formatter = GetBinaryFormatter(); FileStream stream = new FileStream(filename, FileMode.Create); SAV_Game gameSav = new SAV_Game(M_BuildingManager.SGetBuildings(), M_SettlersManager.SGetSettlers(), new SAV_InGameResources(M_InGameResourcesManager.SGetData())); formatter.Serialize(stream, gameSav); stream.Close(); }
void Start() { Debug.Log("GameHelper -> Start()"); s_instance = this; m_camController = Camera.main.GetComponent <CameraController>(); if (m_camController == null) { Debug.LogWarning("Couldn't get CameraController from Camera.main!"); } if (dayText == null || foodText == null || researchText == null) { Debug.LogWarning("One of the TMP_Text objects is not initialized."); } else { m_resourcesManager = M_InGameResourcesManager.GetInstance(foodText, dayText, researchText); } m_buildingManager = M_BuildingManager.Instance; m_mapManager = M_MapManager.Instance; m_settlersManager = M_SettlersManager.Instance; m_inputManager = M_InputManager.Instance; m_waresManager = M_WaresManager.Instance; m_saveManager = M_SaveManager.Instance; // Load level GameObject menuManager = GameObject.FindGameObjectWithTag("MenuManager"); if (menuManager != null) { SceneLoader sceneLoader = menuManager.GetComponent <SceneLoader>(); if (sceneLoader != null) { if (sceneLoader.gameData == null) { LoadLevel(defaultGameData); } else { LoadLevel(sceneLoader.gameData); } if (sceneLoader.saveId > 0) { LoadSave(sceneLoader.saveId); } } else { Debug.LogWarning("Cannot find " + typeof(SceneLoader).Name + " component!"); } } else { // Only if we started from Game scene, because MenuManager hasn't been initialized. if (defaultGameData != null) { Debug.LogWarning("Loading using default data ."); LoadLevel(defaultGameData); } else { Debug.LogWarning("Couldn't find either MenuManager or default DAT_Game!"); } } ResumeGame(); }
public void ShowSettler(ISettler settler) { if (settler == null) { Debug.LogWarning(typeof(ISettler).Name + " cannot be null!"); M_ScreenManager.SPreviousScreen(); return; } m_settler = settler; settlerName.text = settler.GetName(); settlerUpkeep.text = settler.GetUpkeep().ToString(); settlerMood.value = settler.GetMood(); moodValue.text = string.Format("{0}%", settler.GetMood()); // Preferences List <GameObject> favBuildings = new List <GameObject>(); foreach (FavoriteBuilding favoriteBuilding in settler.GetFavoriteBuildings()) { GameObject obj = Instantiate(favoriteThingRowElementPrefab); if (favoriteBuilding.active) { obj.GetComponent <Image>().color = elemBgHighlightColor; } obj.GetComponentInChildren <TMP_Text>().text = M_BuildingManager.SGetDatBuilding(favoriteBuilding.buildingTemplId).name; obj.GetComponentInChildren <Slider>().value = favoriteBuilding.maxMood; favBuildings.Add(obj); } List <GameObject> favWares = new List <GameObject>(); foreach (FavoriteWare favoriteWare in settler.GetFavoriteWares()) { GameObject obj = Instantiate(favoriteThingRowElementPrefab); if (favoriteWare.active) { obj.GetComponent <Image>().color = elemBgHighlightColor; } obj.GetComponentInChildren <TMP_Text>().text = favoriteWare.ware.ToString(); obj.GetComponentInChildren <Slider>().value = favoriteWare.mood; favWares.Add(obj); } GUIUtils.AddElementsToCleanYScrollContainer(favoriteBuildingsContainer, favBuildings); GUIUtils.AddElementsToCleanYScrollContainer(favoriteWaresContainer, favWares); preferencesSubPage.SetActive(false); settlerPortrait.sprite = M_SettlersManager.SGetPortrait(settler.GetPortraitId()); if (settler.GetWorkplace() != System.Guid.Empty) { workplaceButton.image.sprite = M_BuildingManager.SGetBuilding(settler.GetWorkplace()).GetIcon(); } else { workplaceButton.image.sprite = spriteWhenNoWorkplace; } if (settler.GetHouse() != System.Guid.Empty) { homeButton.image.sprite = M_BuildingManager.SGetBuilding(settler.GetHouse()).GetIcon(); } else { homeButton.image.sprite = spriteWhenNoWorkplace; } M_ScreenManager.SChangeScreenPersistentBack(this.gameObject); }