using Config.config; using System; /// /// 用户数据管理器 /// public class UserDataManager : SingletonManager { /// /// 用户数据 /// public UserData userData; /// /// 初始化 /// public void Init() { if (ES3.KeyExists("GameData")) { userData = ES3.Load("GameData") as UserData; if (!userData.guidance.isOverInitialEntry) { userData.gameNumber = 0; } } else { userData = new UserData(); userData.level = 0; userData.useCar = "Car_1"; userData.skillId = "Skill_1"; AddCar("Car_1"); AddSkill("Skill_1"); } } /// /// 加金币 /// public void AddMoney(int value) { userData.money += value; SaveUserData(); } /// /// 加关卡 /// public void AddLevel() { userData.level++; SaveUserData(); } /// /// 添加关卡数 /// public void AddGameNumber() { userData.gameNumber++; SaveUserData(); } /// /// 设置已使用免费子弹时间 /// public void SetIsFreeSpeedbreaker() { if (userData.isFreeSpeedbreaker) return; userData.isFreeSpeedbreaker = true; SaveUserData(); } /// /// 设置已使用随机技能 /// public void SetIsRandomSkill() { if (userData.isRandomSkill) return; userData.isRandomSkill = true; SaveUserData(); } /// /// 减金币 /// /// public bool RemoveMoney(int value) { bool isEnough = false; if (userData.money >= value) { userData.money -= value; Scenes.Instance.GoldCoin(); isEnough = true; } return isEnough; } /// /// 得到增加能量 /// public float GetBoostEnergy() { return ConfigManager.Instance.Tables.TbSkillConfig.Get(userData.skillId).BoostEnergy; } /// /// 得到释放能量 /// public float GetEnergesis() { return ConfigManager.Instance.Tables.TbSkillConfig.Get(userData.skillId).Energesis; } /// /// 得到持续时间 /// private float GetTimeOfDuration(string skillId) { return ConfigManager.Instance.Tables.TbSkillConfig.Get(skillId).TimeOfDuration; } /// /// 得到已有技能持续时间 /// /// public float GetAlreadyHaveTimeOfDuration(string skillId) { if (userData.skillData.ContainsKey(skillId)) { return userData.skillData[skillId].timeOfDuration; } else { return GetTimeOfDuration(skillId); } } /// /// 是否是试玩技能 /// /// public bool IsTrySkill() { if (userData.skillData.ContainsKey(userData.skillId)) { return false; } return true; } /// /// 设置时间 /// public void SetAdTime() { userData.aDDateTime = DateTime.Now; SaveUserData(); } /// /// 添加车 /// /// public void AddCar(string id) { if (!userData.cars.Contains(id)) { userData.cars.Add(id); SaveUserData(); } } /// /// 设置使用的车 /// public void SetUseCar(string id) { userData.useCar = id; SaveUserData(); } /// /// 设置使用技能 /// public void SetSkillId(string id) { userData.skillId = id; SaveUserData(); } /// /// 试用技能完毕 /// public void TrySkillOver() { if(!userData.skillData.ContainsKey(userData.skillId)) { SetSkillId("Skill_1"); } } /// /// 添加皮肤车广告 /// /// public void AddCarAD(string id) { if (userData.carAD.ContainsKey(id)) { userData.carAD[id]++; } else { userData.carAD.Add(id, 1); } } /// /// 添加技能 /// public void AddSkill(string id) { SkillConfig skillConfig = ConfigManager.Instance.Tables.TbSkillConfig.Get(id); if (!userData.skillData.ContainsKey(id)) { SkillData skillData = new SkillData(); skillData.lv = 1; skillData.boostEnergy = skillConfig.BoostEnergy; skillData.timeOfDuration = skillConfig.TimeOfDuration; userData.skillData.Add(id, skillData); } else { userData.skillData[id].lv++; userData.skillData[id].boostEnergy += skillConfig.Energesis * (5 / 100); userData.skillData[id].timeOfDuration += 0.5f; } SaveUserData(); } /// /// 添加试用技能 /// public void AddTryOutSlill(string id) { if (!userData.tryOutSlill.Contains(id)) { userData.tryOutSlill.Add(id); SaveUserData(); } } /// /// 设置技能广告升级 /// public void AddSlillUpgrade(string id) { if (!userData.skillUpgradeData.ContainsKey(id)) { userData.skillUpgradeData.Add(id, 1); SaveUserData(); } } /// /// 设置技能广告次数 /// public void SetSlillUpgrade(string id) { userData.skillUpgradeData[id]++; SaveUserData(); } /// /// 升级金币 /// public int UpgradeMoney(string id) { return 7500 + (userData.skillData[id].lv - 1) * 5000; } /// /// 设置背景音乐大小 /// public void SetBKMusicVolume(float value) { userData.soundSwitchData.bKMusicVolume = value; SaveUserData(); } /// /// 设置音效大小 /// public void SetSEVolume(float value) { userData.soundSwitchData.sEVolume = value; SaveUserData(); } /// /// 保存玩家数据 /// public void SaveUserData() { ES3.Save("GameData", userData); } }