X-Git-Url: https://plomlompom.com/repos/?p=plomrogue;a=blobdiff_plain;f=plugins%2Fserver%2FPleaseTheIslandGod.py;h=4a884ed37883ab5cf11294d1d204376e1a9cf654;hp=0159f661930d89633b8db688faefde55266ed906;hb=160e1660559e70c53ab2fcfc8af6461f539c647d;hpb=51baedbbcc82b64b36bd95f9e1493962853e801b diff --git a/plugins/server/PleaseTheIslandGod.py b/plugins/server/PleaseTheIslandGod.py index 0159f66..4a884ed 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) @@ -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,19 +375,27 @@ 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): + if len(t["T_CARRIES"]) >= world_db["ThingTypes"][t["T_TYPE"]]["TT_STORAGE"]: + log("CAN'T pick up: No storage room to carry anything more.") + return False + return True + def specialtypesetter(name): def helper(str_int): val = integer_test(str_int, 0) @@ -463,22 +471,6 @@ def calc_effort(thing_action, thing): effort = 1 if effort == 0 else effort return effort -def play_pickup(): - """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 - if not world_db["Things"][id]["carried"] - if world_db["Things"][id]["T_POSY"] == t["T_POSY"] - if world_db["Things"][id]["T_POSX"] == t["T_POSX"]] - if not len(ids): - log("NOTHING to pick up.") - elif len(t["T_CARRIES"]) >= world_db["ThingTypes"][t["T_TYPE"]] \ - ["TT_STORAGE"]: - log("CAN'T pick up: No storage room to carry anything more.") - else: - set_command("pickup") - strong_write(io_db["file_out"], "PLUGIN PleaseTheIslandGod\n") def set_zero_if_undefined(key): @@ -502,6 +494,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 @@ -519,7 +514,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")) @@ -529,29 +524,22 @@ commands_db["PLANT_0"] = (1, False, specialtypesetter("PLANT_0")) commands_db["PLANT_1"] = (1, False, specialtypesetter("PLANT_1")) commands_db["LUMBER"] = (1, False, specialtypesetter("LUMBER")) commands_db["EMPATHY"] = (1, False, setter(None, "EMPATHY", 0, 1)) -commands_db["pickup"] = (0, False, play_pickup) import server.config.commands server.config.commands.command_worldactive_test_hook = \ command_worldactive_test_hook server.config.commands.play_move_attempt_hook = play_move_attempt_hook server.config.commands.play_use_attempt_hook = play_use_attempt_hook +server.config.commands.play_pickup_attempt_hook = play_pickup_attempt_hook import server.config.misc -server.config.misc.make_map_func = make_map +server.config.misc.make_map = make_map server.config.misc.decrement_lifepoints = decrement_lifepoints -server.config.misc.calc_effort_func = calc_effort +server.config.misc.calc_effort = calc_effort import server.config.make_world_helpers -server.config.make_world_helpers.pos_test_func = pos_test -server.config.make_world_helpers.world_makable_func = world_makable -server.config.make_world_helpers.make_map_func = 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 +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.ai -server.config.ai.ai_hook_pickup = ai_hook_pickup_test +server.config.ai.ai_hook_pickup_test = ai_hook_pickup_test