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 PetXiuWuWnd : MonoBehaviour { public Text bone; //根骨资质 public Text Strength; //精力资质 public Text power; //力量资质 public Text brains; //智力资质 public Text agile; //敏捷资质 public Text boneOne; //根骨 public Text StrengthOne; //精力 public Text powerOne; //力量资质 public Text brainsOne; //智力资质 public Text agileOne; //敏捷资质 public Text currentXW; //当前修为 public Text currentWX; //当前悟性 public Text XWCousumeNum; //修为消耗的道具拥有和需要数 public Text XWCousumeName; //修为消耗的道具名称 public Image XWCousumeIcon; //修为消耗的道具Icon public Image XWCousumeQuility; public Text WuXingCousumeNum; //悟性消耗的道具拥有和需要的数 public Text WuXingCousumeNumName; //悟性消耗的道具名称 public Image WuXingCousumeNumIcon; //悟性消耗的道具Icon public Image WuXingCousumeNumQuility; public GameObject XWGetBtn; public GameObject XWUpBtn; public GameObject WXGetBtn; public GameObject WXUpBtn; public InitAptitudeStart petStart; private int CultivationItemID; private int SavvyItemID; public void ClearInfo(bool state) { bone.gameObject.SetActive(state); Strength.gameObject.SetActive(state); power.gameObject.SetActive(state); brains.gameObject.SetActive(state); agile.gameObject.SetActive(state); currentXW.gameObject.SetActive(state); currentWX.gameObject.SetActive(state); XWCousumeNum.gameObject.SetActive(state); XWCousumeName.gameObject.SetActive(state); XWCousumeIcon.gameObject.SetActive(state); WuXingCousumeNum.gameObject.SetActive(state); WuXingCousumeNumName.gameObject.SetActive(state); WuXingCousumeNumIcon.gameObject.SetActive(state); petStart.ClearInfo(state); } public void Awake() { Hashtable hash = new Hashtable(); hash["name"] = "PetXiuWu"; MessageEventCallBack fun = Fresh; hash["callFun"] = fun; EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.FRESHPETINFO, hash); Hashtable calbackMoveparam3 = new Hashtable(); calbackMoveparam3["name"] = "PetXiuWuFresh"; MessageEventCallBack fun3 = PayFresh; calbackMoveparam3.Add("callFun", fun3); EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.FRESHSAMEUSETIP, calbackMoveparam3); Hashtable calbackMoveparam2 = new Hashtable(); calbackMoveparam2["name"] = "MainXiuWu"; MessageEventCallBack fun2 = UpdateFelllowAttr; calbackMoveparam2.Add("callFun", fun2); Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.UpdatePetInfo, calbackMoveparam2); } public void PayFresh(Hashtable addparam, Hashtable sendparam) { Fellow pet = GameManager.gameManager.PlayerDataPool.FellowContainer.GetFellowByGuid(PetMainWnd.CurrentSelectFellowId); if (pet == null) return; CountCost(pet); } private void SetCurrentData(Fellow pet) { currentXW.text = string.Format("{0}/{1}", pet.cultivation, GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level); currentWX.text = string.Format("{0}/{1}", pet.sawy * 1.0 / 100.0f, 10); } public void UpdateFelllowAttr(Hashtable addParam,Hashtable sendParam) { Fellow pet = GameManager.gameManager.PlayerDataPool.FellowContainer.GetFellowByGuid(PetMainWnd.CurrentSelectFellowId); if (pet == null) return; SetCurrentData(pet); InitAtitude(pet); petStart.InitStart(pet.AptitudeTotle); } public void Fresh(Hashtable addparam, Hashtable Sendparam) { Fellow pet = GameManager.gameManager.PlayerDataPool.FellowContainer.GetFellowByGuid(PetMainWnd.CurrentSelectFellowId); if (pet == null) return; SetCurrentData(pet); InitAtitude(pet); petStart.InitStart(pet.AptitudeTotle); } public void OnDestroy() { EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.FRESHPETINFO, "PetXiuWu"); EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.FRESHSAMEUSETIP, "PetXiuWuFresh"); EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.UpdatePetInfo, "MainXiuWu"); } void CountCost(Fellow pet) { int CultivationDataID = pet.cultivation; Tab_PromoteCultivation Cultivation = TableManager.GetPromoteCultivationByID(pet.cultivation, 0); if (Cultivation != null) { Tab_CommonItem item = TableManager.GetCommonItemByID(Cultivation.CostItemId, 0); if (item != null) { LoadAssetBundle.Instance.SetImageSprite(XWCousumeQuility, Utils.GetItemQualityFrame(item.Quality)); LoadAssetBundle.Instance.SetImageSprite(XWCousumeIcon, item.Icon); if (item.QualityEffect > 0) { CommonItemContainerItem.ShowQualityEffect(true, item.QualityEffect, XWCousumeIcon.transform); } else { CommonItemContainerItem.ShowQualityEffect(false, item.QualityEffect, XWCousumeIcon.transform); } } XWCousumeName.text = item.Name; int hasCount = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(Cultivation.CostItemId); if (hasCount < Cultivation.CostNum) { XWCousumeNum.text = string.Format("{0}/{1}", hasCount, Cultivation.CostNum); } else { XWCousumeNum.text = string.Format("{0}/{1}", hasCount, Cultivation.CostNum); } XWGetBtn.SetActive((hasCount < Cultivation.CostNum)); XWUpBtn.SetActive((hasCount >= Cultivation.CostNum)); CultivationItemID = Cultivation.CostItemId; } int sawyID = pet.sawy / 10; Tab_PromoteSavvy Savvy = TableManager.GetPromoteSavvyByID(sawyID, 0); if (Savvy != null) { Tab_CommonItem item = TableManager.GetCommonItemByID(Savvy.CostItemId, 0); if (item != null) { LoadAssetBundle.Instance.SetImageSprite(WuXingCousumeNumQuility, Utils.GetItemQualityFrame(item.Quality)); LoadAssetBundle.Instance.SetImageSprite(WuXingCousumeNumIcon, item.Icon); if (item.QualityEffect > 0) { CommonItemContainerItem.ShowQualityEffect(true, item.QualityEffect, XWCousumeIcon.transform); } else { CommonItemContainerItem.ShowQualityEffect(false, item.QualityEffect, XWCousumeIcon.transform); } } WuXingCousumeNumName.text = item.Name; int hasCount = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(Savvy.CostItemId); if (hasCount < Savvy.CostNum) { WuXingCousumeNum.text = string.Format("{0}/{1}", hasCount, Savvy.CostNum); } else { WuXingCousumeNum.text = string.Format("{0}/{1}", hasCount, Savvy.CostNum); } WXGetBtn.SetActive((hasCount < Savvy.CostNum)); WXUpBtn.SetActive((hasCount >= Savvy.CostNum)); SavvyItemID = Savvy.CostItemId; } } public void OnSelectPet() { if (GameManager.gameManager.PlayerDataPool.FellowContainer == null) return; Fellow pet = GameManager.gameManager.PlayerDataPool.FellowContainer.GetFellowByGuid(PetMainWnd.CurrentSelectFellowId); if (pet == null) return; InitAtitude(pet); SetCurrentData(pet); CountCost(pet); petStart.InitStart(pet.AptitudeTotle); } public void InitAtitude(Fellow pet) { Tab_PromoteCultivation atitudeData = TableManager.GetPromoteCultivationByID(pet.cultivation, 0); if (atitudeData == null) return; int sawyID = pet.sawy / 10; Tab_PromoteSavvy Savvy = TableManager.GetPromoteSavvyByID(sawyID, 0); if (Savvy == null) return; float addRate1 = Savvy.AddAptitude * 1.0f / 100.0f; float addRate = atitudeData.AddAptitudePer * 1.0f / 100.0f; bone.text = string.Format("{0}(+{1}%)", pet.Boneatitude, addRate1 + addRate); Strength.text = string.Format("{0}(+{1}%)", pet.Forceatitude, addRate1 + addRate); power.text = string.Format("{0}(+{1}%)", pet.Poweratitude, addRate1 + addRate); brains.text = string.Format("{0}(+{1}%)", pet.Smartatitude, addRate1 + addRate); agile.text = string.Format("{0}(+{1}%)", pet.Agileatitude, addRate1 + addRate); boneOne.text = string.Format("{0}(+{1})", pet.bone, GetPropVal(atitudeData, (int)PropID.PropertyID.CONSTITU,-1)); StrengthOne.text = string.Format("{0}(+{1})", pet.force, GetPropVal(atitudeData, (int)PropID.PropertyID.MORFIB, -1)); powerOne.text = string.Format("{0}(+{1})", pet.power, GetPropVal(atitudeData, (int)PropID.PropertyID.STRENGTH, -1)); brainsOne.text = string.Format("{0}(+{1})", pet.smart, GetPropVal(atitudeData, (int)PropID.PropertyID.INTELLENG, -1)); agileOne.text = string.Format("{0}(+{1})", pet.agile, GetPropVal(atitudeData, (int)PropID.PropertyID.AGILE, -1)); } int GetPropVal(Tab_PromoteCultivation atitudeData,int Prop,int SubProp) { for(int i=0;i= GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level) { GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{21009}")); return; } if (pet.cultivation >= TableManager.GetPromoteCultivation().Count) { GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{21008}")); return; } CG_PROMOTE_FELLOW send = (CG_PROMOTE_FELLOW)PacketDistributed.CreatePacket(MessageID.PACKET_CG_PROMOTE_FELLOW); send.FellowGuid = PetMainWnd.CurrentSelectFellowId; send.PromoteType = 2; send.SendPacket(); } public void OnClick_UpWuXin() { var savy = TableManager.GetPromoteSavvy(); if (savy == null) return; Fellow pet = GameManager.gameManager.PlayerDataPool.FellowContainer.GetFellowByGuid(PetMainWnd.CurrentSelectFellowId); if (pet == null) return; int XWLevel = SystemParam.GetSystemParam_INT(36); if (pet.Level < XWLevel) { GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{20139}", 80)); return; } if (pet.sawy / 10 >= savy.Count) { GUIData.AddNotifyData(GCGame.Table.StrDictionary.GetClientDictionaryString("#{21007}")); return; } CG_PROMOTE_FELLOW send = (CG_PROMOTE_FELLOW)PacketDistributed.CreatePacket(MessageID.PACKET_CG_PROMOTE_FELLOW); send.FellowGuid = PetMainWnd.CurrentSelectFellowId; send.PromoteType = 1; send.SendPacket(); } }