X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fgamelib%2Fitems.py;h=b61125016bb58b9707751ae655e9d031df5c6943;hb=b4d8e05a494cd8f270eb60efea35b69c16933029;hp=837ccc61a58886f3ffa062b1e0870c669bc18592;hpb=354b606a62a1d3a9e41b77f499d35a4c10aa1f3a;p=koperkapel.git diff --git a/koperkapel/gamelib/items.py b/koperkapel/gamelib/items.py index 837ccc6..b611250 100644 --- a/koperkapel/gamelib/items.py +++ b/koperkapel/gamelib/items.py @@ -1,6 +1,7 @@ # Item utilities from ..serums import default_serums +from ..weapons import default_weapons def build_serum(item): @@ -8,15 +9,33 @@ def build_serum(item): return actor -ITEM_TYPES = { +def build_weapon(item): + actor = default_weapons.assemble(item["weapon"]) + return actor + + +ITEM_BUILDERS = { "serum": build_serum, + "weapon": build_weapon, } 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)