Added Astral beta chem.
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/chem/SGDF/tick()
|
||||
message_admins("SDGF ticking")
|
||||
//message_admins("SDGF ticking")
|
||||
if(owner.stat == DEAD)
|
||||
message_admins("SGDF status swapping")
|
||||
if(fermi_Clone && fermi_Clone.stat != DEAD)
|
||||
@@ -43,27 +43,26 @@
|
||||
//owner, tried, no dice
|
||||
/datum/status_effect/chem/BElarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now.
|
||||
var/mob/living/carbon/human/o = owner
|
||||
if(o.w_uniform)
|
||||
o.dropItemToGround(H.w_uniform, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
if(o.wear_suit)
|
||||
o.dropItemToGround(H.wear_suit, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
message_admins("BElarge started!")
|
||||
o.visible_message("<span class='boldnotice'>[H]'s chest suddenly bursts forth, ripping their clothes off!'</span>")
|
||||
var/items = o.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
if(W == o.w_uniform || W == o.wear_suit)
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
//message_admins("BElarge started!")
|
||||
o.visible_message("<span class='boldnotice'>[o]'s chest suddenly bursts forth, ripping their clothes off!'</span>")
|
||||
to_chat(o, "<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>")
|
||||
return ..()
|
||||
|
||||
/datum/status_effect/chem/BElarger/tick(mob/living/carbon/human/H)//If you try to wear clothes, you fail. Slows you down if you're comically huge
|
||||
var/mob/living/carbon/human/o = owner
|
||||
var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts")
|
||||
if(o.w_uniform)
|
||||
o.dropItemToGround(H.w_uniform, TRUE)
|
||||
to_chat(owner, "<span class='warning'>Your enormous breasts are way to large to fit anything over!</b></span>")
|
||||
if(o.wear_suit)
|
||||
o.dropItemToGround(H.wear_suit, TRUE)
|
||||
to_chat(owner, "<span class='warning'>Your enormous breasts are way to large to fit anything over!</b></span>")
|
||||
message_admins("BElarge tick!")
|
||||
var/items = o.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
if(W == o.w_uniform || W == o.wear_suit)
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(owner, "<span class='warning'>Your enormous breasts are way too large to fit anything over them!</b></span>")
|
||||
//message_admins("BElarge tick!")
|
||||
/*
|
||||
var/items = o.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
@@ -97,12 +96,11 @@
|
||||
/datum/status_effect/chem/PElarger/on_apply(mob/living/carbon/human/H)//Removes clothes, they're too small to contain you. You belong to space now.
|
||||
message_admins("PElarge started!")
|
||||
var/mob/living/carbon/human/o = owner
|
||||
if(o.w_uniform)
|
||||
o.dropItemToGround(H.w_uniform, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
if(o.wear_suit)
|
||||
o.dropItemToGround(H.wear_suit, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
var/items = o.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
if(W == o.w_uniform || W == o.wear_suit)
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
owner.visible_message("<span class='boldnotice'>[o]'s schlong suddenly bursts forth, ripping their clothes off!'</span>")
|
||||
to_chat(o, "<span class='warning'>Your clothes give, ripping into peices under the strain of your swelling pecker! 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>")
|
||||
return ..()
|
||||
@@ -112,12 +110,12 @@
|
||||
var/mob/living/carbon/human/o = owner
|
||||
var/obj/item/organ/genital/penis/P = o.getorganslot("penis")
|
||||
message_admins("PElarge tick!")
|
||||
if(o.w_uniform)
|
||||
o.dropItemToGround(o.w_uniform, TRUE)
|
||||
to_chat(owner, "<span class='warning'>Your enormous package is way to large to fit anything over!</b></span>")
|
||||
if(o.wear_suit)
|
||||
o.dropItemToGround(o.wear_suit, TRUE)
|
||||
to_chat(owner, "<span class='warning'>Your enormous package is way to large to fit anything over!</b></span>")
|
||||
var/items = o.get_contents()
|
||||
for(var/obj/item/W in items)
|
||||
if(W == o.w_uniform || W == o.wear_suit)
|
||||
o.dropItemToGround(W, TRUE)
|
||||
playsound(o.loc, 'sound/items/poster_ripped.ogg', 50, 1)
|
||||
to_chat(owner, "<span class='warning'>Your enormous package is way to large to fit anything over!</b></span>")
|
||||
switch(round(P.cached_length))
|
||||
if(11)
|
||||
if (!(P.prev_size == P.size))
|
||||
|
||||
@@ -76,11 +76,12 @@
|
||||
//Should I turn someone with meter wide... assets into a blob?
|
||||
//this is far too lewd wah
|
||||
/obj/item/organ/genital/breasts/update_size()//wah
|
||||
var/obj/item/organ/genital/breasts/B = owner.getorganslot("breasts")
|
||||
//var/mob/living/carbon/human/o = owner
|
||||
//var/obj/item/organ/genital/breasts/B = o.getorganslot("breasts")
|
||||
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>")
|
||||
B.Remove(owner)
|
||||
src.Remove(owner)
|
||||
switch(round(cached_size))
|
||||
if(0) //If flatchested
|
||||
size = "flat"
|
||||
@@ -103,21 +104,25 @@
|
||||
|
||||
if(16 to INFINITY) //if Rediculous
|
||||
size = cached_size
|
||||
message_admins("Breast size: [size], [cached_size], [owner]")
|
||||
//message_admins("1. [breast_values[size]] vs [breast_values[prev_size]] || [size] vs [prev_size]")
|
||||
//message_admins("1. [prev_size] vs [breast_values[size]]")
|
||||
if(round(cached_size) < 16)//Because byond doesn't count from 0, I have to do this.
|
||||
if (isnum(prev_size))
|
||||
prev_size = breast_values[prev_size]//make numbers letters
|
||||
if(isnum(size))//Bloody byond with it's counting from 1
|
||||
size = breast_values[size] //make numbers letters
|
||||
message_admins("2. [breast_values[size]] vs [breast_values[prev_size]]")
|
||||
if (prev_size == 0)
|
||||
prev_size = "flat"
|
||||
if(size == 0)//Bloody byond with it's counting from 1
|
||||
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]")
|
||||
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])
|
||||
to_chat(owner, "<span class='warning'>Your breasts [pick("shrink down to", "decrease into", "diminish into", "deflate into", "shrivel regretfully into", "contracts into")] a [uppertext(size)]-cup.</b></span>")
|
||||
prev_size = size
|
||||
icon_state = sanitize_text("breasts_[shape]_[size]")
|
||||
|
||||
else if (cached_size == 16.2)
|
||||
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 hefty [uppertext(size)]cm diameter bosom, taking both of your hands to hold!.</b></span>")
|
||||
|
||||
icon_state = sanitize_text("breasts_[shape]_[size]")
|
||||
owner.update_body()
|
||||
B.update_icon()
|
||||
update_icon()
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/obj/item/organ/genital/penis/update_size()
|
||||
var/mob/living/carbon/human/o = owner
|
||||
if(cached_length < 0)//I don't actually know what round() does to negative numbers, so to be safe!!
|
||||
var/obj/item/organ/genital/penis/P = o.getorganslot("breasts")
|
||||
var/obj/item/organ/genital/penis/P = o.getorganslot("penis")
|
||||
to_chat(o, "<span class='warning'>You feel your tallywacker shrinking away from your body as your groin flattens out!</b></span>")
|
||||
P.Remove(o)
|
||||
switch(round(cached_length))
|
||||
@@ -58,12 +58,12 @@
|
||||
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>")
|
||||
prev_size = length
|
||||
icon_state = sanitize_text("penis_[shape]_[size]")
|
||||
o.update_body()
|
||||
//P.update_icon()
|
||||
//update_body()
|
||||
//P.update_icon() //Either of these don't work, why???
|
||||
girth = (length * girth_ratio)
|
||||
|
||||
/obj/item/organ/genital/penis/update_appearance()
|
||||
var/mob/living/carbon/human/o = owner
|
||||
//var/mob/living/carbon/o = owner
|
||||
var/string = "penis_[GLOB.cock_shapes_icons[shape]]_[size]"
|
||||
icon_state = sanitize_text(string)
|
||||
var/lowershape = lowertext(shape)
|
||||
@@ -75,7 +75,7 @@
|
||||
color = "#[skintone2hex(H.skin_tone)]"
|
||||
else
|
||||
color = "#[owner.dna.features["cock_color"]]"
|
||||
o.update_body()
|
||||
owner.update_body()
|
||||
|
||||
/obj/item/organ/genital/penis/update_link()
|
||||
if(owner)
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
id = "eigenstate"
|
||||
description = "A strange mixture formed from a controlled reaction of bluespace with plasma, that causes localised eigenstate fluxuations within the patient"
|
||||
taste_description = "wiggly"
|
||||
color = "#60A584" // rgb: 96, 0, 255
|
||||
color = "#5020H4" // rgb: 50, 20, 255
|
||||
overdose_threshold = 15
|
||||
addiction_threshold = 20
|
||||
metabolization_rate = 0.5 * REAGENTS_METABOLISM
|
||||
@@ -434,8 +434,6 @@
|
||||
metabolization_rate = 0.5
|
||||
var/mob/living/carbon/human/H
|
||||
|
||||
|
||||
|
||||
/datum/reagent/fermi/BElarger/on_mob_life(mob/living/carbon/M) //Increases breast size
|
||||
/*
|
||||
switch(current_cycle)
|
||||
@@ -526,18 +524,18 @@
|
||||
if(nP)
|
||||
nP.length = 0.2
|
||||
to_chat(M, "<span class='warning'>Your groin feels warm, as you feel a newly forming bulge down below.</b></span>")//OwO
|
||||
nP.cached_length = 0
|
||||
nP.prev_size = 0
|
||||
nP.cached_length = 0.1
|
||||
nP.prev_size = 0.1
|
||||
M.reagents.remove_reagent(src.id, 5)
|
||||
P = nP
|
||||
else
|
||||
P.length = P.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)
|
||||
|
||||
P.update_appearance()
|
||||
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)
|
||||
|
||||
P.update()
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/PElarger/overdose_process(mob/living/carbon/M) //Turns you into a male if female and ODing, doesn't touch nonbinary and object genders.
|
||||
@@ -566,24 +564,85 @@
|
||||
..()
|
||||
|
||||
|
||||
/datum/reagent/fermi/Astral // Gives you the ability to astral project for a moment!
|
||||
/datum/reagent/fermi/astral // Gives you the ability to astral project for a moment!
|
||||
name = "Astrogen"
|
||||
id = "astral"
|
||||
description = "A volatile collodial mixture derived from various masculine solutions that encourages a larger gentleman's package via a potent testosterone mix." //The toxic masculinity thing is a joke because I thought it would be funny to include it in the reagents, but I don't think many would find it funny?
|
||||
color = "#H60584" // rgb: 96, 0, 255
|
||||
description = "An opalescent murky liquid that is said to distort your soul from your being."
|
||||
color = "#6600A4" // rgb: 96, 0, 255
|
||||
taste_description = "a salty and sticky substance."
|
||||
overdose_threshold = 12
|
||||
metabolization_rate = 0.5
|
||||
metabolization_rate = 2.5
|
||||
overdose_threshold = 20
|
||||
addiction_threshold = 30
|
||||
addiction_stage1_end = 9999//Should never end.
|
||||
var/mob/living/carbon/origin
|
||||
var/mob/living/simple_animal/hostile/retaliate/ghost/G = null
|
||||
|
||||
/datum/reagent/fermi/Astral // Gives you the ability to astral project for a moment!
|
||||
name = "Astrogen"
|
||||
id = "astral"
|
||||
description = "A volatile collodial mixture derived from various masculine solutions that encourages a larger gentleman's package via a potent testosterone mix." //The toxic masculinity thing is a joke because I thought it would be funny to include it in the reagents, but I don't think many would find it funny?
|
||||
color = "#H60584" // rgb: 96, 0, 255
|
||||
taste_description = "a salty and sticky substance."
|
||||
overdose_threshold = 12
|
||||
metabolization_rate = 0.5
|
||||
/datum/reagent/fermi/astral/on_mob_life(mob/living/M) // Gives you the ability to astral project for a moment!
|
||||
switch(current_cycle)
|
||||
if(1)
|
||||
//var/mob/living/carbon/H = M
|
||||
M.alpha = 255
|
||||
origin = M
|
||||
if (G == null)
|
||||
G = new(get_turf(M.loc))
|
||||
G.attacktext = "raises the hairs on the neck of"
|
||||
G.response_harm = "disrupts the concentration of"
|
||||
G.response_disarm = "wafts"
|
||||
G.loot = null
|
||||
G.maxHealth = 5
|
||||
G.health = 5
|
||||
G.melee_damage_lower = 0
|
||||
G.melee_damage_upper = 0
|
||||
G.deathmessage = "disappears as if it was never really there to begin with"
|
||||
G.incorporeal_move = 1
|
||||
G.alpha = 25
|
||||
G.name = "[M]'s astral ghost"
|
||||
M.mind.transfer_to(G)
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/astral/on_mob_delete(mob/living/carbon/M)
|
||||
G.mind.transfer_to(origin)
|
||||
qdel(G)
|
||||
..()
|
||||
|
||||
/datum/reagent/fermi/astral/overdose_start(mob/living/carbon/M)
|
||||
origin.Sleeping(100, 0)
|
||||
G.Sleeping(100, 0)
|
||||
..()
|
||||
|
||||
//Okay so, this might seem a bit too good, but my counterargument is that it'll likely take all round to eventually kill you this way, then you have to be revived without a body (cloning only..?).
|
||||
/datum/reagent/fermi/astral/addiction_act_stage1(mob/living/carbon/M)
|
||||
if(prob(50))
|
||||
M.alpha = M.alpha - 1
|
||||
switch(M.alpha)
|
||||
if(245)
|
||||
to_chat(M, "<span class='warning'>You notice your body starting to disappear, maybe you took too much Astrogen...?</b></span>")
|
||||
M.alpha = M.alpha - 1
|
||||
if(220)
|
||||
to_chat(M, "<span class='notice'>Your addiction is only getting worse as your body disappears. Maybe you should get some more, and fast?</b></span>")
|
||||
M.alpha = M.alpha - 1
|
||||
if(180)
|
||||
to_chat(M, "<span class='notice'>You're starting to get scared as more and more of your body and conciousness begins to fade.</b></span>")
|
||||
M.alpha = M.alpha - 1
|
||||
if(120)
|
||||
to_chat(M, "<span class='notice'>As you lose more and more of yourself, you start to think that maybe shedding your mortality isn't too bad.</b></span>")
|
||||
M.alpha = M.alpha - 1
|
||||
if(100)
|
||||
to_chat(M, "<span class='notice'>You feel a substantial part of your soul flake off into the ethereal world, rendering yourself unclonable.</b></span>")
|
||||
M.alpha = M.alpha - 1
|
||||
M.add_trait(TRAIT_NOCLONE)
|
||||
if(80)
|
||||
to_chat(M, "<span class='notice'>You feel a thrill shoot through your body as what's left of your mind contemplates the coming oblivion of your self.</b></span>")
|
||||
M.alpha = M.alpha - 1
|
||||
if(45)
|
||||
to_chat(M, "<span class='warning'>The last vestiges of your mind eagerly await your imminent annihilation.</b></span>")
|
||||
M.alpha = M.alpha - 1
|
||||
if(M.alpha <= 30)
|
||||
to_chat(M, "<span class='warning'>Your body disperses from exisitance, as you become one with the universe.</b></span>")
|
||||
to_chat(M, "<span class='userdanger'>As your body disappears, your conciousness doesn't. Should you find a way back into the mortal coil, your memories of the afterlife remain with you. (At the cost of staying in character while dead.)</span>")//Legalised IC OOK? I have a suspicion this won't make it past the review. At least it'll be presented as a neat idea! If this is unacceptable I will propose the idea that the player can retain living memories across lives if they die in this way only.
|
||||
M.visible_message("[M] suddenly disappears, their body evaporatting from exisitance, freeing [M] from their mortal coil.")
|
||||
qdel(M)
|
||||
..()
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
/datum/chemical_reaction/eigenstate/on_reaction(datum/reagents/holder)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/reagent/fermi/eigenstate/location_created = location
|
||||
var/datum/reagent/fermi/eigenstate/location_created = location
|
||||
|
||||
//serum
|
||||
/datum/chemical_reaction/SDGF
|
||||
|
||||
Reference in New Issue
Block a user