This commit is contained in:
QuoteFox
2020-07-25 11:06:33 +01:00
5 changed files with 48 additions and 49 deletions
+2 -1
View File
@@ -62,7 +62,8 @@
#define isslimeperson(A) (is_species(A, /datum/species/jelly/slime))
#define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent))
#define iszombie(A) (is_species(A, /datum/species/zombie))
#define ismoth(A) (is_species(A, /datum/species/moth) || is_species(A, /datum/species/insect))
#define ismoth(A) (is_species(A, /datum/species/moth))
#define isinsect(A) (is_species(A, /datum/species/insect))
#define ishumanbasic(A) (is_species(A, /datum/species/human))
#define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) )
#define isvampire(A) (is_species(A,/datum/species/vampire))
@@ -1999,12 +1999,12 @@ datum/reagent/consumable/ethanol/creme_de_coconut
/datum/reagent/consumable/ethanol/bug_spray/on_mob_life(mob/living/carbon/M)
//Bugs should not drink Bug spray.
if(ismoth(M) || isflyperson(M))
if(ismoth(M) || isflyperson(M) || isinsect(M))
M.adjustToxLoss(1,0)
return ..()
/datum/reagent/consumable/ethanol/bug_spray/on_mob_add(mob/living/carbon/M)
if(ismoth(M) || isflyperson(M))
if(ismoth(M) || isflyperson(M) || isinsect(M))
M.emote("scream")
return ..()
@@ -2396,4 +2396,4 @@ datum/reagent/consumable/ethanol/creme_de_coconut
/datum/reagent/consumable/ethanol/hotlime_miami/on_mob_life(mob/living/carbon/M)
M.set_drugginess(50)
M.adjustStaminaLoss(-2)
return ..()
return ..()
+15 -27
View File
@@ -76,11 +76,9 @@ mob/living/get_effective_size()
//Smaller person being stepped on
if(get_effective_size() > tmob.get_effective_size() && iscarbon(src))
if(istype(H) && H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle")
to_chat(H,"<span class='notice'>You carefully slither around [tmob].</span>")
to_chat(tmob,"<span class='notice'>[H]'s huge tail slithers beside you!</span>")
H.visible_message("<span class='notice'>[H]'s huge tail slithers besides you.</span>", "<span class='notice'>[H] carefully slithers around [tmob].</span>")
else
to_chat(H,"<span class='notice'>You carefully step over [tmob].</span>")
to_chat(tmob,"<span class='notice'>[H] steps over you carefully!</span>")
H.visible_message("<span class='notice'>[H] steps over you carefully.</span>", "<span class='notice'>[H] carefully steps over [tmob].</span>")
return 1
//Smaller person stepping under a larger person
@@ -117,14 +115,12 @@ mob/living/get_effective_size()
H.forceMove(tmob.loc)
sizediffStamLoss(tmob)
H.add_movespeed_modifier(MOVESPEED_ID_STOMP, multiplicative_slowdown = 10) //Full stop
addtimer(CALLBACK(H, /mob/.proc/remove_movespeed_modifier, MOVESPEED_ID_STOMP), 5) //0.5 second
addtimer(CALLBACK(H, /mob/.proc/remove_movespeed_modifier, MOVESPEED_ID_STOMP), 3) //0.3 seconds
if(get_effective_size() > tmob.get_effective_size() && iscarbon(H))
if(istype(H) && H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle")
to_chat(H,"<span class='danger'>You carefully roll over [tmob] with your tail!</span>")
to_chat(tmob,"<span class='danger'>[H]'s huge tail rolls over you!</span>")
H.visible_message("<span class='danger'>[H]'s huge tail rolls over you!</span>", "<span class='danger'>[H] carefully rolls their tail over [tmob]!</span>")
else
to_chat(H,"<span class='danger'>You painfully but harmlessly step on [tmob]!<span>")
to_chat(tmob,"<span class='danger'>[H] steps onto you with force!</span>")
H.visible_message("<span class='danger'>[H] steps onto you with force!</span>", "<span class='danger'>[H] carefully steps on [tmob]!</span>")
return 1
if(H.a_intent == "harm" && H.canmove && !H.buckled)
@@ -133,15 +129,13 @@ mob/living/get_effective_size()
sizediffStamLoss(tmob)
sizediffBruteloss(tmob)
H.add_movespeed_modifier(MOVESPEED_ID_STOMP, multiplicative_slowdown = 10)
addtimer(CALLBACK(H, /mob/.proc/remove_movespeed_modifier, MOVESPEED_ID_STOMP), 15) //1.5 second
addtimer(CALLBACK(H, /mob/.proc/remove_movespeed_modifier, MOVESPEED_ID_STOMP), 10) //1 seconds
//H.Stun(20)
if(get_effective_size() > tmob.get_effective_size() && iscarbon(H))
if(istype(H) && H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle")
to_chat(H,"<span class='danger'>You grind [tmob] into the floor with your tail!</span>")
to_chat(tmob,"<span class='danger'>[H]'s massive tail plows you into the floor!</span>")
H.visible_message("<span class='userdanger'>[H] plows their tail over you mercilessly!</span>", "<span class='danger'>[H] mows down [tmob] under their tail!</span>")
else
to_chat(H,"<span class='danger'>You pound [tmob] into the floor underfoot!</span>")
to_chat(tmob,"<span class='danger'>[H] slams you into the ground, crushing you!</span>")
H.visible_message("<span class='userdanger'>[H] crushes you under their foot!</span>", "<span class='danger'>[H] slams their foot down on [tmob]!</span>")
return 1
if(H.a_intent == "grab" && H.canmove && !H.buckled)
@@ -150,25 +144,21 @@ mob/living/get_effective_size()
sizediffStamLoss(tmob)
sizediffStun(tmob)
H.add_movespeed_modifier(MOVESPEED_ID_STOMP, multiplicative_slowdown = 10)
addtimer(CALLBACK(H, /mob/.proc/remove_movespeed_modifier, MOVESPEED_ID_STOMP), 10)//About 3/4th a second
addtimer(CALLBACK(H, /mob/.proc/remove_movespeed_modifier, MOVESPEED_ID_STOMP), 7)//About 3/4th a second
if(get_effective_size() > tmob.get_effective_size() && iscarbon(H))
var/feetCover = (H.wear_suit && (H.wear_suit.body_parts_covered & FEET)) || (H.w_uniform && (H.w_uniform.body_parts_covered & FEET) || (H.shoes && (H.shoes.body_parts_covered & FEET)))
if(feetCover)
if(istype(H) && H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle")
to_chat(H,"<span class='danger'>You pin [tmob] underneath your tail!</span>")
to_chat(tmob,"<span class='danger'>[H]'s plows you into the ground, pinning you helplessly!</span>")
H.visible_message("<span class='danger'>[H] pins you beneath their tail!</span>", "<span class='danger'>[H] pins [tmob] under their tail!</span>")
else
to_chat(H,"<span class='danger'>You pin [tmob] helplessly to the floor with your foot!</span>")
to_chat(tmob,"<span class='danger'>[H] weightfully pins you to the ground!</span>")
H.visible_message("<span class='danger'>[H] pins you underfoot!</span>", "<span class='danger'>[H] pins [tmob] helplessly underfoot!</span>")
return 1
else
if(istype(H) && H.dna.features["taur"] == "Naga" || H.dna.features["taur"] == "Tentacle")
to_chat(H,"<span class='danger'>You curl [tmob] up in the coils of your tail!</span>")
to_chat(tmob,"<span class='danger'>[H]'s tail winds around you and snatches you in its coils!</span>")
H.visible_message("<span class='userdanger'>[H]'s tail winds around you and snatches you in its coils!</span>", "<span class='danger'>[H] snatches up [tmob] underneath their tail!</span>")
tmob.mob_pickup_micro_feet(H)
else
to_chat(H,"<span class='danger'>You stomp your foot into [tmob], curling your toes and picking them up!</span>")
to_chat(tmob,"<span class='danger'>[H]'s toes pin you down and curl around you, picking you up!</span>'")
H.visible_message("<span class='userdanger'>[H]'s toes pin you down and curl around you, picking you up!</span>", "<span class='danger'>[H] stomps down on [tmob], curling their toes and picking them up!</span>")
tmob.mob_pickup_micro_feet(H)
return 1
@@ -181,11 +171,9 @@ mob/living/get_effective_size()
//smaller person stepping under another person... TO DO, fix and allow special interactions with naga legs to be seen
/mob/living/proc/micro_step_under(var/mob/living/tmob)
if(istype(tmob) && istype(tmob, /datum/sprite_accessory/taur/naga))
to_chat(src,"<span class='notice'>You jump over [tmob]'s thick tail.</span>")
to_chat(tmob,"<span class='notice'>[src] bounds over your tail.</span>")
src.visible_message("<span class='notice'>[src] bounds over [tmob]'s tail.</span>", "<span class='notice'>You jump over [tmob]'s thick tail.</span>")
else
to_chat(src,"<span class='notice'>You run between [tmob]'s legs.</span>")
to_chat(tmob,"<span class='notice'>[src] runs between your legs.</span>")
src.visible_message("<span class='notice'>[src] runs between [tmob]'s legs.</span>", "<span class='notice'>You run between [tmob]'s legs.</span>")
//Proc for scaling stamina damage on size difference
/mob/living/proc/sizediffStamLoss(var/mob/living/tmob)
+27 -18
View File
@@ -1,40 +1,49 @@
//Size Chemicals, now with better and less cringy names.
/datum/reagent/dahl/growthchem
/datum/reagent/growthchem
name = "Prospacillin"
id = "growthchem"
description = "A stabilized altercation of size-altering liquids, this one appears to increase cell volume."
color = "#E70C0C"
taste_description = "a sharp, fiery and intoxicating flavour."
taste_description = "a sharp, fiery and intoxicating flavour"
overdose_threshold = 10
metabolization_rate = 0.25
can_synth = FALSE //DO NOT MAKE THIS SNYTHESIZABLE, THESE CHEMS ARE SUPPOSED TO NOT BE USED COMMONLY
/datum/reagent/dahl/growthchem/on_mob_add(mob/living/carbon/M)
log_game("SIZECODE: [M] ckey: [M.key] has ingested growthchem.")
/datum/reagent/growthchem/on_mob_add(mob/living/carbon/M)
. = ..()
if(ishuman(M))
log_game("SIZECODE: [M] ckey: [M.key] has ingested growthchem.")
/datum/reagent/dahl/growthchem/on_mob_life(mob/living/carbon/M)
/datum/reagent/growthchem/on_mob_life(mob/living/carbon/M)
if(!ishuman(M))
return..()
if(M.size_multiplier < RESIZE_MACRO)
M.resize(M.size_multiplier+0.01)
M.resize(M.size_multiplier+0.025)
M.visible_message("<span class='danger'>[pick("[M] grows!", "[M] expands in size!", "[M] pushes outwards in stature!")]</span>", "<span class='danger'>[pick("You feel your body fighting for space and growing!", "The world contracts inwards in every direction!", "You feel your muscles expand, and your surroundings shrink!")]</span>")
..()
. = 1
return
/datum/reagent/dahl/shrinkchem
/datum/reagent/shrinkchem
name = "Diminicillin"
id = "shrinkchem"
description = "A stabilized altercation of size-altering liquids, this one appears to decrease cell volume."
color = "#0C26E7"
taste_description = "a pungent, acidic and jittery flavour."
taste_description = "a pungent, acidic and jittery flavour"
overdose_threshold = 10
metabolization_rate = 0.25
metabolization_rate = 1
can_synth = FALSE //SAME STORY AS ABOVE
/datum/reagent/dahl/shrinkchem/on_mob_add(mob/living/carbon/M)
log_game("SIZECODE: [M] ckey: [M.key] has ingested shrinkchem.")
/datum/reagent/shrinkchem/on_mob_add(mob/living/carbon/M)
. = ..()
if(ishuman(M))
log_game("SIZECODE: [M] ckey: [M.key] has ingested shrinkchem.")
/datum/reagent/dahl/shrinkchem/on_mob_life(mob/living/carbon/M)
/datum/reagent/shrinkchem/on_mob_life(mob/living/carbon/M)
if(!ishuman(M))
return..()
if(M.size_multiplier > RESIZE_MICRO)
M.resize(M.size_multiplier-0.01)
return
M.resize(M.size_multiplier-0.025)
M.visible_message("<span class='danger'>[pick("[M] shrinks down!", "[M] dwindles in size!", "[M] compresses down!")]</span>", "<span class='danger'>[pick("You feel your body compressing in size!", "The world pushes outwards in every direction!", "You feel your muscles contract, and your surroundings grow!")]</span>")
..()
. = 1
+1
View File
@@ -2899,6 +2899,7 @@
#include "hyperstation\code\modules\patreon\patreon.dm"
#include "hyperstation\code\modules\resize\holder_micro.dm"
#include "hyperstation\code\modules\resize\resizing.dm"
#include "hyperstation\code\modules\resize\sizechems.dm"
#include "hyperstation\code\modules\resize\sizegun.dm"
#include "hyperstation\code\obj\bluespace sewing kit.dm"
#include "hyperstation\code\obj\decal.dm"