X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;f=roguelike-server;h=56354d51e23b3b2a090a0f8fe8b39601c7a15da5;hb=4f3d161dd4cadfec8d1783d5fce1fc01999a37db;hp=483dc22f75171bb588c2d4c471a44637da88938e;hpb=858dd9d0785c3d528e3ce8d7111819ef7e572217;p=plomrogue diff --git a/roguelike-server b/roguelike-server index 483dc22..56354d5 100755 --- a/roguelike-server +++ b/roguelike-server @@ -500,10 +500,9 @@ def update_map_memory(t, age_map=True): t["T_MEMMAP"][pos] = world_db["MAP"][pos] if age_map: age_some_memdepthmap_on_nonfov_cells() - for mt in [mt for mt in t["T_MEMTHING"] - if ord_v == t["fovmap"][(mt[1] * world_db["MAP_LENGTH"]) - + mt[2]]]: - t["T_MEMTHING"].remove(mt) + t["T_MEMTHING"] = [mt for mt in t["T_MEMTHING"] + if ord_v != t["fovmap"][(mt[1] * world_db["MAP_LENGTH"]) + + mt[2]]] for id in [id for id in world_db["Things"] if not world_db["Things"][id]["carried"]]: type = world_db["Things"][id]["T_TYPE"] @@ -656,15 +655,18 @@ def actor_move(t): def actor_pick_up(t): """Make t pick up (topmost?) Thing from ground into inventory.""" - # Topmostness is actually not defined so far. Picks Thing with highest ID. + # Topmostness is actually not defined so far. Picks most nutritious Thing. ids = [id for id in world_db["Things"] if world_db["Things"][id] != t 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 len(ids): - highest_id = 0 + highest_id = ids[0] + nutritious = 0 for id in ids: - if id > highest_id: + type = world_db["Things"][id]["T_TYPE"] + if world_db["ThingTypes"][type]["TT_CONSUMABLE"] > nutritious: + nutritious = world_db["ThingTypes"][type]["TT_CONSUMABLE"] highest_id = id world_db["Things"][highest_id]["carried"] = True t["T_CARRIES"].append(highest_id)