Ejemplo n.º 1
0
 public void selectCityHall()
 {
     selectedBuilding = cityHall;
     buildingType     = Building.BuildingType.CityHall;
     action           = true;
     removing         = false;
 }
Ejemplo n.º 2
0
    public void CheckBuilding(Building building)
    {
        Building.BuildingType bType = building.myBuildingType;
        switch (bType)
        {
        case Building.BuildingType.house:
            // apply Special House bonuses

            break;

        case Building.BuildingType.defense:
            // add Soldier class
            AddSurvivorClass(SurvivorClass.soldier);
            break;

        case Building.BuildingType.food:

            AddSurvivorClass(SurvivorClass.farmer);
            break;

        case Building.BuildingType.workshop:

            AddSurvivorClass(SurvivorClass.scientist);
            break;

        default:
            print("Building of this type NOT FOUND!");
            break;
        }
    }
Ejemplo n.º 3
0
 public void selectHome()
 {
     selectedBuilding = home;
     buildingType     = Building.BuildingType.Home;
     action           = true;
     removing         = false;
 }
Ejemplo n.º 4
0
    public bool correctPlacement(BuildingPlatformController bpc)
    {
        foreach (SolutionItem si in solutions)
        {
            if (si.platform.Equals(bpc))
            {
                // If it is found, the correct type of building and upgrade should have been placed
                Upgrade.UpgradeType uType = Upgrade.UpgradeType.None;
                if (si.platform.upgrade != null)
                {
                    uType = si.platform.upgrade.type;
                }
                Building.BuildingType bType = Building.BuildingType.None;
                if (si.platform.building != null)
                {
                    bType = si.platform.building.type;
                }

                if (si.upgrade == uType && si.building == bType)
                {
                    return(true);
                }

                return(false);
            }
        }
        // If it isn't defined as solution, it should be empty
        if ((bpc.building == null || bpc.building.type == Building.BuildingType.None) &&
            (bpc.upgrade == null || bpc.upgrade.type == Upgrade.UpgradeType.None))
        {
            return(true);
        }
        return(false);
    }
Ejemplo n.º 5
0
 public void OnBuild(GameObject building, Building.BuildingType buildingtype)
 {
     Debug.Log(buildingtype.ToString());
     if (buildingtype == Building.BuildingType.House)
     {
         House house = building.GetComponent <House>();
         MaxPopulation += house.Room;
         es.MaxEnemies++;
         buildings.Add(house);
         HouseNumber++;
     }
     if (buildingtype == Building.BuildingType.Post)
     {
         Debug.Log("WTF4");
         Towers.Add(building);
     }
     if (buildingtype == Building.BuildingType.TownCenter)
     {
         TownCenter = building;
     }
     if (buildingtype == Building.BuildingType.ResourceStorage)
     {
         buildings.Add(building.GetComponent <StorageArea>());
     }
 }
Ejemplo n.º 6
0
 public void SetSelectedLocation(Location loc)
 {
     selectedLocation     = loc;
     selectedBuildingType = Building.BuildingType.Unassigned;
     UIController.Instance.RefreshUI();
     UIController.Instance.exploreUI.SwitchLocation();
 }
Ejemplo n.º 7
0
    public void ClickTile(Vector3Int position)
    {
        for (int i = 0; i < constructableGrid.Count; i++)
        {
            if (constructableGrid[i].Contains(position))
            {
                /// Prevent from immediately showing Building Information Panel after build.
                Resources.FindObjectsOfTypeAll <BuildingShopPanel>()[0].gameObject.SetActive(false);
                MainCanvas.FreezeCamera = true;
                StartCoroutine(DelaySetCanvasActive(false));
                /// -------------------------------------------------------------------------------

                Vector2 adjustedPosition   = CalculateBuildPosition(i);
                Building.BuildingType type = (Building.BuildingType)Enum.Parse(typeof(Building.BuildingType), SelectedBuildingName);

                Action <int> callback = (teamNumber) =>
                {
                    TeamSelectorCallback(type, teamNumber, adjustedPosition, i);
                };

                Builder builder = new Builder(type);
                ShowTeamSelectorPanel(builder, callback);

                return;
            }
        }
    }
Ejemplo n.º 8
0
    public Builder(Building.BuildingType type, Vector3 pos, int level, GameObject representGameObject, Construction constructionStatus)
    {
        this.id                  = GenerateID();
        this.type                = type;
        this.position            = pos;
        this.representGameObject = representGameObject;
        this.level               = level;
        this.constructionStatus  = constructionStatus;

        InitializeData();
    }
Ejemplo n.º 9
0
    public void SetStatsText(Building.BuildingType type, int current, int next, string descr)
    {
        string damage = type == Building.BuildingType.Tower ? "damage" : "production";

        string text = "Curent " + damage + ": " + current
                      + "\nNext level " + damage + ": " + next;


        _damageText.text = next > 0 ? _damageText.text = text : _damageText.text = String.Empty;
        _descrText.text  = descr;
    }
Ejemplo n.º 10
0
 public bool IsBuildingInProgress(Building.BuildingType buildingType)
 {
     foreach (Building building in unfinishedBuildings)
     {
         if (building.Type == buildingType)
         {
             return(true);
         }
     }
     return(false);
 }
Ejemplo n.º 11
0
    void TeamSelectorCallback(Building.BuildingType type, int teamNumber, Vector2 position, int removingTileIndex)
    {
        if (BuildManager.Instance.CreateNewBuilding(type, teamNumber, position))
        {
            constructableGrid.RemoveAt(removingTileIndex);
        }

        buildPermission = false;
        CancleShowAvailableTiles();

        return;
    }
Ejemplo n.º 12
0
    void TeamSelectorCallback(Building.BuildingType type, int teamNumber, Vector2 position, int removingTileIndex)
    {
        if (BuildingManager.Instance.CreateNewBuilding(type, teamNumber, position))
        {
            constructableGrid.RemoveAt(removingTileIndex);
        }

        buildPermission = false;
        CancleShowAvailableTiles();
        GameManager.FindInActiveObjectByName("GUICanvas").SetActive(true);
        return;
    }
Ejemplo n.º 13
0
 public bool AddBuilding(string name, GameObject go, Building.BuildingType t) //returns true if can add person else returns false
 {
     if (buildings.Count < _maxBuildings)
     {
         buildings.Add(new Building(name, go, t));
         return(true);
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 14
0
    public Builder(Building.BuildingType type, Vector3 pos)
    {
        this.id                 = GenerateID();
        this.type               = type;
        this.position           = pos;
        this.level              = 0;
        this.constructionStatus = new Construction {
            isConstructing = true, constructPointRequired = 10
        };

        InitializeData();
    }
Ejemplo n.º 15
0
    public void SetClickedBuildingText(Building.BuildingType type)
    {
        string line1 = "Building Type: " + type + "\n";
        string line2 = "" + "\n";
        string line3 = "" + "\n";
        string line4 = "" + "\n";
        string line5 = "" + "\n";
        string line6 = "" + "\n";
        string line7 = "" + "\n";

        layoutClickedText.text = line1 + line2 + line3 + line4 + line5 + line6 + line7;
    }
Ejemplo n.º 16
0
 public void undo(Building.BuildingType bt)
 {
     // for each buttons, if it equal bt then increment
     for (int i = 0; i < buildingItems.Count; i++)
     {
         if (bt.Equals(buildingItems[i].prefab.type))
         {
             amountTexts[i].text = (int.Parse(amountTexts[i].text) + 1) + "";
             return;
         }
     }
 }
Ejemplo n.º 17
0
    public List <Production> GetProductionAvailable(Building.BuildingType _type)
    {
        List <Production> retour = new List <Production>();

        foreach (Schematic schem in unlocks)
        {
            if (schem.type == _type)
            {
                retour.Add(schem.production);
            }
        }
        return(retour);
    }
Ejemplo n.º 18
0
    //Updates the resource upkeep of all buildings
    void UpdateEconomyTick()
    {
        //income
        _money += 100 * population_count;

        //upkeep cost
        foreach (var building_prefab in _buildingPrefabs)
        {
            Building.BuildingType type = building_prefab.GetComponent <Building>().type;
            int upkeep = building_prefab.GetComponent <Building>().upkeep;
            _money -= _buildingInstances[type] * upkeep;
        }
    }
Ejemplo n.º 19
0
 public void onDestroy(GameObject building, Building.BuildingType buildingtype)
 {
     if (buildingtype == Building.BuildingType.House)
     {
         MaxPopulation -= building.GetComponent <House>().Room;
         es.MaxEnemies--;
         houses.Remove(building);
     }
     if (buildingtype == Building.BuildingType.Post)
     {
         Towers.Remove(building);
     }
 }
        public int GetLevel(Building.BuildingType type)
        {
            int level = 0;

            switch (type)
            {
            case Building.BuildingType.Main:
                level = iMainLevel;
                break;

            case Building.BuildingType.GoldMine:
                level = iGoldMineLevel;
                break;

            case Building.BuildingType.Farm:
                level = iFarmLevel;
                break;

            case Building.BuildingType.Sawmill:
                level = iSawmillLevel;
                break;

            case Building.BuildingType.Quarry:
                level = iQuarryLevel;
                break;

            case Building.BuildingType.Archery:
                level = iArcheryLevel;
                break;

            case Building.BuildingType.Barracks:
                level = iBarracksLevel;
                break;

            case Building.BuildingType.Guard:
                level = iGuardLevel;
                break;

            case Building.BuildingType.Storage:
                level = iStorageLevel;
                break;

            case Building.BuildingType.Blacksmith:
                level = iBlacksmithLevelLevel;
                break;
            }
            return(level);
        }
    public bool CreateNewBuilding(Building.BuildingType type, int teamNumber, Vector2 position)
    {
        Builder laborCenter = allBuildings.SingleOrDefault(b => b.Type == Building.BuildingType.LaborCenter);

        if ((laborCenter == null || laborCenter.Level == 0) && gameObject.transform.Find("TimerCanvas").childCount >= 1)
        {
            Debug.LogWarning("Please Create LaborCenter to perform more Building task !");
            return(false);
        }

        if (!ConsumeBuildingCost(new Builder(type)))
        {
            Debug.LogWarning("Upgrade failed : Not enough Resources for upgrading");
            return(false);
        }

        Builder  builder   = new Builder(type, position);
        Building buildData = LoadManager.Instance.allBuildingData[builder.Type];

        builder.constructionStatus = new Builder.Construction {
            teamNumber = teamNumber, constructPointRequired = buildData.upgradePoint[builder.Level], isConstructing = true
        };

        InitiateBuilding(builder);

        if (laborCenter != null)
        {
            laborCenter.TeamLockState.Add(teamNumber);
        }

        NotificationManager.Instance.AddActivity(new ActivityInformation()
        {
            activityName       = $"CreateBuilding:{builder.Type}:{builder.ID}",
            activityType       = ActivityType.Build,
            teamNumber         = teamNumber,
            builderReferenceID = laborCenter.ID,
            requiredPoint      = buildData.upgradePoint[builder.Level],
            informationID      = builder.ID
        });

        EventManager.Instance.BuildingModified(builder.ID);
        Debug.Log("Create action complete.");
        LoadManager.Instance.SavePlayerDataToFireBase();

        return(true);
    }
        public void SetLevel(Building.BuildingType type, int level)
        {
            switch (type)
            {
            case Building.BuildingType.Main:
                iMainLevel = level;
                break;

            case Building.BuildingType.GoldMine:
                iGoldMineLevel = level;
                break;

            case Building.BuildingType.Farm:
                iFarmLevel = level;
                break;

            case Building.BuildingType.Sawmill:
                iSawmillLevel = level;
                break;

            case Building.BuildingType.Quarry:
                iQuarryLevel = level;
                break;

            case Building.BuildingType.Archery:
                iArcheryLevel = level;
                break;

            case Building.BuildingType.Barracks:
                iBarracksLevel = level;
                break;

            case Building.BuildingType.Guard:
                iGuardLevel = level;
                break;

            case Building.BuildingType.Storage:
                iStorageLevel = level;
                break;

            case Building.BuildingType.Blacksmith:
                iBlacksmithLevelLevel = level;
                break;
            }
        }
Ejemplo n.º 23
0
    public void RefreshPanel()
    {
        if (gameObject.activeSelf == false)
        {
            return;
        }

        Debug.Log("Refreshing Building Shop Panel . . .");

        Transform container = transform.Find("BackGroundPanel/Container");

        foreach (Transform buttonTranform in container)
        {
            Button button = buttonTranform.GetComponent <Button>();

            button.interactable = true;
            Building.BuildingType type = (Building.BuildingType)Enum.Parse(typeof(Building.BuildingType), button.name.Replace(":ShopButton", ""));
            Builder  builder           = BuildingManager.Instance.AllBuildings.FirstOrDefault(b => b.Type == type);
            Building buildingData      = LoadManager.Instance.allBuildingData[type];

            if (builder != default(Builder))
            {
                button.transform.Find("Information/Amount").GetComponent <Text>().text = $"{builder.CurrentActiveAmount}/{builder.maxActiveAmount}";
                if (builder.CurrentActiveAmount == builder.maxActiveAmount)
                {
                    button.interactable = false;
                }
            }
            else
            {
                button.transform.Find("Information/Amount").GetComponent <Text>().text = $"0/{buildingData.maxActiveAmount}";
            }

            if (!ItemManager.Instance.IsAffordable(buildingData.buildingCost[0]))
            {
                button.image.color  = new Color(1f, 0.5f, 0.5f, 1f);
                button.interactable = false;
            }
            else
            {
                button.image.color = Color.white;
            }
        }
    }
    public void ForceCreateBuilding(Building.BuildingType type, int cellIndex)
    {
        MapManager mapManager = MapManager.Instance;
        var        position   = mapManager.CalculateBuildPosition(cellIndex);

        Builder  builder   = new Builder(type, position);
        Building buildData = LoadManager.Instance.allBuildingData[builder.Type];

        builder.constructionStatus = new Builder.Construction()
        {
            isConstructing = false
        };

        builder.Level = 1;


        InitiateBuilding(builder);

        mapManager.constructableGrid.RemoveAt(cellIndex);
    }
Ejemplo n.º 25
0
    void SpawnBuilding(Building.BuildingType buildingType)
    {
        Building building = null;
        Vector2  pos      = GenerateValidPosition();

        if (pos == Vector2.zero)
        {
            return;
        }
        switch (buildingType)
        {
        case Building.BuildingType.Nexus:
            building = Instantiate(Services.Prefabs.Nexus, Services.Main.transform).
                       GetComponent <Building>();
            pos = nexusSpawnPos;
            break;

        case Building.BuildingType.Mine:
            building = Instantiate(Services.Prefabs.Mine, Services.Main.transform).
                       GetComponent <Building>();
            break;

        case Building.BuildingType.SpeedBoost:
            building = Instantiate(Services.Prefabs.SpeedBooster, Services.Main.transform).
                       GetComponent <Building>();
            break;

        case Building.BuildingType.Market:
            building = Instantiate(Services.Prefabs.Market, Services.Main.transform).
                       GetComponent <Building>();
            break;

        default:
            break;
        }
        building.Init(pos);
        buildings.Add(building);
    }
Ejemplo n.º 26
0
    public bool hasPassed()
    {
        foreach (SolutionItem si in solutions)
        {
            Upgrade.UpgradeType uType = Upgrade.UpgradeType.None;
            if (si.platform.upgrade != null)
            {
                uType = si.platform.upgrade.type;
            }
            Building.BuildingType bType = Building.BuildingType.None;
            if (si.platform.building != null)
            {
                bType = si.platform.building.type;
            }

            if (!(si.upgrade == uType && si.building == bType))
            {
                return(false);
            }
        }

        return(true);
    }
    /// <summary>
    /// Whether the building/upgrade placed here are allowed
    /// </summary>
    /// <returns></returns>
    public bool isCorrect()
    {
        Building.BuildingType thisBType = Building.BuildingType.None;
        if (building != null)
        {
            thisBType = building.type;
        }
        Upgrade.UpgradeType thisUType = Upgrade.UpgradeType.None;
        if (upgrade != null)
        {
            thisUType = upgrade.type;
        }

        foreach (AllowedPlacement ap in allowedPlacements)
        {
            if ((ap.building == thisBType || ap.building == Building.BuildingType.Any) &&
                (ap.upgrade == thisUType || ap.upgrade == Upgrade.UpgradeType.Any))
            {
                return(true);
            }
        }
        return(thisBType == Building.BuildingType.None && thisUType == Upgrade.UpgradeType.None);
    }
Ejemplo n.º 28
0
    public static Building FindNearBuilding(Building.BuildingType typeBuilding, Vector3 currentPosition)
    {
        if (GameObject.FindObjectsOfType <Building>() == null)
        {
            return(null);
        }
        float    distanse     = float.MaxValue;
        Building findBuilding = null;

        Building[] buildings = GameObject.FindObjectsOfType <Building>();
        for (int i = 0; i < buildings.Length; i++)
        {
            if (buildings[i].GetBuildingType() == typeBuilding)
            {
                Vector3 buildingsPosition = buildings[i].gameObject.transform.position;
                if (Vector3.Distance(buildingsPosition, currentPosition) < distanse)
                {
                    findBuilding = buildings[i];
                    distanse     = Vector3.Distance(buildingsPosition, currentPosition);
                }
            }
        }
        return(findBuilding);
    }
Ejemplo n.º 29
0
 public BuildingData(string name, double Price, double Earnings, BasicGeoposition Position, bool Bought, Building.BuildingType Type, DateTime dateTimeAsDate)
 {
     this.name             = name;
     this.Price            = Price;
     this.Earnings         = Earnings;
     this.Position         = Position;
     this.Bought           = Bought;
     this.Type             = Type;
     this.dateTimeAsString = dateTimeAsDate.ToString();
 }
Ejemplo n.º 30
0
 public void SetSelectedBuildingType(Building.BuildingType type)
 {
     selectedBuildingType = type;
     UIController.Instance.RefreshUI();
 }
Ejemplo n.º 31
0
 public void BuildBuilding(Building.BuildingType buildingType, Vector2 position)
 {
     peonObjective = PeonObjective.GoToBuild;
     this.buildingType = buildingType;
     MoveToLocation(position);
 }