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); }
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; }
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); } }
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); } }
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); } }
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; } } }
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; } } }
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; } } }
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); } } }
// 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); }
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(); }
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(); }
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; } } } }
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); }
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; }
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); }
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); }
// 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); }