Files
SPT-Server-Build/Core/Models/Eft/Common/Tables/RepeatableQuests.cs
T
2025-01-06 17:16:10 +00:00

230 lines
5.9 KiB
C#

using System.Text.Json.Serialization;
namespace Core.Models.Eft.Common.Tables;
public class RepeatableQuest : Quest
{
[JsonPropertyName("changeCost")]
public List<ChangeCost> ChangeCost { get; set; }
[JsonPropertyName("changeStandingCost")]
public int ChangeStandingCost { get; set; }
[JsonPropertyName("sptRepatableGroupName")]
public string SptRepatableGroupName { get; set; }
[JsonPropertyName("acceptanceAndFinishingSource")]
public string AcceptanceAndFinishingSource { get; set; }
[JsonPropertyName("progressSource")]
public string ProgressSource { get; set; }
[JsonPropertyName("rankingModes")]
public List<string> RankingModes { get; set; }
[JsonPropertyName("gameModes")]
public List<string> GameModes { get; set; }
[JsonPropertyName("arenaLocations")]
public List<string> ArenaLocations { get; set; }
[JsonPropertyName("questStatus")]
public RepeatableQuestStatus QuestStatus { get; set; }
}
public class RepeatableQuestDatabase
{
[JsonPropertyName("templates")]
public RepeatableTemplates Templates { get; set; }
[JsonPropertyName("rewards")]
public RewardOptions Rewards { get; set; }
[JsonPropertyName("data")]
public Options Data { get; set; }
[JsonPropertyName("samples")]
public List<SampleQuests> Samples { get; set; }
}
public class RepeatableQuestStatus
{
[JsonPropertyName("id")]
public string Id { get; set; }
[JsonPropertyName("uid")]
public string Uid { get; set; }
[JsonPropertyName("qid")]
public string Qid { get; set; }
[JsonPropertyName("startTime")]
public long StartTime { get; set; }
[JsonPropertyName("status")]
public int Status { get; set; }
[JsonPropertyName("statusTimers")]
public object StatusTimers { get; set; } // Use object for any type
}
public class RepeatableTemplates
{
[JsonPropertyName("Elimination")]
public Quest Elimination { get; set; }
[JsonPropertyName("Completion")]
public Quest Completion { get; set; }
[JsonPropertyName("Exploration")]
public Quest Exploration { get; set; }
}
public class PmcDataRepeatableQuest
{
[JsonPropertyName("id")]
public string? Id { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("unavailableTime")]
public string? UnavailableTime { get; set; }
[JsonPropertyName("activeQuests")]
public List<RepeatableQuest> ActiveQuests { get; set; }
[JsonPropertyName("inactiveQuests")]
public List<RepeatableQuest> InactiveQuests { get; set; }
[JsonPropertyName("endTime")]
public long EndTime { get; set; }
[JsonPropertyName("changeRequirement")]
public Dictionary<string, ChangeRequirement> ChangeRequirement { get; set; }
[JsonPropertyName("freeChanges")]
public int FreeChanges { get; set; }
[JsonPropertyName("freeChangesAvailable")]
public int FreeChangesAvailable { get; set; }
}
public class ChangeRequirement
{
[JsonPropertyName("changeCost")]
public List<ChangeCost> ChangeCost { get; set; }
[JsonPropertyName("changeStandingCost")]
public int ChangeStandingCost { get; set; }
}
public class ChangeCost
{
[JsonPropertyName("templateId")]
public string TemplateId { get; set; }
[JsonPropertyName("count")]
public int Count { get; set; }
}
// Config Options
public class RewardOptions
{
[JsonPropertyName("itemsBlacklist")]
public List<string> ItemsBlacklist { get; set; }
}
public class Options
{
[JsonPropertyName("Completion")]
public CompletionFilter Completion { get; set; }
}
public class CompletionFilter
{
[JsonPropertyName("itemsBlacklist")]
public List<ItemsBlacklist> ItemsBlacklist { get; set; }
[JsonPropertyName("itemsWhitelist")]
public List<ItemsWhitelist> ItemsWhitelist { get; set; }
}
public class ItemsBlacklist
{
[JsonPropertyName("minPlayerLevel")]
public int MinPlayerLevel { get; set; }
[JsonPropertyName("itemIds")]
public List<string> ItemIds { get; set; }
}
public class ItemsWhitelist
{
[JsonPropertyName("minPlayerLevel")]
public int MinPlayerLevel { get; set; }
[JsonPropertyName("itemIds")]
public List<string> ItemIds { get; set; }
}
public class SampleQuests
{
[JsonPropertyName("_id")]
public string Id { get; set; }
[JsonPropertyName("traderId")]
public string TraderId { get; set; }
[JsonPropertyName("location")]
public string Location { get; set; }
[JsonPropertyName("image")]
public string Image { get; set; }
[JsonPropertyName("type")]
public string Type { get; set; }
[JsonPropertyName("isKey")]
public bool IsKey { get; set; }
[JsonPropertyName("restartable")]
public bool Restartable { get; set; }
[JsonPropertyName("instantComplete")]
public bool InstantComplete { get; set; }
[JsonPropertyName("secretQuest")]
public bool SecretQuest { get; set; }
[JsonPropertyName("canShowNotificationsInGame")]
public bool CanShowNotificationsInGame { get; set; }
[JsonPropertyName("rewards")]
public QuestRewards Rewards { get; set; }
[JsonPropertyName("conditions")]
public QuestConditionTypes Conditions { get; set; }
[JsonPropertyName("name")]
public string Name { get; set; }
[JsonPropertyName("note")]
public string Note { get; set; }
[JsonPropertyName("description")]
public string Description { get; set; }
[JsonPropertyName("successMessageText")]
public string SuccessMessageText { get; set; }
[JsonPropertyName("failMessageText")]
public string FailMessageText { get; set; }
[JsonPropertyName("startedMessageText")]
public string StartedMessageText { get; set; }
[JsonPropertyName("templateId")]
public string TemplateId { get; set; }
}