# HG changeset patch # User KarstenBock@gmx.net # Date 1316612592 -7200 # Node ID b73050f98411309540975349111480a029f674ff # Parent e5acfeca9bc9677c8308f6f092e8ca70e729eecd Added equip function. diff -r e5acfeca9bc9 -r b73050f98411 components/equip.py --- a/components/equip.py Wed Sep 21 15:25:32 2011 +0200 +++ b/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