WIP: Add source #3
4 changed files with 81 additions and 61 deletions
|
@ -1,12 +1,19 @@
|
|||
namespace ZenithInfo.Models
|
||||
{
|
||||
public class DamageStats
|
||||
public class DamageStats(
|
||||
double averageDps,
|
||||
double shieldDps,
|
||||
double hullDps,
|
||||
double averageAlpha,
|
||||
double shieldAlpha,
|
||||
double hullAlpha
|
||||
)
|
||||
{
|
||||
public double AverageDps { get; set; }
|
||||
public double ShieldDps { get; set; }
|
||||
public double HullDps { get; set; }
|
||||
public double AverageAlpha { get; set; }
|
||||
public double ShieldAlpha { get; set; }
|
||||
public double HullAlpha { get; set; }
|
||||
public double AverageDps { get; set; } = averageDps;
|
||||
public double ShieldDps { get; set; } = shieldDps;
|
||||
public double HullDps { get; set; } = hullDps;
|
||||
public double AverageAlpha { get; set; } = averageAlpha;
|
||||
public double ShieldAlpha { get; set; } = shieldAlpha;
|
||||
public double HullAlpha { get; set; } = hullAlpha;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,44 +2,47 @@ using System.Collections.Generic;
|
|||
|
||||
namespace ZenithInfo.Models
|
||||
{
|
||||
public enum ModuleSizes
|
||||
public static class Enums
|
||||
{
|
||||
Small,
|
||||
Medium,
|
||||
Large,
|
||||
Capital,
|
||||
}
|
||||
|
||||
public enum DamageTypes
|
||||
{
|
||||
Shield,
|
||||
Hull,
|
||||
}
|
||||
|
||||
public enum SpinalTypes
|
||||
{
|
||||
Hitscan,
|
||||
Multishot,
|
||||
}
|
||||
|
||||
public enum TurretTypes
|
||||
{
|
||||
Artillery,
|
||||
Autocannon,
|
||||
BeamLaser,
|
||||
Blaster,
|
||||
Railgun,
|
||||
PulseLaser,
|
||||
}
|
||||
|
||||
public Dictionary<TurretTypes, DamageTypes> TurretDamageTypes { get; } =
|
||||
new Dictionary<TurretTypes, DamageTypes>
|
||||
public enum ModuleSizes
|
||||
{
|
||||
{ TurretTypes.Artillery, DamageTypes.Hull },
|
||||
{ TurretTypes.Autocannon, DamageTypes.Hull },
|
||||
{ TurretTypes.BeamLaser, DamageTypes.Shield },
|
||||
{ TurretTypes.Blaster, DamageTypes.Shield },
|
||||
{ TurretTypes.Railgun, DamageTypes.Hull },
|
||||
{ TurretTypes.PulseLaser, DamageTypes.Shield },
|
||||
};
|
||||
Small,
|
||||
Medium,
|
||||
Large,
|
||||
Capital,
|
||||
}
|
||||
|
||||
public enum DamageTypes
|
||||
{
|
||||
Shield,
|
||||
Hull,
|
||||
}
|
||||
|
||||
public enum SpinalTypes
|
||||
{
|
||||
Hitscan,
|
||||
Multishot,
|
||||
}
|
||||
|
||||
public enum TurretTypes
|
||||
{
|
||||
Artillery,
|
||||
Autocannon,
|
||||
BeamLaser,
|
||||
Blaster,
|
||||
Railgun,
|
||||
PulseLaser,
|
||||
}
|
||||
|
||||
public static Dictionary<TurretTypes, DamageTypes> TurretDamageTypes { get; } =
|
||||
new Dictionary<TurretTypes, DamageTypes>
|
||||
{
|
||||
{ TurretTypes.Artillery, DamageTypes.Hull },
|
||||
{ TurretTypes.Autocannon, DamageTypes.Hull },
|
||||
{ TurretTypes.BeamLaser, DamageTypes.Shield },
|
||||
{ TurretTypes.Blaster, DamageTypes.Shield },
|
||||
{ TurretTypes.Railgun, DamageTypes.Hull },
|
||||
{ TurretTypes.PulseLaser, DamageTypes.Shield },
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,13 +2,13 @@ namespace ZenithInfo.Models
|
|||
{
|
||||
public class Spinal
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public double Damage { get; set; }
|
||||
public double Reload { get; set; }
|
||||
public double Range { get; set; }
|
||||
public SpinalTypes Type { get; set; }
|
||||
public DamageTypes DamageType { get; set; }
|
||||
public ModuleSizes Size { get; set; }
|
||||
public Enums.SpinalTypes Type { get; set; }
|
||||
public Enums.DamageTypes DamageType { get; set; }
|
||||
public Enums.ModuleSizes Size { get; set; }
|
||||
public double Velocity { get; set; }
|
||||
public double Interval { get; set; }
|
||||
public int Icon { get; set; }
|
||||
|
@ -16,7 +16,7 @@ namespace ZenithInfo.Models
|
|||
public double BaseCost { get; set; }
|
||||
public string? Rarity { get; set; }
|
||||
|
||||
public DamageStats Dps(int range: 0, int barrelCount: 1)
|
||||
public DamageStats Dps(int range = 0, int barrelCount = 1)
|
||||
{
|
||||
if (range > this.Range)
|
||||
{
|
||||
|
@ -33,12 +33,15 @@ namespace ZenithInfo.Models
|
|||
double shieldDps = 0;
|
||||
double hullDps = 0;
|
||||
|
||||
if (this.DamageType == DamageTypes.Shield) {
|
||||
if (this.DamageType == Enums.DamageTypes.Shield)
|
||||
{
|
||||
shieldAlpha = baseAlpha;
|
||||
hullAlpha = baseAlpha * 0.5;
|
||||
shieldDps = baseDps;
|
||||
hullDps = baseDps * 0.5;
|
||||
} else if (this.DamageType == DamageTypes.Hull) {
|
||||
}
|
||||
else if (this.DamageType == Enums.DamageTypes.Hull)
|
||||
{
|
||||
shieldAlpha = baseAlpha * 0.5;
|
||||
hullAlpha = baseAlpha;
|
||||
shieldDps = baseDps * 0.5;
|
||||
|
@ -47,7 +50,14 @@ namespace ZenithInfo.Models
|
|||
|
||||
double averageDps = (shieldDps + hullDps) / 2;
|
||||
double averageAlpha = (shieldAlpha + hullAlpha) / 2;
|
||||
return new DamageStats(averageDps, shieldDps, hullDps, averageAlpha, shieldAlpha, hullAlpha);
|
||||
return new DamageStats(
|
||||
averageDps,
|
||||
shieldDps,
|
||||
hullDps,
|
||||
averageAlpha,
|
||||
shieldAlpha,
|
||||
hullAlpha
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,26 +4,26 @@ namespace ZenithInfo.Models
|
|||
{
|
||||
public class Turret
|
||||
{
|
||||
public string Name { get; set; }
|
||||
public required string Name { get; set; }
|
||||
public double Damage { get; set; }
|
||||
public double Reload { get; set; }
|
||||
public double Range { get; set; }
|
||||
public double OptimalRange { get; set; }
|
||||
public double FalloffRange { get; set; }
|
||||
public double Accuracy { get; set; }
|
||||
public ModuleSizes Size { get; set; }
|
||||
public TurretTypes Type { get; set; }
|
||||
public Enums.ModuleSizes Size { get; set; }
|
||||
public Enums.TurretTypes Type { get; set; }
|
||||
public int Icon { get; set; }
|
||||
public double BeamSize { get; set; }
|
||||
public double BaseCost { get; set; }
|
||||
public string? Rarity { get; set; }
|
||||
|
||||
public DamageTypes DamageType()
|
||||
public Enums.DamageTypes DamageType()
|
||||
{
|
||||
TurretDamageTypes[this.Type];
|
||||
return Enums.TurretDamageTypes[this.Type];
|
||||
}
|
||||
|
||||
public DamageStats Dps(int range: 0)
|
||||
public DamageStats Dps(int range = 0)
|
||||
{
|
||||
if (range > this.Range)
|
||||
{
|
||||
|
@ -39,14 +39,14 @@ namespace ZenithInfo.Models
|
|||
double hullDps = 0;
|
||||
|
||||
// all percentages are placeholders until david tells me what they're actually supposed to be
|
||||
if (this.DamageType() == DamageTypes.Shield)
|
||||
if (this.DamageType() == Enums.DamageTypes.Shield)
|
||||
{
|
||||
shieldAlpha = baseAlpha;
|
||||
hullAlpha = baseAlpha * 0.5;
|
||||
shieldDps = baseDps;
|
||||
hullDps = baseDps * 0.5;
|
||||
}
|
||||
else if (this.DamageType() == DamageTypes.Hull)
|
||||
else if (this.DamageType() == Enums.DamageTypes.Hull)
|
||||
{
|
||||
shieldAlpha = baseAlpha * 0.5;
|
||||
hullAlpha = baseAlpha;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue