Exemple #1
0
 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));
     }
 }
Exemple #2
0
    //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);
    }
Exemple #3
0
    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;
    }
Exemple #4
0
 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();
         }
     }
 }
Exemple #5
0
    //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;
                    }
                }
            }
        }
    }