diff --git a/code/game/gamemodes/wizard/spellbook.dm b/code/game/gamemodes/wizard/spellbook.dm
index b12b28709f6..6f96d4c22e2 100644
--- a/code/game/gamemodes/wizard/spellbook.dm
+++ b/code/game/gamemodes/wizard/spellbook.dm
@@ -915,4 +915,4 @@
var/static/banned_spells = list(/obj/item/spellbook/oneuse/mime, /obj/item/spellbook/oneuse/mime/fingergun, /obj/item/spellbook/oneuse/mime/fingergun/fake, /obj/item/spellbook/oneuse/mime/greaterwall)
var/real_type = pick(subtypesof(/obj/item/spellbook/oneuse) - banned_spells)
new real_type(loc)
- return INITIALIZE_HINT_QDEL
\ No newline at end of file
+ qdel(src)
\ No newline at end of file
diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm
index 8e7ff018a32..0eed8fcba00 100644
--- a/code/game/objects/effects/effect_system/effects_smoke.dm
+++ b/code/game/objects/effects/effect_system/effects_smoke.dm
@@ -208,9 +208,3 @@
/datum/effect_system/smoke_spread/sleeping
effect_type = /obj/effect/particle_effect/smoke/sleeping
-
-/proc/do_smoke(range=0, location=null, smoke_type = /obj/effect/particle_effect/smoke)
- var/datum/effect_system/smoke_spread/smoke = new
- smoke.effect_type = smoke_type
- smoke.set_up(range, location)
- smoke.start()
diff --git a/code/modules/awaymissions/mission_code/academy.dm b/code/modules/awaymissions/mission_code/academy.dm
index 86e5dd045a0..d15b3e3075d 100644
--- a/code/modules/awaymissions/mission_code/academy.dm
+++ b/code/modules/awaymissions/mission_code/academy.dm
@@ -87,7 +87,12 @@
/obj/item/dice/d20/fate/equipped(mob/user, slot)
if(!ishuman(user) || !user.mind || (user.mind in SSticker.mode.wizards))
to_chat(user, "You feel the magic of the dice is restricted to ordinary humans! You should leave it alone.")
- forceMove(get_turf(user))
+ user.unEquip(src)
+
+/obj/item/dice/d20/fate/proc/create_smoke(amount)
+ var/datum/effect_system/smoke_spread/smoke = new
+ smoke.set_up(amount, 0, drop_location())
+ smoke.start()
/obj/item/dice/d20/fate/proc/effect(var/mob/living/carbon/human/user, roll)
var/turf/T = get_turf(src)
@@ -109,7 +114,7 @@
//Destroy Equipment
T.visible_message("Everything [user] is holding and wearing disappears!")
for(var/obj/item/I in user)
- if(istype(I, /obj/item/implant))
+ if(istype(I, /obj/item/implant) || istype(I, /obj/item/organ))
continue
qdel(I)
if(5)
@@ -124,7 +129,7 @@
if(7)
//Throw
T.visible_message("Unseen forces throw [user]!")
- user.Stun(60)
+ user.Stun(6)
user.adjustBruteLoss(50)
var/throw_dir = cardinal
var/atom/throw_target = get_edge_target_turf(user, throw_dir)
@@ -145,12 +150,12 @@
//Cookie
T.visible_message("A cookie appears out of thin air!")
var/obj/item/reagent_containers/food/snacks/cookie/C = new(drop_location())
- do_smoke(0, drop_location())
+ create_smoke(2)
C.name = "Cookie of Fate"
if(12)
//Healing
T.visible_message("[user] looks very healthy!")
- user.revive(full_heal = 1, admin_revive = 1)
+ user.revive()
if(13)
//Mad Dosh
T.visible_message("Mad dosh shoots out of [src]!")
@@ -166,24 +171,24 @@
if(14)
//Free Gun
T.visible_message("An impressive gun appears!")
- do_smoke(0, drop_location())
+ create_smoke(2)
new /obj/item/gun/projectile/revolver/mateba(drop_location())
if(15)
//Random One-use spellbook
T.visible_message("A magical looking book drops to the floor!")
- do_smoke(0, drop_location())
+ create_smoke(2)
new /obj/item/spellbook/oneuse/random(drop_location())
if(16)
//Servant & Servant Summon
T.visible_message("A Dice Servant appears in a cloud of smoke!")
var/mob/living/carbon/human/H = new(drop_location())
- do_smoke(0, drop_location())
+ create_smoke(2)
H.equipOutfit(/datum/outfit/butler)
var/datum/mind/servant_mind = new /datum/mind()
var/datum/objective/O = new
O.owner = servant_mind
- O.target = H.mind
+ O.target = user.mind
O.explanation_text = "Serve [user.real_name]."
servant_mind.objectives += O
servant_mind.transfer_to(H)
@@ -193,6 +198,7 @@
var/mob/dead/observer/C = pick(candidates)
message_admins("[ADMIN_LOOKUPFLW(C)] was spawned as Dice Servant")
H.key = C.key
+ to_chat(H, "You are a servant of [user.real_name]. You must do everything in your power to follow their orders.")
var/obj/effect/proc_holder/spell/targeted/summonmob/S = new
S.target_mob = H
@@ -202,12 +208,12 @@
//Tator Kit
T.visible_message("A suspicious box appears!")
new /obj/item/storage/box/syndicate(drop_location())
- do_smoke(0, drop_location())
+ create_smoke(2)
if(18)
//Captain ID
T.visible_message("A golden identification card appears!")
new /obj/item/card/id/captains_spare(drop_location())
- do_smoke(0, drop_location())
+ create_smoke(2)
if(19)
//Instrinct Resistance
T.visible_message("[user] looks very robust!")