예제 #1
0
    public void SetUpgradeType(UPGRADE_TYPE type)
    {
        upgradeType = type;

        if (upgradeType == UPGRADE_TYPE.MONSTER)
        {
            partyInfo             = PartyInfoVC.Inst;
            scrollList.prefabUnit = prefabPartyUnit;
            FrameScroll.SetActive(true);

            //선택된 몬스터 Data
            monsterData = partyInfo.MonsterList[partyInfo.selected_unit_idx];
        }
        else//upgradeType == UPGRADE_TYPE.EQUIPMENT
        {
            equipmentInfo         = EquipmentInfoManager.Inst;
            scrollList.prefabUnit = prefabItemUnit;
            FrameScroll.SetActive(false);

            //선택된 장비 Data
            equipmentData = equipmentInfo.EquipmentList[(int)equipmentInfo.GetSelectedMenu()][equipmentInfo.GetUnitIdx()];

            InsertEquipmentUpgradeScroll();
        }

        initScrollList();
        updateView();
    }
 public void SetEquipment(UserEquipmentData equipmentData)
 {
     if (equipmentDic.ContainsKey(equipmentData.index) == true)
     {
         equipmentDic[equipmentData.index] = equipmentData;
         if (equipmentData.equipmentType == EQUIPMENT_TYPE.WEAPON)
         {
             weaponDic[equipmentData.index] = equipmentData;
         }
         else if (equipmentData.equipmentType == EQUIPMENT_TYPE.ARMOR)
         {
             armorDic[equipmentData.index] = equipmentData;
         }
         else if (equipmentData.equipmentType == EQUIPMENT_TYPE.ACCESSSORY)
         {
             accessoryDic[equipmentData.index] = equipmentData;
         }
     }
     else
     {
         equipmentDic.Add(equipmentData.index, equipmentData);
         if (equipmentData.equipmentType == EQUIPMENT_TYPE.WEAPON)
         {
             weaponDic.Add(equipmentData.index, equipmentData);
         }
         else if (equipmentData.equipmentType == EQUIPMENT_TYPE.ARMOR)
         {
             armorDic.Add(equipmentData.index, equipmentData);
         }
         else if (equipmentData.equipmentType == EQUIPMENT_TYPE.ACCESSSORY)
         {
             accessoryDic.Add(equipmentData.index, equipmentData);
         }
     }
 }
예제 #3
0
 public void updateView(UserEquipmentData equipmentData)
 {
     imageItem.sprite  = CSVData.Inst.GetEquipmentIcon(equipmentData.id);
     imageGrade.sprite = CSVData.Inst.GetSpriteGrade(equipmentData.gradeType);
     textTier.text     = string.Format("{0}T", CSVData.Inst.GetEquipmentData(equipmentData.id).tier);
     textUpgrade.text  = string.Format("+{0}", equipmentData.upgrade);
 }
    public void updateView(bool is_success, UserEquipmentData equipmentData)
    {
        if (is_success)
        {
            objBreak.SetActive(false);
            textResult.text = "Upgrade Success!!!";
            textResult.GetComponent <UITextGradient>().m_color1 = new Color(1, 245 / 255f, 138 / 255f);
            textResult.GetComponent <UITextGradient>().m_color2 = new Color(1, 176 / 255f, 45 / 255f);
            imageResultEffect.sprite = spriteSuccess;
        }
        else
        {
            objBreak.SetActive(true);
            textResult.text = "Upgrade Fail...";
            textResult.GetComponent <UITextGradient>().m_color1 = new Color(150 / 255f, 150 / 255f, 150 / 255f);
            textResult.GetComponent <UITextGradient>().m_color2 = new Color(50 / 255f, 50 / 255f, 50 / 255f);
            imageResultEffect.sprite = spriteFail;
        }

        GameObject resultEquipment = Instantiate(resultItemPrefab);

        resultEquipment.transform.SetParent(FrameResultImage);
        resultEquipment.GetComponent <RectTransform>().anchoredPosition = Vector2.zero;
        resultEquipment.GetComponent <UpgradeResuiltItem>().updateView(equipmentData);
    }
예제 #5
0
    //캐릭터 전체 장비(무기,갑옷,악세사리)에 존재하는 Stats의 총합을 리턴
    //해당 능력치 가져올때(리턴된 Array변수명[EQUIPMENT_OPTION_TYPE.해당능력치])
    //EX) equipmentValue[EQUIPMENT_OPTION_TYPE.STR] ->> 장비로 증가하는 STR 값
    public static int[] GetStatsOnlyAllEquipment(UserServantData servant)
    {
        int type_max = (int)EQUIPMENT_OPTION_TYPE.MAX;

        int[] statsValue = new int[type_max];
        for (int i = 0; i < type_max; i++)
        {
            statsValue[i] = 0;
        }

        int equip_type_max = (int)EQUIPMENT_TYPE.MAX;

        for (int equip_type = 0; equip_type < equip_type_max; equip_type++)
        {
            if (servant.equipmentDic[(EQUIPMENT_TYPE)equip_type] > 0)
            {
                UserEquipmentData equipData = UserDataManager.Inst.GetEquipmentInfo(servant.equipmentDic[(EQUIPMENT_TYPE)equip_type]);
                if (equipData == null)
                {
                    DebugLog.Log(false, "Invalid EquipData Info " + servant.equipmentDic[(EQUIPMENT_TYPE)equip_type]);
                }
                statsValue[(int)equipData.optionType] += equipData.value;
            }
            else
            {
                DebugLog.Log(false, "Select servant not equip " + (EQUIPMENT_TYPE)equip_type);
            }
        }

        return(statsValue);
    }
예제 #6
0
    public void ShowUpgradeEquipmentResult(bool is_success, UserEquipmentData equipmentData)
    {
        GameObject objSubView = Instantiate(Resources.Load("UI/Misc/UpgradeResultVC")) as GameObject;

        objSubView.transform.SetParent(this.transform);
        objSubView.GetComponent <RectTransform>().anchoredPosition = Vector2.zero;
        objSubView.GetComponent <UpgradeResultVC>().updateView(is_success, equipmentData);

        LobbyTopInfo.Inst.UpdateTopInfo();
    }
    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);
            }
        }
    }
예제 #8
0
    /// <param name="isBasicStatue"> 힘민지만 계산할지 </param>
    public void Equipment(Dictionary <EQUIPMENT_TYPE, int> equipmentDic, bool isBasicStatue = true)
    {
        foreach (KeyValuePair <EQUIPMENT_TYPE, int> state in equipmentDic)
        {
            if (state.Value != 0)
            {
                UserEquipmentData equipmentData = UserDataManager.Inst.GetEquipmentInfo(state.Value);

                if (isBasicStatue)
                {
                    switch (equipmentData.optionType)
                    {
                    case EQUIPMENT_OPTION_TYPE.STR:
                        Status[EFFECT_ID.STR] += equipmentData.value;
                        break;

                    case EQUIPMENT_OPTION_TYPE.DEX:
                        Status[EFFECT_ID.DEX] += equipmentData.value;
                        break;

                    case EQUIPMENT_OPTION_TYPE.INT:
                        Status[EFFECT_ID.INT] += equipmentData.value;
                        break;
                    }
                }
                else
                {
                    switch (equipmentData.optionType)
                    {
                    case EQUIPMENT_OPTION_TYPE.ATK:
                        Status[EFFECT_ID.ATK] += equipmentData.value;
                        break;

                    case EQUIPMENT_OPTION_TYPE.MATK:
                        Status[EFFECT_ID.MATK] += equipmentData.value;
                        break;

                    case EQUIPMENT_OPTION_TYPE.DEF:
                        Status[EFFECT_ID.DEF] += equipmentData.value;
                        break;

                    case EQUIPMENT_OPTION_TYPE.MDEF:
                        Status[EFFECT_ID.MDEF] += equipmentData.value;
                        break;
                    }
                }
            }
        }
    }
예제 #9
0
    public void UpgradeEquipment()
    {
        if (textNeedPerCount.color == Color.red)
        {
            SimpleErrorPopupVC.Inst.UpdateErrorText("Not Enough Scroll");
            return;
        }

        UserEquipmentData userEquipmentData = UserDataManager.Inst.GetEquipmentInfo(equipmentData.index);

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

        if (userEquipmentData.state != 1)
        {
            DebugLog.Log(false, "Invalid Equipment State : " + userEquipmentData.state);
            return;
        }

        if (userEquipmentData.equipServantIndex != 0)
        {
            DebugLog.Log(false, "Invalid Equipment Already Equip Servant Index : " + userEquipmentData.equipServantIndex);
            return;
        }

        List <int> addItem = new List <int>();

        DBEquipmentUpgradeData upgradeData = CSVData.Inst.GetEquipmentUpgradeData(equipmentData.grade, (int)equipmentData.equipmentType, equipmentData.upgrade);

        if (upgradeData == null)
        {
            DebugLog.Log(false, "Invalid Upgrade Data : " + equipmentData.grade + ", " + equipmentData.equipmentType + ", " + equipmentData.upgrade);
            return;
        }

        addItem.Add(upgradeData.needItemID);

#if UNITY_EDITOR
        Cheat.Inst.RequestEquipmentUpgradeCheat(userEquipmentData.index);
#else
        PacketManager.Inst.RequestEquipmentUpgrade(equipmentData.index, addItem);
#endif
    }
예제 #10
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();
    }
    public void setData()
    {
        for (int i = 0; i < EquipmentList.Count; i++)
        {
            EquipmentList[i].Clear();
        }

        EquipmentList.Clear();

        for (int i = 0; i < 3; i++) // 0:weapon, 1:armor, 2:acc
        {
            List <UserEquipmentData> item_list = new List <UserEquipmentData>();
            EquipmentList.Add(item_list);
        }

        if (UserDataManager.Inst.GetEquipmentList() != null)
        {
            for (int i = 0; i < UserDataManager.Inst.GetEquipmentList().Count; i++)
            {
                UserEquipmentData equip_info = UserDataManager.Inst.GetEquipmentList()[i];

                if (EQUIPMENT_TYPE.WEAPON == equip_info.equipmentType)
                {
                    EquipmentList[(int)Inventory_Menu_Type.WEAPON].Add(equip_info);
                }
                else if (EQUIPMENT_TYPE.ARMOR == equip_info.equipmentType)
                {
                    EquipmentList[(int)Inventory_Menu_Type.ARMOR].Add(equip_info);
                }
                else if (EQUIPMENT_TYPE.ACCESSSORY == equip_info.equipmentType)
                {
                    EquipmentList[(int)Inventory_Menu_Type.ACCESSORY].Add(equip_info);
                }
                else
                {
                    DebugLog.Log(false, "Equipment type : max");
                }
            }
        }
    }
예제 #12
0
    public bool AddEquipmentData(UserEquipmentData equipmentData)
    {
        if (equipmentDic.ContainsKey(equipmentData.index) == true)
        {
            return(false);
        }

        equipmentDic.Add(equipmentData.index, equipmentData);

        if (equipmentData.equipmentType == EQUIPMENT_TYPE.WEAPON)
        {
            weaponDic.Add(equipmentData.index, equipmentData);
        }
        else if (equipmentData.equipmentType == EQUIPMENT_TYPE.ARMOR)
        {
            armorDic.Add(equipmentData.index, equipmentData);
        }
        else if (equipmentData.equipmentType == EQUIPMENT_TYPE.ACCESSSORY)
        {
            accessoryDic.Add(equipmentData.index, equipmentData);
        }

        return(true);
    }
    public void InsertUnit(int scroll_unit_idx)
    {
        UserDataManager u_data = UserDataManager.Inst;

        if (dType == DECONSTRUCTION_TYPE.SERVANT || dType == DECONSTRUCTION_TYPE.MONSTER)
        {
            if (dType == DECONSTRUCTION_TYPE.SERVANT)  // Servant
            {
                UserServantData servantData = UserDataManager.Inst.GetServantInfo(scroll_unit_idx);
                if (servantData == null)
                {
                    DebugLog.Log(false, "Invalid Request Servant ID : " + scroll_unit_idx);
                    return;
                }

                if (servantData.state != 1)
                {
                    DebugLog.Log(false, "Invalid Servant State : " + servantData.state);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant State");
                    return;
                }

                if (servantData.partyIndex != 0)
                {
                    DebugLog.Log(false, "Invalid Servant Party Index : " + servantData.partyIndex);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Already In Party");
                    return;
                }
            }
            else//Monster
            {
                UserMonsterData monsterData = UserDataManager.Inst.GetMonsterInfo(scroll_unit_idx);
                if (monsterData == null)
                {
                    DebugLog.Log(false, "Invalid Request Monster ID : " + scroll_unit_idx);
                    return;
                }

                if (monsterData.state != 1)
                {
                    DebugLog.Log(false, "Invalid Monster State : " + monsterData.state);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Monster State");
                    return;
                }

                if (monsterData.partyIndex != 0)
                {
                    DebugLog.Log(false, "Invalid Monster Index : " + monsterData.partyIndex);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Already In Party");
                    return;
                }
            }
        }
        else//Equip
        {
            UserEquipmentData equipmentData = UserDataManager.Inst.GetEquipmentInfo(scroll_unit_idx);
            if (equipmentData == null)
            {
                DebugLog.Log(false, "Invalid Request Servant ID : " + scroll_unit_idx);
                return;
            }

            if (equipmentData.state != 1)
            {
                DebugLog.Log(false, "Invalid Equip State : " + equipmentData.state);
                SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Equipment State");
                return;
            }

            if (equipmentData.isEquiped)
            {
                DebugLog.Log(false, "Invalid Equip isEquiped : " + equipmentData.isEquiped);
                SimpleErrorPopupVC.Inst.UpdateErrorText("Already Equiped Servant");
                return;
            }
        }

        deconstructionUnitList[unit_count] = scroll_unit_idx;
        unit_count++;
        updateView();
    }
    public void updateServantInfo(UserServantData s_data)
    {
        //unit_idx = u_idx;
        for (int i = 0; i < buttonEquip.Length; i++)
        {
            buttonEquip[i].gameObject.SetActive(false);
        }
        for (int i = 0; i < 3; i++)
        {
            buttonEquip[i].gameObject.SetActive(true);
        }

        UserServantData unit_data = s_data;// UserDataManager.Inst.GetServantInfo(unit_idx);

        if (unit_data == null)
        {
            DebugLog.Log(false, "Invalid Servant data By ServantInfoManager");
        }
        DBServantData db_unit_data = CSVData.Inst.GetServantData(unit_data.id);

        if (db_unit_data == null)
        {
            DebugLog.Log(false, "Invalid DB_Servant data By ServantInfoManager");
        }

        textUnitName.text = db_unit_data.name;
        textLevel.text    = string.Format("{0}", unit_data.level);


        for (EQUIPMENT_TYPE type = EQUIPMENT_TYPE.WEAPON; type < EQUIPMENT_TYPE.MAX; type++)
        {
            if (unit_data.equipmentDic[type] != 0)
            {
                UserEquipmentData equip_info = UserDataManager.Inst.GetEquipmentInfo(unit_data.equipmentDic[type]);
                if (equip_info == null)
                {
                    DebugLog.Log(true, "Invalid Index : " + unit_data.equipmentDic[type]);
                    return;
                }

                buttonEquip[(int)type].image.sprite = CSVData.Inst.GetSpriteGrade((GRADE_TYPE)equip_info.grade);
                buttonEquip[(int)type].transform.GetChild(0).GetComponent <Image>().enabled = false;
                buttonEquip[(int)type].transform.GetChild(1).GetComponent <Image>().enabled = true;
                buttonEquip[(int)type].transform.GetChild(1).GetComponent <Image>().sprite  = CSVData.Inst.GetEquipmentData(equip_info.id).equipmentIcon;
            }
            else
            {
                buttonEquip[(int)type].image.sprite = spriteEmptySlot;
                buttonEquip[(int)type].transform.GetChild(0).GetComponent <Image>().enabled = true;
                buttonEquip[(int)type].transform.GetChild(1).GetComponent <Image>().enabled = false;
            }
        }

        if (unit_data.level >= DEFINE.MAX_LEVEL)
        {
            textExp.text        = "MAX";
            imageExp.fillAmount = 1f;
        }
        else
        {
            DBExpData dbExpData = CSVData.Inst.GetExpData(unit_data.level);
            if (dbExpData == null)
            {
                DebugLog.Log(false, "Invalid Level Data");
            }
            else
            {
                int exExp = 0;
                if (unit_data.level - 1 > 0)
                {
                    DBExpData exDBExpData = CSVData.Inst.GetExpData(unit_data.level - 1);
                    if (exDBExpData == null)
                    {
                        DebugLog.Log(false, "Invalid Level Data");
                    }
                    else
                    {
                        exExp = exDBExpData.charExp;
                    }
                }

                textExp.text        = unit_data.exp + " / " + dbExpData.charExp;
                imageExp.fillAmount = (exExp - unit_data.exp) / (float)(exExp - dbExpData.charExp);
            }
        }

        //textGradeText.text;
        textGrade.text  = string.Format("{0}", unit_data.gradeType);
        textGrade.color = DEFINE.GetGradeColor(unit_data.gradeType);
        //textJobText.text;
        imagejob.sprite = CSVData.Inst.GetSpriteServantJob(unit_data.jobType);
        //textStatsText.text;

        int[] stat_by_set_equipment = Calculator.GetServantStatsEquipAllItem(unit_data);

        textStr.text = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.STR]);
        textDex.text = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.DEX]);
        textInt.text = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.INT]);

        textHP.text      = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.HP]);
        textAvoid.text   = string.Format("{0}", db_unit_data.avoid);
        textPAtk.text    = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.ATK]);
        textPDef.text    = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.DEF]);
        textMAtk.text    = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.MATK]);
        textMDef.text    = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.MDEF]);
        textPCri.text    = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.CriDmg]);
        textPCriPer.text = string.Format("{0}", stat_by_set_equipment[(int)EQUIPMENT_OPTION_TYPE.CriPer]);

        /*
         * textStr.text = string.Format("{0}", unit_data.status.basicStr);
         * textDex.text = string.Format("{0}", unit_data.status.basicDex);
         * textInt.text = string.Format("{0}", unit_data.status.basicInt);
         *
         * textHP.text = string.Format("{0}", unit_data.maxHP);
         * textSpeed.text = string.Format("{0}", db_unit_data.speed);
         * textPAtk.text = string.Format("{0}", unit_data.atk);
         * textPDef.text = string.Format("{0}", unit_data.def);
         * textMAtk.text = string.Format("{0}", unit_data.mAtk);
         * textMDef.text = string.Format("{0}", unit_data.mDef);
         * textPCri.text = string.Format("{0}", unit_data.criDmg);
         * textPCriPer.text = string.Format("{0}", unit_data.criPer);
         */

        if (unit_data.activeSkillList.Count > 0)
        {
            imageActive.gameObject.SetActive(true);
            imageActive.sprite = CSVData.Inst.GetSkillActiveData(unit_data.activeSkillList[0].id).activeIcon;
        }
        else
        {
            imageActive.gameObject.SetActive(false);
        }

        if (unit_data.passiveSkillList.Count > 0)
        {
            imagePassive.gameObject.SetActive(true);
            imagePassive.sprite = CSVData.Inst.GetSkillPassiveData(unit_data.passiveSkillList[0].id).passiveIcon;
        }
        else
        {
            imagePassive.gameObject.SetActive(false);
        }
    }
    public void updateSlot(int unit_idx)
    {
        if (unit_idx > 0)
        {
            if (SubViewDeconstruction.Inst.GetDeconstructionType() == DECONSTRUCTION_TYPE.SERVANT || SubViewDeconstruction.Inst.GetDeconstructionType() == DECONSTRUCTION_TYPE.MONSTER)
            {
                FrameUnitInfo.SetActive(true);
                FrameItemInfo.SetActive(false);
                imageEmptySlot.enabled = false;
                this.GetComponent <Button>().interactable = true;

                PartyInfoVC party_info = PartyInfoVC.Inst;

                if (party_info.selectedMenu == PartyInfoVC.menu_type.SERVANT)
                {
                    UserServantData s_info = UserDataManager.Inst.GetServantInfo(unit_idx);
                    if (s_info == null)
                    {
                        DebugLog.Log(false, "Invalid Servant ID : " + s_info.id);
                    }
                    imageUnitGrade.sprite = CSVData.Inst.GetSpriteGrade((GRADE_TYPE)s_info.grade);
                    imageUnit.sprite      = CSVData.Inst.GetServantData(s_info.id).servantIcon;

                    textUnitLevel.text = string.Format("{0}", s_info.level);

                    textStr.text = string.Format("{0}", s_info.status.basicStr);
                    textDex.text = string.Format("{0}", s_info.status.basicDex);
                    textInt.text = string.Format("{0}", s_info.status.basicInt);
                }
                else if (party_info.selectedMenu == PartyInfoVC.menu_type.MONSTER)
                {
                    UserMonsterData m_info = UserDataManager.Inst.GetMonsterInfo(unit_idx);
                    if (m_info == null)
                    {
                        DebugLog.Log(false, "Invalid Monster ID : " + m_info.id);
                    }
                    imageUnitGrade.sprite = CSVData.Inst.GetSpriteGrade((GRADE_TYPE)m_info.grade);
                    imageUnit.sprite      = CSVData.Inst.GetMonsterData(m_info.id).monsterIcon;

                    textUnitLevel.text = string.Format("{0}", m_info.level);

                    textStr.text = string.Format("{0}", m_info.status.basicStr);
                    textDex.text = string.Format("{0}", m_info.status.basicDex);
                    textInt.text = string.Format("{0}", m_info.status.basicInt);
                }
            }
            else//Equip
            {
                FrameUnitInfo.SetActive(false);
                FrameItemInfo.SetActive(true);
                imageEmptySlot.enabled = false;
                this.GetComponent <Button>().interactable = true;

                UserEquipmentData e_info = UserDataManager.Inst.GetEquipmentInfo(unit_idx);
                if (e_info == null)
                {
                    DebugLog.Log(false, "Invalid Equip ID : " + e_info.id);
                }
                imageItemGrade.sprite = CSVData.Inst.GetSpriteGrade((GRADE_TYPE)e_info.grade);
                imageItem.sprite      = CSVData.Inst.GetEquipmentData(e_info.id).equipmentIcon;

                textItemLevel.text = string.Format("{0}", e_info.upgrade);

                imageStat.sprite = CSVData.Inst.GetSpriteOptionType(e_info.optionType);
                textStat.text    = string.Format("{0}", e_info.value);
            }
        }
        else
        {
            this.GetComponent <Button>().interactable = false;
            imageEmptySlot.enabled = true;
        }
    }
    //상세정보창 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();
    }
    public void OnClickButtonGrind()
    {
        if (dType == DECONSTRUCTION_TYPE.SERVANT)  // Servant
        {
            List <int> servantIndexList = new List <int>();

            for (int i = 0; i < deconstructionUnitList.Length; i++)
            {
                if (deconstructionUnitList[i] == 0)
                {
                    continue;
                }

                UserServantData servantData = UserDataManager.Inst.GetServantInfo(deconstructionUnitList[i]);
                if (servantData == null)
                {
                    DebugLog.Log(false, "Invalid Request Servant ID : " + deconstructionUnitList[i]);
                    return;
                }

                if (servantData.state != 1)
                {
                    DebugLog.Log(false, "Invalid Servant State : " + servantData.state);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Servant State");
                    return;
                }

                if (servantData.partyIndex != 0)
                {
                    DebugLog.Log(false, "Invalid Servant Index : " + servantData.partyIndex);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Already In Party");
                    return;
                }

                servantIndexList.Add(deconstructionUnitList[i]);
            }
#if UNITY_EDITOR
            Cheat.Inst.RequestServantBurnCheat(servantIndexList);
#else
            PacketManager.Inst.RequestServantBurn(servantIndexList);
#endif
        }
        else if (dType == DECONSTRUCTION_TYPE.MONSTER)  // Monster
        {
            List <int> monsterIndexList = new List <int>();

            for (int i = 0; i < deconstructionUnitList.Length; i++)
            {
                if (deconstructionUnitList[i] == 0)
                {
                    continue;
                }

                UserMonsterData monsterData = UserDataManager.Inst.GetMonsterInfo(deconstructionUnitList[i]);
                if (monsterData == null)
                {
                    DebugLog.Log(false, "Invalid Request Monster ID : " + deconstructionUnitList[i]);
                    return;
                }

                if (monsterData.state != 1)
                {
                    DebugLog.Log(false, "Invalid Monster State : " + monsterData.state);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Monster State");
                    return;
                }

                if (monsterData.partyIndex != 0)
                {
                    DebugLog.Log(false, "Invalid Monster Index : " + monsterData.partyIndex);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Already In Party");
                    return;
                }

                monsterIndexList.Add(deconstructionUnitList[i]);
            }

#if UNITY_EDITOR
            Cheat.Inst.RequestMonsterBurnCheat(monsterIndexList);
#else
            PacketManager.Inst.RequestMonsterBurn(monsterIndexList);
#endif
        }
        else if (dType == DECONSTRUCTION_TYPE.EQUIPMENT) // Equip
        {
            List <int> equipmentIndexList = new List <int>();

            for (int i = 0; i < deconstructionUnitList.Length; i++)
            {
                if (deconstructionUnitList[i] == 0)
                {
                    continue;
                }

                UserEquipmentData equipmentData = UserDataManager.Inst.GetEquipmentInfo(deconstructionUnitList[i]);
                if (equipmentData == null)
                {
                    DebugLog.Log(false, "Invalid Request Equipment ID : " + deconstructionUnitList[i]);
                    return;
                }

                if (equipmentData.state != 1)
                {
                    DebugLog.Log(false, "Invalid Equipment State : " + equipmentData.state);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Invalid Equipment State");
                    return;
                }

                if (equipmentData.equipServantIndex != 0)
                {
                    DebugLog.Log(false, "Invalid Equipment Already Equip Servant Index : " + equipmentData.equipServantIndex);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Already Equiped Servant");
                    return;
                }

                equipmentIndexList.Add(deconstructionUnitList[i]);
            }
#if UNITY_EDITOR
            Cheat.Inst.RequestEquipmentBurnCheat(equipmentIndexList);
#else
            PacketManager.Inst.RequestEquipmentBurn(equipmentIndexList);
#endif
        }
    }
예제 #21
0
    public void InsertUnit(int scroll_unit_idx)
    {
        //재료를 다른 몬스터(또는 다른 주문서)로 바꿀 수 있기 때문에 필요 없을듯.
        //if (inserted_object_idx > 0)
        //{
        //    DebugLog.Log(false, "Warning : 이미 필요한 아이템 삽입됨!");
        //}

        UserDataManager u_data   = UserDataManager.Inst;
        int             unit_idx = 0;

        if (checkInsertedObject(scroll_unit_idx))
        {
            DebugLog.Log(false, "Warning : 이미 분해 슬롯에 등록된 유닛 입니다.");
        }
        else
        {
            if (upgradeType == UPGRADE_TYPE.MONSTER)
            {
                UserMonsterData insertMonsterData = UserDataManager.Inst.GetMonsterInfo(scroll_unit_idx);
                if (insertMonsterData == null)
                {
                    DebugLog.Log(false, "Invalid Request Monster ID : " + scroll_unit_idx);
                    return;
                }

                if (insertMonsterData.state != 1)
                {
                    DebugLog.Log(false, "Invalid Monster State : " + insertMonsterData.state);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Monster Invalid Monster State");
                    return;
                }

                if (insertMonsterData.partyIndex != 0)
                {
                    DebugLog.Log(false, "Invalid Monster Index : " + insertMonsterData.partyIndex);
                    SimpleErrorPopupVC.Inst.UpdateErrorText("Monster Already In Party");
                    return;
                }

                //같은 종류의 몬스터, 같은 등급, 선택된 몬스터보다 등급이 낮거나 같은 것들만,
                //if (insertMonsterData.id == partyInfo.MonsterList[i].id && insertMonsterData.grade == partyInfo.MonsterList[i].grade && insertMonsterData.upgrade >= partyInfo.MonsterList[i].upgrade)

                //현재 선택된 몬스터 제외 : insertMonsterData.index >= partyInfo.MonsterList[i].index
            }
            else//Equip
            {
                UserEquipmentData insertEquipmentData = UserDataManager.Inst.GetEquipmentInfo(scroll_unit_idx);
                if (insertEquipmentData == null)
                {
                    DebugLog.Log(false, "Invalid Request Servant ID : " + scroll_unit_idx);
                    return;
                }

                if (insertEquipmentData.state != 1)
                {
                    DebugLog.Log(false, "Invalid Equip State : " + insertEquipmentData.state);
                    return;
                }

                if (insertEquipmentData.isEquiped)
                {
                    DebugLog.Log(false, "Invalid Equip isEquiped : " + insertEquipmentData.isEquiped);
                    return;
                }

                //같은 종류의 장비, 같은 등급, 선택된 장비보다 등급이 낮거나 같은 것들만
            }

            unit_idx            = scroll_unit_idx;
            inserted_object_idx = unit_idx;
            updateView();
        }
    }