public void Init(AttractionType typeParam, List <UserProductData> userProductDataList)
    {
        type = typeParam;
        attractionsDataAsset = GameManager.Instance.GetAttractionsData();
        AttractionsListData data = dataSO.listData.Find(x => x.type == type);

        if (data == null)
        {
            return; // todo add error?
        }

        switch (type)
        {
        case AttractionType.RIDE:
        {
            InitRideList(data, userProductDataList);
        }
        break;

        case AttractionType.FOOD_AND_BEVERAGE:
        {
            InitFoodAndBeverageList(data, userProductDataList);
        }
        break;

        case AttractionType.RECREATION_AREA:
        {
            InitRecreationAreaList(data, userProductDataList);
        }
        break;

        default:
            break;
        }
    }
示例#2
0
    public void InitUIElements()
    {
        currencyCostIcon.gameObject.SetActive(false);
        if (_foodAndBeverageData.state == ItemState.LOCKED || _foodAndBeverageData.state == ItemState.TO_BE_UNLOCKED)
        {
            lockedBox.SetActive(true);
            idleBox.SetActive(false);
            lockedFillImage.sprite = _foodAndBeverageData.icon;
            lockedNameText.gameObject.GetComponent <LocalizationComponent>().SetTheLocalizedText(_foodAndBeverageData.name);
            tapToUnlockText.gameObject.SetActive(_foodAndBeverageData.state == ItemState.TO_BE_UNLOCKED);
            locketAnim.gameObject.SetActive(_foodAndBeverageData.state == ItemState.LOCKED);
            //lockedInfoText.gameObject.SetActive(_rideData.state == ItemState.LOCKED);
            if (_foodAndBeverageData.state == ItemState.LOCKED)
            {
                lockedInfoText.gameObject.GetComponent <LocalizationComponent>().SetTheLocalizedText();
            }
            else
            {
                AttractionsDataAsset    attractionsDataAsset = GameManager.Instance.GetAttractionsData();
                AttractionDataAssetItem assetDataItem        = attractionsDataAsset.attractionsDataAsset.Find
                                                                   (a => a.gameEventType == attractionsDataAsset.currentEvent);
                BasicAtractionData attrationData     = assetDataItem.GetBasicAttractionForGUID(guid);
                string             costText          = LocalizationManager.Instance.GetTextForKey("UNLOCK_COST");
                UnlockCondition    currencyCondition = attrationData.unlockConditionList.Find(a => a.unlockConditionType == UnlockConditionType.PAY_CURRENCY);
                if (currencyCondition != null)
                {
                    lockedInfoText.text = costText + currencyCondition.unlockConditionValue.currencyAmount.amount.ToString();
                    CurrencyData currencyData = GameManager.Instance.GetGameData().currencies.Find(
                        a => a.type == currencyCondition.unlockConditionValue.currencyAmount.type);
                    currencyCostIcon.gameObject.SetActive(true);
                    currencyCostIcon.sprite = currencyData.icon;
                }
            }
        }

        if (_foodAndBeverageData.state == ItemState.IDLE)
        {
            lockedBox.SetActive(false);
            idleBox.SetActive(true);

            icon.sprite = _foodAndBeverageData.icon;
            nameText.gameObject.GetComponent <LocalizationComponent>().SetTheLocalizedText(_foodAndBeverageData.name);
            descriptionText.gameObject.GetComponent <LocalizationComponent>().SetTheLocalizedText(_foodAndBeverageData.description);
            amountText.text = _userProductData.count.ToString();

            buyBtnText.text = LocalizationManager.Instance.GetTextForKey(buyBtnText.GetComponent <LocalizationComponent>().localizationKey)
                              + " " + _foodAndBeverageData.initialCost.amount.ToString();
            buyBtnCurrencyIcon.sprite = gameAsset.currencies.Find(x => x.type == _foodAndBeverageData.initialCost.type).icon;
            profitDescriptionBox.Init(_foodAndBeverageData.initialProfits);
        }
        //check state
    }
示例#3
0
    //TODO - add card!

    public override void Init(BasePopupData data)
    {
        base.Init(data);
        userInventory = GameManager.Instance.GetUserInventory();
        UserProductData         inventoryData        = userInventory.productDataList.Find(x => x.guid == ((AtractionPopupData)data).guid);
        AttractionsDataAsset    attractionsDataAsset = GameManager.Instance.GetAttractionsData();
        AttractionDataAssetItem assetDataItem        = attractionsDataAsset.attractionsDataAsset.Find
                                                           (a => a.gameEventType == attractionsDataAsset.currentEvent);
        RideData rideData = assetDataItem.rideData.Find(a => a.guid == ((AtractionPopupData)data).guid);

        if (rideData != null)
        {
            InitRidePopup(rideData, inventoryData);
        }
    }
    public override void Init(BasePopupData data)
    {
        base.Init(data);
        _unlockConditionsList.Clear();
        AttractionsDataAsset    attractionsDataAsset = GameManager.Instance.GetAttractionsData();
        AttractionDataAssetItem assetDataItem        = attractionsDataAsset.attractionsDataAsset.Find
                                                           (a => a.gameEventType == attractionsDataAsset.currentEvent);
        BasicAtractionData attrationData = assetDataItem.GetBasicAttractionForGUID(((AttractionUnlockPopupData)data).guid);

        titleText.GetComponent <LocalizationComponent>().SetTheLocalizedText(attrationData.name);
        icon.sprite = attrationData.icon;
        foreach (UnlockCondition condition in attrationData.unlockConditionList)
        {
            if (condition.unlockConditionType != UnlockConditionType.FREE)
            {
                UnlockConditionComponent newCondition = Instantiate <UnlockConditionComponent>(
                    unlockConditionComponentPrefab, transform.position, Quaternion.identity);
                newCondition.transform.SetParent(unlockConditionsListParent, false);
                newCondition.Init(condition);
                _unlockConditionsList.Add(newCondition);
            }
        }
    }
    public void Init()
    {
        userInventory = GameManager.Instance.GetUserInventory();
        foreach (AttractionType type in Enum.GetValues(typeof(AttractionType)))
        {
            List <UserProductData> attractionsList      = userInventory.GetAllAttractionsOfType(type);
            AttractionsDataAsset   attractionsDataAsset = GameManager.Instance.GetAttractionsData();

            BasicAtractionData nextRide = null;
            TabItemState       tabState = TabItemState.IDLE;
            if (type == AttractionType.RIDE)
            {
                tabState = TabItemState.HIGHLIGHT;
            }
            if (attractionsList.Count == 0)
            {
                tabState = TabItemState.LOCKED; //IFATUtodo - this will probably be changed
            }

            List <UserProductData> rideUserItems = attractionsList.FindAll(a => a.type == type);
            if (rideUserItems != null && rideUserItems.Count > 0) // daca ai cel putin un element
            {
                Guid nextElementGuid;
                if (rideUserItems.Count > 0)
                {
                    nextElementGuid = rideUserItems[rideUserItems.Count - 1].guid;
                }
                switch (type)
                {
                case AttractionType.RIDE:
                {
                    List <RideData> assetData        = attractionsDataAsset.GetCurrentEventAssets().rideData;
                    int             lastElementIndex = 0;
                    if (rideUserItems.Count > 0)
                    {
                        lastElementIndex = assetData.FindIndex(a => a.guid == nextElementGuid);
                        if (assetData.Count > lastElementIndex + 1)
                        {
                            nextRide = assetData[lastElementIndex + 1];
                        }
                    }
                    else
                    {
                        nextRide = assetData[0];
                    }
                }
                break;

                case AttractionType.FOOD_AND_BEVERAGE:
                {
                    List <FoodAndBeverageData> assetData = attractionsDataAsset.GetCurrentEventAssets().foodAndBeverageData;
                    int lastElementIndex = 0;
                    if (rideUserItems.Count > 0)
                    {
                        lastElementIndex = assetData.FindIndex(a => a.guid == nextElementGuid);
                        if (assetData.Count > lastElementIndex + 1)
                        {
                            nextRide = assetData[lastElementIndex + 1];
                        }
                    }
                    else
                    {
                        nextRide = assetData[0];
                    }
                }
                break;

                case AttractionType.RECREATION_AREA:
                {
                    List <RecreationAreaData> assetData = attractionsDataAsset.GetCurrentEventAssets().recreationAreaData;
                    int lastElementIndex = 0;
                    if (rideUserItems.Count > 0)
                    {
                        lastElementIndex = assetData.FindIndex(a => a.guid == nextElementGuid);
                        if (assetData.Count > lastElementIndex + 1)
                        {
                            nextRide = assetData[lastElementIndex + 1];
                        }
                    }
                    else
                    {
                        nextRide = assetData[0];
                    }
                }
                break;

                default:
                    break;
                }
                if (nextRide != null)
                {
                    userInventory.OnItemBought(nextRide.guid, type, 0);

                    attractionsList.Add(new UserProductData
                    {
                        count      = 0,
                        guid       = nextRide.guid,
                        guidString = nextRide.guid.ToString(),
                        level      = 0,
                        type       = type
                    });
                }
            }

            if (tabState == TabItemState.LOCKED && nextRide != null)
            {
                bool checkNextRideUnlockConditions = UnlockManager.Instance.CheckUnlockConditions(nextRide.unlockConditionList);
                if (checkNextRideUnlockConditions)
                {
                    tabState = TabItemState.UNLOCKED;
                }
            }

            AttractionItem newItem = new AttractionItem();
            newItem.Init(type, tabState, attractionData, tabParent, listParent,
                         attractionsTabObj, attractionsListObj, attractionsList);
            //  newItem.onClick += OnTabCliked;
            attractionItemList.Add(newItem);
        }
    }