private BuildMenuData GetMenuData(BuildingSlot slot)
    {
        BuildMenuData menuData = new BuildMenuData();

        menuData.position = Camera.main.WorldToScreenPoint(slot.transform.position);
        if (slot.Occupied)
        {
            menuData.BuildingData     = _buildingsData[slot.Building.Type];
            menuData.BuildingLevel    = slot.Building.Level;
            menuData.MaxBuildingLevel = _buildingsData[slot.Building.Type].MaxLevel;
        }

        return(menuData);
    }
Пример #2
0
    public void Initialize(BuildMenuData data)
    {
        if (data.BuildingLevel + 1 < data.MaxBuildingLevel)
        {
            _upgradeIcon.Initialize(_gameSystem, data.BuildingData.Data[data.BuildingLevel + 1]); // TODO: dohvati iz gamesystema
            _sellLabel.text = $"{Mathf.FloorToInt(_gameSystem.BuilderController.SelectedBuildingPrice * 0.75f)} $";
        }
        else
        {
            _upgradeIcon.gameObject.SetActive(false);
        }


        transform.position = data.position;

        Refresh();
    }
Пример #3
0
        public void Patch()
        {
            StructureTypeEnum = EnumCache <Enums.StructureType> .Instance.Patch(StructureTypeEnumName);

            PatchedStructureTypeEnum(StructureTypeEnum);
            SetupPrefabDuringPatchtime(Prefab);
            ActivePlaceableStructureCreators.Add <T>(this, StructureTypeEnum);

            if (ShouldAppearInBuildMenu)
            {
                BuildMenuData.AddBuildItem(new BuildMenuItem(
                                               sprite: ItemBuildSprite,
                                               itemName: $"{IObjectName} (${IObjectCost})",
                                               onClick: () => BuildingController.Instance.SpawnStructure(StructureTypeEnum)
                                               ));
            }

            Utilities.Logger.Print($"Registered PlaceableStructureCreator of Controller {typeof(T).Name}");
        }
    public void ShowUpgradeMenu(BuildMenuData data)
    {
        _upgradeMenu.gameObject.SetActive(true);

        _upgradeMenu.Initialize(data);
    }
    public void ShowBuildMenu(BuildMenuData data)
    {
        _buildMenu.gameObject.SetActive(true);

        _buildMenu.Initilaize(data);
    }