public void LoadBuildings() { for (int i = 0; i < GameMemento.current.buildingMementoList.Count; i++) { build.BuildBuildingMemento(GameMemento.current.buildingMementoList[i]); //Add Building To PlayerLists buildingStorage.GetPlayerBuildingList(GameMemento.current.buildingMementoList[i].playerID).Add(hexGrid.GetBuildingObject(GameMemento.current.buildingMementoList[i].cellIndex)); } }
//given an index and the type of summon, summons that entity with the next available name public void BuildBuilding(int cellindex, string buildingname, int playerid) { Vector3 buildindex = hexGrid.GetCellPos(cellindex); buildindex.y = 0.2f; //Instantiate the prefab from the resources folder GameObject building = (GameObject)Instantiate(Resources.Load(buildingname), buildindex, Quaternion.identity); Guid buildingID = Guid.NewGuid(); building.name = buildingID.ToString(); buildingStorage.GetPlayerBuildingList(playerid).Add(building); hexGrid.SetBuildingObject(cellindex, building); //sets stats for building buildingStats.SetPlayerID(building, playerid); buildingStats.SetType(building, buildingname); buildingStats.SetUniqueID(building, buildingID); buildingStats.SetCellIndex(building, cellindex); int health = buildingStats.GetMaxHealth(buildingname); buildingStats.SetMaxHealth(building, health); buildingStats.SetCurrHealth(building, health); int range = buildingStats.GetRange(buildingname); buildingStats.SetRange(building, range); int rangedattdmg = buildingStats.GetRangedAttackDmg(buildingname); buildingStats.SetRangedAttackDmg(building, rangedattdmg); int defense = buildingStats.GetDefense(buildingname); buildingStats.SetDefense(building, defense); int vision = buildingStats.GetVision(buildingname); buildingStats.SetVision(building, vision); loadMap.CreateHealthLabel(cellindex, health, building.name); }
void HandleInput() { if (editmode == true) { currIndex = select.ChangeTerrain(colors, activeColor); } else { currIndex = select.GetCurrIndex(); } if (currIndex == selIndex) //TODO return if hit UI object { return; } //-----Selector-------------- Debug.Log(currIndex); GameObject selEntityObj = hexGrid.GetEntityObject(selIndex); GameObject currEntityObj = hexGrid.GetEntityObject(currIndex); GameObject currBuildingObj = hexGrid.GetBuildingObject(currIndex); avaliableActions = new List <string>(); if (entityStorage.GetPlayerEntityList(playerManager.currPlayer).Contains(currEntityObj)) { movement.UnhighlightPossMovement(hexGrid.GetEntityObject(selIndex)); movement.UnhighlightPossAttack(hexGrid.GetEntityObject(selIndex)); //display all possible positions movement.HighlightPossMovement(currEntityObj, currIndex); movement.HighlightPossAttack(currEntityObj, currIndex); //TODO list info for curr entity, display it avaliableActions = entityStats.GetCurrSpecialActions(currEntityObj); lockbattle = false; } if (buildingStorage.GetPlayerBuildingList(playerManager.currPlayer).Contains(currBuildingObj)) { buildingManager.DisplayBuilding(currIndex); //TODO GUI for buildings } //ensures attacks only happen once per update //TODO add here: lock ability for user to save while attack in progress because battle object is not saved if (lockbattle == false && selEntityObj != null) { battle.PerformAction(selIndex, currIndex, chosenAction); lockbattle = true; } selIndex = currIndex; }
public void TickProduction() { foreach (GameObject currBuildings in buildingStorage.GetPlayerBuildingList(playerManager.currPlayer)) { currBuildings.GetComponent <Building>().TickProductionTimer(); currBuildings.GetComponent <Building>().TickRecruitmentTimer(); if (currBuildings.GetComponent <Building>().currConstructionTimer <= 0) { currBuildings.GetComponent <Building>().CompleteConstruction(); } if (currBuildings.GetComponent <Building>().currRecruitmentTimer <= 0) { currBuildings.GetComponent <Building>().CompleteRecruitment(); } } }
//check each player entity in entitystorage to determine their vision range and remove the fog for that range public void EntityCurrPlayerVision() { if (playerManager.currPlayer != 0) { foreach (GameObject playerEntity in entityStorage.GetPlayerEntityList(playerManager.currPlayer)) { int visionDistance = entityStats.GetCurrVision(playerEntity); int index = entityStats.GetCellIndex(playerEntity); string height = hexGrid.GetTerrain(index); Dictionary <int, int> vision = PlayerVisionHelper(index, visionDistance, height); foreach (var tile in vision) { hexGrid.SetFog(tile.Key, false); Fog fog = fogs[tile.Key]; fog.GetComponent <Renderer>().enabled = false; } } foreach (GameObject buildingEntity in buildingStorage.GetPlayerBuildingList(playerManager.currPlayer)) { int visionDistance = buildingStats.GetCurrVision(buildingEntity); int index = buildingStats.GetCellIndex(buildingEntity); string height = hexGrid.GetTerrain(index); Dictionary <int, int> vision = PlayerVisionHelper(index, visionDistance, height); foreach (var tile in vision) { if (tile.Value >= -2) { hexGrid.SetFog(tile.Key, false); Fog fog = fogs[tile.Key]; fog.GetComponent <Renderer>().enabled = false; } } } } }