home · contact · privacy
a1af9c2565a5db5ad49f751ad8fe5a6b6dbdb516
[plomrogue] / plugins / client / TheCrawlingEater.py
1 # This file is part of PlomRogue. PlomRogue is licensed under the GPL version 3
2 # or any later version. For details on its copyright, license, and warranties,
3 # see the file NOTICE in the root directory of the PlomRogue source package.
4
5
6 def win_stomach(self):
7     winmap = []
8     curses.init_pair(80, curses.COLOR_YELLOW, curses.COLOR_RED)
9     for i in range(world_data["stomach"]):
10         winmap += [("#", curses.color_pair(80))]
11     winmap_size = [1, len(winmap)]
12     offset = [0, 0]
13     return offset, winmap_size, winmap
14
15
16 def win_map(self):
17     win_size = self.size
18     offset = [0, 0]
19     for i in range(2):
20         if world_data["map_center"][i] * (i + 1) > win_size[i] / 2 and \
21                 win_size[i] < world_data["map_size"] * (i + 1):
22             if world_data["map_center"][i] * (i + 1) \
23                 < world_data["map_size"] * (i + 1) - win_size[i] / 2:
24                 offset[i] = world_data["map_center"][i] * (i + 1) \
25                     - int(win_size[i] / 2)
26                 if i == 1:
27                     offset[1] = offset[1] + world_data["map_center"][0] % 2
28             else:
29                 offset[i] = world_data["map_size"] * (i + 1) - win_size[i] + i
30     winmap_size = [world_data["map_size"], world_data["map_size"] * 2 + 1]
31     winmap = []
32     curses.init_pair(1, curses.COLOR_WHITE, curses.COLOR_BLACK)
33     curses.init_pair(2, curses.COLOR_BLUE, curses.COLOR_BLACK)
34     curses.init_pair(3, curses.COLOR_RED, curses.COLOR_BLACK)
35     curses.init_pair(4, curses.COLOR_YELLOW, curses.COLOR_BLACK)
36     curses.init_pair(5, curses.COLOR_MAGENTA, curses.COLOR_BLACK)
37     col_unknown = curses.color_pair(1)
38     col_mem_obstacle = curses.color_pair(2)
39     col_mem = curses.color_pair(2)
40     col_stone = curses.color_pair(1)
41     col_dirt = curses.color_pair(4)
42     col_earth = curses.color_pair(3)
43     col_player = curses.color_pair(5)
44     for y in range(world_data["map_size"]):
45         for x in range(world_data["map_size"]):
46             pos = y * world_data["map_size"] + x
47             char = world_data["fov_map"][pos]
48             if world_data["look_mode"] and y == world_data["map_center"][0] \
49                     and x == world_data["map_center"][1]:
50                 if char == " ":
51                     char = world_data["mem_map"][pos]
52                 winmap += [(char, curses.A_REVERSE), ("?", curses.A_REVERSE)]
53                 continue
54             if char == " ":
55                 char = world_data["mem_map"][pos]
56                 attribute = col_mem
57                 if char == " ":
58                     attribute = col_unknown
59                 elif char == "X" or char == "#":
60                     attribute = col_mem_obstacle
61                 bonus = (" ", attribute)
62                 winmap += [(char, attribute), bonus]
63             else:
64                 bonus_char = " "
65                 attribute = col_stone
66                 if char == ".":
67                     attribute = col_dirt
68                 elif char == ":":
69                     attribute = col_earth
70                 elif char == "%":
71                     attribute = col_earth
72                 elif char == "#":
73                     attribute = col_dirt
74                 elif char == "o":
75                     attribute = col_player
76                     bonus_char = char
77                 bonus = (bonus_char, attribute)
78                 winmap += [(char, attribute), bonus]
79         if y % 2 == 0:
80             winmap += "  "
81     return offset, winmap_size, winmap
82
83 from client.config.world_data import world_data
84 world_data["stomach"] = 0
85 from client.config.io import io
86 io["worldstate_read_order"] += [["stomach", "int"]]
87 from client.config.windows import windows_config
88 from client.windows import win_log
89 windows_config[:] = [
90     {"config": [0, -34], "func": win_map, "title": "The Crawling Eater"},
91     {"config": [1, 33], "func": win_stomach, "title": "stomach"},
92     {"config": [-2, 33], "func": win_log, "title": "log"}
93 ]
94 from client.window_management import set_windows
95 set_windows()
96 from client.commands import command_sender
97 from client.config.commands import commands
98 commands["D"] = (command_sender("drop"),)