diff src/parpg/components/equip.py @ 91:1bd609af9329

Added equip function.
author KarstenBock@gmx.net
date Wed, 21 Sep 2011 15:43:12 +0200
parents 0319dcc47603
children 0f659c7675f6
line wrap: on
line diff
--- a/src/parpg/components/equip.py	Wed Sep 21 15:25:32 2011 +0200
+++ b/src/parpg/components/equip.py	Wed Sep 21 15:43:12 2011 +0200
@@ -19,4 +19,26 @@
     """
     
     def __init__(self):
-        Component.__init__(self, head=object, body=object, leg=object, feet=object, l_arm=object, r_arm=object)
\ No newline at end of file
+        Component.__init__(self, head=object, body=object, leg=object, feet=object, l_arm=object, r_arm=object)
+
+class SlotInvalidError(Exception):
+    """Error that gets raised when the slot is invalid."""
+    
+    def __init__(self, slot):
+        self.slot = slot
+    
+    def __str__(self):
+        return "\"%s\" is not a valid slot." % self.slot
+    
+def equip(wearer, equipable, slot):
+    """Equip the wearer with the given equipable.
+    @returns The equipable that was at the given slot, or None"""
+    if slot in equipable.possible_slots:
+        try:
+            old_item = getattr(wearer, slot)
+            setattr(wearer, slot, equipable)
+            return old_item
+        except AttributeError:
+            raise SlotInvalidError(slot)
+    return None
+    
\ No newline at end of file