|
|
@@ -12,10 +12,10 @@
|
|
|
|
id = "fermi"
|
|
|
|
id = "fermi"
|
|
|
|
taste_description = "If affection had a taste, this would be it."
|
|
|
|
taste_description = "If affection had a taste, this would be it."
|
|
|
|
|
|
|
|
|
|
|
|
/datum/reagent/fermi/on_mob_life(mob/living/carbon/M)
|
|
|
|
///datum/reagent/fermi/on_mob_life(mob/living/carbon/M)
|
|
|
|
//current_cycle++
|
|
|
|
//current_cycle++
|
|
|
|
holder.remove_reagent(src.id, metabolization_rate / M.metabolism_efficiency, FALSE) //fermi reagents stay longer if you have a better metabolism
|
|
|
|
//holder.remove_reagent(src.id, metabolization_rate / M.metabolism_efficiency, FALSE) //fermi reagents stay longer if you have a better metabolism
|
|
|
|
return ..()
|
|
|
|
//return ..()
|
|
|
|
|
|
|
|
|
|
|
|
/datum/reagent/fermi/overdose_start(mob/living/carbon/M)
|
|
|
|
/datum/reagent/fermi/overdose_start(mob/living/carbon/M)
|
|
|
|
current_cycle++
|
|
|
|
current_cycle++
|
|
|
@@ -37,7 +37,7 @@
|
|
|
|
addiction_stage2_end = 30
|
|
|
|
addiction_stage2_end = 30
|
|
|
|
addiction_stage3_end = 40
|
|
|
|
addiction_stage3_end = 40
|
|
|
|
addiction_stage4_end = 43 //Incase it's too long
|
|
|
|
addiction_stage4_end = 43 //Incase it's too long
|
|
|
|
var/turf/open/location_created = null
|
|
|
|
var/location_created
|
|
|
|
var/turf/open/location_return = null
|
|
|
|
var/turf/open/location_return = null
|
|
|
|
var/addictCyc1 = 1
|
|
|
|
var/addictCyc1 = 1
|
|
|
|
var/addictCyc2 = 1
|
|
|
|
var/addictCyc2 = 1
|
|
|
@@ -48,26 +48,17 @@
|
|
|
|
mob/living/carbon/purgeBody
|
|
|
|
mob/living/carbon/purgeBody
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
/datum/reagent/fermi/eigenstate/oew()
|
|
|
|
|
|
|
|
. = ..() //Needed!
|
|
|
|
|
|
|
|
location_created = get_turf(src) //Sets up coordinate of where it was created
|
|
|
|
|
|
|
|
message_admins("Attempting to get creation location from on_new() [location_created]")
|
|
|
|
|
|
|
|
//..()s
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
/datum/reagent/fermi/eigenstate/on_new()
|
|
|
|
/datum/reagent/fermi/eigenstate/on_new()
|
|
|
|
//obj/item/reagent/fermi/eigenstate/Initialize()
|
|
|
|
|
|
|
|
//datum/reagent/fermi/eigenstate/Initialize()
|
|
|
|
|
|
|
|
. = ..() //Needed!
|
|
|
|
|
|
|
|
//if(holder && holder.my_atom)
|
|
|
|
|
|
|
|
location_created = get_turf(loc) //Sets up coordinate of where it was created
|
|
|
|
location_created = get_turf(loc) //Sets up coordinate of where it was created
|
|
|
|
message_admins("Attempting to get creation location from init() [location_created]")
|
|
|
|
message_admins("Attempting to get creation location from init() [location_created]")
|
|
|
|
//..()
|
|
|
|
//..()
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
/datum/reagent/fermi/eigenstate/on_mob_life(mob/living/M) //Teleports to chemistry!
|
|
|
|
/datum/reagent/fermi/eigenstate/on_mob_life(mob/living/M) //Teleports to chemistry!
|
|
|
|
switch(current_cycle)
|
|
|
|
switch(current_cycle)
|
|
|
|
if(0)
|
|
|
|
if(1)
|
|
|
|
location_return = get_turf(M) //sets up return point
|
|
|
|
location_return = get_turf(M) //sets up return point
|
|
|
|
to_chat(M, "<span class='userdanger'>You feel your wavefunction split!</span>")
|
|
|
|
to_chat(M, "<span class='userdanger'>You feel your wavefunction split!</span>")
|
|
|
|
do_sparks(5,FALSE,M)
|
|
|
|
do_sparks(5,FALSE,M)
|
|
|
@@ -216,13 +207,14 @@
|
|
|
|
message_admins("Attempting to poll")
|
|
|
|
message_admins("Attempting to poll")
|
|
|
|
^^^breaks everything
|
|
|
|
^^^breaks everything
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
/datum/reagent/fermi/proc/sepPoll()
|
|
|
|
/datum/reagent/fermi/proc/sepPoll()
|
|
|
|
//var/list/procCandies = list()
|
|
|
|
//var/list/procCandies = list()
|
|
|
|
//if (pollStarted == FALSE)
|
|
|
|
//if (pollStarted == FALSE)
|
|
|
|
// procCandies = 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.")
|
|
|
|
// procCandies = 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.")
|
|
|
|
sleep(300)
|
|
|
|
sleep(300)
|
|
|
|
return procCandies
|
|
|
|
return procCandies
|
|
|
|
|
|
|
|
*/
|
|
|
|
/*if(1) //I'm not sure how pollCanditdates works, so I did this. Gives a chance for people to say yes.
|
|
|
|
/*if(1) //I'm not sure how pollCanditdates works, so I did this. Gives a chance for people to say yes.
|
|
|
|
M.apply_status_effect(/datum/status_effect/chem/SDGF/candidates)
|
|
|
|
M.apply_status_effect(/datum/status_effect/chem/SDGF/candidates)
|
|
|
|
/datum/status_effect/chem/SDGF/candidates/candies = new /datum/status_effect/chem/SDGF/candidates
|
|
|
|
/datum/status_effect/chem/SDGF/candidates/candies = new /datum/status_effect/chem/SDGF/candidates
|
|
|
@@ -234,7 +226,7 @@
|
|
|
|
//Setup clone
|
|
|
|
//Setup clone
|
|
|
|
switch(current_cycle)
|
|
|
|
switch(current_cycle)
|
|
|
|
if(1)
|
|
|
|
if(1)
|
|
|
|
if(pollStarted = FALSE)
|
|
|
|
if(pollStarted == FALSE)
|
|
|
|
pollStarted = TRUE
|
|
|
|
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.")
|
|
|
|
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.")
|
|
|
|
|
|
|
|
|
|
|
@@ -258,6 +250,7 @@
|
|
|
|
message_admins("Number of candidates [LAZYLEN(candies)]")
|
|
|
|
message_admins("Number of candidates [LAZYLEN(candies)]")
|
|
|
|
if(LAZYLEN(candies) && src.playerClone == FALSE) //If there's candidates, clone the person and put them in there!
|
|
|
|
if(LAZYLEN(candies) && src.playerClone == FALSE) //If there's candidates, clone the person and put them in there!
|
|
|
|
message_admins("Candidate found!")
|
|
|
|
message_admins("Candidate found!")
|
|
|
|
|
|
|
|
to_chat(M, "<span class='warning'>The cells reach a critical micelle concentration, nucleating rapidly within your body!</span>")
|
|
|
|
//var/typepath = owner.type
|
|
|
|
//var/typepath = owner.type
|
|
|
|
//clone = new typepath(owner.loc)
|
|
|
|
//clone = new typepath(owner.loc)
|
|
|
|
var/typepath = M.type
|
|
|
|
var/typepath = M.type
|
|
|
@@ -281,14 +274,16 @@
|
|
|
|
//SM.sentience_act()
|
|
|
|
//SM.sentience_act()
|
|
|
|
to_chat(SM, "<span class='warning'>You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself, or rather, your original self.</span>")
|
|
|
|
to_chat(SM, "<span class='warning'>You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself, or rather, your original self.</span>")
|
|
|
|
to_chat(SM, "<span class='userdanger'>While you find your newfound existence strange, you share the same memories as [M.real_name]. [pick("However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original", "Your mind has not deviated from the tasks you set out to do, and now that there's two of you the tasks should be much easier.")]</span>")
|
|
|
|
to_chat(SM, "<span class='userdanger'>While you find your newfound existence strange, you share the same memories as [M.real_name]. [pick("However, You find yourself indifferent to the goals you previously had, and take more interest in your newfound independence, but still have an indescribable care for the safety of your original", "Your mind has not deviated from the tasks you set out to do, and now that there's two of you the tasks should be much easier.")]</span>")
|
|
|
|
to_chat(M, "<span class='notice'>You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself.</span>")
|
|
|
|
to_chat(M, "<span class='warning'>You feel a strange sensation building in your mind as you realise there's two of you, before you get a chance to think about it, you suddenly split from your old body, and find yourself face to face with yourself.</span>")
|
|
|
|
M.visible_message("[M] suddenly shudders, and splits into two identical twins!")
|
|
|
|
M.visible_message("[M] suddenly shudders, and splits into two identical twins!")
|
|
|
|
SM.copy_known_languages_from(M, FALSE)
|
|
|
|
SM.copy_known_languages_from(M, FALSE)
|
|
|
|
playerClone = TRUE
|
|
|
|
playerClone = TRUE
|
|
|
|
|
|
|
|
|
|
|
|
M.next_move_modifier = 1
|
|
|
|
M.next_move_modifier = 1
|
|
|
|
M.nutrition = 150
|
|
|
|
M.nutrition = 150
|
|
|
|
holder.remove_reagent("SGDF", 999, FALSE)
|
|
|
|
|
|
|
|
|
|
|
|
reaction_mob(SM, )
|
|
|
|
|
|
|
|
holder.remove_reagent("SDGF", 999)
|
|
|
|
//BALANCE: should I make them a pacifist, or give them some cellular damage or weaknesses?
|
|
|
|
//BALANCE: should I make them a pacifist, or give them some cellular damage or weaknesses?
|
|
|
|
|
|
|
|
|
|
|
|
//after_success(user, SM)
|
|
|
|
//after_success(user, SM)
|
|
|
@@ -333,7 +328,7 @@
|
|
|
|
to_chat(M, "<span class='notice'>Your body splits away from the cell clone of yourself, leaving you with a drained and hollow feeling inside.</span>")
|
|
|
|
to_chat(M, "<span class='notice'>Your body splits away from the cell clone of yourself, leaving you with a drained and hollow feeling inside.</span>")
|
|
|
|
M.apply_status_effect(/datum/status_effect/chem/SGDF)
|
|
|
|
M.apply_status_effect(/datum/status_effect/chem/SGDF)
|
|
|
|
if(87 to INFINITY)
|
|
|
|
if(87 to INFINITY)
|
|
|
|
holder.remove_reagent("SGDF", 1, FALSE)//removes SGDF on completion.
|
|
|
|
holder.remove_reagent("SGDF", 1)//removes SGDF on completion.
|
|
|
|
message_admins("Purging SGDF [volume]")
|
|
|
|
message_admins("Purging SGDF [volume]")
|
|
|
|
message_admins("Growth nucleation occuring (SDGF), step [current_cycle] of 77")
|
|
|
|
message_admins("Growth nucleation occuring (SDGF), step [current_cycle] of 77")
|
|
|
|
|
|
|
|
|
|
|
@@ -407,17 +402,18 @@
|
|
|
|
ZI.real_name = M.real_name//Give your offspring a big old kiss.
|
|
|
|
ZI.real_name = M.real_name//Give your offspring a big old kiss.
|
|
|
|
ZI.name = M.real_name
|
|
|
|
ZI.name = M.real_name
|
|
|
|
//ZI.updateappearance(mutcolor_update=1)
|
|
|
|
//ZI.updateappearance(mutcolor_update=1)
|
|
|
|
holder.remove_reagent("SGZF", 20, FALSE)
|
|
|
|
M.reagents.remove_reagent("SDZF", 20)
|
|
|
|
else
|
|
|
|
else
|
|
|
|
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>")
|
|
|
|
if(77 to INFINITY)//purges chemical fast, producing a "slime" for each one. Said slime is weak to fire.
|
|
|
|
if(87 to INFINITY)//purges chemical fast, producing a "slime" for each one. Said slime is weak to fire.
|
|
|
|
M.nutrition -= 100
|
|
|
|
M.nutrition -= 100
|
|
|
|
var/mob/living/simple_animal/slime/S = new(get_turf(M.loc),"grey")
|
|
|
|
var/mob/living/simple_animal/slime/S = new(get_turf(M.loc),"grey")
|
|
|
|
S.damage_coeff = list(BRUTE = ((1 / volume)**0.1) , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
|
|
|
|
S.damage_coeff = list(BRUTE = ((1 / volume)**0.1) , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)
|
|
|
|
S.name = "Living teratoma"
|
|
|
|
S.name = "Living teratoma"
|
|
|
|
S.real_name = "Living teratoma"
|
|
|
|
S.real_name = "Living teratoma"
|
|
|
|
|
|
|
|
S.rabid = 1
|
|
|
|
//S.updateappearance(mutcolor_update=1)
|
|
|
|
//S.updateappearance(mutcolor_update=1)
|
|
|
|
holder.remove_reagent("SGZF", 20, FALSE)
|
|
|
|
M.reagents.remove_reagent("SDZF", 20)
|
|
|
|
M.adjustToxLoss(10, 0)
|
|
|
|
M.adjustToxLoss(10, 0)
|
|
|
|
to_chat(M, "<span class='warning'>A large glob of the tumour suddenly splits itself from your body. You feel grossed out and slimey...</span>")
|
|
|
|
to_chat(M, "<span class='warning'>A large glob of the tumour suddenly splits itself from your body. You feel grossed out and slimey...</span>")
|
|
|
|
message_admins("Growth nucleation occuring (SDGF), step [current_cycle] of 20")
|
|
|
|
message_admins("Growth nucleation occuring (SDGF), step [current_cycle] of 20")
|
|
|
@@ -434,7 +430,7 @@
|
|
|
|
color = "#E60584" // rgb: 96, 0, 255
|
|
|
|
color = "#E60584" // rgb: 96, 0, 255
|
|
|
|
taste_description = "a milky ice cream like flavour."
|
|
|
|
taste_description = "a milky ice cream like flavour."
|
|
|
|
overdose_threshold = 12
|
|
|
|
overdose_threshold = 12
|
|
|
|
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
|
|
|
metabolization_rate = 2
|
|
|
|
//var/mob/living/carbon/M
|
|
|
|
//var/mob/living/carbon/M
|
|
|
|
var/mob/living/carbon/human/H
|
|
|
|
var/mob/living/carbon/human/H
|
|
|
|
//var/mob/living/carbon/human/species/S
|
|
|
|
//var/mob/living/carbon/human/species/S
|
|
|
@@ -467,51 +463,48 @@
|
|
|
|
nB.color = skintone2hex(H.skin_tone)
|
|
|
|
nB.color = skintone2hex(H.skin_tone)
|
|
|
|
nB.size = "a"
|
|
|
|
nB.size = "a"
|
|
|
|
to_chat(M, "<span class='warning'>Your chest feels warm, tingling with newfound sensitivity.</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>Your chest feels warm, tingling with newfound sensitivity.</b></span>")
|
|
|
|
holder.remove_reagent("BElarger", 2, FALSE)
|
|
|
|
M.reagents.remove_reagent(src.id, 5)
|
|
|
|
else //If they have them, increase size. If size is comically big, limit movement and rip clothes.
|
|
|
|
else //If they have them, increase size. If size is comically big, limit movement and rip clothes.
|
|
|
|
message_admins("Breast size: [B.size]")
|
|
|
|
message_admins("Breast size: [B.size], [holder]")
|
|
|
|
if(B.size == "a")
|
|
|
|
if(B.size == "a")
|
|
|
|
B.size = "b"
|
|
|
|
B.size = "b"
|
|
|
|
to_chat(M, "<span class='warning'>You feel your breasts grow to a modest size.</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>You feel your breasts grow to a modest size.</b></span>")
|
|
|
|
holder.remove_reagent("BElarger", 2, FALSE)
|
|
|
|
M.reagents.remove_reagent(src.id, 5)
|
|
|
|
sleep(20)
|
|
|
|
sleep(500)
|
|
|
|
if(B.size == "b")
|
|
|
|
else if(B.size == "b")
|
|
|
|
B.size = "c"
|
|
|
|
B.size = "c"
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts swell up to a substancial size.</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts swell up to a substancial size.</b></span>")
|
|
|
|
holder.remove_reagent("BElarger", 2, FALSE)
|
|
|
|
M.reagents.remove_reagent(src.id, 5)
|
|
|
|
sleep(20)
|
|
|
|
sleep(500)
|
|
|
|
if(B.size == "c")
|
|
|
|
else if(B.size == "c")
|
|
|
|
B.size = "d"
|
|
|
|
B.size = "d"
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts flourish into a full pair.</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts flourish into a full pair.</b></span>")
|
|
|
|
holder.remove_reagent("BElarger", 2, FALSE)
|
|
|
|
M.reagents.remove_reagent(src.id, 5)
|
|
|
|
sleep(20)
|
|
|
|
sleep(500)
|
|
|
|
if(B.size == "d")
|
|
|
|
else if(B.size == "d")
|
|
|
|
B.size = "e"
|
|
|
|
B.size = "e"
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts expand into a large voluptuous pair!</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts expand into a large voluptuous pair!</b></span>")
|
|
|
|
holder.remove_reagent("BElarger", 2, FALSE)
|
|
|
|
M.reagents.remove_reagent(src.id, 5)
|
|
|
|
sleep(20)
|
|
|
|
sleep(500)
|
|
|
|
if(B.size == "e")
|
|
|
|
else if(B.size == "e")
|
|
|
|
B.size = 7
|
|
|
|
B.size = 7
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts expand into a large voluptuous pair!</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts burst forth into [pick("some serious honkers", "a real set of badonkers", "some dobonhonkeros", "massive dohoonkabhankoloos", "big old tonhongerekoogers", "giant bonkhonagahoogs", "humongous hungolomghnonoloughongous")].</b></span>")
|
|
|
|
holder.remove_reagent("BElarger", 2, FALSE)
|
|
|
|
M.reagents.remove_reagent(src.id, 5)
|
|
|
|
sleep(20)
|
|
|
|
sleep(500)
|
|
|
|
if(B.size > 7)
|
|
|
|
if(B.size >= 7)
|
|
|
|
B.size += 0.2
|
|
|
|
B.size = B.size + 0.1
|
|
|
|
if (B.size > 9)
|
|
|
|
if (B.size > 9)
|
|
|
|
//M.adjustOxyLoss((-50, 0)
|
|
|
|
//M.adjustOxyLoss((-50, 0)
|
|
|
|
if(H.w_uniform || H.wear_suit)
|
|
|
|
M.apply_status_effect(/datum/status_effect/chem/BElarger)
|
|
|
|
M.visible_message("<span class='boldnotice'>[M]'s chest suddenly bursts forth, ripping their clothes off!'</span>")
|
|
|
|
M.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (B.size - 8.1))
|
|
|
|
to_chat(M, "<span class='warning'>Your clothes give, ripping into peices under the strain of your swelling breasts! Unless you manage to reduce the size of your breasts, there's no way you're going to be able to put anything on over these melons..!</b></span>")
|
|
|
|
|
|
|
|
playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
|
|
|
|
|
|
|
H.dna.species.no_equip = list(SLOT_WEAR_SUIT, SLOT_W_UNIFORM)
|
|
|
|
|
|
|
|
M.add_movespeed_modifier("hugebreasts", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (B.size - 8.1))
|
|
|
|
|
|
|
|
M.next_move_modifier += 0.1
|
|
|
|
M.next_move_modifier += 0.1
|
|
|
|
else if (B.size > 8.5)
|
|
|
|
else if (B.size > 8.5)
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts begin to strain against your clothes tightly!</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>Your breasts begin to strain against your clothes tightly!</b></span>")
|
|
|
|
M.adjustOxyLoss(10, 0)
|
|
|
|
M.adjustOxyLoss(10, 0)
|
|
|
|
M.adjustBruteLoss(2, 0)
|
|
|
|
M.adjustBruteLoss(2, 0)
|
|
|
|
|
|
|
|
sleep(500)
|
|
|
|
|
|
|
|
|
|
|
|
//M.update()
|
|
|
|
B.update_appearance()
|
|
|
|
..()
|
|
|
|
..()
|
|
|
|
|
|
|
|
|
|
|
|
/datum/reagent/fermi/BElarger/overdose_start(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders.
|
|
|
|
/datum/reagent/fermi/BElarger/overdose_start(mob/living/carbon/M) //Turns you into a female if male and ODing, doesn't touch nonbinary and object genders.
|
|
|
@@ -526,17 +519,18 @@
|
|
|
|
M.visible_message("<span class='boldnotice'>[M] suddenly looks more feminine!</span>", "<span class='boldwarning'>You suddenly feel more feminine!</span>")
|
|
|
|
M.visible_message("<span class='boldnotice'>[M] suddenly looks more feminine!</span>", "<span class='boldwarning'>You suddenly feel more feminine!</span>")
|
|
|
|
|
|
|
|
|
|
|
|
if(P)
|
|
|
|
if(P)
|
|
|
|
P.size -= 0.2
|
|
|
|
P.length -= 0.1
|
|
|
|
if (P.size <= 0.1)
|
|
|
|
if (P.length <= 0.1)
|
|
|
|
to_chat(M, "<span class='warning'>You feel your penis shink, disappearing from your loins, leaving a strange smoothness in your pants.</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>You feel your penis shink, disappearing from your loins, leaving a strange smoothness in your pants.</b></span>")
|
|
|
|
P.Remove(P)
|
|
|
|
P.Remove(P)
|
|
|
|
if(T)
|
|
|
|
if(T)
|
|
|
|
T.Remove(M)
|
|
|
|
T.Remove(M)
|
|
|
|
else if (P.size > 9 )
|
|
|
|
else if (P.length > 7)
|
|
|
|
M.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.size - 8.1))//Via la liberation
|
|
|
|
M.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.length - 10.1))//Via la liberation
|
|
|
|
M.next_move_modifier -= 0.1
|
|
|
|
M.next_move_modifier -= 0.1
|
|
|
|
H.dna.species.no_equip = list(SLOT_WEAR_SUIT, SLOT_W_UNIFORM)
|
|
|
|
H.dna.species.no_equip = list(SLOT_WEAR_SUIT, SLOT_W_UNIFORM)
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
M.remove_status_effect(/datum/status_effect/chem/PElarger)
|
|
|
|
if(!V)
|
|
|
|
if(!V)
|
|
|
|
var/obj/item/organ/genital/vagina/nV = new
|
|
|
|
var/obj/item/organ/genital/vagina/nV = new
|
|
|
|
nV.Insert(M)
|
|
|
|
nV.Insert(M)
|
|
|
@@ -545,7 +539,7 @@
|
|
|
|
var/obj/item/organ/genital/womb/nW = new
|
|
|
|
var/obj/item/organ/genital/womb/nW = new
|
|
|
|
nW.Insert(M)
|
|
|
|
nW.Insert(M)
|
|
|
|
W = nW
|
|
|
|
W = nW
|
|
|
|
//M.update()
|
|
|
|
P.update_appearance()
|
|
|
|
..()
|
|
|
|
..()
|
|
|
|
|
|
|
|
|
|
|
|
/datum/reagent/fermi/PElarger // Due to popular demand...!
|
|
|
|
/datum/reagent/fermi/PElarger // Due to popular demand...!
|
|
|
@@ -574,7 +568,7 @@
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var/obj/item/organ/genital/penis/P = M.getorganslot("penis)")
|
|
|
|
var/obj/item/organ/genital/penis/P = M.getorganslot("penis")
|
|
|
|
if(!P)
|
|
|
|
if(!P)
|
|
|
|
message_admins("No penis found!")
|
|
|
|
message_admins("No penis found!")
|
|
|
|
var/obj/item/organ/genital/penis/nP = new
|
|
|
|
var/obj/item/organ/genital/penis/nP = new
|
|
|
@@ -586,26 +580,23 @@
|
|
|
|
else if(M.dna.features["cock_color"])
|
|
|
|
else if(M.dna.features["cock_color"])
|
|
|
|
nP.color = "#[M.dna.features["cock_color"]]"
|
|
|
|
nP.color = "#[M.dna.features["cock_color"]]"
|
|
|
|
else*/
|
|
|
|
else*/
|
|
|
|
nP.color = skintone2hex(H.skin_tone)
|
|
|
|
//nP.color = skintone2hex(H.skin_tone)
|
|
|
|
nP.size = 0
|
|
|
|
nP.length = 0.2
|
|
|
|
to_chat(M, "<span class='warning'>Your groin feels warm, as you feel a new bulge down below.</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>Your groin feels warm, as you feel a new bulge down below.</b></span>")
|
|
|
|
P = nP
|
|
|
|
P = nP
|
|
|
|
|
|
|
|
P.update_size()
|
|
|
|
else
|
|
|
|
else
|
|
|
|
P.size += 0.2
|
|
|
|
P.length = P.length + 0.1
|
|
|
|
if (P.size > 9)
|
|
|
|
if (P.length > 9)
|
|
|
|
if(H.w_uniform || H.wear_suit)
|
|
|
|
M.apply_status_effect(/datum/status_effect/chem/BElarger)
|
|
|
|
M.visible_message("<span class='boldnotice'>[M]'s penis suddenly bursts forth, ripping their clothes off!'</span>")
|
|
|
|
M.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.length - 10.1))
|
|
|
|
to_chat(M, "<span class='warning'>Your clothes give, ripping into peices under the strain of your swelling penis! Unless you manage to reduce the size of your emancipated trouser snake, there's no way you're going to be able to put anything on over this girth..!</b></span>")
|
|
|
|
|
|
|
|
playsound(src.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
|
|
|
|
|
|
|
H.dna.species.no_equip = list()
|
|
|
|
|
|
|
|
M.add_movespeed_modifier("hugedick", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (P.size - 8.1))
|
|
|
|
|
|
|
|
M.next_move_modifier += 0.1
|
|
|
|
M.next_move_modifier += 0.1
|
|
|
|
else if (P.size > 8.5)
|
|
|
|
else if (P.length > 8.5)
|
|
|
|
to_chat(M, "<span class='warning'>Your cock begin to strain against your clothes tightly!</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>Your cock begin to strain against your clothes tightly!</b></span>")
|
|
|
|
M.adjustBruteLoss(5, 0)
|
|
|
|
M.adjustBruteLoss(5, 0)
|
|
|
|
|
|
|
|
|
|
|
|
//H.update()
|
|
|
|
P.update_appearance()
|
|
|
|
message_admins("P size: [P.size]")
|
|
|
|
message_admins("P size: [P.length]")
|
|
|
|
..()
|
|
|
|
..()
|
|
|
|
|
|
|
|
|
|
|
|
/datum/reagent/fermi/PElarger/overdose_start(mob/living/carbon/M) //Turns you into a male if female and ODing, doesn't touch nonbinary and object genders.
|
|
|
|
/datum/reagent/fermi/PElarger/overdose_start(mob/living/carbon/M) //Turns you into a male if female and ODing, doesn't touch nonbinary and object genders.
|
|
|
@@ -620,19 +611,27 @@
|
|
|
|
M.visible_message("<span class='boldnotice'>[M] suddenly looks more masculine!</span>", "<span class='boldwarning'>You suddenly feel more masculine!</span>")
|
|
|
|
M.visible_message("<span class='boldnotice'>[M] suddenly looks more masculine!</span>", "<span class='boldwarning'>You suddenly feel more masculine!</span>")
|
|
|
|
|
|
|
|
|
|
|
|
if(B)
|
|
|
|
if(B)
|
|
|
|
B.size -= 0.2
|
|
|
|
B.size -= 0.1
|
|
|
|
if (B.size < 0.1)
|
|
|
|
if (B.size < 0.1)
|
|
|
|
to_chat(M, "<span class='warning'>You feel your breasts shrinking away from your body as your chest flattens out.</b></span>")
|
|
|
|
to_chat(M, "<span class='warning'>You feel your breasts shrinking away from your body as your chest flattens out.</b></span>")
|
|
|
|
B.Remove(M)
|
|
|
|
B.Remove(M)
|
|
|
|
|
|
|
|
else if (B.size >= 9)
|
|
|
|
|
|
|
|
M.add_movespeed_modifier("megamilk", TRUE, 100, NONE, override = TRUE, multiplicative_slowdown = (B.size - 8.1))//Via la liberation
|
|
|
|
|
|
|
|
M.next_move_modifier -= 0.1
|
|
|
|
|
|
|
|
H.dna.species.no_equip = list(SLOT_WEAR_SUIT, SLOT_W_UNIFORM)
|
|
|
|
if(V)
|
|
|
|
if(V)
|
|
|
|
V.Remove(M)
|
|
|
|
V.Remove(M)
|
|
|
|
if(W)
|
|
|
|
if(W)
|
|
|
|
W.Remove(M)
|
|
|
|
W.Remove(M)
|
|
|
|
|
|
|
|
B.update_appearance()
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
M.remove_status_effect(/datum/status_effect/chem/BElarger)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(!T)
|
|
|
|
if(!T)
|
|
|
|
var/obj/item/organ/genital/testicles/nT = new
|
|
|
|
var/obj/item/organ/genital/testicles/nT = new
|
|
|
|
nT.Insert(M)
|
|
|
|
nT.Insert(M)
|
|
|
|
//H.update()
|
|
|
|
|
|
|
|
..()
|
|
|
|
..()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|