示例#1
0
    PerkItem ClonePerkItemIconOnly(GameObject source, int ID)
    {
        //~ GameObject obj=Instantiate(perkButtonTemplate);
        PerkItem   item = new PerkItem();
        GameObject obj  = (GameObject)Instantiate(source);

        obj.name                += ID.ToString();
        item.rootObj             = obj;
        item.rootT               = item.rootObj.transform;
        item.rootT.parent        = source.transform.parent;
        item.rootT.localPosition = source.transform.localPosition;
        item.rootT.localScale    = source.transform.localScale;
        //~ item.label=item.rootObj.GetComponentInChildren<UILabel>();
        UISprite[] sprites = item.rootObj.GetComponentsInChildren <UISprite>();
        foreach (UISprite sprite in sprites)
        {
            if (sprite.gameObject.name == "Icon")
            {
                item.spriteIcon = sprite;
            }
            else if (sprite.gameObject.name == "BG")
            {
                item.spriteBut = sprite;
            }
        }

        return(item);
    }
示例#2
0
        public void SetToSelected(PerkItem perkItem = null)
        {
            ColorBlock colors = perkItem.button.button.colors;

            colors.normalColor            = colorSelected;
            perkItem.button.button.colors = colors;
            perkItem.state = _ItemState.Selected;

            selectHighlightT.localPosition = perkItem.button.rootT.localPosition;
        }
示例#3
0
        public void SetToNormal(PerkItem perkItem)
        {
            ColorBlock colors = perkItem.button.button.colors;

            colors.normalColor            = colorNormal;
            perkItem.button.button.colors = colors;

            perkItem.button.imageIcon.color = Color.white;

            perkItem.state = _ItemState.Normal;

            if (perkItem.linkObj != null)
            {
                perkItem.linkObj.SetActive(false);
            }
        }
示例#4
0
        public void SetToPurchased(PerkItem perkItem)
        {
            ColorBlock colors = perkItem.button.button.colors;

            colors.normalColor            = colorUnlocked;
            perkItem.button.button.colors = colors;

            perkItem.button.imageIcon.color = Color.white;

            perkItem.state = _ItemState.Purchased;

            if (perkItem.linkObj != null)
            {
                perkItem.linkObj.SetActive(true);
            }
        }
示例#5
0
        public void SetToUnavailable(PerkItem perkItem)
        {
            ColorBlock colors = perkItem.button.button.colors;

            colors.normalColor            = colorNormal;
            perkItem.button.button.colors = colors;

            perkItem.button.imageIcon.color = colorUnavailable;

            perkItem.state = _ItemState.Unavailable;

            if (perkItem.linkObj != null)
            {
                perkItem.linkObj.SetActive(false);
            }
        }
示例#6
0
    void SetItemToUnlocked(PerkItem item, Perk perk)
    {
        item.spriteBut.spriteName = "Highlight";
        item.spriteBut.color      = new Color(.65f, 1f, .7f, 1);
        //~ if(item.spriteIcon!=null) item.spriteIcon.color=Color.white;
        if (item.label != null)
        {
            item.label.color = Color.green;
        }
        item.itemState = _ItemState.Unlocked;

        if (perk.iconUnlocked != null && item.spriteIcon != null)
        {
            if (item.spriteIcon.atlas.GetSprite(perk.iconUnlocked.name) != null)
            {
                item.spriteIcon.spriteName = perk.iconUnlocked.name;
            }
        }
    }
示例#7
0
    void SetItemToUnavailable(PerkItem item, Perk perk)
    {
        item.spriteBut.spriteName = "Highlight";
        item.spriteBut.color      = Color.gray;
        //~ if(item.spriteIcon!=null) item.spriteIcon.color=Color.gray;
        if (item.label != null)
        {
            item.label.color = Color.red;
        }
        item.itemState = _ItemState.Unavailable;

        if (perk.iconUnavailable != null && item.spriteIcon != null)
        {
            if (item.spriteIcon.atlas.GetSprite(perk.iconUnavailable.name) != null)
            {
                item.spriteIcon.spriteName = perk.iconUnavailable.name;
            }
        }
    }
示例#8
0
    void SetItemToAvailable(PerkItem item, Perk perk)
    {
        item.spriteBut.spriteName = "Button";
        item.spriteBut.color      = Color.white;
        //~ if(item.spriteIcon!=null) item.spriteIcon.color=Color.white;
        if (item.label != null)
        {
            item.label.color = Color.white;
        }
        item.itemState = _ItemState.Available;

        if (perk.icon != null && item.spriteIcon != null)
        {
            if (item.spriteIcon.atlas.GetSprite(perk.icon.name) != null)
            {
                item.spriteIcon.spriteName = perk.icon.name;
            }
        }
    }
示例#9
0
    void OnPerkUnlock()
    {
        Perk perk = PerkManager.GetAllPerks()[currentPerk];

        if (!perk.unlocked)
        {
            if (PerkManager.Unlock(currentPerk))
            {
                PerkItem item = perkList.itemLists[currentPerk];

                item.spriteBut.spriteName = "Highlight";
                item.spriteBut.color      = new Color(0, .9f, .9f, 1);
                item.spriteIcon.color     = Color.white;
                item.label.color          = Color.green;

                if (perk.unlocked)
                {
                    Utility.SetActive(perkInfo.unlockButton, false);

                    if (perk.iconUnlocked != null && item.spriteIcon != null)
                    {
                        if (item.spriteIcon.atlas.GetSprite(perk.iconUnlocked.name) != null)
                        {
                            item.spriteIcon.spriteName = perk.iconUnlocked.name;
                        }
                    }
                }

                UpdatePerkInfo();
                CheckDependency();

                OnUpdatePerkPoint();

                //~ if(onPerkUnlockedE!=null) onPerkUnlockedE(perk.name);
            }
        }
    }
示例#10
0
        // Use this for initialization
        void Start()
        {
            if(!PerkManager.IsOn()){
                gameObject.SetActive(false);
                return;
            }

            if(!assignItemManually){
                List<Perk> perkList=PerkManager.GetPerkList();

                itemList=new List<PerkItem>();
                PerkItem item0=new PerkItem();
                item0.button.rootObj=backupItemObj;
                itemList.Add(item0);

                int count=0; float y=0;
                for(int i=0; i<perkList.Count; i++){
                    if(i==0) itemList[0].button.Init();
                    else if(i>0){
                        PerkItem item=new PerkItem();
                        item.button=itemList[0].button.Clone("ItemButton"+(count+1), new Vector3(count*60, y, 0));
                        itemList.Add(item);
                    }

                    count+=1;
                    if(count==8){ count=0; y-=60; }

                    itemList[i].button.imageIcon.sprite=perkList[i].icon;
                    itemList[i].perkID=perkList[i].ID;
                    itemList[i].perkIndex=i;

                    if(perkList[i].purchased) SetToPurchased(itemList[i]);
                    else if(perkList[i].IsAvailable()!="") SetToUnavailable(itemList[i]);
                    else SetToNormal(itemList[i]);

                }

                scrollViewContent.sizeDelta=new Vector2(500, -y+60+Mathf.Abs(itemList[0].button.rootT.localPosition.y));
            }
            else{
                List<Perk> perkList=PerkManager.GetPerkList();
                for(int i=0; i<itemList.Count; i++){
                    if(itemList[i].button.rootObj!=null){
                        itemList[i].button.Init();

                        if(itemList[i].perkID>=0){
                            for(int n=0; n<perkList.Count; n++){
                                if(perkList[n].ID==itemList[i].perkID){
                                    itemList[i].button.imageIcon.sprite=perkList[n].icon;
                                    itemList[i].perkIndex=n;

                                    if(perkList[n].purchased) SetToPurchased(itemList[i]);
                                    else if(perkList[n].IsAvailable()!="") SetToUnavailable(itemList[i]);
                                    else SetToNormal(itemList[i]);

                                    break;
                                }
                            }
                        }

                    }
                }
            }

            List<Rsc> rscList=ResourceManager.GetResourceList();
            for(int i=0; i<rscList.Count; i++){
                if(i==0) rscObjList[i].Init();
                else rscObjList.Add(rscObjList[0].Clone("RscObj"+i, new Vector3(i*80, 0, 0)));
                rscObjList[i].imageIcon.sprite=rscList[i].icon;
            }
            rscObj=rscObjList[0].rootT.parent.gameObject;

            UpdatePerkPoint(PerkManager.GetPerkPoint());

            //select the first item
            OnItemButton(itemList[0].button.rootObj);

            menuObj.transform.localPosition=new Vector3(0, 10, 0);

            _Hide(false);
        }
示例#11
0
    void InitPerkItem()
    {
        //Debug.Log("Init Perk Item");

        List <Perk> list = PerkManager.GetAllPerks();

        //~ List<Perk> list=new List<perk>();

        //~ int activePerkCount=0;
        //~ foreach(Perk perk in fullList){
        //~ if(perk.enableInlvl) list.AddPerk//activePerkCount+=1;
        //~ }
        //~ perkList.itemLists=new PerkItem[activePerkCount];
        perkList.itemLists = new PerkItem[list.Count];

        int column = 0;
        int row    = 0;

        int groupCount        = 0;
        int currentGroupCount = 0;
        int groupOffset       = 0;

        for (int i = 0; i < list.Count; i++)
        {
            Perk perk = list[i];
            if (perk.enableInlvl)
            {
                PerkItem item = ClonePerkItem(perkList.perkItemTemplate, i);
                item.label.text = perk.name;
                if (perk.icon != null)
                {
                    if (item.spriteIcon.atlas.GetSprite(perk.icon.name) != null)
                    {
                        item.spriteIcon.spriteName = perk.icon.name;
                    }
                }

                if (perk.unlocked)
                {
                    SetItemToUnlocked(item, perk);
                }
                else if (perk.IsAvailable() != 0)
                {
                    SetItemToUnavailable(item, perk);
                }
                else
                {
                    SetItemToAvailable(item, perk);
                }

                //~ item.rootT.localPosition+=new Vector3(column*190, -row*60, 0);
                item.rootT.localPosition += new Vector3(column * (190), -row * 60 - groupOffset, 0);
                perkList.itemLists[i]     = item;

                if (perkGroups != null && perkGroups.Length > 0 && perkGroups.Length > groupCount)
                {
                    currentGroupCount += 1;
                    if (currentGroupCount >= perkGroups[groupCount].itemCount)
                    {
                        GameObject sourceObj = perkList.perkItemTemplate.GetComponentInChildren <UILabel>().gameObject;
                        GameObject labelObj  = Instantiate(sourceObj) as GameObject;
                        labelObj.name                     = "GroupLabel " + (groupCount + 1);
                        labelObj.transform.parent         = perkList.perkItemTemplate.transform.parent;
                        labelObj.transform.localScale     = new Vector3(20, 20, 1);
                        labelObj.transform.localPosition  = perkList.perkItemTemplate.transform.localPosition;
                        labelObj.transform.localPosition += new Vector3(-80, -row * (60) - groupOffset - 28, 0);

                        UILabel groupLabel = labelObj.GetComponent <UILabel>();
                        groupLabel.text      = perkGroups[groupCount].label;
                        groupLabel.pivot     = UIWidget.Pivot.TopLeft;
                        groupLabel.lineWidth = 500;
                        groupLabel.enabled   = true;

                        groupCount       += 1;
                        currentGroupCount = 0;
                        column            = maxItemPerRow - 1;
                        groupOffset      += groupSpacing;
                    }
                }

                column += 1;
                if (column == maxItemPerRow)
                {
                    column = 0;
                    row   += 1;
                }
            }
        }

        currentPerk = PerkManager.GetFirstAvailabelID();
        perkList.itemLists[currentPerk].spriteBut.spriteName = "Dark";
        perkList.itemLists[currentPerk].spriteBut.color      = new Color(0, .9f, .9f, 1);
        if (list[currentPerk].IsAvailable() > 0 || list[currentPerk].unlocked)
        {
            Utility.SetActive(perkInfo.unlockButton, false);
        }

        //~ panel.MoveAbsolute(new Vector3(0, -5, 0));
        perkList.draggablePanel.ResetPosition();
        Utility.SetActive(perkList.perkItemTemplate, false);

        UpdatePerkInfo();
    }
示例#12
0
    void InitPerkItemIconOnly()
    {
        GameObject obj = perkList.perkItemTemplate;

        //~ Transform rootT=obj.transform;
        UILabel label = obj.GetComponentInChildren <UILabel>();

        Destroy(label.gameObject);

        UISprite[] sprites = obj.GetComponentsInChildren <UISprite>();

        Transform iconT = null;
        Transform bgT   = null;

        foreach (UISprite sprite in sprites)
        {
            if (sprite.gameObject.name == "Icon")
            {
                iconT = sprite.transform;
                sprite.transform.localPosition = Vector3.zero;
            }
            else if (sprite.gameObject.name == "BG")
            {
                bgT = sprite.transform;
                sprite.transform.localPosition = Vector3.zero;
            }
        }

        if (iconT != null && bgT != null)
        {
            bgT.localScale = new Vector3(iconT.localScale.x + 10, iconT.localScale.x + 10, iconT.localScale.x + 10);
        }

        obj.GetComponent <BoxCollider>().size = new Vector3(bgT.localScale.x + 10, bgT.localScale.y + 10, 1);
        obj.transform.localPosition          += new Vector3(-50, 0, 0);

        perkList.selectionIndicator.localPosition = obj.transform.localPosition;
        TweenScale tweenS = perkList.selectionIndicator.gameObject.GetComponent <TweenScale>();

        tweenS.from = new Vector3(bgT.localScale.x + 2, bgT.localScale.y + 2, 1);
        tweenS.to   = new Vector3(bgT.localScale.x + 8, bgT.localScale.y + 8, 1);


        List <Perk> list = PerkManager.GetAllPerks();

        perkList.itemLists = new PerkItem[list.Count];

        int column = 0;
        int row    = 0;

        int groupCount        = 0;
        int currentGroupCount = 0;
        int groupOffset       = 0;

        for (int i = 0; i < list.Count; i++)
        {
            Perk perk = list[i];
            if (perk.enableInlvl)
            {
                PerkItem item = ClonePerkItem(perkList.perkItemTemplate, i);
                item.label.text = perk.name;
                if (perk.icon != null)
                {
                    if (item.spriteIcon.atlas.GetSprite(perk.icon.name) != null)
                    {
                        item.spriteIcon.spriteName = perk.icon.name;
                    }
                }


                if (perk.unlocked)
                {
                    SetItemToUnlocked(item, perk);
                }
                else if (perk.IsAvailable() != 0)
                {
                    SetItemToUnavailable(item, perk);
                }
                else
                {
                    SetItemToAvailable(item, perk);
                }

                item.rootT.localPosition += new Vector3(column * (50 + spaceX), -row * (50 + spaceY) - groupOffset, 0);
                perkList.itemLists[i]     = item;

                if (perkGroups != null && perkGroups.Length > 0 && perkGroups.Length > groupCount)
                {
                    currentGroupCount += 1;
                    if (currentGroupCount >= perkGroups[groupCount].itemCount)
                    {
                        GameObject sourceObj = perkList.perkItemTemplate.GetComponentInChildren <UILabel>().gameObject;
                        GameObject labelObj  = Instantiate(sourceObj) as GameObject;
                        labelObj.name                     = "GroupLabel " + (groupCount + 1);
                        labelObj.transform.parent         = perkList.perkItemTemplate.transform.parent;
                        labelObj.transform.localScale     = new Vector3(20, 20, 1);
                        labelObj.transform.localPosition  = perkList.perkItemTemplate.transform.localPosition;
                        labelObj.transform.localPosition += new Vector3(-20, -row * (50 + spaceY) - groupOffset - 28, 0);

                        UILabel groupLabel = labelObj.GetComponent <UILabel>();
                        groupLabel.text      = perkGroups[groupCount].label;
                        groupLabel.pivot     = UIWidget.Pivot.TopLeft;
                        groupLabel.lineWidth = 500;
                        groupLabel.enabled   = true;

                        groupCount       += 1;
                        currentGroupCount = 0;
                        column            = maxItemPerRow - 1;
                        groupOffset      += groupSpacing;
                    }
                }

                column += 1;
                if (column == maxItemPerRow)
                {
                    column = 0;
                    row   += 1;
                }
            }
        }

        perkList.itemLists[0].spriteBut.spriteName = "Dark";
        perkList.itemLists[0].spriteBut.color      = new Color(0, .9f, .9f, 1);

        //~ panel.MoveAbsolute(new Vector3(0, -5, 0));
        perkList.draggablePanel.ResetPosition();
        StartCoroutine(Reset());
        Utility.SetActive(perkList.perkItemTemplate, false);

        UpdatePerkInfo();
    }
示例#13
0
    void OnPerkItem(GameObject obj)
    {
        for (int i = 0; i < perkList.itemLists.Length; i++)
        {
            if (perkList.itemLists[i] != null && perkList.itemLists[i].rootObj == obj)
            {
                if (i != currentPerk)
                {
                    Perk prePerk = PerkManager.GetAllPerks()[currentPerk];
                    if (prePerk.unlocked)
                    {
                        SetItemToUnlocked(perkList.itemLists[currentPerk], prePerk);
                    }
                    else if (prePerk.IsAvailable() == 0)
                    {
                        SetItemToAvailable(perkList.itemLists[currentPerk], prePerk);
                    }
                    else if (prePerk.IsAvailable() > 0)
                    {
                        SetItemToUnavailable(perkList.itemLists[currentPerk], prePerk);
                    }

                    currentPerk = i;

                    prePerk = PerkManager.GetAllPerks()[currentPerk];
                    PerkItem item = perkList.itemLists[currentPerk];
                    if (prePerk.unlocked)
                    {
                        item.spriteBut.spriteName = "Highlight";
                        item.spriteBut.color      = new Color(.65f, 1f, .7f, 1);
                        if (item.spriteIcon != null)
                        {
                            item.spriteIcon.color = Color.white;
                        }
                        if (item.label != null)
                        {
                            item.label.color = Color.green;
                        }
                        Utility.SetActive(perkInfo.unlockButton, false);
                    }
                    else if (prePerk.IsAvailable() == 0)
                    {
                        item.spriteBut.spriteName = "Dark";
                        item.spriteBut.color      = new Color(0, .9f, .9f, 1);
                        if (item.spriteIcon != null)
                        {
                            item.spriteIcon.color = Color.white;
                        }
                        if (item.label != null)
                        {
                            item.label.color = Color.white;
                        }
                        Utility.SetActive(perkInfo.unlockButton, true);
                    }
                    else if (prePerk.IsAvailable() > 0)
                    {
                        item.spriteBut.spriteName = "Highlight";
                        item.spriteBut.color      = new Color(0, .4f, .4f, 1);
                        if (item.spriteIcon != null)
                        {
                            item.spriteIcon.color = Color.gray;
                        }
                        if (item.label != null)
                        {
                            item.label.color = Color.red;
                        }
                        Utility.SetActive(perkInfo.unlockButton, false);
                    }


                    perkList.selectionIndicator.localPosition = item.rootT.transform.localPosition;
                    //~ Debug.Log(selectIndicator.localPosition+"  "+perkItemLists[currentPerk].rootT.transform.position);

                    UpdatePerkInfo();

                    break;
                }
            }
        }
    }
示例#14
0
        public void SetToUnavailable(PerkItem perkItem)
        {
            ColorBlock colors=perkItem.button.button.colors;
            colors.normalColor = colorNormal;
            perkItem.button.button.colors=colors;

            perkItem.button.imageIcon.color=colorUnavailable;

            perkItem.state=_ItemState.Unavailable;

            if(perkItem.linkObj!=null) perkItem.linkObj.SetActive(false);
        }
示例#15
0
        public void SetToSelected(PerkItem perkItem=null)
        {
            ColorBlock colors=perkItem.button.button.colors;
            colors.normalColor = colorSelected;
            perkItem.button.button.colors=colors;
            perkItem.state=_ItemState.Selected;

            selectHighlightT.localPosition=perkItem.button.rootT.localPosition;
        }
示例#16
0
        public void SetToPurchased(PerkItem perkItem)
        {
            ColorBlock colors=perkItem.button.button.colors;
            colors.normalColor = colorUnlocked;
            perkItem.button.button.colors=colors;

            perkItem.button.imageIcon.color=Color.white;

            perkItem.state=_ItemState.Purchased;

            if(perkItem.linkObj!=null) perkItem.linkObj.SetActive(true);
        }
示例#17
0
        public void SetToNormal(PerkItem perkItem)
        {
            ColorBlock colors=perkItem.button.button.colors;
            colors.normalColor = colorNormal;
            perkItem.button.button.colors=colors;

            perkItem.button.imageIcon.color=Color.white;

            perkItem.state=_ItemState.Normal;

            if(perkItem.linkObj!=null) perkItem.linkObj.SetActive(false);
        }
示例#18
0
        // Use this for initialization
        void Start()
        {
            if (!PerkManager.IsOn())
            {
                gameObject.SetActive(false);
                return;
            }

            if (!assignItemManually)
            {
                List <Perk> perkList = PerkManager.GetPerkList();

                itemList = new List <PerkItem>();
                PerkItem item0 = new PerkItem();
                item0.button.rootObj = backupItemObj;
                itemList.Add(item0);

                int count = 0; float y = 0;
                for (int i = 0; i < perkList.Count; i++)
                {
                    if (i == 0)
                    {
                        itemList[0].button.Init();
                    }
                    else if (i > 0)
                    {
                        PerkItem item = new PerkItem();
                        item.button = itemList[0].button.Clone("ItemButton" + (count + 1), new Vector3(count * 60, y, 0));
                        itemList.Add(item);
                    }

                    count += 1;
                    if (count == 8)
                    {
                        count = 0; y -= 60;
                    }

                    itemList[i].button.imageIcon.sprite = perkList[i].icon;
                    itemList[i].perkID    = perkList[i].ID;
                    itemList[i].perkIndex = i;

                    if (perkList[i].purchased)
                    {
                        SetToPurchased(itemList[i]);
                    }
                    else if (perkList[i].IsAvailable() != "")
                    {
                        SetToUnavailable(itemList[i]);
                    }
                    else
                    {
                        SetToNormal(itemList[i]);
                    }
                }

                scrollViewContent.sizeDelta = new Vector2(500, -y + 60 + Mathf.Abs(itemList[0].button.rootT.localPosition.y));
            }
            else
            {
                List <Perk> perkList = PerkManager.GetPerkList();
                for (int i = 0; i < itemList.Count; i++)
                {
                    if (itemList[i].button.rootObj != null)
                    {
                        itemList[i].button.Init();

                        if (itemList[i].perkID >= 0)
                        {
                            for (int n = 0; n < perkList.Count; n++)
                            {
                                if (perkList[n].ID == itemList[i].perkID)
                                {
                                    itemList[i].button.imageIcon.sprite = perkList[n].icon;
                                    itemList[i].perkIndex = n;

                                    if (perkList[n].purchased)
                                    {
                                        SetToPurchased(itemList[i]);
                                    }
                                    else if (perkList[n].IsAvailable() != "")
                                    {
                                        SetToUnavailable(itemList[i]);
                                    }
                                    else
                                    {
                                        SetToNormal(itemList[i]);
                                    }

                                    break;
                                }
                            }
                        }
                    }
                }
            }


            List <Rsc> rscList = ResourceManager.GetResourceList();

            for (int i = 0; i < rscList.Count; i++)
            {
                if (i == 0)
                {
                    rscObjList[i].Init();
                }
                else
                {
                    rscObjList.Add(rscObjList[0].Clone("RscObj" + i, new Vector3(i * 80, 0, 0)));
                }
                rscObjList[i].imageIcon.sprite = rscList[i].icon;
            }
            rscObj = rscObjList[0].rootT.parent.gameObject;

            UpdatePerkPoint(PerkManager.GetPerkPoint());

            //select the first item
            OnItemButton(itemList[0].button.rootObj);

            menuObj.transform.localPosition = new Vector3(0, 10, 0);

            _Hide(false);
        }