# 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)