示例#1
0
    //show item at model(preview)
    private void OnItemPressed(GameObject item)
    {
        ObjectsPreviewing.Clear();
        var itemCFG = item.GetComponent <RoomItemDisplay>().itemConfig;

        activeVariant = currentRoomConf?.GetActiveVariant(itemCFG);

        foreach (GameObject it in roomItems)
        {
            if (it.name == itemCFG.furnitureType.ToString())
            {
                camMov.target = it.transform;
                ObjectsPreviewing.Add(it);
                if (itemCFG.mesh != null)
                {
                    it.GetComponent <MeshFilter>().mesh = itemCFG.mesh;
                }

                var itemRenderer = it.GetComponent <MeshRenderer>();
                itemRenderer.material       = itemCFG.material;
                itemRenderer.material.color = currentRoomConf?.ItemIsInConfig(itemCFG) == true?
                                              currentRoomConf.GetActiveVariant(itemCFG).color : itemCFG.variants[0].color;
            }
        }
        itemPreviewing = itemCFG;
    }
示例#2
0
 private void OnRoomItemBought(RoomItemConfig cfg, ItemVariant var)
 {
     if (variant == var)
     {
         lockIMG?.gameObject.SetActive(false);
     }
 }
示例#3
0
    private void OnRoomItemPicked(RoomItemConfig cfg)
    {
        var activeVar = SaveManager.Instance.LoadRoomSet().GetActiveVariant(cfg);

        bool isActive = activeVar == variant ? true : false;

        activeTick.SetActive(isActive);
    }
示例#4
0
    public void AddItemToConfig(RoomItemConfig item)
    {
        ItemVariant var = new ItemVariant();

        string itemID    = item.ConfigId;
        string variantID = var.ConfigId;

        pickedItemsAndVariants.Add(itemID + "+" + variantID);
    }
示例#5
0
    public void AddRoomItemToShopList(RoomItemConfig conf, ItemVariant activeVar)
    {
        var list = shopDataConfig.boughtRoomItems;
        var pair = string.Concat(conf.ConfigId, '+', activeVar.ConfigId);

        if (list.Contains(pair))
        {
            return;
        }
        list.Add(pair);
    }
示例#6
0
 public bool ItemAndVarIsInConfig(RoomItemConfig item, ItemVariant var)
 {
     foreach (string dirtyPair in pickedItemsAndVariants)
     {
         string[] strs = dirtyPair.Split('+');
         if (strs.Contains(item.ConfigId) && strs.Contains(var.ConfigId))
         {
             return(true);
         }
     }
     return(false);
 }
示例#7
0
    public void Buy(RoomItemConfig cfg, ItemVariant varitant, int cost, CurrencyType type)
    {
        switch (type)
        {
        case CurrencyType.SOFT:
            saveManager.SpendSoftCurrency(cost);
            break;

        case CurrencyType.HARD:
            saveManager.SpendHardCurrency(cost);
            break;
        }
        saveManager.AddRoomItemToShopList(cfg, varitant);
    }
示例#8
0
    public bool CheckIfItemIsBought(RoomItemConfig cfg) // overload check if bought item only
    {
        var list = saveManager.GetRoomItemList();

        foreach (string str in list)
        {
            var pair = str.Split('+');
            if (pair[0].Contains(cfg.ConfigId))
            {
                return(true);
            }
        }
        return(false);
    }
示例#9
0
    private void OnItemPicked(RoomItemConfig itemConfig)
    {
        if (this.itemConfig == itemConfig && shopManager.CheckIfItemIsBought(itemConfig))
        {
            activeItemTick.SetActive(true);
        }
        else
        {
            activeItemTick.SetActive(false);
        }

/*        frameIMG.color = startFrameColor;
 *      isPreviewing = false;*/
    }
示例#10
0
    public bool CheckIfItemIsBought(RoomItemConfig cfg, ItemVariant variant) //check if bought item+concrete var
    {
        var list = saveManager.GetRoomItemList();

        foreach (string str in list)
        {
            var pair = str.Split('+');
            if (pair[0].Contains(cfg.ConfigId) && pair[1].Contains(variant.ConfigId))
            {
                return(true);
            }
        }
        return(false);
    }
示例#11
0
    private void OnItemBought(RoomItemConfig cfg, ItemVariant var)     // TODO var is unnecessary
    {
        if (itemConfig == cfg)
        {
            if (lockIcon != null)
            {
                lockIcon.gameObject.SetActive(false);
                activeItemTick.SetActive(true);
/*                frameIMG.color = startFrameColor;*/
            }
        }
        else
        {
            activeItemTick.SetActive(false);
        }
    }
示例#12
0
    public void AddItemToConfig(RoomItemConfig item, ItemVariant variant)
    {
        string itemID    = item.ConfigId;
        string variantID = variant.ConfigId;

        foreach (string pair in pickedItemsAndVariants.ToList())
        {
            string[] strs = pair.Split('+');
            var      it   = ScriptableList <RoomItemConfig> .instance.GetItemByID(strs[0]);

            if (it.furnitureType == item.furnitureType)
            {
                pickedItemsAndVariants.Remove(pair);
            }
        }

        pickedItemsAndVariants.Add(string.Concat(itemID, "+", variantID));
    }
示例#13
0
    private bool CheckIfItemIsActive(RoomItemConfig cfg)
    {
        RoomConfig activeClothes = SaveManager.Instance.LoadRoomSet();

        if (activeClothes == null)
        {
            return(false);
        }

        if (activeClothes.ItemIsInConfig(cfg))
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
示例#14
0
 public ItemVariant GetActiveVariant(RoomItemConfig item)
 {
     if (pickedItemsAndVariants != null)
     {
         foreach (string dirtyPair in pickedItemsAndVariants)
         {
             string[] strs = dirtyPair.Split('+');
             if (strs.Contains(item.ConfigId))
             {
                 foreach (ItemVariant var in item.variants)
                 {
                     if (strs[1] == var.ConfigId)
                     {
                         return(var);
                     }
                 }
             }
         }
         return(item.variants[0]);
     }
     return(null);
 }
示例#15
0
    private void DisplayItem(GameObject itemGO)
    {
        currentRoomConfig = SaveManager.Instance.LoadRoomSet();
        variantSlider.SetActive(true); //activate it just in case


        //display item description
        itemCFG = itemGO.GetComponent <RoomItemDisplay>().itemConfig;
        rightPanel.SetActive(true);
        itemDisplaying = Instantiate(itemGO, rightPanel.transform.position, Quaternion.identity);
        itemDisplaying.transform.SetParent(parentForItem);
        itemDisplaying.GetComponent <RectTransform>().ResetTransform();
        itemDisplaying.GetComponent <RectTransform>().sizeDelta = itemDisplaySize;
        if (shopManager.CheckIfItemIsBought(itemCFG, currentRoomConfig.GetActiveVariant(itemCFG)))
        {
            buyButton.SetActive(false);
        }
        else
        {
            buyButton.SetActive(true);
        }


        //clear all variants
        var children = parentForVariants.GetComponentsInChildren <Transform>();

        foreach (Transform child in children)
        {
            if (child != parentForVariants.transform)
            {
                Destroy(child.gameObject);
            }
        }


        // spawn variants in RightSlider
        if (itemCFG.variants.Count > 1)
        {
            foreach (ItemVariant V in itemCFG.variants)
            {
                var varGroup = parentForVariants.GetComponent <VariantGroup>();
                var variant  = Instantiate(variantPrefab);
                variant.transform.SetParent(parentForVariants);
                var varTab = variant.GetComponent <VariantTab>();
                varTab.group   = varGroup;
                varTab.variant = V;
                varTab.group.Subscribe(varTab);
                varTab.tabBackground.color = V.color;
                bool hasActiveVar;
                if (currentRoomConfig.ItemIsInConfig(itemCFG))
                {
                    hasActiveVar = currentRoomConfig.GetActiveVariant(itemCFG) == V ? true : false;
/*                    Debug.Log("Item: " + itemCFG + ", active variant :" + currentRoomConfig.GetActiveVariant(itemCFG));*/
                }
                else
                {
                    hasActiveVar = V == itemCFG.variants[0] ? true : false;
                }
                varTab.activeIMG.gameObject.SetActive(hasActiveVar);

                bool isActive = currentRoomConfig.ItemAndVarIsInConfig(itemCFG, V) == true ? true : false;
                varTab.activeTick.SetActive(isActive);

                bool isBought = shopManager.CheckIfItemIsBought(itemCFG, V) /* || V.cost == 0*/ == true ? false : true;
                varTab.lockIMG.gameObject.SetActive(isBought);
            }
            ManipulateDisplayingInfo(currentRoomConfig.GetActiveVariant(itemCFG));
        }
        else
        {
            variantSlider.SetActive(false);
            ManipulateDisplayingInfo(itemCFG.variants[0]);
        }

        Destroy(itemDisplaying.GetComponent <ItemClick>());
    }
示例#16
0
 public ItemVariant GetActiveVariant(RoomItemConfig cfg)
 {
     return(LoadRoomSet().GetActiveVariant(cfg));
 }
示例#17
0
 private void HideDoneButton(RoomItemConfig cfg)
 {
     doneButton.SetActive(false);
 }
示例#18
0
 private void HideBuyButton(RoomItemConfig cfg, ItemVariant var)  //TODO cfg is unnecessary && var
 {
     //MAY BE DO NOT HIDE?
     buyButton.SetActive(false);
     itemBoughtTab.SetActive(true);
 }