mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-21 19:17:50 +01:00
Merge pull request #9287 from Citinited/funny-chemicals
Adds a new clown chemical 🤡
This commit is contained in:
@@ -119,6 +119,7 @@ var/global/sent_honksquad = 0
|
||||
equip_to_slot_or_del(new /obj/item/stamp/clown(src), slot_in_backpack)
|
||||
equip_to_slot_or_del(new /obj/item/toy/crayon/rainbow(src), slot_in_backpack)
|
||||
equip_to_slot_or_del(new /obj/item/reagent_containers/spray/waterflower(src), slot_in_backpack)
|
||||
equip_to_slot_or_del(new /obj/item/reagent_containers/food/pill/patch/jestosterone(src), slot_r_store)
|
||||
if(prob(50))
|
||||
equip_to_slot_or_del(new /obj/item/gun/energy/clown(src), slot_in_backpack)
|
||||
else
|
||||
|
||||
@@ -121,12 +121,10 @@
|
||||
span = mind.speech_span
|
||||
if((COMIC in mutations) \
|
||||
|| (locate(/obj/item/organ/internal/cyberimp/brain/clown_voice) in internal_organs) \
|
||||
|| istype(get_item_by_slot(slot_wear_mask), /obj/item/clothing/mask/gas/voice/clown))
|
||||
|| istype(get_item_by_slot(slot_wear_mask), /obj/item/clothing/mask/gas/voice/clown) \
|
||||
|| GetComponent(/datum/component/jestosterone))
|
||||
span = "sans"
|
||||
|
||||
if(WINGDINGS in mutations)
|
||||
span = "wingdings"
|
||||
|
||||
var/list/parent = ..()
|
||||
verb = parent["verb"]
|
||||
|
||||
|
||||
@@ -381,7 +381,6 @@
|
||||
playsound(target.loc, attack.attack_sound, 25, 1, -1)
|
||||
|
||||
target.visible_message("<span class='danger'>[user] [pick(attack.attack_verb)]ed [target]!</span>")
|
||||
|
||||
target.apply_damage(damage, BRUTE, affecting, armor_block, sharp = attack.sharp) //moving this back here means Armalis are going to knock you down 70% of the time, but they're pure adminbus anyway.
|
||||
if((target.stat != DEAD) && damage >= user.dna.species.punchstunthreshold)
|
||||
target.visible_message("<span class='danger'>[user] has weakened [target]!</span>", \
|
||||
@@ -390,6 +389,7 @@
|
||||
target.forcesay(GLOB.hit_appends)
|
||||
else if(target.lying)
|
||||
target.forcesay(GLOB.hit_appends)
|
||||
SEND_SIGNAL(target, COMSIG_PARENT_ATTACKBY)
|
||||
|
||||
/datum/species/proc/disarm(mob/living/carbon/human/user, mob/living/carbon/human/target, datum/martial_art/attacker_style)
|
||||
if(target.check_block()) //cqc
|
||||
|
||||
@@ -508,6 +508,7 @@
|
||||
var/turf/T = loc
|
||||
. = ..()
|
||||
if(.)
|
||||
SEND_SIGNAL(src, COMSIG_MOVABLE_MOVED)
|
||||
handle_footstep(loc)
|
||||
step_count++
|
||||
|
||||
@@ -882,7 +883,7 @@
|
||||
// If we're pulling something then drop what we're currently pulling and pull this instead.
|
||||
AM.add_fingerprint(src)
|
||||
if(pulling)
|
||||
if(AM == pulling)// Are we trying to pull something we are already pulling? Then just stop here, no need to continue.
|
||||
if(AM == pulling)// Are we trying to pull something we are already pulling? Then just stop here, no need to continue.
|
||||
return
|
||||
stop_pulling()
|
||||
if(AM.pulledby)
|
||||
|
||||
@@ -577,9 +577,9 @@ var/const/INGEST = 2
|
||||
reagent_list += R
|
||||
R.holder = src
|
||||
R.volume = amount
|
||||
R.on_new(data)
|
||||
if(data)
|
||||
R.data = data
|
||||
R.on_new(data)
|
||||
|
||||
update_total()
|
||||
if(my_atom)
|
||||
|
||||
@@ -419,6 +419,70 @@
|
||||
/datum/reagent/love/reaction_mob(mob/living/M, method=TOUCH, volume)
|
||||
to_chat(M, "<span class='notice'>You feel loved!</span>")
|
||||
|
||||
/datum/reagent/jestosterone //Formerly known as Nitrogen tungstide hypochlorite before NT fired the chemists for trying to be funny
|
||||
name = "Jestosterone"
|
||||
id = "jestosterone"
|
||||
description = "Jestosterone is an odd chemical compound that induces a variety of annoying side-effects in the average person. It also causes mild intoxication, and is toxic to mimes."
|
||||
color = "#ff00ff" //Fuchsia, pity we can't do rainbow here
|
||||
taste_message = "a funny flavour"
|
||||
|
||||
/datum/reagent/jestosterone/on_new()
|
||||
..()
|
||||
var/mob/living/carbon/C = holder.my_atom
|
||||
if(!istype(C))
|
||||
return
|
||||
var/mind_type = FALSE
|
||||
if(C.mind)
|
||||
if(C.mind.assigned_role == "Clown" || C.mind.assigned_role == SPECIAL_ROLE_HONKSQUAD)
|
||||
mind_type = "Clown"
|
||||
to_chat(C, "<span class='notice'>Whatever that was, it feels great!</span>")
|
||||
else if(C.mind.assigned_role == "Mime")
|
||||
mind_type = "Mime"
|
||||
to_chat(C, "<span class='warning'>You feel nauseous.</span>")
|
||||
C.AdjustDizzy(volume)
|
||||
else
|
||||
to_chat(C, "<span class='warning'>Something doesn't feel right...</span>")
|
||||
C.AdjustDizzy(volume)
|
||||
C.AddComponent(/datum/component/jestosterone, mind_type)
|
||||
C.AddComponent(/datum/component/squeak, null, null, null, null, null, TRUE)
|
||||
|
||||
/datum/reagent/jestosterone/on_mob_life(mob/living/carbon/M)
|
||||
if(!istype(M))
|
||||
return ..()
|
||||
var/update_flags = STATUS_UPDATE_NONE
|
||||
if(prob(10))
|
||||
M.emote("giggle")
|
||||
GET_COMPONENT_FROM(jestosterone_component, /datum/component/jestosterone, M)
|
||||
if(jestosterone_component.mind_type == "Clown")
|
||||
update_flags |= M.adjustBruteLoss(-1.5 * REAGENTS_EFFECT_MULTIPLIER) //Screw those pesky clown beatings!
|
||||
else
|
||||
M.AdjustDizzy(10, 0, 500)
|
||||
M.Druggy(15)
|
||||
if(prob(10))
|
||||
M.EyeBlurry(5)
|
||||
if(prob(6))
|
||||
var/list/clown_message = list("You feel light-headed.",
|
||||
"You can't see straight.",
|
||||
"You feel about as funny as the station clown.",
|
||||
"Bright colours and rainbows cloud your vision.",
|
||||
"Your funny bone aches.",
|
||||
"What was that?!",
|
||||
"You can hear bike horns in the distance.",
|
||||
"You feel like <em>SHOUTING</em>!",
|
||||
"Sinister laughter echoes in your ears.",
|
||||
"Your legs feel like jelly.",
|
||||
"You feel like telling a pun.")
|
||||
to_chat(M, "<span class='warning'>[pick(clown_message)]</span>")
|
||||
if(jestosterone_component.mind_type == "Mime")
|
||||
update_flags |= M.adjustToxLoss(1.5 * REAGENTS_EFFECT_MULTIPLIER)
|
||||
return ..() | update_flags
|
||||
|
||||
/datum/reagent/jestosterone/on_mob_delete(mob/living/M)
|
||||
..()
|
||||
GET_COMPONENT_FROM(remove_fun, /datum/component/jestosterone, M)
|
||||
GET_COMPONENT_FROM(squeaking, /datum/component/squeak, M)
|
||||
remove_fun.Destroy()
|
||||
squeaking.Destroy()
|
||||
|
||||
/datum/reagent/royal_bee_jelly
|
||||
name = "royal bee jelly"
|
||||
|
||||
@@ -290,6 +290,18 @@
|
||||
result_amount = 2
|
||||
mix_message = "The substance gives off a lovely scent!"
|
||||
|
||||
/datum/chemical_reaction/jestosterone
|
||||
name = "Jestosterone"
|
||||
id = "jestosterone"
|
||||
result = "jestosterone"
|
||||
required_reagents = list("blood" = 1, "sodiumchloride" = 1, "banana" = 1, "lube" = 1, "space_drugs" = 1) //Or one freshly-squeezed clown
|
||||
min_temp = 374
|
||||
result_amount = 5
|
||||
mix_message = "The substance quickly shifts colour, cycling from red, to yellow, to green, to blue, and finally settles at a vibrant fuchsia."
|
||||
|
||||
/datum/chemical_reaction/jestosterone/on_reaction(datum/reagents/holder, created_volume)
|
||||
playsound(get_turf(holder.my_atom), 'sound/items/bikehorn.ogg', 50, 1)
|
||||
|
||||
/datum/chemical_reaction/royal_bee_jelly
|
||||
name = "royal bee jelly"
|
||||
id = "royal_bee_jelly"
|
||||
|
||||
@@ -37,4 +37,10 @@
|
||||
/obj/item/reagent_containers/food/pill/patch/nicotine
|
||||
name = "nicotine patch"
|
||||
desc = "Helps temporarily curb the cravings of nicotine dependency."
|
||||
list_reagents = list("nicotine" = 20)
|
||||
list_reagents = list("nicotine" = 20)
|
||||
|
||||
/obj/item/reagent_containers/food/pill/patch/jestosterone
|
||||
name = "jestosterone patch"
|
||||
desc = "Helps with brute injuries if the affected person is a clown, otherwise inflicts various annoying effects."
|
||||
icon_state = "bandaid_clown"
|
||||
list_reagents = list("jestosterone" = 30)
|
||||
|
||||
Reference in New Issue
Block a user