Exemplo n.º 1
0
        void SelectReward(RewardItem _rewardData)
        {
            showSwatchesTween.Rewind();
            bool isTextureOrDecal = currCategory == AnturaSpaceCategoryButton.AnturaSpaceCategory.Texture ||
                                    currCategory == AnturaSpaceCategoryButton.AnturaSpaceCategory.Decal;

            BTRemoveMods.gameObject.SetActive(!isTextureOrDecal && _rewardData != null);
            if (_rewardData == null)
            {
                foreach (AnturaSpaceItemButton item in btsItems)
                {
                    item.Toggle(false);
                }
                if (currCategory == AnturaSpaceCategoryButton.AnturaSpaceCategory.Ears)
                {
                    AnturaModelManager.Instance.ClearLoadedRewardInCategory("EAR_L");
                    AnturaModelManager.Instance.ClearLoadedRewardInCategory("EAR_R");
                }
                else
                {
                    AnturaModelManager.Instance.ClearLoadedRewardInCategory(currCategory.ToString());
                }
                return;
            }

            foreach (AnturaSpaceItemButton item in btsItems)
            {
                item.Toggle(item.Data == _rewardData);
            }
            currSwatchesDatas = RewardSystemManager.SelectRewardItem(_rewardData.ID, currRewardType);
            if (currSwatchesDatas.Count == 0)
            {
                Debug.Log("No color swatches for the selected reward!");
                return;
            }

            // Hide non-existent swatches
            for (int i = currSwatchesDatas.Count - 1; i < btsSwatches.Length; ++i)
            {
                btsSwatches[i].gameObject.SetActive(false);
            }
            // Setup and show swatches
            RewardColorItem selectedSwatchData = null;

            for (int i = 0; i < currSwatchesDatas.Count; ++i)
            {
                RewardColorItem         swatchData = currSwatchesDatas[i];
                AnturaSpaceSwatchButton swatch     = btsSwatches[i];
                swatch.gameObject.SetActive(true);
                swatch.Data = swatchData;
                if (swatchData != null)
                {
                    swatch.SetAsNew(swatchData.IsNew);
                    swatch.Toggle(swatchData.IsSelected);
                    swatch.SetColors(GenericUtilities.HexToColor(swatchData.Color1RGB), GenericUtilities.HexToColor(swatchData.Color2RGB));
                    if (swatchData.IsSelected)
                    {
                        selectedSwatchData = swatchData;
                    }
                }
                else
                {
                    swatch.Toggle(false);
                }
                swatch.Lock(swatchData == null);
            }

            SwatchesContainer.gameObject.SetActive(true);
            showSwatchesTween.PlayForward();

            // Select eventual color
            if (selectedSwatchData != null)
            {
                SelectSwatch(selectedSwatchData);
            }
        }
Exemplo n.º 2
0
        IEnumerator CO_SelectCategory(AnturaSpaceCategoryButton.AnturaSpaceCategory _category)
        {
            BTRemoveMods.gameObject.SetActive(false);

            // Get rewards list
            currCategory   = _category;
            currRewardType = CategoryToRewardType(_category);
            bool useImages = _category == AnturaSpaceCategoryButton.AnturaSpaceCategory.Texture || _category == AnturaSpaceCategoryButton.AnturaSpaceCategory.Decal;

            foreach (AnturaSpaceItemButton item in btsItems)
            {
                item.SetImage(!useImages);
            }
            if (_category == AnturaSpaceCategoryButton.AnturaSpaceCategory.Ears)
            {
                currRewardDatas = RewardSystemManager.GetRewardItemsByRewardType(currRewardType, rewardsContainers, "EAR_L");
                List <Transform> altRewardContainers = new List <Transform>(rewardsContainers);
                altRewardContainers.RemoveRange(0, currRewardDatas.Count);
                currRewardDatas.AddRange(RewardSystemManager.GetRewardItemsByRewardType(currRewardType, altRewardContainers, "EAR_R"));
            }
            else
            {
                currRewardDatas = RewardSystemManager.GetRewardItemsByRewardType(currRewardType, useImages ? rewardsImagesContainers : rewardsContainers, _category.ToString());
            }
            yield return(null);

            // Hide non-existent items
            for (int i = currRewardDatas.Count - 1; i < btsItems.Length; ++i)
            {
                btsItems[i].gameObject.SetActive(false);
            }
            // Setup and show items
            RewardItem selectedRewardData = null;

            for (int i = 0; i < currRewardDatas.Count; ++i)
            {
                RewardItem            rewardData = currRewardDatas[i];
                AnturaSpaceItemButton item       = btsItems[i];
                item.gameObject.SetActive(true);
                item.Data = rewardData;
                if (rewardData != null)
                {
                    if (!useImages)
                    {
                        item.RewardContainer.gameObject.SetLayerRecursive(GenericUtilities.LayerMaskToIndex(RewardsLayer));
                        CameraHelper.FitRewardToUICamera(item.RewardContainer.GetChild(0), item.RewardCamera, FlipRewards);
                    }
                    item.SetAsNew(rewardData.IsNew);
                    item.Toggle(rewardData.IsSelected);
                    if (rewardData.IsSelected)
                    {
                        selectedRewardData = rewardData;
                    }
                }
                else
                {
                    item.Toggle(false);
                }
                item.Lock(rewardData == null);
            }

            ItemsContainer.gameObject.SetActive(true);
            showItemsTween.PlayForward();

            // Select eventual reward
            if (selectedRewardData != null)
            {
                SelectReward(selectedRewardData);
            }
            else
            {
                showSwatchesTween.Rewind();
            }
        }