diff options
| author | troido <troido@protonmail.com> | 2019-01-24 19:15:57 +0100 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2019-01-24 19:15:57 +0100 |
| commit | 0bd37653d52b4664a3be33d095d5f320a8eeb0a1 (patch) | |
| tree | 182787829ab8b85af53bee6d142f571c5e3acd1f /asciifarm/client/display/colours.py | |
| parent | 21e003dc1876a5826c5b9a21781fe35ad52f2778 (diff) | |
changed colours to work better with 8-colour terminals and update screen before each wait (so also with each keypress)
Diffstat (limited to 'asciifarm/client/display/colours.py')
| -rw-r--r-- | asciifarm/client/display/colours.py | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/asciifarm/client/display/colours.py b/asciifarm/client/display/colours.py index 22e6f14..1403300 100644 --- a/asciifarm/client/display/colours.py +++ b/asciifarm/client/display/colours.py @@ -13,9 +13,20 @@ class Colours: curses.init_pair(i, i%self.colours, i//self.colours) def get(self, fg=0, bg=0): - dfg = fg % self.colours - dbg = bg % self.colours - if (dfg, dbg) == (0, 0) and (fg, bg) != (0, 0): - # avoid unintended use of (0,0), which is settings dependent - dfg, dbg = 7, 0 - return curses.color_pair(dfg + dbg*self.colours) + if self.colours == 16: + return curses.color_pair(fg + bg*self.colours) + elif self.colours == 8: + dfg = fg % 8 + dbg = bg % 8 + if bg == 8: + dbg = 7 + if fg == 8: + dfg = 7 + colour = curses.color_pair(dfg + dbg*self.colours) + if fg >= 8 and bg < 8: + colour |= curses.A_BOLD + elif fg < 8 and bg >= 8: + colour |= curses.A_DIM + return colour + else: + return curses.color_pair(0) |
