X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=plugins%2Fserver%2FPleaseTheIslandGod.py;h=17a5bbd1d1ab2c1287c0bc9b90e404f604ccfa8b;hb=b84f1388810d132e66f55e199cfc62a8feb97536;hp=95b46d0f18fd4595e82db847daa1780d2e8d0e87;hpb=1a424fe732e404f79b5e67243af46291d192134b;p=plomrogue diff --git a/plugins/server/PleaseTheIslandGod.py b/plugins/server/PleaseTheIslandGod.py index 95b46d0..17a5bbd 100644 --- a/plugins/server/PleaseTheIslandGod.py +++ b/plugins/server/PleaseTheIslandGod.py @@ -46,16 +46,16 @@ def make_map(): world_db["altar"] = (y, x) altar_placed = True -def field_spreadable(c, t): +def thingprol_field_spreadable(c, t): return ":" == c or (world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"] and "." == c) -def thingprol_plugin_conditions(t): +def thingprol_test(t): tt = world_db["ThingTypes"][t["T_TYPE"]] return (tt["TT_LIFEPOINTS"] == 0 or \ t["T_LIFEPOINTS"] >= 0.9 * tt["TT_LIFEPOINTS"]) -def thingprol_plugin_post_create_hook(t): +def thingprol_post_create(t): tt = world_db["ThingTypes"][t["T_TYPE"]] if (world_db["FAVOR_STAGE"] > 0 and t["T_TYPE"] == world_db["PLANT_0"]): world_db["GOD_FAVOR"] += 5 @@ -85,10 +85,10 @@ def actor_pickup(t): log("CAN'T pick up object: No storage room to carry more.") def actor_pickup_test_hook(t, tid): - from server.ai import eat_vs_hunger_threshold tt = world_db["ThingTypes"][tid] return not (t != world_db["Things"][0] and (tt["TT_TOOL"] != "food" or - (tt["TT_TOOLPOWER"] <= eat_vs_hunger_threshold(t["T_TYPE"])))) + (tt["TT_TOOLPOWER"] <= + world_db["ThingTypes"][t["T_TYPE"]]["eat_vs_hunger_threshold"]))) def actor_drop(t): from server.actions import actor_drop @@ -101,7 +101,7 @@ def actor_use_attempts_hook(t, ty): if t == world_db["Things"][0]: log("You use the " + world_db["ThingTypes"][ty]["TT_NAME"] + ". " \ "It glows in wondrous colors, and emits a sound as if from a d" - "ying cat. The Island God laughs.\n") + "ying cat. The Island God laughs.") t["T_LIFEPOINTS"] = 1 from server.config.misc import decrement_lifepoints decrement_lifepoints(t) @@ -193,10 +193,10 @@ def actor_move(t): altar_msg_6 = "The Island God speaks to you: \"You have proven yourself " \ "worthy of my respect. You were a good citizen to the island, and someti" \ "mes a better steward to its inhabitants than me. The island shall miss " \ - "you when you leave. But you have earned the right to do so. Take this" + \ - world_db["ThingTypes"][world_db["SLIPPERS"]]["TT_NAME"] + " and USE it w" \ - "hen you please. It will take you to where you came from. (But do feel f" \ - "ree to stay here as long as you like.)\"" + "you when you leave. But you have earned the right to do so. Take this " \ + + world_db["ThingTypes"][world_db["SLIPPERS"]]["TT_NAME"] + " and USE i" \ + "t when you please. It will take you to where you came from. (But do fe" \ + "el free to stay here as long as you like.)\"" def enter_altar(): from server.new_thing import new_Thing @@ -211,7 +211,7 @@ def actor_move(t): altar_msg_wait(100) elif world_db["FAVOR_STAGE"] == 1 and world_db["GOD_FAVOR"] >= 100: world_db["FAVOR_STAGE"] = 2 - log(altar_msg_2) + log(altar_msg_1) id = id_setter(-1, "Things") world_db["Things"][id] = new_Thing(world_db["PLANT_1"], world_db["altar"]) @@ -375,17 +375,19 @@ def play_use_attempt_hook(t, tt): wood_id = tid break if wood_id == None: - log("You CAN'T use a " + world_db["ThingTypes"][type]["TT_NAME"] + log("You CAN'T use a " + tt["TT_NAME"] + " without some wood in your inventory.") return False - elif (tt["TT_TOOL"] == "fertilizer" - and not world_db["MAP"][pos] == ord(".")): - log("Can only make soil out of NON-SOIL earth.") - return False + return True + elif tt["TT_TOOL"] == "fertilizer": + if not world_db["MAP"][pos] == ord("."): + log("Can only make soil out of NON-SOIL earth.") + return False + return True elif tt["TT_TOOL"] == "wood": log("To use wood, you NEED a carpentry tool.") return False - elif type == world_db["SLIPPERS"]: + elif tt == world_db["ThingTypes"][world_db["SLIPPERS"]]: return True def play_pickup_attempt_hook(t): @@ -410,19 +412,17 @@ def write_metamap_A(): ord_v = ord("v") length = world_db["MAP_LENGTH"] metamapA = bytearray(b'0' * (length ** 2)) - for id in [id for id in world_db["Things"] - if not world_db["Things"][id]["carried"] - if world_db["Things"][id]["T_LIFEPOINTS"] + for tid in [tid for tid in world_db["Things"] + if not world_db["Things"][tid]["carried"] + if world_db["Things"][tid]["T_LIFEPOINTS"] if world_db["Things"][0]["fovmap"][ - world_db["Things"][id]["T_POSY"] * length - + world_db["Things"][id]["T_POSX"]] == ord_v]: - pos = (world_db["Things"][id]["T_POSY"] * length - + world_db["Things"][id]["T_POSX"]) - if id == 0 or world_db["EMPATHY"]: - type = world_db["Things"][id]["T_TYPE"] - max_hp = world_db["ThingTypes"][type]["TT_LIFEPOINTS"] + world_db["Things"][tid]["pos"]] == ord_v]: + pos = (world_db["Things"][tid]["pos"]) + if tid == 0 or world_db["EMPATHY"]: + ttid = world_db["Things"][tid]["T_TYPE"] + max_hp = world_db["ThingTypes"][ttid]["TT_LIFEPOINTS"] third_of_hp = max_hp / 3 - hp = world_db["Things"][id]["T_LIFEPOINTS"] + hp = world_db["Things"][tid]["T_LIFEPOINTS"] add = 0 if hp > 2 * third_of_hp: add = 2 @@ -442,16 +442,14 @@ def write_metamap_B(): ord_v = ord("v") length = world_db["MAP_LENGTH"] metamapB = bytearray(b' ' * (length ** 2)) - for id in [id for id in world_db["Things"] - if not world_db["Things"][id]["carried"] - if world_db["Things"][id]["T_LIFEPOINTS"] + for tid in [tid for tid in world_db["Things"] + if not world_db["Things"][tid]["carried"] + if world_db["Things"][tid]["T_LIFEPOINTS"] if world_db["Things"][0]["fovmap"][ - world_db["Things"][id]["T_POSY"] * length - + world_db["Things"][id]["T_POSX"]] == ord_v]: - pos = (world_db["Things"][id]["T_POSY"] * length - + world_db["Things"][id]["T_POSX"]) - if id == 0 or world_db["EMPATHY"]: - action = world_db["Things"][id]["T_COMMAND"] + world_db["Things"][tid]["pos"]] == ord_v]: + pos = (world_db["Things"][tid]["pos"]) + if tid == 0 or world_db["EMPATHY"]: + action = world_db["Things"][tid]["T_COMMAND"] if 0 != action: name = world_db["ThingActions"][action]["TA_NAME"] else: @@ -492,6 +490,9 @@ io_db["worldstate_write_order"] += [[write_metamap_B, "func"]] import server.config.world_data server.config.world_data.symbols_passable += ":_" +server.config.world_data.thingprol_field_spreadable = thingprol_field_spreadable +server.config.world_data.thingprol_test_hook = thingprol_test +server.config.world_data.thingprol_post_create_hook = thingprol_post_create from server.config.world_data import thing_defaults, thingtype_defaults thing_defaults["T_PLAYERDROP"] = 0 @@ -509,7 +510,7 @@ from server.config.commands import commands_db commands_db["GOD_FAVOR"] = (1, False, setter(None, "GOD_FAVOR", -32768, 32767)) commands_db["TT_STORAGE"] = (1, False, setter("ThingType", "TT_STORAGE", 0, 255)) commands_db["T_PLAYERDROP"] = (1, False, setter("Thing", "T_PLAYERDROP", 0, 1)) -commands_db["FAVOR_STAGE"] = (1, False, setter(None, "FAVOR_STAGE", 0, 1)) +commands_db["FAVOR_STAGE"] = (1, False, setter(None, "FAVOR_STAGE", 0, 255)) commands_db["SLIPPERS"] = (1, False, specialtypesetter("SLIPPERS")) commands_db["TOOL_0"] = (1, False, specialtypesetter("TOOL_0")) commands_db["TOOL_1"] = (1, False, specialtypesetter("TOOL_1")) @@ -536,12 +537,5 @@ server.config.make_world_helpers.pos_test = pos_test server.config.make_world_helpers.world_makable = world_makable server.config.make_world_helpers.make_map = make_map -import server.config.thingproliferation -server.config.thingproliferation.field_spreadable = field_spreadable -server.config.thingproliferation.thingprol_plugin_conditions = \ - thingprol_plugin_conditions -server.config.thingproliferation.thingprol_plugin_post_create_hook = \ - thingprol_plugin_post_create_hook - import server.config.ai -server.config.ai.ai_hook_pickup = ai_hook_pickup_test +server.config.ai.ai_hook_pickup_test = ai_hook_pickup_test