def turn_over(): """Run game world and its inhabitants until new player input expected.""" from server.ai import ai from server.config.actions import action_db from server.config.misc import calc_effort from server.update_map_memory import update_map_memory from server.thingproliferation import thingproliferation from server.io import try_worldstate_update from server.config.io import io_db id = 0 while world_db["Things"][0]["T_LIFEPOINTS"]: proliferable_map = world_db["MAP"][:] for tid in [ tid for tid in world_db["Things"] if not world_db["Things"][tid]["carried"] ]: y = world_db["Things"][tid]["T_POSY"] x = world_db["Things"][tid]["T_POSX"] proliferable_map[y * world_db["MAP_LENGTH"] + x] = ord('X') for id in [id for id in world_db["Things"]]: # Only what's from start! if not id in world_db["Things"] or \ world_db["Things"][id]["carried"]: # May have been consumed or continue # picked up during turn … Thing = world_db["Things"][id] if Thing["T_LIFEPOINTS"]: if not Thing["T_COMMAND"]: update_map_memory(Thing) if 0 == id: return ai(Thing) try_healing(Thing) hunger(Thing) if Thing["T_LIFEPOINTS"]: Thing["T_PROGRESS"] += 1 taid = [ a for a in world_db["ThingActions"] if a == Thing["T_COMMAND"] ][0] ThingAction = world_db["ThingActions"][taid] effort = calc_effort(ThingAction, Thing) if Thing["T_PROGRESS"] == effort: action = action_db["actor_" + ThingAction["TA_NAME"]] action(Thing) Thing["T_COMMAND"] = 0 Thing["T_PROGRESS"] = 0 thingproliferation(Thing, proliferable_map) world_db["TURN"] += 1 io_db["worldstate_updateable"] = True try_worldstate_update()
def turn_over(): """Run game world and its inhabitants until new player input expected.""" from server.ai import ai from server.config.actions import action_db from server.config.misc import calc_effort from server.update_map_memory import update_map_memory from server.thingproliferation import thingproliferation from server.io import try_worldstate_update from server.config.io import io_db id = 0 while world_db["Things"][0]["T_LIFEPOINTS"]: proliferable_map = world_db["MAP"][:] for tid in [tid for tid in world_db["Things"] if not world_db["Things"][tid]["carried"]]: y = world_db["Things"][tid]["T_POSY"] x = world_db["Things"][tid]["T_POSX"] proliferable_map[y * world_db["MAP_LENGTH"] + x] = ord('X') for id in [id for id in world_db["Things"]]: # Only what's from start! if not id in world_db["Things"] or \ world_db["Things"][id]["carried"]: # May have been consumed or continue # picked up during turn … Thing = world_db["Things"][id] if Thing["T_LIFEPOINTS"]: if not Thing["T_COMMAND"]: update_map_memory(Thing) if 0 == id: return ai(Thing) try_healing(Thing) hunger(Thing) if Thing["T_LIFEPOINTS"]: Thing["T_PROGRESS"] += 1 taid = [a for a in world_db["ThingActions"] if a == Thing["T_COMMAND"]][0] ThingAction = world_db["ThingActions"][taid] effort = calc_effort(ThingAction, Thing) if Thing["T_PROGRESS"] == effort: action = action_db["actor_" + ThingAction["TA_NAME"]] action(Thing) Thing["T_COMMAND"] = 0 Thing["T_PROGRESS"] = 0 thingproliferation(Thing, proliferable_map) world_db["TURN"] += 1 io_db["worldstate_updateable"] = True try_worldstate_update()
def command_ai(): """Call ai() on player Thing, then turn_over().""" from server.ai import ai if world_db["WORLD_ACTIVE"]: ai(world_db["Things"][0]) turn_over()