コード例 #1
0
ファイル: M_SaveManager.cs プロジェクト: Rivenort/Test
    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);
    }
コード例 #2
0
 public void ApplyResearch()
 {
     try
     {
         string temp = inputResearch.text.Replace("\u200B", "");
         M_InGameResourcesManager.SAddResearch(Int32.Parse(temp) - M_InGameResourcesManager.GetResearchPoints());
     } catch (FormatException e) { }
 }
コード例 #3
0
 public void ApplyFood()
 {
     try
     {
         string temp = inputFood.text.Replace("\u200B", "");
         M_InGameResourcesManager.SAddFood(Int32.Parse(temp) - M_InGameResourcesManager.GetFood());
     }
     catch (FormatException e) { }
 }
コード例 #4
0
 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);
     }
 }
コード例 #5
0
    /// <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);
    }
コード例 #6
0
ファイル: UI_ElemBuilding.cs プロジェクト: Rivenort/Test
    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;
        }
    }
コード例 #7
0
ファイル: M_SaveManager.cs プロジェクト: Rivenort/Test
    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();
    }
コード例 #8
0
ファイル: UI_ElemBuilding.cs プロジェクト: Rivenort/Test
    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;
            }
        }
    }
コード例 #9
0
 private void OnEnable()
 {
     inputFood.text     = M_InGameResourcesManager.GetFood().ToString();
     inputResearch.text = M_InGameResourcesManager.GetResearchPoints().ToString();
 }
コード例 #10
0
ファイル: M_GameHelper.cs プロジェクト: Rivenort/Test
    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();
    }