CultivateImmortal/Assets/Scripts/GameScene/Data/GameDataMgr.cs

218 lines
6.6 KiB
C#
Raw Normal View History

using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Runtime.CompilerServices;
using System.Threading;
using System.Xml.Serialization;
using LitJson;
using UnityEngine;
using UnityEngine.Networking;
public class GameDataMgr:SingletonAutoMono<GameDataMgr>
{
//<2F><>̬<EFBFBD><CCAC><EFBFBD><EFBFBD> <20><>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȥnew
private RegisterData registerData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD>ܻ<EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸<EFBFBD>
public RegisterData RegisterData => registerData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public PlayerData player;
//<2F><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD>Ѵ<EFBFBD><D1B4><EFBFBD><EFBFBD><EFBFBD>ӵ<EFBFBD>е<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2>
public UserEquipInfo userEquip;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7>Ϣ
public UserGoodsInfo userGoods;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>
private List<MonsterData> monster;
public List<MonsterData> monsters => monster;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լӳɣ<D3B3><C9A3>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>
private List<UserUpgradeData> userUpGrade;
public List<UserUpgradeData> userUpGradeInfo => userUpGrade;
//װ<><D7B0><EFBFBD><EFBFBD><EFBFBD>Լӳɣ<D3B3><C9A3>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>
private List<EquipData> equipData;
public List<EquipData> equipInfo => equipData;
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ
private List<GoodsData> goodsData;
public List<GoodsData> goods => goodsData;
//<2F><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>һֻ
public MonsterData nowMonster;
//public void Init()
//{
// //<2F><>ȡע<C8A1><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// registerData = JsonMgr.Instance.LoadData<RegisterData>("RegisterData");
// //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// monster = JsonMgr.Instance.LoadData<List<MonsterData>>("MonsterInfo");
// //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լӳ<D4BC>
// userUpGrade = JsonMgr.Instance.LoadData<List<UserUpgradeData>>("UserUpgradeInfo");
// //<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>Լӳ<D4BC>
// equipData = JsonMgr.Instance.LoadData<List<EquipData>>("EquipInfo");
// //<2F><>ȡ<EFBFBD><C8A1>Ʒ<EFBFBD><C6B7>Ϣ
// goodsData = JsonMgr.Instance.LoadData<List<GoodsData>>("GoodsInfo");
// nowMonster = monsters[0];
//}
public void Init()
{
//<2F><>ȡע<C8A1><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
registerData = JsonMgr.Instance.LoadData<RegisterData>("RegisterData");
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
StartCoroutine(DataInit<List<MonsterData>>("MonsterInfo"));
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լӳ<D4BC>
StartCoroutine(DataInit<List<UserUpgradeData>>("UserUpgradeInfo"));
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>Լӳ<D4BC>
StartCoroutine(DataInit<List<EquipData>>( "EquipInfo"));
//<2F><>ȡ<EFBFBD><C8A1>Ʒ<EFBFBD><C6B7>Ϣ
StartCoroutine(DataInit<List<GoodsData>>("GoodsInfo"));
}
private IEnumerator DataInit<T>(string name)
{
string path = Application.streamingAssetsPath + "/" + name + ".json";
// <20><>׿ƽ̨<C6BD><CCA8>Ҫ<EFBFBD><D2AA>UnityWebRequest
UnityWebRequest req = UnityWebRequest.Get(path);
yield return req.SendWebRequest();
if (req.result == UnityWebRequest.Result.Success)
{
string jsonStr = req.downloadHandler.text;
T data = JsonMapper.ToObject<T>(jsonStr);
Debug.Log("<22><>ȡ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD>" + jsonStr);
if (data is List<MonsterData>)
{
monster = data as List<MonsterData>;
nowMonster = monster[0];
}
if (data is List<UserUpgradeData>)
{
userUpGrade = data as List<UserUpgradeData>;
}
if (data is List<EquipData>)
{
equipData = data as List<EquipData>;
}
if (data is List<GoodsData>)
{
goodsData = data as List<GoodsData>;
}
}
else
{
Debug.LogError("<22><>ȡʧ<C8A1>ܣ<EFBFBD>" + req.error+path);
}
}
/// <summary>
/// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
public void PlayerDataLoad(string txtUser)
{
player = JsonMgr.Instance.LoadData<PlayerData>(txtUser);
userEquip = JsonMgr.Instance.LoadData<UserEquipInfo>(txtUser + "equip");
userGoods = JsonMgr.Instance.LoadData<UserGoodsInfo>(txtUser + "goods");
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="txtUser"></param>
public void PlayerDataSave()
{
JsonMgr.Instance.SaveData(player,player.txtUser);
}
/// <summary>
/// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="txtUser"></param>
public void EquipDataSave()
{
JsonMgr.Instance.SaveData(userEquip, player.txtUser+ "equip");
}
#region ע<EFBFBD><EFBFBD>
//<2F>洢ע<E6B4A2><D7A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
public void SavaRegisterData()
{
JsonMgr.Instance.SaveData(registerData, "RegisterData");
}
//ע<><EFBFBD><E1B7BD>
public int RegisterUser(string userName, string passWord, string gameName)
{
//<2F>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7>Ѿ<EFBFBD><D1BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
if (registerData.registerInfo.ContainsKey(userName))
{
return 1;
}
//<2F>жϽ<D0B6>ɫ<EFBFBD><C9AB><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>
if (registerData.registerInfo.ContainsKey(gameName))
{
return 2;
}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ֤<><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע<EFBFBD><D7A2>
//<2F><EFBFBD><E6B4A2><EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><E6B4A2>ɫ<EFBFBD><C9AB>
registerData.registerInfo.Add(userName, passWord);
registerData.registerInfo.Add(gameName, passWord);
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>
PlayerData newPlayer = new PlayerData();
newPlayer.name = gameName;
newPlayer.txtUser = userName;
JsonMgr.Instance.SaveData(newPlayer, userName);
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD>װ<EFBFBD><D7B0><EFBFBD><EFBFBD>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڱ<EFBFBD><DAB1><EFBFBD>
UserEquipInfo newEquipInfo=new UserEquipInfo();
newEquipInfo.itemEquip.Add(equipData[0]);
newEquipInfo.itemEquip.Add(equipData[1]);
newEquipInfo.itemEquip.Add(equipData[2]);
newEquipInfo.itemEquip.Add(equipData[3]);
newEquipInfo.itemEquip.Add(equipData[4]);
newEquipInfo.itemEquip.Add(equipData[5]);
newEquipInfo.itemEquip.Add(equipData[6]);
newEquipInfo.itemEquip.Add(equipData[7]);
newEquipInfo.itemEquip.Add(equipData[8]);
JsonMgr.Instance.SaveData(newEquipInfo, userName+"equip");
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD>ҵ<EFBFBD><D2B5><EFBFBD>Ʒ<EFBFBD><C6B7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B1BE>
UserGoodsInfo newGoodsInfo = new UserGoodsInfo();
newGoodsInfo.goods.Add(goodsData[0]);
newGoodsInfo.goods[0].num = 1888;
newGoodsInfo.goods.Add(goodsData[1]);
newGoodsInfo.goods[1].num = 9999;
JsonMgr.Instance.SaveData(newGoodsInfo, userName + "goods");
//<2F><><EFBFBD>ش洢
SavaRegisterData();
//ע<><D7A2><EFBFBD>ɹ<EFBFBD>
return 3;
}
//<2F><>֤<EFBFBD>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>Ϸ<EFBFBD>
public bool CheckInfo(string userName, string passWord)
{
if (registerData.registerInfo.ContainsKey(userName))
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͬ ֤<><D6A4> <20><>¼<EFBFBD>ɹ<EFBFBD>
if (registerData.registerInfo[userName] == passWord)
{
return true;
}
}
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϸ<EFBFBD>
return false;
}
#endregion
}