diff --git a/baystation12.dme b/baystation12.dme
index 66731f94714..50e8f15a2cb 100644
--- a/baystation12.dme
+++ b/baystation12.dme
@@ -971,7 +971,6 @@
#include "code\modules\mob\living\carbon\monkey\monkey.dm"
#include "code\modules\mob\living\carbon\monkey\powers.dm"
#include "code\modules\mob\living\carbon\monkey\update_icons.dm"
-#include "code\modules\mob\living\carbon\zombie\zombie.dm"
#include "code\modules\mob\living\silicon\death.dm"
#include "code\modules\mob\living\silicon\login.dm"
#include "code\modules\mob\living\silicon\say.dm"
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index b0671029aac..45e87cbd86c 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -92,7 +92,6 @@ var/list/admin_verbs_fun = list(
/datum/admins/proc/toggle_aliens,
/datum/admins/proc/toggle_space_ninja,
/client/proc/send_space_ninja,
- /client/proc/zombie_event, // ZOMBB-B-BIES
/client/proc/cmd_admin_add_freeform_ai_law,
/client/proc/cmd_admin_add_random_ai_law,
/client/proc/make_sound,
diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm
index 299f5c413ce..2d6dd466ff0 100644
--- a/code/modules/client/preferences.dm
+++ b/code/modules/client/preferences.dm
@@ -841,7 +841,7 @@ datum/preferences
age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN)
if("species")
- var/list/new_species = list("Human","Tajaran","Skrell","Unathi","Diona")
+ var/list/new_species = list("Human","Tajaran","Skrell","Unathi","Diona","Skellington")
var/prev_species = species
// var/whitelisted = 0
diff --git a/code/modules/mining/machine_stacking.dm b/code/modules/mining/machine_stacking.dm
index fc39e8a7d32..19cce3caeab 100644
--- a/code/modules/mining/machine_stacking.dm
+++ b/code/modules/mining/machine_stacking.dm
@@ -95,7 +95,7 @@
storage.amount += inp.amount //Stack the sheets
inp.loc = null //Let the old sheet garbage collect
while(storage.amount > stack_amt) //Get rid of excessive stackage
- var/obj/item/stack/sheet/out = new input.type()
+ var/obj/item/stack/sheet/out = new inp.type()
out.amount = stack_amt
out.loc = output.loc
storage.amount -= stack_amt
diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm
index cab30ace028..04422dc7069 100644
--- a/code/modules/mob/living/carbon/species.dm
+++ b/code/modules/mob/living/carbon/species.dm
@@ -149,7 +149,7 @@
language = "Clatter"
attack_verb = "punch"
- flags = WHITELISTED | HAS_LIPS | HAS_TAIL | NO_EAT | NO_BREATHE | NON_GENDERED
+ flags = HAS_LIPS | HAS_TAIL | NO_EAT | NO_BREATHE | NON_GENDERED
diff --git a/code/modules/mob/living/carbon/zombie/zombie.dm b/code/modules/mob/living/carbon/zombie/zombie.dm
deleted file mode 100644
index 9818123b6d2..00000000000
--- a/code/modules/mob/living/carbon/zombie/zombie.dm
+++ /dev/null
@@ -1,582 +0,0 @@
-#define cycle_pause 4 //min 1
-#define viewrange 7 //min 2
-
-/mob/living/carbon/human/zombie/New()
- ..()
- // Uh, what? - N3X
- src.mind = new/datum/mind(src)
-
-
-/mob/living/carbon/human/zombie //Define
- name = "zombie"
- desc = "A Zombie."
- a_intent = "harm"
-
- var/state = 0
-
- var/list/path = new/list()
-
- var/frustration = 0
- var/mob/living/carbon/target
- var/list/path_target = new/list()
-
- var/turf/trg_idle
- var/list/path_idle = new/list()
-
- var/alive = 1 //1 alive, 0 dead
-
- var/zsay = new/list()
-
- New()
- ..()
- zsay += "braaaaains"
- zsay += "Mrrrhrrrrrrmmmm"
- zsay += "BRAIIIIIIIIINSSSSS"
- zsay += "uuuuuuuuuuuhhhh"
- zsay += "grrrr-grrrii-gggrii-fffee-rrr"
- zsay += "UHhuHUhuhhhh"
- zsay += "thriii-thirriiill--errrr"
- zsay += "GRRRRRRRRR"
- zsay += "ahhhaaaarraaghh"
- zsay += "eeemmmmmmaaarrrrrrraggh"
- zsay += "AAARRAAAGGGGHHHHHH"
- zsay += "FFFFEEEEERRAAAAG"
- zsay += "bbbb-bbb-ainnnnnns"
-
- src.contract_disease(new/datum/disease/z_virus)
-
- src.process()
-
- emote(var/act)
- act = "[src] moans."
- for (var/mob/O in hearers(src, null))
- O.show_message(act, 2)
-
- Bumped(AM as mob|obj)
- // ..()
- if(istype(AM, /mob/living/carbon/human/zombie))
- return
- if(ismob(AM) && (ishuman(AM) || ismonkey(AM)) )
- src.target = AM
- set_attack()
- else if(ismob(AM))
- spawn(0)
- var/turf/T = get_turf(src)
- AM:loc = T
-
- Bump(atom/A)
- if(istype(A, /mob/living/carbon/human/zombie))
- return
- if(ismob(A) && (ishuman(A) || ismonkey(A)))
- src.target = A
- set_attack()
- else if(ismob(A))
- src.loc = A:loc
-
-
- proc/set_attack()
- state = 1
- if(path_idle.len) path_idle = new/list()
- trg_idle = null
-
- proc/set_idle()
- state = 2
- if (path_target.len) path_target = new/list()
- target = null
- frustration = 0
-
- proc/set_null()
- state = 0
- if (path_target.len) path_target = new/list()
- if (path_idle.len) path_idle = new/list()
- target = null
- trg_idle = null
- frustration = 0
-
- proc/process()
- set background = 1
- var/quick_move = 1
- var/slow_move = 0
-
- if (src.stat == 2)
- return
-
- if (src.stat > 0 || lying)
- spawn(cycle_pause)
- src.process()
- return
-
- if(istype(src.shoes, /obj/item/clothing/shoes/orange))
- var/obj/item/clothing/shoes/orange/Os = src.shoes
- if(Os.chained)
- slow_move = 1
- else if(istype(src.wear_suit, /obj/item/clothing/suit/straight_jacket))
- slow_move = 1
-
-
- else if (!target)
- if (path_target.len) path_target = new/list()
-
- var/last_health = INFINITY
-
- for (var/mob/living/carbon/C in range(viewrange-2,src.loc))
- if (C.stat == 2 || !can_see(src,C,viewrange) || istype(C, /mob/living/carbon/human/zombie) || istype(C, /mob/living/carbon/monkey))
- continue
- if(C:stunned || C:paralysis || C:weakened)
- target = C
- break
- if(C:health < last_health)
- last_health = C:health
- target = C
-
- if(target)
- set_attack()
- else if(state != 2)
- set_idle()
- idle()
-
- else if(target)
- var/turf/distance = get_dist(src, target)
- set_attack()
-
- if(can_see(src,target,viewrange))
- if(distance <= 1 && !istype(src.wear_mask, /obj/item/clothing/mask))
- if(prob(25))
- for(var/mob/O in viewers(world.view,src))
- O.show_message("\red [src] has attempted to bite [src.target]!", 1, "\red You hear struggling.", 2)
- else
- for(var/mob/O in viewers(world.view,src))
- O.show_message("\red [src.target] has been bitten by [src]!", 1, "\red You hear struggling.", 2)
- var/mob/living/carbon/human/T = target
- T.bruteloss += rand(1,7)
- var/datum/organ/external/affecting
- if(T.organs["head"]) affecting = T.organs["head"]
- affecting.take_damage(rand(1,7), 0)
- playsound(src.loc, 'sound/items/eatfood.ogg', 50, 1)
- if(prob(25))
- target.contract_disease(new/datum/disease/z_virus)
- src.add_blood(src.target)
- if (prob(33))
- var/turf/location = src.target.loc
- if (istype(location, /turf/simulated))
- location.add_blood(src.target)
- if (src.wear_mask)
- src.wear_mask.add_blood(src.target)
- if (src.head)
- src.head.add_blood(src.target)
- if (src.glasses && prob(33))
- src.glasses.add_blood(src.target)
- if (src.gloves)
- src.gloves.add_blood(src.target)
- if (prob(15))
- if (src.wear_suit)
- src.wear_suit.add_blood(src.target)
- else if (src.w_uniform)
- src.w_uniform.add_blood(src.target)
- sleep(5)
- //target:paralysis = max(target:paralysis, 10)
- else if(distance <= 1 && !src.handcuffed && !istype(src.wear_suit, /obj/item/clothing/suit/straight_jacket))
- if(prob(25) && src.equipped())
- var/obj/item/weapon/A = src.equipped()
- A.attack(src.target, src)
- else if(prob(25))
- for(var/mob/O in viewers(world.view,src))
- O.show_message("\red [src] has attempted to claw [src.target]!", 1, "\red You hear struggling.", 2)
- else
- for(var/mob/O in viewers(world.view,src))
- O.show_message("\red [src.target] has been clawed by [src]!", 1, "\red You hear struggling.", 2)
- var/mob/living/carbon/human/T = target
- T.bruteloss += rand(1,7)
- var/datum/organ/external/affecting
- if(T.organs["head"]) affecting = T.organs["head"]
- affecting.take_damage(rand(1,7), 0)
- if(prob(12.5))
- target.contract_disease(new/datum/disease/z_virus)
- src.add_blood(src.target)
- if (prob(33))
- var/turf/location = src.target.loc
- if (istype(location, /turf/simulated))
- location.add_blood(src.target)
- if (src.wear_mask)
- src.wear_mask.add_blood(src.target)
- if (src.head)
- src.head.add_blood(src.target)
- if (src.glasses && prob(33))
- src.glasses.add_blood(src.target)
- if (src.gloves)
- src.gloves.add_blood(src.target)
- if (prob(15))
- if (src.wear_suit)
- src.wear_suit.add_blood(src.target)
- else if (src.w_uniform)
- src.w_uniform.add_blood(src.target)
-
- else
- step_towards(src,get_step_towards2(src , target))
- set_null()
- if(!slow_move)
- spawn(cycle_pause) src.process()
- else
- spawn(cycle_pause*2) src.process()
- return
-
- else
- if( !path_target.len )
-
- path_attack(target)
- if(!path_target.len)
- set_null()
- if(!slow_move)
- spawn(cycle_pause) src.process()
- else
- spawn(cycle_pause*2) src.process()
- return
- else
- var/turf/next = path_target[1]
-
- if(next in range(1,src))
- path_attack(target)
-
- if(!path_target.len)
- src.frustration += 5
- else
- next = path_target[1]
- path_target -= next
- step_towards(src,next)
- quick_move = 1
-
- if (get_dist(src, src.target) >= distance) src.frustration++
- else src.frustration--
- if(frustration >= 35) set_null()
-
- if(prob(3) && !src.stat == 2)
- if(prob(50))
- src.say(pick(zsay))
- else
- src.emote("moan")
-
- if(slow_move)
- spawn(cycle_pause*2)
- src.process()
- else if(quick_move)
- spawn(cycle_pause/2)
- src.process()
- else
- spawn(cycle_pause)
- src.process()
-
-
- for(var/obj/machinery/door/D in oview(1))
- D.Bumped(src)
-
-
-
-
- proc/idle()
- set background = 1
- var/quick_move = 0
-
- if(state != 2 || src.stat == 2 || target) return
-
- step_rand(src)
-
- if(prob(3))
- if(prob(10))
- src.say(pick(zsay))
- else
- src.emote("moan")
-
- if(quick_move)
- spawn(cycle_pause/2)
- idle()
- else
- spawn(cycle_pause)
- idle()
-
- proc/path_idle(var/atom/trg)
- path_idle = AStar(src.loc, get_turf(trg), /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 250, null, null)
- path_idle = reverselist(path_idle)
-
- proc/path_attack(var/atom/trg)
- target = trg
- path_target = AStar(src.loc, target.loc, /turf/proc/CardinalTurfsWithAccess, /turf/proc/Distance, 0, 250, null, null)
- path_target = reverselist(path_target)
-
-
- proc/healthcheck()
- return
-
-
-//Zombies!
-
-/datum/disease/z_virus
- name = "T-Virus"
- max_stages = 5
- spread = "Contact"
- cure = "???"
- spread_type = SPECIAL
- cure_id = "zed"
- affected_species = list("Human", "Human/Zombie")
-
-/datum/disease/z_virus/stage_act()
- ..()
- if(istype(affected_mob, /mob/living/carbon/human/zombie) && !src.carrier)
- src.carrier = 1
- return
- switch(stage)
- if(1)
- if (prob(8))
- affected_mob << pick("\red Something about you doesnt feel right.","\red Your head starts to itch.")
- if(2)
- if (prob(8))
- affected_mob << "\red Your limbs feel numb."
- affected_mob.bruteloss += 1
- affected_mob.updatehealth()
- if (prob(9))
- affected_mob << "\red You feel ill..."
- if (prob(9))
- affected_mob << "\red You feel a pain in your stomache..."
- if(3)
- if (prob(8))
- affected_mob << text("\red []", pick("owww...","I want...","Please..."))
- affected_mob.bruteloss += 1
- affected_mob.updatehealth()
- if (prob(10))
- affected_mob << "\red You feel very ill."
- affected_mob.bruteloss += 5
- affected_mob.updatehealth()
- if (prob(4))
- affected_mob << "\red You feel a stabbing pain in your head."
- affected_mob.paralysis += 2
- if (prob(4))
- affected_mob << "\red Whats going to happen to me?"
- if(4)
- if (prob(10))
- affected_mob << pick("\red You feel violently sick.")
- affected_mob.bruteloss += 8
- affected_mob.updatehealth()
- if (prob(20))
- affected_mob.say(pick("Mmmmm.", "Hey... You look...", "Hsssshhhhh!"))
- if (prob(8))
- affected_mob << "\red You cant... feel..."
- if(5)
- affected_mob.toxloss += 10
- affected_mob.updatehealth()
- affected_mob << "You feel the life slowly slip away from you as you join the army of the undead.."
- affected_mob:Zombify()
-
-
-/mob/living/carbon/human/proc/Zombify()
- if (src.monkeyizing)
- return
- update_icons() // update_clothing()
- var/mob/living/carbon/human/zombie/O = new/mob/living/carbon/human/zombie( src.loc )
- //Yay, Zombie!
- O.name = name
- O.r_hair = name
- O.g_hair = g_hair
- O.b_hair = b_hair
- O.h_style = h_style
- O.r_facial = r_facial
- O.g_facial = g_facial
- O.b_facial = b_facial
- O.f_style = f_style
- O.r_eyes = r_eyes
- O.g_eyes = g_eyes
- O.b_eyes = b_eyes
- O.s_tone = s_tone
- O.age = age
-
- O.real_name = real_name
-
- O.wear_mask = wear_mask
- O.l_hand = l_hand
- O.r_hand = r_hand
- O.wear_suit = wear_suit
- O.w_uniform = w_uniform
-// O.w_radio = null
- O.shoes = shoes
- O.belt = belt
- O.gloves = gloves
- O.glasses = glasses
- O.head = head
- O.r_ear = r_ear
- O.l_ear = l_ear
- O.wear_id = wear_id
- O.r_store = r_store
- O.l_store = l_store
- O.back = back
-
- O.stand_icon = stand_icon
- O.lying_icon = lying_icon
-
- //O.last_b_state = last_b_state
-
- //O.face_standing = face_standing
- //O.face_lying = face_lying
-
- //O.hair_icon_state = hair_icon_state
- //O.face_icon_state = face_icon_state
-
- //O.body_standing = body_standing
- //O.body_lying = body_lying
- for(var/obj/Q in src)
- Q.loc = O
- O.update_icons()//update_clothing()
- src.ghostize()
- O.loc = src.loc
- del(src)
- return
-
-/obj/item/weapon/reagent_containers/glass/bottle/t_virus
- name = "Z-Virus culture bottle"
- desc = "A small bottle. Contains Z-Virus virion in synthblood medium."
- icon = 'icons/obj/chemical.dmi'
- icon_state = "bottle3"
- amount_per_transfer_from_this = 5
-
- New()
- var/datum/reagents/R = new/datum/reagents(20)
- reagents = R
- R.my_atom = src
- var/datum/disease/F = new /datum/disease/z_virus(0)
- var/list/data = list("virus"= F)
- R.add_reagent("blood", 20, data)
-
-///////////////////////////CURE//////////////////////////////////////////
-
-datum/reagent/zed
- name = "Zombie Elixer"
- id = "zed"
- description = "For treating the Z-Virus."
- //reagent_state = LIQUID
-
- on_mob_life(var/mob/M)//no more mr. panacea
- holder.remove_reagent(src.id, 0.2)
- return
-
-
-
-/obj/item/weapon/zedpen
- desc = "Small non-refillable auto-injector for curing the Z-Virus in early stages."
- name = "Z.E.D. Pen."
- icon = 'icons/obj/items.dmi'
- icon_state = "zed_1"
- flags = FPRINT | TABLEPASS/* | ONBELT*/
- throwforce = 0
- w_class = 1.0
- throw_speed = 7
- throw_range = 15
- m_amt = 60
-
-/obj/item/weapon/zedpen/attack_paw(mob/user as mob)
- return src.attack_hand(user)
- return
-
-/obj/item/weapon/zedpen/New()
- var/datum/reagents/R = new/datum/reagents(10)
- reagents = R
- R.my_atom = src
- R.add_reagent("zed", 10)
- ..()
- return
-
-/obj/item/weapon/zedpen/attack(mob/M as mob, mob/user as mob)
- if (!( istype(M, /mob) ))
- return
- if (reagents.total_volume)
- for(var/mob/O in viewers(M, null))
- O.show_message(text("\blue [] has been stabbed with [] by [].", M, src, user), 1)
-// user << "\red You stab [M] with the pen."
-// M << "\red You feel a tiny prick!"
- if(M.reagents) reagents.trans_to(M, 10)
- icon_state = "zed_0"
- return
-
-
-
-
-/obj/item/weapon/storage/firstaid/zed
- name = "Zed-Kit"
- icon_state = "zedkit"
- item_state = "firstaid-zed"
-
-/obj/item/weapon/storage/firstaid/zed/New()
-
- ..()
- new /obj/item/weapon/zedpen( src )
- new /obj/item/weapon/zedpen( src )
- new /obj/item/weapon/zedpen( src )
- new /obj/item/weapon/zedpen( src )
- new /obj/item/weapon/zedpen( src )
- new /obj/item/weapon/zedpen( src )
- new /obj/item/device/healthanalyzer( src )
- return
-
-
-////////////////////////////////////////////event code/////////////////////////////////////////
-
-/obj/landmark/zspawn
- name = "zombie spawn"
-
-/*
-/client/update_admins(var/rank)
- ..()
- if(rank == "Game Master"/* || rank == "Coder" || rank == "Primary Administrator" || rank == "Administrator"*/)
- src.verbs += /client/proc/zombie_event
-*/
-
-/client/proc/zombie_event()
- set category = "Special Verbs"
- set name = "Spawn Zombies"
-
-// if(!istype(ticker.mode, /datum/game_mode/biohazard))
-// if(src)
-// src << "\red Wrong game mode!"
-// return
-
- if(usr) message_admins("[key_name_admin(usr)] has spawned a zombie", 1)
-// command_alert("Confirmed outbreak of level 13 biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert")
- var/list/t = list()
- for(var/obj/landmark/zspawn/O in world)
- t += O
- if(!t.len)
- usr<<"No spawn points exist."
- return
- var/obj/landmark/s = pick(t)
- var/mob/living/carbon/human/zombie/Z = new/mob/living/carbon/human/zombie(s.loc)
-
- Z.gender = pick(MALE, FEMALE)
-
- var/flooks = new/list()
- var/mlooks = new/list()
-
- flooks += "0990CC0FF000000000DC0000033000902136F93"
- flooks += "0CC000033000000000DC0000033000C4308DEB4"
- flooks += "066000033000000000B90000033000E1E03FD3F"
- flooks += "066000033000000000690000033000A0F06C6D5"
- flooks += "0CC000000000000000EB0000000066D1F11EDA3"
- //flooks += "0FF0000FF000000000F50000000066B360B819"
-
- mlooks += "066000033000000000CD000000000071E0F7382"
- mlooks += "066000033000000000B9006603300037909B45A"
- mlooks += "000000000000000000690000000066487060580"
- mlooks += "000000000000000000CD0000000000638074390"
- mlooks += "066000033066000033CD00000000000D8D20B9B"
-
- if(Z.gender == MALE)
- Z.dna.unique_enzymes = pick(mlooks)
- else
- Z.dna.unique_enzymes = pick(flooks)
-
- updateappearance(Z, Z.dna.unique_enzymes)
-
- if(Z.gender == MALE)
- Z.real_name = text("[] []", pick(first_names_male), pick(last_names))
- else
- Z.real_name = text("[] []", pick(first_names_female), pick(last_names))
-
- //var/a = pick("Janitor", "Medical Doctor", "Assistant", "Atmospheric Technician", "Security Officer", "Botanist", "Cargo Technician")
- //Z.Equip_Rank(a, 0)
- //Commented out by pygmy. Reason: Triggers my anti-spawn-at-menu code. Compromising this risks server.
- Z.loc = s.loc
\ No newline at end of file
diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm
index 67168f048ee..f6c57b8989f 100644
--- a/code/modules/mob/transform_procs.dm
+++ b/code/modules/mob/transform_procs.dm
@@ -380,48 +380,3 @@
return 1 // ZOMG PONIES WHEEE
//Not in here? Must be untested!
return 0
-
-
-/*
-
-//////////////////////Grutor:
-/////////////////////Zombie tranformation into NPC type zombie//////////////
-////////////////////I'm very certain we can just remove player key//////////
-////////////////move it to AI control instead and change body icon//////////
-////////////////////////to zombie. But o'well lol//////////////////////////
-/mob/living/carbon/human/proc/Turnundead()
- if (monkeyizing)
- return
- for(var/obj/item/W in src)
- drop_from_inventory(W) //should be replace with look for something that can transfer items
- regenerate_icons()
- monkeyizing = 1
- canmove = 0
- icon = null
- invisibility = 101
- for(var/t in organs) //this really should not be necessary
- del(t)
-
- var/mob/living/simple_animal/hostile/new_zombie = new /mob/living/simple_animal/hostile/zombie (src.loc)
-
- new_zombie.name = "Zombie \red[name]"
- new_zombie.desc = "A person that has fallen victim to cannibles."
- new_zombie.loc = loc
- //If you wish everything from here to there can be edited out...
- new_zombie.dna = dna //Don't know why I did this, you can't prick em with a needle
- if(src.viruses) //Checks and see if the source has any viruses
- for(var/datum/disease/tempvirus in new_zombie.viruses) //retrieves anything of disease type
- tempvirus.cure(0) //For each virus found cure it
- //One day we will need this...
- for(var/datum/disease/cv in src.viruses)
- new_zombie.viruses += cv //Add/assign the list to the zombie
- cv.affected_mob = new_zombie //Change the copy's var to zombie
- cv.strain_data = cv.strain_data.Copy() //what? line 520 does this already....
- cv.holder = new_zombie //new_zombie is holder of the virus
- cv.carrier = 1
- //Edit from there to hear if you wish.
- spawn(0)//To prevent the proc from returning null.
- del(src)
- return
-
-*/
\ No newline at end of file
diff --git a/code/modules/projectiles/ammunition/bullets.dm b/code/modules/projectiles/ammunition/bullets.dm
index 4e42e67969b..87083bf1920 100644
--- a/code/modules/projectiles/ammunition/bullets.dm
+++ b/code/modules/projectiles/ammunition/bullets.dm
@@ -43,6 +43,10 @@
caliber = ".45"
projectile_type = "/obj/item/projectile/bullet/midbullet"
+/obj/item/ammo_casing/c10mm
+ desc = "A 10mm bullet casing."
+ caliber = "10mm"
+ projectile_type = "obj/item/projectile/bullet/midbullet2"
/obj/item/ammo_casing/a12mm
desc = "A 12mm bullet casing."
diff --git a/code/modules/projectiles/guns/projectile/shotgun.dm b/code/modules/projectiles/guns/projectile/shotgun.dm
index 81d015a4169..74844a979dc 100644
--- a/code/modules/projectiles/guns/projectile/shotgun.dm
+++ b/code/modules/projectiles/guns/projectile/shotgun.dm
@@ -11,14 +11,14 @@
if(istype(A, /obj/item/ammo_box))
var/obj/item/ammo_box/AM = A
for(var/obj/item/ammo_casing/AC in AM.stored_ammo)
- if(magazine.give_round(AC))
+ if(magazine && magazine.give_round(AC))
AM.stored_ammo -= AC
num_loaded++
else
break
if(istype(A, /obj/item/ammo_casing))
var/obj/item/ammo_casing/AC = A
- if(magazine.give_round(AC))
+ if(magazine && magazine.give_round(AC))
user.drop_item()
AC.loc = src
num_loaded++
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 18847fedaec..7c6c9f23319 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -3619,64 +3619,3 @@ datum
return
*/
-
-/*
-
-//Grutor
-/////////////////Zombie Stuff//////////////////
-
- //This isn't implemented yet, future updates might change this
- necroblood
- name = "Zombie blood"
- id = "necroblood"
- description = "It's blood, but it looks like jello."
- reagent_state = LIQUID
-
- //So you don't need to be a virologist
- necrocure
- name = "Zombie Cure"
- id = "necrocure"
- description = "The thing only stopping you from turning."
- reagent_state = LIQUID
- nutriment_factor = 0
- color = "#54C754" // rgb: 84, 199, 84
-
- z_meat
- name = "Zombie Juice"
- id = "zmeat"
- description = "Definitely smells funny."
- reagent_state = LIQUID
- color = "#E23351"
- var/said_it_before = 0
- var/fate_is_sealed = 0
-
- on_mob_life(var/mob/living/M as mob)
- ..()
- if(said_it_before == 0)
- M << "You are starting to have regrets..."
- said_it_before = 1
- if(prob(8) && istype(M, /mob/living/carbon) && fate_is_sealed == 0) //Per reagent tick there is a chance this person will explode
- fate_is_sealed = 1
- sleep(rand(80, 250))
- for(var/obj/item/W in M) //Some items will not be recovered..
- if(prob(70))
- M.drop_from_inventory(W)
- M.gib()
- return
-
- necrovirus
- name = "Zombie Virus"
- id = "necrodisease"
- description = "It's said it can bring the dead back to life."
- reagent_state = SOLID
-
- on_mob_life(var/mob/living/carbon/M as mob)
- if(!M) M = holder.my_atom
- var/datum/disease/D = new /datum/disease/zombie_transformation
- D.holder = M
- D.affected_mob = M
- M.viruses += D
- ..()
- return
-
-*/
\ No newline at end of file
diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm
index 2ed331d11a6..ea85ddadb15 100644
--- a/code/modules/reagents/Chemistry-Recipes.dm
+++ b/code/modules/reagents/Chemistry-Recipes.dm
@@ -1976,24 +1976,3 @@ datum
*/
-
-//Grutor
-///////////////////////Zombie recipes////////////////////////////
-
- /* necrocure
- name = "Zombie Cure"
- id = "necrocure"
- result = "necrocure"
- required_reagents = list("sterilizine" = 2, "zmeat" = 2)
- result_amount = 5
-
- necrodisease
- name = "Zombie Virus"
- id = "necrodisease"
- result = "necrodisease"
- required_reagents = list("zombiepowder" = 2, "cryptobiolin" = 2, "mutagen" = 2)
- result_amount = 5
-
- */
-
-
diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm
index a64af273833..3acaaffe9d1 100644
--- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm
@@ -25,20 +25,3 @@
/obj/item/weapon/reagent_containers/food/snacks/meat/corgi
name = "Corgi meat"
desc = "Tastes like... well you know..."
-
-//Grutor
-//zombies yum...
-/obj/item/weapon/reagent_containers/food/snacks/meat/undead
- name = "Rotten flesh"
- desc = "You really shouldn't..."
- icon = 'icons/obj/food.dmi'
- icon_state = "rottenmeat"
-
- attack(mob/M as mob, mob/user as mob, def_zone)
- if(..())
- M << "You are starting to have regrets..." //If you seeing this message twice, remove this one.
-
- New()
- ..()
- reagents.add_reagent("carpotoxin", 6)
- reagents.add_reagent("zmeat", 20)