OvertakingLegend/Assets/Script/UserData/UserDataMar.cs

311 lines
6.9 KiB
C#

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