projects
/
koperkapel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Play weapon sounds when firing.
[koperkapel.git]
/
koperkapel
/
gamelib
/
items.py
diff --git
a/koperkapel/gamelib/items.py
b/koperkapel/gamelib/items.py
index 837ccc61a58886f3ffa062b1e0870c669bc18592..b61125016bb58b9707751ae655e9d031df5c6943 100644
(file)
--- a/
koperkapel/gamelib/items.py
+++ b/
koperkapel/gamelib/items.py
@@
-1,6
+1,7
@@
# Item utilities
from ..serums import default_serums
# Item utilities
from ..serums import default_serums
+from ..weapons import default_weapons
def build_serum(item):
def build_serum(item):
@@
-8,15
+9,33
@@
def build_serum(item):
return actor
return actor
-ITEM_TYPES = {
+def build_weapon(item):
+ actor = default_weapons.assemble(item["weapon"])
+ return actor
+
+
+ITEM_BUILDERS = {
"serum": build_serum,
"serum": build_serum,
+ "weapon": build_weapon,
}
def get_item(item):
item_type = item.pop("type")
}
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
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)