using System; using System.Collections.Generic; using proto; namespace MoleMole { public class PlayerDataItem { public string token; public int userId; public string nickname; public string selfDesc; public int teamLevel; public int teamExp; public int hcoin; public int scoin; public int stamina; public int staminaRecoverLeftTime; public int skillPoint; public int skillPointRecoverLeftTime; public int skillPointLimit; public int equipmentSizeLimit; public int friendsPoint; public int maxFriend = 2; public int endlessMinPlayerLevel = 10; public int endlessMaxProgress = 99; public int disjoin_equipment_back_exp_percent; public int staminaRecoverConfigTime; public int skillPointRecoverConfigTime; public int reviveHcoinCost; public int sameTypePowerUpRataInt; public Dictionary costAddByAvatarStar; public int avatarCombatBaseWeight; public int avatarCombatBaseStarRate; public int avatarCombatBaseLevelRate; public int avatarCombatBaseUnlockStarRate; public int avatarCombatSkillWeight; public int avatarCombatIslandWeight; public int avatarCombatWeaponWeight; public int avatarCombatWeaponRarityRate; public int avatarCombatWeaponSubRarityRate; public int avatarCombatWeaponLevelRate; public int avatarCombatStigmataWeight; public int avatarCombatStigmataRarityRate; public int avatarCombatStigmataSubRarityRate; public int avatarCombatStigmataLevelRate; public int avatarCombatStigmataSuitNumRate; public Dictionary> teamDict; public Dictionary gachaTicketPriceDict; public int offlineFriendsPoint; public int powerUpScoinCostRate; public int endlessUseItemCDTime; public GetSignInRewardStatusRsp signInStatus; public int minLevelToGenerateInviteCode; public int maxLevelToAcceptInvite; private PlayerLevelMetaData _metaData; public DateTime nextStaminaRecoverDatetime; public DateTime nextSkillPtRecoverDatetime; public CacheData scoinExchangeCache; public CacheData staminaExchangeCache; public CacheData skillPointExchangeCache; public PlayerUITempSaveData uiTempSaveData; public CacheDataUtil _cacheDataUtil; public bool initByGetMainDataRsp; public int maxFriendFinal { get { return maxFriend + Singleton.Instance.GetMaxFriendAdd(); } } public int TeamMaxExp { get { return _metaData.exp; } } public int TeamNeedExp { get { return TeamMaxExp - teamExp; } } public int NumFriends { get { return _metaData.numFriends; } } public string NickNameText { get { return (!string.IsNullOrEmpty(nickname)) ? nickname : LocalizationGeneralLogic.GetText("Menu_DefaultNickname", userId); } } public int MaxStamina { get { return _metaData.stamina; } } public int AvatarLevelLimit { get { return _metaData.avatarLevelLimit; } } public string SelfDescText { get { return (!string.IsNullOrEmpty(selfDesc)) ? selfDesc : LocalizationGeneralLogic.GetText("Menu_DefaultSelfDesc"); } } public PlayerDataItem(int teamLevel = 1) { this.teamLevel = teamLevel; OnLevelChange(this.teamLevel, this.teamLevel); costAddByAvatarStar = new Dictionary(); teamDict = new Dictionary>(); gachaTicketPriceDict = new Dictionary(); scoinExchangeCache = new CacheData(); staminaExchangeCache = new CacheData(); skillPointExchangeCache = new CacheData(); _cacheDataUtil = new CacheDataUtil(); _cacheDataUtil.CreateCacheUtil(ECacheData.Stamina, staminaExchangeCache, Singleton.Instance.RequestGetStaminaExchangeInfo, 17); uiTempSaveData = new PlayerUITempSaveData(); signInStatus = null; initByGetMainDataRsp = false; } public void OnStaminaRecoverTimeChange(int preValue, int newValue) { nextStaminaRecoverDatetime = TimeUtil.Now.AddSeconds(staminaRecoverLeftTime); } public DateTime GetStaminaFullTime() { int num = staminaRecoverLeftTime + staminaRecoverConfigTime * (MaxStamina - stamina - 1); return TimeUtil.Now.AddSeconds(num); } public void OnSkillPointRecoverTimeChange(int preValue, int newValue) { nextSkillPtRecoverDatetime = TimeUtil.Now.AddSeconds(skillPointRecoverLeftTime); } public DateTime GetSkillPointFullTime() { int num = skillPointRecoverLeftTime + skillPointRecoverConfigTime * (skillPointLimit - skillPoint - 1); return TimeUtil.Now.AddSeconds(num); } public void OnLevelChange(int preValue, int newValue) { if (_metaData == null || newValue != preValue) { _metaData = PlayerLevelMetaDataReader.GetPlayerLevelMetaDataByKey(newValue); } if (newValue != preValue) { Singleton.Instance.OnPlayerLevelChanged(newValue, preValue); Singleton.Instance.RequestGetInviteeFriend(); } } public void OnCoinChange(int preValue, int newValue) { WwiseAudioManager instance = Singleton.Instance; if (preValue > newValue && instance != null) { instance.Post("UI_Gen_Buy_Item"); } } public bool IsStaminaFull() { return stamina >= MaxStamina; } public bool IsSkillPointFull() { return skillPoint >= skillPointLimit; } public List GetMemberList(StageType levelType) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0028: Unknown result type (might be due to invalid IL or missing references) //IL_0017: Unknown result type (might be due to invalid IL or missing references) if (!teamDict.ContainsKey(levelType)) { teamDict.Add(levelType, new List()); } return teamDict[levelType]; } public void SetTeamMember(StageType levelType, List newMemberList) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) teamDict[levelType] = newMemberList; } public void SetTeamMember(StageType levelType, int num, int avatarId) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0034: Unknown result type (might be due to invalid IL or missing references) //IL_001d: Unknown result type (might be due to invalid IL or missing references) if (num > teamDict[levelType].Count) { teamDict[levelType].Add(avatarId); } else { teamDict[levelType][num - 1] = avatarId; } } public void RemoveTeamMember(StageType levelType, int num) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) teamDict[levelType].RemoveAt(num - 1); } public void SwitchTeamMember(StageType levelType, int numLeft, int numRight) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_0018: Unknown result type (might be due to invalid IL or missing references) //IL_002d: Unknown result type (might be due to invalid IL or missing references) //IL_003c: Unknown result type (might be due to invalid IL or missing references) //IL_0055: Unknown result type (might be due to invalid IL or missing references) if (teamDict.ContainsKey(levelType)) { int value = teamDict[levelType][numLeft - 1]; teamDict[levelType][numLeft - 1] = teamDict[levelType][numRight - 1]; teamDict[levelType][numRight - 1] = value; } } public bool HasTeamMember(StageType levelType, int num) { //IL_0006: Unknown result type (might be due to invalid IL or missing references) //IL_001a: Unknown result type (might be due to invalid IL or missing references) if (!teamDict.ContainsKey(levelType)) { return false; } return num <= teamDict[levelType].Count; } public override string ToString() { return "PlayerDataItem: " + userId; } } }