Merge pull request #6303 from obrakmann/fix6263

Fixed invulnerable infantry
This commit is contained in:
Matthias Mailänder
2014-08-23 10:28:15 +02:00
3 changed files with 37 additions and 24 deletions

View File

@@ -21,8 +21,8 @@ namespace OpenRA.Mods.RA
public readonly string FirepowerUpgrade = "firepower";
public readonly int[] FirepowerModifier = { 110, 115, 120, 130 };
public readonly string ArmorUpgrade = "armor";
public readonly int[] ArmorModifier = { 110, 120, 130, 150 };
public readonly string DamageUpgrade = "damage";
public readonly int[] DamageModifier = { 91, 87, 83, 65 };
public readonly string SpeedUpgrade = "speed";
public readonly int[] SpeedModifier = { 110, 115, 120, 150 };
@@ -38,7 +38,7 @@ namespace OpenRA.Mods.RA
readonly GainsStatUpgradesInfo info;
[Sync] int firepowerLevel = 0;
[Sync] int speedLevel = 0;
[Sync] int armorLevel = 0;
[Sync] int damageLevel = 0;
[Sync] int reloadLevel = 0;
public GainsStatUpgrades(GainsStatUpgradesInfo info)
@@ -49,7 +49,7 @@ namespace OpenRA.Mods.RA
public bool AcceptsUpgrade(string type)
{
return (type == info.FirepowerUpgrade && firepowerLevel < info.FirepowerModifier.Length)
|| (type == info.ArmorUpgrade && armorLevel < info.ArmorModifier.Length)
|| (type == info.DamageUpgrade && damageLevel < info.DamageModifier.Length)
|| (type == info.SpeedUpgrade && speedLevel < info.SpeedModifier.Length)
|| (type == info.ReloadUpgrade && reloadLevel < info.ReloadModifier.Length);
}
@@ -59,8 +59,8 @@ namespace OpenRA.Mods.RA
var mod = available ? 1 : -1;
if (type == info.FirepowerUpgrade)
firepowerLevel = (firepowerLevel + mod).Clamp(0, info.FirepowerModifier.Length);
else if (type == info.ArmorUpgrade)
armorLevel = (armorLevel + mod).Clamp(0, info.ArmorModifier.Length);
else if (type == info.DamageUpgrade)
damageLevel = (damageLevel + mod).Clamp(0, info.DamageModifier.Length);
else if (type == info.SpeedUpgrade)
speedLevel = (speedLevel + mod).Clamp(0, info.SpeedModifier.Length);
else if (type == info.ReloadUpgrade)
@@ -69,7 +69,7 @@ namespace OpenRA.Mods.RA
public int GetDamageModifier(Actor attacker, DamageWarhead warhead)
{
return armorLevel > 0 ? 1 / info.ArmorModifier[armorLevel - 1] : 100;
return damageLevel > 0 ? info.DamageModifier[damageLevel - 1] : 100;
}
public int GetFirepowerModifier()

View File

@@ -436,8 +436,6 @@ namespace OpenRA.Utility
ConvertFloatArrayToPercentArray(ref node.Value.Value);
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
// RemoveImmediately was replaced with RemoveOnConditions
if (engineVersion < 20140821)
{
@@ -451,6 +449,21 @@ namespace OpenRA.Utility
}
}
if (engineVersion < 20140823)
{
if (depth == 2 && node.Key == "ArmorUpgrade" && parentKey == "GainsStatUpgrades")
node.Key = "DamageUpgrade";
if (depth == 2 && node.Key == "ArmorModifier" && parentKey == "GainsStatUpgrades")
{
node.Key = "DamageModifier";
node.Value.Value = string.Join(", ", node.Value.Value.Split(',')
.Select(s => ((int)(100 * 100 / float.Parse(s))).ToString()));
}
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
}
}

View File

@@ -118,7 +118,7 @@
1000: firepower, armor, speed, reload
GainsStatUpgrades:
FirepowerModifier: 110, 130
ArmorModifier: 120, 150
DamageModifier: 83, 66
SpeedModifier: 120, 150
ReloadModifier: 90, 75
GivesExperience:
@@ -208,7 +208,7 @@
1000: firepower, armor, speed, reload
GainsStatUpgrades:
FirepowerModifier: 110, 130
ArmorModifier: 120, 150
DamageModifier: 83, 66
SpeedModifier: 120, 150
ReloadModifier: 90, 75
GivesExperience:
@@ -261,7 +261,7 @@
1000: firepower, armor, speed, reload
GainsStatUpgrades:
FirepowerModifier: 110, 130
ArmorModifier: 120, 150
DamageModifier: 83, 66
SpeedModifier: 120, 150
ReloadModifier: 90, 75
GivesExperience:
@@ -308,7 +308,7 @@
1000: firepower, armor, speed, reload
GainsStatUpgrades:
FirepowerModifier: 110, 130
ArmorModifier: 120, 150
DamageModifier: 83, 66
SpeedModifier: 120, 150
ReloadModifier: 90, 75
GivesExperience: