diff --git a/code/modules/projectiles/ammunition/_ammunition.dm b/code/modules/projectiles/ammunition/_ammunition.dm index 6c062677b6f4..3eab64e600e8 100644 --- a/code/modules/projectiles/ammunition/_ammunition.dm +++ b/code/modules/projectiles/ammunition/_ammunition.dm @@ -37,7 +37,7 @@ //proc to magically refill a casing with a new projectile /obj/item/ammo_casing/proc/newshot() //For energy weapons, syringe gun, shotgun shells and wands (!). if(!BB) - BB = new projectile_type(src) + BB = new projectile_type(src, src) /obj/item/ammo_casing/attackby(obj/item/I, mob/user, params) if(istype(I, /obj/item/ammo_box)) diff --git a/code/modules/projectiles/ammunition/energy/portal.dm b/code/modules/projectiles/ammunition/energy/portal.dm index 3a6300a2f54f..c4998a884344 100644 --- a/code/modules/projectiles/ammunition/energy/portal.dm +++ b/code/modules/projectiles/ammunition/energy/portal.dm @@ -12,3 +12,9 @@ /obj/item/ammo_casing/energy/wormhole/Initialize(mapload, obj/item/gun/energy/wormhole_projector/wh) . = ..() gun = wh + +/obj/item/ammo_casing/energy/wormhole/throw_proj() + . = ..() + if(istype(BB, /obj/item/projectile/beam/wormhole)) + var/obj/item/projectile/beam/wormhole/WH = BB + WH.gun = gun diff --git a/code/modules/projectiles/guns/energy/special.dm b/code/modules/projectiles/guns/energy/special.dm index 93188dd0735c..b1d34b06148e 100644 --- a/code/modules/projectiles/guns/energy/special.dm +++ b/code/modules/projectiles/guns/energy/special.dm @@ -185,7 +185,16 @@ /obj/item/gun/energy/wormhole_projector/update_icon() icon_state = "[initial(icon_state)][select]" item_state = icon_state - return + +/obj/item/gun/energy/wormhole_projector/update_ammo_types() + . = ..() + for(var/i in 1 to ammo_type.len) + var/obj/item/ammo_casing/energy/wormhole/W = ammo_type[i] + if(istype(W)) + W.gun = src + var/obj/item/projectile/beam/wormhole/WH = W.BB + if(istype(WH)) + WH.gun = src /obj/item/gun/energy/wormhole_projector/process_chamber() ..()