Merge pull request #7742 from deathride58/yallnwahsdontevensmokeweed

Y'all n'wahs aint even smoke - adds skooma
This commit is contained in:
nik707
2018-11-20 12:14:09 -06:00
committed by GitHub
6 changed files with 116 additions and 13 deletions
+12 -13
View File
@@ -292,19 +292,18 @@
var/datum/reagent/R = addiction
if(C && R)
R.addiction_stage++
switch(R.addiction_stage)
if(1 to 10)
need_mob_update += R.addiction_act_stage1(C)
if(10 to 20)
need_mob_update += R.addiction_act_stage2(C)
if(20 to 30)
need_mob_update += R.addiction_act_stage3(C)
if(30 to 40)
need_mob_update += R.addiction_act_stage4(C)
if(40 to INFINITY)
to_chat(C, "<span class='notice'>You feel like you've gotten over your need for [R.name].</span>")
SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.id]_addiction")
cached_addictions.Remove(R)
if(1 <= R.addiction_stage && R.addiction_stage <= R.addiction_stage1_end)
need_mob_update += R.addiction_act_stage1(C)
else if(R.addiction_stage1_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage2_end)
need_mob_update += R.addiction_act_stage2(C)
else if(R.addiction_stage2_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage3_end)
need_mob_update += R.addiction_act_stage3(C)
else if(R.addiction_stage3_end <= R.addiction_stage && R.addiction_stage <= R.addiction_stage4_end)
need_mob_update += R.addiction_act_stage4(C)
else if(R.addiction_stage4_end <= R.addiction_stage)
to_chat(C, "<span class='notice'>You feel like you've gotten over your need for [R.name].</span>")
SEND_SIGNAL(C, COMSIG_CLEAR_MOOD_EVENT, "[R.id]_addiction")
cached_addictions.Remove(R)
addiction_tick++
if(C && need_mob_update) //some of the metabolized reagents had effects on the mob that requires some updates.
C.updatehealth()
@@ -313,3 +313,9 @@
var/amount = beaker.reagents.get_reagent_amount("eggyolk")
beaker.reagents.remove_reagent("eggyolk", amount)
beaker.reagents.add_reagent("mayonnaise", amount)
//Moonsugar for skooma
if(beaker.reagents.has_reagent("sugar") && beaker.reagents.has_reagent("moonshine"))
var/amount = min(beaker.reagents.get_reagent_amount("sugar"), beaker.reagents.get_reagent_amount("moonshine"))
beaker.reagents.remove_reagent("sugar", amount)
beaker.reagents.remove_reagent("moonshine", amount)
beaker.reagents.add_reagent("moonsugar", amount*2)
@@ -27,6 +27,10 @@
var/overdose_threshold = 0
var/addiction_threshold = 0
var/addiction_stage = 0
var/addiction_stage1_end = 10
var/addiction_stage2_end = 20
var/addiction_stage3_end = 30
var/addiction_stage4_end = 40
var/overdosed = 0 // You fucked up and this is now triggering its overdose effects, purge that shit quick.
var/self_consuming = FALSE
@@ -355,3 +355,75 @@
M.adjustOxyLoss(1, 0)
..()
. = 1
/datum/reagent/drug/skooma
name = "Skooma"
id = "skooma"
description = "An ancient, highly-addictive drug of long-forgotten times. It greatly improves the user's speed and strength, but heavily impedes their intelligence and agility."
reagent_state = LIQUID
color = "#F3E0F9"
taste_description = "ancient, unfulfilled prophecies"
addiction_threshold = 1
addiction_stage3_end = 40
addiction_stage4_end = 240
/datum/reagent/drug/skooma/on_mob_add(mob/living/L)
. = ..()
L.add_trait(TRAIT_GOTTAGOFAST, id)
L.next_move_modifier *= 2
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(H.physiology)
H.physiology.stamina_mod *= 0.5
if(H.dna && H.dna.species)
H.dna.species.punchdamagehigh *= 5
/datum/reagent/drug/skooma/on_mob_delete(mob/living/L)
. = ..()
L.remove_trait(TRAIT_GOTTAGOFAST, id)
L.next_move_modifier *= 0.5
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(H.physiology)
H.physiology.stamina_mod *= 2
if(H.dna && H.dna.species)
H.dna.species.punchdamagehigh *= 0.2
/datum/reagent/drug/skooma/on_mob_life(mob/living/carbon/M)
M.adjustBrainLoss(1*REM)
M.adjustToxLoss(1*REM)
if(prob(10))
M.adjust_blurriness(2)
..()
. = 1
/datum/reagent/drug/skooma/addiction_act_stage1(mob/living/M)
M.Jitter(10)
if(prob(50))
M.adjust_blurriness(2)
..()
/datum/reagent/drug/skooma/addiction_act_stage2(mob/living/M)
M.Jitter(20)
M.Dizzy(10)
M.adjust_blurriness(2)
..()
/datum/reagent/drug/skooma/addiction_act_stage3(mob/living/M)
M.Jitter(50)
M.Dizzy(20)
M.adjust_blurriness(4)
if(prob(20))
M.emote(pick("twitch","drool","moan"))
..()
/datum/reagent/drug/skooma/addiction_act_stage4(mob/living/M)
M.Jitter(50)
M.Dizzy(50)
M.adjust_blurriness(10)
if(prob(50)) //This proc will be called about 200 times and the adjustbrainloss() below only has to be called 40 times to kill. This will make surviving skooma addiction pretty rare without mannitol usage.
M.adjustBrainLoss(5)
if(prob(40))
M.emote(pick("twitch","drool","moan"))
..()
@@ -1847,3 +1847,10 @@
/datum/reagent/tranquility/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
L.ForceContractDisease(new /datum/disease/transformation/gondola(), FALSE, TRUE)
/datum/reagent/moonsugar
name = "Moonsugar"
id = "moonsugar"
description = "The primary precursor for an ancient feline delicacy known as skooma. While it has no notable effects on it's own, mixing it with morphine in a chilled container may yield interesting results."
color = "#FAEAFF"
taste_description = "synthetic catnip"
@@ -40,3 +40,18 @@
id = "aranesp"
results = list("aranesp" = 3)
required_reagents = list("epinephrine" = 1, "atropine" = 1, "morphine" = 1)
/datum/chemical_reaction/skooma
name = "skooma"
id = "skooma"
results = list("skooma" = 2, "moonshine" = 4, "sugar" = 4)
required_temp = 280
is_cold_recipe = TRUE
required_reagents = list("moonsugar" = 10, "morphine" = 5)
/datum/chemical_reaction/skoomarevert
name = "skoomarevert"
id = "skoomarevert"
results = list("moonsugar" = 1, "morphine" = 2.5)
required_temp = 315 //a little above normal body temperature
required_reagents = list("skooma" = 1)