# HG changeset patch # User KarstenBock@gmx.net # Date 1316612592 -7200 # Node ID 1bd609af93295ef0b791cf0a9ea214a20cc3cf3b # Parent 0319dcc476036fba174c5f4773d6c769b6eabd07 Added equip function. diff -r 0319dcc47603 -r 1bd609af9329 src/parpg/components/equip.py --- 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