Index: binaries/data/mods/public/art/actors/structures/iberians/fireship.xml
===================================================================
--- binaries/data/mods/public/art/actors/structures/iberians/fireship.xml	(revision 18318)
+++ binaries/data/mods/public/art/actors/structures/iberians/fireship.xml	(working copy)
@@ -2,35 +2,59 @@
 <actor version="1">
   <castshadow/>
   <group>
-    <variant frequency="1" name="firea">
+    <variant frequency="1" name="base">
       <mesh>structural/iber_fireship.dae</mesh>
       <props>
         <prop actor="props/structures/iberians/fireship_wood.xml" attachpoint="root"/>
-        <prop actor="particle/flame_med.xml" attachpoint="fire1"/>
-        <prop actor="particle/smoke_med.xml" attachpoint="fire1"/>
-        <prop actor="particle/flame.xml" attachpoint="fire2"/>
-        <prop actor="" attachpoint="fire3"/>
+      </props>
+      <textures><texture file="structural/iber_ship.dds" name="baseTex"/></textures>
+    </variant>
+  </group>
+  <group>
+    <variant name="healthy" frequency="1">
+      <props>
+        <prop actor="particle/flame_jav.xml" attachpoint="fire1"/>
+        <prop actor="particle/smoke_jav.xml" attachpoint="fire1"/>
         <prop actor="particle/flame_jav.xml" attachpoint="fire4"/>
         <prop actor="particle/smoke_jav.xml" attachpoint="fire4"/>
-        <prop actor="particle/flame.xml" attachpoint="fire5"/>
-        <prop actor="particle/smoke_catapult.xml" attachpoint="fire5"/>
       </props>
-      <textures><texture file="structural/iber_ship.dds" name="baseTex"/></textures>
     </variant>
-    <variant frequency="1" name="fireb">
-      <mesh>structural/iber_fireship.dae</mesh>
+    <variant name="lightDamage">
       <props>
-        <prop actor="props/structures/iberians/fireship_wood.xml" attachpoint="root"/>
-        <prop actor="particle/flame_jav.xml" attachpoint="fire1"/>
+        <prop actor="particle/flame.xml" attachpoint="fire1"/>
         <prop actor="particle/smoke.xml" attachpoint="fire1"/>
-        <prop actor="particle/flame.xml" attachpoint="fire2"/>
-        <prop actor="particle/flame_med.xml" attachpoint="fire3"/>
-        <prop actor="particle/smoke_med.xml" attachpoint="fire3"/>
+        <prop actor="particle/flame_jav.xml" attachpoint="fire3"/>
+        <prop actor="particle/smoke_jav.xml" attachpoint="fire3"/>
+        <prop actor="particle/flame.xml" attachpoint="fire4"/>
+        <prop actor="particle/smoke_jav.xml" attachpoint="fire4"/>
+      </props>
+    </variant>
+    <variant name="mediumDamage">
+      <props>
+        <prop actor="particle/flame.xml" attachpoint="fire1"/>
+        <prop actor="particle/smoke.xml" attachpoint="fire1"/>
+        <prop actor="particle/flame_jav.xml" attachpoint="fire2"/>
+        <prop actor="particle/flame.xml" attachpoint="fire3"/>
+        <prop actor="particle/smoke.xml" attachpoint="fire3"/>
+        <prop actor="particle/flame.xml" attachpoint="fire4"/>
+        <prop actor="particle/smoke.xml" attachpoint="fire4"/>
         <prop actor="particle/flame_jav.xml" attachpoint="fire5"/>
-        <prop actor="particle/smoke_jav.xml" attachpoint="fire5"/>
       </props>
-      <textures><texture file="structural/iber_ship.dds" name="baseTex"/></textures>
     </variant>
+    <variant name="heavyDamage">
+      <props>
+        <prop actor="particle/flame_large.xml" attachpoint="fire1"/>
+        <prop actor="particle/smoke_med.xml" attachpoint="fire1"/>
+        <prop actor="particle/flame.xml" attachpoint="fire2"/>
+        <prop actor="particle/flame_large.xml" attachpoint="fire3"/>
+        <prop actor="particle/smoke.xml" attachpoint="fire3"/>
+        <prop actor="particle/flame.xml" attachpoint="fire4"/>
+        <prop actor="particle/flame_large.xml" attachpoint="fire4"/>
+        <prop actor="particle/smoke_med.xml" attachpoint="fire5"/>
+      </props>
+    </variant>
+    <variant name="death">
+    </variant>
   </group>
   <material>player_trans.xml</material>
 </actor>
Index: binaries/data/mods/public/simulation/components/Health.js
===================================================================
--- binaries/data/mods/public/simulation/components/Health.js	(revision 18318)
+++ binaries/data/mods/public/simulation/components/Health.js	(working copy)
@@ -17,8 +17,16 @@
 		"</element>" +
 	"</optional>" +
 	"<optional>" +
-		"<element name='SpawnEntityOnDeath' a:help='Entity template to spawn when this entity dies. Note: this is different than the corpse, which retains the original entity&apos;s appearance'>" +
-			"<text/>" +
+		"<element name='DamageVariants'>" + 
+			"<oneOrMore>" + 
+				"<element a:help='Name of the variant to select when health drops under the defined ratio'>" + 
+					"<anyName/>" + 
+					"<data type='decimal'>" + 
+						"<param name='minInclusive'>0</param>" + 
+						"<param name='maxInclusive'>1</param>" + 
+					"</data>" + 
+				"</element>" + 
+			"</oneOrMore>" + 
 		"</element>" +
 	"</optional>" +
 	"<element name='RegenRate' a:help='Hitpoint regeneration rate per second.'>" +
@@ -34,6 +42,11 @@
 			"<value a:help='Remain in the world with 0 health'>remain</value>" +
 		"</choice>" +
 	"</element>" +
+	"<optional>" +
+		"<element name='SpawnEntityOnDeath' a:help='Entity template to spawn when this entity dies. Note: this is different than the corpse, which retains the original entity&apos;s appearance'>" +
+			"<text/>" +
+		"</element>" +
+	"</optional>" +
 	"<element name='Undeletable' a:help='Prevent players from deleting this entity.'>" +
 		"<data type='boolean'/>" +
 	"</element>" +
@@ -51,6 +64,7 @@
 	this.regenRate = ApplyValueModificationsToEntity("Health/RegenRate", +this.template.RegenRate, this.entity);
 	this.idleRegenRate = ApplyValueModificationsToEntity("Health/IdleRegenRate", +this.template.IdleRegenRate, this.entity);
 	this.CheckRegenTimer();
+	this.UpdateActor();
 };
 
 //// Interface functions ////
@@ -92,7 +106,7 @@
 			cmpRangeManager.SetEntityFlag(this.entity, "injured", false);
 	}
 
-	Engine.PostMessage(this.entity, MT_HealthChanged, { "from": old, "to": this.hitpoints });
+	this.RegisterHealthChanged(old);
 };
 
 Health.prototype.IsRepairable = function()
@@ -223,8 +237,7 @@
 			}
 
 			this.hitpoints = 0;
-
-			Engine.PostMessage(this.entity, MT_HealthChanged, { "from": oldHitpoints, "to": this.hitpoints });
+			this.RegisterHealthChanged(oldHitpoints);
 		}
 
 	}
@@ -231,8 +244,7 @@
 	else
 	{
 		this.hitpoints -= amount;
-
-		Engine.PostMessage(this.entity, MT_HealthChanged, { "from": oldHitpoints, "to": this.hitpoints });
+		this.RegisterHealthChanged(oldHitpoints);
 	}
 	state.change = this.hitpoints - oldHitpoints;
 	return state;
@@ -262,7 +274,8 @@
 			cmpRangeManager.SetEntityFlag(this.entity, "injured", false);
 	}
 
-	Engine.PostMessage(this.entity, MT_HealthChanged, { "from": old, "to": this.hitpoints });
+	this.RegisterHealthChanged({ "from": old, "to": this.hitpoints });
+
 	// We return the old and the actual hp
 	return { "old": old, "new": this.hitpoints};
 };
@@ -337,6 +350,35 @@
 	return spawnedEntity;
 };
 
+Health.prototype.UpdateActor = function()
+{
+	if (!this.template.DamageVariants)
+		return;
+	let ratio = this.GetHitpoints() / this.GetMaxHitpoints();
+	let newSelection = "alive";
+	if (ratio > 0) 
+	{ 
+		let minTreshold = 1;
+		for (let key in this.template.DamageVariants) 
+		{ 
+			let treshold = +this.template.DamageVariants[key];
+			if (treshold < ratio || treshold > minTreshold) 
+				continue;
+			newSelection = key;
+			minTreshold = treshold;
+		} 
+	} 
+	else 
+		newSelection = "death";
+
+	if (this.currentSelection && this.currentSelection == newSelection)
+		return;
+
+	let cmpVisual = Engine.QueryInterface(this.entity, IID_Visual);
+	if (cmpVisual)
+		cmpVisual.SetVariant("health", newSelection);
+};
+
 Health.prototype.OnValueModification = function(msg)
 {
 	if (msg.component != "Health")
@@ -361,9 +403,11 @@
 		this.CheckRegenTimer();
 };
 
-Health.prototype.OnHealthChanged = function()
+Health.prototype.RegisterHealthChanged = function(from)
 {
 	this.CheckRegenTimer();
+	this.UpdateActor()
+	Engine.PostMessage(this.entity, MT_HealthChanged, { "from": from, "to": this.hitpoints });
 };
 
 Engine.RegisterComponentType(IID_Health, "Health", Health);
Index: binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fire.xml
===================================================================
--- binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fire.xml	(revision 18318)
+++ binaries/data/mods/public/simulation/templates/template_unit_mechanical_ship_fire.xml	(working copy)
@@ -29,6 +29,11 @@
   <Health>
     <Max>500</Max>
     <RegenRate>-3</RegenRate>
+    <DamageVariants>
+      <lightdamage>0.85</lightdamage> 
+      <mediumdamage>0.65</mediumdamage> 
+      <heavydamage>0.35</heavydamage> 
+    </DamageVariants>
   </Health>
   <Identity>
     <GenericName>Fire Ship</GenericName>
