Exemple #1
0
    // Revive: Free daily, Potion or HC
    void OnClickRevive()
    {
        FinishTutorial();

        bool            canRevive = false;
        PlayerInventory inventory = PlayerInfo.Instance.PlayerInventory;
        int             count     = inventory.GetItemCount(FCConst.k_potion_revive);

        int        playerLevel = PlayerInfo.Instance.CurrentLevel;
        PLevelData playerData  = DataManager.Instance.GetCurrentClassLevelData(playerLevel);


        if (count > 0)
        {
            inventory.UseItem(FCConst.k_potion_revive);
            canRevive = true;
            ++BattleSummary.Instance.RpCost;
            NetworkManager.Instance.ReviveInBattle(LevelManager.Singleton.CurrentLevelData.id, FCConst.k_potion_revive, 1, 0, OnTakePotion);
        }
        else if (PlayerInfo.Instance.HardCurrency >= playerData._reviveHc)
        {
            PlayerInfo.Instance.ReduceHardCurrency(playerData._reviveHc);

            BattleSummary.Instance.ReviveUsed++;

            canRevive = true;

            NetworkManager.Instance.ReviveInBattle(LevelManager.Singleton.CurrentLevelData.id, FCConst.k_potion_revive, 1, 1, OnTakePotion);
        }
        else
        {
            UIMessageBoxManager.Instance.ShowErrorMessageBox(5001, string.Empty);
        }

        if (canRevive)
        {
            UIManager.Instance.CloseUI("BattleReviveUI");
            if (GameManager.Instance.CurrGameMode == GameManager.FC_GAME_MODE.SINGLE)
            {
                UIManager.Instance.OpenUI("HomeUI");
                //ObjectManager.Instance.GetMyActionController().GoToRevive();

                CommandManager.Instance.Send(FCCommand.CMD.REVIVE,
                                             null, FC_PARAM_TYPE.NONE,
                                             null, FC_PARAM_TYPE.NONE,
                                             null, FC_PARAM_TYPE.NONE,
                                             ObjectManager.Instance.GetMyActionController().ObjectID,
                                             FCCommand.STATE.RIGHTNOW, true);
            }
            else if (GameManager.Instance.IsPVPMode)
            {
                PvPBattleSummary.Instance.ReviveMySelf();
            }
        }
    }
Exemple #2
0
    //called by OpenUI
    void OnInitialize()
    {
        _itemList = PlayerInfo.Instance.CombatInventory.itemList;

        // Set revive button state.
        PlayerInventory inventory = PlayerInfo.Instance.PlayerInventory;
        int             count     = inventory.GetItemCount(FCConst.k_potion_revive);

        int        playerLevel = PlayerInfo.Instance.CurrentLevel;
        PLevelData playerData  = DataManager.Instance.GetCurrentClassLevelData(playerLevel);

        revivePotionIcon.SetActive(count > 0);

        hcIcon.SetActive(count <= 0);

        labelAmount.text = count > 0 ? string.Format("{0}/1", count) : playerData._reviveHc.ToString();

        InitTutorialEffect();

        //todo: BeginTutorial(TutorialManager._level_revive_100);

        FillGrid();
    }
    public PLevelData GetCurrentClassLevelData(int level, EnumRole role)
    {
        PLevelData data = new PLevelData();

        if (level < 0 || level >= CurPlayerLevelDataList._dataList.Count)
        {
            Debug.LogError("level is out range: [" + level + "]");
            level = 1;
        }


        PlayerLevelData playerLevelData = CurPlayerLevelDataList._dataList[level];

        data._level    = playerLevelData._level;
        data._xp       = playerLevelData._exp;
        data._reviveHc = playerLevelData._reviveHc;

        if (role == EnumRole.Mage)
        {
            data._hp          = playerLevelData._mage_hp;
            data._attack      = playerLevelData._mage_attack;
            data._defense     = playerLevelData._mage_defense;
            data._crit_rate   = playerLevelData._mage_crit;
            data._crit_damage = playerLevelData._mage_crit_damage;
        }
        else if (role == EnumRole.Warrior)
        {
            data._hp          = playerLevelData._warrior_hp;
            data._attack      = playerLevelData._warrior_attack;
            data._defense     = playerLevelData._warrior_defense;
            data._crit_rate   = playerLevelData._warrior_crit;
            data._crit_damage = playerLevelData._warrior_crit_damage;
        }

        return(data);
    }