Example #1
0
    public void ControlPlayable()
    {
        Item[]      items      = levelScrollManager.GetItems();
        int         index      = snapManager.SnapIndex;
        Item        centerItem = items[index].GetComponent <Item>();
        MapItemData itemData   = centerItem.Data.mapData;

        switch (itemData.basicData.state)
        {
        case ItemState.Locked:
            buttonPlay.SetActive(false);

            string levelName = centerItem.name;
            levelName = levelName.TrimStart(container.ItemName.ToCharArray());
            int levelNo;
            if (System.Int32.TryParse(levelName, out levelNo))
            {
                textLocked.text = "reach level " + levelNo.ToString();
            }

            levelInfo.SetActive(true);
            break;

        case ItemState.Unlocked:
            binder.SetMapIndex(index);
            levelInfo.SetActive(false);
            buttonPlay.SetActive(true);
            break;

        default: throw new System.Exception("Something is wrong at PlayController.");
        }
    }
Example #2
0
    public void HandleItemButton()
    {
        index      = snapManager.SnapIndex;
        centerItem = items[index];
        itemData   = centerItem.Data;

        if (actionType == ActionType.Shop)
        {
            coinCount = uiBinder.GetIndicatorsData().coinCount;
        }

        switch (itemData.type)
        {
        case ItemType.Map: {
            switch (itemData.mapData.basicData.state)
            {
            case ItemState.Locked:
                playButton.SetActive(false);

                reachLevelText.text = "reach level " + itemData.mapData.basicData.requirement.ToString();
                levelInfoText.SetActive(true);
                break;

            case ItemState.Unlocked:
                uiBinder.SetMapIndex(index);

                levelInfoText.SetActive(false);
                playButton.SetActive(true);
                break;

            default:
                throw new System.Exception("Map state has a problem.");
            }
            break;
        }

        case ItemType.Body: {
            if (!isBodyListenersAdded && IsActivated)
            {
                HandleBodyListeners();
            }

            switch (centerItem.Data.bodyData.payableData.state)
            {
            case ShopItemState.Locked: {
                if (coinCount >= centerItem.Data.bodyData.basicData.requirement)
                {
                    ActivateUnlockedPayButton(centerItem.Data.bodyData.basicData.requirement.ToString());
                }
                else
                {
                    ActivateLockedPayButton(centerItem.Data.bodyData.basicData.requirement.ToString());
                }
                break;
            }

            case ShopItemState.Unlocked: {
                ActivateUseButton();
            }
            break;

            default:
                break;
            }
            break;
        }

        case ItemType.Extra: {
            if (!isExtraListenersAdded && IsActivated)
            {
                HandleExtraListeners();
            }

            switch (centerItem.Data.extraData.payableData.state)
            {
            case ShopItemState.Locked:
                if (coinCount >= centerItem.Data.extraData.basicData.requirement)
                {
                    ActivateUnlockedPayButton(centerItem.Data.extraData.basicData.requirement.ToString());
                }
                else
                {
                    ActivateLockedPayButton(centerItem.Data.extraData.basicData.requirement.ToString());
                }
                break;

            case ShopItemState.Unlocked: {
                ActivateUseButton();
            }
            break;

            default:
                break;
            }
            break;
        }

        case ItemType.Special:
            if (!isSpecialListenersAdded && IsActivated)
            {
                HandleSpecialListeners();
            }

            switch (centerItem.Data.specialData.payableData.state)
            {
            case ShopItemState.Locked:
                if (coinCount >= centerItem.Data.specialData.basicData.requirement)
                {
                    ActivateUnlockedPayButton(centerItem.Data.specialData.basicData.requirement.ToString());
                }
                else
                {
                    ActivateLockedPayButton(centerItem.Data.specialData.basicData.requirement.ToString());
                }
                break;

            case ShopItemState.Unlocked:
                ActivateUseButton();
                break;

            default:
                break;
            }
            break;

        case ItemType.Flag: {
            if (!isFlagListenersAdded && IsActivated)
            {
                HandleFlagListeners();
            }
            payUnlockedButton.SetActive(false);
            payLockedButton.SetActive(false);
            useButton.SetActive(true);
            break;
        }

        default:
            throw new System.Exception("Item Type mismatch.");
        }
    }