X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fgamelib%2Fitems.py;h=b61125016bb58b9707751ae655e9d031df5c6943;hb=b4d8e05a494cd8f270eb60efea35b69c16933029;hp=5aba919d8dda70285331beab999d84e70cbd62ea;hpb=58c1d4f2c0a0dc8b36689aa8deb0542346e2b4ad;p=koperkapel.git diff --git a/koperkapel/gamelib/items.py b/koperkapel/gamelib/items.py index 5aba919..b611250 100644 --- a/koperkapel/gamelib/items.py +++ b/koperkapel/gamelib/items.py @@ -1,5 +1,41 @@ # Item utilities +from ..serums import default_serums +from ..weapons import default_weapons + + +def build_serum(item): + actor = default_serums.assemble(item["serum"]) + return actor + + +def build_weapon(item): + actor = default_weapons.assemble(item["weapon"]) + return actor + + +ITEM_BUILDERS = { + "serum": build_serum, + "weapon": build_weapon, +} + def get_item(item): - return item + item_type = item.pop("type") + 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)