// 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(); } } }
//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); }