Add new chemicals (#5168)

Adds new drugs:
-Red Nightshade: a drug that induce a berserk-like status, you see only red, can smash windows, stuns go away slower and etc
-Paxazide: a medicine that induces pacifism on the target, like the mutation
-Spectrocybin: a hallucinogenic that has a small chance of giving a glipse of the other hidden to mere mortals, can be found in a mushroom variety

Adds a new secret chem:
-Bottled Lightning: causes a tesla zap when in contact with someone's blood or when splashed on the ground

Also removes some broken/unused plants.
This commit is contained in:
Alberyk
2018-08-30 20:09:08 +02:00
committed by Werner
parent ce28eb8f20
commit e950f6b5fd
24 changed files with 221 additions and 154 deletions
+2
View File
@@ -37,6 +37,8 @@
#define CE_ALCOHOL "alcohol" // Liver filtering
#define CE_ALCOHOL_TOXIC "alcotoxic" // Liver damage
#define CE_SPEEDBOOST "gofast" // Hyperzine
#define CE_BERSERK "berserk"
#define CE_PACIFIED "pacified"
// Chemistry lists.
var/list/tachycardics = list("coffee", "inaprovaline", "hyperzine", "nitroglycerin", "thirteenloko", "nicotine") // Increase heart rate.
+1 -1
View File
@@ -61,7 +61,7 @@ avoid code duplication. This includes items that may sometimes act as a standard
if(M == user && user.a_intent != I_HURT)
return 0
if(user.disabilities & PACIFIST)
if(user.is_pacified())
return 0
/////////////////////////
+43 -1
View File
@@ -109,4 +109,46 @@
var/mob/living/L = target
if(L.fire_stacks)
return 1
return 0
return 0
//Berserk Modifier
//Causes a hulk like effect
/datum/modifier/berserk
var/last_shock_stage = 0
/datum/modifier/berserk/activate()
..()
if(ishuman(target))
var/mob/living/carbon/human/H = target
to_chat(H, "<span class='danger'>An uncontrollable rage overtakes your thoughts!</span>")
H.add_client_color(/datum/client_color/berserk)
last_shock_stage = H.shock_stage
H.shock_stage = 0
H.SetParalysis(0)
H.SetStunned(0)
H.SetWeakened(0)
H.setHalLoss(0)
H.lying = 0
H.update_canmove()
/datum/modifier/berserk/process()
if(..())
if(ishuman(target))
var/mob/living/carbon/human/H = target
H.drowsyness = max(H.drowsyness - 5, 0)
H.AdjustParalysis(-1)
H.AdjustStunned(-1)
H.AdjustWeakened(-1)
H.adjustHalLoss(-1)
/datum/modifier/berserk/deactivate()
..()
if(ishuman(target))
var/mob/living/carbon/human/H = target
to_chat(H, "<span class='danger'>Your rage fades away, your thoughts are clear once more!</span>")
H.remove_client_color(/datum/client_color/berserk)
H.shock_stage = last_shock_stage
+1 -1
View File
@@ -114,7 +114,7 @@
var/stun = stunforce
var/mob/living/L = M
if(user.disabilities & PACIFIST)
if(user.is_pacified())
to_chat(user, "<span class='notice'>You don't want to risk hurting [M]!</span>")
return 0
+3
View File
@@ -193,6 +193,9 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap = 2,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris = 2,
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiadeus = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/destroyingangel = 1,
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/ghostmushroom = 0.5,
/obj/item/seeds/ambrosiavulgarisseed = 2,
/obj/item/seeds/ambrosiadeusseed = 1,
/obj/item/clothing/mask/gas/voice = 1,
+1 -1
View File
@@ -184,7 +184,7 @@
if (istype(usr,/mob/living/carbon/human))
var/mob/living/carbon/human/H = usr
if(H.species.can_shred(H))
if(H.species.can_shred(H) || (H.is_berserk()))
attack_generic(H,25)
return
+4
View File
@@ -68,4 +68,8 @@
/datum/client_color/tritanopia
client_color = list(0.95,0.07,0, 0,0.44,0.52, 0.05,0.49,0.48)
priority = 100
/datum/client_color/berserk
client_color = "#AF111C"
priority = 100
-8
View File
@@ -321,14 +321,6 @@
seed.do_thorns(H,src)
seed.do_sting(H,src,pick("r_hand","l_hand"))
// Predefined types for placing on the map.
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap
plantname = "libertycap"
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris
plantname = "ambrosia"
/obj/item/weapon/reagent_containers/food/snacks/fruit_slice
name = "fruit slice"
desc = "A slice of some tasty fruit."
+21 -1
View File
@@ -1,3 +1,23 @@
// Predefined types for placing on the map.
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom
plantname = "amanita"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap
plantname = "libertycap"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/glowshroom
plantname = "glowshroom"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi
plantname = "reishi"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/destroyingangel
plantname = "destroyingangel"
/obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/ghostmushroom
plantname = "ghostmushroom"
/obj/item/weapon/reagent_containers/food/snacks/grown/ambrosiavulgaris
plantname = "ambrosia"
@@ -6,6 +26,6 @@
/obj/item/weapon/reagent_containers/food/snacks/grown/kois
plantname = "koisspore"
/obj/item/weapon/reagent_containers/food/snacks/grown/banana
plantname = "banana"
+21 -106
View File
@@ -497,7 +497,7 @@
name = "libertycap"
seed_name = "liberty cap"
display_name = "liberty cap mushrooms"
mutants = null
mutants = list("ghostmushroom")
chems = list("nutriment" = list(1), "stoxin" = list(3,3), "space_drugs" = list(1,25))
/datum/seed/mushroom/hallucinogenic/strong/setup_traits()
@@ -614,6 +614,26 @@
set_trait(TRAIT_PLANT_COLOUR,"#E6E6E6")
set_trait(TRAIT_PLANT_ICON,"mushroom10")
/datum/seed/mushroom/ghost
name = "ghostmushroom"
seed_name = "ghost mushroom"
display_name = "ghost mushroom"
mutants = null
chems = list("spectrocybin" = list(5,15))
/datum/seed/mushroom/ghost/setup_traits()
..()
set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,4)
set_trait(TRAIT_YIELD,2)
set_trait(TRAIT_POTENCY,8)
set_trait(TRAIT_BIOLUM,1)
set_trait(TRAIT_BIOLUM_COLOUR,"#64B8C9")
set_trait(TRAIT_PRODUCT_ICON,"mushroom8")
set_trait(TRAIT_PRODUCT_COLOUR,"#64B8C9")
set_trait(TRAIT_PLANT_COLOUR,"#64B8C9")
set_trait(TRAIT_PLANT_ICON,"mushroom3")
//Flowers/varieties
/datum/seed/flower
name = "harebells"
@@ -1165,111 +1185,6 @@
set_trait(TRAIT_IDEAL_HEAT, 283)
set_trait(TRAIT_NUTRIENT_CONSUMPTION, 0.15)
/datum/seed/telriis
name = "telriis"
seed_name = "telriis"
display_name = "telriis grass"
chems = list("pwine" = list(1,5), "nutriment" = list(1,6))
/datum/seed/telriis/setup_traits()
..()
set_trait(TRAIT_PLANT_ICON,"telriis")
set_trait(TRAIT_ENDURANCE,50)
set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,5)
set_trait(TRAIT_YIELD,4)
set_trait(TRAIT_POTENCY,5)
/datum/seed/thaadra
name = "thaadra"
seed_name = "thaa'dra"
display_name = "thaa'dra lichen"
chems = list("frostoil" = list(1,5),"nutriment" = list(1,5))
/datum/seed/thaadra/setup_traits()
..()
set_trait(TRAIT_PLANT_ICON,"thaadra")
set_trait(TRAIT_ENDURANCE,10)
set_trait(TRAIT_MATURATION,5)
set_trait(TRAIT_PRODUCTION,9)
set_trait(TRAIT_YIELD,2)
set_trait(TRAIT_POTENCY,5)
/datum/seed/jurlmah
name = "jurlmah"
seed_name = "jurl'mah"
display_name = "jurl'mah reeds"
chems = list("serotrotium" = list(1,5),"nutriment" = list(1,5))
/datum/seed/jurlmah/setup_traits()
..()
set_trait(TRAIT_PLANT_ICON,"jurlmah")
set_trait(TRAIT_ENDURANCE,12)
set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_PRODUCTION,9)
set_trait(TRAIT_YIELD,3)
set_trait(TRAIT_POTENCY,10)
/datum/seed/amauri
name = "amauri"
seed_name = "amauri"
display_name = "amauri plant"
chems = list("zombiepowder" = list(1,10),"condensedcapsaicin" = list(1,5),"nutriment" = list(1,5))
/datum/seed/amauri/setup_traits()
..()
set_trait(TRAIT_PLANT_ICON,"amauri")
set_trait(TRAIT_ENDURANCE,10)
set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_PRODUCTION,9)
set_trait(TRAIT_YIELD,4)
set_trait(TRAIT_POTENCY,10)
/datum/seed/gelthi
name = "gelthi"
seed_name = "gelthi"
display_name = "gelthi plant"
chems = list("stoxin" = list(1,5),"capsaicin" = list(1,5),"nutriment" = list(1,5))
/datum/seed/gelthi/setup_traits()
..()
set_trait(TRAIT_PLANT_ICON,"gelthi")
set_trait(TRAIT_ENDURANCE,15)
set_trait(TRAIT_MATURATION,6)
set_trait(TRAIT_PRODUCTION,6)
set_trait(TRAIT_YIELD,2)
set_trait(TRAIT_POTENCY,1)
/datum/seed/vale
name = "vale"
seed_name = "vale"
display_name = "vale bush"
chems = list("paracetamol" = list(1,5),"dexalin" = list(1,2),"nutriment"= list(1,5))
/datum/seed/vale/setup_traits()
..()
set_trait(TRAIT_PLANT_ICON,"vale")
set_trait(TRAIT_ENDURANCE,15)
set_trait(TRAIT_MATURATION,8)
set_trait(TRAIT_PRODUCTION,10)
set_trait(TRAIT_YIELD,3)
set_trait(TRAIT_POTENCY,3)
/datum/seed/surik
name = "surik"
seed_name = "surik"
display_name = "surik vine"
chems = list("impedrezene" = list(1,3),"synaptizine" = list(1,2),"nutriment" = list(1,5))
/datum/seed/surik/setup_traits()
..()
set_trait(TRAIT_PLANT_ICON,"surik")
set_trait(TRAIT_ENDURANCE,18)
set_trait(TRAIT_MATURATION,7)
set_trait(TRAIT_PRODUCTION,7)
set_trait(TRAIT_YIELD,3)
set_trait(TRAIT_POTENCY,3)
// Alien weeds.
/datum/seed/xenomorph
name = "xenomorph"
+3 -21
View File
@@ -261,27 +261,6 @@ var/global/list/plant_seed_sprites = list()
/obj/item/seeds/kudzuseed
seed_type = "kudzu"
/obj/item/seeds/jurlmah
seed_type = "jurlmah"
/obj/item/seeds/amauri
seed_type = "amauri"
/obj/item/seeds/gelthi
seed_type = "gelthi"
/obj/item/seeds/vale
seed_type = "vale"
/obj/item/seeds/surik
seed_type = "surik"
/obj/item/seeds/telriis
seed_type = "telriis"
/obj/item/seeds/thaadra
seed_type = "thaadra"
/obj/item/seeds/koisspore
seed_type = "koisspore"
@@ -308,3 +287,6 @@ var/global/list/plant_seed_sprites = list()
/obj/item/seeds/onionseed
seed_type = "onion"
/obj/item/seeds/ghostmushroomseed
seed_type = "ghostmushroom"
+2 -2
View File
@@ -294,7 +294,7 @@ var/list/slot_equipment_priority = list( \
var/turf/end_T = get_turf(target)
if(start_T && end_T)
var/mob/M = item
if(disabilities & PACIFIST)
if(is_pacified())
to_chat(src, "<span class='notice'>You gently let go of [M].</span>")
src.remove_from_mob(item)
item.loc = src.loc
@@ -314,7 +314,7 @@ var/list/slot_equipment_priority = list( \
src.remove_from_mob(item)
item.loc = src.loc
if(disabilities & PACIFIST)
if(is_pacified())
to_chat(src, "<span class='notice'>You set [item] down gently on the ground.</span>")
return
+9
View File
@@ -412,3 +412,12 @@
if(!species)
return null
return species.default_language ? all_languages[species.default_language] : null
/mob/living/carbon/is_berserk()
return (CE_BERSERK in chem_effects)
/mob/living/carbon/is_pacified()
if(disabilities & PACIFIST)
return TRUE
if(CE_PACIFIED in chem_effects)
return TRUE
@@ -827,14 +827,22 @@
return 1
/mob/living/carbon/human/IsAdvancedToolUser(var/silent)
if(is_berserk())
if(!silent)
src << "<span class='warning'>You are in no state to use that!</span>"
return 0
if(!species.has_fine_manipulation)
if(!silent)
src << "<span class='warning'>You don't have the dexterity to use that!</span>"
return 0
if(disabilities & MONKEYLIKE)
if(!silent)
src << "<span class='warning'>You don't have the dexterity to use that!</span>"
return 0
return 1
/mob/living/carbon/human/abiotic(var/full_body = 0)
@@ -146,7 +146,7 @@
if(I_GRAB)
if(M == src || anchored)
return 0
if(M.disabilities & PACIFIST)
if(M.is_pacified())
to_chat(M, "<span class='notice'>You don't want to risk hurting [src]!</span>")
return 0
@@ -184,7 +184,7 @@
return 1
if(I_HURT)
if(M.disabilities & PACIFIST)
if(M.is_pacified())
to_chat(M, "<span class='notice'>You don't want to risk hurting [src]!</span>")
return 0
@@ -331,7 +331,7 @@
apply_damage(real_damage, hit_dam_type, hit_zone, armour, sharp=is_sharp, edge=is_edge)
if(I_DISARM)
if(M.disabilities & PACIFIST)
if(M.is_pacified())
to_chat(M, "<span class='notice'>You don't want to risk hurting [src]!</span>")
return 0
@@ -503,7 +503,7 @@ emp_act
/mob/living/carbon/human/proc/grabbedby(mob/living/carbon/human/user,var/supress_message = 0)
if(user == src || anchored)
return 0
if(user.disabilities & PACIFIST)
if(user.is_pacified())
to_chat(user, "<span class='notice'>You don't want to risk hurting [src]!</span>")
return 0
+1 -1
View File
@@ -129,7 +129,7 @@
// deafness heals slowly over time, unless ear_damage is over 100
if(ear_damage < 100)
adjustEarDamage(-0.05,-1)
if(disabilities & PACIFIST && a_intent == I_HURT)
if((is_pacified()) && a_intent == I_HURT)
to_chat(src, "<span class='notice'>You don't feel like harming anybody.</span>")
a_intent_change(I_HELP)
+6
View File
@@ -164,6 +164,12 @@ proc/getsensorlevel(A)
else
return mind && (mind.assigned_role == "Space Wizard" || mind.assigned_role == "Apprentice")
/mob/proc/is_berserk()
return FALSE
/mob/proc/is_pacified()
return FALSE
/*
Miss Chance
*/
+1 -1
View File
@@ -126,7 +126,7 @@
if(!user.IsAdvancedToolUser())
return 0
if(user.disabilities & PACIFIST)
if(user.is_pacified())
to_chat(user, "<span class='notice'>You don't want to risk harming anyone!</span>")
return 0
@@ -1153,3 +1153,14 @@
M.adjustOxyLoss(-rand(15,20))
M.visible_message("<span class='danger'>\The [M] shudders violently!</span>")
M.stat = 0
/datum/reagent/pacifier
name = "Paxazide"
id = "paxazide"
description = "A mind altering chemical compound capable of suppressing violent tendencies."
reagent_state = LIQUID
color = "#1ca9c9"
taste_description = "numbness"
/datum/reagent/pacifier/affect_blood(var/mob/living/carbon/H, var/alien, var/removed)
H.add_chemical_effect(CE_PACIFIED, 1)
@@ -616,4 +616,20 @@
var/obj/item/organ/brain/B = H.internal_organs_by_name["brain"]
if(!H.has_trauma_type(/datum/brain_trauma/special/love))
B.gain_trauma(/datum/brain_trauma/special/love,FALSE)
B.gain_trauma(/datum/brain_trauma/special/love,FALSE)
/datum/reagent/bottle_lightning
name = "Bottled Lightning"
id = "lightning"
description = "A mysterious compound capable of producing electrical discharges."
reagent_state = LIQUID
color = "#70838A"
taste_description = "metal"
/datum/reagent/bottle_lightning/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(prob(25))
tesla_zap(M, 6, 1500)
/datum/reagent/bottle_lightning/touch_turf(var/turf/T)
if(volume >= 5)
tesla_zap(T, 6, 1500)
@@ -733,3 +733,47 @@
data = 0
taste_description = "quality tobacco"
strength = 0.002
/datum/reagent/toxin/berserk
name = "Red Nightshade"
id = "berserk"
description = "An illegal chemical enhancer, may cause aggressive and violent behavior."
reagent_state = LIQUID
color = "#AF111C"
strength = 5
taste_description = "bitterness"
metabolism = REM * 2
unaffected_species = IS_DIONA | IS_MACHINE
var/datum/modifier/modifier
/datum/reagent/toxin/berserk/affect_blood(var/mob/living/carbon/M, var/removed)
..()
if(!modifier)
modifier = M.add_modifier(/datum/modifier/berserk, MODIFIER_REAGENT, src, _strength = 1, override = MODIFIER_OVERRIDE_STRENGTHEN)
M.make_jittery(20)
M.add_chemical_effect(CE_BERSERK, 1)
if(M.a_intent != I_HURT)
M.a_intent_change(I_HURT)
if(prob(20))
M.adjustBrainLoss(5 * removed)
/datum/reagent/toxin/berserk/Destroy()
QDEL_NULL(modifier)
return ..()
/datum/reagent/toxin/spectrocybin
name = "Spectrocybin"
id = "spectrocybin"
description = "A hallucinogen chemical, rumored to be used by mystics and religious figures in their rituals."
reagent_state = LIQUID
color = "#800080"
strength = 5
taste_description = "acid"
metabolism = REM
unaffected_species = IS_DIONA | IS_MACHINE
/datum/reagent/toxin/spectrocybin/affect_blood(var/mob/living/carbon/M, var/removed)
..()
M.hallucination = max(M.hallucination, 50)
if(prob(10))
M.see_invisible = SEE_INVISIBLE_CULT
+12 -5
View File
@@ -638,11 +638,18 @@
required_reagents = list("mindbreaker" = 1, "synaptizine" = 1, "phoron" = 0.1)
result_amount = 2
/datum/chemical_reaction/feartoxin
name = "Feartoxin"
id = "feartoxin"
result = "feartoxin"
required_reagents = list("mindbreaker" = 1, "synaptizine" = 1, "space_drugs" = 1)
/datum/chemical_reaction/pacifier
name = "Paxazide"
id = "paxazide"
result = "paxazide"
required_reagents = list("truthserum" = 1, "sertraline" = 1)
result_amount = 1
/datum/chemical_reaction/berserk
name = "Red Nightshade"
id = "berserk"
result = "berserk"
required_reagents = list("psilocybin" = 1, "moonshine" = 1)
result_amount = 1
/* Solidification */
+6
View File
@@ -0,0 +1,6 @@
author: Alberyk
delete-after: True
changes:
- rscadd: "Added new chemicals."