void setData()
    {
        EquipmentList.Clear();

        if (partyInfo.getSelectedEquipType() == EQUIPMENT_TYPE.MAX)
        {
            DebugLog.Log(false, "Invalid Equipment type 'MAX'");
            return;
        }
        selectedEquipType = partyInfo.getSelectedEquipType();


        UserServantData servantData   = partyInfo.ServantList[partyInfo.selected_unit_idx];
        DBServantData   dbServantData = CSVData.Inst.GetServantData(servantData.id);

        for (int i = 0; i < UserDataManager.Inst.GetEquipmentList().Count; i++)
        {
            UserEquipmentData equipmentData   = UserDataManager.Inst.GetEquipmentList()[i];
            DBEquipmentData   dbEquipmentData = CSVData.Inst.GetEquipmentData(equipmentData.id);

            // 장착 가능 레벨 검사
            bool enable_equip_level = true;
            if (dbEquipmentData.tier == 2)
            {
                if (servantData.level <= 10)
                {
                    enable_equip_level = false;
                }
            }
            else if (dbEquipmentData.tier == 3)
            {
                if (servantData.level <= 20)
                {
                    enable_equip_level = false;
                }
            }
            else if (dbEquipmentData.tier == 4)
            {
                if (servantData.level <= 30)
                {
                    enable_equip_level = false;
                }
            }

            //선택된 파츠, 선택중인 서번트 직업, 장착가능한 레벨, 다른 서번트가 장착한 장비 , 장착할수 있는 상태인 장비
            if (equipmentData.equipmentType == selectedEquipType && equipmentData.isEquiped == false &&
                dbEquipmentData.isEquipAble(dbServantData.GetJobFlag) && enable_equip_level &&
                equipmentData.equipServantIndex == 0 && equipmentData.state == 1)
            {
                EquipmentList.Add(equipmentData);
            }
        }
    }
示例#2
0
    public void Popup(UserEquipmentData result)
    {
        SetActiveButtons(true);

        DBEquipmentData equipmentData = CSVData.Inst.GetEquipmentData(result.id);

        if (equipmentData == null)
        {
            DebugLog.Log(false, "Invalid Equipment ID : " + result.id);
            return;
        }

        resultName.text = equipmentData.tier + "T " + equipmentData.name;
        if (equipmentData.equipmentIcon.texture == null)
        {
            DebugLog.Log(false, "Invalid Texture : " + equipmentData.name);
        }
        resultImage.texture = equipmentData.equipmentIcon.texture;
        gradeImage.texture  = CSVData.Inst.GetSpriteGachaGrade((GRADE_TYPE)result.grade).texture;

        switch (equipmentData.optionType)
        {
        case EQUIPMENT_OPTION_TYPE.ATK:
        case EQUIPMENT_OPTION_TYPE.DEF:
        case EQUIPMENT_OPTION_TYPE.MATK:
        case EQUIPMENT_OPTION_TYPE.MDEF:
        case EQUIPMENT_OPTION_TYPE.HP:
            valueStatusImage.texture = CSVData.Inst.GetSpriteOptionType(equipmentData.optionType).texture;
            break;

        case EQUIPMENT_OPTION_TYPE.STR:
        case EQUIPMENT_OPTION_TYPE.DEX:
        case EQUIPMENT_OPTION_TYPE.INT:
            valueStatusImage.texture = CSVData.Inst.GetSpriteOptionType(equipmentData.optionType).texture;
            break;

        default:
            DebugLog.Log(false, "Invalid Equipment Data");
            return;
        }
        resultValueStat.text = result.value.ToString();
    }
    //상세정보창 Update
    public void updateDetailInfo(int _selected_unit_idx)
    {
        unit_idx = _selected_unit_idx;

        UserEquipmentData equipmentData = UserDataManager.Inst.GetEquipmentInfo(EquipmentList[(int)selectedMenu][unit_idx].index);

        if (equipmentData == null)
        {
            DebugLog.Log(false, "Invalid Equipment Inddex : " + unit_idx);
        }

        DBEquipmentData dBEquipmentData = CSVData.Inst.GetEquipmentData(equipmentData.id);

        if (dBEquipmentData == null)
        {
            DebugLog.Log(false, "Invalid equipment ID : " + equipmentData.id);
        }

        imageEquipment.sprite  = dBEquipmentData.equipmentIcon;
        textEquipmentName.text = dBEquipmentData.name;
        //textCurrentGradeText.text;
        textGrade.text  = string.Format("{0}", ((GRADE_TYPE)equipmentData.grade));
        textGrade.color = DEFINE.GetGradeColor((GRADE_TYPE)equipmentData.grade);
        //textCurrentUpgradeText.text;
        textUpgrade.text = string.Format("+{0}", (equipmentData.upgrade));;
        //textCurrentTierText.text;
        textTier.text = string.Format("{0}T", dBEquipmentData.tier);
        //textCurrentJobText.text;

        Color temp_color = imageJobIcon[0].color;

        for (int i = 0; i < 5; i++)
        {
            imageJobIcon[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 0.2f);
        }

        if (dBEquipmentData.jobLimit == SERVANT_JOB_FLAG.All)
        {
            for (int i = 0; i < 5; i++)
            {
                imageJobIcon[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 1f);
            }
        }
        else
        {
            for (int i = 0; i < 5; i++)
            {
                SERVANT_JOB_FLAG checkJob = (SERVANT_JOB_FLAG)Math.Pow(2, (double)(i + 1));
                if (dBEquipmentData.isEquipAble(checkJob) == true)
                {
                    imageJobIcon[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 1f);
                }
            }
        }

        imageStatsIcon.sprite = CSVData.Inst.GetSpriteOptionType(dBEquipmentData.optionType);
        textStats.text        = string.Format("{0}", equipmentData.value);

        //장착 중인 장비인지.
        if (equipmentData.upgrade >= DEFINE.MAX_EQUIPMENT_UPGRADE_COUNT)
        {
            buttonUpgrade.interactable = false;
            textEquipItem.fontSize     = 40;
            textEquipItem.text         = "MAX";
        }
        else if (equipmentData.equipServantIndex > 0)
        {
            buttonUpgrade.interactable = false;
            textEquipItem.fontSize     = 60;
            textEquipItem.text         = "E";
        }
        else
        {
            buttonUpgrade.interactable = true;
            textEquipItem.text         = "";
        }
    }
    public void OnClickChange()
    {
        // 선택 서번트 인덱스
        int servantIndex = partyInfo.ServantList[partyInfo.selected_unit_idx].index;

        int equipmentIndex = EquipmentList[selectedItemIdx].index;

        // 서번트 인덱스 검사
        UserServantData servantData = UserDataManager.Inst.GetServantInfo(servantIndex);

        if (servantData == null)
        {
            DebugLog.Log(true, "Invalid Servant Index : " + servantIndex);
            SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Index");
            return;
        }

        // 장비 타입 검사
        if (servantData.equipmentDic.ContainsKey(selectedEquipType) == false)
        {
            DebugLog.Log(true, "Invalid Servant Data");
            SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Data");
            return;
        }

        // 서번트 동일 장비 검사
        if (servantData.equipmentDic[selectedEquipType] == equipmentIndex)
        {
            DebugLog.Log(false, "Already Equiped");
            SimpleErrorPopupVC.Inst.UpdateErrorText("Already Equiped");
            return;
        }

        // 장비 인덱스 검사
        UserEquipmentData equipmentData = UserDataManager.Inst.GetEquipmentInfo(equipmentIndex);

        if (equipmentData == null)
        {
            DebugLog.Log(true, "Invalid Equipment Index : " + equipmentIndex);
            SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Equipment");
            return;
        }

        // 장비 인덱스에 대한 타입 검사
        if (equipmentData.equipmentType != selectedEquipType)
        {
            DebugLog.Log(false, "Invalid Equipment Type : " + selectedEquipType.ToString() + ", ");
            SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Equipment Type");
            return;
        }

        // 장착중인 장비인지 검사
        if (equipmentData.isEquiped == true)
        {
            DebugLog.Log(false, "Already ServantEquiped : " + equipmentData.equipServantIndex);
            SimpleErrorPopupVC.Inst.UpdateErrorText("Already Servant Equiped");
            return;
        }

        // DB 장비 ID 검사
        DBEquipmentData dbEquipmentData = CSVData.Inst.GetEquipmentData(equipmentData.id);

        if (dbEquipmentData == null)
        {
            DebugLog.Log(false, "Invalid Equipment Data ID : " + equipmentData.id);
            return;
        }

        // DB 서번트 ID 검사
        DBServantData dbServantData = CSVData.Inst.GetServantData(servantData.id);

        if (dbServantData == null)
        {
            DebugLog.Log(false, "Invalid Servant Data ID : " + servantData.id);
            return;
        }

        // 장착 가능 직업 검사
        if (dbEquipmentData.isEquipAble(dbServantData.GetJobFlag) == false)
        {
            DebugLog.Log(false, "Invalid Servant Equipable Job : " + dbServantData.GetJobFlag + ", Need Job : " + dbEquipmentData.jobLimit);
            SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Equipable Job");
            return;
        }

        // 장착 가능 레벨 검사
        if (dbEquipmentData.tier == 2)
        {
            if (servantData.level <= 10)
            {
                DebugLog.Log(false, "Invalid Servant Equipable Level : " + servantData.level + ", Need Level : 11");
                SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Equipable Level, Need Level : 11");
                return;
            }
        }
        else if (dbEquipmentData.tier == 3)
        {
            if (servantData.level <= 20)
            {
                DebugLog.Log(false, "Invalid Servant Equipable Level : " + servantData.level + ", Need Level : 21");
                SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Equipable Level, Need Level : 21");
                return;
            }
        }
        else if (dbEquipmentData.tier == 4)
        {
            if (servantData.level <= 30)
            {
                DebugLog.Log(false, "Invalid Servant Equipable Level : " + servantData.level + ", Need Level : 31");
                SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant Equipable Level, Need Level : 31");
                return;
            }
        }

#if UNITY_EDITOR
        Cheat.Inst.RequestEquipServantCheat(servantIndex, selectedEquipType, equipmentIndex);
#else
        PacketManager.Inst.RequestEquipServant(servantIndex, selectedEquipType, equipmentIndex);
#endif
    }
    public void updateChangeItemInfo(int selectedChangeItemIdx)
    {
        if (selectedChangeItemIdx >= 0)
        {
            selectedItemIdx = selectedChangeItemIdx;
            int change_item_idx = EquipmentList[selectedItemIdx].index;

            FrameChangeItemInfo.SetActive(true);
            FrameChangeItemNone.SetActive(false);
            UserEquipmentData changeEquipmentData = UserDataManager.Inst.GetEquipmentInfo(change_item_idx);

            if (changeEquipmentData == null)
            {
                DebugLog.Log(false, "Invalid Equipment data");
            }


            DBEquipmentData dBChangeEquipment = CSVData.Inst.GetEquipmentData(changeEquipmentData.id);
            if (dBChangeEquipment == null)
            {
                DebugLog.Log(false, "Invalid equipmentData ID : " + changeEquipmentData.id);
            }


            imageChangeItem.sprite  = dBChangeEquipment.equipmentIcon;
            textChangeItemName.text = dBChangeEquipment.name;
            //textCurrentGradeText.text;
            textChangeGrade.text  = string.Format("{0}", ((GRADE_TYPE)changeEquipmentData.grade));
            textChangeGrade.color = DEFINE.GetGradeColor((GRADE_TYPE)changeEquipmentData.grade);
            //textCurrentUpgradeText.text;
            textChangeUpgrade.text = string.Format("+{0}", (changeEquipmentData.upgrade));;
            //textCurrentTierText.text;
            textChangeTier.text = string.Format("{0}T", dBChangeEquipment.tier);
            //textCurrentJobText.text;

            Color temp_color = imageChangeJob[0].color;
            for (int i = 0; i < 5; i++)
            {
                imageChangeJob[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 0.2f);
            }
            if (dBChangeEquipment.jobLimit == SERVANT_JOB_FLAG.All)
            {
                for (int i = 0; i < 5; i++)
                {
                    imageChangeJob[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 1f);
                }
            }
            else
            {
                for (int i = 0; i < 5; i++)
                {
                    SERVANT_JOB_FLAG checkJob = (SERVANT_JOB_FLAG)Math.Pow(2, (double)(i + 1));
                    if (dBChangeEquipment.isEquipAble(checkJob) == true)
                    {
                        imageChangeJob[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 1f);
                    }
                }
            }

            //초기화
            for (int i = 0; i < 10; i++)
            {
                change_stat[i] = 0;
            }

            imageChangeStat[0].sprite = CSVData.Inst.GetSpriteOptionType(changeEquipmentData.optionType);
            textChangeStat[0].text    = string.Format("{0}", changeEquipmentData.value);
            change_stat[(int)changeEquipmentData.optionType] = changeEquipmentData.value;

            buttonChange.interactable = true;
        }
        else
        {
            DebugLog.Log(false, "change item none");
            FrameChangeItemInfo.SetActive(false);
            FrameChangeItemNone.SetActive(true);

            buttonChange.interactable = false;
        }

        SetChangeAllValue();
    }
    void updateAllView()
    {
        //Current Item
        UserServantData servantData = partyInfo.ServantList[partyInfo.selected_unit_idx];

        if (servantData == null)
        {
            DebugLog.Log(false, "Invalid Servant Index : " + partyInfo.selected_unit_idx);
        }

        UserEquipmentData currentEquipmentData = null;

        if (partyInfo.getSelectedEquipType() == EQUIPMENT_TYPE.MAX)
        {
            DebugLog.Log(false, "Invalid Equipment type 'MAX'");
            return;
        }

        int current_item_idx = servantData.equipmentDic[partyInfo.getSelectedEquipType()];

        if (current_item_idx > 0)
        {
            FrameCurrentItemInfo.SetActive(true);
            FrameCurrentItemNone.SetActive(false);
            currentEquipmentData = UserDataManager.Inst.GetEquipmentInfo(current_item_idx);

            if (currentEquipmentData == null)
            {
                DebugLog.Log(false, "Invalid Equipment data");
            }


            DBEquipmentData dBEquipment = CSVData.Inst.GetEquipmentData(currentEquipmentData.id);
            if (dBEquipment == null)
            {
                DebugLog.Log(false, "Invalid equipmentData ID : " + currentEquipmentData.id);
            }

            imageCurrentItem.sprite  = dBEquipment.equipmentIcon;
            textCurrentItemName.text = dBEquipment.name;
            //textCurrentGradeText.text;
            textCurrentGrade.text  = string.Format("{0}", ((GRADE_TYPE)currentEquipmentData.grade));
            textCurrentGrade.color = DEFINE.GetGradeColor((GRADE_TYPE)currentEquipmentData.grade);
            //textCurrentUpgradeText.text;
            textCurrentUpgrade.text = string.Format("+{0}", (currentEquipmentData.upgrade));;
            //textCurrentTierText.text;
            textCurrentTier.text = string.Format("{0}T", dBEquipment.tier);
            //textCurrentJobText.text;

            Color temp_color = imageCurrentJob[0].color;
            for (int i = 0; i < 5; i++)
            {
                imageCurrentJob[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 0.2f);
            }

            if (dBEquipment.jobLimit == SERVANT_JOB_FLAG.All)
            {
                for (int i = 0; i < 5; i++)
                {
                    imageCurrentJob[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 1f);
                }
            }
            else
            {
                for (int i = 0; i < 5; i++)
                {
                    SERVANT_JOB_FLAG checkJob = (SERVANT_JOB_FLAG)Math.Pow(2, (double)(i + 1));
                    if (dBEquipment.isEquipAble(checkJob) == true)
                    {
                        imageCurrentJob[i].color = new Color(temp_color.r, temp_color.g, temp_color.b, 1f);
                    }
                }
            }

            //초기화
            for (int i = 0; i < 10; i++)
            {
                current_stat[i] = 0;
            }

            imageCurrentStat[0].sprite = CSVData.Inst.GetSpriteOptionType(currentEquipmentData.optionType);
            textCurrentStat[0].text    = string.Format("{0}", currentEquipmentData.value);
            current_stat[(int)currentEquipmentData.optionType] = currentEquipmentData.value;

            //장착된 아이템이 있을땐 Clear버튼 활성화
            buttonClear.interactable = true;
        }
        else
        {
            DebugLog.Log(false, "current item none");
            FrameCurrentItemInfo.SetActive(false);
            FrameCurrentItemNone.SetActive(true);

            //장착된 아이템이 없을땐 Clear버튼 비활성화
            buttonClear.interactable = false;
        }

        updateChangeItemInfo(selectedItemIdx);

        SetChangeAllValue();
    }