home · contact · privacy
TCE: Add help texts, improve log texts, minor interface fixes. tce
authorChristian Heller <c.heller@plomlompom.de>
Sun, 13 Mar 2016 22:47:08 +0000 (23:47 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 13 Mar 2016 22:47:08 +0000 (23:47 +0100)
plugins/client/TheCrawlingEater.py
plugins/server/TheCrawlingEater.py

index 0f4b9a2613ed761a09bd33a7f0172b2bc028faa8..1a6274e20f5627f6e3e3f516f5326a0a52f43cfd 100644 (file)
@@ -139,6 +139,14 @@ world_data["bowel"] = 0
 world_data["bladder"] = 0
 world_data["wetmap"] = " " * (world_data["map_size"] ** 2)
 world_data["soundmap"] = " " * (world_data["map_size"] ** 2)
+world_data["log"] = [
+"This is not the environment you are used to. This is not the body you are use"
+"d to. Surely this is a dream. But you have a feeling you might not wake up. U"
+"nless you find a way out of here. Until then, you must survive. Explore, keep"
+" fed, and hydrated. And avoid things that move by themselves.",
+"",
+"[hit '0' for help]"
+]
 from client.config.io import io
 io["worldstate_read_order"] += [["stomach", "int"]]
 io["worldstate_read_order"] += [["kidney", "int"]]
@@ -154,14 +162,18 @@ windows_config[:] = [
      "func": win_map,
      "scroll_hints": False,
       "title": "THE CRAWLING EATER"},
+    {"config": [1, 32],
+     "func": win_bar_maker(76, "+", "grace"),
+     "scroll_hints": False,
+      "title": "grace"},
     {"config": [1, 32],
      "func": win_bar_maker(77, "%", "stomach"),
      "scroll_hints": False,
-     "title": "stomach"},
+     "title": "calories"},
     {"config": [1, 32],
      "func": win_bar_maker(79, "~", "kidney"),
      "scroll_hints": False,
-      "title": "kidney"},
+      "title": "hydration"},
     {"config": [1, 32],
      "func": win_bar_maker(78, "%", "bowel"),
      "scroll_hints": False,
@@ -170,10 +182,6 @@ windows_config[:] = [
      "func": win_bar_maker(80, "~", "bladder"),
      "scroll_hints": False,
       "title": "bladder"},
-    {"config": [1, 32],
-     "func": win_bar_maker(76, "+", "grace"),
-     "scroll_hints": False,
-      "title": "grace"},
     {"config": [-10, 32],
      "func": win_log,
      "scroll_hints": False,
@@ -183,10 +191,16 @@ from client.window_management import set_windows
 set_windows()
 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"),)
+commands["o"] = (command_sender("drop"),)
+commands["i"] = (command_sender("drink"),)
+commands["p"] = (command_sender("pee"),)
+commands["0"] = (command_sender("HELP 0"),)
 commands["1"] = (command_sender("HELP 1"),)
 commands["2"] = (command_sender("HELP 2"),)
 commands["3"] = (command_sender("HELP 3"),)
 commands["4"] = (command_sender("HELP 4"),)
+commands["5"] = (command_sender("HELP 5"),)
+commands["6"] = (command_sender("HELP 6"),)
+commands["7"] = (command_sender("HELP 7"),)
+commands["8"] = (command_sender("HELP 8"),)
+commands["9"] = (command_sender("HELP 9"),)
index 6625273e1b6d7db159fd47ff6812a678f7e320c8..b456ee7af45a53f71e46f714cad04291da284c01 100644 (file)
@@ -7,9 +7,95 @@ from server.config.world_data import world_db
 
 
 def command_help(str_int):
-    val = integer_test(str_int, 0, 4)
+    val = integer_test(str_int, 0, 9)
     if None != val:
-        log(str_int)
+        if val == 0:
+            log(" ")
+            log("[HELP SCREEN 0: help screen list]")
+            log("0 - this screen")
+            log("1 - key bindings")
+            log("2 - environment 1/3")
+            log("3 - environment 2/3")
+            log("4 - environment 3/3")
+            log("5 - other beings")
+            log("6 - winning")
+            log("7 - restart and replay")
+            log("For more, see ./README or ./README_TCE files.")
+            pass
+        elif val == 1:
+            log(" ")
+            log("[HELP SCREEN 1: key bindings]")
+            log("movement/eating: w/e/d/c/x/s")
+            log("drink: i")
+            log("defecate: o")
+            log("pee: p")
+            log("autopilot: A")
+            log("look mode: l")
+            log("quit: Q")
+            log("help screens: 1/2/3/4/5/6/7/8/9")
+            log("help overview: 0")
+        elif val == 2:
+            log(" ")
+            log("[HELP SCREEN 2: environment 1/3]")
+            log("There is mostly solid matter and fluid. "
+                "'_', '.', ':' are ground, '%', '#', 'X' are walls. "
+                "Less thick ones can be eaten."
+                "Background color indicates fluid concentration. "
+                "'O'/'0' is holes; stepping into them is dangerous."
+                "'-' and '+' are cracks in the ground, and may becomes holes. "
+                "'$' is special places that will change you. "
+                "Learn more in HELP SCREEN 3."
+                )
+        elif val == 3:
+            log(" ")
+            log("[HELP SCREEN 3: environment 2/3]")
+            log("Use the 'l' command to investigate the environment. "
+                "Its cursor will describe the area pointed at by two numbers: "
+                "ground elevation/matter thickness (left), wetness (right). "
+                "You cannot breathe there if the sum of both is > 5. "
+                "Greater ground elevation means slower movement."
+               )
+        elif val == 4:
+            log(" ")
+            log("[HELP SCREEN 4: environment 3/3]")
+            log("Waste will pile up to ground matter an walls. "
+                "Fluid will trickle down into the environment. "
+                "General humidity will sparkle up new fluid on the ground "
+                "level ('_'). "
+                "Only from there can you drink fluid. "
+                "Much fluid on a ground level tile creates potential for "
+                "cracks to appear there. They may be sealed with waste."
+                )
+        elif val == 5:
+            log(" ")
+            log("[HELP SCREEN 5: other beings]")
+            log(" '?' on the memory map indicate sounds of movement. "
+                "You may encounter the sources. They appear as the general "
+                "humidity of the environment grows, grown from its fluids and " 
+                "earth. "
+               )
+        elif val == 6:
+            log(" ")
+            log("[HELP SCREEN 6: winning]")
+            log("Find '$' tiles. Don't dump waste and fluids on fields with "
+                "great elevation and wetness sums. Control ground wetness "
+                "by providing great or small ground space for fluid sparkling " 
+                "up to concentrate in. "
+                "A special kind of hole will only evolve from a 'O' hole that "
+                "is surrounded by six other holes."
+               )
+        elif val == 7:
+            log(" ")
+            log("[HELP SCREEN 7: restart and replay]")
+            log("You can restart in a new game world by running "
+                "./roguelike -n. You can replay a record of your current game"
+                " by running ./roguelike -s."
+                "See file ./README for more details."
+               )
+        else:
+            log(" ")
+            log("No HELP SCREEN defined for this number.")
+            log(" ")
 
 
 def command_ai():
@@ -50,7 +136,7 @@ def play_pee():
             and world_db["Things"][0]["T_LIFEPOINTS"] > 0):
         return
     if world_db["Things"][0]["T_BLADDER"] < 1:
-        log("Nothing to drop from empty bladder.")
+        log("NOTHING to drop from empty bladder.")
         return
     world_db["set_command"]("pee")
 
@@ -72,7 +158,7 @@ def play_drop():
             and world_db["Things"][0]["T_LIFEPOINTS"] > 0):
         return
     if world_db["Things"][0]["T_BOWEL"] < 1:
-        log("Nothing to drop from empty bowel.")
+        log("NOTHING to drop from empty bowel.")
         return
     world_db["set_command"]("drop")
 
@@ -113,7 +199,7 @@ def play_move(str_arg):
         if len(hitted) > 0:
             if t["T_STOMACH"] >= 32 and t["T_KIDNEY"] >= 32:
                 if t == world_db["Things"][0]:
-                    log("You're too FULL to suck from another creature.")
+                    log("You're too FULL to suck resources from another creature.")
                 return
             world_db["Things"][0]["T_ARGUMENT"] = d
             world_db["set_command"]("eat")
@@ -181,13 +267,13 @@ def actor_eat(t):
                     world_db["suck_out_creature"](None, hit_id)
                     return
                 hitted_name = world_db["ThingTypes"][hitted_tid]["TT_NAME"]
-                log("You SUCK from " + hitted_name + ".")
+                log("You SUCK resources from " + hitted_name + ".")
             elif 0 == hit_id:
                 if world_db["GRACE"] >= 16:
                     world_db["suck_out_creature"](t, None)
                     return
                 hitter_name = world_db["ThingTypes"][t["T_TYPE"]]["TT_NAME"]
-                log(hitter_name +" SUCKS from you.")
+                log(hitter_name +" SUCKS resources from you.")
             hitted = world_db["Things"][hit_id]
             if t["T_STOMACH"] < 32:
                 t["T_STOMACH"] = t["T_STOMACH"] + 1
@@ -254,14 +340,15 @@ def actor_move(t):
         world_db["soundmap"][t["pos"]] = ord("9")
         if t == world_db["Things"][0] and world_db["MAP"][t["pos"]] == ord("$"):
             world_db["MAP"][t["pos"]] = ord("0")
+            log("You feel a strange AURA from this place.")
             if world_db["GRACE"] == 0:
                 log("You can now eat ALL walls.")
             elif world_db["GRACE"] == 8:
-                log("You now have the DEATH touch.")
+                log("You now have a DEATH touch towards other creatures.")
             elif world_db["GRACE"] == 16:
-                log("You will now LEVITATE over holes.")
+                log("You can now LEVITATE over holes.")
             elif world_db["GRACE"] == 24:
-                log("You are now READY to fly through the exit portal.")
+                log("You are now READY to leave through a special hole.")
             elif world_db["GRACE"] == 32:
                 log("You already have all the GRACE you can get.")
             if world_db["GRACE"] <= 24:
@@ -272,13 +359,16 @@ def actor_move(t):
 
 def test_hole(t):
     if t == world_db["Things"][0]:
-        if world_db["GRACE"] >= 32 and world_db["MAP"][t["pos"]] == ord("&"):
-            world_db["die"](t, "YOU WIN, CONGRATULATIONS.")
+        if world_db["GRACE"] < 32 and world_db["MAP"][t["pos"]] == ord("&"):
+            log("You feel you need more GRACE to leave through this hole.")
+        elif world_db["GRACE"] >= 32 and world_db["MAP"][t["pos"]] == ord("&"):
+            world_db["die"](t, "You FLY through the hole, into your waking life."
+                            "Good bye, and CONGRATULATIONS.")
             return False
         if world_db["GRACE"] >= 24:
             return True
     if chr(world_db["MAP"][t["pos"]]) in "*&":
-        world_db["die"](t, "You FALL in a hole, and die.")
+        world_db["die"](t, "You FALL into a hole, and die.")
         return False
     return True
 world_db["test_hole"] = test_hole
@@ -286,7 +376,7 @@ world_db["test_hole"] = test_hole
 
 def test_air(t):
     if world_db["terrain_fullness"](t["pos"]) > 5:
-        world_db["die"](t, "You SUFFOCATE")
+        world_db["die"](t, "You SUFFOCATE.")
         return False
     return True
 world_db["test_air"] = test_air