home · contact · privacy
Server: Add WORLD_ACTIVE checks.
[plomrogue] / server / commands.py
index 536e330522a6c98e2c8a8d26856049da79db43a9..b8216a0fec6433699401b6eefc9cfa4bf41a7080 100644 (file)
@@ -7,7 +7,7 @@ from server.config.world_data import world_db
 from server.config.io import io_db
 from server.io import log, strong_write 
 from server.utils import integer_test, id_setter
-from server.world import set_world_inactive, turn_over
+from server.world import set_world_inactive, turn_over, eat_vs_hunger_threshold
 from server.update_map_memory import update_map_memory
 from server.build_fov_map import build_fov_map
 
@@ -300,6 +300,13 @@ def command_ttcorpseid(str_int):
             print("Ignoring: Corpse ID belongs to no known ThignType.")
 
 
+@test_ThingType_id
+def command_ttlifepoints(val_string):
+    setter("ThingType", "TT_LIFEPOINTS", 0, 255)(val_string)
+    tt = world_db["ThingTypes"][command_ttid.id]
+    tt["eat_vs_hunger_threshold"] = eat_vs_hunger_threshold(command_ttid.id)
+
+
 @test_ThingAction_id
 def command_taname(name):
     """Set TA_NAME of selected ThingAction.
@@ -320,6 +327,15 @@ def command_taname(name):
         print("Ignoring: Invalid action name.")
 
 
+@test_ThingAction_id
+def command_taeffort(val_string):
+    setter("ThingAction", "TA_EFFORT", 0, 255)(val_string)
+    if world_db["ThingActions"][command_taid.id]["TA_NAME"] == "use":
+        for ttid in world_db["ThingTypes"]:
+            tt = world_db["ThingTypes"][ttid]
+            tt["eat_vs_hunger_threshold"] = eat_vs_hunger_threshold(ttid)
+
+
 def setter(category, key, min, max=None):
     """Build setter for world_db([category + "s"][id])[key] to >=min/<=max."""
     if category is None:
@@ -425,7 +441,8 @@ def set_command(action):
 
 def play_wait():
     """Try "wait" as player's T_COMMAND."""
-    set_command("wait")
+    if world_db["WORLD_ACTIVE"]:
+        set_command("wait")
 
 
 def action_exists(action):
@@ -439,7 +456,7 @@ def action_exists(action):
 
 def play_pickup():
     """Try "pickup" as player's T_COMMAND"."""
-    if action_exists("pickup"):
+    if action_exists("pickup") and world_db["WORLD_ACTIVE"]:
         t = world_db["Things"][0]
         ids = [tid for tid in world_db["Things"] if tid
                if not world_db["Things"][tid]["carried"]
@@ -453,7 +470,7 @@ def play_pickup():
 
 def play_drop(str_arg):
     """Try "drop" as player's T_COMMAND, int(str_arg) as T_ARGUMENT / slot."""
-    if action_exists("drop"):
+    if action_exists("drop") and world_db["WORLD_ACTIVE"]:
         t = world_db["Things"][0]
         if 0 == len(t["T_CARRIES"]):
             log("You have NOTHING to drop in your inventory.")
@@ -468,7 +485,7 @@ def play_drop(str_arg):
 
 def play_use(str_arg):
     """Try "use" as player's T_COMMAND, int(str_arg) as T_ARGUMENT / slot."""
-    if action_exists("use"):
+    if action_exists("use") and world_db["WORLD_ACTIVE"]:
         t = world_db["Things"][0]
         if 0 == len(t["T_CARRIES"]):
             log("You have NOTHING to use in your inventory.")
@@ -491,7 +508,7 @@ def play_use(str_arg):
 
 def play_move(str_arg):
     """Try "move" as player's T_COMMAND, str_arg as T_ARGUMENT / direction."""
-    if action_exists("move"):
+    if action_exists("move") and world_db["WORLD_ACTIVE"]:
         from server.config.world_data import directions_db, symbols_passable
         t = world_db["Things"][0]
         if not str_arg in directions_db:
@@ -518,5 +535,6 @@ def play_move(str_arg):
 def command_ai():
     """Call ai() on player Thing, then turn_over()."""
     from server.ai import ai
-    ai(world_db["Things"][0])
-    turn_over()
+    if world_db["WORLD_ACTIVE"]:
+        ai(world_db["Things"][0])
+        turn_over()