using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Text;
using UnityEngine;
using UnityEngine.Networking;
namespace WildAttack
{
///
/// 怪物配置结构体
///
public struct MonsterData
{
public List weponWeight;
public int num;
public int speed;
}
///
/// monster.csv
///
public class MonsterModule : Singleton, IModule
{
#region Member
private Dictionary monsterDataDic;
#endregion
#region Override
public IEnumerator LoadCSV(string fileName, Action callback)
{
string sPath = CSVUtils.GetStreamingAssetPath() + "/" + fileName;
UnityWebRequest www = UnityWebRequest.Get(sPath);
yield return www.SendWebRequest();
File.WriteAllText(Application.persistentDataPath + "/" + fileName, www.downloadHandler.text, Encoding.GetEncoding("utf-8"));
www.Dispose();
SaveData(CSVUtils.GetInstance().LoadFile(Application.persistentDataPath, fileName));
callback();
}
public void SaveData(string[] lineArr)
{
monsterDataDic = new Dictionary();
for (int i = 1; i < lineArr.Length; i++)
{
string[] data = lineArr[i].Split(',');
List weightList = new List();
weightList.Add(int.Parse(data[2].Split('\"')[1].Split('|')[1]));
weightList.Add(int.Parse(data[3].Split('|')[1]));
weightList.Add(int.Parse(data[4].Split('\"')[0].Split('|')[1]));
MonsterData monster = new MonsterData
{
weponWeight = weightList,
num = int.Parse(data[5]),
speed = int.Parse(data[6]),
};
monsterDataDic[int.Parse(data[0])] = monster;
}
}
#endregion
#region Functions
public MonsterData GetData(int id)
{
MonsterData data = new MonsterData();
if (monsterDataDic != null && monsterDataDic.ContainsKey(id))
{
data = monsterDataDic[id];
}
return data;
}
#endregion
}
}