예제 #1
0
    public void TryStartTutorial()
    {
        CloseTutorial();

        string thirdSkill;
        int    role = (int)PlayerInfo.Instance.Role;

        if (role == 0)
        {
            thirdSkill = "LightningBall";
        }
        else if (role == 1)
        {
            thirdSkill = "Vortex";
        }
        else
        {
            thirdSkill = "Bash";
        }

        int rank = PlayerInfo.Instance.GetSkillLevel(thirdSkill);

        if (rank > 0)
        {
            return;
        }


        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Town_Skill);

        if (state == EnumTutorialState.Active)
        {
            BeginStep1();
        }
    }
    public bool TryFinishTutorialTown(EnumTutorial tutorialId)
    {
        isInTutorial = false;
        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(tutorialId);

        if (state != EnumTutorialState.Finished)
        {
            PlayerInfo.Instance.ChangeTutorialState(tutorialId, EnumTutorialState.Finished);
            DoFinishTutorialTown(tutorialId);

            if (tutorialId == EnumTutorial.Town_Fusion)
            {
                GameManager._showRateApp = true;
            }
            TutorialTown tutorialTown = GetTutorialTown(tutorialId);
            if (tutorialTown.only_once)
            {
                PlayerInfo.Instance.ChangeTutorialState(tutorialId, EnumTutorialState.Finished);
            }

            _needSaveFlag = true;

            return(true);
        }
        return(false);
    }
예제 #3
0
    IEnumerator TryStartTutorial(float time)
    {
        _tutorialEffect.SetActive(true);
        yield return(new WaitForSeconds(time));

        while (true)
        {
            EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Battle_Move);
            if (state == EnumTutorialState.Finished)
            {
                break;
            }

            if (uiJoyStick.activeSelf)
            {
                _tutorialEffect.SetActive(false);
            }
            else
            {
                if (!NGUITools.GetActive(_tutorialEffect))
                {
                    _tutorialEffect.SetActive(true);
                }
            }
            yield return(new WaitForSeconds(0.1f));
        }
        _tutorialEffect.SetActive(false);
    }
예제 #4
0
    public void ReceiveStartTutorialEvent(EnumTutorial tutorialId)
    {
        if (LevelManager.Singleton.LevelFinishFlag)
        {
            return;
        }

        if (_inTutorialFlag)
        {
            return;
        }

        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(tutorialId);

        if (state != EnumTutorialState.Inactive)
        {
            return;
        }


        if (tutorialId == EnumTutorial.Battle_Move)
        {
            _joystick.BeginTutorial(tutorialId);
        }
        else if (tutorialId < EnumTutorial.Battle_Revive)
        {
            _skillHandler.BeginTutorial(tutorialId);
        }
    }
 public void ResetActiveTutorial()
 {
     foreach (TutorialTown tutorialTown in tutorialDataList._dataList)
     {
         EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(tutorialTown.id);
         if (state == EnumTutorialState.Active)             //if this tutorial is active, set to inactive
         {
             PlayerInfo.Instance.ChangeTutorialState(tutorialTown.id, 0);
         }
     }
 }
예제 #6
0
    IEnumerator DelayShowArrowFor30()
    {
        yield return(new WaitForSeconds(5f));

        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Battle_KillAnEnemy);

        if (state == EnumTutorialState.Active)
        {
            _buttonEffect[0].SetActive(true);
        }
    }
예제 #7
0
 public void ChangeTutorialState(EnumTutorial tutorialId, EnumTutorialState state)
 {
     if (_tutorialState.ContainsKey(tutorialId)) //0=close  , 1=active  ,2=finish
     {
         _tutorialState[tutorialId] = state;
     }
     else
     {
         _tutorialState.Add(tutorialId, state);
     }
     _hasTutorialDataChange = true;
 }
    public bool TryStartTutorial()
    {
        CloseTutorial();
        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Town_Map);

        if (state == EnumTutorialState.Active)
        {
            BeginStep1();
            return(true);
        }
        return(false);
    }
예제 #9
0
    // Eat HP potion.
    void OnClickIncreaseHP()
    {
        if (ObjectManager.Instance.GetMyActionController().HPIsFull ||
            !ObjectManager.Instance.GetMyActionController().IsAlived)
        {
            return;
        }

        PlayerInventory inventory = PlayerInfo.Instance.PlayerInventory;
        int             count     = inventory.GetItemCount(FCConst.k_potion_hp);

        if (count > 0)
        {
            inventory.UseItem(FCConst.k_potion_hp);
            _HPPotionCount.text = inventory.GetItemCount(FCConst.k_potion_hp).ToString();

            UseHPPotion();

            ++BattleSummary.Instance.HpCost;

            NetworkManager.Instance.UseItemInBattle(LevelManager.Singleton.CurrentLevelData.id, FCConst.k_potion_hp, 1, 0, OnTakePotion);
        }
        else
        {
            StoreData sd = StoreDataManager.Instance.GetStoreData("potion_hp_hc");
            if (PlayerInfo.Instance.HardCurrency >= sd._normalInfo._hardCurrency)
            {
                PlayerInfo.Instance.ReduceHardCurrency(sd._normalInfo._hardCurrency);

                UseHPPotion();

                NetworkManager.Instance.UseItemInBattle(LevelManager.Singleton.CurrentLevelData.id, FCConst.k_potion_hp, 1, 1, OnTakePotion);
            }
            else
            {
                EnumTutorialState tState = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Battle_HealthPotion);
                if (tState == EnumTutorialState.Active)
                {
                    UseHPPotion();
                }
                else
                {
                    string msg = Localization.instance.Get("IDS_HC_NOT_ENOUGH");
                    UIMessageBoxManager.Instance.ShowMessageBox(msg, "", MB_TYPE.MB_OKCANCEL, OnBuyHCCallback);

                    GameManager.Instance.GamePaused = true;
                }
            }
        }

        UpdatePotions();
    }
예제 #10
0
 public void TryToStartTutorial()
 {
     foreach (TutorialTownTriggerInfo info in infoList)
     {
         EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(info.tutorialID);
         if (state != EnumTutorialState.Finished)
         {
             info.Activate();
             _currentTutorialInfo = info;
         }
         break;
     }
 }
예제 #11
0
    void OnInitialize()
    {
        LevelManager.Singleton.StopActorMoving();

        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Town_Map);

        if (state == EnumTutorialState.Active)
        {
            _backButton.GetComponent <UIImageButton>().isEnabled = false;
        }
        else
        {
            _backButton.GetComponent <UIImageButton>().isEnabled = true;
        }
    }
예제 #12
0
    public void GiveUpRevive()
    {
        if (PlayerInfo.Instance.GetTutorialState(EnumTutorial.Battle_Revive) != EnumTutorialState.Finished)
        {
            reviveArrow.SetActive(false);

            EnumTutorialState count = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Battle_Revive);
            count++;
            PlayerInfo.Instance.ChangeTutorialState(EnumTutorial.Battle_Revive, count);
            if (count > EnumTutorialState.Finished)
            {
                TutorialManager.Instance.TryFinishTutorialLevel(EnumTutorial.Battle_Revive);
            }
            else
            {
                PlayerInfo.Instance.ChangeTutorialState(EnumTutorial.Battle_Revive, EnumTutorialState.Inactive);                 //inactive
            }
        }
    }
예제 #13
0
    public override void Decode(BinaryReader reader)
    {
        errorCode = reader.ReadInt16();

        if (errorCode == 0)
        {
            int count = reader.ReadInt16();

            tutorialState = new Dictionary <EnumTutorial, EnumTutorialState>();

            for (int i = 0; i < count; i++)
            {
                EnumTutorial id = (EnumTutorial)reader.ReadInt32();

                EnumTutorialState state = (EnumTutorialState)reader.ReadInt32();

                tutorialState.Add(id, state);
            }
        }
    }
예제 #14
0
    public bool TryStartTutorialTown(EnumTutorial tutorialId)
    {
        if (tutorialId == EnumTutorial.Town_Equip)
        {
            if (PlayerInfo.Instance.IsEquipedItem(k_equip_item1))
            {
                PlayerInfo.Instance.ChangeTutorialState(tutorialId, EnumTutorialState.Finished);
                return(false);
            }
        }

        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(tutorialId);

        if (state == 0)         //if this tutorial is not active or finish, check if can start.
        {
            TutorialTown      tutorialTown = GetTutorialTown(tutorialId);
            EnumTutorialState preState     = EnumTutorialState.Finished;
            if (tutorialTown.preId != EnumTutorial.None)
            {
                preState = PlayerInfo.Instance.GetTutorialState(tutorialTown.preId);
            }

            if (preState == EnumTutorialState.Finished)             //if pre turiral have finish
            {
                EnumLevelState levelState = EnumLevelState.D;
                if (!string.IsNullOrEmpty(tutorialTown.level))
                {
                    levelState = PlayerInfo.Instance.GetLevelState(tutorialTown.level);
                }

                if (levelState >= EnumLevelState.D)
                {
                    PlayerInfo.Instance.ChangeTutorialState(tutorialId, EnumTutorialState.Active);
                    isInTutorial = true;
                    return(true);
                }
            }
        }
        return(false);
    }
예제 #15
0
    public void CloseEffectFor90()
    {
        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Battle_EnergyPotion);

        if (state == EnumTutorialState.Active)
        {
            MessageController.Instance.CloseCurMessage();
            _buttonEffect[6].SetActive(false);

            EnumTutorialState count = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Battle_EnergyPotion);
            count++;
            PlayerInfo.Instance.ChangeTutorialState(EnumTutorial.Battle_EnergyPotion, count);
            if (count > EnumTutorialState.Finished)
            {
                TutorialManager.Instance.TryFinishTutorialLevel(EnumTutorial.Battle_EnergyPotion);
            }
            else
            {
                PlayerInfo.Instance.ChangeTutorialState(EnumTutorial.Battle_EnergyPotion, 0);                 //inactive
            }
        }
    }
예제 #16
0
    private int _tutorialStep = 0;  //none = 0 claim = 1, fight = 2
    public void TryStartTutorial()
    {
        CloseTutorial();

        //tutorial: claim and back
        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Town_Quest1);

        //state = 1;  //open this for debug
        if (state == EnumTutorialState.Active)
        {
            BeginStep1();
            return;
        }

        //tutorial: fight
        state = PlayerInfo.Instance.GetTutorialState(EnumTutorial.Town_Quest2);
        //state = 1; //open this for debug
        if (state == EnumTutorialState.Active)
        {
            BeginStep6();
        }
    }
예제 #17
0
    public bool TryFinishTutorialLevel(EnumTutorial tutorialId)
    {
        _inTutorialFlag      = false;
        isTutorialHpOrEnergy = false;

        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(tutorialId);

        if (state != EnumTutorialState.Finished)
        {
            TutorialLevel tutorialLevel = GetTutorialLevel(tutorialId);

            PlayerInfo.Instance.ChangeTutorialState(tutorialId, EnumTutorialState.Finished);

            if (tutorialLevel.only_once)
            {
                PlayerInfo.Instance.ChangeTutorialState(tutorialId, EnumTutorialState.Finished);
            }

            FinishTutorialLevel(tutorialLevel);
        }

        return(true);
    }
예제 #18
0
    public void ReceiveFinishTutorialEvent(EnumTutorial tutorialId)
    {
        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(tutorialId);

        if (state != EnumTutorialState.Active)
        {
            //we will finish this two tutorial even it  is not active.
            if (tutorialId == EnumTutorial.Battle_HealthPotion || tutorialId == EnumTutorial.Battle_EnergyPotion)
            {
                PlayerInfo.Instance.ChangeTutorialState(tutorialId, EnumTutorialState.Finished);
            }
            return;
        }

        if (tutorialId == EnumTutorial.Battle_Move)
        {
            _joystick.FinishTutorial(tutorialId);
        }
        else if (tutorialId < EnumTutorial.Battle_Revive)
        {
            _skillHandler.FinishTutorial(tutorialId);
        }
    }
예제 #19
0
    public bool TryStartTutorialLevel(EnumTutorial tutorialId)
    {
        EnumTutorialState state = PlayerInfo.Instance.GetTutorialState(tutorialId);

        if (state == EnumTutorialState.Inactive)         //if this tutorial is not active or finish, check if can start.
        {
            TutorialLevel     tutorialLevel = GetTutorialLevel(tutorialId);
            EnumTutorialState preState      = EnumTutorialState.Inactive;
            if (tutorialLevel.preId != EnumTutorial.None)
            {
                preState = PlayerInfo.Instance.GetTutorialState(tutorialLevel.preId);
            }
            else
            {
                preState = EnumTutorialState.Finished;
            }


            if (preState == EnumTutorialState.Finished)             //if pre turiral have finish , start this tutorial
            {
                PlayerInfo.Instance.ChangeTutorialState(tutorialId, EnumTutorialState.Active);
                StartTutorialLevel(tutorialLevel);
                _inTutorialFlag = true;


                if (tutorialId == EnumTutorial.Battle_HealthPotion || tutorialId == EnumTutorial.Battle_EnergyPotion)
                {
                    isTutorialHpOrEnergy = true;
                }

                return(true);
            }
        }

        return(false);
    }
예제 #20
0
    public EnumTutorialState GetTutorialState(EnumTutorial tutorialId)
    {
        return(EnumTutorialState.Finished);

        EnumTutorialState tState = EnumTutorialState.Inactive;

        if (_tutorialState.ContainsKey(tutorialId))
        {
            tState = _tutorialState[tutorialId];
        }

        if (tutorialId == EnumTutorial.Battle_Skill1)
        {
            if (null != DataManager.Instance.GetSkillByKey(FC_KEY_BIND.ATTACK_2))
            {
                if (GetLevelState(LevelManager.Singleton.CurrentLevelData.levelName) >= EnumLevelState.NEW_UNLOCK)
                {
                    tState = EnumTutorialState.Finished;
                    ChangeTutorialState(tutorialId, EnumTutorialState.Finished);
                }
            }
        }

        if (tutorialId == EnumTutorial.Battle_Skill2)
        {
            if (null != DataManager.Instance.GetSkillByKey(FC_KEY_BIND.ATTACK_3))
            {
                if (GetLevelState(LevelManager.Singleton.CurrentLevelData.levelName) >= EnumLevelState.NEW_UNLOCK)
                {
                    tState = EnumTutorialState.Finished;
                    ChangeTutorialState(tutorialId, EnumTutorialState.Finished);
                }
            }
        }

        if (tutorialId == EnumTutorial.Town_Skill)
        {
            if (activeSkillList.Count >= 3)
            {
                tState = EnumTutorialState.Finished;
                ChangeTutorialState(tutorialId, EnumTutorialState.Finished);
            }
        }



        if (tState != EnumTutorialState.Finished)
        {
            TutorialTown tutorialTown = TutorialTownManager.Instance.GetTutorialTown(tutorialId);
            if (tutorialTown != null)
            {
                if (tutorialTown.only_once)
                {
                    int tmpState = 0;
                    if (tmpState == 2)
                    {
                        return(EnumTutorialState.Finished);
                    }
                }
            }
            else
            {
                TutorialLevel tutorialLevel = TutorialManager.Instance.GetTutorialLevel(tutorialId);
                if (tutorialLevel != null)
                {
                    if (tutorialLevel.only_once)
                    {
                        int tmpState = 0;
                        if (tmpState == 2)
                        {
                            return(EnumTutorialState.Finished);
                        }
                    }
                }
            }
        }
        return(tState);
    }