public override string ToString() { if (SignalName.StartsWith("$USS_")) { return(BaseUtils.FieldBuilder.Build("", USSTypeLocalised, "Threat Level:".T(EDTx.FSSSignal_ThreatLevel), ThreatLevel, "Faction:".T(EDTx.FSSSignal_Faction), SpawingFaction_Localised, ";Station".T(EDTx.FSSSignal_StationBool), IsStation, "State:".T(EDTx.FSSSignal_State), SpawingState_Localised )); } else { return(BaseUtils.FieldBuilder.Build("", SignalName_Localised, "USS Type:".T(EDTx.FSSSignal_USSType), USSTypeLocalised, "Threat Level:".T(EDTx.FSSSignal_ThreatLevel), ThreatLevel, "Faction:".T(EDTx.FSSSignal_Faction), SpawingFaction_Localised, ";Station".T(EDTx.FSSSignal_StationBool), IsStation, "State:".T(EDTx.FSSSignal_State), SpawingState_Localised )); } }
const int CarrierExpiryTime = 10 * (60 * 60 * 24); // days till we consider the carrier signal expired.. public FSSSignal(JObject evt, System.DateTime EventTimeUTC) { SignalName = evt["SignalName"].Str(); string loc = evt["SignalName_Localised"].Str(); // not present for stations/installations SignalName_Localised = loc.Alt(SignalName); // don't mangle if no localisation, its prob not there because its a proper name SpawningState = evt["SpawningState"].Str(); // USS only, checked SpawningState_Localised = JournalFieldNaming.CheckLocalisation(evt["SpawningState_Localised"].Str(), SpawningState); SpawningFaction = evt["SpawningFaction"].Str(); // USS only, checked SpawningFaction_Localised = JournalFieldNaming.CheckLocalisation(evt["SpawningFaction_Localised"].Str(), SpawningFaction); USSType = evt["USSType"].Str(); // USS Only, checked USSTypeLocalised = JournalFieldNaming.CheckLocalisation(evt["USSType_Localised"].Str(), USSType); ThreatLevel = evt["ThreatLevel"].IntNull(); // USS only, checked TimeRemaining = evt["TimeRemaining"].DoubleNull(); // USS only, checked SystemAddress = evt["SystemAddress"].LongNull(); bool?isstation = evt["IsStation"].BoolNull(); if (isstation == true) // station flag { int dash = SignalName.LastIndexOf('-'); if (SignalName.Length >= 5 && dash == SignalName.Length - 4 && char.IsLetterOrDigit(SignalName[dash + 1]) && char.IsLetterOrDigit(SignalName[dash - 1])) { ClassOfSignal = Classification.Carrier; TimeRemaining = CarrierExpiryTime; } else { ClassOfSignal = Classification.Station; } } else if (loc.Length == 0) // other types, and old station entries, don't have localisation, so its an installation { ClassOfSignal = Classification.Installation; } else if (SignalName.StartsWith("$USS", StringComparison.InvariantCultureIgnoreCase) || SignalName.StartsWith("$RANDOM", StringComparison.InvariantCultureIgnoreCase)) { ClassOfSignal = Classification.USS; } else if (SignalName.StartsWith("$Warzone", StringComparison.InvariantCultureIgnoreCase)) { ClassOfSignal = Classification.ConflictZone; } else if (SignalName.StartsWith("$Fixed_Event_Life", StringComparison.InvariantCultureIgnoreCase)) { ClassOfSignal = Classification.NotableStellarPhenomena; } else if (SignalName.StartsWith("$MULTIPLAYER_SCENARIO14", StringComparison.InvariantCultureIgnoreCase) || SignalName.StartsWith("$MULTIPLAYER_SCENARIO7", StringComparison.InvariantCultureIgnoreCase)) { ClassOfSignal = Classification.ResourceExtraction; } else { ClassOfSignal = Classification.Other; } RecordedUTC = EventTimeUTC; if (TimeRemaining != null) { ExpiryUTC = EventTimeUTC.AddSeconds(TimeRemaining.Value); ExpiryLocal = ExpiryUTC.ToLocalTime(); } }