Files
JJBB/Assets/Project/Script/GUI/Pet/PetGrowWnd.cs
2024-08-23 15:49:34 +08:00

342 lines
13 KiB
C#

using System.Collections.Generic;
using Games.LogicObj;
using GCGame;
using GCGame.Table;
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Games.Fellow;
using Games.Events;
public class PetGrowWnd : MonoBehaviour
{
public Transform CurrObj;
public Transform NextObj;
public Image CurrIcon;
public Image CurrQuility;
public Text CurrLevel;
public Text CurrQuilityLabel;
public Text CurrGrowLevel;
public Image NextIcon;
public Image NextQuility;
public Text NextLevel;
public Text NextQuilityLabel;
public Text NextGrowLevel;
public GameObject GetBtnObj;
public Slider GrowLevelSlider;
public Text CurrGrow;
public Text Tip;
public GameObject BtnTupo;
public GameObject BtnUp;
public GameObject MaxObject;
public GameObject PayObject;
public Image PayIcon;
public Image PayQulity;
public Text PayText;
public UIContainerBase _AttrsContainerBase;
public void ClearInfo(bool state)
{
LoadAssetBundle.Instance.SetImageSprite(CurrQuility, Utils.GetFellowQuilityIcon(3));
LoadAssetBundle.Instance.SetImageSprite(NextQuility, Utils.GetFellowQuilityIcon(4));
CurrQuilityLabel.gameObject.SetActive(state);
CurrIcon.gameObject.SetActive(state);
CurrGrowLevel.gameObject.SetActive(state);
CurrLevel.gameObject.SetActive(state);
NextQuilityLabel.gameObject.SetActive(state);
NextIcon.gameObject.SetActive(state);
NextGrowLevel.gameObject.SetActive(state);
NextLevel.gameObject.SetActive(state);
Tip.gameObject.SetActive(state);
NextObj.gameObject.SetActive(state);
BtnTupo.SetActive(false);
MaxObject.SetActive(false);
GrowLevelSlider.value = 1;
CurrLevel.gameObject.SetActive(state);
CurrGrow.gameObject.SetActive(state);
if(state == false)
CurrObj.localPosition = new Vector3(30, 140, 0);
else
CurrObj.localPosition = new Vector3(-200, 140, 0);
LoadAssetBundle.Instance.SetImageSprite(PayQulity, GCGame.Utils.GetItemQualityFrame(3));
PayObject.SetActive(state);
GetBtnObj.SetActive(false);
PayText.gameObject.SetActive(state);
_AttrsContainerBase.InitContentItem(null);
}
public void OnSelectPet()
{
if (GameManager.gameManager.PlayerDataPool.FellowContainer == null)
return;
Debug.Log("petGrowWnd CurrentSelectFellowId:" + PetMainWnd.CurrentSelectFellowId);
Fellow pet = GameManager.gameManager.PlayerDataPool.FellowContainer.GetFellowByGuid(PetMainWnd.CurrentSelectFellowId);
if (pet == null || pet.Guid == Games.GlobeDefine.GlobeVar.INVALID_GUID)
{
ClearInfo(false);
return;
}
ClearInfo(true);
Tab_FellowBase fellowBase = TableManager.GetFellowBaseByID(pet.DataId, 0);
if (fellowBase == null)
return;
Tab_FellowGrow tab_FellowGrowBase = TableManager.GetFellowGrowByID(fellowBase.GrowQuility, 0);
if (tab_FellowGrowBase == null)
return;
Tab_FellowGrow tab_FellowGrow = TableManager.GetFellowGrowByID(pet.Quality, 0);
if (tab_FellowGrow == null)
return;
Tab_FellowGrow tab_FellowNextGrow = TableManager.GetFellowGrowByID(fellowBase.Quility + 1, 0);
int Stat = 0;
//可突破
if(pet.grow>=tab_FellowGrow.GrowBase && pet.Quality<=fellowBase.GrowQuility && tab_FellowNextGrow!=null)
{
BtnTupo.SetActive(true);
BtnUp.SetActive(false);
PayObject.SetActive(true);
MaxObject.SetActive(false);
Tip.gameObject.SetActive(true);
Stat = 1;
}
else //最大成长值了
if(pet.grow >= tab_FellowGrowBase.GrowMax)
{
CurrObj.localPosition = new Vector3(30, 140, 0);
NextObj.gameObject.SetActive(false);
PayObject.SetActive(false);
Tip.gameObject.SetActive(false);
MaxObject.SetActive(true);
Stat = 2;
}
else if(pet.Quality == fellowBase.GrowQuility+1 || tab_FellowNextGrow==null)
{
CurrObj.localPosition = new Vector3(30, 140, 0);
NextObj.gameObject.SetActive(false);
Tip.gameObject.SetActive(false);
BtnTupo.SetActive(false);
BtnUp.SetActive(true);
PayObject.SetActive(true);
MaxObject.SetActive(false);
Stat = 3;
}
else
{
CurrObj.localPosition = new Vector3(-200, 140, 0);
NextObj.gameObject.SetActive(true);
BtnTupo.SetActive(false);
BtnUp.SetActive(true);
PayObject.SetActive(true);
MaxObject.SetActive(false);
Tip.gameObject.SetActive(true);
}
LoadAssetBundle.Instance.SetImageSprite(CurrIcon, pet.GetIcon());
LoadAssetBundle.Instance.SetImageSprite(CurrQuility, Utils.GetFellowQuilityIcon(pet.Quality));
CurrQuilityLabel.text = StrDictionary.GetClientDictionaryString("#{20173}", StrDictionary.GetClientDictionaryString(Utils.GetFellowQuilityStr((FELLOWQUALITY)pet.Quality)));
if(Stat == 2)
{
CurrGrowLevel.text = StrDictionary.GetClientDictionaryString("#{20174}", tab_FellowGrowBase.GrowMax);
}
else if(Stat == 3)
{
if(tab_FellowNextGrow == null)
{
CurrGrowLevel.text = StrDictionary.GetClientDictionaryString("#{20174}", fellowBase.Growth + "-" + tab_FellowGrowBase.GrowMax);
}
else
{
CurrGrowLevel.text = StrDictionary.GetClientDictionaryString("#{20174}", tab_FellowGrowBase.GrowBase + "-" + tab_FellowGrowBase.GrowMax);
}
}
else
{
CurrGrowLevel.text = StrDictionary.GetClientDictionaryString("#{20174}", fellowBase.Growth + "-" + tab_FellowGrowBase.GrowBase);
}
CurrLevel.text ="Lv."+ pet.Level.ToString();
if (pet.Quality + 1 >= (int)FELLOWQUALITY.ORANGE)
{
CommonItemContainerItem.ShowQualityEffect(true, 8001, NextIcon.transform);
}
else
{
CommonItemContainerItem.ShowQualityEffect(false, 8001, NextIcon.transform);
}
if (pet.Quality >= (int)FELLOWQUALITY.ORANGE)
{
CommonItemContainerItem.ShowQualityEffect(true, 8001, CurrIcon.transform);
}
else
{
CommonItemContainerItem.ShowQualityEffect(false, 8001, CurrIcon.transform);
}
if (Stat == 0)
{
LoadAssetBundle.Instance.SetImageSprite(NextIcon, pet.GetIcon());
LoadAssetBundle.Instance.SetImageSprite(NextQuility, Utils.GetFellowQuilityIcon(pet.Quality + 1));
NextQuilityLabel.text = StrDictionary.GetClientDictionaryString("#{20173}", StrDictionary.GetClientDictionaryString(Utils.GetFellowQuilityStr((FELLOWQUALITY)(pet.Quality + 1))));
NextGrowLevel.text = StrDictionary.GetClientDictionaryString("#{20174}", tab_FellowGrow.GrowBase + "-" + tab_FellowGrow.GrowMax);
NextLevel.text = "Lv." + pet.Level.ToString();
}
if(tab_FellowNextGrow==null)
{
Tip.gameObject.SetActive(Stat!=2);
Tip.text = StrDictionary.GetClientDictionaryString("#{20192}", tab_FellowGrow.GrowMax);
}
else
{
string colorName = StrDictionary.GetClientDictionaryString(Utils.GetFellowQuilityStr((FELLOWQUALITY)(pet.Quality + 1)));
Tip.text = StrDictionary.GetClientDictionaryString("#{20175}", tab_FellowGrow.GrowBase, colorName);
}
if (Stat == 1 || Stat == 2)
{
Tip.text = StrDictionary.GetClientDictionaryString("#{20177}");
GrowLevelSlider.value = 1;
}
else
{
if(tab_FellowNextGrow==null)
{
GrowLevelSlider.value = (pet.grow - fellowBase.Growth) / (tab_FellowGrow.GrowMax - fellowBase.Growth);
}
else
{
if (pet.grow < tab_FellowGrowBase.GrowBase)
{
GrowLevelSlider.value = (pet.grow - fellowBase.Growth) / (tab_FellowGrowBase.GrowBase - fellowBase.Growth);
}
else
{
GrowLevelSlider.value = (pet.grow - tab_FellowGrowBase.GrowBase) / (tab_FellowGrowBase.GrowMax - tab_FellowGrowBase.GrowBase);
}
}
}
CurrGrow.text = StrDictionary.GetClientDictionaryString("#{20176}", pet.grow);
if(BtnTupo.activeSelf)
{
CostPay(tab_FellowGrowBase.ConsumeSubTypeBreak, tab_FellowGrowBase.ConsumeNumBreak);
}
else
{
CostPay(tab_FellowGrowBase.ConsumeSubType, tab_FellowGrowBase.ConsumeNum);
}
List<string> attrs = new List<string>();
attrs.Add(string.Format("{0}-{1}-{2}", PropID.GetAttrName(PropID.PropertyID.MAXHP), pet.blood, pet.growthMaxHp - pet.blood));
attrs.Add(string.Format("{0}-{1}-{2}", PropID.GetAttrName(PropID.PropertyID.ATTACKALLRATE), pet.attack, pet.growthAttack - pet.attack));
attrs.Add(string.Format("{0}-{1}-{2}", PropID.GetAttrName(PropID.PropertyID.PYSDEF), pet.physical, pet.growthPysDef - pet.physical));
attrs.Add(string.Format("{0}-{1}-{2}", PropID.GetAttrName(PropID.PropertyID.MAGDEF), pet.magic, pet.growthMagDef - pet.magic));
attrs.Add(string.Format("{0}-{1}-{2}", PropID.GetAttrName(PropID.PropertyID.HIT), pet.hit, pet.growthHit - pet.hit));
attrs.Add(string.Format("{0}-{1}-{2}", PropID.GetAttrName(PropID.PropertyID.DODGE), pet.avoid, pet.growthDodge - pet.avoid));
_AttrsContainerBase.InitContentItem(attrs);
}
bool PayEnough = false;
public void CostPay(int CostItemId,int CostItemNum)
{
Tab_CommonItem item = TableManager.GetCommonItemByID(CostItemId, 0);
if (item == null)
{
return;
}
LoadAssetBundle.Instance.SetImageSprite(PayQulity, GCGame.Utils.GetItemQualityFrame(item.Quality));
LoadAssetBundle.Instance.SetImageSprite(PayIcon, item.Icon);
int hasCount = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(CostItemId);
if (hasCount < CostItemNum && CostItemId > 0)
{
PayText.text = string.Format(item.Name + ":<color=#ff0000ff>{0}</color>/{1}", hasCount, CostItemNum);
GetBtnObj.SetActive(true);
PayEnough = false;
Button btn = GetBtnObj.GetComponent<Button>();
if (btn != null)
{
if (btn.onClick.GetPersistentEventCount() <= 0)
{
btn.onClick.RemoveAllListeners();
btn.onClick.AddListener(delegate ()
{
ItemTooltipsLogic.ShowItemTooltip(CostItemId, ItemTooltipsLogic.ShowType.GetPath, btn.transform.position);
});
}
}
}
else
{
PayEnough = true;
PayText.text = string.Format(item.Name + ":<color=#00ff00ff>{0}</color>/{1}", hasCount, CostItemNum);
GetBtnObj.SetActive(false);
}
}
public void Descript_Click()
{
MessageHelpLogic.ShowHelpMessage(66);
}
public void UPGrow_Click()
{
if (GameManager.gameManager.PlayerDataPool.FellowContainer == null)
return;
Fellow pet = GameManager.gameManager.PlayerDataPool.FellowContainer.GetFellowByGuid(PetMainWnd.CurrentSelectFellowId);
if (pet == null || pet.Guid == Games.GlobeDefine.GlobeVar.INVALID_GUID)
{
return;
}
Tab_FellowGrow tab_FellowGrow = TableManager.GetFellowGrowByID(pet.Quality, 0);
if (tab_FellowGrow == null)
return;
if(tab_FellowGrow.GrowMax <= pet.grow)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#20178}"));
return;
}
if (PayEnough==false)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#21002}"));
return;
}
CG_FELLOW_GROWTH_UPGRADE cmd = (CG_FELLOW_GROWTH_UPGRADE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_FELLOW_GROWTH_UPGRADE);
cmd.Guid = (long)pet.Guid;
cmd.SendPacket();
}
public void UpQuality_Click()
{
if (GameManager.gameManager.PlayerDataPool.FellowContainer == null)
return;
Fellow pet = GameManager.gameManager.PlayerDataPool.FellowContainer.GetFellowByGuid(PetMainWnd.CurrentSelectFellowId);
if (pet == null || pet.Guid == Games.GlobeDefine.GlobeVar.INVALID_GUID)
{
return;
}
if (PayEnough == false)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("{#21002}"));
return;
}
CG_FELLOW_GROWTH_BREAK cmd = (CG_FELLOW_GROWTH_BREAK)PacketDistributed.CreatePacket(MessageID.PACKET_CG_FELLOW_GROWTH_BREAK);
cmd.Guid = (long)pet.Guid;
cmd.SendPacket();
}
}