X-Git-Url: https://plomlompom.com/repos/foo.html?a=blobdiff_plain;f=server%2Factions.py;h=ee68866b000dfb238b7c5debd0976d95ad42c85f;hb=9ae02cea8243472195d97b756542f9d344a67459;hp=dd9d9e7f21c294685d76248b0e02b731b2cdec71;hpb=21eb782e7178305ba775749db005304311ef2c1c;p=plomrogue
diff --git a/server/actions.py b/server/actions.py
index dd9d9e7..ee68866 100644
--- a/server/actions.py
+++ b/server/actions.py
@@ -55,7 +55,7 @@ def actor_move(t):
def actor_pickup(t):
- """Make t pick up (topmost?) Thing from ground into inventory.
+ """Make t pick up (topmost?) Thing from ground into inventory. Return it.
Define topmostness by how low the thing's type ID is.
"""
@@ -67,17 +67,19 @@ def actor_pickup(t):
lowest_tid = -1
for iid in ids:
tid = world_db["Things"][iid]["T_TYPE"]
- if lowest_tid == -1 or tid < lowest_tid:
+ from server.config.actions import actor_pickup_test_hook
+ if (lowest_tid == -1 or tid < lowest_tid) and \
+ actor_pickup_test_hook(t, tid):
id = iid
lowest_tid = tid
world_db["Things"][id]["carried"] = True
t["T_CARRIES"].append(id)
if t == world_db["Things"][0]:
log("You PICK UP an object.")
-
+ return world_db["Things"][id]
def actor_drop(t):
- """Make t rop Thing from inventory to ground indexed by T_ARGUMENT."""
+ """Drop to ground from t's inventory, return T_ARGUMENT-indexed Thing."""
# TODO: Handle case where T_ARGUMENT matches nothing.
if len(t["T_CARRIES"]):
id = t["T_CARRIES"][t["T_ARGUMENT"]]
@@ -85,7 +87,7 @@ def actor_drop(t):
world_db["Things"][id]["carried"] = False
if t == world_db["Things"][0]:
log("You DROP an object.")
-
+ return world_db["Things"][id]
def actor_use(t):
"""Make t use (for now: consume) T_ARGUMENT-indexed Thing in inventory."""
@@ -99,5 +101,6 @@ def actor_use(t):
t["T_SATIATION"] += world_db["ThingTypes"][type]["TT_TOOLPOWER"]
if t == world_db["Things"][0]:
log("You CONSUME this thing.")
- elif t == world_db["Things"][0]:
- log("You try to use this object, but FAIL.")
+ else:
+ from server.config.actions import actor_use_attempts_hook
+ actor_use_attempts_hook(t, type)