Added OwO chem,

Fixed asset growth
Added new sprites
This commit is contained in:
Fermi
2019-04-30 01:02:01 +01:00
parent 55cb20ddc9
commit 4bd2da202b
6 changed files with 249 additions and 43 deletions

View File

@@ -196,3 +196,27 @@
/obj/item/organ/tongue/robot/get_spans()
return ..() | SPAN_ROBOT
//FermiChem
/obj/item/organ/tongue/OwO
name = "fluffy tongue"
desc = "OwO what's this?"
icon_state = "tonguenormal"
taste_sensitivity = 10 // extra sensitive and inquisitive uwu
/obj/item/organ/tongue/OwO/TongueSpeech(var/message)
if(copytext(message, 1, 2) != "*")
message = replacetext(message, "ne", "nye")
message = replacetext(message, "nu", "nyu")
message = replacetext(message, "na", "nya")
message = replacetext(message, "no", "nyo")
message = replacetext(message, "ove", "uv")
message = replacetext(message, "ove", "uv")
message = replacetext(message, "th", "ff")
message = replacetext(message, "l", "w")
message = replacetext(message, "r", "w")
if(prob(20))
message = replacetext(message, ".", "OwO.")
else if(prob(30))
message = replacetext(message, ".", "uwu.")
message = lowertext(message)

View File

@@ -81,7 +81,7 @@
if (cached_size == null)
prev_size = size
return
message_admins("Breast size at start: [size], [cached_size], [owner]")
//message_admins("Breast size at start: [size], [cached_size], [owner]")
if(cached_size < 0)//I don't actually know what round() does to negative numbers, so to be safe!!
to_chat(owner, "<span class='warning'>You feel your breasts shrinking away from your body as your chest flattens out.</b></span>")
src.Remove(owner)
@@ -116,7 +116,7 @@
size = "flat"
if(isnum(prev_size))
prev_size = breast_sizes[prev_size]
message_admins("2. [breast_values[size]] vs [breast_values[prev_size]] || [size] vs [prev_size]")
//message_admins("2. [breast_values[size]] vs [breast_values[prev_size]] || [size] vs [prev_size]")
if (breast_values[size] > breast_values[prev_size])
to_chat(owner, "<span class='warning'>Your breasts [pick("swell up to", "flourish into", "expand into", "burst forth into", "grow eagerly into", "amplify into")] a [uppertext(size)]-cup.</b></span>")
else if (breast_values[size] < breast_values[prev_size])
@@ -129,3 +129,9 @@
//icon_state = sanitize_text("breasts_[shape]_[size]")
//owner.update_body()
//update_icon()
message_admins("attempting to update sprite")
var/mob/living/carbon/human/H = owner
H.update_genitals()
//owner.update_genitals()
//if(src.is_exposed())
// update_icon()

View File

@@ -348,3 +348,71 @@
for(var/L in relevant_layers)
H.apply_overlay(L)
/*
/datum/species/proc/handle_breasts(mob/living/carbon/human/H)
//check for breasts first!
var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts")
if(!B)
return
///obj/item/organ/genital/breasts/update_icon(/obj/item/organ/genital) Where did this come from?
//Variables:
var/size = B.size
var/list/relevant_layers = list(GENITALS_BEHIND_LAYER, GENITALS_ADJ_LAYER, GENITALS_FRONT_LAYER)
var/datum/sprite_accessory/S = GLOB.breasts_shapes_list[B.shape]
var/list/standing = list()
if(!S || S.icon_state == "none")
return
for(var/layer in relevant_layers)
var/layertext = genitals_layertext(layer)
S = GLOB.breasts_shapes_list[B.shape]
var/mutable_appearance/genital_overlay = mutable_appearance(S.icon, layer = -layer)
//If breasts are hueg (larger than 5 only have one sprite atm)
if (size > 5)
genital_overlay.icon_state = "[B.slot]_pair_[size]_0_[layertext]"//I haven't done around sizes above 5, I dunno how..!
else
genital_overlay.icon_state = "[B.slot]_[S.icon_state]_[size]_[B.aroused_state]_[layertext]"
//center icon
if(S.center)
genital_overlay = center_image(genital_overlay, S.dimension_x, S.dimension_y)
//Check skin colour
if(use_skintones && H.dna.features["genitals_use_skintone"])
genital_overlay.color = "#[skintone2hex(H.skin_tone)]"
else
switch(S.color_src)
if("cock_color")
genital_overlay.color = "#[H.dna.features["cock_color"]]"
if("breasts_color")
genital_overlay.color = "#[H.dna.features["breasts_color"]]"
if("vag_color")
genital_overlay.color = "#[H.dna.features["vag_color"]]"
if(MUTCOLORS)
if(fixed_mut_color)
genital_overlay.color = "#[fixed_mut_color]"
else
genital_overlay.color = "#[H.dna.features["mcolor"]]"
if(MUTCOLORS2)
if(fixed_mut_color2)
genital_overlay.color = "#[fixed_mut_color2]"
else
genital_overlay.color = "#[H.dna.features["mcolor2"]]"
if(MUTCOLORS3)
if(fixed_mut_color3)
genital_overlay.color = "#[fixed_mut_color3]"
else
genital_overlay.color = "#[H.dna.features["mcolor3"]]"
standing += genital_overlay
//Standing..?
if(LAZYLEN(standing))
H.overlays_standing[layer] = standing.Copy()
standing = list()
for(var/L in relevant_layers)
H.apply_overlay(L)
*/

View File

@@ -44,6 +44,13 @@
o.remove_status_effect(/datum/status_effect/chem/PElarger)
statuscheck = FALSE
if(9 to INFINITY) //If massive
length = cached_length
size = 3 //no new sprites for anything larger yet
if(statuscheck == FALSE)
message_admins("Attempting to apply.")
o.remove_status_effect(/datum/status_effect/chem/PElarger)
statuscheck = TRUE
if(15 to INFINITY)
length = cached_length
size = 3 //no new sprites for anything larger yet
if(statuscheck == FALSE)
@@ -53,14 +60,17 @@
message_admins("Pinas size: [size], [cached_length], [o]")
message_admins("2. size vs prev_size")
if (round(length) > round(prev_size))
to_chat(o, "<span class='warning'>Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(size)] inch penis.</b></span>")
to_chat(o, "<span class='warning'>Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("swells up to", "flourishes into", "expands into", "bursts forth into", "grows eagerly into", "amplifys into")] a [uppertext(length)] inch penis.</b></span>")
else if (round(length) < round(prev_size))
to_chat(o, "<span class='warning'>Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(size)] inch penis.</b></span>")
to_chat(o, "<span class='warning'>Your [pick("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ", "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret", "baloney pony", "schlanger")] [pick("shrinks down to", "decreases into", "diminishes into", "deflates into", "shrivels regretfully into", "contracts into")] a [uppertext(length)] inch penis.</b></span>")
prev_size = length
icon_state = sanitize_text("penis_[shape]_[size]")
//update_body()
//P.update_icon() //Either of these don't work, why???
girth = (length * girth_ratio)
var/mob/living/carbon/human/H = owner
H.update_genitals()
//owner.update_genitals()
/obj/item/organ/genital/penis/update_appearance()
//var/mob/living/carbon/o = owner

View File

@@ -179,6 +179,42 @@
//eigenstate END
/*SDGF
////////////////////////////////////////////////////
// synthetic-derived growth factor //
//////////////////////////////////////////////////
WHAT IT DOES
Several outcomes are possible (in priority order):
Before the chem is even created, there is a risk of the reaction "exploding", which produces an angry teratoma that attacks the player.
0. Before the chem is activated, the purity is checked, if the purity of the reagent is less than 0.5, then sythetic-derived zombie factor is metabolised instead
0.1 If SDZF is injected, the chem appears to act the same as normal, with nutrition gain, until the end, where it becomes toxic instead, giving a short window of warning to the player
0.1.2 If the player can take pent in time, the player will spawn a hostile teratoma on them (less damaging), if they don't, then a zombie is spawned instead, with a small defence increase propotional to the volume
0.2 If the purity is above 0.5, then the remaining impure volume created SDGFtox instead, which reduces blood volume and causes clone damage
1.Normal function creates a (another)player controlled clone of the player, which is spawned nude, with damage to the clone
1.1 The remaining volume is transferred to the clone, which heals it over time, thus the player has to make a substantial ammount of the chem in order to produce a healthy clone
1.2 If the player is infected with a zombie tumor, the tumor is transferred to the ghost controlled clone ONLY.
2. If no player can be found, a brainless clone is created over a long period of time, this body has no controller.
2.1 If the player dies with a clone, then they play as the clone instead. However no memories are retained after splitting.
3. If there is already a clone, then SDGF heals clone, fire and brute damage slowly. This shouldn't normalise this chem as the de facto clone healing chem, as it will always try to make a ghost clone, and then a brainless clone first.
4. If there is insuffient volume to complete the cloning process, there are two outcomes
4.1 At lower volumes, the players nutrition and blood is refunded, with light healing
4.2 At higher volumes a stronger heal is applied to the user
IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
1. The most important factor is the required volume, this is easily edited with the metabolism rate, this chem is HARD TO MAKE, You need to make a lot of it and it's a substantial effort on the players part. There is also a substantial risk; you could spawn a hotile teratoma during the reation, you could damage yourself with clone damage, you could accidentally spawn a zombie... Basically, you've a good chance of killing yourself.
1.1 Additionally, if you're trying to make SDZF purposely, you've no idea if you have or not, and that reaction is even harder to do. Plus, the player has a huge time window to get to medical to deal with it. If you take pent while it's in you, it'll be removed before it can spawn, and only spawns a teratoma if it's late stage.
2. The rate in which the clone is made, This thing takes time to produce fruits, it slows you down and makes you useless in combat/working. Basically you can't do anything during it. It will only get you killed if you use it in combat, If you do use it and you spawn a player clone, they're gimped for a long time, as they have to heal off the clone damage.
3. The healing - it's pretty low and a cyropod is more Useful
4. If you're an antag, you've a 50% chance of making a clone that will help you with your efforts, and you've no idea if they will or not. While clones can't directly harm you and care for you, they can hinder your efforts.
5. If people are being arses when they're a clone, slap them for it, they are told to NOT bugger around with someone else character, if it gets bad I'll add a blacklist, or do a check to see if you've played X amount of hours.
5.1 Another solution I'm okay with is to rename the clone to [M]'s clone, so it's obvious, this obviously ruins anyone trying to clone themselves to get an alibi however. I'd prefer this to not be the case.
5.2 Additionally, this chem is a soft buff to changelings, which apparently need a buff!
5.3 Other similar things exist though; impostors, split personalites, abductors, ect.
6. Giving this to someone without concent is against space law and gets you sent to gulag.
*/
//Clone serum #chemClone
/datum/reagent/fermi/SDGF //vars, mostly only care about keeping track if there's a player in the clone or not.
name = "synthetic-derived growth factor"
@@ -195,16 +231,19 @@
var/list/group = null
var/pollStarted = FALSE
var/location_created
var/startHunger
//var/fClone_current_controller = OWNER
//var/mob/living/split_personality/clone//there's two so they can swap without overwriting
//var/mob/living/split_personality/owner
//var/mob/living/carbon/SM
//Main SDGF chemical
/datum/reagent/fermi/SDGF/on_mob_life(mob/living/carbon/M) //Clones user, then puts a ghost in them! If that fails, makes a braindead clone.
//Setup clone
switch(current_cycle)
if(1)
startHunger = M.nutrition
if(pollStarted == FALSE)
pollStarted = TRUE
candies = pollGhostCandidates("Do you want to play as a clone and do you agree to respect their character and act in a similar manner to them? I swear to god if you diddle them I will be very disapointed in you.")
@@ -233,10 +272,10 @@
//var/typepath = owner.type
//clone = new typepath(owner.loc)
var/typepath = M.type
var/mob/living/carbon/fermi_Gclone = new typepath(M.loc)
var/mob/living/carbon/human/fermi_Gclone = new typepath(M.loc)
//var/mob/living/carbon/SM = owner
//var/mob/living/carbon/M = M
var/mob/living/carbon/SM = fermi_Gclone
var/mob/living/carbon/human/SM = fermi_Gclone
if(istype(SM) && istype(M))
SM.real_name = M.real_name
M.dna.transfer_identity(SM)
@@ -245,6 +284,7 @@
SM.key = C.key
SM.mind.enslave_mind_to_creator(M)
//If they're a zombie, they can try to negate it with this.
if(M.getorganslot(ORGAN_SLOT_ZOMBIE))//sure, it "treats" it, but "you've" still got it. Doesn't always work as well; needs a ghost.
var/obj/item/organ/zombie_infection/ZI = M.getorganslot(ORGAN_SLOT_ZOMBIE)
ZI.Remove(M)
@@ -257,18 +297,29 @@
M.visible_message("[M] suddenly shudders, and splits into two identical twins!")
SM.copy_known_languages_from(M, FALSE)
playerClone = TRUE
M.next_move_modifier = 1
M.nutrition = 150
reaction_mob(SM, )
M.nutrition -= 500
//reaction_mob(SM, )I forget what this is for
//Damage the clone
SM.blood_volume = BLOOD_VOLUME_NORMAL/2
SM.adjustCloneLoss(80, 0)
SM.setBrainLoss(20)
SM.nutrition = startHunger/2
var/datum/reagents/SMR = SM
///datum/reagents
//var/mob/living/carbon/human has a holder, carbon does not
// You need to add to a holder.
// reagentS not reagent (?)
//SM.create_reagents()
SMR = locate(/datum/reagents) in SM
SMR.add_reagent("SDGFheal", volume)
holder.remove_reagent(src.id, 999)
//BALANCE: should I make them a pacifist, or give them some cellular damage or weaknesses?
//after_success(user, SM)
//qdel(src)
else //No candidates leads to two outcomes; if there's already a braincless clone, it heals the user, as well as being a rare souce of clone healing (thematic!).
else if(src.playerClone == FALSE) //No candidates leads to two outcomes; if there's already a braincless clone, it heals the user, as well as being a rare souce of clone healing (thematic!).
message_admins("Failed to find clone Candidate")
src.unitCheck = TRUE
if(M.has_status_effect(/datum/status_effect/chem/SGDF)) // Heal the user if they went to all this trouble to make it and can't get a clone, the poor fellow.
@@ -331,13 +382,15 @@
M.nutrition += 250
else if (src.unitCheck == TRUE && !M.has_status_effect(/datum/status_effect/chem/SGDF))// If they're ingested a little bit (10u minimum), then give them a little healing.
src.unitCheck = FALSE
to_chat(M, "<span class='notice'>the cells fail to hold enough mass to generate a clone, instead diffusing into your system instead. you can fee</span>")
to_chat(M, "<span class='notice'>the cells fail to hold enough mass to generate a clone, instead diffusing into your system.</span>")
M.adjustBruteLoss(-10, 0)
M.adjustFireLoss(-10, 0)
M.blood_volume += 100
M.next_move_modifier = 1
if (M.nutrition < 1500)
M.nutrition += 500
//If the reaction explodes
/*
/datum/reagent/fermi/SDGF/FermiExplode(turf/open/T)//Spawns an angery teratoma!! Spooky..! be careful!!
//var/mob/living/simple_animal/slime/S = new(get_turf(location_created),"grey")
var/mob/living/simple_animal/slime/S = new(T,"grey")//should work, in theory
@@ -345,11 +398,36 @@
S.name = "Living teratoma"
S.real_name = "Living teratoma"//horrifying!!
S.rabid = 1//Make them an angery boi
to_chat(M, "<span class='notice'>The cells clump up into a horrifying tumour.</span>")
to_chat("<span class='notice'>The cells clump up into a horrifying tumour.</span>")
*/
//Unobtainable, used in clone spawn.
/datum/reagent/fermi/SDGFheal
name = "synthetic-derived growth factor"
id = "SDGFheal"
metabolization_rate = 1
/datum/reagent/fermi/SDGFheal/on_mob_life(mob/living/carbon/M)//Used to heal the clone after splitting, the clone spawns damaged. (i.e. insentivies players to make more than required, so their clone doesn't have to be treated)
if(M.blood_volume < BLOOD_VOLUME_NORMAL)
M.blood_volume += 10
M.adjustCloneLoss(-2.5, 0)
M.setBrainLoss(-1)
M.nutrition += 10
//Unobtainable, used if SDGF is impure but not too impure
/datum/reagent/fermi/SDGFtox
name = "synthetic-derived growth factor"
id = "SDGFtox"
description = "A chem that makes Fermis angry at you if you're reading this, how did you get this???"
metabolization_rate = 1
/datum/reagent/fermi/SDGFtox/on_mob_life(mob/living/carbon/M)//Used to heal the clone after splitting - the clone spawns damaged. (i.e. insentivies players to make more than required, so their clone doesn't have to be treated)
M.blood_volume -= 10
M.adjustCloneLoss(2, 0)
//Fail state of SDGF
/datum/reagent/fermi/SDZF
name = "synthetic-derived zombie factor"
name = "synthetic-derived growth factor"
id = "SDZF"
description = "A horribly peverse mass of Embryonic stem cells made real by the hands of a failed chemist. This message should never appear, how did you manage to get a hold of this?"
color = "#60A584" // rgb: 96, 0, 255
@@ -363,7 +441,6 @@
to_chat(M, "<span class='notice'>You feel the synethic cells rest uncomfortably within your body as they start to pulse and grow rapidly.</span>")
startHunger = M.nutrition
if(21 to 29)
M.nutrition = M.nutrition + (M.nutrition/10)
if(30)
to_chat(M, "<span class='notice'>You feel the synethic cells grow and expand within yourself, bloating your body outwards.</span>")
@@ -393,10 +470,12 @@
ZI.damage_coeff = list(BRUTE = ((1 / volume)**0.25) , BURN = ((1 / volume)**0.1), TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
ZI.real_name = M.real_name//Give your offspring a big old kiss.
ZI.name = M.real_name
ZI.desc = "[M]'s clone, gone horribly wrong."
ZI.zombiejob = null
//ZI.updateappearance(mutcolor_update=1)
holder.remove_reagent(src.id, 20)
else//easier to deal with
to_chat(M, "<span class='notice'>The pentetic acid seems to have stopped the decay for now, clumping up the cells into a horrifying tumour.</span>")
to_chat(M, "<span class='notice'>The pentetic acid seems to have stopped the decay for now, clumping up the cells into a horrifying tumour!</span>")
M.nutrition = startHunger - 500
var/mob/living/simple_animal/slime/S = new(get_turf(M.loc),"grey") //TODO: replace slime as own simplemob/add tumour slime cores for science/chemistry interplay
S.damage_coeff = list(BRUTE = ((1 / volume)**0.1) , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
@@ -430,11 +509,7 @@
var/mob/living/carbon/human/H
/datum/reagent/fermi/BElarger/on_mob_life(mob/living/carbon/M) //Increases breast size
/*
switch(current_cycle)
if(0)
*/
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/breasts/B = M.getorganslot("breasts")
if(!B) //If they don't have breasts, give them breasts.
message_admins("No breasts found!")
@@ -457,10 +532,11 @@
message_admins("Breast size: [B.size], [B.cached_size], [holder]")
B.cached_size = B.cached_size + 0.1
if (B.cached_size >= 8.5 && B.cached_size < 9)
var/target = M.get_bodypart(BODY_ZONE_CHEST)
to_chat(M, "<span class='warning'>Your breasts begin to strain against your clothes tightly!</b></span>")
M.adjustOxyLoss(10, 0)
M.apply_damage(2, BRUTE, target)
if(H.w_uniform || H.wear_suit)
var/target = M.get_bodypart(BODY_ZONE_CHEST)
to_chat(M, "<span class='warning'>Your breasts begin to strain against your clothes tightly!</b></span>")
M.adjustOxyLoss(10, 0)
M.apply_damage(2, BRUTE, target)
B.update()
..()
@@ -511,6 +587,7 @@
var/mob/living/carbon/human/H
/datum/reagent/fermi/PElarger/on_mob_life(mob/living/carbon/M) //Increases penis size
var/mob/living/carbon/human/H = M
var/obj/item/organ/genital/penis/P = M.getorganslot("penis")
if(!P)
message_admins("No penis found!")//They do have a preponderance for escapism, or so I've heard.
@@ -526,9 +603,10 @@
P.cached_length = P.cached_length + 0.1
if (P.cached_length >= 10.5 && P.cached_length < 11) //too low?
var/target = M.get_bodypart(BODY_ZONE_CHEST)
to_chat(M, "<span class='warning'>Your cock begin to strain against your clothes tightly!</b></span>")
M.apply_damage(5, BRUTE, target)
if(H.w_uniform || H.wear_suit)
var/target = M.get_bodypart(BODY_ZONE_CHEST)
to_chat(M, "<span class='warning'>Your cock begin to strain against your clothes tightly!</b></span>")
M.apply_damage(5, BRUTE, target)
P.update()
..()
@@ -558,7 +636,6 @@
T = nT
..()
/datum/reagent/fermi/astral // Gives you the ability to astral project for a moment!
name = "Astrogen"
id = "astral"
@@ -668,10 +745,42 @@
taste_description = "dewicious degenyewacy"
/datum/reagent/fermi/furranium/on_mob_life(mob/living/carbon/M)
M.apply_status_effect(/datum/status_effect/chem/OwO)
/datum/reagent/fermi/astral/on_mob_delete(mob/living/carbon/M)
M.remove_status_effect(/datum/status_effect/chem/OwO)
switch(current_cycle)
if(1 to 9)
if(prob(20))
to_chat(M, "<span class='notice'>Your tongue feels... fluffy</span>")
if(10 to 20)
if(prob(20))
to_chat(M, "You find yourself unable to supress the desire to meow!")
M.emote("nya")
if(prob(20))
to_chat(M, "You find yourself unable to supress the desire to howl!")
M.emote("awoo")
if(prob(20))
var/list/seen = viewers(5, get_turf(M))//Sound and sight checkers
for(var/victim in seen)
to_chat(M, "You notice [victim]'s bulge, OwO!")
if(21)
message_admins("holder define: [holder]")
var/obj/item/organ/tongue/T = M.getorganslot(BODY_ZONE_PRECISE_MOUTH)
var/obj/item/organ/tongue/nT = new /obj/item/organ/tongue/OwO
T.Remove(M)
nT.Insert(M)
qdel(T)
if(22 to INFINITY)
if(prob(20))
to_chat(M, "You find yourself unable to supress the desire to meow!")
M.emote("nya")
if(prob(20))
to_chat(M, "You find yourself unable to supress the desire to howl!")
M.emote("awoo")
if(prob(20))
var/list/seen = viewers(5, get_turf(M))//Sound and sight checkers
for(var/victim in seen)
to_chat(M, "You notice [victim]'s bulge, OwO!")
..()
/*
/mob/living/simple_animal/hostile/retaliate/ghost
incorporeal_move = 1
@@ -710,14 +819,3 @@ reduce viewrange?
|| ||
||_______________________________________||
*/
/datum/reagent/fermi/SDGFTox
name = "Impure synthetic cells"
id = "SDGFtox"
description = "A chem that makes Fermis angry at you if you're reading this, how did you get this??."
color = "#A080H4" // rgb: , 0, 255
taste_description = "Forbidden chemistry" //Check to make sure this doesn't proc taste when added to mobs
metabolization_rate = 1 //1u = 2clone damage (too much?)
/datum/reagent/fermi/SDGFTox/on_mob_life(mob/living/M)
M.adjustCloneLoss(2, 0)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB