X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=koperkapel%2Fgamelib%2Fitems.py;h=14bf61d05d37eb1a1012496a1c1595dd1e471a99;hb=8795602b8b39d5dce884310b11fc9b0a21263ddb;hp=af66dd991e194f5abfa73540c7cf9a02c1b720b4;hpb=685bc607ffc97579ab5522e9c799ee0eef334777;p=koperkapel.git diff --git a/koperkapel/gamelib/items.py b/koperkapel/gamelib/items.py index af66dd9..14bf61d 100644 --- a/koperkapel/gamelib/items.py +++ b/koperkapel/gamelib/items.py @@ -2,6 +2,7 @@ from ..serums import default_serums from ..weapons import default_weapons +from ..vehicles.base import Vehicle def build_serum(item): @@ -13,10 +14,15 @@ def build_weapon(item): actor = default_weapons.assemble(item["weapon"]) return actor +def build_vehicle(item): + actor = Vehicle.by_type(item["vehicle"]).get_avatar(dead=True) + return actor + ITEM_BUILDERS = { "serum": build_serum, "weapon": build_weapon, + "vehicle": build_vehicle, } @@ -29,3 +35,22 @@ def get_item(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) + + +def create_new_item(item_type, pos, **kwd): + new_item = { + "type": item_type, + "pos": pos, + } + new_item.update(kwd) + return get_item(new_item)