X-Git-Url: https://plomlompom.com/repos/feed.xml?a=blobdiff_plain;ds=sidebyside;f=plugins%2Fclient%2FTheCrawlingEater.py;h=ffa630e1de7a9f3f66bef853b80fa54a769ed797;hb=8d8513ac6f09a4b4363e766d5d4c30c1f666a85b;hp=a4be1a588fcc89bcec2f37740215122486f1b5e5;hpb=e9ec414cdee3f9bbab129259b3546f0a32b50607;p=plomrogue diff --git a/plugins/client/TheCrawlingEater.py b/plugins/client/TheCrawlingEater.py index a4be1a5..ffa630e 100644 --- a/plugins/client/TheCrawlingEater.py +++ b/plugins/client/TheCrawlingEater.py @@ -3,17 +3,33 @@ # see the file NOTICE in the root directory of the PlomRogue source package. -def win_stomach(self): - winmap = [] - curses.init_pair(80, curses.COLOR_YELLOW, curses.COLOR_RED) - for i in range(world_data["stomach"]): - winmap += [("#", curses.color_pair(80))] - winmap_size = [1, len(winmap)] - offset = [0, 0] - return offset, winmap_size, winmap +curses.init_pair(77, curses.COLOR_WHITE, curses.COLOR_GREEN) +curses.init_pair(78, curses.COLOR_BLACK, curses.COLOR_RED) +curses.init_pair(79, curses.COLOR_WHITE, curses.COLOR_BLUE) +curses.init_pair(80, curses.COLOR_BLACK, curses.COLOR_YELLOW) + + +def win_bar_maker(color_number, symbol, title): + def win_bar(self): + winmap = [] + for i in range(world_data[title]): + winmap += [(symbol, curses.color_pair(color_number))] + winmap_size = [1, len(winmap)] + offset = [0, 0] + return offset, winmap_size, winmap + return win_bar def win_map(self): + charmap = { + "0": "_", + "1": ".", + "2": ":", + "3": "%", + "4": "#", + "5": "X", + "-": "O", + } win_size = self.size offset = [0, 0] for i in range(2): @@ -30,16 +46,39 @@ def win_map(self): winmap_size = [world_data["map_size"], world_data["map_size"] * 2 + 1] winmap = [] curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK) - curses.init_pair(2, curses.COLOR_BLUE, curses.COLOR_BLACK) - curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK) - curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK) + #curses.init_pair(2, curses.COLOR_BLUE, curses.COLOR_BLACK) + #curses.init_pair(3, curses.COLOR_CYAN, curses.COLOR_BLACK) + curses.init_pair(4, curses.COLOR_GREEN, curses.COLOR_BLACK) + curses.init_pair(5, curses.COLOR_YELLOW, curses.COLOR_BLACK) + curses.init_pair(6, curses.COLOR_RED, curses.COLOR_BLACK) + curses.init_pair(7, curses.COLOR_MAGENTA, curses.COLOR_BLACK) + curses.init_pair(8, curses.COLOR_BLACK, curses.COLOR_WHITE) + #curses.init_pair(9, curses.COLOR_BLACK, curses.COLOR_BLUE) + curses.init_pair(10, curses.COLOR_BLACK, curses.COLOR_CYAN) + curses.init_pair(11, curses.COLOR_BLACK, curses.COLOR_GREEN) + curses.init_pair(12, curses.COLOR_BLACK, curses.COLOR_YELLOW) + curses.init_pair(13, curses.COLOR_BLACK, curses.COLOR_RED) + curses.init_pair(14, curses.COLOR_BLACK, curses.COLOR_MAGENTA) + curses.init_pair(15, curses.COLOR_RED, curses.COLOR_GREEN) col_unknown = curses.color_pair(1) - col_mem_obstacle = curses.color_pair(2) - col_mem = curses.color_pair(2) - col_stone = curses.color_pair(1) - col_dirt = curses.color_pair(4) - col_earth = curses.color_pair(3) - col_player = curses.color_pair(1) + col_mem = curses.color_pair(1) + col_creature = curses.color_pair(15) + col_player = curses.color_pair(8) + earth_colors = [ + curses.color_pair(4), + curses.color_pair(5), + curses.color_pair(5), + curses.color_pair(6), + curses.color_pair(6), + curses.color_pair(7), + ] + water_colors = [ + curses.color_pair(10), + curses.color_pair(11), + curses.color_pair(12), + curses.color_pair(13), + curses.color_pair(14), + ] for y in range(world_data["map_size"]): for x in range(world_data["map_size"]): pos = y * world_data["map_size"] + x @@ -52,44 +91,75 @@ def win_map(self): continue if char == " ": char = world_data["mem_map"][pos] - attribute = col_mem if char == " ": attribute = col_unknown - elif char == "X" or char == "#": - attribute = col_mem_obstacle + else: + attribute = col_mem + if char in charmap: + char = charmap[char] bonus = (" ", attribute) winmap += [(char, attribute), bonus] else: - attribute = col_stone - if char == ".": - attribute = col_dirt - elif char == ":": - attribute = col_earth - elif char == "%": - attribute = col_earth - elif char == "#": - attribute = col_dirt + bonus = " " + attribute = col_unknown + wetval = ord(world_data["wetmap"][pos]) - ord("0") + if ord("0") <= ord(char) <= ord("5"): + mapval = ord(char) - ord("0") + if 1 <= wetval <= 5: + attribute = water_colors[wetval + (mapval - 1)] + else: + attribute = earth_colors[mapval] + if char in charmap: + char = charmap[char] elif char == "@": - attribute = col_player - bonus = (" ", attribute) + attribute = col_creature + av_pos = world_data["avatar_position"] + if pos == av_pos[0] * world_data["map_size"] + av_pos[1]: + attribute = col_player winmap += [(char, attribute), bonus] if y % 2 == 0: winmap += " " return offset, winmap_size, winmap + from client.config.world_data import world_data +world_data["kidney"] = 0 world_data["stomach"] = 0 +world_data["bowel"] = 0 +world_data["bladder"] = 0 +world_data["wetmap"] = " " * (world_data["map_size"] ** 2) from client.config.io import io io["worldstate_read_order"] += [["stomach", "int"]] +io["worldstate_read_order"] += [["kidney", "int"]] +io["worldstate_read_order"] += [["bowel", "int"]] +io["worldstate_read_order"] += [["bladder", "int"]] +io["worldstate_read_order"] += [["wetmap", "map"]] from client.config.windows import windows_config from client.windows import win_log windows_config[:] = [ - {"config": [0, -34], "func": win_map, "title": "The Crawling Eater"}, - {"config": [1, 33], "func": win_stomach, "title": "stomach"}, - {"config": [-2, 33], "func": win_log, "title": "log"} + {"config": [0, -34], + "func": win_map, + "title": "The Crawling Eater"}, + {"config": [1, 33], + "func": win_bar_maker(77, "%", "stomach"), + "title": "stomach"}, + {"config": [1, 33], + "func": win_bar_maker(79, "~", "kidney"), + "title": "kidney"}, + {"config": [1, 33], + "func": win_bar_maker(78, "%", "bowel"), + "title": "bowel"}, + {"config": [1, 33], + "func": win_bar_maker(80, "~", "bladder"), + "title": "bladder"}, + {"config": [-8, 33], + "func": win_log, + "title": "log"} ] from client.window_management import set_windows set_windows() from client.commands import command_sender from client.config.commands import commands -commands["D"] = (command_sender("drop"),) +commands["S"] = (command_sender("drop"),) +commands["D"] = (command_sender("drink"),) +commands["P"] = (command_sender("pee"),)