X-Git-Url: https://plomlompom.com/repos/berlin_corona.txt?a=blobdiff_plain;ds=sidebyside;f=roguelike-server;h=809e03a12c1129cabf215ceb1f8218e3aa65b871;hb=f5bb5b70b0593e0cf669ff53f948d091ad8e377c;hp=0bc77cc4bb8dcb0f67560e41c8956e33e6accdfb;hpb=422c426deb8444a589b68b6158ab5dba5250e6b8;p=plomrogue diff --git a/roguelike-server b/roguelike-server index 0bc77cc..809e03a 100755 --- a/roguelike-server +++ b/roguelike-server @@ -589,12 +589,13 @@ def decrement_lifepoints(t): t["T_LIFEPOINTS"] -= 1 world_db["GOD_MOOD"] -= 1 # # if 0 == t["T_LIFEPOINTS"]: + sadness = world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"] # # + world_db["GOD_MOOD"] -= sadness # # for id in t["T_CARRIES"]: t["T_CARRIES"].remove(id) world_db["Things"][id]["T_POSY"] = t["T_POSY"] world_db["Things"][id]["T_POSX"] = t["T_POSX"] - sadness = world_db["ThingTypes"][t["T_TYPE"]]["TT_LIFEPOINTS"] # # - world_db["GOD_MOOD"] -= sadness # # + world_db["Things"][id]["carried"] = False t["T_TYPE"] = world_db["ThingTypes"][t["T_TYPE"]]["TT_CORPSE_ID"] if world_db["Things"][0] == t: t["fovmap"] = bytearray(b' ' * (world_db["MAP_LENGTH"] ** 2)) @@ -690,7 +691,8 @@ 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. + # 7DRL: Non-player picking up player-dropped consumable -> GOD_FAVOR gain. used_slots = len(t["T_CARRIES"]) # # if used_slots < world_db["ThingTypes"][t["T_TYPE"]]["TT_STORAGE"]: # # ids = [id for id in world_db["Things"] if world_db["Things"][id] != t @@ -698,11 +700,20 @@ def actor_pick_up(t): 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 + if (t != world_db["Things"][0] and # # + world_db["Things"][highest_id]["T_PLAYERDROP"]): # # + x = world_db["Things"][highest_id]["T_TYPE"] + score = world_db["ThingTypes"][x]["TT_CONSUMABLE"] / 32 # # + add_gods_favor(score) # # + world_db["Things"][highest_id]["T_PLAYERDROP"] = 0 # # t["T_CARRIES"].append(highest_id) if t == world_db["Things"][0]: strong_write(io_db["file_out"], "LOG You pick up an object.\n") @@ -723,6 +734,7 @@ def actor_drop(t): world_db["Things"][id]["carried"] = False if t == world_db["Things"][0]: strong_write(io_db["file_out"], "LOG You drop an object.\n") + world_db["Things"][id]["T_PLAYERDROP"] = 1 # # elif t == world_db["Things"][0]: err = "You try to drop an object, but you own none." strong_write(io_db["file_out"], "LOG " + err + "\n") @@ -1116,6 +1128,7 @@ def new_Thing(type, pos=(0, 0)): "T_PROGRESS": 0, "T_SATIATION": 0, "T_COMMAND": 0, + "T_PLAYERDROP": 0, # # "T_TYPE": type, "T_POSY": pos[0], "T_POSX": pos[1], @@ -1632,7 +1645,7 @@ commands_db = { "TT_PROLIFERATE": (1, False, setter("ThingType", "TT_PROLIFERATE", 0, 255)), "TT_LIFEPOINTS": (1, False, setter("ThingType", "TT_LIFEPOINTS", 0, 255)), - "TT_STORAGE": (1, False, setter("ThingType", "TT_STORAGE", 0, 255)), # # + "TT_STORAGE": (1, False, setter("ThingType", "TT_STORAGE", 0, 255)), # # "T_ID": (1, False, command_tid), "T_ARGUMENT": (1, False, setter("Thing", "T_ARGUMENT", 0, 255)), "T_PROGRESS": (1, False, setter("Thing", "T_PROGRESS", 0, 255)), @@ -1646,6 +1659,7 @@ commands_db = { "T_MEMTHING": (3, False, command_tmemthing), "T_POSY": (1, False, setter_tpos("Y")), "T_POSX": (1, False, setter_tpos("X")), + "T_PLAYERDROP": (1, False, setter("Thing", "T_PLAYERDROP", 0, 1)), # # "wait": (0, False, play_commander("wait")), "move": (1, False, play_commander("move")), "pick_up": (0, False, play_commander("pick_up")),