home · contact · privacy
Replace TT_CONSUMABLE with more general TT_TOOL (type) and TT_TOOLPOWER.
authorChristian Heller <c.heller@plomlompom.de>
Thu, 12 Mar 2015 14:52:26 +0000 (15:52 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Thu, 12 Mar 2015 14:52:26 +0000 (15:52 +0100)
SERVER_COMMANDS
confserver/world
roguelike-server
testing/ref_end
testing/start

index 3763bb7dce9de143292e340d9d84485e630ccbdf..b8385d31c7c2a7bea420d48157f657536894941d 100644 (file)
@@ -194,9 +194,14 @@ to the lowest unused thing type ID. If thing type of ID does not exist yet,
 create it with default name "(none)", corpse ID equal to the new thing type's
 ID, symbol "?", and remaining thing type attributes to 0.
 
-TT_CONSUMABLE [0-65535]
-Set selected thing type's consumability value to argument – the number of
-.satiation score points earned by consuming/using things of that type.
+TT_TOOL [|food]
+(May be left empty.) Defines the way things of the selected type can be used.
+The only options so far that is interpreted is "food" (may be consumed).
+
+TT_TOOLPOWER [0 to 65535]
+Set selected thing type's tool power value to argument. If its tool type is
+"food", this sets the number of .satiation score points earned by consuming
+things of that type.
 
 TT_START_NUMBER [0-255]
 Set selected thing type's number of things of type to spawn on successful
index 676dfe260d7a29adb94ae934aa66e82273cb74d7..669c08859dfce36db45e910e34ab66b25450f176 100644 (file)
@@ -26,7 +26,7 @@ TT_START_NUMBER 1
 TT_LIFEPOINTS 30
 TT_SYMBOL @
 TT_NAME HUMAN
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_STORAGE 5
 
 TT_ID 1
@@ -34,14 +34,14 @@ TT_START_NUMBER 0
 TT_LIFEPOINTS 0
 TT_SYMBOL 0
 TT_NAME GLOBE
-TT_CONSUMABLE 9001
+TT_TOOLPOWER 9001
 
 TT_ID 2
 TT_START_NUMBER 27
 TT_LIFEPOINTS 6
 TT_SYMBOL a
 TT_NAME ANT
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_STORAGE 1
 
 TT_ID 3
@@ -49,7 +49,7 @@ TT_START_NUMBER 9
 TT_LIFEPOINTS 18
 TT_SYMBOL d
 TT_NAME DOG
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_STORAGE 1
 
 TT_ID 4
@@ -57,7 +57,7 @@ TT_START_NUMBER 3
 TT_LIFEPOINTS 54
 TT_SYMBOL b
 TT_NAME BEAR
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_STORAGE 3
 
 TT_ID 5
@@ -65,22 +65,23 @@ TT_START_NUMBER 9
 TT_LIFEPOINTS 0
 TT_SYMBOL $
 TT_NAME DIRT
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 
 TT_ID 6
 TT_START_NUMBER 5
 TT_LIFEPOINTS 0
 TT_SYMBOL m
 TT_NAME 'MAGIC MEAT'
-TT_CONSUMABLE 1024
+TT_TOOLPOWER 1024
 TT_PROLIFERATE 0
+TT_TOOL food
 
 TT_ID 7
 TT_START_NUMBER 10
 TT_LIFEPOINTS 0
 TT_SYMBOL '#'
 TT_NAME 'PLANT #1'
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_PROLIFERATE 192
 
 TT_ID 8
@@ -88,7 +89,7 @@ TT_START_NUMBER 1
 TT_LIFEPOINTS 0
 TT_SYMBOL %
 TT_NAME 'PLANT #2'
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_PROLIFERATE 512
 
 TT_ID 0
index 5c601886facd22777606fa63f8f6f842803ea164..40bfcb84a6fbad44a1642f51b73cac02c7fa708f 100755 (executable)
@@ -311,7 +311,7 @@ def try_worldstate_update():
         def draw_visible_Things(map, run):
             for id in world_db["Things"]:
                 type = world_db["Things"][id]["T_TYPE"]
-                consumable = world_db["ThingTypes"][type]["TT_CONSUMABLE"]
+                consumable = world_db["ThingTypes"][type]["TT_TOOL"] == "food"
                 alive = world_db["ThingTypes"][type]["TT_LIFEPOINTS"]
                 if (0 == run and not consumable and not alive) \
                    or (1 == run and consumable and not alive) \
@@ -358,7 +358,7 @@ def try_worldstate_update():
         mem = world_db["Things"][0]["T_MEMMAP"][:]
         for i in range(2):
             for mt in world_db["Things"][0]["T_MEMTHING"]:
-                consumable = world_db["ThingTypes"][mt[0]]["TT_CONSUMABLE"]
+                consumable = world_db["ThingTypes"][mt[0]]["TT_TOOL"] == "food"
                 if (i == 0 and not consumable) or (i == 1 and consumable):
                     c = world_db["ThingTypes"][mt[0]]["TT_SYMBOL"]
                     mem[(mt[1] * length) + mt[2]] = ord(c)
@@ -798,14 +798,16 @@ def actor_pick_up(t):
             nutritious = 0
             for id in ids:
                 type = world_db["Things"][id]["T_TYPE"]
-                if world_db["ThingTypes"][type]["TT_CONSUMABLE"] > nutritious:
-                    nutritious = world_db["ThingTypes"][type]["TT_CONSUMABLE"]
+                if world_db["ThingTypes"][type]["TT_TOOL"] == "food" \
+                and world_db["ThingTypes"][type]["TT_TOOLPOWER"] > nutritious:
+                    nutritious = world_db["ThingTypes"][type]["TT_TOOLPOWER"]
                     highest_id = id
             world_db["Things"][highest_id]["carried"] = True
-            if (t != world_db["Things"][0] and  # #
-                world_db["Things"][highest_id]["T_PLAYERDROP"]):  # #
-                x = world_db["Things"][highest_id]["T_TYPE"]
-                score = world_db["ThingTypes"][x]["TT_CONSUMABLE"] / 32  # #
+            type = world_db["Things"][highest_id]["T_TYPE"]  # #
+            if (t != world_db["Things"][0] # #
+                and world_db["Things"][highest_id]["T_PLAYERDROP"]  # #
+                and world_db["ThingTypes"][type]["TT_TOOL"] == "food"):  # #
+                score = world_db["ThingTypes"][type]["TT_TOOLPOWER"] / 32  # #
                 add_gods_favor(score)  # #
                 world_db["Things"][highest_id]["T_PLAYERDROP"] = 0  # #
             t["T_CARRIES"].append(highest_id)
@@ -850,10 +852,10 @@ def actor_use(t):
                              + "Island God laughs.\n")  # #
             t["T_LIFEPOINTS"] = 1  # #
             decrement_lifepoints(t)  # #
-        elif world_db["ThingTypes"][type]["TT_CONSUMABLE"]:
+        elif world_db["ThingTypes"][type]["TT_TOOL"] == "food":
             t["T_CARRIES"].remove(id)
             del world_db["Things"][id]
-            t["T_SATIATION"] += world_db["ThingTypes"][type]["TT_CONSUMABLE"]
+            t["T_SATIATION"] += world_db["ThingTypes"][type]["TT_TOOLPOWER"]
             if t == world_db["Things"][0]:
                 strong_write(io_db["file_out"],
                              "LOG You consume this object.\n")
@@ -988,7 +990,7 @@ def get_dir_to_target(t, filter):
             for mt in t["T_MEMTHING"]:
                 if ' ' != chr(t["T_MEMMAP"][(mt[1] * world_db["MAP_LENGTH"])
                                          + mt[2]]) \
-                   and world_db["ThingTypes"][mt[0]]["TT_CONSUMABLE"]:
+                   and world_db["ThingTypes"][mt[0]]["TT_TOOL"] == "food":
                     return True
         return False
 
@@ -1040,7 +1042,7 @@ def get_dir_to_target(t, filter):
                        if ord_blank != t["T_MEMMAP"][mt[1]
                                                     * world_db["MAP_LENGTH"]
                                                     + mt[2]]
-                       if world_db["ThingTypes"][mt[0]]["TT_CONSUMABLE"]]:
+                       if world_db["ThingTypes"][mt[0]]["TT_TOOL"] == "food"]:
                 set_map_score(mt[1] * world_db["MAP_LENGTH"] + mt[2], 0)
         elif "s" == filter:
             zero_score_map_where_char_on_memdepthmap(mem_depth_c[0])
@@ -1126,26 +1128,27 @@ def get_dir_to_target(t, filter):
     return dir_to_target
 
 
-def standing_on_consumable(t):
+def standing_on_food(t):
     """Return True/False whether t is standing on a consumable."""
     for id in [id for id in world_db["Things"] if world_db["Things"][id] != t
                if world_db["Things"][id]["T_POSY"] == t["T_POSY"]
                if world_db["Things"][id]["T_POSX"] == t["T_POSX"]
                if world_db["ThingTypes"][world_db["Things"][id]["T_TYPE"]]
-                          ["TT_CONSUMABLE"]]:
+                  ["TT_TOOL"] == "food"]:
         return True
     return False
 
 
 def get_inventory_slot_to_consume(t):
     """Return slot Id of strongest consumable in t's inventory, else -1."""
-    cmp_consumability = 0
+    cmp_food = 0
     selection = -1
     i = 0
     for id in t["T_CARRIES"]:
         type = world_db["Things"][id]["T_TYPE"]
-        if world_db["ThingTypes"][type]["TT_CONSUMABLE"] > cmp_consumability:
-            cmp_consumability = world_db["ThingTypes"][type]["TT_CONSUMABLE"]
+        if world_db["ThingTypes"][type]["TT_TOOL"] == "food" \
+           and world_db["ThingTypes"][type]["TT_TOOLPOWER"] > cmp_food:
+            cmp_food = world_db["ThingTypes"][type]["TT_TOOLPOWER"]
             selection = i
         i += 1
     return selection
@@ -1172,7 +1175,7 @@ def ai(t):
                               if world_db["ThingActions"][id]["TA_NAME"]
                                  == "use"][0]
             t["T_ARGUMENT"] = sel
-        elif standing_on_consumable(t) \
+        elif standing_on_food(t) \
              and (len(t["T_CARRIES"]) < # #
                  world_db["ThingTypes"][t["T_TYPE"]]["TT_STORAGE"]): # #
             t["T_COMMAND"] = [id for id in world_db["ThingActions"]
@@ -1697,19 +1700,21 @@ def setter_tpos(axis):
 def command_ttid(id_string):
     """Set ID of ThingType to manipulate. ID unused? Create new one.
 
-    Default new ThingType's TT_SYMBOL to "?", TT_CORPSE_ID to self, others: 0.
+    Default new ThingType's TT_SYMBOL to "?", TT_CORPSE_ID to self, TT_TOOL to
+    "", others: 0.
     """
     id = id_setter(id_string, "ThingTypes", command_ttid)
     if None != id:
         world_db["ThingTypes"][id] = {
             "TT_NAME": "(none)",
-            "TT_CONSUMABLE": 0,
+            "TT_TOOLPOWER": 0,
             "TT_LIFEPOINTS": 0,
             "TT_PROLIFERATE": 0,
             "TT_START_NUMBER": 0,
             "TT_STORAGE": 0, # #
             "TT_SYMBOL": "?",
-            "TT_CORPSE_ID": id
+            "TT_CORPSE_ID": id,
+            "TT_TOOL": ""
         }
 
 
@@ -1722,6 +1727,12 @@ def command_ttname(name):
     world_db["ThingTypes"][command_ttid.id]["TT_NAME"] = name
 
 
+@test_ThingType_id
+def command_tttool(name):
+    """Set TT_TOOL of selected ThingType."""
+    world_db["ThingTypes"][command_ttid.id]["TT_TOOL"] = name
+
+
 @test_ThingType_id
 def command_ttsymbol(char):
     """Set TT_SYMBOL of selected ThingType. """
@@ -1815,10 +1826,10 @@ commands_db = {
     "TA_NAME": (1, False, command_taname),
     "TT_ID": (1, False, command_ttid),
     "TT_NAME": (1, False, command_ttname),
+    "TT_TOOL": (1, False, command_tttool),
     "TT_SYMBOL": (1, False, command_ttsymbol),
     "TT_CORPSE_ID": (1, False, command_ttcorpseid),
-    "TT_CONSUMABLE": (1, False, setter("ThingType", "TT_CONSUMABLE",
-                                       0, 65535)),
+    "TT_TOOLPOWER": (1, False, setter("ThingType", "TT_TOOLPOWER", 0, 65535)),
     "TT_START_NUMBER": (1, False, setter("ThingType", "TT_START_NUMBER",
                                          0, 255)),
     "TT_PROLIFERATE": (1, False, setter("ThingType", "TT_PROLIFERATE",
index 84516c9a45e288b92485c3e01797e7dabd7719bf..d5560ea1445cea29d0e74c68fb9af1d988719b62 100644 (file)
@@ -86,77 +86,86 @@ TA_ID 5
 TA_EFFORT 45
 TA_NAME "use"
 TT_ID 0
-TT_SYMBOL "@"
 TT_START_NUMBER 1
+TT_SYMBOL "@"
+TT_TOOLPOWER 0
 TT_NAME "HUMAN"
 TT_PROLIFERATE 0
 TT_STORAGE 5
 TT_LIFEPOINTS 30
-TT_CONSUMABLE 0
+TT_TOOL ""
 TT_ID 1
-TT_SYMBOL "0"
 TT_START_NUMBER 0
+TT_SYMBOL "0"
+TT_TOOLPOWER 9001
 TT_NAME "GLOBE"
 TT_PROLIFERATE 0
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 9001
+TT_TOOL ""
 TT_ID 2
-TT_SYMBOL "a"
 TT_START_NUMBER 27
+TT_SYMBOL "a"
+TT_TOOLPOWER 0
 TT_NAME "ANT"
 TT_PROLIFERATE 0
 TT_STORAGE 1
 TT_LIFEPOINTS 6
-TT_CONSUMABLE 0
+TT_TOOL ""
 TT_ID 3
-TT_SYMBOL "d"
 TT_START_NUMBER 9
+TT_SYMBOL "d"
+TT_TOOLPOWER 0
 TT_NAME "DOG"
 TT_PROLIFERATE 0
 TT_STORAGE 1
 TT_LIFEPOINTS 18
-TT_CONSUMABLE 0
+TT_TOOL ""
 TT_ID 4
-TT_SYMBOL "b"
 TT_START_NUMBER 3
+TT_SYMBOL "b"
+TT_TOOLPOWER 0
 TT_NAME "BEAR"
 TT_PROLIFERATE 0
 TT_STORAGE 3
 TT_LIFEPOINTS 54
-TT_CONSUMABLE 0
+TT_TOOL ""
 TT_ID 5
-TT_SYMBOL "$"
 TT_START_NUMBER 9
+TT_SYMBOL "$"
+TT_TOOLPOWER 0
 TT_NAME "DIRT"
 TT_PROLIFERATE 0
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 0
+TT_TOOL ""
 TT_ID 6
-TT_SYMBOL "m"
 TT_START_NUMBER 5
+TT_SYMBOL "m"
+TT_TOOLPOWER 1024
 TT_NAME "MAGIC MEAT"
 TT_PROLIFERATE 0
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 1024
+TT_TOOL "food"
 TT_ID 7
-TT_SYMBOL "#"
 TT_START_NUMBER 10
+TT_SYMBOL "#"
+TT_TOOLPOWER 0
 TT_NAME "PLANT #1"
 TT_PROLIFERATE 192
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 0
+TT_TOOL ""
 TT_ID 8
-TT_SYMBOL "%"
 TT_START_NUMBER 1
+TT_SYMBOL "%"
+TT_TOOLPOWER 0
 TT_NAME "PLANT #2"
 TT_PROLIFERATE 512
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 0
+TT_TOOL ""
 TT_ID 0
 TT_CORPSE_ID 6
 TT_ID 1
index 455d49d43c00c06752e2c6c420a8699b0e4d8c5c..adefeb34e29318b8be5dc79b204549925a7e8fb0 100644 (file)
@@ -92,7 +92,7 @@ TT_NAME "HUMAN"
 TT_PROLIFERATE 0
 TT_STORAGE 5
 TT_LIFEPOINTS 30
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_ID 1
 TT_SYMBOL "0"
 TT_START_NUMBER 0
@@ -100,7 +100,7 @@ TT_NAME "GLOBE"
 TT_PROLIFERATE 0
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 9001
+TT_TOOLPOWER 9001
 TT_ID 2
 TT_SYMBOL "a"
 TT_START_NUMBER 27
@@ -108,7 +108,7 @@ TT_NAME "ANT"
 TT_PROLIFERATE 0
 TT_STORAGE 1
 TT_LIFEPOINTS 6
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_ID 3
 TT_SYMBOL "d"
 TT_START_NUMBER 9
@@ -116,7 +116,7 @@ TT_NAME "DOG"
 TT_PROLIFERATE 0
 TT_STORAGE 1
 TT_LIFEPOINTS 18
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_ID 4
 TT_SYMBOL "b"
 TT_START_NUMBER 3
@@ -124,7 +124,7 @@ TT_NAME "BEAR"
 TT_PROLIFERATE 0
 TT_STORAGE 3
 TT_LIFEPOINTS 54
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_ID 5
 TT_SYMBOL "$"
 TT_START_NUMBER 9
@@ -132,7 +132,7 @@ TT_NAME "DIRT"
 TT_PROLIFERATE 0
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_ID 6
 TT_SYMBOL "m"
 TT_START_NUMBER 5
@@ -140,7 +140,8 @@ TT_NAME "MAGIC MEAT"
 TT_PROLIFERATE 0
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 1024
+TT_TOOLPOWER 1024
+TT_TOOL food
 TT_ID 7
 TT_SYMBOL "#"
 TT_START_NUMBER 10
@@ -148,7 +149,7 @@ TT_NAME "PLANT #1"
 TT_PROLIFERATE 192
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_ID 8
 TT_SYMBOL "%"
 TT_START_NUMBER 1
@@ -156,7 +157,7 @@ TT_NAME "PLANT #2"
 TT_PROLIFERATE 512
 TT_STORAGE 0
 TT_LIFEPOINTS 0
-TT_CONSUMABLE 0
+TT_TOOLPOWER 0
 TT_ID 0
 TT_CORPSE_ID 6
 TT_ID 1
@@ -954,4 +955,4 @@ T_POSX 39
 T_PROGRESS 0
 T_SATIATION 0
 SEED_RANDOMNESS 2875680865
-WORLD_ACTIVE 1
\ No newline at end of file
+WORLD_ACTIVE 1