This commit is contained in:
Fermi
2019-05-28 23:35:50 +01:00
parent 89665de8a7
commit 12eb5e9b17
4 changed files with 22 additions and 43 deletions
@@ -6,8 +6,8 @@
zone = "chest"
slot = "breasts"
w_class = 3
size = BREASTS_SIZE_DEF //SHOULD BE A LETTER, starts as a number...???
var/cached_size = null//for enlargement SHOULD BE A NUMBER
size = "c" //SHOULD BE A LETTER, starts as a number...???
var/cached_size = BREASTS_SIZE_DEF //for enlargement SHOULD BE A NUMBER
var/prev_size //For flavour texts SHOULD BE A LETTER
var/breast_sizes = list ("a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "huge", "flat")
var/breast_values = list ("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5, "f" = 6, "g" = 7, "h" = 8, "i" = 9, "j" = 10, "k" = 11, "l" = 12, "m" = 13, "n" = 14, "o" = 15, "huge" = 16, "flat" = 0)
@@ -24,12 +24,6 @@
/obj/item/organ/genital/breasts/Initialize()
. = ..()
reagents.add_reagent(fluid_id, fluid_max_volume)
//prev_size = size
//cached_size = breast_values[size]
/* This breaks the character creation sceen. for some reason sizes are set to numbers there.
if (cached_size == "c")//fix for a weird bug that has something to do with how they're set up on the character create screen.
cached_size = 3
*/
/obj/item/organ/genital/breasts/on_life()
if(QDELETED(src))
@@ -211,8 +211,12 @@
B.color = "#[dna.features["breasts_color"]]"
B.size = dna.features["breasts_size"]
B.prev_size = B.size
message_admins("B.size[B.size]")
if (!B.size == "huge")
B.cached_size = B.breast_values[B.size]
if(isnum(B.size))
B.cached_size = B.size
else
B.cached_size = B.breast_values[B.size]
B.shape = dna.features["breasts_shape"]
B.fluid_id = dna.features["breasts_fluid"]
B.update()
@@ -288,11 +292,15 @@
for(var/obj/item/organ/O in internal_organs)
if(istype(O, /obj/item/organ/genital))
organCheck = TRUE
if(/obj/item/organ/genital/penis)
if(!dna.features["has_cock"] == 1)
dna.features["has_cock"] = 1//Goddamnit get in there.
if (organCheck == FALSE)
if(ishuman(src) && dna.species.id == "human")
dna.features["genitals_use_skintone"] = TRUE
dna.species.use_skintones = TRUE
return
/* I can't get this to work.
if(MUTCOLORS)
if(src.dna.species.fixed_mut_color)
dna.features["cock_color"] = "#[src.dna.species.fixed_mut_color]"
@@ -301,6 +309,7 @@
//So people who haven't set stuff up don't get rainbow surprises.
dna.features["cock_color"] = "#[dna.features["mcolor"]]"
dna.features["breasts_color"] = "#[dna.features["mcolor"]]"
*/
return
/datum/species/proc/handle_genitals(mob/living/carbon/human/H)//more like handle sadness
@@ -341,8 +350,6 @@
S = GLOB.vagina_shapes_list[G.shape]
if(/obj/item/organ/genital/breasts)
S = GLOB.breasts_shapes_list[G.shape]
//var/temp_aroused_state = 0//Breasts don't have aroused_states, there's literally no difference in the spite. When someone touched up/edits the code for their implementation, remove this and change temp_aroused_state to aroused_state
//if(size == "huge")
@@ -136,7 +136,6 @@
if(purity > 0.75) //Teleports you home if it's pure enough
do_sparks(5,FALSE,M)
do_teleport(M, location_created, 0, asoundin = 'sound/effects/phasein.ogg')
//M.forceMove(location_created) //Teleports to creation location
do_sparks(5,FALSE,M)
if(prob(20))
do_sparks(5,FALSE,M)
@@ -330,12 +329,8 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
if(LAZYLEN(candies) && src.playerClone == FALSE) //If there's candidates, clone the person and put them in there!
message_admins("Ghost candidate found! [candies] is becoming a clone of [M]! Hee~!! Exciting!!")
to_chat(M, "<span class='warning'>The cells reach a critical micelle concentration, nucleating rapidly within your body!</span>")
//var/typepath = owner.type
//clone = new typepath(owner.loc)
var/typepath = M.type
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/human/SM = fermi_Gclone
if(istype(SM) && istype(M))
SM.real_name = M.real_name
@@ -352,7 +347,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
ZI.Remove(M)
ZI.Insert(SM)
//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='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='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>")
@@ -370,7 +364,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
//Really hacky way to deal with this stupid problem I have, and heal the clone. I think around 30u will make a healthy clone.
SM.reagents.add_reagent("SDGFheal", volume)
M.reagents.remove_reagent(src.id, src.vol)
M.reagents.remove_reagent(src.id, src.volume)
//Give the new clone an idea of their character
//SHOULD print last 5 messages said by the original to the clones chatbox
@@ -387,8 +381,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
return
//BALANCE: should I make them a pacifist, or give them some cellular damage or weaknesses?
//after_success(user, SM)
//qdel(src)
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!).
src.unitCheck = TRUE
@@ -458,17 +450,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
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!! TODO: Add teratoma slime subspecies
//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
S.damage_coeff = list(BRUTE = 0.9 , BURN = 2, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1)//I dunno how slimes work cause fire is burny
S.name = "Living teratoma"
S.real_name = "Living teratoma"//horrifying!!
S.rabid = 1//Make them an angery boi, grr grr
to_chat("<span class='notice'>The cells clump up into a horrifying tumour.</span>")
*/
//Unobtainable, used in clone spawn.
/datum/reagent/fermi/SDGFheal
@@ -527,7 +508,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
M.nutrition = 20000 //https://www.youtube.com/watch?v=Bj_YLenOlZI
if(75 to 85)
M.adjustToxLoss(1, 0)// the warning!
if(86)
if(86)//mean clone time!
if (!M.reagents.has_reagent("pen_acid"))//Counterplay is pent.)
message_admins("(non-infectious) Zombie spawned at [M.loc], produced by impure chem, wah!")
M.nutrition = startHunger - 500//YOU BEST BE RUNNING AWAY AFTER THIS YOU BADDIE
@@ -541,7 +522,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
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.updateappearance(mutcolor_update=1)
M.reagents.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>")
@@ -622,7 +603,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
var/sizeConv = list("a" = 1, "b" = 2, "c" = 3, "d" = 4, "e" = 5)
B.prev_size = B.size
B.cached_size = sizeConv[B.size]
//message_admins("init B size: [B.size], prev: [B.prev_size], cache = [B.cached_size], raw: [sizeConv[B.size]]") //if this runtimes it's cause someone's breasts are too big!
/datum/reagent/fermi/BElarger/on_mob_life(mob/living/carbon/M) //Increases breast size
if(!ishuman(M))//Just in case
@@ -718,7 +698,6 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING
ImpureChem = "PEsmaller" //If you make an inpure chem, it stalls growth
InverseChemVal = 0.3
InverseChem = "PEsmaller" //At really impure vols, it just becomes 100% inverse
//var/mob/living/carbon/human/H
/datum/reagent/fermi/PElarger/on_mob_add(mob/living/carbon/M)
. = ..()
@@ -841,13 +820,12 @@ Buginess level: works as intended - except teleport makes sparks for some reason
var/antiGenetics = 255
var/sleepytime = 0
InverseChemVal = 0.25
//var/Svol = volume
/datum/reagent/fermi/astral/on_mob_life(mob/living/M) // Gives you the ability to astral project for a moment!
//M.alpha = 255//Reset addiction
//antiGenetics = 255// DOesn't work for some reason?
M.alpha = 255//Reset addiction
antiGenetics = 255// DOesn't work for some reason?
switch(current_cycle)
if(2)//Require a minimum
if(0)//Require a minimum
origin = M
if (G == null)
G = new(get_turf(M.loc))
@@ -869,7 +847,7 @@ Buginess level: works as intended - except teleport makes sparks for some reason
if(prob(50))
to_chat(G, "<span class='warning'>The high conentration of Astrogen in your blood causes you to lapse your concentration for a moment, bringing your projection back to yourself!</b></span>")
do_teleport(G, M.loc)
M.reagents.remove_reagent(src.id, current_cycle/2, FALSE)
M.reagents.remove_reagent(src.id, current_cycle-1, FALSE)
..()
/datum/reagent/fermi/astral/on_mob_delete(mob/living/carbon/M)