X-Git-Url: https://plomlompom.com/repos/%7B%7Bprefix%7D%7D/balance2?a=blobdiff_plain;f=server%2Factions.py;h=ee68866b000dfb238b7c5debd0976d95ad42c85f;hb=9ae02cea8243472195d97b756542f9d344a67459;hp=0fd598671e60133be0f330844b87eb4b84a85dc5;hpb=0dd5be3b48b45d1be5cec5ff18f3cb633f99886d;p=plomrogue diff --git a/server/actions.py b/server/actions.py index 0fd5986..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.""" @@ -98,6 +100,7 @@ def actor_use(t): del world_db["Things"][id] t["T_SATIATION"] += world_db["ThingTypes"][type]["TT_TOOLPOWER"] if t == world_db["Things"][0]: - log("You CONSUME this object.") - elif t == world_db["Things"][0]: - log("You try to use this object, but FAIL.") + log("You CONSUME this thing.") + else: + from server.config.actions import actor_use_attempts_hook + actor_use_attempts_hook(t, type)