Пример #1
0
    public void OnClickSaveFormation()
    {
        bool isDiff = false;

        UserPartyData partyData = UserDataManager.Inst.GetUserPartyInfo();
        List <int>    indexList = new List <int>();

        for (int i = 0; i < 10; i++)
        {
            indexList.Add(formationSlot[i]);
            if (partyData.formationDataDic[i].index != formationSlot[i])
            {
                isDiff = true;
            }
        }

        if (isDiff == false)
        {
            DebugLog.Log(false, "Party Already Save");
            SimpleErrorPopupVC.Inst.UpdateErrorText("Party Already Save");
            return;
        }

        // TODO : 추후 파티가 늘어날수도
        int partyIndex = 1;

#if UNITY_EDITOR
        Cheat.Inst.RequestSavePartyCheat(partyIndex, indexList);
#else
        PacketManager.Inst.RequestSaveParty(partyIndex, indexList);
#endif
    }
    public void SetPartyInfo(UserPartyData getPartyInfo)
    {
        if (partyInfo.formationDataDic.Count > 0)
        {
            for (int i = 0; i < 10; i++)
            {
                if (partyInfo.formationDataDic[i] != null)
                {
                    if (partyInfo.formationDataDic[i].index != 0)
                    {
                        if (i <= DEFINE.ServantMaxFormationNum)
                        {
                            servantDic[partyInfo.formationDataDic[i].index].partyIndex = 0;
                            servantDic[partyInfo.formationDataDic[i].index].state      = 1;
                            servantDic[partyInfo.formationDataDic[i].index].isPlaced   = false;
                        }
                        else
                        {
                            monsterDic[partyInfo.formationDataDic[i].index].partyIndex = 0;
                            monsterDic[partyInfo.formationDataDic[i].index].state      = 1;
                            monsterDic[partyInfo.formationDataDic[i].index].isPlaced   = false;
                        }
                    }
                }
            }
        }

        partyInfo = getPartyInfo;

        for (int i = 0; i < 10; i++)
        {
            if (partyInfo.formationDataDic[i].index != 0)
            {
                if (i <= DEFINE.ServantMaxFormationNum)
                {
                    servantDic[partyInfo.formationDataDic[i].index].partyIndex = partyInfo.partyIndex;
                    servantDic[partyInfo.formationDataDic[i].index].state      = 5;
                    servantDic[partyInfo.formationDataDic[i].index].isPlaced   = true;
                }
                else
                {
                    monsterDic[partyInfo.formationDataDic[i].index].partyIndex = partyInfo.partyIndex;
                    monsterDic[partyInfo.formationDataDic[i].index].state      = 5;
                    monsterDic[partyInfo.formationDataDic[i].index].isPlaced   = true;
                }
            }
        }

        if (partyInfo.formationDataDic[0].index > 0)
        {
            userMainCharInfo.mainCharID   = servantDic[partyInfo.formationDataDic[0].index].id;
            userMainCharInfo.mainCharType = CHAR_TYPE.SERVANT;
            userMainCharInfo.grade        = 5; // 현재는 Common Servant 뿐
        }
    }
Пример #3
0
    public void SetFormation()
    {
        UserPartyData partyInfo = UserDataManager.Inst.GetUserPartyInfo();

        if (partyInfo == null)
        {
            DebugLog.Log(false, "Invalid Party Info");
            return;
        }

        for (int i = 0; i < 10; i++)
        {
            formationSlot[i] = partyInfo.formationDataDic[i].index;
        }
    }
 public void InitUserInfo()
 {
     userInfo         = null;
     userMainCharInfo = new MainCharInfo();
     userLobbyInfo    = new UserLobbyInfo();
     servantDic       = new Dictionary <int, UserServantData>();
     monsterDic       = new Dictionary <int, UserMonsterData>();
     equipmentDic     = new Dictionary <int, UserEquipmentData>();
     weaponDic        = new Dictionary <int, UserEquipmentData>();
     armorDic         = new Dictionary <int, UserEquipmentData>();
     accessoryDic     = new Dictionary <int, UserEquipmentData>();
     itemDic          = new Dictionary <int, UserItemData>();
     partyInfo        = new UserPartyData();
     stageState       = new UserStageStateData();
     stageActionInfo  = new battleActionData();
     stageReward      = new stageRewardData();
 }
Пример #5
0
    public void OnEnable()
    {
        Sprite xSprite = Resources.Load <Sprite>("UI/Common/exit");

        UserPartyData partyData = UserDataManager.Inst.GetUserPartyInfo();

        if (partyData.partyIndex == 0)
        {
            DebugLog.Log(true, "Invalid User Data");
            return;
        }

        for (int i = 0; i < partyData.formationDataDic.Count; i++)
        {
            if (partyData.formationDataDic.ContainsKey(i) == false)
            {
                continue;
            }

            if (partyData.formationDataDic[i].index == 0)
            {
                GradeImage[i].sprite = CSVData.Inst.GetSpriteGrade(GRADE_TYPE.COMMON);
                IconImage[i].sprite  = xSprite;
                objectInfo[i].SetActive(false);
                continue;
            }

            if (i <= DEFINE.ServantMaxFormationNum)
            {
                UserServantData servantData = UserDataManager.Inst.GetServantInfo(partyData.formationDataDic[i].index);
                if (servantData == null)
                {
                    DebugLog.Log(true, "Invalid Servant Index : " + partyData.formationDataDic[i].index);
                }

                DBServantData dBServantData = CSVData.Inst.GetServantData(servantData.id);
                if (dBServantData == null)
                {
                    DebugLog.Log(true, "Invalid Servant ID : " + servantData.id);
                }

                GradeImage[i].sprite = CSVData.Inst.GetSpriteGrade((GRADE_TYPE)servantData.grade);
                IconImage[i].sprite  = dBServantData.servantIcon;

                imageClass[i].sprite = CSVData.Inst.GetSpriteServantJob(servantData.jobType);
                textLevel[i].text    = servantData.level.ToString();

                if (servantData.level >= DEFINE.MAX_LEVEL)
                {
                    textExpPer[i].text     = "MAX";
                    imageExp[i].fillAmount = 1f;
                }
                else
                {
                    DBExpData dbExpData = CSVData.Inst.GetExpData(servantData.level);
                    if (dbExpData == null)
                    {
                        DebugLog.Log(false, "Invalid Level Data");
                    }
                    else
                    {
                        int exExp = 0;
                        if (servantData.level - 1 > 0)
                        {
                            DBExpData exDBExpData = CSVData.Inst.GetExpData(servantData.level - 1);
                            if (exDBExpData == null)
                            {
                                DebugLog.Log(false, "Invalid Level Data");
                            }
                            else
                            {
                                exExp = exDBExpData.charExp;
                            }
                        }
                        float expPer = (exExp - servantData.exp) / (float)(exExp - dbExpData.charExp);
                        textExpPer[i].text     = (int)(expPer * 100) + "%";
                        imageExp[i].fillAmount = expPer;
                    }
                }

                objectInfo[i].SetActive(true);
            }
            else
            {
                UserMonsterData monsterData = UserDataManager.Inst.GetMonsterInfo(partyData.formationDataDic[i].index);
                if (monsterData == null)
                {
                    DebugLog.Log(true, "Invalid Monster Index : " + partyData.formationDataDic[i].index);
                }

                DBMonsterData dbMonsterData = CSVData.Inst.GetMonsterData(monsterData.id);
                if (dbMonsterData == null)
                {
                    DebugLog.Log(true, "Invalid Monster ID : " + monsterData.id);
                }

                GradeImage[i].sprite = CSVData.Inst.GetSpriteGrade((GRADE_TYPE)monsterData.grade);
                IconImage[i].sprite  = dbMonsterData.monsterIcon;

                imageClass[i].sprite    = CSVData.Inst.GetSmallSpriteTribeType(monsterData.tribeType);
                imageType[i - 5].sprite = CSVData.Inst.GetSpriteElementType(monsterData.elementType);
                textLevel[i].text       = monsterData.level.ToString();

                if (monsterData.level >= DEFINE.MAX_LEVEL)
                {
                    textExpPer[i].text     = "MAX";
                    imageExp[i].fillAmount = 1f;
                }
                else
                {
                    DBExpData dbExpData = CSVData.Inst.GetExpData(monsterData.level);
                    if (dbExpData == null)
                    {
                        DebugLog.Log(false, "Invalid Level Data");
                    }
                    else
                    {
                        int exExp = 0;
                        if (monsterData.level - 1 > 0)
                        {
                            DBExpData exDBExpData = CSVData.Inst.GetExpData(monsterData.level - 1);
                            if (exDBExpData == null)
                            {
                                DebugLog.Log(false, "Invalid Level Data");
                            }
                            else
                            {
                                exExp = exDBExpData.charExp;
                            }
                        }
                        float expPer = (exExp - monsterData.exp) / (float)(exExp - dbExpData.charExp);
                        textExpPer[i].text     = (int)(expPer * 100) + "%";
                        imageExp[i].fillAmount = expPer;
                    }
                }

                objectInfo[i].SetActive(true);
            }
        }
    }