Convert firepower modifiers to integer percentages.
This commit is contained in:
@@ -157,7 +157,7 @@ namespace OpenRA.Traits
|
||||
public interface IRenderModifier { IEnumerable<IRenderable> ModifyRender(Actor self, WorldRenderer wr, IEnumerable<IRenderable> r); }
|
||||
public interface IDamageModifier { int GetDamageModifier(Actor attacker, DamageWarhead warhead); }
|
||||
public interface ISpeedModifier { int GetSpeedModifier(); }
|
||||
public interface IFirepowerModifier { float GetFirepowerModifier(); }
|
||||
public interface IFirepowerModifier { int GetFirepowerModifier(); }
|
||||
public interface ILoadsPalettes { void LoadPalettes(WorldRenderer wr); }
|
||||
public interface IPaletteModifier { void AdjustPalette(IReadOnlyDictionary<string, MutablePalette> b); }
|
||||
public interface IPips { IEnumerable<PipType> GetPips(Actor self); }
|
||||
|
||||
@@ -48,8 +48,10 @@ namespace OpenRA.Mods.D2k
|
||||
{
|
||||
Weapon = wep,
|
||||
Facing = self.World.SharedRandom.Next(-1, 255),
|
||||
|
||||
// TODO: Convert to ints
|
||||
FirepowerModifier = self.TraitsImplementing<IFirepowerModifier>()
|
||||
.Select(a => a.GetFirepowerModifier())
|
||||
.Select(a => a.GetFirepowerModifier() / 100f)
|
||||
.Product(),
|
||||
|
||||
Source = self.CenterPosition,
|
||||
|
||||
@@ -153,8 +153,10 @@ namespace OpenRA.Mods.RA
|
||||
{
|
||||
Weapon = Weapon,
|
||||
Facing = legacyFacing,
|
||||
|
||||
// TODO: Convert to ints
|
||||
FirepowerModifier = self.TraitsImplementing<IFirepowerModifier>()
|
||||
.Select(a => a.GetFirepowerModifier())
|
||||
.Select(a => a.GetFirepowerModifier() / 100f)
|
||||
.Product(),
|
||||
|
||||
Source = muzzlePosition,
|
||||
|
||||
@@ -19,7 +19,7 @@ namespace OpenRA.Mods.RA
|
||||
public class GainsStatUpgradesInfo : ITraitInfo
|
||||
{
|
||||
public readonly string FirepowerUpgrade = "firepower";
|
||||
public readonly float[] FirepowerModifier = { 1.1f, 1.15f, 1.2f, 1.5f };
|
||||
public readonly int[] FirepowerModifier = { 110, 115, 120, 150 };
|
||||
|
||||
public readonly string ArmorUpgrade = "armor";
|
||||
public readonly int[] ArmorModifier = { 110, 120, 130, 150 };
|
||||
@@ -65,9 +65,9 @@ namespace OpenRA.Mods.RA
|
||||
return armorLevel > 0 ? 1 / info.ArmorModifier[armorLevel - 1] : 100;
|
||||
}
|
||||
|
||||
public float GetFirepowerModifier()
|
||||
public int GetFirepowerModifier()
|
||||
{
|
||||
return firepowerLevel > 0 ? info.FirepowerModifier[firepowerLevel - 1] : 1;
|
||||
return firepowerLevel > 0 ? info.FirepowerModifier[firepowerLevel - 1] : 100;
|
||||
}
|
||||
|
||||
public int GetSpeedModifier()
|
||||
|
||||
@@ -428,6 +428,9 @@ namespace OpenRA.Utility
|
||||
|
||||
if (depth == 2 && node.Key == "SpeedModifier" && parentKey == "GainsStatUpgrades")
|
||||
ConvertFloatArrayToPercentArray(ref node.Value.Value);
|
||||
|
||||
if (depth == 2 && node.Key == "FirepowerModifier" && parentKey == "GainsStatUpgrades")
|
||||
ConvertFloatArrayToPercentArray(ref node.Value.Value);
|
||||
}
|
||||
|
||||
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
|
||||
|
||||
Reference in New Issue
Block a user