log("With your " + world_db["ThingTypes"][type]["TT_NAME"]
+ " you build a wooden barrier from your "
+ world_db["ThingTypes"][type_material]["TT_NAME"] + ".")
+ elif world_db["ThingTypes"][type]["TT_TOOL"] == "fertilizer":
+ pos = t["T_POSY"] * world_db["MAP_LENGTH"] + t["T_POSX"]
+ if world_db["MAP"][pos] == ord("."):
+ log("You create SOIL.")
+ world_db["MAP"][pos] = ord(":")
elif world_db["ThingTypes"][type]["TT_TOOL"] == "food":
t["T_CARRIES"].remove(id)
del world_db["Things"][id]
def decrement_lifepoints(t):
t["T_LIFEPOINTS"] -= 1
+ live_type = t["T_TYPE"]
_id = [_id for _id in world_db["Things"] if world_db["Things"][_id] == t][0]
if 0 == t["T_LIFEPOINTS"]:
- sadness = world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"]
for id in t["T_CARRIES"]:
t["T_CARRIES"].remove(id)
world_db["Things"][id]["T_POSY"] = t["T_POSY"]
t["T_MEMMAP"] = False
t["T_MEMDEPTHMAP"] = False
t["T_MEMTHING"] = []
- return sadness
+ n_species = len([id for id in world_db["Things"]
+ if world_db["Things"][id]["T_TYPE"] == live_type])
+ if 0 == n_species:
+ from server.new_thing import new_Thing
+ id = id_setter(-1, "Things")
+ world_db["Things"][id] = new_Thing(live_type,
+ world_db["altar"])
+ log("The " + world_db["ThingTypes"][live_type]["TT_NAME"]
+ + " species has temporarily died out. "
+ + "One new-born is spawned at the altar.")
+ return world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"]
return 0
def actor_move(t):
+ world_db["ThingTypes"][type]["TT_NAME"]
+ " without some wood in your inventory.")
return
+ elif world_db["ThingTypes"][type]["TT_TOOL"] == "fertilizer":
+ pos = t["T_POSY"] * world_db["MAP_LENGTH"] + t["T_POSX"]
+ if not world_db["MAP"][pos] == ord("."):
+ log("Can only make soil out of NON-SOIL earth.")
+ return
elif type != world_db["SLIPPERS"] and not \
world_db["ThingTypes"][type]["TT_TOOL"] == "food":
log("You CAN'T consume this thing.")
else:
print("Illegal inventory index.")
-def specialtypesetter(name): # #
+def specialtypesetter(name):
def helper(str_int):
val = integer_test(str_int, 0)
if None != val:
metamapB[pos] = ord(name[0])
return write_map(metamapB, length)
+def calc_effort(thing_action, thing):
+ from math import sqrt
+ effort = thing_action["TA_EFFORT"]
+ if thing_action["TA_NAME"] == "move":
+ typ = thing["T_TYPE"]
+ max_hp = (world_db["ThingTypes"][typ]["TT_LIFEPOINTS"])
+ effort = int(effort / sqrt(max_hp))
+ 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")
if not "GOD_FAVOR" in world_db:
world_db["PLANT_1"] = 0
if not "TOOL_0" in world_db:
world_db["TOOL_0"] = 0
+if not "TOOL_1" in world_db:
+ world_db["TOOL_1"] = 0
if not "LUMBER" in world_db:
world_db["LUMBER"] = 0
if not "EMPATHY" in world_db:
commands_db["FAVOR_STAGE"] = (1, False, setter(None, "FAVOR_STAGE", 0, 1))
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"))
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["use"] = (1, False, play_use)
commands_db["move"] = (1, False, play_move)
+commands_db["pickup"] = (0, False, play_pickup)
import server.config.misc
server.config.misc.make_map_func = make_map
server.config.misc.thingproliferation_func = thingproliferation
server.config.misc.make_world = make_world
-server.config.decrement_lifepoints_func = decrement_lifepoints
+server.config.misc.decrement_lifepoints_func = decrement_lifepoints
+server.config.misc.calc_effort_func = calc_effort