X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fgamelib%2Fitems.py;h=b61125016bb58b9707751ae655e9d031df5c6943;hb=b4d8e05a494cd8f270eb60efea35b69c16933029;hp=b125d444b1362f547ad8797fc7944cc7c18c2400;hpb=bfe27469228e9e18531dcf95021375089f65d147;p=koperkapel.git diff --git a/koperkapel/gamelib/items.py b/koperkapel/gamelib/items.py index b125d44..b611250 100644 --- a/koperkapel/gamelib/items.py +++ b/koperkapel/gamelib/items.py @@ -14,7 +14,7 @@ def build_weapon(item): return actor -ITEM_TYPES = { +ITEM_BUILDERS = { "serum": build_serum, "weapon": build_weapon, } @@ -22,8 +22,20 @@ ITEM_TYPES = { def get_item(item): item_type = item.pop("type") - game_pos = item.pop("pos") - actor = ITEM_TYPES[item_type](item) + game_pos = tuple(item.pop("pos")) + actor = ITEM_BUILDERS[item_type](item) + actor.item_type = item_type + actor.item_data = item actor.game_pos = game_pos actor.anchor = (0, 0) return actor + + +def clone_old_item(item, **new_data): + new_item = { + "type": item.item_type, + "pos": item.game_pos, + } + new_item.update(item.item_data) + new_item.update(new_data) + return get_item(new_item)