Merge pull request #462 from Dahlular/funnyjar

Reworks Dwarfism, Adds Giantism, Bluespace Compression Shrinking, and Makes Sizechems Craftable
This commit is contained in:
Dahlular
2020-09-14 05:44:08 -06:00
committed by GitHub
6 changed files with 149 additions and 37 deletions
+2 -1
View File
@@ -12,6 +12,7 @@
#define MUTATE /datum/mutation/human/bad_dna
#define COUGH /datum/mutation/human/cough
#define DWARFISM /datum/mutation/human/dwarfism
#define GIANTISM /datum/mutation/human/giantism
#define CLOWNMUT /datum/mutation/human/clumsy
#define TOURETTES /datum/mutation/human/tourettes
#define DEAFMUT /datum/mutation/human/deaf
@@ -151,4 +152,4 @@
//used for the can_chromosome var on mutations
#define CHROMOSOME_NEVER 0
#define CHROMOSOME_NONE 1
#define CHROMOSOME_USED 2
#define CHROMOSOME_USED 2
+33 -7
View File
@@ -68,10 +68,10 @@
owner.throw_at(target, cough_range, GET_MUTATION_POWER(src))
//Dwarfism shrinks your body and lets you pass tables.
//Dwarfism shrinks your body.
/datum/mutation/human/dwarfism
name = "Dwarfism"
desc = "A mutation believed to be the cause of dwarfism."
desc = "A mutation believed to be the cause of dwarfism. May not work on smaller things properly."
quality = POSITIVE
difficulty = 16
instability = 5
@@ -80,17 +80,43 @@
/datum/mutation/human/dwarfism/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
owner.transform = owner.transform.Scale(1, 0.8)
owner.pass_flags |= PASSTABLE
if(owner.size_multiplier <= RESIZE_A_TINYMICRO) //Because what's optimization?
return
owner.resize(owner.size_multiplier-0.2)
owner.visible_message("<span class='danger'>[owner] suddenly shrinks!</span>", "<span class='notice'>Everything around you seems to grow..</span>")
/datum/mutation/human/dwarfism/on_losing(mob/living/carbon/human/owner)
if(..())
return
owner.transform = owner.transform.Scale(1, 1.25)
owner.pass_flags &= ~PASSTABLE
if(owner.size_multiplier >= RESIZE_A_MACROHUGE)
return
owner.resize(owner.size_multiplier+0.2)
owner.visible_message("<span class='danger'>[owner] suddenly grows!</span>", "<span class='notice'>Everything around you seems to shrink..</span>")
//Giantism grows your body.
/datum/mutation/human/giantism
name = "Giantism"
desc = "A mutation believed to be the cause of giantism. May not work on larger things properly."
quality = POSITIVE
difficulty = 14
instability = 5
locked = TRUE
/datum/mutation/human/giantism/on_acquiring(mob/living/carbon/human/owner)
if(..())
return
if(owner.size_multiplier >= RESIZE_A_MACROHUGE)
return
owner.resize(owner.size_multiplier+0.2)
owner.visible_message("<span class='danger'[owner] expands in size!</span>", "<span class='notice'>Everything around you compresses smaller...</span>")
/datum/mutation/human/giantism/on_losing(mob/living/carbon/human/owner)
if(..())
return
if(owner.size_multiplier <= RESIZE_A_TINYMICRO)
return
owner.resize(owner.size_multiplier-0.2)
owner.visible_message("<span class='danger'>[owner] suddenly shrinks back down!", "<span class='notice'>You shrink back down in size.</span>")
//Clumsiness has a very large amount of small drawbacks depending on item.
/datum/mutation/human/clumsy
@@ -259,4 +285,4 @@
owner.jitteriness = min(max(0, owner.jitteriness + 5), 30)
if(prob(25))
to_chat(owner,"<span class='warning'>You feel someone creeping in on you...</span>")
owner.hallucination += 20
owner.hallucination += 20
@@ -112,6 +112,18 @@
else
O.update_size()
O.update_appearance()
return
else //shrink them overall
playsound(get_turf(src), 'sound/weapons/flash.ogg', 50, 1)
victim.visible_message("<span class='warning'>[user] is preparing to shrink [victim] with their bluespace compression kit!</span>")
if(do_mob(user, victim, 40) && charges > 0 && victim.size_multiplier > RESIZE_A_TINYMICRO)
victim.visible_message("<span class='warning'>[user] has shrunk [victim]!")
playsound(get_turf(src), 'sound/weapons/emitter2.ogg', 50, 1)
sparks()
flash_lighting_fx(3, 3, LIGHT_COLOR_CYAN)
charges -= 1
victim.resize(victim.size_multiplier-0.2)
return
@@ -124,4 +136,4 @@
if(B.amount > 1)
B.amount -= 1
else
qdel(I)
qdel(I)
+10
View File
@@ -140,6 +140,16 @@
desc = "It's a small world after all."
add_mutations = list(DWARFISM)
/obj/item/dnainjector/antigiant
name = "\improper DNA injector (Anti-Giantism)"
desc = "Makes you small and weak."
remove_mutations = list(GIANTISM)
/obj/item/dnainjector/giant
name = "\improper DNA injector (Giantism)"
desc = "Makes you bigger."
add_mutations = list(GIANTISM)
/obj/item/dnainjector/clumsymut
name = "\improper DNA injector (Clumsy)"
desc = "Makes clown minions."
@@ -1929,38 +1929,13 @@
if((ismonkey(M) || ishuman(M)) && current_cycle >= 10)
M.gorillize()
/datum/reagent/growthserum
/datum/reagent/growthserum //neutered to use as a chemical base for sizecode shit
name = "Growth Serum"
id = "growthserum"
description = "A commercial chemical designed to help older men in the bedroom."//not really it just makes you a giant
color = "#ff0000"//strong red. rgb 255, 0, 0
var/current_size = 1
taste_description = "bitterness" // apparently what viagra tastes like
/datum/reagent/growthserum/on_mob_life(mob/living/carbon/H)
var/newsize = current_size
switch(volume)
if(0 to 19)
newsize = 1.25
if(20 to 49)
newsize = 1.5
if(50 to 99)
newsize = 2
if(100 to 199)
newsize = 2.5
if(200 to INFINITY)
newsize = 3.5
H.resize = newsize/current_size
current_size = newsize
H.update_transform()
..()
/datum/reagent/growthserum/on_mob_end_metabolize(mob/living/M)
M.resize = 1/current_size
M.update_transform()
..()
/datum/reagent/plastic_polymers
name = "plastic polymers"
id = "plastic_polymers"
@@ -2232,4 +2207,4 @@
description = "A synthetic toxin." //NANOMACHINES SON.
color = "#5EFF3B" //RGB: 94, 255, 59
race = /datum/species/synthliz
mutationtext = "<span class='danger'>The pain subsides. You feel... artificial.</span>"
mutationtext = "<span class='danger'>The pain subsides. You feel... artificial.</span>"
+89 -1
View File
@@ -1,5 +1,42 @@
//Size Chemicals, now with better and less cringy names.
//TO DO: USE BETTER FERMICHEM TO MAKE ALL OF THESE CHEMICALS MORE INTERACTIVE
//Sizechem reagent
/datum/reagent/sizechem
name = "Cell-Volume Altering Base"
id = "sizechem"
description = "A stabilized compound liquid, used as a basis for increasing or decreasing the size of living matter with more recipes."
color = "#C900CC"
taste_description = "regret"
can_synth = FALSE
metabolization_rate = 0.25
//Sizechem reaction
/datum/chemical_reaction/sizechem
name = "Cell-Volume Altering Base"
id = "sizechem"
mix_message = "the reaction rapidly alters in size!"
required_reagents = list("growthserum" = 0.15, "clonexadone" = 0.15, "gold" = 0.15, "acetone" = 0.15)
results = list("sizechem" = 0.3)
required_temp = 1
//Fermichem vars
OptimalTempMin = 600 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 630 // Upper end for above
ExplodeTemp = 635 // Temperature at which reaction explodes
OptimalpHMin = 5 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
OptimalpHMax = 5.5 // Higest value for above
ReactpHLim = 2 // How far out pH wil react, giving impurity place (Exponential phase)
CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst)
CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value)
CurveSharppH = 4 // How sharp the pH exponential curve is (to the power of value)
ThermicConstant = -10 // Temperature change per 1u produced
HIonRelease = 0.02 // pH change per 1u reaction (inverse for some reason)
RateUpLim = 1 // Optimal/max rate possible if all conditions are perfect
FermiChem = TRUE // If the chemical uses the Fermichem reaction mechanics
FermiExplode = FALSE // If the chemical explodes in a special way
PurityMin = 0.2
//Growthchem reagent
/datum/reagent/growthchem
name = "Prospacillin"
id = "growthchem"
@@ -10,6 +47,31 @@
metabolization_rate = 0.25
can_synth = FALSE //DO NOT MAKE THIS SNYTHESIZABLE, THESE CHEMS ARE SUPPOSED TO NOT BE USED COMMONLY
//Growthchem reaction
/datum/chemical_reaction/growthchem
name = "Prospacillin"
id = "growthchem"
mix_message = "the reaction appears to grow!"
required_reagents = list("sizechem" = 0.15, "condensedcapsaicin" = 0.15, "aphro" = 0.30)
results = list("growthchem" = 0.25)
required_temp = 1
OptimalTempMin = 700 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 730 // Upper end for above
ExplodeTemp = 735 // Temperature at which reaction explodes
OptimalpHMin = 3 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
OptimalpHMax = 3.5 // Higest value for above
ReactpHLim = 2 // How far out pH wil react, giving impurity place (Exponential phase)
CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst)
CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value)
CurveSharppH = 4 // How sharp the pH exponential curve is (to the power of value)
ThermicConstant = -10 // Temperature change per 1u produced
HIonRelease = 0.02 // pH change per 1u reaction (inverse for some reason)
RateUpLim = 1 // Optimal/max rate possible if all conditions are perfect
FermiChem = TRUE // If the chemical uses the Fermichem reaction mechanics
FermiExplode = FALSE // If the chemical explodes in a special way
PurityMin = 0.2
//Growthchem effects
/datum/reagent/growthchem/on_mob_add(mob/living/carbon/M)
. = ..()
if(ishuman(M))
@@ -24,6 +86,7 @@
..()
. = 1
//Shrinkchem reagent
/datum/reagent/shrinkchem
name = "Diminicillin"
id = "shrinkchem"
@@ -31,9 +94,34 @@
color = "#0C26E7"
taste_description = "a pungent, acidic and jittery flavour"
overdose_threshold = 10
metabolization_rate = 1
metabolization_rate = 0.50
can_synth = FALSE //SAME STORY AS ABOVE
//Shrinchem reaction
/datum/chemical_reaction/shrinkchem
name = "Diminicillin"
id = "shrinkchem"
mix_message = "the reaction appears to shrink!"
required_reagents = list("sizechem" = 0.15, "frostoil" = 0.15, "aphro" = 0.30)
results = list("shrinkchem" = 0.25)
required_temp = 1
OptimalTempMin = 100 // Lower area of bell curve for determining heat based rate reactions
OptimalTempMax = 150 // Upper end for above
ExplodeTemp = 350 // Temperature at which reaction explodes
OptimalpHMin = 3 // Lowest value of pH determining pH a 1 value for pH based rate reactions (Plateu phase)
OptimalpHMax = 4.5 // Higest value for above
ReactpHLim = 2 // How far out pH wil react, giving impurity place (Exponential phase)
CatalystFact = 0 // How much the catalyst affects the reaction (0 = no catalyst)
CurveSharpT = 4 // How sharp the temperature exponential curve is (to the power of value)
CurveSharppH = 4 // How sharp the pH exponential curve is (to the power of value)
ThermicConstant = -10 // Temperature change per 1u produced
HIonRelease = 0.02 // pH change per 1u reaction (inverse for some reason)
RateUpLim = 1 // Optimal/max rate possible if all conditions are perfect
FermiChem = TRUE // If the chemical uses the Fermichem reaction mechanics
FermiExplode = FALSE // If the chemical explodes in a special way
PurityMin = 0.2
//Shrinkchem effects
/datum/reagent/shrinkchem/on_mob_add(mob/living/carbon/M)
. = ..()
if(ishuman(M))