public Resources_Building(string id,
	                            string name,
	                            string image,
	                            Enums.BuildingType type,
	                            int money,
	                            int income,
	                            int expenses,
	                            int rent,
	                            int payment,
	                            Enums.DayOfTheWeek day,
	                            Resources_InventoryShop inventory)
        : base(id,
		        name,
		        image,
		        money,
		        income,
		        expenses)
    {
        _type = type;
        _payment = payment;
        _day = day;
        _type = type;
        _inventory = inventory;

        Manager_Resources.NewBuilding(this);
    }
示例#2
0
    static public Enums.BuildingType BuildingTypeFromStatic(string text)
    {
        Enums.BuildingType value = Enums.BuildingType.building_empty;
        switch (text)
        {
        case "building_jewelry":                value = Enums.BuildingType.building_jewelry; break;

        case "building_clothes":                value = Enums.BuildingType.building_clothes; break;

        case "building_gym":                    value = Enums.BuildingType.building_gym; break;

        case "building_restaurant":             value = Enums.BuildingType.building_restaurant; break;

        case "building_butcher":                value = Enums.BuildingType.building_butcher; break;

        case "building_safehouse":              value = Enums.BuildingType.building_safehouse; break;

        case "building_bar":                    value = Enums.BuildingType.building_bar; break;

        case "building_police":                 value = Enums.BuildingType.building_police; break;

        case "building_liquor":                 value = Enums.BuildingType.building_liquor; break;

        case "building_tobacco":                value = Enums.BuildingType.building_tobacco; break;

        case "building_grocery":                value = Enums.BuildingType.building_grocery; break;

        case "building_strip_club":             value = Enums.BuildingType.building_strip_club; break;
        }
        return(value);
    }
示例#3
0
    private IEnumerator Building(Enums.BuildingType type)
    {
        Zone newBuilding = Instantiate(PrefabsHolder.Instance.GetZonePrefab(type)).GetComponent <Zone>();

        newBuilding.BeforeBuildingActions(type);
        RaycastHit hit;

        while (Physics.Raycast(Camera.main.ScreenPointToRay(Input.mousePosition), out hit))
        {
            newBuilding.transform.position = hit.point;

            if (newBuilding.IsBuildable() && hit.collider.gameObject.tag.Equals("Chunk"))
            {
                if (Input.GetKeyDown("r"))
                {
                    newBuilding.transform.Rotate(Vector3.up, 90);
                }

                if (Input.GetMouseButton(0))
                {
                    newBuilding.AfterBuildingActions();
                    Player.Instance.building = false;
                    yield break;
                }
            }

            if (Input.GetMouseButton(1))
            {
                Object.Destroy(newBuilding.gameObject);
                Player.Instance.building = false;
                yield break;
            }
            yield return(null);
        }
    }
示例#4
0
    public GameObject GetBuilding(Enums.BuildingType type)
    {
        switch (type)
        {
        case Enums.BuildingType.Hut:
            return(Hut);

        case Enums.BuildingType.BigHut:
            return(BigHut);

        case Enums.BuildingType.WoodHouse:
            return(WoodHouse);

        case Enums.BuildingType.Mine:
            return(Mine);

        case Enums.BuildingType.Hunter:
            return(Hunter);

        case Enums.BuildingType.LumberHut:
            return(LumberHut);

        case Enums.BuildingType.Forager:
            return(Forager);

        case Enums.BuildingType.SmallFarm:
            return(SmallFarm);
        }
        return(null);
    }
示例#5
0
    public Resources_Building(string id,
                              string name,
                              string image,
                              Enums.BuildingType type,
                              int money,
                              int income,
                              int expenses,
                              int rent,
                              int payment,
                              Enums.DayOfTheWeek day,
                              Resources_InventoryShop inventory)
        : base(id,
               name,
               image,
               money,
               income,
               expenses)
    {
        _type      = type;
        _payment   = payment;
        _day       = day;
        _type      = type;
        _inventory = inventory;

        Manager_Resources.NewBuilding(this);
    }
示例#6
0
 public zon(pos3 location, pos3 size, Enums.BuildingType type, byte lvl, byte tier, bool builded, byte floor)
 {
     this.location = location;
     this.size     = size;
     this.type     = type;
     this.lvl      = lvl;
     this.tier     = tier;
     this.builded  = builded;
     this.floor    = floor;
 }
示例#7
0
    public override void BeforeBuildingActions(Enums.BuildingType newType)
    {
        type     = newType;
        building = Instantiate(PrefabsHolder.Instance.GetBuilding(type), transform.position, Quaternion.identity);
        building.transform.parent = this.transform;

        SetBoundingBox();

        foreach (Collider c in this.gameObject.GetComponentsInChildren <Collider>())
        {
            c.enabled = false;
        }
        box.enabled      = true;
        gameObject.layer = 2;
    }
示例#8
0
    public override void Promote(Enums.BuildingType newType)
    {
        UnSetInhabitants();

        Destroy(building);

        type     = newType;
        building = Instantiate(PrefabsHolder.Instance.GetBuilding(type), transform.position, Quaternion.identity);
        building.transform.parent = this.transform;
        SetBoundingBox();

        Enter();

        building.GetComponent <BuildingSuicideScript>().OnBuildingFinished += OnPopulationBuildingReady;
        building.GetComponent <BuildingSuicideScript>().Run();
    }
示例#9
0
    public override void Promote(Enums.BuildingType newType)
    {
        StopAllCoroutines();
        FireWorkers();
        Production.Clear();
        Destroy(building);

        type     = newType;
        building = Instantiate(PrefabsHolder.Instance.GetBuilding(type), transform.position, Quaternion.identity);
        building.transform.parent = this.transform;
        SetBoundingBox();

        Enter();

        building.GetComponent <BuildingSuicideScript>().OnBuildingFinished += OnProductionBuildingReady;
        building.GetComponent <BuildingSuicideScript>().Run();
    }
示例#10
0
    public GameObject GetZonePrefab(Enums.BuildingType type)
    {
        switch (type)
        {
        case Enums.BuildingType.Hut:
        case Enums.BuildingType.BigHut:
        case Enums.BuildingType.WoodHouse:
            return(PopulationZone);

        case Enums.BuildingType.Mine:
        case Enums.BuildingType.Forager:
        case Enums.BuildingType.Hunter:
        case Enums.BuildingType.LumberHut:
        case Enums.BuildingType.LumberHouse:
            return(ProductionZone);
        }
        return(null);
    }
示例#11
0
 public void SetButtons(string FirstBranchName, string SecondBranchName, Enums.BuildingType firstBranch, Enums.BuildingType secondBranch, Zone z)
 {
     if (firstBranch != Enums.BuildingType.None)
     {
         BuildingFirstPromotionButton.gameObject.SetActive(true);
         BuildingFirstPromotionText.text = FirstBranchName;
         BuildingFirstPromotionButton.onClick.AddListener(() => z.Promote(firstBranch));
     }
     else
     {
         BuildingFirstPromotionButton.gameObject.SetActive(false);
     }
     if (secondBranch != Enums.BuildingType.None)
     {
         BuildingSecondPromotionButton.gameObject.SetActive(true);
         BuildingSecondPromotionText.text = SecondBranchName;
         BuildingSecondPromotionButton.onClick.AddListener(() => z.Promote(secondBranch));
     }
     else
     {
         BuildingSecondPromotionButton.gameObject.SetActive(false);
     }
 }
示例#12
0
 public void Build(Enums.BuildingType type)
 {
     StartCoroutine(Building(type));
 }
示例#13
0
 public virtual void Promote(Enums.BuildingType newType)
 {
 }
示例#14
0
 public virtual void BeforeBuildingActions(Enums.BuildingType newType)
 {
 }