diff --git a/code/datums/helper_datums/teleport.dm b/code/datums/helper_datums/teleport.dm
index 45922040d7f..c5bff0660e2 100644
--- a/code/datums/helper_datums/teleport.dm
+++ b/code/datums/helper_datums/teleport.dm
@@ -118,6 +118,11 @@
if(teleatom.Move(destturf))
playSpecials(destturf,effectout,soundout)
+ if(isliving(teleatom))
+ var/mob/living/L = teleatom
+ if(L.buckled)
+ L.buckled.unbuckle()
+
destarea.Entered(teleatom)
return 1
diff --git a/code/modules/events/wizard/aid.dm b/code/modules/events/wizard/aid.dm
index 8c215e0fbe0..f7689ae4e1f 100644
--- a/code/modules/events/wizard/aid.dm
+++ b/code/modules/events/wizard/aid.dm
@@ -34,6 +34,8 @@
for(var/obj/effect/proc_holder/spell/S in L.mind.spell_list)
S.name = initial(S.name)
S.spell_level++
+ if(S.spell_level >= 6 || S.charge_max <= 0) //Badmin checks, these should never be a problem in normal play
+ continue
S.charge_max = round(initial(S.charge_max) - S.spell_level * (initial(S.charge_max) - S.cooldown_min)/ S.level_max)
if(S.charge_max < S.charge_counter)
S.charge_counter = S.charge_max
diff --git a/code/modules/events/wizard/blobies.dm b/code/modules/events/wizard/blobies.dm
index aff93fccaa7..d66cd5f76c3 100644
--- a/code/modules/events/wizard/blobies.dm
+++ b/code/modules/events/wizard/blobies.dm
@@ -3,7 +3,7 @@
weight = 3
typepath = /datum/round_event/wizard/blobies/
max_occurrences = 3
- earliest_start = 0
+ earliest_start = 12000 // 20 minutes (gotta get some bodies made!)
/datum/round_event/wizard/blobies/start()
diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm
index 340e3a0c268..c057de5b96e 100644
--- a/code/modules/events/wizard/curseditems.dm
+++ b/code/modules/events/wizard/curseditems.dm
@@ -10,7 +10,7 @@
//item you want to equip to the hand, and set its slots_flags = null. Only items equiped to hands need do this.
/datum/round_event/wizard/cursed_items/start()
- var/item_set = pick("wizardmimic", "swords", "bigfatdoobie", "boxing", "voicemodulators", "headphones")
+ var/item_set = pick("wizardmimic", "swords", "bigfatdoobie", "boxing", "voicemodulators")
var/list/wearslots = list(slot_wear_suit, slot_shoes, slot_head, slot_wear_mask, slot_r_hand, slot_gloves, slot_ears)
var/list/loadout = list()
var/ruins_spaceworthiness
@@ -29,7 +29,6 @@
loadout[6] = /obj/item/clothing/gloves/boxing
ruins_spaceworthiness = 1
if("voicemodulators") loadout[4] = /obj/item/clothing/mask/gas/voice
- if("headphones") loadout[7] = /obj/item/clothing/ears/earmuffs
for(var/mob/living/carbon/human/H in living_mob_list)
if(ruins_spaceworthiness && (H.z != 1 || istype(H.loc, /turf/space))) continue //#savetheminers
diff --git a/code/modules/events/wizard/fakeexplosion.dm b/code/modules/events/wizard/fakeexplosion.dm
index 893b6d2e95b..1424d63c18e 100644
--- a/code/modules/events/wizard/fakeexplosion.dm
+++ b/code/modules/events/wizard/fakeexplosion.dm
@@ -1,6 +1,6 @@
/datum/round_event_control/wizard/fake_explosion //Oh no the station is gone!
name = "Fake Explosion"
- weight = 2
+ weight = 0 //Badmin exclusive now because once it's expected its not funny
typepath = /datum/round_event/wizard/fake_explosion/
max_occurrences = 1
earliest_start = 0
diff --git a/code/modules/events/wizard/greentext.dm b/code/modules/events/wizard/greentext.dm
index 6ac5ad460ee..3d8b0f4ddca 100644
--- a/code/modules/events/wizard/greentext.dm
+++ b/code/modules/events/wizard/greentext.dm
@@ -21,7 +21,7 @@
/obj/item/weapon/greentext/
name = "greentext"
- desc = "for some the pursuit of greentext is the greatest calling in life..."
+ desc = "No one knows what this massive tome does, but it feels desirable all the same..."
w_class = 4.0
icon = 'icons/obj/wizard.dmi'
icon_state = "greentext"
diff --git a/code/modules/events/wizard/race.dm b/code/modules/events/wizard/race.dm
index a28dab20daf..96d8c5ea8ff 100644
--- a/code/modules/events/wizard/race.dm
+++ b/code/modules/events/wizard/race.dm
@@ -18,5 +18,6 @@
if(H.dna)
H.dna.species = new new_species
H.regenerate_icons()
+ H << "You feel somehow... different?"
if(!all_the_same)
new_species = pick(all_species)
diff --git a/code/modules/events/wizard/shuffle.dm b/code/modules/events/wizard/shuffle.dm
index e49d9be5368..4315f3a4261 100644
--- a/code/modules/events/wizard/shuffle.dm
+++ b/code/modules/events/wizard/shuffle.dm
@@ -24,7 +24,7 @@
for(var/mob/living/carbon/human/H in mobs)
if(!moblocs) break //locs aren't always unique, so this may come into play
- H.loc = moblocs[moblocs.len]
+ do_teleport(H, moblocs[moblocs.len])
moblocs.len -= 1
for(var/mob/living/carbon/human/H in living_mob_list)
@@ -46,7 +46,7 @@
var/list/mobs = list()
for(var/mob/living/carbon/human/H in living_mob_list)
- mobnames += H.name
+ mobnames += H.real_name
mobs += H
if(!mobs) return
@@ -56,7 +56,7 @@
for(var/mob/living/carbon/human/H in mobs)
if(!mobnames) break
- H.name = mobnames[mobnames.len]
+ H.real_name = mobnames[mobnames.len]
mobnames.len -= 1
for(var/mob/living/carbon/human/H in living_mob_list)
@@ -85,10 +85,11 @@
shuffle(mobs)
var/obj/effect/proc_holder/spell/targeted/mind_transfer/swapper = new /obj/effect/proc_holder/spell/targeted/mind_transfer/
- for(var/mob/living/carbon/human/H in mobs)
+ while(mobs.len > 1)
+ var/mob/living/carbon/human/H = pick(mobs)
+ mobs -= H
swapper.cast(list(H), mobs[mobs.len], 1)
- mobs.len -= 1
- if(mobs.len <= 1) break
+ mobs -= mobs[mobs.len]
for(var/mob/living/carbon/human/H in living_mob_list)
var/datum/effect/effect/system/harmless_smoke_spread/smoke = new /datum/effect/effect/system/harmless_smoke_spread()
diff --git a/icons/obj/wizard.dmi b/icons/obj/wizard.dmi
index 19a83504864..b87ea13bf30 100644
Binary files a/icons/obj/wizard.dmi and b/icons/obj/wizard.dmi differ