projects
/
naja.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
How hard? Nintendo hard! (also: that's what she said)
[naja.git]
/
naja
/
widgets
/
info_area.py
diff --git
a/naja/widgets/info_area.py
b/naja/widgets/info_area.py
index e348048208faf89b74ce209cc3567a8bd7347e43..21122cae31797262fbf83eeb5a9add317d09209c 100644
(file)
--- a/
naja/widgets/info_area.py
+++ b/
naja/widgets/info_area.py
@@
-12,20
+12,21
@@
from naja.events import finish_event
from naja.resources import resources
from naja.resources.mutators import EIGHT_BIT, blender
from naja.sound import sound
from naja.resources import resources
from naja.resources.mutators import EIGHT_BIT, blender
from naja.sound import sound
-from naja.utils import bit_glyphs
+from naja.utils import bit_glyphs
, Flashlight
from naja.widgets.base import Widget
from naja.widgets.tile import BIT_MAP
from naja.widgets.base import Widget
from naja.widgets.tile import BIT_MAP
-from naja.widgets.text import TextBoxWidget, TextWidget
+from naja.widgets.text import TextBoxWidget
+from naja import constants
HINTS = {
HINTS = {
- ACT: "Choose an action using {NORTH,SOUTH}
keys.\n
"
- "Press {RETURN} to execute it.",
+ ACT: "Choose an action using {NORTH,SOUTH}
.
"
+ "
Press {RETURN} to execute it.",
EXAMINE: "Browse the tiles with {NORTH,SOUTH,EAST,WEST} keys.",
}
EXAMINE: "Browse the tiles with {NORTH,SOUTH,EAST,WEST} keys.",
}
-HINT_LEGAL_MOVE = "\nPress {RETURN} to move
to this tile
."
+HINT_LEGAL_MOVE = "\nPress {RETURN} to move."
TITLES = {
ACT: "Choose an Action",
TITLES = {
ACT: "Choose an Action",
@@
-43,6
+44,7
@@
class InfoAreaWidget(Widget):
self.chosen = None
self.card_position = state.player.position
self.set_position(state.player.position)
self.chosen = None
self.card_position = state.player.position
self.set_position(state.player.position)
+ self.flash_light = Flashlight(constants.FPS // 2)
def prepare(self):
if self.state.gameboard.player_mode == ACT:
def prepare(self):
if self.state.gameboard.player_mode == ACT:
@@
-55,6
+57,7
@@
class InfoAreaWidget(Widget):
pos = lambda: (INFO_LEFT_PADDING, y_offset)
# Bits
pos = lambda: (INFO_LEFT_PADDING, y_offset)
# Bits
+ y_offset += 12
bits_text = ''.join('1' if bit in self.card.bitwise_operand else '0'
for bit in reversed(range(8)))
if self.card.bitwise_operand:
bits_text = ''.join('1' if bit in self.card.bitwise_operand else '0'
for bit in reversed(range(8)))
if self.card.bitwise_operand:
@@
-67,7
+70,7
@@
class InfoAreaWidget(Widget):
box_width=box_width)
card_bits.prepare()
self.surface.blit(card_bits.surface, pos())
box_width=box_width)
card_bits.prepare()
self.surface.blit(card_bits.surface, pos())
- y_offset += card_bits.surface.get_rect().height +
4
+ y_offset += card_bits.surface.get_rect().height +
12
# Actions
for choice, action in enumerate(self.card.actions):
# Actions
for choice, action in enumerate(self.card.actions):
@@
-112,7
+115,7
@@
class InfoAreaWidget(Widget):
def prepare_action(self, choice, action, y_offset, box_width):
x_offset = INFO_LEFT_PADDING
def prepare_action(self, choice, action, y_offset, box_width):
x_offset = INFO_LEFT_PADDING
- glyphs_x_offset =
0
+ glyphs_x_offset =
2
glyphs_y_offset = y_offset
y_offset += ACTION_TEXT_OFFSET
action_viable = action.check_available(self.state.player)
glyphs_y_offset = y_offset
y_offset += ACTION_TEXT_OFFSET
action_viable = action.check_available(self.state.player)
@@
-127,7
+130,13
@@
class InfoAreaWidget(Widget):
border_colour = None
if choice == self.chosen:
border_colour = None
if choice == self.chosen:
- border_colour = PALETTE.GREEN if action_viable else PALETTE.ORANGE
+ if self.flash_light.on:
+ border_colour = (PALETTE.GREEN if action_viable else
+ PALETTE.ORANGE)
+ else:
+ border_colour = (PALETTE.DARK_GREEN if action_viable else
+ PALETTE.DARK_RED)
+
if border_colour:
bottom = y_offset + text.surface.get_rect().height
right = text.surface.get_rect().width + x_offset
if border_colour:
bottom = y_offset + text.surface.get_rect().height
right = text.surface.get_rect().width + x_offset
@@
-178,6
+187,8
@@
class InfoAreaWidget(Widget):
self.chosen = None
def draw(self, surface):
self.chosen = None
def draw(self, surface):
+ if self.flash_light.tick():
+ self.prepare()
surface.blit(self.surface, self.pos)
def next_action(self, viable_only=False, step=1):
surface.blit(self.surface, self.pos)
def next_action(self, viable_only=False, step=1):