From 8e817e727d498859c52c59024af71d6ac9dadd48 Mon Sep 17 00:00:00 2001
From: Christian Heller <c.heller@plomlompom.de>
Date: Wed, 9 Mar 2016 23:12:24 +0100
Subject: [PATCH] TCE: Add voluntary urination.

---
 confserver/TheCrawlingEater        |  3 +++
 plugins/client/TheCrawlingEater.py |  1 +
 plugins/server/TheCrawlingEater.py | 19 +++++++++++++++++++
 3 files changed, 23 insertions(+)

diff --git a/confserver/TheCrawlingEater b/confserver/TheCrawlingEater
index 5338708..81e10dc 100644
--- a/confserver/TheCrawlingEater
+++ b/confserver/TheCrawlingEater
@@ -15,6 +15,9 @@ TA_NAME drop
 TA_ID 4
 TA_NAME drink
 
+TA_ID 5
+TA_NAME pee
+
 TT_ID 0
 TT_START_NUMBER 1
 TT_LIFEPOINTS 1
diff --git a/plugins/client/TheCrawlingEater.py b/plugins/client/TheCrawlingEater.py
index e5559c5..b2acb06 100644
--- a/plugins/client/TheCrawlingEater.py
+++ b/plugins/client/TheCrawlingEater.py
@@ -113,3 +113,4 @@ from client.commands import command_sender
 from client.config.commands import commands
 commands["S"] = (command_sender("drop"),)
 commands["D"] = (command_sender("drink"),)
+commands["P"] = (command_sender("pee"),)
diff --git a/plugins/server/TheCrawlingEater.py b/plugins/server/TheCrawlingEater.py
index 210356a..6b56488 100644
--- a/plugins/server/TheCrawlingEater.py
+++ b/plugins/server/TheCrawlingEater.py
@@ -20,6 +20,23 @@ def actor_drink(t):
         t["T_BLADDER"] += 1
 
 
+def play_pee():
+    if action_exists("pee") and world_db["WORLD_ACTIVE"]:
+        if world_db["Things"][0]["T_BLADDER"] < 1:
+            log("Nothing to drop from empty bladder.")
+            return
+        world_db["set_command"]("pee")
+
+
+def actor_pee(t):
+    if t["T_BLADDER"] < 1:
+        return
+    if t == world_db["Things"][0]:
+        log("You LOSE fluid.")
+    terrain = world_db["MAP"][t["pos"]]
+    t["T_BLADDER"] -= 1
+
+
 def play_drop():
     if action_exists("drop") and world_db["WORLD_ACTIVE"]:
         if world_db["Things"][0]["T_BOWEL"] < 1:
@@ -252,6 +269,7 @@ commands_db["move"] = (1, False, play_move)
 commands_db["wait"] = (0, False, play_wait)
 commands_db["drop"] = (0, False, play_drop)
 commands_db["drink"] = (0, False, play_drink)
+commands_db["pee"] = (0, False, play_pee)
 commands_db["use"] = (1, False, lambda x: None)
 commands_db["pickup"] = (0, False, lambda: None)
 commands_db["T_BOWEL"] = (1, False, setter("Thing", "T_BOWEL", 0, 255))
@@ -263,6 +281,7 @@ server.config.actions.action_db = {
     "actor_move": actor_move,
     "actor_drop": actor_drop,
     "actor_drink": actor_drink,
+    "actor_pee": actor_pee,
 }
 
 strong_write(io_db["file_out"], "PLUGIN TheCrawlingEater\n")
-- 
2.30.2