using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using Games.Item;
using GCGame;
using GCGame.Table;
using Games.ChatHistory;

public class ChatLinkEquip : ChatLinkItem
{
    private ulong _ItemGuid;
    private int _ItemDataID;
    private int _Strength;
    private int _IsRare;
    private int _ExAttrCnt;
    private ulong _SenderGuid;

    public override void SetLinkItem(GameItem itemInfo)
    {
        string linkStr = "";

        linkStr = "【" + itemInfo.GetEquipNameWithoutColor() + "】";
        //linkStr = itemInfo.GetEquipNameWithoutColor();

        _ItemGuid = itemInfo.Guid;
        _ItemDataID = itemInfo.DataID;

        int isRare = itemInfo.IsRare ? 1 : 0;
        int isFrenzy = itemInfo.IsFrenzy ? 1 : 0;

        StrInput = linkStr;
        StrSend = StrSendStart + ((int)ChatLinkType.Equip).ToString() + StrSplit + _ItemGuid + StrSplit + _ItemDataID + StrSplit + itemInfo.StrengthLevel + StrSplit + isRare + StrSplit + itemInfo.ExAttrs.Count + StrSplit + isFrenzy + StrSendEnd; 
    }

    public override void SetLinkBySendStr(Text text, ChatHistoryItem chatHistory, string linkStr, string[] linkParams)
    {
        StrSend = linkStr;
        StrInput = linkStr;

        if (linkParams.Length != 7)
            return;

        _ItemGuid = ulong.Parse(linkParams[1]);
        _ItemDataID = int.Parse(linkParams[2]);
        _Strength = int.Parse(linkParams[3]);
        _IsRare = int.Parse(linkParams[4]);
        _ExAttrCnt = int.Parse(linkParams[5]);
        int frenzyParam = int.Parse(linkParams[6]);
        bool _IsFrenzy = frenzyParam == 1 ? true : false;
        _SenderGuid = chatHistory.SenderGuid;

        GameItem equipItem = new GameItem();
        equipItem.Guid = _ItemGuid;
        equipItem.IsFrenzy = _IsFrenzy;
        equipItem.DataID = _ItemDataID;
        equipItem.StrengthLevel = _Strength;
        equipItem.IsRare = _IsRare > 0;
        equipItem.ExAttrs.Clear();
        for (int i = 0; i < _ExAttrCnt; ++i)
        {
            equipItem.ExAttrs.Add(new EquipXilianAttr());
        }
        var dataTab = TableManager.GetCommonItemByID(_ItemDataID, 0);
        if (dataTab != null)
        {
            string equipStr = equipItem.GetEquipName();
            
            StrShow = equipItem.GetEquipNameInBrackets(_ShowBlackColor);
        }
    }

    
    protected override void LinkClick(int linkindex)
    {
        ShowChatItemTooltips(_ItemGuid, _SenderGuid);
    }

    
    
}