From 106db194bddf26e216a47310bb46c9de0e8a426e Mon Sep 17 00:00:00 2001
From: Tim Felgentreff <timfelgentreff@gmail.com>
Date: Sat, 3 Nov 2018 12:53:02 +0000
Subject: [PATCH] return -1 for time-to-live when it's not meaningful for a
 unit. ignore negative life bar values

---
 src/ui/contenttype.cpp   | 3 +++
 src/unit/script_unit.cpp | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/ui/contenttype.cpp b/src/ui/contenttype.cpp
index 125418a77..b06bf7f6c 100644
--- a/src/ui/contenttype.cpp
+++ b/src/ui/contenttype.cpp
@@ -284,6 +284,9 @@ static const CUnit *GetUnitRef(const CUnit &unit, EnumUnit e)
 	} else {
 		f = (100 * EvalNumber(this->ValueFunc)) / this->ValueMax;
 		f = f > 100 ? 100 : f;
+		if (f < 0) {
+			return;
+		}
 	}
 	int i = 0;
 
diff --git a/src/unit/script_unit.cpp b/src/unit/script_unit.cpp
index 5a59c4dc1..4f1dee924 100644
--- a/src/unit/script_unit.cpp
+++ b/src/unit/script_unit.cpp
@@ -1110,7 +1110,7 @@ static int CclGetUnitVariable(lua_State *l)
 			int pcnt = W * 100.0 / G;
 			lua_pushinteger(l, pcnt);
 		} else {
-			lua_pushinteger(l, 100);
+			lua_pushinteger(l, -1);
 		}
 	} else if (!strcmp(value, "IndividualUpgrade")) {
 		LuaCheckArgs(l, 3);