Skip to content

Commit 2e37117

Browse files
authored
Merge pull request #24 from adri1wcrow/master
fix the 1.0.1 crash
2 parents 4bcb54c + 4d062c5 commit 2e37117

File tree

5 files changed

+78
-4
lines changed

5 files changed

+78
-4
lines changed

TankInspector/Modeling/Tank/ConsumableScript.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,18 @@ public static ConsumableScript Resolve(XmlReader reader, Database database)
2626
case "RemovedRpmLimiter":
2727
script = new RemovedRpmLimiterScript(database);
2828
break;
29-
case "Artillery":
29+
case "RageArtillery":
30+
case "ConsumableArtillery":
3031
script = new ArtilleryScript(database);
3132
break;
32-
case "Bomber":
33+
case "RageBomber":
34+
case "ConsumableBomber":
3335
script = new BomberScript(database);
3436
break;
37+
case "EpicRecon":
38+
case "ConsumableRecon":
39+
script = new ReconScript(database);
40+
break;
3541
case "Afterburning":
3642
script = new AfterburningScript(database);
3743
break;
@@ -60,7 +66,9 @@ public static ConsumableScript Resolve(XmlReader reader, Database database)
6066
script = new LastEffortBattleBoosterScript(database);
6167
break;
6268
default:
63-
throw new NotSupportedException();
69+
script = new DefaultScript(database,type);
70+
break;
71+
//TODO throw new NotSupportedException();
6472
}
6573

6674
script.Deserialize(reader);
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System.Xml;
2+
3+
namespace Smellyriver.TankInspector.Modeling
4+
{
5+
internal class DefaultScript : ConsumableScript
6+
{
7+
public override string[] EffectiveDomains => new[] { "unknown" };
8+
9+
public DefaultScript(Database database,string type)
10+
: base(database)
11+
{
12+
EffectiveDomains.SetValue(type, 0);
13+
}
14+
15+
public override bool DeserializeSection(string name, XmlReader reader)
16+
{
17+
switch (name)
18+
{
19+
default:
20+
return base.DeserializeSection(name, reader);
21+
}
22+
}
23+
24+
public override void Execute(ModificationContext context, object args)
25+
{
26+
27+
}
28+
}
29+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
using System.Xml;
2+
3+
namespace Smellyriver.TankInspector.Modeling
4+
{
5+
internal class ReconScript : ConsumableScript
6+
{
7+
public override string[] EffectiveDomains => new[] { "recon" };
8+
9+
public ReconScript(Database database)
10+
: base(database)
11+
{
12+
13+
}
14+
15+
public override bool DeserializeSection(string name, XmlReader reader)
16+
{
17+
switch (name)
18+
{
19+
default:
20+
return base.DeserializeSection(name, reader);
21+
}
22+
}
23+
24+
public override void Execute(ModificationContext context, object args)
25+
{
26+
27+
}
28+
}
29+
}

TankInspector/Modeling/Tank/Shell.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,8 @@ private ShellType ParseShellType(string type)
120120
return ShellType.APHE;
121121
case "HIGH_EXPLOSIVE_PREMIUM":
122122
return ShellType.PremiumHE;
123+
case "SMOKE":
124+
return ShellType.SMOKE;
123125
default:
124126
throw new NotSupportedException();
125127
}

TankInspector/Modeling/Tank/ShellType.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ public enum ShellType
1010
HE,
1111
PremiumHE,
1212
HEAT,
13-
APHE
13+
APHE,
14+
SMOKE
1415
}
1516

1617
internal static class ShellTypeExtensions
@@ -21,6 +22,7 @@ public static bool IsKineticShellType(this ShellType type)
2122
{
2223
case ShellType.HE:
2324
case ShellType.PremiumHE:
25+
case ShellType.SMOKE:
2426
return false;
2527
case ShellType.AP:
2628
case ShellType.APCR:
@@ -39,6 +41,7 @@ public static bool HasNormalizationEffect(this ShellType type)
3941
case ShellType.HE:
4042
case ShellType.PremiumHE:
4143
case ShellType.HEAT:
44+
case ShellType.SMOKE:
4245
return false;
4346
case ShellType.AP:
4447
case ShellType.APCR:
@@ -56,6 +59,7 @@ public static double BasicNormalization(this ShellType type)
5659
case ShellType.HE:
5760
case ShellType.PremiumHE:
5861
case ShellType.HEAT:
62+
case ShellType.SMOKE:
5963
return 0.0;
6064
case ShellType.AP:
6165
case ShellType.APHE:
@@ -71,6 +75,8 @@ public static double RicochetAngle(this ShellType type)
7175
{
7276
switch (type)
7377
{
78+
case ShellType.SMOKE:
79+
return 0.0;
7480
case ShellType.HE:
7581
case ShellType.PremiumHE:
7682
return 90.0;

0 commit comments

Comments
 (0)