コード例 #1
0
ファイル: world.py プロジェクト: plomlompom/plomrogue
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()
コード例 #2
0
ファイル: world.py プロジェクト: plomlompom/plomrogue
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()
コード例 #3
0
ファイル: commands.py プロジェクト: plomlompom/plomrogue
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()
コード例 #4
0
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()