Files
DefendNJ/Assets/_DefendNJ/Scripts/Data/AiInfo.cs
2025-09-10 11:01:45 +08:00

77 lines
2.0 KiB
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XPlugin.Data.JsonLiteDB;
public class AiInfo
{
public int ID;
public int Type;
public string Name;
public List<int> HitRate;//命中率
public float FiringRate;//射击频率
public float FiringWaitTime;//射击等待时间
public List<int> FiringTarget1;//射击目标1
public List<int> FiringTarget2;//射击目标2
public AiInfo(JsonLiteDB.TableReader table)
{
HitRate = new List<int>();
FiringTarget1 = new List<int>();
FiringTarget2 = new List<int>();
ID = table["ID"].OptInt();
Type = table["Type"].OptInt();
Name = table["CN_Name"].OptString();
string hitRateStr = table["HitRate"].OptString();
if (hitRateStr == "-1")
{
HitRate.Add(-1);
}
else
{
HitRate=ParseStringToIntArray(hitRateStr);
}
FiringRate = table["FiringRate"].OptFloat();
FiringWaitTime = table["FiringWaitTime"].OptFloat();
string firingTarget1 = table["FiringTarget1"].OptString();
if (hitRateStr == "-1")
{
FiringTarget1.Add(-1);
}
else
{
FiringTarget1=ParseStringToIntArray(firingTarget1);
}
string firingTarget2 = table["FiringTarget2"].OptString();
if (hitRateStr == "-1")
{
FiringTarget2.Add(-1);
}
else
{
FiringTarget2=ParseStringToIntArray(firingTarget2);
}
}
List<int> ParseStringToIntArray(string input)
{
if (input == "")
{
return null;
}
string[] elements = input.Replace("[", "").Replace("]", "").Split(',');
List<int> intArray = new List<int>();
for (int i = 0; i < elements.Length; i++)
{
intArray.Add(int.Parse(elements[i]));
}
return intArray;
}
}