2
0
mirror of https://github.com/9ParsonsB/Pulsar.git synced 2025-07-01 08:23:42 -04:00

ready for testing

This commit is contained in:
Xjph
2024-01-21 13:35:03 -03:30
parent 86cd7fe3e4
commit b8f5f6a73e
92 changed files with 3061 additions and 1186 deletions

View File

@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Text.Json;
using System.Threading.Tasks;
using System.Reflection.Metadata.Ecma335;
namespace Observatory.Framework.Files.Converters
{
class ThargoidWarRemainingTimeConverter : JsonConverter<int>
{
public override int Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.String)
{
string value = reader.GetString();
int dayCount = Int32.TryParse(value.Split(' ')[0], out int days)
? days
: 0;
return dayCount;
}
else
return reader.GetInt32();
}
public override void Write(Utf8JsonWriter writer, int value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString() + " Days");
}
}
}

View File

@ -6,6 +6,8 @@ namespace Observatory.Framework.Files.Journal
public class Bounty : JournalBase
{
public ImmutableList<Rewards> Rewards { get; init; }
public string PilotName { get; set; }
public string PilotName_Localised { get; set; }
public string Target { get; init; }
public string Target_Localised { get; init; }
public string Faction { get; init; }

View File

@ -4,5 +4,6 @@
{
public string Interdictor { get; init; }
public bool IsPlayer { get; init; }
public bool IsThargoid { get; init; }
}
}

View File

@ -9,5 +9,6 @@
public int CombatRank { get; init; }
public string Faction { get; init; }
public string Power { get; init; }
public bool IsThargoid { get; init; }
}
}

View File

@ -14,6 +14,10 @@
/// </summary>
public string SignalName_Localised { get; init; }
/// <summary>
/// Type of signal location.
/// </summary>
public string SignalType { get; init; }
/// <summary>
/// Faction state or circumstance that caused this signal to appear.
/// </summary>
public string SpawningState { get; init; }

View File

@ -8,6 +8,10 @@ namespace Observatory.Framework.Files.Journal
public class CarrierJump : FSDJump
{
public bool Docked { get; init; }
public bool OnFoot { get; init; }
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StationType { get; init; }
public ulong MarketID { get; init; }

View File

@ -18,6 +18,9 @@ namespace Observatory.Framework.Files.Journal
public int BodyID { get; init; }
public bool OnStation { get; init; }
public bool OnPlanet { get; init; }
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StationType { get; init; }
public ulong MarketID { get; init; }

View File

@ -11,6 +11,8 @@ namespace Observatory.Framework.Files.Journal
public string Genus_Localised { get; init; }
public string Species { get; init; }
public string Species_Localised { get; init; }
public string Variant { get; init; }
public string Variant_Localised { get; init; }
public ulong SystemAddress { get; init; }
public int Body { get; init; }
}

View File

@ -1,4 +1,9 @@
namespace Observatory.Framework.Files.Journal
using Observatory.Framework.Files.Converters;
using Observatory.Framework.Files.ParameterTypes;
using System.Collections.Immutable;
using System.Text.Json.Serialization;
namespace Observatory.Framework.Files.Journal
{
public class ApproachSettlement : JournalBase
{
@ -10,5 +15,13 @@
public float Longitude { get; init; }
public int BodyID { get; init; }
public string BodyName { get; init; }
public ImmutableList<StationEconomy> StationEconomies { get; init; }
public string StationEconomy { get; init; }
public string StationEconomy_Localised { get; init; }
public Faction StationFaction { get; init; }
public string StationGovernment { get; init; }
public string StationGovernment_Localised { get; init; }
[JsonConverter(typeof(StationServiceConverter))]
public StationService StationServices { get; init; }
}
}

View File

@ -1,11 +1,27 @@
using Observatory.Framework.Files.ParameterTypes;
using System.Collections.Immutable;
using System.Text.Json.Serialization;
namespace Observatory.Framework.Files.Journal
{
public class Passengers : JournalBase
{
public ImmutableList<Passenger> Manifest { get; init; }
[JsonPropertyName("Passengers_Missions_Accepted")]
public int PassengersMissionsAccepted { get; init; }
[JsonPropertyName("Passengers_Missions_Bulk")]
public int PassengersMissionsBulk { get; init; }
[JsonPropertyName("Passengers_Missions_Delivered")]
public int PassengersMissionsDelivered { get; init; }
[JsonPropertyName("Passengers_Missions_Disgruntled")]
public int PassengersMissionsDisgruntled { get; init; }
[JsonPropertyName("Passengers_Missions_Ejected")]
public int PassengersMissionsEjected { get; init; }
[JsonPropertyName("Passengers_Missions_VIP")]
public int PassengersMissionsVip { get; init; }
}
}

View File

@ -27,5 +27,6 @@ namespace Observatory.Framework.Files.Journal
public CQC CQC { get; init; }
[JsonPropertyName("FLEETCARRIER")]
public FleetCarrier FleetCarrier { get; init; }
public Exobiology Exobiology { get; init; }
}
}

View File

@ -0,0 +1,11 @@
namespace Observatory.Framework.Files.Journal
{
public class ClearImpound : JournalBase
{
public string ShipType { get; init; }
public string ShipType_Localised { get; init; }
public ulong ShipID { get; init; }
public ulong ShipMarketID { get; init; }
public ulong MarketID { get; init; }
}
}

View File

@ -7,6 +7,9 @@ namespace Observatory.Framework.Files.Journal
public class Market : JournalBase
{
public ulong MarketID { get; init; }
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StationType { get; init; }
public string StarSystem { get; init; }

View File

@ -5,7 +5,7 @@ namespace Observatory.Framework.Files.Journal
{
public class MassModuleStore : JournalBase
{
public long MarketID { get; init; }
public ulong MarketID { get; init; }
public string Ship { get; init; }
public ulong ShipID { get; init; }
public ImmutableList<Item> Items { get; init; }

View File

@ -3,6 +3,9 @@
public class Outfitting : JournalBase
{
public ulong MarketID { get; init; }
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StarSystem { get; init; }
}

View File

@ -3,6 +3,9 @@
public class Shipyard : JournalBase
{
public ulong MarketID { get; init; }
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StarSystem { get; init; }
}

View File

@ -6,6 +6,9 @@ namespace Observatory.Framework.Files.Journal
public class StoredModules : JournalBase
{
public string StarSystem { get; init; }
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public ulong MarketID { get; init; }
public ImmutableList<StoredItem> Items { get; init; }

View File

@ -6,6 +6,9 @@ namespace Observatory.Framework.Files.Journal
public class StoredShips : JournalBase
{
public ulong MarketID { get; init; }
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StarSystem { get; init; }
public ImmutableList<StoredShip> ShipsHere { get; init; }

View File

@ -2,7 +2,7 @@
{
public class MarketBuy : JournalBase
{
public long MarketID { get; init; }
public ulong MarketID { get; init; }
public string Type { get; init; }
public string Type_Localised { get; init; }
public int Count { get; init; }

View File

@ -2,7 +2,7 @@
{
public class MarketSell : JournalBase
{
public long MarketID { get; init; }
public ulong MarketID { get; init; }
public string Type { get; init; }
public string Type_Localised { get; init; }
public int Count { get; init; }

View File

@ -7,12 +7,14 @@ namespace Observatory.Framework.Files.Journal
{
public class Docked : JournalBase
{
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StationType { get; init; }
public string StarSystem { get; init; }
public ulong SystemAddress { get; init; }
public long MarketID { get; init; }
public ulong MarketID { get; init; }
[JsonConverter(typeof(Converters.LegacyFactionConverter<Faction>))]
public Faction StationFaction { get; init; }

View File

@ -4,9 +4,12 @@ namespace Observatory.Framework.Files.Journal
{
public class DockingRequested : JournalBase
{
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StationType { get; init; }
public long MarketID { get; init; }
public ulong MarketID { get; init; }
public LandingPads LandingPads { get; init; }
}
}

View File

@ -49,5 +49,6 @@ namespace Observatory.Framework.Files.Journal
public string PowerplayState { get; init; }
public bool Taxi { get; init; }
public bool Multicrew { get; init; }
public ThargoidWar ThargoidWar { get; init; }
}
}

View File

@ -24,11 +24,14 @@ namespace Observatory.Framework.Files.Journal
//Stale Data, discard
}
}
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StationType { get; init; }
public float Longitude { get; init; }
public float Latitude { get; init; }
public long MarketID { get; init; }
public ulong MarketID { get; init; }
[JsonConverter(typeof(LegacyFactionConverter<Faction>))]
public Faction StationFaction { get; init; }
@ -68,5 +71,6 @@ namespace Observatory.Framework.Files.Journal
public bool Multicrew { get; init; }
public bool OnFoot { get; init; }
public bool InSRV { get; init; }
public ThargoidWar ThargoidWar { get; init; }
}
}

View File

@ -6,5 +6,6 @@
public string StarSystem { get; init; }
public ulong SystemAddress { get; init; }
public string StarClass { get; init; }
public bool Taxi { get; init; }
}
}

View File

@ -0,0 +1,9 @@
namespace Observatory.Framework.Files.Journal
{
public class SupercruiseDestinationDrop : JournalBase
{
public string Type { get; init; }
public int Threat { get; init; }
public ulong MarketID { get; init; }
}
}

View File

@ -6,5 +6,6 @@
public ulong SystemAddress { get; init; }
public bool Taxi { get; init; }
public bool Multicrew { get; init; }
public bool? Wanted { get; init; }
}
}

View File

@ -2,6 +2,9 @@
{
public class Undocked : JournalBase
{
/// <summary>
/// Name of the station at which this event occurred.
/// </summary>
public string StationName { get; init; }
public string StationType { get; init; }
public ulong MarketID { get; init; }

View File

@ -11,7 +11,7 @@ namespace Observatory.Framework.Files
/// <summary>
/// Unique ID of current market.
/// </summary>
public long MarketID { get; init; }
public ulong MarketID { get; init; }
/// <summary>
/// Name of the station where the market is located.
/// </summary>

View File

@ -11,7 +11,7 @@ namespace Observatory.Framework.Files
/// <summary>
/// Unique ID of current market.
/// </summary>
public long MarketID { get; init; }
public ulong MarketID { get; init; }
/// <summary>
/// Name of the station where the market is located.
/// </summary>

View File

@ -27,5 +27,21 @@ namespace Observatory.Framework.Files.ParameterTypes
[JsonPropertyName("Spent_On_Insurance")]
public long SpentOnInsurance { get; init; }
[JsonPropertyName("Owned_Ship_Count")]
public int OwnedShipCount { get; init; }
[JsonPropertyName("Premium_Stock_Bought")]
public int PremiumStockBought { get; init; }
[JsonPropertyName("Spent_On_Premium_Stock")]
public long SpentOnPremiumStock { get; init; }
[JsonPropertyName("Spent_On_Suit_Consumables")]
public long SpentOnSuitConsumables { get; init; }
[JsonPropertyName("Spent_On_Suits")]
public long SpentOnSuits { get; init; }
[JsonPropertyName("Spent_On_Weapons")]
public long SpentOnWeapons { get; init; }
[JsonPropertyName("Suits_Owned")]
public int SuitsOwned { get; init; }
[JsonPropertyName("Weapons_Owned")]
public int WeaponsOwned { get; init; }
}
}

View File

@ -6,6 +6,8 @@
public string Genus_Localised { get; init; }
public string Species { get; init; }
public string Species_Localised { get; init; }
public string Variant { get; init; }
public string Variant_Localised { get; init; }
public int Value { get; init; }
public int Bonus { get; init; }
}

View File

@ -26,5 +26,37 @@ namespace Observatory.Framework.Files.ParameterTypes
[JsonPropertyName("Skimmers_Killed")]
public int SkimmersKilled { get; init; }
[JsonPropertyName("ConflictZone_High")]
public int ConflictZoneHigh { get; init; }
[JsonPropertyName("ConflictZone_High_Wins")]
public int ConflictZoneHighWins { get; init; }
[JsonPropertyName("ConflictZone_Low")]
public int ConflictZoneLow { get; init; }
[JsonPropertyName("ConflictZone_Low_Wins")]
public int ConflictZoneLowWins { get; init; }
[JsonPropertyName("ConflictZone_Medium")]
public int ConflictZoneMedium { get; init; }
[JsonPropertyName("ConflictZone_Medium_Wins")]
public int ConflictZoneMediumWins { get; init; }
[JsonPropertyName("ConflictZone_Total")]
public int ConflictZoneTotal { get; init; }
[JsonPropertyName("ConflictZone_Total_Wins")]
public int ConflictZoneTotalWins { get; init; }
[JsonPropertyName("OnFoot_Combat_Bonds")]
public int OnFootCombatBonds { get; init; }
[JsonPropertyName("OnFoot_Combat_Bonds_Profits")]
public int OnFootCombatBondsProfits { get; init; }
[JsonPropertyName("OnFoot_Scavs_Killed")]
public int OnFootScavsKilled { get; init; }
[JsonPropertyName("OnFoot_Ships_Destroyed")]
public int OnFootShipsDestroyed { get; init; }
[JsonPropertyName("OnFoot_Skimmers_Killed")]
public int OnFootSkimmersKilled { get; init; }
[JsonPropertyName("OnFoot_Vehicles_Destroyed")]
public int OnFootVehiclesDestroyed { get; init; }
[JsonPropertyName("Settlement_Conquered")]
public int SettlementConquered { get; init; }
[JsonPropertyName("Settlement_Defended")]
public int SettlementDefended { get; init; }
}
}

View File

@ -29,6 +29,30 @@ namespace Observatory.Framework.Files.ParameterTypes
[JsonPropertyName("Recipes_Generated_Rank_5")]
public int RecipesGeneratedRank5 { get; init; }
[JsonPropertyName("Suit_Mods_Applied")]
public int SuitModsApplied { get; init; }
[JsonPropertyName("Suit_Mods_Applied_Full")]
public int SuitModsAppliedFull { get; init; }
[JsonPropertyName("Suits_Upgraded")]
public int SuitsUpgraded { get; init; }
[JsonPropertyName("Suits_Upgraded_Full")]
public int SuitsUpgradedFull { get; init; }
[JsonPropertyName("Weapon_Mods_Applied")]
public int WeaponModsApplied { get; init; }
[JsonPropertyName("Weapon_Mods_Applied_Full")]
public int WeaponModsAppliedFull { get; init; }
[JsonPropertyName("Weapons_Upgraded")]
public int WeaponsUpgraded { get; init; }
[JsonPropertyName("Weapons_Upgraded_Full")]
public int WeaponsUpgradedFull { get; init; }
[JsonPropertyName("Recipes_Applied"), Obsolete(JournalUtilities.ObsoleteMessage)]
public int RecipesApplied { get; init; }

View File

@ -19,5 +19,56 @@ namespace Observatory.Framework.Files.ParameterTypes
[JsonPropertyName("Highest_Bounty")]
public decimal HighestBounty { get; init; }
[JsonPropertyName("Citizens_Murdered")]
public int CitizensMurdered { get; init; }
[JsonPropertyName("Data_Stolen")]
public int DataStolen { get; init; }
[JsonPropertyName("Goods_Stolen")]
public int GoodsStolen { get; init; }
[JsonPropertyName("Guards_Murdered")]
public int GuardsMurdered { get; init; }
[JsonPropertyName("Malware_Uploaded")]
public int MalwareUploaded { get; init; }
[JsonPropertyName("Omnipol_Murdered")]
public int OmnipolMurdered { get; init; }
[JsonPropertyName("Production_Sabotage")]
public int ProductionSabotage { get; init; }
[JsonPropertyName("Production_Theft")]
public int ProductionTheft { get; init; }
[JsonPropertyName("Profiles_Cloned")]
public int ProfilesCloned { get; init; }
[JsonPropertyName("Sample_Stolen")]
public int SampleStolen { get; init; }
[JsonPropertyName("Settlements_State_Shutdown")]
public int SettlementsStateShutdown { get; init; }
[JsonPropertyName("Total_Murders")]
public int TotalMurders { get; init; }
[JsonPropertyName("Total_Stolen")]
public int TotalStolen { get; init; }
[JsonPropertyName("Turrets_Destroyed")]
public int TurretsDestroyed { get; init; }
[JsonPropertyName("Turrets_Overloaded")]
public int TurretsOverloaded { get; init; }
[JsonPropertyName("Turrets_Total")]
public int TurretsTotal { get; init; }
[JsonPropertyName("Value_Stolen_StateChange")]
public int ValueStolenStatechange { get; init; }
}
}

View File

@ -0,0 +1,45 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json.Serialization;
using System.Threading.Tasks;
namespace Observatory.Framework.Files.ParameterTypes
{
public class Exobiology
{
[JsonPropertyName("First_Logged")]
public int FirstLogged { get; init; }
[JsonPropertyName("First_Logged_Profits")]
public long FirstLoggedProfits { get; init; }
[JsonPropertyName("Organic_Data")]
public int OrganicData { get; init; }
[JsonPropertyName("Organic_Data_Profits")]
public long OrganicDataProfits { get; init; }
[JsonPropertyName("Organic_Genus")]
public int OrganicGenus { get; init; }
[JsonPropertyName("Organic_Genus_Encountered")]
public int OrganicGenusEncountered { get; init; }
[JsonPropertyName("Organic_Planets")]
public int OrganicPlanets { get; init; }
[JsonPropertyName("Organic_Species")]
public int OrganicSpecies { get; init; }
[JsonPropertyName("Organic_Species_Encountered")]
public int OrganicSpeciesEncountered { get; init; }
[JsonPropertyName("Organic_Systems")]
public int OrganicSystems { get; init; }
[JsonPropertyName("Organic_Variant_Encountered")]
public int OrganicVariantEncountered { get; init; }
}
}

View File

@ -40,5 +40,26 @@ namespace Observatory.Framework.Files.ParameterTypes
[JsonPropertyName("Efficient_Scans")]
public int EfficientScans { get; init; }
[JsonPropertyName("First_Footfalls")]
public int FirstFootfalls { get; init; }
[JsonPropertyName("OnFoot_Distance_Travelled")]
public long OnFootDistanceTravelled { get; init; }
[JsonPropertyName("Planet_Footfalls")]
public int PlanetFootfalls { get; init; }
[JsonPropertyName("Settlements_Visited")]
public int SettlementsVisited { get; init; }
[JsonPropertyName("Shuttle_Distance_Travelled")]
public double ShuttleDistanceTravelled { get; init; }
[JsonPropertyName("Shuttle_Journeys")]
public int ShuttleJourneys { get; init; }
[JsonPropertyName("Spent_On_Shuttles")]
public long SpentOnShuttles { get; init; }
}
}

View File

@ -4,6 +4,12 @@ namespace Observatory.Framework.Files.ParameterTypes
{
public class MaterialTrader
{
[JsonPropertyName("Assets_Traded_In")]
public int AssetsTradedIn { get; init; }
[JsonPropertyName("Assets_Traded_Out")]
public int AssetsTradedOut { get; init; }
[JsonPropertyName("Trades_Completed")]
public int TradesCompleted { get; init; }

View File

@ -12,5 +12,29 @@ namespace Observatory.Framework.Files.ParameterTypes
[JsonPropertyName("SearchRescue_Count")]
public int Count { get; init; }
[JsonPropertyName("Maglocks_Opened")]
public int MaglocksOpened { get; init; }
[JsonPropertyName("Panels_Opened")]
public int PanelsOpened { get; init; }
[JsonPropertyName("Salvage_Illegal_POI")]
public int SalvageIllegalPoi { get; init; }
[JsonPropertyName("Salvage_Illegal_Settlements")]
public int SalvageIllegalSettlements { get; init; }
[JsonPropertyName("Salvage_Legal_POI")]
public int SalvageLegalPoi { get; init; }
[JsonPropertyName("Salvage_Legal_Settlements")]
public int SalvageLegalSettlements { get; init; }
[JsonPropertyName("Settlements_State_FireOut")]
public int SettlementsStateFireOut { get; init; }
[JsonPropertyName("Settlements_State_Reboot")]
public int SettlementsStateReboot { get; init; }
}
}

View File

@ -4,6 +4,9 @@ namespace Observatory.Framework.Files.ParameterTypes
{
public class Thargoid
{
[JsonPropertyName("TG_ENCOUNTER_KILLED")]
public int EncounterKilled { get; init; }
[JsonPropertyName("TG_ENCOUNTER_WAKES")]
public int EncounterWakes { get; init; }
@ -18,8 +21,5 @@ namespace Observatory.Framework.Files.ParameterTypes
[JsonPropertyName("TG_ENCOUNTER_TOTAL_LAST_SHIP")]
public string LastShip { get; init; }
[JsonPropertyName("TG_SCOUT_COUNT")]
public int ScoutCount { get; init; }
}
}

View File

@ -0,0 +1,16 @@
using System.Text.Json.Serialization;
namespace Observatory.Framework.Files.ParameterTypes
{
public class ThargoidWar
{
public string CurrentState { get; init; }
public string NextStateSuccess { get; init; }
public string NextStateFailure { get; init; }
public bool SuccessStateReached { get; init; }
public double WarProgress { get; init; }
public int RemainingPorts { get; init; }
[JsonConverter(typeof(Converters.ThargoidWarRemainingTimeConverter))]
public int EstimatedRemainingTime { get; init; }
}
}

View File

@ -18,5 +18,14 @@ namespace Observatory.Framework.Files.ParameterTypes
[JsonPropertyName("Highest_Single_Transaction")]
public long HighestSingleTransaction { get; init; }
[JsonPropertyName("Assets_Sold")]
public int AssetsSold { get; init; }
[JsonPropertyName("Data_Sold")]
public int DataSold { get; init; }
[JsonPropertyName("Goods_Sold")]
public int GoodsSold { get; init; }
}
}