- Fixes shadowling receiving burn messages even when dead. I've also fixed the same bug for other species and made certain spec_life() procs not run when the mob is dead. I also made slime species a subtype of jelly species since they had a lot of code in common thus reducing duplicate code.

- Fixes odd behavior with emagging airlock and windoor animation.
- Fixes being able to bloodcrawl in oil decal.
- Fixes being deaf after bloodcrawling.
- Fixes wintercoat hood appearing below the mask.
- Fixes being able to attack another mob before the game has started (and other things which used a gamestart check that no longer works).
- Ghosts can no longer become drones before the game has started.
- Removed "bhunger" and "ajourn" mob vars, they are unused.
- Fixes admin-revived morph being invisible.
- Fixes heart attack stacking losebreath very high. Also now losebreath is reset to 0 when the mob dies.
- All mobs no longer have a default strip menu showing two hands.
This commit is contained in:
phil235
2015-10-23 20:00:52 +02:00
parent c7670dc627
commit da84fcd8d2
30 changed files with 124 additions and 109 deletions
+1 -1
View File
@@ -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"
+1 -1
View File
@@ -108,7 +108,7 @@
/obj/item/organ/internal/gland/pop/activate()
owner << "<span class='notice'>You feel unlike yourself.</span>"
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
+3 -2
View File
@@ -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 << "<span class='userdanger'>The light burns you!</span>" //Message spam to say "GET THE FUCK OUT"
H << 'sound/weapons/sear.ogg'
if(H.stat != DEAD)
H << "<span class='userdanger'>The light burns you!</span>" //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)
+4 -2
View File
@@ -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
+1 -1
View File
@@ -194,7 +194,7 @@
return 1
if(operating)
return
if(!ticker)
if(!ticker || !ticker.mode)
return 0
operating = 1
+7 -3
View File
@@ -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 += "<BR><span class='warning'>Its access panel is smoking slightly.</span>"
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))
@@ -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
+2 -2
View File
@@ -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)
+6 -6
View File
@@ -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))
+2 -2
View File
@@ -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
+36 -2
View File
@@ -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
//
/obj/item/clothing/head/winterhood/miner
icon_state = "winterhood_miner"
+2 -2
View File
@@ -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()
+1 -1
View File
@@ -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
@@ -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
+1
View File
@@ -1,5 +1,6 @@
/mob/living/carbon/death(gibbed)
silent = 0
losebreath = 0
med_hud_set_health()
med_hud_set_status()
..(gibbed)
@@ -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
+2 -1
View File
@@ -335,7 +335,8 @@
if(!heart_attack)
return
else
losebreath += 5
if(losebreath < 3)
losebreath += 2
adjustOxyLoss(5)
adjustBruteLoss(1)
@@ -35,7 +35,7 @@
/datum/species/human/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H)
if(chem.id == "mutationtoxin")
H << "<span class='danger'>Your flesh rapidly mutates!</span>"
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 << "<span class='danger'>You feel empty!</span>"
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 << "<span class='danger'>You feel drained!</span>"
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
*/
+1 -1
View File
@@ -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")
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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
@@ -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
@@ -431,6 +431,7 @@
/mob/living/simple_animal/revive()
health = maxHealth
icon = initial(icon)
icon_state = icon_living
density = initial(density)
update_canmove()
@@ -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)
+1 -11
View File
@@ -325,17 +325,7 @@ var/list/slot_equipment_priority = list( \
/mob/proc/show_inv(mob/user)
user.set_machine(src)
var/dat = {"
<HR>
<B><FONT size=3>[name]</FONT></B>
<HR>
<BR><B>Left Hand:</B> <A href='?src=\ref[src];item=[slot_l_hand]'> [(l_hand&&!(l_hand.flags&ABSTRACT)) ? l_hand : "Nothing"]</A>
<BR><B>Right Hand:</B> <A href='?src=\ref[src];item=[slot_r_hand]'> [(r_hand&&!(r_hand.flags&ABSTRACT)) ? r_hand : "Nothing"]</A>
<BR><A href='?src=\ref[user];mach_close=mob\ref[src]'>Close</A>
"}
user << browse(dat, "window=mob\ref[src];size=325x500")
onclose(user, "mob\ref[src]")
return
//mob verbs are faster than object verbs. See http://www.byond.com/forum/?post=1326139&page=2#comment8198716 for why this isn't atom/verb/examine()
/mob/verb/examinate(atom/A as mob|obj|turf in view()) //It used to be oview(12), but I can't really say why
-2
View File
@@ -49,8 +49,6 @@
var/stuttering = null //Carbon
var/slurring = 0 //Carbon
var/real_name = null
var/bhunger = 0 //Carbon
var/ajourn = 0
var/druggy = 0 //Carbon
var/confused = 0 //Carbon
var/sleeping = 0 //Carbon
+1 -1
View File
@@ -12,7 +12,7 @@ Contents:
set category = null
set name = "Make Space Ninja"
if(!ticker)
if (!ticker.mode)
alert("Wait until the game starts")
return
@@ -364,7 +364,7 @@
if(prob(90) && mutation && H.dna.species != /datum/species/golem && H.dna.species != /datum/species/golem/adamantine)
H << "<span class='danger'>The pain subsides. You feel... different.</span>"
H.set_species(mutation)
if(mutation == /datum/species/slime)
if(mutation.id == "slime")
H.faction |= "slime"
else
H.faction -= "slime"
Binary file not shown.

Before

Width:  |  Height:  |  Size: 122 KiB

After

Width:  |  Height:  |  Size: 129 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

After

Width:  |  Height:  |  Size: 60 KiB