Migrate SelfHealing.HealIfBelow from float to int percentage

This commit is contained in:
reaperrr
2016-03-24 13:36:00 +01:00
parent 8ba875476f
commit 3a97757bfa
13 changed files with 32 additions and 15 deletions

View File

@@ -18,7 +18,8 @@ namespace OpenRA.Mods.Common.Traits
{
public readonly int Step = 5;
public readonly int Delay = 5;
public readonly float HealIfBelow = .5f;
[Desc("Heal if current health is below this percentage of full health.")]
public readonly int HealIfBelow = 50;
public readonly int DamageCooldown = 0;
public override object Create(ActorInitializer init) { return new SelfHealing(init.Self, this); }
@@ -42,7 +43,7 @@ namespace OpenRA.Mods.Common.Traits
if (self.IsDead || IsTraitDisabled)
return;
if (health.HP >= Info.HealIfBelow * health.MaxHP)
if (health.HP >= Info.HealIfBelow * health.MaxHP / 100)
return;
if (damageTicks > 0)

View File

@@ -692,6 +692,22 @@ namespace OpenRA.Mods.Common.UtilityCommands
}
}
// Migrated SelfHealing to use int percentage instead of float
if (engineVersion < 20160325)
{
if (node.Key == "SelfHealing")
{
var healIfBelowNode = node.Value.Nodes.FirstOrDefault(x => x.Key == "HealIfBelow");
if (healIfBelowNode != null)
{
// The HealIfBelow value is now an int percentage, so multiply the float with 100.
var oldValue = FieldLoader.GetValue<float>("HealIfBelow", healIfBelowNode.Value.Value);
var newValue = (int)(oldValue * 100);
healIfBelowNode.Value.Value = newValue.ToString();
}
}
}
UpgradeActorRules(engineVersion, ref node.Value.Nodes, node, depth + 1);
}
}

View File

@@ -70,7 +70,7 @@ RMBO.easy:
HP: 300
SelfHealing:
Delay: 10
HealIfBelow: 50%
HealIfBelow: 50
DamageCooldown: 200
RenderSprites:
Image: RMBO

View File

@@ -411,7 +411,7 @@ HTNK:
AutoTarget:
SelfHealing:
Delay: 10
HealIfBelow: 50%
HealIfBelow: 50
DamageCooldown: 200
SpawnActorOnDeath:
Actor: HTNK.Husk

View File

@@ -39,7 +39,7 @@ carryall.reinforce:
SelfHealing:
Step: 5
Delay: 3
HealIfBelow: 50%
HealIfBelow: 50
carryall:
Inherits: carryall.reinforce

View File

@@ -44,7 +44,7 @@ mcv:
SelfHealing:
Step: 5
Delay: 3
HealIfBelow: 50%
HealIfBelow: 50
harvester:
Inherits: ^Vehicle
@@ -95,7 +95,7 @@ harvester:
SelfHealing:
Step: 5
Delay: 3
HealIfBelow: 50%
HealIfBelow: 50
trike:
Inherits: ^Vehicle
@@ -336,7 +336,7 @@ devastator:
SelfHealing:
Step: 5
Delay: 3
HealIfBelow: 50%
HealIfBelow: 50
raider:
Inherits: ^Vehicle

View File

@@ -160,7 +160,7 @@ MINVV:
SelfHealing:
Step: -1
Delay: 1
HealIfBelow: 101%
HealIfBelow: 101
DamageCooldown: 0
Explodes:
Weapon: CrateNuke

View File

@@ -307,7 +307,7 @@ V2RL:
SelfHealing:
Step: 2
Delay: 1
HealIfBelow: 40%
HealIfBelow: 40
BADR.Bomber:
Health:

View File

@@ -160,7 +160,7 @@ PBOX:
SelfHealing:
Step: 1
Delay: 1
HealIfBelow: 100%
HealIfBelow: 100
DamageCooldown: 150
Selectable:
Bounds: 44,38,0,-4

View File

@@ -192,7 +192,7 @@ V2RL:
SelfHealing:
Step: 1
Delay: 3
HealIfBelow: 50%
HealIfBelow: 50
DamageCooldown: 150
SelectionDecorations:
VisualBounds: 44,38,0,-4

View File

@@ -28,7 +28,7 @@
AutoTarget:
SelfHealing:
Delay: 10
HealIfBelow: 50%
HealIfBelow: 50
DamageCooldown: 200
WithVoxelTurret:
WithVoxelBarrel:

View File

@@ -246,7 +246,7 @@ WEED:
HP: 600
SelfHealing:
Delay: 10
HealIfBelow: 50%
HealIfBelow: 50
DamageCooldown: 200
Armor:
Type: Heavy

View File

@@ -76,7 +76,7 @@ HARV:
HP: 1000
SelfHealing:
Delay: 10
HealIfBelow: 50%
HealIfBelow: 50
DamageCooldown: 200
Armor:
Type: Heavy