projects
/
naja.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
31a73ca
)
Make GenericBits even more generic.
author
Simon Cross
<hodgestar@gmail.com>
Sat, 17 May 2014 18:56:52 +0000
(20:56 +0200)
committer
Simon Cross
<hodgestar@gmail.com>
Sat, 17 May 2014 18:56:52 +0000
(20:56 +0200)
naja/actions.py
patch
|
blob
|
history
diff --git
a/naja/actions.py
b/naja/actions.py
index 4dafbc6fbe3ebed6dc8d68b06a19986013183c61..4064947648abb1bd4205a20fb0ed7b455a36af85 100644
(file)
--- a/
naja/actions.py
+++ b/
naja/actions.py
@@
-128,15
+128,30
@@
class GenericBits(LocationAction):
self.set_bits = parse_bits(self.data.get('set', []))
self.clear_bits = parse_bits(self.data.get('clear', []))
self.toggle_bits = parse_bits(self.data.get('toggle', []))
self.set_bits = parse_bits(self.data.get('set', []))
self.clear_bits = parse_bits(self.data.get('clear', []))
self.toggle_bits = parse_bits(self.data.get('toggle', []))
+ self.once = self.data.get('once', False)
+ self.acquire_win = self.data.get('acquire_win', False)
+ self.lose_health = self.data.get('lose_health', False)
def perform_action(self, board, location):
bits = board.player.bits
bits.set_bits(self.set_bits)
bits.toggle_bits(self.toggle_bits)
bits.clear_bits(self.clear_bits)
def perform_action(self, board, location):
bits = board.player.bits
bits.set_bits(self.set_bits)
bits.toggle_bits(self.toggle_bits)
bits.clear_bits(self.clear_bits)
+ if self.acquire_win:
+ sound.play_sound('yipee.ogg')
+ board.acquire_win_token()
+ if self.lose_health:
+ sound.play_sound('awwww.ogg')
+ board.lose_health()
+ if self.once:
+ location.actions.remove(self)
def get_glyphs(self):
glyphs = []
def get_glyphs(self):
glyphs = []
+ if self.acquire_win:
+ glyphs.append(ACTION_GLYPHS.WINTOKEN)
+ if self.lose_health:
+ glyphs.append(ACTION_GLYPHS.DAMAGE)
if self.set_bits:
glyphs.append(ACTION_GLYPHS.SET_BITS)
if self.clear_bits:
if self.set_bits:
glyphs.append(ACTION_GLYPHS.SET_BITS)
if self.clear_bits:
@@
-149,11
+164,17
@@
class GenericBits(LocationAction):
if 'message' in self.data:
return super(GenericBits, self).get_text()
parts = []
if 'message' in self.data:
return super(GenericBits, self).get_text()
parts = []
+ if self.acquire_win:
+ parts.append("Gain a {WINTOKEN}.")
+ if self.lose_health:
+ parts.append("Lose {HEALTH}.")
for template, bits in [
('Set %s.', self.set_bits), ('Clear %s.', self.clear_bits),
('Toggle %s', self.toggle_bits)]:
if bits:
parts.append(template % (bit_glyphs(bits)))
for template, bits in [
('Set %s.', self.set_bits), ('Clear %s.', self.clear_bits),
('Toggle %s', self.toggle_bits)]:
if bits:
parts.append(template % (bit_glyphs(bits)))
+ if self.once:
+ parts.append('Usable once only.')
return " ".join(parts)
return " ".join(parts)
@@
-191,8
+212,6
@@
class AcquireWinToken(LocationAction):
board.player.bits.clear_bits(set([
BITS.RED, BITS.GREEN, BITS.BLUE,
]))
board.player.bits.clear_bits(set([
BITS.RED, BITS.GREEN, BITS.BLUE,
]))
- if self.data.get('once', False):
- location.actions.remove(self)
class GainHealth(LocationAction):
class GainHealth(LocationAction):