protected override void OnDecision()
    {
        List <GameSectionHistory.HistoryData> historyList = MonoBehaviourSingleton <GameSceneManager> .I.GetHistoryList();

        string sectionName = historyList[historyList.Count - 2].sectionName;
        bool   flag        = sectionName == "ItemDetailSkillDialog" || sectionName == "ItemDetailSkill";

        if (selectIndex == -1)
        {
            if (equipSkillItem == null)
            {
                GameSection.BackSection();
            }
            else
            {
                GameSection.ChangeEvent("DETACH", null);
                SendDetachEquipSkill();
            }
        }
        else
        {
            SortCompareData sortCompareData = inventory.datas[selectIndex];
            if (equipSkillItem != null && equipSkillItem.uniqueID == sortCompareData.GetUniqID())
            {
                GameSection.BackSection();
            }
            else
            {
                EquipItemInfo equipItemInfo = null;
                SkillItemInfo skillItemInfo = sortCompareData.GetItemData() as SkillItemInfo;
                if (skillItemInfo.IsCurrentEquipSetAttached)
                {
                    EquipSetSkillData equipSetSkillData = skillItemInfo.equipSetSkill.Find((EquipSetSkillData x) => x.equipSetNo == MonoBehaviourSingleton <StatusManager> .I.GetCurrentEquipSetNo());
                    equipItemInfo = MonoBehaviourSingleton <InventoryManager> .I.equipItemInventory.Find(equipSetSkillData.equipItemUniqId);
                }
                if (equipSkillItem != null)
                {
                    if (!skillItemInfo.IsCurrentEquipSetAttached)
                    {
                        GameSection.ChangeEvent((!flag) ? "EQUIP" : "EQUIP_DETAIL", null);
                        CheckSendEquipSkill();
                    }
                    else
                    {
                        GameSection.ChangeEvent((!flag) ? "STEAL" : "STEAL_DETAIL", new object[5]
                        {
                            equipSkillItem.tableData.name,
                            equipSkillItem.level.ToString(),
                            equipItemInfo.tableData.name,
                            sortCompareData.GetName(),
                            sortCompareData.GetLevel().ToString()
                        });
                    }
                }
                else if (skillItemInfo.IsCurrentEquipSetAttached)
                {
                    GameSection.ChangeEvent((!flag) ? "REPLACE" : "REPLACE_DETAIL", new object[3]
                    {
                        equipItemInfo.tableData.name,
                        sortCompareData.GetName(),
                        sortCompareData.GetLevel().ToString()
                    });
                }
                else
                {
                    GameSection.ChangeEvent((!flag) ? "EQUIP" : "EQUIP_DETAIL", null);
                    CheckSendEquipSkill();
                }
            }
        }
    }