mirror of
https://github.com/blitzkit/blitzkit.git
synced 2026-10-21 18:57:03 +02:00
feat: mangle crew healths
This commit is contained in:
1 parent
c6f4a13abc
commit
6829ff921d
5 files changed
+158
-74
No files matched your search
@@ -3,6 +3,7 @@ using BlitzKit.CLI.Models;
|
||||
using BlitzKit.CLI.Utils;
|
||||
using CUE4Parse.FileProvider.Objects;
|
||||
using Google.Protobuf;
|
||||
using Google.Protobuf.Collections;
|
||||
using Newtonsoft.Json.Linq;
|
||||
|
||||
namespace BlitzKit.CLI.Functions
|
||||
@@ -93,7 +94,7 @@ namespace BlitzKit.CLI.Functions
|
||||
FuelTankHealth = MangleModuleHealth((props["FuelTankHealth"] as JObject)!),
|
||||
};
|
||||
|
||||
tank.CrewHealth.Add("", 1);
|
||||
MangleCrewHealth(tank.CrewHealth, (props["CrewHealth"] as JArray)!);
|
||||
|
||||
tanks.Tanks_.Add(tank.Id);
|
||||
|
||||
@@ -106,6 +107,38 @@ namespace BlitzKit.CLI.Functions
|
||||
var tanksBytes = tanks.ToByteArray();
|
||||
}
|
||||
|
||||
public static Dictionary<string, CrewType> CrewTypes = new()
|
||||
{
|
||||
{ "EModuleOrTankmen::Commander", CrewType.Commander },
|
||||
{ "EModuleOrTankmen::Driver", CrewType.Driver },
|
||||
{ "EModuleOrTankmen::Gunner1", CrewType.Gunner1 },
|
||||
{ "EModuleOrTankmen::Gunner2", CrewType.Gunner2 },
|
||||
{ "EModuleOrTankmen::Loader1", CrewType.Loader1 },
|
||||
{ "EModuleOrTankmen::Loader2", CrewType.Loader2 },
|
||||
};
|
||||
|
||||
public static void MangleCrewHealth(RepeatedField<CrewHealth> map, JArray array)
|
||||
{
|
||||
foreach (var member in array.Cast<JObject>())
|
||||
{
|
||||
var key = member["Key"]!.Value<string>()!;
|
||||
|
||||
if (CrewTypes.TryGetValue(key, out var crewType))
|
||||
{
|
||||
CrewHealth crewHealth = new()
|
||||
{
|
||||
Type = crewType,
|
||||
MaxHealth = member["Value"]!["MaxHealth"]!.Value<float>(),
|
||||
};
|
||||
map.Add(crewHealth);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new Exception($"Unrecognized CrewType: {key}");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static ModuleHealth MangleModuleHealth(JObject obj)
|
||||
{
|
||||
ModuleHealth moduleHealth = new()
|
||||
|
||||
Reference in new issue
Block a user