X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;f=new%2Fexample_client.py;h=8a0de5060f9c1bc7a144132e7fce64efa5492c84;hb=d33b918833cc762029abf5ca0b6930e16f91e8da;hp=a877da84f603bc0de3e69cfbc2beca7439aaf1c5;hpb=7d8ed36999f496383de39a76aee8dfb8e1bfbef7;p=plomrogue2-experiments diff --git a/new/example_client.py b/new/example_client.py index a877da8..8a0de50 100755 --- a/new/example_client.py +++ b/new/example_client.py @@ -3,7 +3,7 @@ import curses import socket import threading from plomrogue.parser import ArgError, Parser -from plomrogue.commands import cmd_MAP, cmd_THING_TYPE, cmd_THING_POS +from plomrogue.commands import cmd_MAP, cmd_THING_POS from plomrogue.game import Game, WorldBase from plomrogue.mapping import MapBase from plomrogue.io import PlomSocket @@ -105,6 +105,11 @@ def cmd_GAME_STATE_COMPLETE(self): self.to_update['turn'] = True self.to_update['map'] = True +def cmd_THING_TYPE(game, i, type_): + t = game.world.get_thing(i) + t.type_ = type_ +cmd_THING_TYPE.argtypes = 'int:nonneg string' + class Game: @@ -167,6 +172,8 @@ class Game: symbol = '@' elif type_ == 'monster': symbol = 'm' + elif type_ == 'item': + symbol = 'i' return symbol @@ -287,7 +294,10 @@ class MapWidget(Widget): terrain_as_list = list(self.tui.game.world.map_.terrain[:]) for t in self.tui.game.world.things: pos_i = self.tui.game.world.map_.get_position_index(t.position) - terrain_as_list[pos_i] = self.tui.game.symbol_for_type(t.type_) + symbol = self.tui.game.symbol_for_type(t.type_) + if symbol in {'i'} and terrain_as_list[pos_i] in {'@', 'm'}: + continue + terrain_as_list[pos_i] = symbol return ''.join(terrain_as_list) def pad_or_cut_x(lines): @@ -310,6 +320,8 @@ class MapWidget(Widget): for c in ''.join(lines): if c in {'@', 'm'}: chars_with_attrs += [(c, curses.color_pair(1))] + elif c == 'i': + chars_with_attrs += [(c, curses.color_pair(4))] elif c == '.': chars_with_attrs += [(c, curses.color_pair(2))] elif c in {'x', 'X', '#'}: @@ -360,6 +372,7 @@ class TUI: curses.init_pair(1, curses.COLOR_BLACK, curses.COLOR_RED) curses.init_pair(2, curses.COLOR_BLACK, curses.COLOR_GREEN) curses.init_pair(3, curses.COLOR_BLACK, curses.COLOR_BLUE) + curses.init_pair(4, curses.COLOR_BLACK, curses.COLOR_YELLOW) curses.curs_set(False) # hide cursor self.to_send = [] self.edit = EditWidget(self, (0, 6), (1, 14), check_tui = ['edit'])