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"]):
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]
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"):
strong_write(io_db["file_out"], "PLUGIN PleaseTheIslandGod\n")
-if not "GOD_FAVOR" in world_db:
- world_db["GOD_FAVOR"] = 0
-if not "FAVOR_STAGE" in world_db:
- world_db["FAVOR_STAGE"] = 0
-if not "SLIPPERS" in world_db:
- world_db["SLIPPERS"] = 0
-if not "PLANT_0" in world_db:
- world_db["PLANT_0"] = 0
-if not "PLANT_1" in world_db:
- world_db["PLANT_1"] = 0
-if not "ANIMAL_0" in world_db:
- world_db["ANIMAL_0"] = 0
-if not "ANIMAL_1" in world_db:
- world_db["ANIMAL_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:
- world_db["EMPATHY"] = 0
+def set_zero_if_undefined(key):
+ if not key in world_db:
+ world_db[key] = 0
+
+set_zero_if_undefined("GOD_FAVOR")
+set_zero_if_undefined("FAVOR_STAGE")
+set_zero_if_undefined("EMPATHY")
+world_db["specials"] = ["SLIPPERS", "PLANT_0", "PLANT_1", "TOOL_0", "TOOL_1",
+ "LUMBER", "ANIMAL_0", "ANIMAL_1"]
+for key in world_db["specials"]:
+ set_zero_if_undefined(key)
+
world_db["terrain_names"][":"] = "SOIL"
world_db["terrain_names"]["|"] = "WALL"
world_db["terrain_names"]["_"] = "ALTAR"
-world_db["specials"] = ["SLIPPERS", "PLANT_0", "PLANT_1", "TOOL_0", "TOOL_1",
- "LUMBER", "ANIMAL_0", "ANIMAL_1"]
io_db["worldstate_write_order"] += [["GOD_FAVOR", "world_int"]]
io_db["worldstate_write_order"] += [[write_metamap_A, "func"]]
io_db["worldstate_write_order"] += [[write_metamap_B, "func"]]