Esempio n. 1
0
    //Every Memento have to create new since current game is static
    public void SetMemento()
    {
        gameID = "ttt"; //TODO allow player to set gameID
        GameMemento.current        = new GameMemento();
        GameMemento.current.gameID = gameID;

        GameMemento.current.hexGridMemento.width  = hexGrid.width;
        GameMemento.current.hexGridMemento.height = hexGrid.height;
        GameMemento.current.hexGridMemento.size   = hexGrid.size;

        foreach (var item in playerManager.activePlayersName)
        {
            GameMemento.current.activePlayersName.Add(item.Key, item.Value);
        }
        foreach (var item in playerManager.activePlayersTeam)
        {
            GameMemento.current.activePlayersTeam.Add(item.Key, item.Value);
        }
        foreach (var item in playerManager.activePlayersFaction)
        {
            GameMemento.current.activePlayersFaction.Add(item.Key, item.Value);
        }
        foreach (var item in playerManager.activePlayersOrder)
        {
            GameMemento.current.activePlayersOrder.Add(item.Key, item.Value);
        }
        GameMemento.current.currPlayerOrder = playerManager.currPlayerOrder;
        GameMemento.current.currPlayer      = playerManager.currPlayer;

        GameMemento.current.aether = currency.aether;
        GameMemento.current.gold   = currency.gold;

        for (int i = 0; i < hexGrid.cells.Length; i++)
        {
            GameMemento.current.hexGridTerrainList.Add(hexGrid.cells[i].terrain);
            GameMemento.current.hexGridCorpsesList.Add(hexGrid.cells[i].corpses);
            GameMemento.current.hexGridGroundEffectsList.Add(hexGrid.cells[i].groundEffects);
            GameMemento.current.hexGridHasVisionList.Add(hexGrid.cells[i].hasVision);
            GameMemento.current.hexGridFogList.Add(hexGrid.cells[i].fog);
            if (hexGrid.cells[i].entityObj != null)
            {
                EntityMemento entityMemento = new EntityMemento();
                SetEntitiesMemento(entityMemento, i);
                GameMemento.current.entityMementoList.Add(entityMemento);
            }
            if (hexGrid.cells[i].buildingObj != null)
            {
                BuildingMemento buildingMemento = new BuildingMemento();
                SetBuildingsMemento(buildingMemento, i);
                GameMemento.current.buildingMementoList.Add(buildingMemento);
            }
        }
    }
Esempio n. 2
0
    public void BuildBuildingMemento(BuildingMemento buildingMemento)
    {
        string buildingId   = buildingMemento.playerID;
        string buildingType = buildingMemento.type;
        int    cellIndex    = buildingMemento.cellIndex;

        Vector3 buildindex = hexGrid.GetCellPos(cellIndex);

        buildindex.y = 0.2f;

        //Instantiate the prefab from the resources folder
        GameObject building = (GameObject)Instantiate(Resources.Load(buildingType), buildindex, Quaternion.identity);

        building.name = buildingMemento.uniqueID.ToString();
        char buildingChar = buildingId[0];

        buildingStorage.PlayerBuildingList(buildingChar).Add(building);
        hexGrid.SetBuildingObject(buildingMemento.cellIndex, building);

        buildingStats.SetPlayerID(building, buildingMemento.playerID);
        buildingStats.SetType(building, buildingMemento.type);
        buildingStats.SetUniqueID(building, buildingMemento.uniqueID);
        buildingStats.SetCellIndex(building, buildingMemento.cellIndex);

        buildingStats.SetCurrHealth(building, buildingMemento.currhealth);
        buildingStats.SetMaxHealth(building, buildingMemento.maxhealth);
        buildingStats.SetRange(building, buildingMemento.range);
        buildingStats.SetRangedAttackDmg(building, buildingMemento.rangedattackdmg);
        buildingStats.SetDefense(building, buildingMemento.defense);
        buildingStats.SetVision(building, buildingMemento.vision);
        buildingStats.SetUpgrades(building, buildingMemento.upgrades);
        buildingStats.SetPermaEffects(building, buildingMemento.permaEffects);
        buildingStats.SetTempEffects(building, buildingMemento.tempEffects);

        buildingStats.SetCurrConstruction(building, buildingMemento.currConstruction);
        buildingStats.SetCurrConstructionTimer(building, buildingMemento.currConstructionTimer);
        buildingStats.SetCurrRecruitment(building, buildingMemento.currRecruitment);
        buildingStats.SetCurrRecruitmentTimer(building, buildingMemento.currRecruitmentTimer);
        buildingStats.SetIsRecruitmentQueued(building, buildingMemento.isRecruitmentQueued);

        loadMap.CreateHealthLabel(buildingMemento.cellIndex, buildingMemento.currhealth, building.name);
    }
Esempio n. 3
0
    private void SetBuildingsMemento(BuildingMemento BuildingMemento, int i)
    {
        BuildingMemento.playerID  = hexGrid.cells[i].buildingObj.GetComponent <Building>().playerID;
        BuildingMemento.type      = hexGrid.cells[i].buildingObj.GetComponent <Building>().type;
        BuildingMemento.cellIndex = hexGrid.cells[i].buildingObj.GetComponent <Building>().cellIndex;
        BuildingMemento.uniqueID  = hexGrid.cells[i].buildingObj.GetComponent <Building>().uniqueID;

        BuildingMemento.currhealth      = hexGrid.cells[i].buildingObj.GetComponent <Building>().currhealth;
        BuildingMemento.maxhealth       = hexGrid.cells[i].buildingObj.GetComponent <Building>().maxhealth;
        BuildingMemento.range           = hexGrid.cells[i].buildingObj.GetComponent <Building>().range;
        BuildingMemento.rangedattackdmg = hexGrid.cells[i].buildingObj.GetComponent <Building>().rangedattackdmg;
        BuildingMemento.defense         = hexGrid.cells[i].buildingObj.GetComponent <Building>().defense;
        BuildingMemento.vision          = hexGrid.cells[i].buildingObj.GetComponent <Building>().vision;
        BuildingMemento.upgrades        = hexGrid.cells[i].buildingObj.GetComponent <Building>().upgrades;
        BuildingMemento.permaEffects    = hexGrid.cells[i].buildingObj.GetComponent <Building>().permaEffects;
        BuildingMemento.tempEffects     = hexGrid.cells[i].buildingObj.GetComponent <Building>().tempEffects;

        BuildingMemento.currConstruction      = hexGrid.cells[i].buildingObj.GetComponent <Building>().currConstruction;
        BuildingMemento.currConstructionTimer = hexGrid.cells[i].buildingObj.GetComponent <Building>().currConstructionTimer;
        BuildingMemento.currRecruitment       = hexGrid.cells[i].buildingObj.GetComponent <Building>().currRecruitment;
        BuildingMemento.currRecruitmentTimer  = hexGrid.cells[i].buildingObj.GetComponent <Building>().currRecruitmentTimer;
        BuildingMemento.isRecruitmentQueued   = hexGrid.cells[i].buildingObj.GetComponent <Building>().isRecruitmentQueued;
    }