311 lines
6.9 KiB
C#
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);
|
|
}
|
|
}
|