X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=server%2Fcommands.py;h=3717202e38354c7b38eb585ac2d948870dae5b69;hb=9b4d5b6840ccb2618362d563ae8beb37b10b9326;hp=31bbea633023bca3d5edff3e5e29b7fedc9d12f4;hpb=a9a439607a1bd860c4274e77b42bbf6f16a333da;p=plomrogue diff --git a/server/commands.py b/server/commands.py index 31bbea6..3717202 100644 --- a/server/commands.py +++ b/server/commands.py @@ -7,16 +7,18 @@ 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 build_fov_map, update_map_memory, set_world_inactive,\ - turn_over +from server.world import set_world_inactive, turn_over +from server.update_map_memory import update_map_memory +from server.build_fov_map import build_fov_map def command_plugin(str_plugin): """Run code in plugins/[str_plugin].""" import os if (str_plugin.replace("_", "").isalnum() - and os.access("plugins/" + str_plugin, os.F_OK)): - exec(open("plugins/" + str_plugin).read()) + and os.access("plugins/server/" + str_plugin + ".py", os.F_OK)): + exec(open("plugins/server/" + str_plugin + ".py").read()) + world_db["PLUGIN"] += [str_plugin] return print("Bad plugin name:", str_plugin) @@ -82,8 +84,8 @@ def command_makeworld(seed_string): """Call make_world().""" val = integer_test(seed_string, 0, 4294967295) if None != val: - from server.world import make_world - make_world(val) + from server.config.misc import make_world_func + make_world_func(val) def command_maplength(maplength_string): @@ -148,7 +150,7 @@ def command_tid(id_string): print("Ignoring: No ThingType to settle new Thing in.") return type = list(world_db["ThingTypes"].keys())[0] - from server.world import new_Thing + from server.new_thing import new_Thing world_db["Things"][id] = new_Thing(type) @@ -305,7 +307,7 @@ def command_taname(name): setting no ThingAction with name "wait" remains, call set_world_inactive(). """ if name == "wait" or name == "move" or name == "use" or name == "drop" \ - or name == "pick_up": + or name == "pickup": world_db["ThingActions"][command_taid.id]["TA_NAME"] = name if 1 == world_db["WORLD_ACTIVE"]: wait_defined = False @@ -429,14 +431,14 @@ def play_wait(): def action_exists(action): matching_actions = [x for x in world_db["ThingActions"] if world_db["ThingActions"][x]["TA_NAME"] == action] - if len(matching_actions) > 1: + if len(matching_actions) >= 1: return True print("No appropriate ThingAction defined.") return False def play_pickup(): - """Try "pick_up" as player's T_COMMAND".""" + """Try "pickup" as player's T_COMMAND".""" if action_exists("pickup"): t = world_db["Things"][0] ids = [id for id in world_db["Things"] if id @@ -446,7 +448,7 @@ def play_pickup(): if not len(ids): log("NOTHING to pick up.") else: - set_command("pick_up") + set_command("pickup") def play_drop(str_arg): @@ -487,7 +489,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"): - from server.config.world_data import directions_db + from server.config.world_data import directions_db, symbols_passable t = world_db["Things"][0] if not str_arg in directions_db: print("Illegal move direction string.") @@ -497,7 +499,10 @@ def play_move(str_arg): move_result = mv_yx_in_dir_legal(chr(dir), t["T_POSY"], t["T_POSX"]) if 1 == move_result[0]: pos = (move_result[1] * world_db["MAP_LENGTH"]) + move_result[2] - if ord(".") == world_db["MAP"][pos]: + if ord("~") == world_db["MAP"][pos]: + log("You can't SWIM.") + return + if chr(world_db["MAP"][pos]) in symbols_passable: world_db["Things"][0]["T_ARGUMENT"] = dir set_command("move") return @@ -506,6 +511,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]) + from server.config.actions import ai_func + ai_func(world_db["Things"][0]) turn_over()