Skip to content

Commit b1ecb33

Browse files
committed
Fixed generated consolidated organic names for Horizons organics.
1 parent 11581ce commit b1ecb33

3 files changed

Lines changed: 55 additions & 30 deletions

File tree

ChangeLog.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
Full details of the variables available for each noted event, and VoiceAttack integrations, are available in the individual [event pages](https://github.com/EDCD/EDDI/wiki/Events).
44

55
## 5.0.1
6+
* Core
7+
* Fixed generated consolidated organic names for Horizons organics.
68
* Speech Responder
7-
* Fixed vertical whitespace characters being removed from speechresponder.out. (#2797
9+
* Fixed vertical whitespace characters being removed from speechresponder.out. (#2797)
810
* Custom Functions
911
* `StopSpeaking` function signature corrected - it should now work as documented. (#2799)
1012
* VoiceAttack

DataDefinitions/Organic.cs

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using JetBrains.Annotations;
22
using Newtonsoft.Json;
3+
using System;
34
using System.Linq;
45

56
namespace EddiDataDefinitions
@@ -35,10 +36,10 @@ public OrganicVariant variant
3536
private OrganicVariant _variant;
3637

3738
[ Utilities.PublicAPI("The invariant name of the organic")]
38-
public string invariantName => ConsolidatedName( _variant?.invariantName, _species?.invariantName, genus?.invariantName );
39+
public string invariantName => ConsolidatedName( genus?.organicGroup, _variant?.invariantName, _species?.invariantName, genus?.invariantName );
3940

4041
[Utilities.PublicAPI("The localized name of the organic")]
41-
public string localizedName => ConsolidatedName( _variant?.localizedName, _species?.localizedName, genus?.localizedName );
42+
public string localizedName => ConsolidatedName( genus?.organicGroup, _variant?.localizedName, _species?.localizedName, genus?.localizedName );
4243

4344
[Utilities.PublicAPI( "The minimum distance that you must travel before you can collect a fresh sample of this genus (if known)" ), JsonIgnore]
4445
public int? minimumDistanceMeters => genus?.minimumDistanceMeters;
@@ -91,15 +92,27 @@ public Organic ( [NotNull] OrganicGenus genus )
9192
/// <summary>
9293
/// Creates a joined organism name without redundant elements
9394
/// </summary>
94-
private string ConsolidatedName ( string variantName, string speciesName, string genusName )
95+
private string ConsolidatedName ( OrganicGenus.OrganicGroup? organicGroup, string variantName,
96+
string speciesName, string genusName )
9597
{
96-
return string.Join( " ", new[]
98+
if ( organicGroup is OrganicGenus.OrganicGroup.Horizons )
99+
{
100+
return string.Join( " ", new[]
97101
{
98102
variantName,
99-
genus != null && speciesName.Contains( genusName ) ? null : genusName,
100-
_species != null && variantName.Contains( speciesName ) ? null : speciesName
103+
_species != null && variantName.Contains( speciesName, StringComparison.OrdinalIgnoreCase ) ? null : speciesName,
104+
genus != null && speciesName.Contains( genusName, StringComparison.OrdinalIgnoreCase ) ? null : genusName
101105
}
102106
.Where( n => n != null ) );
107+
}
108+
109+
return string.Join( " ", new[]
110+
{
111+
variantName,
112+
genus != null && speciesName.Contains( genusName, StringComparison.OrdinalIgnoreCase ) ? null : genusName,
113+
_species != null && variantName.Contains( speciesName, StringComparison.OrdinalIgnoreCase ) ? null : speciesName
114+
}
115+
.Where( n => n != null ) );
103116
}
104117

105118
/// <summary> Get all the biological data, this should be done at the first sample </summary>

DataDefinitions/OrganicGenus.cs

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ namespace EddiDataDefinitions
55
{
66
public class OrganicGenus : ResourceBasedLocalizedEDName<OrganicGenus>
77
{
8+
public enum OrganicGroup
9+
{
10+
Horizons,
11+
Odyssey
12+
}
13+
814
static OrganicGenus ()
915
{
1016
resourceManager = Properties.OrganicGenus.ResourceManager;
@@ -16,27 +22,27 @@ static OrganicGenus ()
1622
public static readonly OrganicGenus Unknown = new( "Unknown" );
1723

1824
// Terrestrial Genuses
19-
public static readonly OrganicGenus Aleoids = new( "Aleoids", 150 );
20-
public static readonly OrganicGenus Vents = new( "Vents", 100 );
21-
public static readonly OrganicGenus Sphere = new( "Sphere", 100 );
22-
public static readonly OrganicGenus Bacterial = new( "Bacterial", 500 );
23-
public static readonly OrganicGenus Cone = new( "Cone", 100 );
24-
public static readonly OrganicGenus Brancae = new( "Brancae", 100 );
25-
public static readonly OrganicGenus Cactoid = new( "Cactoid", 300 );
26-
public static readonly OrganicGenus Clypeus = new( "Clypeus", 150 );
27-
public static readonly OrganicGenus Conchas = new( "Conchas", 150 );
28-
public static readonly OrganicGenus Ground_Struct_Ice = new( "Ground_Struct_Ice", 100 );
29-
public static readonly OrganicGenus Electricae = new( "Electricae", 1000 );
30-
public static readonly OrganicGenus Fonticulus = new( "Fonticulus", 500 );
31-
public static readonly OrganicGenus Shrubs = new( "Shrubs", 150 );
32-
public static readonly OrganicGenus Fumerolas = new( "Fumerolas", 100 );
33-
public static readonly OrganicGenus Fungoids = new( "Fungoids", 300 );
34-
public static readonly OrganicGenus Osseus = new( "Osseus", 800 );
35-
public static readonly OrganicGenus Recepta = new( "Recepta", 150 );
36-
public static readonly OrganicGenus Tubers = new( "Tubers", 100 );
37-
public static readonly OrganicGenus Stratum = new( "Stratum", 500 );
38-
public static readonly OrganicGenus Tubus = new( "Tubus", 800 );
39-
public static readonly OrganicGenus Tussocks = new( "Tussocks", 200 );
25+
public static readonly OrganicGenus Aleoids = new( "Aleoids", OrganicGroup.Odyssey, minimumDistanceMeters: 150 );
26+
public static readonly OrganicGenus Vents = new( "Vents", OrganicGroup.Odyssey, minimumDistanceMeters: 100 );
27+
public static readonly OrganicGenus Sphere = new( "Sphere", minimumDistanceMeters: 100 );
28+
public static readonly OrganicGenus Bacterial = new( "Bacterial", OrganicGroup.Odyssey, minimumDistanceMeters: 500 );
29+
public static readonly OrganicGenus Cone = new( "Cone", minimumDistanceMeters: 100 );
30+
public static readonly OrganicGenus Brancae = new( "Brancae", OrganicGroup.Odyssey, minimumDistanceMeters: 100 );
31+
public static readonly OrganicGenus Cactoid = new( "Cactoid", OrganicGroup.Odyssey, minimumDistanceMeters: 300 );
32+
public static readonly OrganicGenus Clypeus = new( "Clypeus", OrganicGroup.Odyssey, minimumDistanceMeters: 150 );
33+
public static readonly OrganicGenus Conchas = new( "Conchas", OrganicGroup.Odyssey, minimumDistanceMeters: 150 );
34+
public static readonly OrganicGenus Ground_Struct_Ice = new( "Ground_Struct_Ice", minimumDistanceMeters: 100 );
35+
public static readonly OrganicGenus Electricae = new( "Electricae", OrganicGroup.Odyssey, minimumDistanceMeters: 1000 );
36+
public static readonly OrganicGenus Fonticulus = new( "Fonticulus", OrganicGroup.Odyssey, minimumDistanceMeters: 500 );
37+
public static readonly OrganicGenus Shrubs = new( "Shrubs", OrganicGroup.Odyssey, minimumDistanceMeters: 150 );
38+
public static readonly OrganicGenus Fumerolas = new( "Fumerolas", OrganicGroup.Odyssey, minimumDistanceMeters: 100 );
39+
public static readonly OrganicGenus Fungoids = new( "Fungoids", OrganicGroup.Odyssey, minimumDistanceMeters: 300 );
40+
public static readonly OrganicGenus Osseus = new( "Osseus", OrganicGroup.Odyssey, minimumDistanceMeters: 800 );
41+
public static readonly OrganicGenus Recepta = new( "Recepta", OrganicGroup.Odyssey, minimumDistanceMeters: 150 );
42+
public static readonly OrganicGenus Tubers = new( "Tubers", OrganicGroup.Odyssey, minimumDistanceMeters: 100 );
43+
public static readonly OrganicGenus Stratum = new( "Stratum", OrganicGroup.Odyssey, minimumDistanceMeters: 500 );
44+
public static readonly OrganicGenus Tubus = new( "Tubus", OrganicGroup.Odyssey, minimumDistanceMeters: 800 );
45+
public static readonly OrganicGenus Tussocks = new( "Tussocks", OrganicGroup.Odyssey, minimumDistanceMeters: 200 );
4046
// Genuses without any known minimum distance (including non-terrestrial genuses)
4147
public static readonly OrganicGenus MineralSpheres = new( "MineralSpheres" );
4248
public static readonly OrganicGenus MetallicCrystals = new( "MetallicCrystals" );
@@ -69,21 +75,25 @@ static OrganicGenus ()
6975
public static readonly OrganicGenus VoidHeart = new( "VoidHeart" );
7076
public static readonly OrganicGenus CalcitePlates = new( "CalcitePlates" );
7177
public static readonly OrganicGenus ThargoidBarnacle = new( "ThargoidBarnacle" );
72-
public static readonly OrganicGenus Ingensradices = new( "Ingensradices" ); // Appears to be unique to HIP 87621.
78+
public static readonly OrganicGenus Ingensradices = new( "Ingensradices", OrganicGroup.Odyssey ); // Appears to be unique to HIP 87621.
7379

7480
[JsonProperty]
7581
public int minimumDistanceMeters { get; private set; }
7682

7783
[JsonIgnore, PublicAPI]
7884
public string localizedDescription => Properties.OrganicGenusDesc.ResourceManager.GetString( NormalizeGenus( edname ) );
85+
86+
public OrganicGroup organicGroup { get; private set; }
7987

8088
// dummy used to ensure that the static constructor has run
8189
public OrganicGenus () : this( "" )
8290
{ }
8391

84-
private OrganicGenus ( string edname, int minimumDistanceMeters = 0 ) : base( edname, edname )
92+
private OrganicGenus ( string edname, OrganicGroup organicGroup = OrganicGroup.Horizons,
93+
int minimumDistanceMeters = 0 ) : base( edname, edname )
8594
{
8695
this.minimumDistanceMeters = minimumDistanceMeters;
96+
this.organicGroup = organicGroup;
8797
}
8898

8999
public static new OrganicGenus FromEDName ( string edname )

0 commit comments

Comments
 (0)