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 void ApplyResearch() { try { string temp = inputResearch.text.Replace("\u200B", ""); M_InGameResourcesManager.SAddResearch(Int32.Parse(temp) - M_InGameResourcesManager.GetResearchPoints()); } catch (FormatException e) { } }
public void ApplyFood() { try { string temp = inputFood.text.Replace("\u200B", ""); M_InGameResourcesManager.SAddFood(Int32.Parse(temp) - M_InGameResourcesManager.GetFood()); } catch (FormatException e) { } }
public static M_InGameResourcesManager GetInstance(TMP_Text foodText, TMP_Text yearText, TMP_Text researchText) { lock (s_lock) { if (s_instance == null) { s_instance = new M_InGameResourcesManager(); } s_instance.m_foodText = foodText; s_instance.m_dayText = yearText; s_instance.m_researchText = researchText; return(s_instance); } }
/// <summary> Function called when Building is supposed to be placed. </summary> private void OnBuildingBuildIconClick() { // check whether the place is not occupied. foreach (Tile tile in m_tilesHighlighted) { if (tile.IsOccupied()) { return; } } UT_Pair <int, int> cost = M_BuildingManager.SGetBuildingCost(m_tempBuildingComp.GetData().id); // Apply cost to the resources M_InGameResourcesManager.SAddFood(-cost.first); M_InGameResourcesManager.SAddResearch(-cost.second); // Mark highlighted tiles as occupied foreach (Tile tile in m_tilesHighlighted) { tile.SetOccupied(true); tile.Highlight(false); } // set final building position Vector3 pos = m_currentMiddleTile.transform.position; pos.y = M_MapManager.SGetYDepthValue(pos.z); m_tempBuildingObj.transform.position = pos; // Move to the BUILDINGS group M_GameHelper.AddToGroup(m_tempBuildingObj, M_GameHelper.Group.BUILDINGS); m_tempBuildingComp.SetActionOnBuildingFinished(ActionOnBuildingFinished); // Start in-game building process m_tempBuildingComp.StartBuilding(); m_onBuildingPlacedAction(m_tempBuildingComp); // reset values m_tempBuildingObj.GetComponent <IBuilding>().GetBuildButton().SetActive(false); m_tempBuildingObj = null; m_tempBuildingComp = null; m_currentMiddleTile = null; m_tilesHighlighted.Clear(); M_MiscManager.ShowCancelButton(false); }
public void Setup(DAT_Building data) { buildingData = data; buildingName.text = data.name; UT_Pair <int, int> cost = M_BuildingManager.SGetBuildingCost(data.id); requiredFood = cost.first; requiredResearch = cost.second; if (data != null && requiredFood <= M_InGameResourcesManager.GetFood() && requiredResearch <= M_InGameResourcesManager.GetResearchPoints()) { buildButton.interactable = true; buildButton.image.color = Color.green; } else { buildButton.interactable = false; buildButton.image.color = Color.red; } }
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(); }
public void Setup() { if (buildingData != null) { UT_Pair <int, int> cost = M_BuildingManager.SGetBuildingCost(buildingData.id); requiredFood = cost.first; requiredResearch = cost.second; foodText.text = requiredFood.ToString(); researchText.text = requiredResearch.ToString(); if (buildingData != null && requiredFood <= M_InGameResourcesManager.GetFood() && requiredResearch <= M_InGameResourcesManager.GetResearchPoints()) { buildButton.interactable = true; buildButton.image.color = Color.green; } else { buildButton.interactable = false; buildButton.image.color = Color.red; } } }
private void OnEnable() { inputFood.text = M_InGameResourcesManager.GetFood().ToString(); inputResearch.text = M_InGameResourcesManager.GetResearchPoints().ToString(); }
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(); }