Files
JJBB/Assets/Project/Script/GUI/Message/EquipTooltipsLogic.cs

968 lines
31 KiB
C#
Raw Normal View History

2024-08-23 15:49:34 +08:00

using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using GCGame.Table;
using Games.Item;
using GCGame;
using System.Collections.Generic;
using Games.GlobeDefine;
using Games.LogicObj;
using Module.Log;
using Games.UserCommonData;
using System;
public class EquipTooltipsLogic : MonoBehaviour
{
public RectTransform _RootTransform;
public EquipTooltipsInfo _ShowingEquipInfo;
public EquipTooltipsInfo _CompareEquipInfo;
public RectTransform _ShowingEquipRect;
public RectTransform _CompareEquipRect;
public UISubScollMenu _PopMenu;
public GameObject _EquipInfoOffset;
public float _PosLeft;
public float _PosRight;
public GameObject _MenuContainer;
public GameObject _BtnSell;
private GameItem m_Equip;
private GameItemContainer.Type _ContainerPack;
private ItemTooltipsLogic.ShowType m_Type;
private static EquipTooltipsLogic m_Instance = null;
public static EquipTooltipsLogic Instance()
{
return m_Instance;
}
private static GameItem m_curItem;
private static ItemTooltipsLogic.ShowType m_curType;
private static Vector3 _ClickPos;
public static void ShowEquipTooltip(int dataId, ItemTooltipsLogic.ShowType type, Vector3 clickPos)
{
GameItem item = new GameItem();
item.DataID = dataId;
if (item.IsValid() && item.IsEquipMent())
{
ShowEquipTooltip(item, type, clickPos);
}
}
public static void ShowEquipTooltip(GameItem equip, ItemTooltipsLogic.ShowType type, Vector3 clickPos)
{
m_curItem = equip;
m_curType = type;
_ClickPos = clickPos;
UIManager.ShowUI(UIInfo.EquipTooltipsRoot, EquipTooltipsLogic.OnShowEquipTip);
}
private static void OnShowEquipTip(bool bSuccess, object param)
{
if (!bSuccess)
{
LogModule.ErrorLog("load equiptooltip error");
return;
}
EquipTooltipsLogic.Instance().ShowTooltips(m_curItem, m_curType);
}
void Awake()
{
m_Instance = this;
}
void Start()
{
}
public IEnumerator ShowEquip()
{
_EquipInfoOffset.transform.localPosition = new Vector3(0, 2000, 0);
yield return null;
_EquipInfoOffset.transform.localPosition = Vector3.zero;
}
void OnDestroy()
{
m_Instance = null;
}
/// <summary>
/// 显示装备Tooltips
/// </summary>
/// <param name="equip">装备</param>
private void ShowTooltips(GameItem equip, ItemTooltipsLogic.ShowType type)
{
if (equip == null)
{
CloseWindow();
return;
}
if (equip.IsValid() == false)
{
CloseWindow();
return;
}
m_Equip = equip;
m_Type = type;
//if (_ClickPos.x < 0)
//{
// _RootTransform.anchoredPosition = new Vector2(_PosRight, _RootTransform.anchoredPosition.y);
//}
//else
//{
// _RootTransform.anchoredPosition = new Vector2(_PosLeft, _RootTransform.anchoredPosition.y);
//}
_ShowingEquipRect.anchoredPosition = new Vector2(0, 0);
HideAllButtons();
//如果本装备位已经装备物品 弹出对比tips
int slotindex = equip.GetEquipSlotIndex();
GameItem CompareEquip = GameManager.gameManager.PlayerDataPool.EquipPack.GetItem(slotindex);
_ShowingEquipInfo.SetEquipInfo(equip, CompareEquip);
_CompareEquipInfo.gameObject.SetActive(false);
_PopMenu.Clear();
_PopMenu.gameObject.SetActive(true);
//_BtnSell.SetActive(false);
if (type == ItemTooltipsLogic.ShowType.Equiped) //点击装备槽位弹出的tips
{
_ContainerPack = GameItemContainer.Type.TYPE_EQUIPPACK;
//脱下按钮 显示
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3876}"));
//装备强化按钮 显示
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5422}"));
if (m_Equip.IsCanXilian())
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5423}"));
}
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5424}"));
if (m_Equip.IsCanFrenzy())
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5425}"));
}
//修理
if (equip.Durable != equip.GetEquipMaxDurable())
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5317}"));
}
//失魂
if (equip.IsShihun())
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5318}"));
}
////隐藏战斗力箭头
//m_EquipPowerArrowUpSprite.gameObject.SetActive(false);
//m_EquipPowerArrowDownSprite.gameObject.SetActive(false);
}
else if (type == ItemTooltipsLogic.ShowType.UnEquiped) //点击物品背包弹出的tips
{
_ContainerPack = GameItemContainer.Type.TYPE_BACKPACK;
//装备按钮 显示
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3874}"));
//售出按钮 显示
int cansell = TableManager.GetCommonItemByID(equip.DataID, 0).CanSell;
if (equip.CanSell())
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3877}"));
}
if (!equip.BindFlag)
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3580}")); //绑定
}
var sellTab = TableManager.GetUserShopItemByID(equip.DataID);
if (sellTab != null && !equip.BindFlag)
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{4578}")); //出售
}
//失魂
if (equip.IsShihun())
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5318}"));
}
//修理
if (equip.Durable != equip.GetEquipMaxDurable())
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{5317}"));
}
if (CompareEquip != null && CompareEquip.IsValid())
{
OpenCompare(slotindex, null);
_ShowingEquipRect.anchoredPosition = new Vector2(_PosRight, 0);
_CompareEquipRect.anchoredPosition = new Vector2(_PosLeft, 0);
}
else
{
_ShowingEquipRect.anchoredPosition = new Vector2(0, 0);
_ShowingEquipInfo.SetEquipBaseCombat(0);
}
}
else if (type == ItemTooltipsLogic.ShowType.ShopBuy)
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3857}"));
////隐藏战斗力箭头
//m_EquipPowerArrowUpSprite.gameObject.SetActive(false);
//m_EquipPowerArrowDownSprite.gameObject.SetActive(false);
}
else if (type == ItemTooltipsLogic.ShowType.ShopBuyBatch)
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3857}"));
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3858}"));
////隐藏战斗力箭头
//m_EquipPowerArrowUpSprite.gameObject.SetActive(false);
//m_EquipPowerArrowDownSprite.gameObject.SetActive(false);
}
else if (type == ItemTooltipsLogic.ShowType.BuyBack)
{
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{1086}"));
}
else if (type == ItemTooltipsLogic.ShowType.Info) //仅显示信息 没有操作按钮的tips
{
_PopMenu.gameObject.SetActive(false);
////隐藏战斗力箭头
//m_EquipPowerArrowUpSprite.gameObject.SetActive(false);
//m_EquipPowerArrowDownSprite.gameObject.SetActive(false);
}
else if (type == ItemTooltipsLogic.ShowType.Compare) //仅显示信息 没有操作按钮的tips 同时做对比
{
if (CompareEquip != null && CompareEquip.IsValid())
{
OpenCompare(slotindex, null);
_ShowingEquipRect.anchoredPosition = new Vector2(_PosRight, 0);
_CompareEquipRect.anchoredPosition = new Vector2(_PosLeft, 0);
}
else
{
_ShowingEquipRect.anchoredPosition = new Vector2(0, 0);
_ShowingEquipInfo.SetEquipBaseCombat(0);
}
}
else if (type == ItemTooltipsLogic.ShowType.ChatLink) //仅显示信息 没有操作按钮的tips
{
////隐藏战斗力箭头
//m_EquipPowerArrowUpSprite.gameObject.SetActive(false);
//m_EquipPowerArrowDownSprite.gameObject.SetActive(false);
//根据是否可以上架 决定是否显示求购按钮
//if (ConsignSaleBag.isCanConsignSale(m_Equip, true))
//{
// _PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3882}"));
//}
}
else if (type == ItemTooltipsLogic.ShowType.CangKu) //仓库界面 仓库物品tips
{
////隐藏战斗力箭头
//m_EquipPowerArrowUpSprite.gameObject.SetActive(false);
//m_EquipPowerArrowDownSprite.gameObject.SetActive(false);
//显示取回按钮
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3883}"));
}
else if (type == ItemTooltipsLogic.ShowType.CangKuBackPack) //仓库界面 背包物品tips
{
////隐藏战斗力箭头
//m_EquipPowerArrowUpSprite.gameObject.SetActive(false);
//m_EquipPowerArrowDownSprite.gameObject.SetActive(false);
//显示放入仓库按钮
_PopMenu.PushMenu(StrDictionary.GetClientDictionaryString("#{3875}"));
}
if (_PopMenu.SubBtns.Count > 0)
{
_MenuContainer.SetActive(true);
}
else
{
_MenuContainer.SetActive(false);
}
StartCoroutine(ShowEquip());
}
void HideAllButtons()
{
_PopMenu.Clear();
}
public void CloseWindow()
{
UIManager.CloseUI(UIInfo.EquipTooltipsRoot);
}
void OpenCompare(int nEquipSlot,GameItem gameItem)
{
GameItem equip = GameManager.gameManager.PlayerDataPool.EquipPack.GetItem(nEquipSlot);
if (equip != null && equip.IsValid())
{
_CompareEquipInfo.gameObject.SetActive(true);
_CompareEquipInfo.SetEquipInfo(equip, null);
if (equip.BaseCombat > m_curItem.BaseCombat)
{
_ShowingEquipInfo.SetEquipBaseCombat(-1);
}
else if (equip.BaseCombat < m_curItem.BaseCombat)
{
_ShowingEquipInfo.SetEquipBaseCombat(1);
}
else
{
_ShowingEquipInfo.SetEquipBaseCombat(0);
}
_CompareEquipInfo.SetEquipBaseCombat(0);
_RootTransform.anchoredPosition = Vector3.zero;
}
else
{
_ShowingEquipInfo.SetEquipBaseCombat(0);
}
//m_TooltipsGrid.gameObject.transform.localPosition = new Vector3(-175, 0, 0);
//m_TooltipsGrid.repositionNow = true;
}
void CloseCompare()
{
_CompareEquipInfo.gameObject.SetActive(false);
//m_TooltipsGrid.repositionNow = true;
//m_EquipTooltips.transform.localPosition = new Vector3(0, 0, 0);
//m_TooltipsGrid.gameObject.transform.localPosition = new Vector3(0, 0, 0);
}
public void OnBtnPopMenu(object menuObj)
{
string menuStr = menuObj as string;
if (menuStr == StrDictionary.GetClientDictionaryString("#{3857}"))
{
// 购买
OnBuyClick();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3858}"))
{
// 批量购买
OnBuyBatchClick();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3882}"))
{
// 求购
ConsignSaleBuyBt();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3875}"))
{
// 放入
CangKuIn();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3883}"))
{
// 取出
CangKuOut();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3874}"))
{
// 装备
EquipUse();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3877}"))
{
// 回收
EquipSell();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3876}"))
{
// 卸下
EquipTakeOff();
}
//else if (menuStr == StrDictionary.GetClientDictionaryString("#{3885}"))
//{
// ItemThrow();
//}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{5422}"))
{
// 强化
EnhanceOnClick(1);
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{5423}"))
{
// 洗炼
EnhanceOnClick(0);
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{5424}"))
{
// 镶嵌
EnhanceOnClick(2);
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{5425}"))
{
// 狂化
EnhanceOnClick(3);
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3880}"))
{
// 分享
EquipShareLink();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{1086}"))
{
// 回购
ItemBuyBack();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{5317}"))
{
// 修理
OnEquipRefit();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{5318}"))
{
// 失魂
OnEquipShihun();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{3580}"))
{
// 绑定
BindItem();
}
else if (menuStr == StrDictionary.GetClientDictionaryString("#{4578}"))
{
// 出售
ItemMarket();
}
}
void BindItem()
{
LogModule.DebugLog("BindItem");
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{5396}"), "", BindItemOK, null);
}
void BindItemOK()
{
CG_REQ_BIND_ITEM buyPacket = (CG_REQ_BIND_ITEM)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_BIND_ITEM);
buyPacket.Itemguid = (long)m_Equip.Guid;
buyPacket.SendPacket();
}
void BindItemCancel()
{
}
void ItemMarket()
{
UIManager.ShowUI(UIInfo.MarketRoot, (sucess, param) =>
{
MarketLogic.Instance()._TagPanel.ShowPage(1);
MarketLogic.Instance()._MarketPlayerLogic._TagPanel.ShowPage(1);
});
CloseWindow();
}
public void EquipSell()
{
if (m_Equip != null && m_Equip.IsValid())
{
SysShopController.m_TipSelDataID = m_Equip.DataID;
if (m_Equip.IsEquipMent() && m_Equip.StrengthLevel > 0 || m_Equip.IsEquipGem())
{
if(m_Equip.IsEquipGem())
{
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{5400}",
m_Equip.GetEquipName(false, StrDictionary.GetClientDictionaryString("#{6755}"))), "", EquipSellOK, null, GlobeVar.INVALID_ID, MessageBoxLogic.PASSWORD.INVALID);
}
else
{
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{5400}", m_Equip.GetEquipName()), "", EquipSellOK, null, GlobeVar.INVALID_ID, MessageBoxLogic.PASSWORD.INVALID);
}
}
else if (m_Equip.GetQuality() > ItemQuality.QUALITY_BLUE)
{
MessageBoxLogic.OpenOKCancelBox(StrDictionary.GetClientDictionaryString("#{4668}"), "", EquipSellOK, null, GlobeVar.INVALID_ID, MessageBoxLogic.PASSWORD.INVALID);
}
else
{
EquipSellOK();
}
}
CloseWindow();
}
void EquipSellOK()
{
if (m_Equip != null && m_Equip.IsValid())
{
List<GameItem> selllist = new List<GameItem>();
selllist.Add(m_Equip);
SysShopController.SellItem((int)GameItemContainer.Type.TYPE_BACKPACK, selllist);
CloseWindow();
}
}
void EquipUse()
{
if (m_Equip != null && m_Equip.IsValid())
{
int nPlayerLevel = GameManager.gameManager.PlayerDataPool.MainPlayerBaseAttr.Level;
if (nPlayerLevel < m_Equip.EquipUseLevel)
{
GUIData.AddNotifyData("#{1255}");
//Singleton<ObjManager>.GetInstance().MainPlayer.SendNoticMsg(false, "#{1255}");
return;
}
int equipProfession = m_Equip.GetProfessionRequire();
if (equipProfession > 0)
{
int nPlayerProfession = Singleton<ObjManager>.Instance.MainPlayer.Profession;
if (((equipProfession >> nPlayerProfession) & 1) == 0)
{
Singleton<ObjManager>.GetInstance().MainPlayer.SendNoticMsg(false, "#{1256}");
return;
}
}
if (m_Equip.BindFlag == false && m_Equip.GetBindType() != 0)
{
MessageBoxLogic.OpenOKCancelBox(3028, 1000, EquipUseOK, null);
}
else
{
EquipUseOK();
}
}
}
void EquipUseOK()
{
if (Singleton<ObjManager>.Instance.MainPlayer.CheckEquipItem(m_Equip))
{
GameManager.gameManager.SoundManager.PlaySoundEffect(144);
Singleton<ObjManager>.Instance.MainPlayer.EquipItem(m_Equip);
}
CloseWindow();
}
void EquipTakeOff()
{
if (m_Equip != null && m_Equip.IsValid())
{
if (Singleton<ObjManager>.Instance.MainPlayer.CheckUnEquipItem(m_Equip))
{
Singleton<ObjManager>.Instance.MainPlayer.UnEquipItem(m_Equip);
}
CloseWindow();
}
}
void EquipShareLink()
{
//if (m_Equip != null && m_Equip.IsValid())
//{
// ShareTargetChooseLogic.InitEquipShare(m_Equip);
//}
//ShareLinkDirectChatInfo();
}
void PutInQianKunDai()
{
//if (m_Equip != null && m_Equip.IsValid())
//{
// if (QianKunDaiLogic.Instance() != null && QianKunDaiLogic.Instance().gameObject.activeSelf)
// {
// //QianKunDaiLogic.Instance().ChooseStuff(m_Equip, m_curItemSlot);
// }
// CloseWindow();
//}
}
void EquipEnchance()
{
if (m_Equip != null && m_Equip.IsValid())
{
bool bRet = GameManager.gameManager.PlayerDataPool.CommonData.GetCommondFlag((int)USER_COMMONFLAG.CF_STRENGTHENFUNCTION_OPENFLAG);
if (bRet == false)
{
Singleton<ObjManager>.Instance.MainPlayer.SendNoticMsg(false, "#{2182}");
return;
}
if (_CompareEquipInfo.gameObject.activeSelf == true)
{
CloseCompare();
}
UIManager.CloseUI(UIInfo.EquipTooltipsRoot);
//UIManager.ShowUI(UIInfo.EquipStren, OnShowEquipEnchance);
}
}
void OnShowEquipEnchance(bool bSuccess, object param)
{
if (m_Equip != null && m_Equip.IsValid())
{
//if (EquipStrengthenLogic.Instance() != null)
//{
// //设置勾选当前装备
// EquipStrengthenLogic.Instance().SetCurSelectEquip(m_Equip);
// EquipStrengthenLogic.Instance().UpdateTab();
//}
}
}
void OnBuyClick()
{
if (SysShopController.Instance() != null)
{
//SysShopController.Instance().BuyCurItem();
}
}
void OnBuyBatchClick()
{
if (SysShopController.Instance() != null)
{
//SysShopController.Instance().BuyBatchCurItem();
}
}
void ShareLinkDirectChatInfo()
{
UIManager.ShowUI(UIInfo.ChatInfoRoot, ShowChatInfoRootOver);
}
//寄售行求购
void ConsignSaleBuyBt()
{
//UIManager.ShowUI(UIInfo.ConsignSaleRoot, BuyItemOpenConsignSale);
}
void BuyItemOpenConsignSale(bool bSuccess, object param)
{
if (bSuccess)
{
//if (ConsignSaleLogic.Instance() != null && m_Equip != null && m_Equip.IsValid() != false)
//{
// ConsignSaleLogic.Instance().SearchForAskBuy(m_Equip.GetName());
//}
CloseWindow();
}
}
void ShowChatInfoRootOver(bool bSuccess, object param)
{
if (bSuccess)
{
//ChatInfoLogic.Instance().InsertEquipLinkText(m_Equip);
EquipTooltipsLogic.Instance().CloseWindow();
}
}
void CangKuIn()
{
if (m_Equip != null && m_Equip.IsValid())
{
Singleton<ObjManager>.Instance.MainPlayer.CangKuPutIn(m_Equip);
CloseWindow();
}
}
void CangKuOut()
{
if (m_Equip != null && m_Equip.IsValid())
{
Singleton<ObjManager>.Instance.MainPlayer.CangKuTakeOut(m_Equip);
CloseWindow();
}
}
void EnhanceOnClick(int page = 1)
{
//bool bRet = GameManager.gameManager.PlayerDataPool.CommonData.GetCommondFlag((int)USER_COMMONFLAG.CF_STRENGTHENFUNCTION_OPENFLAG);
//if (bRet == false)
//{
// Singleton<ObjManager>.Instance.MainPlayer.SendNoticMsg(false, "#{2182}");
// return;
//}
//没有统一接口现在只在单独打开功能UI的地方判断当前功能是否开启
if(!IsMakeFuncOpen())
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{62935}")); //功能未开启
CloseWindow();
return;
}
EquipEnhanceRoot.ShowEnhanceRoot(m_Equip, page);
//UIManager.ShowUI(UIInfo.EquipEnhance);
CloseWindow();
}
private const int _MakeFuncTabId = 1;
private bool IsMakeFuncOpen()
{
var functionOpenTab = TableManager.GetFunctionOpenByID(_MakeFuncTabId, 0);
if (functionOpenTab == null)
{
return false;
}
var _OpenGuide = functionOpenTab.ShowGUIDId;
var _OpenLevel = functionOpenTab.OpenLevel;
if (_OpenGuide > 0)
{
if (_OpenGuide > Guide.Instance._FinishGuideID)
{
return false;
}
}
else if (_OpenLevel > 0)
{
if (GameManager.gameManager.PlayerDataPool.FunctionOpenState.ContainsKey(_MakeFuncTabId)
&& GameManager.gameManager.PlayerDataPool.FunctionOpenState[_MakeFuncTabId])
{
return true;
}
else
{
return false;
}
}
return true;
}
void ItemBuyBack()
{
CG_SYSTEMSHOP_BUYBACK buyBackPacket = (CG_SYSTEMSHOP_BUYBACK)PacketDistributed.CreatePacket(MessageID.PACKET_CG_SYSTEMSHOP_BUYBACK);
buyBackPacket.SetShopId((int)GameItemContainer.Type.TYPE_BUYBACKPACK);
buyBackPacket.SetItemGuid(m_Equip.Guid);
buyBackPacket.SendPacket();
CloseWindow();
}
private int _DecomConsume = 0;
void OnDisassembly()
{
_DecomConsume = 0;
if (m_Equip.StrengthLevel > 0)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5336}"));
return;
}
if(m_Equip.IsEquipGem())
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5420}"));
return;
}
// 返还物品先进行统计,避免一个物品显示两次 Dic<ID, Cout>
Dictionary<int, int> returnItems = new Dictionary<int, int>();
// 基础分解的返还
var equipDecomposizions = TableManager.GetEquipDecomposition().Values;
Tab_EquipDecomposition equipDecomTab = null;
foreach(var equipDecomposition in equipDecomposizions)
{
if (equipDecomposition.EquipType == 1&&
equipDecomposition.EquipLevel >= m_Equip.GetEquipLevel()
&& equipDecomposition.Quality == (int)m_Equip.GetQuality())
{
equipDecomTab = equipDecomposition;
break;
}
}
if (equipDecomTab != null)
{
_DecomConsume = equipDecomTab.ConsumeNum;
}
if (equipDecomTab != null && equipDecomTab.ItemNum > 0)
{
if(returnItems.ContainsKey(equipDecomTab.ItemID))
{
returnItems[equipDecomTab.ItemID] += equipDecomTab.ItemNum;
}
else
{
returnItems[equipDecomTab.ItemID] = equipDecomTab.ItemNum;
}
}
// 洗练返还
if (m_Equip.XilianPoint > 0)
{
string getBackItemStr2 = "";
var equipXilianTabs = TableManager.GetEquipPropBarBaptizeConsume().Values;
foreach (var consumeTab in equipXilianTabs)
{
if (consumeTab.MaxLevel >= m_Equip.GetEquipLevel() && consumeTab.Quality == (int)m_Equip.GetQuality())
{
if(returnItems.ContainsKey(consumeTab.ConsumeSubType))
{
returnItems[consumeTab.ConsumeSubType] += (int)(m_Equip.XilianPoint * consumeTab.ConsumeNum * 0.8f);
}
else
{
returnItems[consumeTab.ConsumeSubType] = (int)(m_Equip.XilianPoint * consumeTab.ConsumeNum * 0.8f);
}
break;
}
}
}
// 打孔返还
//var equipQuality = m_Equip.GetQuality();
//int gemPos = m_Equip.GetOpenedGemPos();
//if (gemPos > 0)
//{
// var punchTabs = TableManager.GetEquipPunchConsume().Values;
// Tab_EquipPunchConsume equipPunchConsume = null;
// foreach (var punchTab in punchTabs)
// {
// if (punchTab.MaxLevel >= m_Equip.GetEquipLevel())
// {
// equipPunchConsume = punchTab;
// break;
// }
// }
// int getBackCnt = 0;
// if (equipPunchConsume != null)
// {
// for (int i = 0; i < gemPos; ++i)
// {
// getBackCnt += (int)equipPunchConsume.GetReturnNumbyIndex(i);
// }
// if (getBackCnt > 0)
// {
// if(returnItems.ContainsKey(equipPunchConsume.ConsumeSubType))
// {
// returnItems[equipPunchConsume.ConsumeSubType] += getBackCnt;
// }
// else
// {
// returnItems[equipPunchConsume.ConsumeSubType] = getBackCnt;
// }
// }
// }
//}
// 狂化返还
if(m_Equip.IsFrenzy)
{
Tab_CommonItem itemTab = TableManager.GetCommonItemByID(m_Equip.DataID, 0);
var fenzyTabs = TableManager.GetEquipFrenzy().Values;
foreach (var kv in fenzyTabs)
{
if ((int)m_Equip.GetQuality() == kv.Quality
&& itemTab.MinLevelRequire >= kv.EquipLevelMin
&& itemTab.MinLevelRequire <= kv.EquipLevelMax)
{
if (returnItems.ContainsKey(kv.ReturnSubType))
{
returnItems[kv.ReturnSubType] += kv.ReturnNum;
}
else
{
returnItems[kv.ReturnSubType] = kv.ReturnNum;
}
break;
}
}
}
string resultStr = "";
foreach(var kv in returnItems)
{
Tab_CommonItem tab = TableManager.GetCommonItemByID(kv.Key, 0);
if(tab != null)
{
if (string.IsNullOrEmpty(resultStr))
{
resultStr = Utils.GetItemQualityColor(tab.Quality) + tab.Name + "×" + kv.Value + "</color>";
}
else
{
resultStr += "," + Utils.GetItemQualityColor(tab.Quality) + tab.Name + "×" + kv.Value + "</color>";
}
}
}
string tips = StrDictionary.GetClientDictionaryString("#{5337}", m_Equip.GetEquipName(), _DecomConsume, resultStr);
MessageBoxLogic.OpenOKCancelBox(tips, null, OnDisassemblyOK);
}
void OnDisassemblyOK()
{
long money = GameManager.gameManager.PlayerDataPool.Money.GetMoney_Coin() + GameManager.gameManager.PlayerDataPool.Money.GetMoney_CoinBind();
if (money < _DecomConsume)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{6004}") + StrDictionary.GetClientDictionaryString("#{6000}"));
return;
}
CG_DECOMPOSITION_EQUIP packet = (CG_DECOMPOSITION_EQUIP)PacketDistributed.CreatePacket(MessageID.PACKET_CG_DECOMPOSITION_EQUIP);
packet.AddEquipguid(m_Equip.Guid);
packet.SendPacket();
CloseWindow();
}
void OnEquipRefit()
{
if (m_Equip != null)
{
foreach (var attr in m_Equip.ExAttrs)
{
if (attr.XilianTab.PropID == (int)PropID.PropertyID.EQUIP_XILIAN_NOREFIT)
{
GUIData.AddNotifyData(StrDictionary.GetClientDictionaryString("#{5375}"));
return;
}
}
}
m_Equip.EquipRefit((int)_ContainerPack);
CloseWindow();
}
private int _ShihunCost = 0;
void OnEquipShihun()
{
var timeSpan = TimeSpan.FromTicks((long)(m_Equip.ShihunTime - GlobalData.ServerAnsiTime) * 10000000L);
_ShihunCost = (m_Equip.GetEquipMaxDurable() * (int)m_Equip.GetQuality() * (int)(timeSpan.TotalHours + 1));
string tips = StrDictionary.GetClientDictionaryString("#{5369}", m_Equip.GetEquipName(), _ShihunCost);
MessageBoxLogic.OpenOKCancelBox(tips, null, OnEquipShihunOK);
//CloseWindow();
}
void OnEquipShihunOK()
{
if (JudgeMoneyLogic.IsMoneyEnough(MONEYTYPE.MONEYTYPE_COIN, _ShihunCost))
{
CG_REQ_EQUIP_FIX_INVALID_STATE packet = (CG_REQ_EQUIP_FIX_INVALID_STATE)PacketDistributed.CreatePacket(MessageID.PACKET_CG_REQ_EQUIP_FIX_INVALID_STATE);
packet.Packettype = (int)_ContainerPack;
packet.Equipguid = m_Equip.Guid;
packet.SendPacket();
CloseWindow();
}
}
}