using System.Collections.Generic; using GCGame.Table; using UnityEngine; using UnityEngine.UI; using System.Collections; using Games.Events; using Games.Item; public class MagicClearResult : MonoBehaviour { public Image MagicQuility; public Image MagicIcon; public Text MagicName; public Image PayIcon; public Text PayName; public Text PayNum; public Text PayMoneyNum; public Text PayMoneyHas; public Image MoneyTypeHas; public Image MoneyTypeNeed; public Text ScoreOld; public Text ScoreNew; public GameObject ScoreOldObj; public GameObject ScoreNewObj; public Button PayGetBtn; public Button ReplaceBtn; public Toggle m_PayGold; public Transform UpIma;//向上的箭头 public Transform DownIma;//向下的箭头 public GameObject OldAttrObj; public GameObject NewAttrObj; public GameObject PayMoneyObj; GameItem m_CurrentSelect = null; List ObjLists = new List(); void Awake() { Hashtable calbackMoveparam1 = new Hashtable(); calbackMoveparam1["name"] = "MagicClearResult"; MessageEventCallBack fun1 = UpdateNewAttrInfo; calbackMoveparam1.Add("callFun", fun1); Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.MagicClearResult, calbackMoveparam1); Hashtable calbackMoveparam = new Hashtable(); calbackMoveparam["name"] = "MagicClearResultItemUpdate"; MessageEventCallBack fun = ItemUpdate; calbackMoveparam.Add("callFun", fun); Games.Events.EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.MagicItemUpdate, calbackMoveparam); Hashtable calbackMoveparam4 = new Hashtable(); calbackMoveparam4["name"] = "MagicClearResultMoneyUpdate"; MessageEventCallBack fun3 = PayFresh; calbackMoveparam4.Add("callFun", fun3); EventDispatcher.Instance.AddMessageEvent(Games.Events.EventId.FRESHSAMEUSETIP, calbackMoveparam4); } void Start() { m_PayGold.isOn = false; //PayMoneyObj.SetActive(m_PayGold.isOn); } void OnDestroy() { Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.MagicClearResult, "MagicClearResult"); Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.MagicItemUpdate, "MagicClearResultItemUpdate"); Games.Events.EventDispatcher.Instance.RemoveMessage(Games.Events.EventId.FRESHSAMEUSETIP, "MagicClearResultMoneyUpdate"); } public void PayFresh(Hashtable addparam, Hashtable sendparam) { long MoneyHas = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBao(); PayMoneyHas.text = MoneyHas.ToString(); } public void ItemUpdate(Hashtable addParam, Hashtable sendParam) { if (m_CurrentSelect == null) return; ShowXilianInfo(); } public void UpdateNewAttrInfo(Hashtable addParam,Hashtable sendParam) { if (sendParam.ContainsKey("GameItemID") == false) return; GameItem gameItem = GameManager.gameManager.PlayerDataPool.BackPack.GetItemByGuid((ulong)sendParam["GameItemID"]); if (gameItem == null) { GameItemContainer Container = GameManager.gameManager.PlayerDataPool.GetItemContainer(GameItemContainer.Type.TYPE_MAGICPACK); if (Container != null) { gameItem = Container.GetItemByGuid((ulong)sendParam["GameItemID"]); } } if(gameItem==null) return; m_CurrentSelect = gameItem; ShowXilianInfo(); } public void ShowXilianInfo() { if (m_CurrentSelect == null) return; Tab_CommonItem item = TableManager.GetCommonItemByID(m_CurrentSelect.DataID, 0); if (item == null) return; MagicName.text = item.Name; LoadAssetBundle.Instance.SetImageSprite(MagicQuility, GCGame.Utils.GetItemQualityFrame(item.Quality, false)); LoadAssetBundle.Instance.SetImageSprite(MagicIcon, item.Icon); if (item.QualityEffect > 0) { CommonItemContainerItem.ShowQualityEffect(true, item.QualityEffect, MagicIcon.transform); } else { CommonItemContainerItem.ShowQualityEffect(false, item.QualityEffect, MagicIcon.transform); } var magicCosts = TableManager.GetMagicWeaponRandCost().Values; foreach (var value in magicCosts) { if (item.MinLevelRequire > value.LevelMin && item.Quality == value.Color) { ConsumPay(value.ItemId, value.Num); break; } } UpdateXilianAttr(); } public void UpdateXilianAttr() { if (m_CurrentSelect == null || m_CurrentSelect.IsValid() == false) return; for(int i=0;i< ObjLists.Count;i++) { if(ObjLists[i]!=null) { ObjLists[i].SetActive(false); ObjLists[i].transform.parent = null; GameObject.Destroy(ObjLists[i]); } } ObjLists.Clear(); for (int i=0;i 0); for (int i = 0; i < m_CurrentSelect.ExAttrsNew.Count; i++) { CloneAttrObj(m_CurrentSelect.ExAttrsNew[i], NewAttrObj); } SetOldScore(); SetNewScore(); } public void SetOldScore() { var scoreTabs = TableManager.GetEquipScore().Values; float score = 0; if(m_CurrentSelect==null || m_CurrentSelect.ExAttrs.Count<=0) { ScoreOldObj.SetActive(false); return; } ScoreOldObj.SetActive(true); foreach (var value in scoreTabs) { for(int i=0;i { Click_Replace(); }); } } else { UpIma.gameObject.SetActive(false); DownIma.gameObject.SetActive(true); } } void CloneAttrObj(EquipXilianAttr exAttr,GameObject cloneObj) { if (exAttr == null || cloneObj == null) return; GameObject attrObj = GameObject.Instantiate(cloneObj); if (attrObj == null) return; attrObj.SetActive(true); attrObj.transform.SetParent(cloneObj.transform.parent); attrObj.transform.localPosition = cloneObj.transform.localPosition; attrObj.transform.localScale = cloneObj.transform.localScale; Text _AttrValue = attrObj.GetComponentInChildren(); if (_AttrValue == null || m_CurrentSelect == null || exAttr.XilianValue<=0) { GameObject.Destroy(attrObj); return; } string attrStr = PropID.GetAttrValue((PropID.PropertyID)exAttr.mPropID, exAttr.PropSubID, exAttr.XilianValue); _AttrValue.text = m_CurrentSelect.GetEquipColorStr() + attrStr + ""; ObjLists.Add(attrObj); } public void ConsumPay(int PayItemId,int PayNeedNum) { Tab_CommonItem Payitem = TableManager.GetCommonItemByID(PayItemId, 0); if (Payitem == null) return; LoadAssetBundle.Instance.SetImageSprite(PayIcon, Payitem.Icon); if (Payitem.QualityEffect > 0) { CommonItemContainerItem.ShowQualityEffect(true, Payitem.QualityEffect, PayIcon.transform); } else { CommonItemContainerItem.ShowQualityEffect(false, Payitem.QualityEffect, PayIcon.transform); } PayName.text = Payitem.Name; int hasNum = GameManager.gameManager.PlayerDataPool.BackPack.GetItemCountByDataId(PayItemId); if(hasNum < PayNeedNum) { PayNum.text = string.Format("{2}{0}/{1}",hasNum,PayNeedNum, StrDictionary.GetClientDictionaryString("#{5526}")); PayGetBtn.gameObject.SetActive(true); PayGetBtn.onClick.RemoveAllListeners(); PayGetBtn.onClick.AddListener(delegate () { ItemTooltipsLogic.ShowItemTooltip(PayItemId, ItemTooltipsLogic.ShowType.GetPath, transform.position); }); } else { PayNum.text = string.Format("{0}/{1}", hasNum, PayNeedNum); PayGetBtn.gameObject.SetActive(false); } long MoneyHas = GameManager.gameManager.PlayerDataPool.Money.GetMoney_YuanBao(); PayMoneyHas.text = MoneyHas.ToString(); LoadAssetBundle.Instance.SetImageSprite(MoneyTypeHas, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO)); LoadAssetBundle.Instance.SetImageSprite(MoneyTypeNeed, UICurrencyItem.GetCurrencySprite(MONEYTYPE.MONEYTYPE_YUANBAO)); foreach (var shop in TableManager.GetYuanBaoShop().Values) { if (shop.MoneyType == 1 && shop.ItemID == PayItemId) { PayMoneyNum.text = (shop.PriceForever* PayNeedNum).ToString(); } } } public void BuyFast() { JudgeMoneyLogic.ShowSwitchMoneyPanel(MONEYTYPE.MONEYTYPE_YUANBAO, true); } public void Click_GetPayItem() { if (m_CurrentSelect == null) return; ItemTooltipsLogic.ShowItemTooltip(m_CurrentSelect, ItemTooltipsLogic.ShowType.GetPath, transform.position); } public void Click_Replace() { if (m_CurrentSelect == null || m_CurrentSelect.IsValid() == false) return; CG_HANDLE_MAGIC_WEAPON send = (CG_HANDLE_MAGIC_WEAPON)PacketDistributed.CreatePacket(MessageID.PACKET_CG_HANDLE_MAGIC_WEAPON); send.SetGuid(m_CurrentSelect.Guid); send.SetHandletype((int)CG_HANDLE_MAGIC_WEAPON.EMagicWeaponHandleType.EReplace); GameItem gameItem = GameManager.gameManager.PlayerDataPool.BackPack.GetItemByGuid(m_CurrentSelect.Guid); if (gameItem != null) { send.SetPackType((int)GameItemContainer.Type.TYPE_BACKPACK); } else { GameItemContainer Container = GameManager.gameManager.PlayerDataPool.GetItemContainer(GameItemContainer.Type.TYPE_MAGICPACK); if (Container != null) { gameItem = Container.GetItemByGuid(m_CurrentSelect.Guid); if (gameItem != null) { send.SetPackType((int)GameItemContainer.Type.TYPE_MAGICPACK); } } } send.SendPacket(); } public void Click_Clear() { if (m_CurrentSelect == null || m_CurrentSelect.IsValid() == false) return; CG_HANDLE_MAGIC_WEAPON send = (CG_HANDLE_MAGIC_WEAPON)PacketDistributed.CreatePacket(MessageID.PACKET_CG_HANDLE_MAGIC_WEAPON); send.SetGuid(m_CurrentSelect.Guid); if(m_PayGold.isOn==false) send.SetHandletype((int)CG_HANDLE_MAGIC_WEAPON.EMagicWeaponHandleType.ERefine); else send.SetHandletype((int)CG_HANDLE_MAGIC_WEAPON.EMagicWeaponHandleType.ERefinCostItemAndMoney); GameItem gameItem = GameManager.gameManager.PlayerDataPool.BackPack.GetItemByGuid(m_CurrentSelect.Guid); if (gameItem != null) { send.SetPackType((int)GameItemContainer.Type.TYPE_BACKPACK); } else { GameItemContainer Container = GameManager.gameManager.PlayerDataPool.GetItemContainer(GameItemContainer.Type.TYPE_MAGICPACK); if (Container != null) { gameItem = Container.GetItemByGuid(m_CurrentSelect.Guid); if (gameItem != null) { send.SetPackType((int)GameItemContainer.Type.TYPE_MAGICPACK); } } } send.SendPacket(); } public void Click_Close() { UIManager.CloseUI(UIInfo.MagicClearWndPath); } public void Toggle_Click() { PayMoneyObj.SetActive(m_PayGold.isOn); } }