diff --git a/code/datums/beam.dm b/code/datums/beam.dm
index d97ee9a773..2622b6ae39 100644
--- a/code/datums/beam.dm
+++ b/code/datums/beam.dm
@@ -83,6 +83,7 @@
elements.Cut()
/datum/beam/Destroy()
+ finished = TRUE
Reset()
target = null
origin = null
@@ -100,7 +101,7 @@
var/length = round(sqrt((DX)**2+(DY)**2)) //hypotenuse of the triangle formed by target and origin's displacement
for(N in 0 to length-1 step 32)//-1 as we want < not <=, but we want the speed of X in Y to Z and step X
- if(QDELETED(src) || finished)
+ if(finished)
break
var/obj/effect/ebeam/X = new beam_type(origin_oldloc)
X.owner = src
diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm
index 50edbe5891..c4494b822f 100644
--- a/code/game/machinery/magnet.dm
+++ b/code/game/machinery/magnet.dm
@@ -316,7 +316,7 @@
if("togglemoving")
moving = !moving
if(moving)
- spawn() MagnetMove()
+ INVOKE_ASYNC(src, .proc/MagnetMove)
updateUsrDialog()
@@ -325,7 +325,7 @@
if(looping)
return
- while(moving && rpath.len >= 1)
+ while(moving && length(rpath) >= 1)
if(stat & (BROKEN|NOPOWER))
break
diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm
index b8b92b0a58..b8175326ec 100644
--- a/code/modules/admin/verbs/randomverbs.dm
+++ b/code/modules/admin/verbs/randomverbs.dm
@@ -1315,15 +1315,15 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits
var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/creamy = new(get_turf(target))
creamy.splat(target)
if (ADMIN_PUNISHMENT_CUSTOM_PIE)
- var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/A = new(get_turf(target))
+ var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/A = new()
if(!A.reagents)
- var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num
+ var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num|null
if(amount)
A.create_reagents(amount)
if(A.reagents)
var/chosen_id = choose_reagent_id(usr)
if(chosen_id)
- var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num
+ var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num|null
if(amount)
A.reagents.add_reagent(chosen_id, amount)
A.splat(target)
diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm
index b3ad6b5126..178f4e786b 100644
--- a/code/modules/food_and_drinks/food/snacks_pie.dm
+++ b/code/modules/food_and_drinks/food/snacks_pie.dm
@@ -44,8 +44,8 @@
if(ishuman(hit_atom))
var/mob/living/carbon/human/H = hit_atom
var/mutable_appearance/creamoverlay = mutable_appearance('icons/effects/creampie.dmi')
- if(H.dna.species.limbs_id == "lizard")
- creamoverlay.icon_state = "creampie_lizard"
+ if((dna.species.default_features["mam_snouts"] && dna.features["mam_snouts"] != "None") || (dna.species.default_features["snout"] && dna.features["snout"] != "None"))
+ creamoverlay.icon_state = "creampie_snout"
else
creamoverlay.icon_state = "creampie_human"
if(stunning)
@@ -53,7 +53,7 @@
H.adjust_blurriness(1)
H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!")
playsound(H, "desceration", 50, TRUE)
- if(!H.is_mouth_covered())
+ if(!H.is_mouth_covered())
reagents.trans_to(H,15) //Cream pie combat
if(!H.creamed) // one layer at a time
H.add_overlay(creamoverlay)
diff --git a/icons/effects/creampie.dmi b/icons/effects/creampie.dmi
index 6caecf7d76..d85131f47d 100644
Binary files a/icons/effects/creampie.dmi and b/icons/effects/creampie.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 06c841e021..8b04b3deac 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -1498,6 +1498,7 @@
#include "code\modules\antagonists\swarmer\swarmer.dm"
#include "code\modules\antagonists\swarmer\swarmer_event.dm"
#include "code\modules\antagonists\traitor\datum_traitor.dm"
+#include "code\modules\antagonists\traitor\syndicate_contract.dm"
#include "code\modules\antagonists\traitor\classes\ai.dm"
#include "code\modules\antagonists\traitor\classes\assassin.dm"
#include "code\modules\antagonists\traitor\classes\freeform.dm"
@@ -1506,7 +1507,6 @@
#include "code\modules\antagonists\traitor\classes\martyr.dm"
#include "code\modules\antagonists\traitor\classes\subterfuge.dm"
#include "code\modules\antagonists\traitor\classes\traitor_class.dm"
-#include "code\modules\antagonists\traitor\syndicate_contract.dm"
#include "code\modules\antagonists\traitor\equipment\contractor.dm"
#include "code\modules\antagonists\traitor\equipment\Malf_Modules.dm"
#include "code\modules\antagonists\traitor\IAA\internal_affairs.dm"