Esempio n. 1
0
    private void UpdateAIData(int score, int end)
    {
        userReference.OrderByChild("score").StartAt(score + 1).EndAt(end).LimitToFirst(10).GetValueAsync()
        .ContinueWith(task =>
        {
            if (task.IsCompleted)
            {
                try
                {
                    foreach (var data in task.Result.Children)
                    {
                        pvpDatas.Add(JsonUtility.FromJson <PvpData>(data.GetRawJsonValue()));
                    }

                    var userData = pvpDatas[(int)Random.Range(0, task.Result.ChildrenCount)];

                    DataController.Instance.AIData = userData;

                    DataController.Instance.isPvpReady = true;
                }
                catch (Exception e)
                {
                    var user = new PvpData
                    {
                        score = DataController.Instance.PlayerData.score + 10,

                        skillIndex   = DataController.Instance.skillIndex,
                        costumeIndex = DataController.Instance.PlayerData.costumeIndex,
                        skinIndex    = DataController.Instance.PlayerData.skinIndex,

                        Hp              = DataController.Instance.PlayerData.Hp,
                        damage          = DataController.Instance.PlayerData.damage,
                        criticalDamage  = DataController.Instance.PlayerData.criticalDamage,
                        criticalPercent = DataController.Instance.PlayerData.criticalPercent,

                        skillClickTime = Random.Range(0.6f, 1f),

                        skill_1_damage = DataController.Instance.PlayerData.skill_1_damage,
                        skill_2_damage = DataController.Instance.PlayerData.skill_2_damage,
                        skill_3_time   = DataController.Instance.PlayerData.skill_3_time,
                        skill_4_damage = DataController.Instance.PlayerData.skill_4_damage,
                        skill_5_damage = DataController.Instance.PlayerData.skill_5_damage,
                        skill_6_damage = DataController.Instance.PlayerData.skill_6_damage,
                        userName       = randName[Random.Range(0, randName.Length)]
                    };


                    // 이름 1에서 이름 2로 수정
                    user.Hp             += user.Hp * Random.Range(-20, 20) / 100;
                    user.damage         += user.damage * Random.Range(-20, 20) / 100;
                    user.criticalDamage += user.criticalDamage * Random.Range(-20, 20) / 100;

                    DataController.Instance.AIData = user;

                    DataController.Instance.isPvpReady = true;
//                        Loading.SetActive(false);

                    throw;
                }
            }
        });
    }
Esempio n. 2
0
    public void SyncButton()
    {
        if (Social.localUser.authenticated)
        {
            if (PlayerPrefs.GetFloat("FirstPvp", 0) == 0)
            {
                // PVP 처음 입장

                PlayerPrefs.SetFloat("FirstPvp", 1);

                var criticalPer = DataController.Instance.criticalPercent + DataController.Instance.rubyCriticalPer +
                                  DataController.Instance.devilCritical +
                                  DataController.Instance.collectionCriticalPer +
                                  DataController.Instance.advancedCriticalPer + DataController.Instance.skinCriticalPer;

                var user = new PvpData
                {
                    userName = PlayGamesPlatform.Instance.localUser.userName,
                    score    = 1000,

                    skillIndex   = DataController.Instance.skillIndex,
                    costumeIndex = DataController.Instance.costumeIndex,
                    skinIndex    = DataController.Instance.skinIndex,

                    damage          = DataController.Instance.masterDamage,
                    criticalPercent = criticalPer,
                    criticalDamage  = DataController.Instance.masterCriticalDamage,
                    Hp = DataController.Instance.GetPlayerHP(),

                    skillClickTime = Random.Range(0.5f, 1f),

                    skill_1_damage = DataController.Instance.skill_1_damage,
                    skill_2_damage = DataController.Instance.skill_2_damage,
                    skill_3_time   = DataController.Instance.skill_3_time,
                    skill_4_damage = DataController.Instance.skill_4_damage,
                    skill_5_damage = DataController.Instance.skill_5_damage,
                    skill_6_damage = DataController.Instance.skill_6_damage
                };

                DataController.Instance.PlayerData = user;

                var json = JsonUtility.ToJson(user);

                userReference.Child(PlayGamesPlatform.Instance.localUser.id).SetRawJsonValueAsync(json).ContinueWith(task =>
                {
                    if (task.IsCompleted)
                    {
                        SetAIData();
                    }
                });
            }
            else
            {
                userReference.Child(PlayGamesPlatform.Instance.localUser.id).GetValueAsync().ContinueWith(task =>
                {
                    if (task.IsCompleted)
                    {
                        var userData = JsonUtility.FromJson <PvpData>(task.Result.GetRawJsonValue());

                        var criticalPer = DataController.Instance.criticalPercent +
                                          DataController.Instance.rubyCriticalPer +
                                          DataController.Instance.devilCritical +
                                          DataController.Instance.collectionCriticalPer +
                                          DataController.Instance.advancedCriticalPer +
                                          DataController.Instance.skinCriticalPer;


                        var damage = DataController.Instance.masterDamage >= userData.damage
                            ? DataController.Instance.masterDamage
                            : userData.damage;

                        var criticalPercent = criticalPer >= userData.criticalPercent
                            ? criticalPer
                            : userData.criticalPercent;


                        var criticalDamage = DataController.Instance.masterCriticalDamage >= userData.criticalDamage
                            ? DataController.Instance.masterCriticalDamage
                            : userData.criticalDamage;

                        var hp = DataController.Instance.GetPlayerHP() >= userData.Hp
                            ? DataController.Instance.GetPlayerHP()
                            : userData.Hp;

                        var user = new PvpData
                        {
                            userName = PlayGamesPlatform.Instance.localUser.userName,
                            score    = userData.score,

                            skillIndex   = DataController.Instance.skillIndex,
                            costumeIndex = DataController.Instance.costumeIndex,
                            skinIndex    = DataController.Instance.skinIndex,

                            damage          = damage,
                            criticalPercent = criticalPercent,
                            criticalDamage  = criticalDamage,
                            Hp = hp,

                            skillClickTime = userData.skillClickTime,

                            skill_1_damage = DataController.Instance.skill_1_damage,
                            skill_2_damage = DataController.Instance.skill_2_damage,
                            skill_3_time   = DataController.Instance.skill_3_time,
                            skill_4_damage = DataController.Instance.skill_4_damage,
                            skill_5_damage = DataController.Instance.skill_5_damage,
                            skill_6_damage = DataController.Instance.skill_6_damage
                        };

                        // 플레이어 데이터 셋팅
                        DataController.Instance.PlayerData = user;

                        var json = JsonUtility.ToJson(user);

                        userReference.Child(PlayGamesPlatform.Instance.localUser.id).SetRawJsonValueAsync(json).ContinueWith(
                            task1 =>
                        {
                            if (task1.IsCompleted)
                            {
                                SetAIData();
                            }
                        });
                    }
                });
            }
        }
    }