From 7455f5dd03050c10d9e5fa83fde162ba9ad4157f Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Sat, 5 Mar 2016 21:02:57 +0100
Subject: [PATCH] Plugin: Fix display of empathy values.

---
 plugins/client/PleaseTheIslandGod.py | 14 ++++++++---
 plugins/server/PleaseTheIslandGod.py | 36 +++++++++++++---------------
 2 files changed, 27 insertions(+), 23 deletions(-)

diff --git a/plugins/client/PleaseTheIslandGod.py b/plugins/client/PleaseTheIslandGod.py
index e8cfa0c..808d793 100644
--- a/plugins/client/PleaseTheIslandGod.py
+++ b/plugins/client/PleaseTheIslandGod.py
@@ -118,9 +118,17 @@ def win_map(self):
                 elif char == "=":
                     attribute = col_lumber
                 bonus = (" ", attribute)
-                if len(world_data["metamap_A"]) > 0 and \
-                        world_data["metamap_A"][pos] == "2":
-                    bonus = ("+", col_stack)
+                if len(world_data["metamap_A"]) > 0:
+                    if world_data["metamap_A"][pos] == "2":
+                        bonus = ("+", col_stack)
+                    elif not world_data["metamap_A"][pos] in "01":
+                        c = world_data["metamap_B"][pos]
+                        if world_data["metamap_A"][pos] == "a":
+                            bonus = (c, col_health_bad)
+                        elif world_data["metamap_A"][pos] == "b":
+                            bonus = (c, col_health_middle)
+                        elif world_data["metamap_A"][pos] == "c":
+                            bonus = (c, col_health_good)
                 winmap += [(char, attribute), bonus]
         if y % 2 == 0:
             winmap += "  "
diff --git a/plugins/server/PleaseTheIslandGod.py b/plugins/server/PleaseTheIslandGod.py
index 4a884ed..8cb5734 100644
--- a/plugins/server/PleaseTheIslandGod.py
+++ b/plugins/server/PleaseTheIslandGod.py
@@ -412,19 +412,17 @@ def write_metamap_A():
     ord_v = ord("v")
     length = world_db["MAP_LENGTH"]
     metamapA = bytearray(b'0' * (length ** 2))
-    for id in [id for id in world_db["Things"]
-                  if not world_db["Things"][id]["carried"]
-                  if world_db["Things"][id]["T_LIFEPOINTS"]
+    for tid in [tid for tid in world_db["Things"]
+                  if not world_db["Things"][tid]["carried"]
+                  if world_db["Things"][tid]["T_LIFEPOINTS"]
                   if world_db["Things"][0]["fovmap"][
-                       world_db["Things"][id]["T_POSY"] * length
-                       + world_db["Things"][id]["T_POSX"]] == ord_v]:
-        pos = (world_db["Things"][id]["T_POSY"] * length
-              + world_db["Things"][id]["T_POSX"])
-        if id == 0 or world_db["EMPATHY"]:
-            type = world_db["Things"][id]["T_TYPE"]
-            max_hp = world_db["ThingTypes"][type]["TT_LIFEPOINTS"]
+                       world_db["Things"][tid]["pos"]] == ord_v]:
+        pos = (world_db["Things"][tid]["pos"])
+        if tid == 0 or world_db["EMPATHY"]:
+            ttid = world_db["Things"][tid]["T_TYPE"]
+            max_hp = world_db["ThingTypes"][ttid]["TT_LIFEPOINTS"]
             third_of_hp = max_hp / 3
-            hp = world_db["Things"][id]["T_LIFEPOINTS"]
+            hp = world_db["Things"][tid]["T_LIFEPOINTS"]
             add = 0
             if hp > 2 * third_of_hp:
                  add = 2
@@ -444,16 +442,14 @@ def write_metamap_B():
     ord_v = ord("v")
     length = world_db["MAP_LENGTH"]
     metamapB = bytearray(b' ' * (length ** 2))
-    for id in [id for id in world_db["Things"]
-                  if not world_db["Things"][id]["carried"]
-                  if world_db["Things"][id]["T_LIFEPOINTS"]
+    for tid in [tid for tid in world_db["Things"]
+                  if not world_db["Things"][tid]["carried"]
+                  if world_db["Things"][tid]["T_LIFEPOINTS"]
                   if world_db["Things"][0]["fovmap"][
-                       world_db["Things"][id]["T_POSY"] * length
-                       + world_db["Things"][id]["T_POSX"]] == ord_v]:
-        pos = (world_db["Things"][id]["T_POSY"] * length
-              + world_db["Things"][id]["T_POSX"])
-        if id == 0 or world_db["EMPATHY"]:
-            action = world_db["Things"][id]["T_COMMAND"]
+                       world_db["Things"][tid]["pos"]] == ord_v]:
+        pos = (world_db["Things"][tid]["pos"])
+        if tid == 0 or world_db["EMPATHY"]:
+            action = world_db["Things"][tid]["T_COMMAND"]
             if 0 != action:
                 name = world_db["ThingActions"][action]["TA_NAME"]
             else:
-- 
2.30.2