diff options
| author | Thomas Kluyver <takowl@gmail.com> | 2013-01-13 08:14:04 -0800 |
|---|---|---|
| committer | Thomas Kluyver <takowl@gmail.com> | 2013-01-13 08:14:04 -0800 |
| commit | 57cccc9d6a0af98b86024a6d6d054997c8ba509f (patch) | |
| tree | 6e3f122bf8b5b8b156a3316eb10a7f647e449fdc /weatbag/action.py | |
| parent | d327e21c9c8fec8dea82035e87bfd1a3ba2b813c (diff) | |
| parent | 727343ffdc825be9e7981a57cf592594f358da94 (diff) | |
Merge pull request #11 from takluyver/items-framework
Items framework
Diffstat (limited to 'weatbag/action.py')
| -rw-r--r-- | weatbag/action.py | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/weatbag/action.py b/weatbag/action.py index 9ef0f47..c2274ac 100644 --- a/weatbag/action.py +++ b/weatbag/action.py @@ -1,5 +1,6 @@ import sys from . import words +from weatbag.items import combine def get_action(): """Prompts for an action, splits it into words, and removes any prepositions. @@ -18,7 +19,7 @@ def get_action(): move_directions = {'n','e','s','w','north','east','south','west'} def is_move(do): - return len(do) == 2 and (do[0] in words.move) and (do[1] in move_directions) + return len(do) == 2 and (do[0] in words.move) and (do[1] in move_directions) def handle_action(tile, player, do): if len(do) == 1 and do[0] == 'quit': @@ -35,6 +36,32 @@ def handle_action(tile, player, do): break print(item, '(%d)' % n) + elif len(do) >= 3 and (do[0] in words.combine): + for split in range(2, len(do)): + item1 = ' '.join(do[1:split]) + item2 = ' '.join(do[split:]) + if player.has(item1): + if player.has(item2): + results = combine(item1, item2) + if results is not None: + player.take(item1) + player.take(item2) + player.inventory.update(results) + else: + print("You can't combine {} with {}".format(item1, item2)) + + else: + print("You don't have a {}".format(item2)) + + return + + elif player.has(item2): + print("You don't have a {}".format(item1)) + return + + else: + print("You don't have those items.") + else: tile.action(player, do) |
