diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm
index b5913c3e71a..3be1783df4b 100644
--- a/code/datums/diseases/transformation.dm
+++ b/code/datums/diseases/transformation.dm
@@ -202,7 +202,7 @@
if(ishuman(affected_mob))
var/mob/living/carbon/human/human = affected_mob
if(human.dna.species.id != "slime")
- human.set_species(/datum/species/slime)
+ human.set_species(/datum/species/jelly/slime)
/datum/disease/transformation/corgi
name = "The Barkening"
diff --git a/code/game/gamemodes/abduction/gland.dm b/code/game/gamemodes/abduction/gland.dm
index 6fed6acfe05..0a8d5814359 100644
--- a/code/game/gamemodes/abduction/gland.dm
+++ b/code/game/gamemodes/abduction/gland.dm
@@ -108,7 +108,7 @@
/obj/item/organ/internal/gland/pop/activate()
owner << "You feel unlike yourself."
- var/species = pick(list(/datum/species/lizard,/datum/species/slime,/datum/species/pod,/datum/species/fly))
+ var/species = pick(list(/datum/species/lizard,/datum/species/jelly/slime,/datum/species/pod,/datum/species/fly))
owner.set_species(species)
/obj/item/organ/internal/gland/ventcrawling
diff --git a/code/game/gamemodes/shadowling/shadowling.dm b/code/game/gamemodes/shadowling/shadowling.dm
index c0b441d2001..dc2022e1f78 100644
--- a/code/game/gamemodes/shadowling/shadowling.dm
+++ b/code/game/gamemodes/shadowling/shadowling.dm
@@ -266,8 +266,9 @@ Made by Xhuis
light_amount = T.get_lumcount()
if(light_amount > LIGHT_DAM_THRESHOLD && !H.incorporeal_move) //Can survive in very small light levels. Also doesn't take damage while incorporeal, for shadow walk purposes
H.take_overall_damage(0, LIGHT_DAMAGE_TAKEN)
- H << "The light burns you!" //Message spam to say "GET THE FUCK OUT"
- H << 'sound/weapons/sear.ogg'
+ if(H.stat != DEAD)
+ H << "The light burns you!" //Message spam to say "GET THE FUCK OUT"
+ H << 'sound/weapons/sear.ogg'
else if (light_amount < LIGHT_HEAL_THRESHOLD)
H.heal_overall_damage(5,5)
H.adjustToxLoss(-5)
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 07f2f5b3bea..e38816c620a 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -971,7 +971,7 @@ About the new airlock wires panel:
if(!density)
return 1
- if(!ticker)
+ if(!ticker || !ticker.mode)
return 0
operating = 1
@@ -1132,11 +1132,13 @@ About the new airlock wires panel:
return
/obj/machinery/door/airlock/emag_act(mob/user)
- if(density && hasPower() && !emagged)
+ if(!operating && density && hasPower() && !emagged)
+ operating = 1
update_icon(AIRLOCK_EMAG)
sleep(6)
if(qdeleted(src))
return
+ operating = 0
if(!open())
update_icon(AIRLOCK_CLOSED)
emagged = 1
diff --git a/code/game/machinery/doors/door.dm b/code/game/machinery/doors/door.dm
index f0194cc645d..3f79f986116 100644
--- a/code/game/machinery/doors/door.dm
+++ b/code/game/machinery/doors/door.dm
@@ -194,7 +194,7 @@
return 1
if(operating)
return
- if(!ticker)
+ if(!ticker || !ticker.mode)
return 0
operating = 1
diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm
index 45d6b6e64be..7d611a644c9 100644
--- a/code/game/machinery/doors/windowdoor.dm
+++ b/code/game/machinery/doors/windowdoor.dm
@@ -102,7 +102,7 @@
/obj/machinery/door/window/open(forced=0)
if (src.operating == 1) //doors can still open when emag-disabled
return 0
- if (!ticker)
+ if(!ticker || !ticker.mode)
return 0
if(!forced)
if(!hasPower())
@@ -251,10 +251,11 @@
return src.attackby(user, user)
/obj/machinery/door/window/emag_act(mob/user)
- if(density && !emagged)
- operating = 0
+ if(!operating && density && !emagged)
+ operating = 1
flick("[src.base_state]spark", src)
sleep(6)
+ operating = 0
desc += "
Its access panel is smoking slightly."
open()
emagged = 1
@@ -265,6 +266,9 @@
if (src.operating)
return
+ if(istype(I, /obj/item/weapon/card/emag))
+ return
+
add_fingerprint(user)
if(istype(I, /obj/item/weapon/screwdriver))
diff --git a/code/game/objects/effects/decals/cleanable.dm b/code/game/objects/effects/decals/cleanable.dm
index 1658f052e07..3a867084a0b 100644
--- a/code/game/objects/effects/decals/cleanable.dm
+++ b/code/game/objects/effects/decals/cleanable.dm
@@ -66,6 +66,7 @@
/obj/effect/decal/cleanable/proc/can_bloodcrawl_in()
- return bloodiness
-
-
+ if((blood_state != BLOOD_STATE_OIL) && (blood_state != BLOOD_STATE_NOT_BLOODY))
+ return bloodiness
+ else
+ return 0
\ No newline at end of file
diff --git a/code/modules/admin/secrets.dm b/code/modules/admin/secrets.dm
index 4496bba1b3f..3c2d24f8345 100644
--- a/code/modules/admin/secrets.dm
+++ b/code/modules/admin/secrets.dm
@@ -200,7 +200,7 @@
if("showgm")
if(!check_rights(R_ADMIN))
return
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("The game hasn't started yet!")
else if (ticker.mode)
alert("The game mode is [ticker.mode.name]")
@@ -303,7 +303,7 @@
if("traitor_all")
if(!check_rights(R_FUN))
return
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("The game hasn't started yet!")
return
var/objective = copytext(sanitize(input("Enter an objective")),1,MAX_MESSAGE_LEN)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index aaed2a84488..8a1577f4bb9 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -199,7 +199,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
set category = "Fun"
set name = "Make Robot"
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("Wait until the game starts")
return
if(istype(M, /mob/living/carbon/human))
@@ -215,7 +215,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
set category = "Fun"
set name = "Make Blob"
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("Wait until the game starts")
return
if(istype(M, /mob/living/carbon/human))
@@ -232,7 +232,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
set category = "Fun"
set name = "Make Simple Animal"
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("Wait until the game starts")
return
@@ -280,7 +280,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
set category = "Fun"
set name = "Make Alien"
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("Wait until the game starts")
return
if(ishuman(M))
@@ -297,7 +297,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
set category = "Fun"
set name = "Make slime"
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("Wait until the game starts")
return
if(ishuman(M))
@@ -474,7 +474,7 @@ var/global/list/g_fancy_list_of_types = null
set category = "Admin"
set name = "Grant Full Access"
- if (!ticker)
+ if(!ticker || !ticker.mode)
alert("Wait until the game starts")
return
if (istype(M, /mob/living/carbon/human))
diff --git a/code/modules/admin/verbs/onlyone.dm b/code/modules/admin/verbs/onlyone.dm
index 454869acf20..47747b9ecf1 100644
--- a/code/modules/admin/verbs/onlyone.dm
+++ b/code/modules/admin/verbs/onlyone.dm
@@ -1,5 +1,5 @@
/client/proc/only_one()
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("The game hasn't started yet!")
return
@@ -51,7 +51,7 @@
/client/proc/only_me()
- if(!ticker)
+ if(!ticker || !ticker.mode)
alert("The game hasn't started yet!")
return
diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm
index 08f09916727..322ac1f17a0 100644
--- a/code/modules/clothing/suits/miscellaneous.dm
+++ b/code/modules/clothing/suits/miscellaneous.dm
@@ -344,7 +344,7 @@
/obj/item/clothing/head/winterhood
name = "winter hood"
desc = "A hood attached to a heavy winter jacket."
- icon_state = "generic_hood"
+ icon_state = "winterhood"
body_parts_covered = HEAD
cold_protection = HEAD
min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT
@@ -355,48 +355,82 @@
icon_state = "coatcaptain"
armor = list(melee = 25, bullet = 30, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
+ hoodtype = /obj/item/clothing/head/winterhood/captain
+
+/obj/item/clothing/head/winterhood/captain
+ icon_state = "winterhood_captain"
/obj/item/clothing/suit/hooded/wintercoat/security
name = "security winter coat"
icon_state = "coatsecurity"
armor = list(melee = 25, bullet = 15, laser = 30, energy = 10, bomb = 25, bio = 0, rad = 0)
allowed = list(/obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/device/flashlight/seclite,/obj/item/weapon/melee/classic_baton/telescopic)
+ hoodtype = /obj/item/clothing/head/winterhood/security
+
+/obj/item/clothing/head/winterhood/security
+ icon_state = "winterhood_security"
/obj/item/clothing/suit/hooded/wintercoat/medical
name = "medical winter coat"
icon_state = "coatmedical"
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 50, rad = 0)
+ hoodtype = /obj/item/clothing/head/winterhood/medical
+
+/obj/item/clothing/head/winterhood/medical
+ icon_state = "winterhood_medical"
/obj/item/clothing/suit/hooded/wintercoat/science
name = "science winter coat"
icon_state = "coatscience"
allowed = list(/obj/item/device/analyzer,/obj/item/stack/medical,/obj/item/weapon/dnainjector,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/reagent_containers/hypospray,/obj/item/device/healthanalyzer,/obj/item/device/flashlight/pen,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/pill,/obj/item/weapon/storage/pill_bottle,/obj/item/weapon/paper,/obj/item/weapon/melee/classic_baton/telescopic)
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 10, bio = 0, rad = 0)
+ hoodtype = /obj/item/clothing/head/winterhood/science
+
+/obj/item/clothing/head/winterhood/science
+ icon_state = "winterhood_science"
/obj/item/clothing/suit/hooded/wintercoat/engineering
name = "engineering winter coat"
icon_state = "coatengineer"
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 20)
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/device/t_scanner, /obj/item/weapon/rcd)
+ hoodtype = /obj/item/clothing/head/winterhood/engineering
+
+/obj/item/clothing/head/winterhood/engineering
+ icon_state = "winterhood_engineer"
/obj/item/clothing/suit/hooded/wintercoat/engineering/atmos
name = "atmospherics winter coat"
icon_state = "coatatmos"
+ hoodtype = /obj/item/clothing/head/winterhood/engineering/atmos
+
+/obj/item/clothing/head/winterhood/engineering/atmos
+ icon_state = "winterhood_atmos"
/obj/item/clothing/suit/hooded/wintercoat/hydro
name = "hydroponics winter coat"
icon_state = "coathydro"
allowed = list(/obj/item/weapon/reagent_containers/spray/plantbgone,/obj/item/device/analyzer/plant_analyzer,/obj/item/seeds,/obj/item/weapon/reagent_containers/glass/bottle,/obj/item/weapon/cultivator,/obj/item/weapon/reagent_containers/spray/pestspray,/obj/item/weapon/hatchet,/obj/item/weapon/storage/bag/plants)
+ hoodtype = /obj/item/clothing/head/winterhood/hydro
+
+/obj/item/clothing/head/winterhood/hydro
+ item_state = "winterhood_hydro"
/obj/item/clothing/suit/hooded/wintercoat/cargo
name = "cargo winter coat"
icon_state = "coatcargo"
+ hoodtype = /obj/item/clothing/head/winterhood/cargo
+
+/obj/item/clothing/head/winterhood/cargo
+ icon_state = "winterhood_cargo"
/obj/item/clothing/suit/hooded/wintercoat/miner
name = "mining winter coat"
icon_state = "coatminer"
allowed = list(/obj/item/weapon/pickaxe,/obj/item/device/flashlight,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/toy,/obj/item/weapon/storage/fancy/cigarettes,/obj/item/weapon/lighter)
armor = list(melee = 10, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0)
+ hoodtype = /obj/item/clothing/head/winterhood/miner
-//
\ No newline at end of file
+/obj/item/clothing/head/winterhood/miner
+ icon_state = "winterhood_miner"
\ No newline at end of file
diff --git a/code/modules/clothing/suits/toggles.dm b/code/modules/clothing/suits/toggles.dm
index 6d7a8390ae3..ec8c2da4940 100644
--- a/code/modules/clothing/suits/toggles.dm
+++ b/code/modules/clothing/suits/toggles.dm
@@ -1,7 +1,7 @@
//Hoods for winter coats and chaplain hoodie etc
/obj/item/clothing/suit/hooded
- var/obj/item/clothing/head/winterhood/hood
+ var/obj/item/clothing/head/hood
var/hoodtype = /obj/item/clothing/head/winterhood //so the chaplain hoodie or other hoodies can override this
/obj/item/clothing/suit/hooded/New()
@@ -14,7 +14,7 @@
/obj/item/clothing/suit/hooded/proc/MakeHood()
if(!hood)
- var/obj/item/clothing/head/winterhood/W = new hoodtype(src)
+ var/obj/item/clothing/head/W = new hoodtype(src)
hood = W
/obj/item/clothing/suit/hooded/ui_action_click()
diff --git a/code/modules/mob/living/bloodcrawl.dm b/code/modules/mob/living/bloodcrawl.dm
index da74f1fc716..bcac80dcc89 100644
--- a/code/modules/mob/living/bloodcrawl.dm
+++ b/code/modules/mob/living/bloodcrawl.dm
@@ -113,7 +113,7 @@ obj/effect/dummy/slaughter/relaymove(mob/user, direction)
if(iscarbon(src))
var/mob/living/carbon/C = src
for(var/obj/item/weapon/bloodcrawl/BC in C)
- C.flags = null
+ BC.flags = null
C.unEquip(BC)
qdel(BC)
var/oldcolor = src.color
diff --git a/code/modules/mob/living/carbon/alien/alien_defense.dm b/code/modules/mob/living/carbon/alien/alien_defense.dm
index 20577531b27..e236d53f5e3 100644
--- a/code/modules/mob/living/carbon/alien/alien_defense.dm
+++ b/code/modules/mob/living/carbon/alien/alien_defense.dm
@@ -7,7 +7,7 @@ As such, they can either help or harm other aliens. Help works like the human he
In all, this is a lot like the monkey code. /N
*/
/mob/living/carbon/alien/attack_alien(mob/living/carbon/alien/M)
- if (!ticker)
+ if(!ticker || !ticker.mode)
M << "You cannot attack people before the game has started."
return
diff --git a/code/modules/mob/living/carbon/death.dm b/code/modules/mob/living/carbon/death.dm
index 2cef64b3c89..056dfbc5ec9 100644
--- a/code/modules/mob/living/carbon/death.dm
+++ b/code/modules/mob/living/carbon/death.dm
@@ -1,5 +1,6 @@
/mob/living/carbon/death(gibbed)
silent = 0
+ losebreath = 0
med_hud_set_health()
med_hud_set_status()
..(gibbed)
diff --git a/code/modules/mob/living/carbon/human/death.dm b/code/modules/mob/living/carbon/human/death.dm
index a24e880ed7a..365c881dac9 100644
--- a/code/modules/mob/living/carbon/human/death.dm
+++ b/code/modules/mob/living/carbon/human/death.dm
@@ -14,8 +14,10 @@
new /obj/effect/decal/remains/human(loc)
/mob/living/carbon/human/death(gibbed)
- if(stat == DEAD) return
- if(healths) healths.icon_state = "health5"
+ if(stat == DEAD)
+ return
+ if(healths)
+ healths.icon_state = "health5"
stat = DEAD
dizziness = 0
jitteriness = 0
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index cb1cc74e887..e5adae3a750 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -335,7 +335,8 @@
if(!heart_attack)
return
else
- losebreath += 5
+ if(losebreath < 3)
+ losebreath += 2
adjustOxyLoss(5)
adjustBruteLoss(1)
diff --git a/code/modules/mob/living/carbon/human/species_types.dm b/code/modules/mob/living/carbon/human/species_types.dm
index 28173c29920..c7d662b4d37 100644
--- a/code/modules/mob/living/carbon/human/species_types.dm
+++ b/code/modules/mob/living/carbon/human/species_types.dm
@@ -35,7 +35,7 @@
/datum/species/human/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
if(chem.id == "mutationtoxin")
H << "Your flesh rapidly mutates!"
- H.set_species(/datum/species/slime)
+ H.set_species(/datum/species/jelly/slime)
H.reagents.del_reagent(chem.type)
H.faction |= "slime"
return 1
@@ -111,6 +111,8 @@ datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
/datum/species/pod/spec_life(mob/living/carbon/human/H)
+ if(H.stat == DEAD)
+ return
var/light_amount = 0 //how much light there is in the place, affects receiving nutrition and healing
if(isturf(H.loc)) //else, there's considered to be no light
var/turf/T = H.loc
@@ -183,25 +185,24 @@ datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
H.heal_overall_damage(1,1)
/*
- SLIMEPEOPLE
+ JELLYPEOPLE
*/
-/datum/species/slime
- // Humans mutated by slime mutagen, produced from green slimes. They are not targetted by slimes.
- name = "Slimeperson"
- id = "slime"
- default_color = "00FFFF"
- darksight = 3
- invis_sight = SEE_INVISIBLE_LEVEL_ONE
- specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
- hair_color = "mutcolor"
- hair_alpha = 150
- ignored_by = list(/mob/living/simple_animal/slime)
+/datum/species/jelly
+ // Entirely alien beings that seem to be made entirely out of gel. They have three eyes and a skeleton visible within them.
+ name = "Xenobiological Jelly Entity"
+ id = "jelly"
+ default_color = "00FF90"
+ say_mod = "chirps"
+ eyes = "jelleyes"
+ specflags = list(MUTCOLORS,EYECOLOR,NOBLOOD)
meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime
exotic_blood = /datum/reagent/toxin/slimejelly
var/recently_changed = 1
-/datum/species/slime/spec_life(mob/living/carbon/human/H)
+/datum/species/jelly/spec_life(mob/living/carbon/human/H)
+ if(H.stat == DEAD) //can't farm slime jelly from a dead slime/jelly person indefinitely
+ return
if(!H.reagents.get_reagent_amount("slimejelly"))
if(recently_changed)
H.reagents.add_reagent("slimejelly", 80)
@@ -222,48 +223,28 @@ datum/species/human/spec_death(gibbed, mob/living/carbon/human/H)
if(S.volume < 10)
H.losebreath++
-/datum/species/slime/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
- if(chem.id == "slimejelly")
- return 1
-/*
- JELLYPEOPLE
-*/
-
-/datum/species/jelly
- // Entirely alien beings that seem to be made entirely out of gel. They have three eyes and a skeleton visible within them.
- name = "Xenobiological Jelly Entity"
- id = "jelly"
- default_color = "00FF90"
- say_mod = "chirps"
- eyes = "jelleyes"
- specflags = list(MUTCOLORS,EYECOLOR,NOBLOOD)
- meat = /obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime
- exotic_blood = /datum/reagent/toxin/slimejelly
- var/recently_changed = 1
-
-/datum/species/jelly/spec_life(mob/living/carbon/human/H)
- if(!H.reagents.get_reagent_amount("slimejelly"))
- if(recently_changed)
- H.reagents.add_reagent("slimejelly", 80)
- recently_changed = 0
- else
- H.reagents.add_reagent("slimejelly", 5)
- H.adjustBruteLoss(5)
- H << "You feel empty!"
-
- for(var/datum/reagent/toxin/slimejelly/S in H.reagents.reagent_list)
- if(S.volume < 100)
- if(H.nutrition >= NUTRITION_LEVEL_STARVING)
- H.reagents.add_reagent("slimejelly", 0.5)
- H.nutrition -= 5
- else if(prob(5))
- H << "You feel drained!"
- if(S.volume < 10)
- H.losebreath++
-
/datum/species/jelly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
if(chem.id == "slimejelly")
return 1
+
+/*
+ SLIMEPEOPLE
+*/
+
+/datum/species/jelly/slime
+ // Humans mutated by slime mutagen, produced from green slimes. They are not targetted by slimes.
+ name = "Slimeperson"
+ id = "slime"
+ default_color = "00FFFF"
+ darksight = 3
+ invis_sight = SEE_INVISIBLE_LEVEL_ONE
+ specflags = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,NOBLOOD)
+ say_mod = "says"
+ eyes = "eyes"
+ hair_color = "mutcolor"
+ hair_alpha = 150
+ ignored_by = list(/mob/living/simple_animal/slime)
+
/*
GOLEMS
*/
diff --git a/code/modules/mob/living/living.dm b/code/modules/mob/living/living.dm
index f34f20650f5..960675fbd51 100644
--- a/code/modules/mob/living/living.dm
+++ b/code/modules/mob/living/living.dm
@@ -673,7 +673,7 @@ Sorry Giacom. Please don't be mad :(
return name
/mob/living/update_gravity(has_gravity)
- if(!ticker)
+ if(!ticker || !ticker.mode)
return
if(has_gravity)
clear_alert("weightless")
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 41300c018c0..c91bf05bcd8 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -195,7 +195,7 @@
/mob/living/attack_slime(mob/living/simple_animal/slime/M)
- if (!ticker)
+ if(!ticker || !ticker.mode)
M << "You cannot attack people before the game has started."
return
@@ -226,7 +226,7 @@
/mob/living/attack_paw(mob/living/carbon/monkey/M)
- if (!ticker)
+ if(!ticker || !ticker.mode)
M << "You cannot attack people before the game has started."
return 0
@@ -271,7 +271,7 @@
return 0
/mob/living/attack_alien(mob/living/carbon/alien/humanoid/M)
- if (!ticker)
+ if(!ticker || !ticker.mode)
M << "You cannot attack people before the game has started."
return 0
diff --git a/code/modules/mob/living/silicon/ai/ai.dm b/code/modules/mob/living/silicon/ai/ai.dm
index 4e708d7f2b2..b9019c19700 100644
--- a/code/modules/mob/living/silicon/ai/ai.dm
+++ b/code/modules/mob/living/silicon/ai/ai.dm
@@ -476,7 +476,7 @@ var/list/ai_list = list()
/mob/living/silicon/ai/attack_alien(mob/living/carbon/alien/humanoid/M)
- if (!ticker)
+ if(!ticker || !ticker.mode)
M << "You cannot attack people before the game has started."
return
diff --git a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm
index 92fb1c7ed00..61cdb5fbf52 100644
--- a/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm
+++ b/code/modules/mob/living/simple_animal/friendly/drone/drones_as_items.dm
@@ -18,7 +18,9 @@
/obj/item/drone_shell/attack_ghost(mob/user)
if(jobban_isbanned(user,"drone"))
return
-
+ if(!ticker.mode)
+ user << "Can't become a drone before the game has started."
+ return
var/be_drone = alert("Become a drone? (Warning, You can no longer be cloned!)",,"Yes","No")
if(be_drone == "No" || gc_destroyed)
return
diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm
index dfc03ac9bb1..324a121a982 100644
--- a/code/modules/mob/living/simple_animal/simple_animal.dm
+++ b/code/modules/mob/living/simple_animal/simple_animal.dm
@@ -431,6 +431,7 @@
/mob/living/simple_animal/revive()
health = maxHealth
+ icon = initial(icon)
icon_state = icon_living
density = initial(density)
update_canmove()
diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm
index cadcdb2db31..f6ed7d222e8 100644
--- a/code/modules/mob/living/simple_animal/slime/slime.dm
+++ b/code/modules/mob/living/simple_animal/slime/slime.dm
@@ -298,9 +298,6 @@
discipline_slime(user)
..()
-/mob/living/simple_animal/slime/show_inv(mob/user)
- return
-
/mob/living/simple_animal/slime/proc/apply_water()
adjustBruteLoss(rand(15,20))
if(!client)
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index ca0948b56c5..3829ee81907 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -325,17 +325,7 @@ var/list/slot_equipment_priority = list( \
/mob/proc/show_inv(mob/user)
- user.set_machine(src)
- var/dat = {"
-