X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plugins%2Fserver%2FPleaseTheIslandGod.py;h=8a3242bee4105baa20203ec59e779901170e6d21;hb=d9780e39a50655f03f5dfaf4a157f8be5ac6347c;hp=f4f5e6ee9ef8a6c6c9f46d84cb32bafabcffd49d;hpb=e94d05a97d5470560b69d55f0394dce096d8638b;p=plomrogue diff --git a/plugins/server/PleaseTheIslandGod.py b/plugins/server/PleaseTheIslandGod.py index f4f5e6e..8a3242b 100644 --- a/plugins/server/PleaseTheIslandGod.py +++ b/plugins/server/PleaseTheIslandGod.py @@ -65,7 +65,7 @@ def make_world(seed): print("Ignoring: No valid " + name + " set.") return world_db["Things"] = {} - make_map() + make_map_func() world_db["WORLD_ACTIVE"] = 1 world_db["TURN"] = 1 for i in range(world_db["ThingTypes"][playertype]["TT_START_NUMBER"]): @@ -507,39 +507,35 @@ def actor_move(t): return if (ord("X") == world_db["MAP"][pos] or ord("|") == world_db["MAP"][pos]): - carries_axe = False for id in t["T_CARRIES"]: type = world_db["Things"][id]["T_TYPE"] if world_db["ThingTypes"][type]["TT_TOOL"] == "axe": - carries_axe = True - break - if carries_axe: - axe_name = world_db["ThingTypes"][type]["TT_NAME"] - if t == world_db["Things"][0]: - log("With your " + axe_name + ", you chop!") - if ord("X") == world_db["MAP"][pos]: - world_db["GOD_FAVOR"] -= 1 - chop_power = world_db["ThingTypes"][type]["TT_TOOLPOWER"] - - case_X = world_db["MAP"][pos] == ord("X") - if (chop_power > 0 - and ((case_X and - 0 == int(rand.next() / chop_power)) - or (not case_X and - 0 == int(rand.next() / (3 * chop_power))))): + axe_name = world_db["ThingTypes"][type]["TT_NAME"] if t == world_db["Things"][0]: - log("You chop it DOWN.") + log("With your " + axe_name + ", you chop!") if ord("X") == world_db["MAP"][pos]: - world_db["GOD_FAVOR"] -= 10 - world_db["MAP"][pos] = ord(".") - i = 3 if case_X else 1 - for i in range(i): - id = id_setter(-1, "Things") - world_db["Things"][id] = \ - new_Thing(world_db["LUMBER"], - (move_result[1], move_result[2])) - build_fov_map(t) - return + world_db["GOD_FAVOR"] -= 1 + chop_power = world_db["ThingTypes"][type]["TT_TOOLPOWER"] + + case_X = world_db["MAP"][pos] == ord("X") + if (chop_power > 0 + and ((case_X and + 0 == int(rand.next() / chop_power)) + or (not case_X and + 0 == int(rand.next() / (3 * chop_power))))): + if t == world_db["Things"][0]: + log("You chop it DOWN.") + if ord("X") == world_db["MAP"][pos]: + world_db["GOD_FAVOR"] -= 10 + world_db["MAP"][pos] = ord(".") + i = 3 if case_X else 1 + for i in range(i): + id = id_setter(-1, "Things") + world_db["Things"][id] = \ + new_Thing(world_db["LUMBER"], + (move_result[1], move_result[2])) + build_fov_map(t) + return passable = chr(world_db["MAP"][pos]) in symbols_passable dir = [dir for dir in directions_db if directions_db[dir] == chr(t["T_ARGUMENT"])][0] @@ -580,41 +576,44 @@ def command_worldactive(worldactive_string): else: print("World already active.") elif 0 == world_db["WORLD_ACTIVE"]: - wait_exists = False for ThingAction in world_db["ThingActions"]: if "wait" == world_db["ThingActions"][ThingAction]["TA_NAME"]: - wait_exists = True break - player_exists = False + else: + print("Ignored: No wait action defined for world to activate.") + return for Thing in world_db["Things"]: if 0 == Thing: - player_exists = True break - altar_found = False + else: + print("Ignored: No player defined for world to activate.") + return if world_db["MAP"]: pos = world_db["MAP"].find(b'_') if pos > 0: y = int(pos / world_db["MAP_LENGTH"]) x = pos % world_db["MAP_LENGTH"] world_db["altar"] = (y, x) - altar_found = True - specials_set = True + else: + print("Ignored: No altar defined for world to activate.") + return + else: + print("Ignored: No map defined for world to activate.") + return for name in world_db["specials"]: if world_db[name] not in world_db["ThingTypes"]: - specials_set = False - if altar_found and wait_exists and player_exists and \ - world_db["MAP"] and specials_set: - for id in world_db["Things"]: - if world_db["Things"][id]["T_LIFEPOINTS"]: - build_fov_map(world_db["Things"][id]) - if 0 == id: - update_map_memory(world_db["Things"][id], False) - if not world_db["Things"][0]["T_LIFEPOINTS"]: - empty_fovmap = bytearray(b" " * world_db["MAP_LENGTH"] ** 2) - world_db["Things"][0]["fovmap"] = empty_fovmap - world_db["WORLD_ACTIVE"] = 1 - else: - print("Ignoring: Not all conditions for world activation met.") + print("Ignored: Not all specials set for world to " + "activate.") + return + for id in world_db["Things"]: + if world_db["Things"][id]["T_LIFEPOINTS"]: + build_fov_map(world_db["Things"][id]) + if 0 == id: + update_map_memory(world_db["Things"][id], False) + if not world_db["Things"][0]["T_LIFEPOINTS"]: + empty_fovmap = bytearray(b" " * world_db["MAP_LENGTH"] ** 2) + world_db["Things"][0]["fovmap"] = empty_fovmap + world_db["WORLD_ACTIVE"] = 1 def play_move(str_arg): if action_exists("move"):