summaryrefslogtreecommitdiff
path: root/asciifarm/client/display
diff options
context:
space:
mode:
Diffstat (limited to 'asciifarm/client/display')
-rw-r--r--asciifarm/client/display/colours.py23
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)