private void SetPetsInfo(int petType) { ClearPetsInfo(); int num = 0; //先显示可以召唤的宠物数据 List <SysPet> unOwnPet = new List <SysPet>(); foreach (SysPet pet in PetLogic.SysPets) { if (petType == 0 || pet.type == petType) { if (PetLogic.CanOwn(pet)) { num++; SetPetInfo(pet, num, true); } else if (!PetLogic.IsOwn(pet)) { unOwnPet.Add(pet); } } } //再显示已经拥有的宠物 foreach (PPet pet in Singleton <PetMode> .Instance.AllPets) { SysPet spet = BaseDataMgr.instance.GetDataById <SysPet>(pet.petId); if (petType == 0 || spet.type == petType) { num++; SetPetInfo(spet, num, true); } } //已拥有和可召唤的宠物数 petNum = num; //再显示未拥有的宠物 foreach (SysPet pet in unOwnPet) { num++; SetPetInfo(pet, num, false); } SetFGTitlePos(); scrollView.ResetPosition(); SetPetPublicInfo(); }
private void OnPetClick(GameObject obj) { uint petId = uint.Parse(obj.name); SysPet pet = BaseDataMgr.instance.GetDataById <SysPet>(petId); if (PetLogic.CanOwn(pet)) { Singleton <PetControl> .Instance.ActiveAPet(petId); } else { PPet p = Singleton <PetMode> .Instance.GetPetByPetId(petId); if (p == null) { Singleton <PetStoneTipsView> .Instance.OpenView(petId); } else { Singleton <PetInfoView> .Instance.OpenView(petId); } } }
private bool CheckTips() { foreach (SysPet spet in PetLogic.SysPets) { if (PetLogic.CanOwn(spet)) { return(true); } } if (AllPets != null) { foreach (PPet pet in AllPets) { for (int i = 1; i < 7; i++) //检查装备 { int result = PetLogic.CheckEquip(pet.petId, i); if (result == 1 || result == 3) { return(true); } } if (PetLogic.CanEvolve(pet)) { return(true); } if (PetLogic.CanUpgrade(pet)) { return(true); } } } return(false); }
//设置宠物信息 private void SetPetInfo(SysPet pet, int num, bool own) { GameObject petobj; if (num > petsObj.Count) { petobj = GameObject.Instantiate(petsObj[0]) as GameObject; petsObj.Add(petobj); petobj.transform.parent = petsObj[0].transform.parent; petobj.transform.localScale = new Vector3(1, 1, 1); petobj.SetActive(false); petobj.GetComponent <UIWidgetContainer>().onClick = OnPetClick; petobj.name = pet.id.ToString(); } else { petobj = petsObj[num - 1]; petobj.name = pet.id.ToString(); } SetPetObjPos(petobj, num, own); NGUITools.FindInChild <UISprite>(petobj, "image").spriteName = pet.icon.ToString(); petobj.SetActive(true); NGUITools.FindChild(petobj, "tips").SetActive(false); //提示默认关闭 if (!own || PetLogic.CanOwn(pet)) { NGUITools.FindInChild <UILabel>(petobj, "name").text = pet.name; UIUtils.ChangeGrayShader(NGUITools.FindInChild <UISprite>(petobj, "image"), imageDepth - 1); NGUITools.FindChild(petobj, "equips").SetActive(false); NGUITools.FindChild(petobj, "level").SetActive(false); NGUITools.FindChild(petobj, "stars").SetActive(false); NGUITools.FindChild(petobj, "stone").SetActive(true); int stone = Singleton <GoodsMode> .Instance.GetCountByGoodsId((uint)pet.stone_id); int need = PetLogic.GetNeedStone((uint)pet.star, false); NGUITools.FindInChild <UISprite>(petobj, "gradeicn").spriteName = ""; NGUITools.FindInChild <UISlider>(petobj, "stone").value = stone / (float)need; NGUITools.FindInChild <UILabel>(petobj, "stone/num").text = stone + "/" + need; if (PetLogic.CanOwn(pet)) { NGUITools.FindChild(petobj, "active").SetActive(true); NGUITools.FindChild(petobj, "tips").SetActive(true); NGUITools.FindChild(petobj, "gradeicn").SetActive(false); } else { NGUITools.FindChild(petobj, "gradeicn").SetActive(false); NGUITools.FindChild(petobj, "active").SetActive(false); } } else { PPet ppet = Singleton <PetMode> .Instance.GetPetByPetId((uint)pet.id); NGUITools.FindChild(petobj, "gradeicn").SetActive(true); NGUITools.FindInChild <UISprite>(petobj, "gradeicn").spriteName = PetLogic.GetGradeIcn(ppet.grade); NGUITools.FindInChild <UILabel>(petobj, "name").text = PetLogic.GetGradeDes(ppet.grade, pet.name); UIUtils.ChangeNormalShader(NGUITools.FindInChild <UISprite>(petobj, "image"), imageDepth); NGUITools.FindChild(petobj, "equips").SetActive(true); NGUITools.FindChild(petobj, "level").SetActive(true); NGUITools.FindInChild <UILabel>(petobj, "level/label").text = ppet.lvl.ToString(); NGUITools.FindChild(petobj, "stars").SetActive(true); SetStar(petobj, ppet.star); SetEquipInfo(petobj, ppet.petId); NGUITools.FindChild(petobj, "stone").SetActive(false); NGUITools.FindChild(petobj, "active").SetActive(false); //检查是否可以升阶-升星 if (PetLogic.CanUpgrade(ppet) || PetLogic.CanEvolve(ppet)) { NGUITools.FindChild(petobj, "tips").SetActive(true); } } NGUITools.FindInChild <UISprite>(petobj, "typeicn").spriteName = PetLogic.GetTypeIcnName(pet.type); }