//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); } } }
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); }
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; }