848 lines
24 KiB
C#
848 lines
24 KiB
C#
using System.Text.Json.Serialization;
|
|
using Core.Models.Common;
|
|
|
|
namespace Core.Models.Eft.Common;
|
|
|
|
public class LocationBase
|
|
{
|
|
[JsonPropertyName("AccessKeys")]
|
|
public List<string> AccessKeys { get; set; }
|
|
|
|
[JsonPropertyName("AccessKeysPvE")]
|
|
public List<string> AccessKeysPvE { get; set; }
|
|
|
|
[JsonPropertyName("AirdropParameters")]
|
|
public List<AirdropParameter> AirdropParameters { get; set; }
|
|
|
|
[JsonPropertyName("Area")]
|
|
public double Area { get; set; }
|
|
|
|
[JsonPropertyName("AveragePlayTime")]
|
|
public double AveragePlayTime { get; set; }
|
|
|
|
[JsonPropertyName("AveragePlayerLevel")]
|
|
public double AveragePlayerLevel { get; set; }
|
|
|
|
[JsonPropertyName("Banners")]
|
|
public List<Banner> Banners { get; set; }
|
|
|
|
[JsonPropertyName("BossLocationSpawn")]
|
|
public List<BossLocationSpawn> BossLocationSpawn { get; set; }
|
|
|
|
[JsonPropertyName("BotAssault")]
|
|
public int BotAssault { get; set; }
|
|
|
|
/** Weighting on how likely a bot will be Easy difficulty */
|
|
[JsonPropertyName("BotEasy")]
|
|
public int BotEasy { get; set; }
|
|
|
|
/** Weighting on how likely a bot will be Hard difficulty */
|
|
[JsonPropertyName("BotHard")]
|
|
public int BotHard { get; set; }
|
|
|
|
/** Weighting on how likely a bot will be Impossible difficulty */
|
|
[JsonPropertyName("BotImpossible")]
|
|
public int BotImpossible { get; set; }
|
|
|
|
[JsonPropertyName("BotLocationModifier")]
|
|
public BotLocationModifier BotLocationModifier { get; set; }
|
|
|
|
[JsonPropertyName("BotMarksman")]
|
|
public int BotMarksman { get; set; }
|
|
|
|
/** Maximum Number of bots that are currently alive/loading/delayed */
|
|
[JsonPropertyName("BotMax")]
|
|
public int BotMax { get; set; }
|
|
|
|
/** Is not used in 33420 */
|
|
[JsonPropertyName("BotMaxPlayer")]
|
|
public int BotMaxPlayer { get; set; }
|
|
|
|
/** Is not used in 33420 */
|
|
[JsonPropertyName("BotMaxTimePlayer")]
|
|
public int BotMaxTimePlayer { get; set; }
|
|
|
|
/** Does not even exist in the client in 33420 */
|
|
[JsonPropertyName("BotMaxPvE")]
|
|
public int BotMaxPvE { get; set; }
|
|
|
|
/** Weighting on how likely a bot will be Normal difficulty */
|
|
[JsonPropertyName("BotNormal")]
|
|
public int BotNormal { get; set; }
|
|
|
|
/** How many bot slots that need to be open before trying to spawn new bots. */
|
|
[JsonPropertyName("BotSpawnCountStep")]
|
|
public int BotSpawnCountStep { get; set; }
|
|
|
|
/** How often to check if bots are spawn-able. In seconds */
|
|
[JsonPropertyName("BotSpawnPeriodCheck")]
|
|
public int BotSpawnPeriodCheck { get; set; }
|
|
|
|
/** The bot spawn will toggle on and off in intervals of Off(Min/Max) and On(Min/Max) */
|
|
[JsonPropertyName("BotSpawnTimeOffMax")]
|
|
public int BotSpawnTimeOffMax { get; set; }
|
|
|
|
[JsonPropertyName("BotSpawnTimeOffMin")]
|
|
public int BotSpawnTimeOffMin { get; set; }
|
|
|
|
[JsonPropertyName("BotSpawnTimeOnMax")]
|
|
public int BotSpawnTimeOnMax { get; set; }
|
|
|
|
[JsonPropertyName("BotSpawnTimeOnMin")]
|
|
public int BotSpawnTimeOnMin { get; set; }
|
|
|
|
/** How soon bots will be allowed to spawn */
|
|
[JsonPropertyName("BotStart")]
|
|
public int BotStart { get; set; }
|
|
|
|
/** After this long bots will no longer spawn */
|
|
[JsonPropertyName("BotStop")]
|
|
public int BotStop { get; set; }
|
|
|
|
[JsonPropertyName("Description")]
|
|
public string Description { get; set; }
|
|
|
|
[JsonPropertyName("DisabledForScav")]
|
|
public bool DisabledForScav { get; set; }
|
|
|
|
[JsonPropertyName("DisabledScavExits")]
|
|
public string DisabledScavExits { get; set; }
|
|
|
|
[JsonPropertyName("Enabled")]
|
|
public bool Enabled { get; set; }
|
|
|
|
[JsonPropertyName("EnableCoop")]
|
|
public bool EnableCoop { get; set; }
|
|
|
|
[JsonPropertyName("GlobalLootChanceModifier")]
|
|
public double GlobalLootChanceModifier { get; set; }
|
|
|
|
[JsonPropertyName("GlobalLootChanceModifierPvE")]
|
|
public double GlobalLootChanceModifierPvE { get; set; }
|
|
|
|
[JsonPropertyName("GlobalContainerChanceModifier")]
|
|
public double GlobalContainerChanceModifier { get; set; }
|
|
|
|
[JsonPropertyName("IconX")]
|
|
public double IconX { get; set; }
|
|
|
|
[JsonPropertyName("IconY")]
|
|
public double IconY { get; set; }
|
|
|
|
[JsonPropertyName("Id")]
|
|
public string Id { get; set; }
|
|
|
|
[JsonPropertyName("Insurance")]
|
|
public bool Insurance { get; set; }
|
|
|
|
[JsonPropertyName("IsSecret")]
|
|
public bool IsSecret { get; set; }
|
|
|
|
[JsonPropertyName("Locked")]
|
|
public bool Locked { get; set; }
|
|
|
|
[JsonPropertyName("Loot")]
|
|
public List<SpawnpointTemplate> Loot { get; set; }
|
|
|
|
[JsonPropertyName("MatchMakerMinPlayersByWaitTime")]
|
|
public List<MinPlayerWaitTime> MatchMakerMinPlayersByWaitTime { get; set; }
|
|
|
|
[JsonPropertyName("MaxBotPerZone")]
|
|
public int MaxBotPerZone { get; set; }
|
|
|
|
[JsonPropertyName("MaxDistToFreePoint")]
|
|
public int MaxDistToFreePoint { get; set; }
|
|
|
|
[JsonPropertyName("MaxPlayers")]
|
|
public int MaxPlayers { get; set; }
|
|
|
|
[JsonPropertyName("MinDistToExitPoint")]
|
|
public double MinDistToExitPoint { get; set; }
|
|
|
|
[JsonPropertyName("MinDistToFreePoint")]
|
|
public double MinDistToFreePoint { get; set; }
|
|
|
|
[JsonPropertyName("MinMaxBots")]
|
|
public List<MinMaxBot> MinMaxBots { get; set; }
|
|
|
|
[JsonPropertyName("MinPlayers")]
|
|
public int MinPlayers { get; set; }
|
|
|
|
[JsonPropertyName("MaxCoopGroup")]
|
|
public int MaxCoopGroup { get; set; }
|
|
|
|
[JsonPropertyName("Name")]
|
|
public string Name { get; set; }
|
|
|
|
[JsonPropertyName("NonWaveGroupScenario")]
|
|
public NonWaveGroupScenario NonWaveGroupScenario { get; set; }
|
|
|
|
[JsonPropertyName("NewSpawn")]
|
|
public bool NewSpawn { get; set; }
|
|
|
|
[JsonPropertyName("OcculsionCullingEnabled")]
|
|
public bool OcculsionCullingEnabled { get; set; }
|
|
|
|
[JsonPropertyName("OldSpawn")]
|
|
public bool OldSpawn { get; set; }
|
|
|
|
[JsonPropertyName("OpenZones")]
|
|
public string OpenZones { get; set; }
|
|
|
|
[JsonPropertyName("Preview")]
|
|
public Preview Preview { get; set; }
|
|
|
|
[JsonPropertyName("PlayersRequestCount")]
|
|
public int PlayersRequestCount { get; set; }
|
|
|
|
[JsonPropertyName("RequiredPlayerLevel")]
|
|
public int? RequiredPlayerLevel { get; set; }
|
|
|
|
[JsonPropertyName("RequiredPlayerLevelMin")]
|
|
public int? RequiredPlayerLevelMin { get; set; }
|
|
|
|
[JsonPropertyName("RequiredPlayerLevelMax")]
|
|
public int? RequiredPlayerLevelMax { get; set; }
|
|
|
|
[JsonPropertyName("MinPlayerLvlAccessKeys")]
|
|
public int MinPlayerLvlAccessKeys { get; set; }
|
|
|
|
[JsonPropertyName("PmcMaxPlayersInGroup")]
|
|
public int PmcMaxPlayersInGroup { get; set; }
|
|
|
|
[JsonPropertyName("ScavMaxPlayersInGroup")]
|
|
public int ScavMaxPlayersInGroup { get; set; }
|
|
|
|
[JsonPropertyName("Rules")]
|
|
public string Rules { get; set; }
|
|
|
|
[JsonPropertyName("SafeLocation")]
|
|
public bool SafeLocation { get; set; }
|
|
|
|
[JsonPropertyName("Scene")]
|
|
public Scene Scene { get; set; }
|
|
|
|
[JsonPropertyName("SpawnPointParams")]
|
|
public List<SpawnPointParam> SpawnPointParams { get; set; }
|
|
|
|
[JsonPropertyName("UnixDateTime")]
|
|
public long UnixDateTime { get; set; }
|
|
|
|
[JsonPropertyName("_Id")]
|
|
public string IdField { get; set; }
|
|
|
|
[JsonPropertyName("doors")]
|
|
public List<object> Doors { get; set; }
|
|
|
|
[JsonPropertyName("EscapeTimeLimit")]
|
|
public int EscapeTimeLimit { get; set; }
|
|
|
|
[JsonPropertyName("EscapeTimeLimitCoop")]
|
|
public int EscapeTimeLimitCoop { get; set; }
|
|
|
|
[JsonPropertyName("EscapeTimeLimitPVE")]
|
|
public int EscapeTimeLimitPVE { get; set; }
|
|
|
|
[JsonPropertyName("Events")]
|
|
public LocationEvents Events { get; set; }
|
|
|
|
[JsonPropertyName("exit_access_time")]
|
|
public int ExitAccessTime { get; set; }
|
|
|
|
[JsonPropertyName("ForceOnlineRaidInPVE")]
|
|
public bool ForceOnlineRaidInPVE { get; set; }
|
|
|
|
[JsonPropertyName("exit_count")]
|
|
public int ExitCount { get; set; }
|
|
|
|
[JsonPropertyName("exit_time")]
|
|
public int ExitTime { get; set; }
|
|
|
|
[JsonPropertyName("exits")]
|
|
public List<Exit> Exits { get; set; }
|
|
|
|
[JsonPropertyName("filter_ex")]
|
|
public List<string> FilterEx { get; set; }
|
|
|
|
[JsonPropertyName("limits")]
|
|
public List<Limit> Limits { get; set; }
|
|
|
|
[JsonPropertyName("matching_min_seconds")]
|
|
public int MatchingMinSeconds { get; set; }
|
|
|
|
[JsonPropertyName("GenerateLocalLootCache")]
|
|
public bool GenerateLocalLootCache { get; set; }
|
|
|
|
[JsonPropertyName("maxItemCountInLocation")]
|
|
public List<MaxItemCountInLocation> MaxItemCountInLocation { get; set; }
|
|
|
|
[JsonPropertyName("sav_summon_seconds")]
|
|
public int SavSummonSeconds { get; set; }
|
|
|
|
[JsonPropertyName("tmp_location_field_remove_me")]
|
|
public int TmpLocationFieldRemoveMe { get; set; }
|
|
|
|
[JsonPropertyName("transits")]
|
|
public List<Transit> Transits { get; set; }
|
|
|
|
[JsonPropertyName("users_gather_seconds")]
|
|
public int UsersGatherSeconds { get; set; }
|
|
|
|
[JsonPropertyName("users_spawn_seconds_n")]
|
|
public int UsersSpawnSecondsN { get; set; }
|
|
|
|
[JsonPropertyName("users_spawn_seconds_n2")]
|
|
public int UsersSpawnSecondsN2 { get; set; }
|
|
|
|
[JsonPropertyName("users_summon_seconds")]
|
|
public int UsersSummonSeconds { get; set; }
|
|
|
|
[JsonPropertyName("waves")]
|
|
public List<Wave> Waves { get; set; }
|
|
}
|
|
|
|
public class Transit {
|
|
[JsonPropertyName("activateAfterSec")]
|
|
public int ActivateAfterSeconds { get; set; } // TODO: Int in client
|
|
|
|
[JsonPropertyName("active")]
|
|
public bool IsActive { get; set; }
|
|
|
|
[JsonPropertyName("name")]
|
|
public string Name { get; set; }
|
|
|
|
[JsonPropertyName("conditions")]
|
|
public string Conditions { get; set; }
|
|
|
|
[JsonPropertyName("description")]
|
|
public string Description { get; set; }
|
|
|
|
[JsonPropertyName("id")]
|
|
public int Id { get; set; }
|
|
|
|
[JsonPropertyName("location")]
|
|
public string Location { get; set; }
|
|
|
|
[JsonPropertyName("target")]
|
|
public string Target { get; set; }
|
|
|
|
[JsonPropertyName("time")]
|
|
public int Time { get; set; }
|
|
}
|
|
|
|
public class NonWaveGroupScenario {
|
|
[JsonPropertyName("Chance")]
|
|
public double Chance { get; set; }
|
|
|
|
[JsonPropertyName("Enabled")]
|
|
public bool IsEnabled { get; set; }
|
|
|
|
[JsonPropertyName("MaxToBeGroup")]
|
|
public int MaximumToBeGrouped { get; set; }
|
|
|
|
[JsonPropertyName("MinToBeGroup")]
|
|
public int MinimumToBeGrouped { get; set; }
|
|
}
|
|
|
|
public class Limit : MinMax {
|
|
[JsonPropertyName("items")]
|
|
public object[] Items { get; set; } // TODO: was on TS any[] hmmm..
|
|
|
|
[JsonPropertyName("min")]
|
|
public int Min { get; set; }
|
|
|
|
[JsonPropertyName("max")]
|
|
public int Max { get; set; }
|
|
}
|
|
|
|
public class AirdropParameter {
|
|
[JsonPropertyName("AirdropPointDeactivateDistance")]
|
|
public int AirdropPointDeactivateDistance { get; set; }
|
|
|
|
[JsonPropertyName("MinPlayersCountToSpawnAirdrop")]
|
|
public int MinimumPlayersCountToSpawnAirdrop { get; set; }
|
|
|
|
[JsonPropertyName("PlaneAirdropChance")]
|
|
public double PlaneAirdropChance { get; set; }
|
|
|
|
[JsonPropertyName("PlaneAirdropCooldownMax")]
|
|
public int PlaneAirdropCooldownMax { get; set; }
|
|
|
|
[JsonPropertyName("PlaneAirdropCooldownMin")]
|
|
public int PlaneAirdropCooldownMin { get; set; }
|
|
|
|
[JsonPropertyName("PlaneAirdropEnd")]
|
|
public int PlaneAirdropEnd { get; set; }
|
|
|
|
[JsonPropertyName("PlaneAirdropMax")]
|
|
public int PlaneAirdropMax { get; set; }
|
|
|
|
[JsonPropertyName("PlaneAirdropStartMax")]
|
|
public int PlaneAirdropStartMax { get; set; }
|
|
|
|
[JsonPropertyName("PlaneAirdropStartMin")]
|
|
public int PlaneAirdropStartMin { get; set; }
|
|
|
|
[JsonPropertyName("UnsuccessfulTryPenalty")]
|
|
public int UnsuccessfulTryPenalty { get; set; }
|
|
}
|
|
|
|
public class Banner {
|
|
[JsonPropertyName("id")]
|
|
public string Id { get; set; }
|
|
|
|
[JsonPropertyName("pic")]
|
|
public Pic Picture { get; set; }
|
|
}
|
|
|
|
public class Pic {
|
|
[JsonPropertyName("path")]
|
|
public string Path { get; set; }
|
|
|
|
[JsonPropertyName("rcid")]
|
|
public string Rcid { get; set; }
|
|
}
|
|
|
|
public class BossLocationSpawn {
|
|
[JsonPropertyName("BossChance")]
|
|
public double BossChance { get; set; }
|
|
|
|
[JsonPropertyName("BossDifficult")]
|
|
public string BossDifficulty { get; set; }
|
|
|
|
[JsonPropertyName("BossEscortAmount")]
|
|
public string BossEscortAmount { get; set; }
|
|
|
|
[JsonPropertyName("BossEscortDifficult")]
|
|
public string BossEscortDifficulty { get; set; }
|
|
|
|
[JsonPropertyName("BossEscortType")]
|
|
public string BossEscortType { get; set; }
|
|
|
|
[JsonPropertyName("BossName")]
|
|
public string BossName { get; set; }
|
|
|
|
[JsonPropertyName("BossPlayer")]
|
|
public bool IsBossPlayer { get; set; }
|
|
|
|
[JsonPropertyName("BossZone")]
|
|
public string BossZone { get; set; }
|
|
|
|
[JsonPropertyName("RandomTimeSpawn")]
|
|
public bool IsRandomTimeSpawn { get; set; }
|
|
|
|
[JsonPropertyName("Time")]
|
|
public double Time { get; set; }
|
|
|
|
[JsonPropertyName("TriggerId")]
|
|
public string TriggerId { get; set; }
|
|
|
|
[JsonPropertyName("TriggerName")]
|
|
public string TriggerName { get; set; }
|
|
|
|
[JsonPropertyName("Delay")]
|
|
public double? Delay { get; set; }
|
|
|
|
[JsonPropertyName("DependKarma")]
|
|
public bool? DependKarma { get; set; }
|
|
|
|
[JsonPropertyName("DependKarmaPVE")]
|
|
public bool? DependKarmaPVE { get; set; }
|
|
|
|
[JsonPropertyName("ForceSpawn")]
|
|
public bool? ForceSpawn { get; set; }
|
|
|
|
[JsonPropertyName("IgnoreMaxBots")]
|
|
public bool? IgnoreMaxBots { get; set; }
|
|
|
|
[JsonPropertyName("Supports")]
|
|
public BossSupport[] Supports { get; set; }
|
|
|
|
[JsonPropertyName("sptId")]
|
|
public string SptId { get; set; }
|
|
|
|
[JsonPropertyName("spawnMode")]
|
|
public string[] SpawnMode { get; set; }
|
|
}
|
|
|
|
public class BossSupport {
|
|
[JsonPropertyName("BossEscortAmount")]
|
|
public string BossEscortAmount { get; set; }
|
|
|
|
[JsonPropertyName("BossEscortDifficult")]
|
|
public string[] BossEscortDifficulty { get; set; }
|
|
|
|
[JsonPropertyName("BossEscortType")]
|
|
public string BossEscortType { get; set; }
|
|
}
|
|
|
|
public class BotLocationModifier {
|
|
[JsonPropertyName("AccuracySpeed")]
|
|
public double AccuracySpeed { get; set; }
|
|
|
|
[JsonPropertyName("AdditionalHostilitySettings")]
|
|
public AdditionalHostilitySettings[] AdditionalHostilitySettings { get; set; }
|
|
|
|
[JsonPropertyName("DistToActivate")]
|
|
public double DistanceToActivate { get; set; }
|
|
|
|
[JsonPropertyName("DistToActivatePvE")]
|
|
public double DistanceToActivatePvE { get; set; }
|
|
|
|
[JsonPropertyName("DistToPersueAxemanCoef")]
|
|
public double DistanceToPursueAxemanCoefficient { get; set; }
|
|
|
|
[JsonPropertyName("DistToSleep")]
|
|
public double DistanceToSleep { get; set; }
|
|
|
|
[JsonPropertyName("DistToSleepPvE")]
|
|
public double DistanceToSleepPvE { get; set; }
|
|
|
|
[JsonPropertyName("GainSight")]
|
|
public double GainSight { get; set; }
|
|
|
|
[JsonPropertyName("KhorovodChance")]
|
|
public double KhorovodChance { get; set; }
|
|
|
|
[JsonPropertyName("MagnetPower")]
|
|
public double MagnetPower { get; set; }
|
|
|
|
[JsonPropertyName("MarksmanAccuratyCoef")]
|
|
public double MarksmanAccuracyCoefficient { get; set; }
|
|
|
|
[JsonPropertyName("Scattering")]
|
|
public double Scattering { get; set; }
|
|
|
|
[JsonPropertyName("VisibleDistance")]
|
|
public double VisibleDistance { get; set; }
|
|
|
|
[JsonPropertyName("MaxExfiltrationTime")]
|
|
public double MaxExfiltrationTime { get; set; }
|
|
|
|
[JsonPropertyName("MinExfiltrationTime")]
|
|
public double MinExfiltrationTime { get; set; }
|
|
}
|
|
|
|
public class AdditionalHostilitySettings
|
|
{
|
|
[JsonPropertyName("AlwaysEnemies")]
|
|
public List<string> AlwaysEnemies { get; set; }
|
|
|
|
[JsonPropertyName("AlwaysFriends")]
|
|
public List<string> AlwaysFriends { get; set; }
|
|
|
|
[JsonPropertyName("BearEnemyChance")]
|
|
public int BearEnemyChance { get; set; }
|
|
|
|
[JsonPropertyName("BearPlayerBehaviour")]
|
|
public string BearPlayerBehaviour { get; set; }
|
|
|
|
[JsonPropertyName("BotRole")]
|
|
public string BotRole { get; set; }
|
|
|
|
[JsonPropertyName("ChancedEnemies")]
|
|
public List<ChancedEnemy> ChancedEnemies { get; set; }
|
|
|
|
[JsonPropertyName("Neutral")]
|
|
public List<string> Neutral { get; set; }
|
|
|
|
[JsonPropertyName("SavagePlayerBehaviour")]
|
|
public string SavagePlayerBehaviour { get; set; }
|
|
|
|
[JsonPropertyName("SavageEnemyChance")]
|
|
public int? SavageEnemyChance { get; set; }
|
|
|
|
[JsonPropertyName("UsecEnemyChance")]
|
|
public int UsecEnemyChance { get; set; }
|
|
|
|
[JsonPropertyName("UsecPlayerBehaviour")]
|
|
public string UsecPlayerBehaviour { get; set; }
|
|
|
|
[JsonPropertyName("Warn")]
|
|
public List<string> Warn { get; set; }
|
|
}
|
|
|
|
public class ChancedEnemy
|
|
{
|
|
[JsonPropertyName("EnemyChance")]
|
|
public int EnemyChance { get; set; }
|
|
|
|
[JsonPropertyName("Role")]
|
|
public string Role { get; set; }
|
|
}
|
|
|
|
public class MinMaxBot : MinMax
|
|
{
|
|
[JsonPropertyName("WildSpawnType")]
|
|
public object WildSpawnType { get; set; } // TODO: Could be WildSpawnType or string
|
|
}
|
|
|
|
public class MinPlayerWaitTime
|
|
{
|
|
[JsonPropertyName("minPlayers")]
|
|
public int MinPlayers { get; set; }
|
|
|
|
[JsonPropertyName("time")]
|
|
public int Time { get; set; }
|
|
}
|
|
|
|
public class Preview
|
|
{
|
|
[JsonPropertyName("path")]
|
|
public string Path { get; set; }
|
|
|
|
[JsonPropertyName("rcid")]
|
|
public string Rcid { get; set; }
|
|
}
|
|
|
|
public class Scene
|
|
{
|
|
[JsonPropertyName("path")]
|
|
public string Path { get; set; }
|
|
|
|
[JsonPropertyName("rcid")]
|
|
public string Rcid { get; set; }
|
|
}
|
|
|
|
public class SpawnPointParam
|
|
{
|
|
[JsonPropertyName("BotZoneName")]
|
|
public string BotZoneName { get; set; }
|
|
|
|
[JsonPropertyName("Categories")]
|
|
public List<string> Categories { get; set; }
|
|
|
|
[JsonPropertyName("ColliderParams")]
|
|
public ColliderParams ColliderParams { get; set; }
|
|
|
|
[JsonPropertyName("CorePointId")]
|
|
public int CorePointId { get; set; }
|
|
|
|
[JsonPropertyName("DelayToCanSpawnSec")]
|
|
public double DelayToCanSpawnSec { get; set; }
|
|
|
|
[JsonPropertyName("Id")]
|
|
public string Id { get; set; }
|
|
|
|
[JsonPropertyName("Infiltration")]
|
|
public string Infiltration { get; set; }
|
|
|
|
[JsonPropertyName("Position")]
|
|
public XYZ Position { get; set; }
|
|
|
|
[JsonPropertyName("Rotation")]
|
|
public float Rotation { get; set; }
|
|
|
|
[JsonPropertyName("Sides")]
|
|
public List<string> Sides { get; set; }
|
|
}
|
|
|
|
public class ColliderParams
|
|
{
|
|
[JsonPropertyName("_parent")]
|
|
public string Parent { get; set; }
|
|
|
|
[JsonPropertyName("_props")]
|
|
public Props Props { get; set; }
|
|
}
|
|
|
|
public class Props
|
|
{
|
|
[JsonPropertyName("Center")]
|
|
public XYZ Center { get; set; }
|
|
|
|
[JsonPropertyName("Radius")]
|
|
public float Radius { get; set; }
|
|
}
|
|
|
|
public class Exit
|
|
{
|
|
/** % Chance out of 100 exit will appear in raid */
|
|
[JsonPropertyName("Chance")]
|
|
public double Chance { get; set; }
|
|
|
|
[JsonPropertyName("ChancePVE")]
|
|
public int ChancePVE { get; set; }
|
|
|
|
[JsonPropertyName("Count")]
|
|
public int Count { get; set; }
|
|
|
|
[JsonPropertyName("CountPVE")]
|
|
public int CountPVE { get; set; }
|
|
|
|
[JsonPropertyName("EntryPoints")]
|
|
public string EntryPoints { get; set; }
|
|
|
|
[JsonPropertyName("EventAvailable")]
|
|
public bool EventAvailable { get; set; }
|
|
|
|
[JsonPropertyName("ExfiltrationTime")]
|
|
public double ExfiltrationTime { get; set; }
|
|
|
|
[JsonPropertyName("ExfiltrationTimePVE")]
|
|
public float ExfiltrationTimePVE { get; set; }
|
|
|
|
[JsonPropertyName("ExfiltrationType")]
|
|
public string ExfiltrationType { get; set; }
|
|
|
|
[JsonPropertyName("RequiredSlot")]
|
|
public string RequiredSlot { get; set; }
|
|
|
|
[JsonPropertyName("Id")]
|
|
public string Id { get; set; }
|
|
|
|
[JsonPropertyName("MaxTime")]
|
|
public double MaxTime { get; set; }
|
|
|
|
[JsonPropertyName("MaxTimePVE")]
|
|
public double MaxTimePVE { get; set; }
|
|
|
|
[JsonPropertyName("MinTime")]
|
|
public double MinTime { get; set; }
|
|
|
|
[JsonPropertyName("MinTimePVE")]
|
|
public double MinTimePVE { get; set; }
|
|
|
|
[JsonPropertyName("Name")]
|
|
public string Name { get; set; }
|
|
|
|
[JsonPropertyName("PassageRequirement")]
|
|
public string PassageRequirement { get; set; }
|
|
|
|
[JsonPropertyName("PlayersCount")]
|
|
public int PlayersCount { get; set; }
|
|
|
|
[JsonPropertyName("PlayersCountPVE")]
|
|
public int PlayersCountPVE { get; set; }
|
|
|
|
[JsonPropertyName("RequirementTip")]
|
|
public string RequirementTip { get; set; }
|
|
|
|
[JsonPropertyName("Side")]
|
|
public string Side { get; set; }
|
|
}
|
|
|
|
public class MaxItemCountInLocation
|
|
{
|
|
[JsonPropertyName("TemplateId")]
|
|
public string TemplateId { get; set; }
|
|
|
|
[JsonPropertyName("Value")]
|
|
public int Value { get; set; }
|
|
}
|
|
|
|
public class Wave
|
|
{
|
|
[JsonPropertyName("BotPreset")]
|
|
public string BotPreset { get; set; }
|
|
|
|
[JsonPropertyName("BotSide")]
|
|
public string BotSide { get; set; }
|
|
|
|
[JsonPropertyName("SpawnPoints")]
|
|
public string SpawnPoints { get; set; }
|
|
|
|
[JsonPropertyName("WildSpawnType")]
|
|
public WildSpawnType WildSpawnType { get; set; }
|
|
|
|
[JsonPropertyName("isPlayers")]
|
|
public bool IsPlayers { get; set; }
|
|
|
|
[JsonPropertyName("number")]
|
|
public int Number { get; set; }
|
|
|
|
[JsonPropertyName("slots_max")]
|
|
public int SlotsMax { get; set; }
|
|
|
|
[JsonPropertyName("slots_min")]
|
|
public int SlotsMin { get; set; }
|
|
|
|
[JsonPropertyName("time_max")]
|
|
public int TimeMax { get; set; }
|
|
|
|
[JsonPropertyName("time_min")]
|
|
public int TimeMin { get; set; }
|
|
|
|
/** OPTIONAL - Needs to be unique - Used by custom wave service to ensure same wave isnt added multiple times */
|
|
[JsonPropertyName("sptId")]
|
|
public string? SptId { get; set; }
|
|
|
|
[JsonPropertyName("ChanceGroup")]
|
|
public int? ChanceGroup { get; set; }
|
|
|
|
/** 'pve' and/or 'regular' */
|
|
[JsonPropertyName("SpawnMode")]
|
|
public List<string> SpawnMode { get; set; }
|
|
}
|
|
|
|
public class LocationEvents
|
|
{
|
|
[JsonPropertyName("Halloween2024")]
|
|
public Halloween2024 Halloween2024 { get; set; }
|
|
}
|
|
|
|
public class Halloween2024
|
|
{
|
|
[JsonPropertyName("CrowdAttackBlockRadius")]
|
|
public int CrowdAttackBlockRadius { get; set; }
|
|
|
|
[JsonPropertyName("CrowdAttackSpawnParams")]
|
|
public List<CrowdAttackSpawnParam> CrowdAttackSpawnParams { get; set; }
|
|
|
|
[JsonPropertyName("CrowdCooldownPerPlayerSec")]
|
|
public int CrowdCooldownPerPlayerSec { get; set; }
|
|
|
|
[JsonPropertyName("CrowdsLimit")]
|
|
public int CrowdsLimit { get; set; }
|
|
|
|
[JsonPropertyName("InfectedLookCoeff")]
|
|
public double InfectedLookCoeff { get; set; }
|
|
|
|
[JsonPropertyName("MaxCrowdAttackSpawnLimit")]
|
|
public int MaxCrowdAttackSpawnLimit { get; set; }
|
|
|
|
[JsonPropertyName("MinInfectionPercentage")]
|
|
public double MinInfectionPercentage { get; set; }
|
|
|
|
[JsonPropertyName("MinSpawnDistToPlayer")]
|
|
public double MinSpawnDistToPlayer { get; set; }
|
|
|
|
[JsonPropertyName("TargetPointSearchRadiusLimit")]
|
|
public double TargetPointSearchRadiusLimit { get; set; }
|
|
|
|
[JsonPropertyName("ZombieCallDeltaRadius")]
|
|
public double ZombieCallDeltaRadius { get; set; }
|
|
|
|
[JsonPropertyName("ZombieCallPeriodSec")]
|
|
public int ZombieCallPeriodSec { get; set; }
|
|
|
|
[JsonPropertyName("ZombieCallRadiusLimit")]
|
|
public double ZombieCallRadiusLimit { get; set; }
|
|
|
|
[JsonPropertyName("ZombieMultiplier")]
|
|
public double ZombieMultiplier { get; set; }
|
|
|
|
[JsonPropertyName("InfectionPercentage")]
|
|
public double InfectionPercentage { get; set; }
|
|
}
|
|
|
|
public class CrowdAttackSpawnParam
|
|
{
|
|
[JsonPropertyName("Difficulty")]
|
|
public string Difficulty { get; set; }
|
|
|
|
[JsonPropertyName("Role")]
|
|
public string Role { get; set; }
|
|
|
|
[JsonPropertyName("Weight")]
|
|
public int Weight { get; set; }
|
|
}
|
|
|
|
public enum WildSpawnType
|
|
{
|
|
assault,
|
|
marksman,
|
|
pmcbot,
|
|
bosskilla,
|
|
bossknight
|
|
} |