diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm index 4c076edd79c..d833919a826 100644 --- a/code/_onclick/item_attack.dm +++ b/code/_onclick/item_attack.dm @@ -131,6 +131,8 @@ avoid code duplication. This includes items that may sometimes act as a standard var/power = force if(HULK in user.mutations) power *= 2 + if(user.is_berserk()) + power *= 1.5 if(ishuman(user)) var/mob/living/carbon/human/X = user if(ishuman(target)) diff --git a/code/datums/uplink/medical.dm b/code/datums/uplink/medical.dm index 9318d2d8ec2..958baf19737 100644 --- a/code/datums/uplink/medical.dm +++ b/code/datums/uplink/medical.dm @@ -40,6 +40,12 @@ item_cost = 1 path = /obj/item/storage/box/syndie_kit/stimulants +/datum/uplink_item/item/medical/berserk_injectors + name = "Box of Berserk Injectors" + item_cost = 2 + path = /obj/item/storage/box/syndie_kit/berserk_injectors + desc = "Comes with 2x autoinjectors filled with Red Nightshade - used to induce a berserk state lasting ~2.5 minutes per injector. You cannot use advanced tools (guns/computer consoles/etc.) while berserk. Using both injectors will increase time berserk, but will lead to liver failure." + /datum/uplink_item/item/medical/sideeffectbegone name = "Box of Sideeffect-Be-Gone Injectors" item_cost = 1 diff --git a/code/datums/uplink/stealthy and inconspicuous weapons.dm b/code/datums/uplink/stealthy and inconspicuous weapons.dm index bb2dfc49bd9..6e0584b3853 100644 --- a/code/datums/uplink/stealthy and inconspicuous weapons.dm +++ b/code/datums/uplink/stealthy and inconspicuous weapons.dm @@ -15,7 +15,8 @@ path = /obj/item/storage/box/syndie_kit/cigarette /datum/uplink_item/item/stealthy_weapons/random_toxin - name = "Random Toxin - Beaker" + name = "Random Toxins Kit" + desc = "A kit that contains 3 vials containing random toxins. Comes with a syringe!" item_cost = 1 path = /obj/item/storage/box/syndie_kit/toxin diff --git a/code/game/objects/items/contraband.dm b/code/game/objects/items/contraband.dm index ff4821bdae5..c4123af4a0f 100644 --- a/code/game/objects/items/contraband.dm +++ b/code/game/objects/items/contraband.dm @@ -34,6 +34,7 @@ list(/decl/reagent/toxin/dextrotoxin = 10) = 1, list(/decl/reagent/toxin/spectrocybin = 15) = 1, list(/decl/reagent/joy = 10, /decl/reagent/water = 20) = 1, + list(/decl/reagent/toxin/berserk = 10) = 1, list(/decl/reagent/ammonia = 15) = 3) /obj/item/reagent_containers/glass/beaker/vial/random/Initialize() diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm index 9c54275c9b1..606842645a1 100644 --- a/code/game/objects/items/weapons/storage/uplink_kits.dm +++ b/code/game/objects/items/weapons/storage/uplink_kits.dm @@ -179,7 +179,7 @@ /obj/item/storage/box/syndie_kit/toxin name = "toxin kit" desc = "An apple will not be enough to keep the doctor away after this." - starts_with = list(/obj/item/reagent_containers/glass/beaker/vial/random/toxin = 1, /obj/item/reagent_containers/syringe = 1) + starts_with = list(/obj/item/reagent_containers/glass/beaker/vial/random/toxin = 3, /obj/item/reagent_containers/syringe = 1) /obj/item/storage/box/syndie_kit/cigarette name = "tricky smokes" @@ -261,3 +261,10 @@ starts_with = list( /obj/item/reagent_containers/hypospray/autoinjector/sideeffectbgone = 4 ) + +/obj/item/storage/box/syndie_kit/berserk_injectors + name = "box of berserk injectors" + desc = "Comes with 2x autoinjectors filled with Red Nightshade used to induce a berserk state." + starts_with = list( + /obj/item/reagent_containers/hypospray/autoinjector/berserk = 2 + ) diff --git a/code/modules/hydroponics/seed.dm b/code/modules/hydroponics/seed.dm index 8f981cd0d9c..6a10ef4be75 100644 --- a/code/modules/hydroponics/seed.dm +++ b/code/modules/hydroponics/seed.dm @@ -457,7 +457,8 @@ /decl/reagent/water, /decl/reagent/woodpulp, /decl/reagent/ambrosia_extract, - /decl/reagent/skrell_nootropic + /decl/reagent/skrell_nootropic, + /decl/reagent/toxin/berserk ) for(var/x=1;x<=additional_chems;x++) diff --git a/code/modules/martial_arts/martial.dm b/code/modules/martial_arts/martial.dm index fcbed4a2f4d..899ad0fb36b 100644 --- a/code/modules/martial_arts/martial.dm +++ b/code/modules/martial_arts/martial.dm @@ -106,6 +106,9 @@ if(HULK in A.mutations) real_damage *= 2 // Hulks do twice the damage rand_damage *= 2 + if(A.is_berserk()) + real_damage *= 1.5 // Nightshade increases damage by 50% + rand_damage *= 1.5 real_damage = max(1, real_damage) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index f335705449b..b70a8e7df87 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -229,6 +229,10 @@ else if(jitteriness >= 100) msg += "[get_pronoun("He")] [get_pronoun("is")] twitching ever so slightly.\n" + //Red Nightshade + if(is_berserk()) + msg += "[get_pronoun("He")] [get_pronoun("has")] engorged veins which appear a vibrant red.\n" + //splints for(var/organ in list(BP_L_LEG,BP_R_LEG,BP_L_ARM,BP_R_ARM,BP_L_HAND,BP_R_HAND,BP_R_FOOT,BP_L_FOOT)) var/obj/item/organ/external/o = get_organ(organ) diff --git a/code/modules/mob/living/carbon/human/human_attackhand.dm b/code/modules/mob/living/carbon/human/human_attackhand.dm index 7258e541299..733e69fe803 100644 --- a/code/modules/mob/living/carbon/human/human_attackhand.dm +++ b/code/modules/mob/living/carbon/human/human_attackhand.dm @@ -84,7 +84,7 @@ return 0 var/obj/item/organ/external/affecting = get_organ(ran_zone(H.zone_sel.selecting)) - if(HULK in H.mutations) + if(HULK in H.mutations || H.is_berserk()) damage += 5 playsound(loc, /decl/sound_category/punch_sound, 25, 1, -1) @@ -267,6 +267,9 @@ if(HULK in H.mutations) real_damage *= 2 // Hulks do twice the damage rand_damage *= 2 + if(H.is_berserk()) + real_damage *= 1.5 // Nightshade increases damage by 50% + rand_damage *= 1.5 real_damage = max(1, real_damage) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index 3ad676f3aab..da6d6a472dd 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -648,7 +648,7 @@ taste_mult = 2 /mob/living/carbon/human/proc/berserk_start() - to_chat(src, SPAN_DANGER("An uncontrollable rage overtakes your thoughts!")) + to_chat(src, SPAN_DANGER("An uncontrollable rage courses through your body and overtakes your thoughts - your blood begins to boil with fury!")) add_client_color(/datum/client_color/berserk) shock_stage = 0 SetParalysis(0) @@ -666,17 +666,18 @@ adjustHalLoss(-1) /mob/living/carbon/human/proc/berserk_stop() - to_chat(src, SPAN_DANGER("Your rage fades away, your thoughts are clear once more!")) + to_chat(src, SPAN_DANGER("Your rage fades away and the boiling sensation subsides, your thoughts are clear once more.")) remove_client_color(/datum/client_color/berserk) /decl/reagent/toxin/berserk name = "Red Nightshade" - description = "An illegal combat performance enhancer originating from the criminal syndicates of Mars. The drug stimulates regions of the brain responsible for violence and rage, inducing a feral, berserk state in users." + description = "An illegal combat performance enhancer originating from the criminal syndicates of Mars. The drug stimulates regions of the brain responsible for violence and rage, inducing a feral, berserk state in users. It is incredibly hard on the liver." reagent_state = LIQUID color = "#AF111C" - strength = 5 - taste_description = "bitterness" - metabolism = REM * 2 + strength = 3 + overdose = 10 + taste_description = "popping candy" + metabolism = REM*0.3 //10u = ~5 minutes of being berserk. unaffected_species = IS_DIONA | IS_MACHINE /decl/reagent/toxin/berserk/initial_effect(var/mob/living/carbon/human/H, var/alien, var/holder) @@ -698,9 +699,14 @@ M.add_chemical_effect(CE_BERSERK, 1) if(M.a_intent != I_HURT) M.a_intent_change(I_HURT) - var/obj/item/organ/internal/heart = M.internal_organs_by_name[BP_HEART] - if(heart) - M.add_chemical_effect(CE_CARDIOTOXIC, removed * 0.020) + if(prob(3)) + to_chat(M, SPAN_WARNING(pick("Your blood boils with rage!", "A monster stirs within you - let it out.", "You feel an overwhelming sense of rage!", "You cannot contain your anger!", "You struggle to relax - a fury stirs within you.", "You feel an electric sensation course through your body!"))) + if(prob(5)) + M.emote(pick("twitch_v", "grunt")) + +/decl/reagent/toxin/berserk/overdose(var/mob/living/carbon/M, var/datum/reagents/holder) + if(prob(25)) + M.add_chemical_effect(CE_CARDIOTOXIC, 1) /decl/reagent/toxin/spectrocybin name = "Spectrocybin" diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 5413af640be..d9beafb0938 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -754,7 +754,7 @@ name = "Red Nightshade" id = "berserk" result = /decl/reagent/toxin/berserk - required_reagents = list(/decl/reagent/psilocybin = 1, /decl/reagent/alcohol/moonshine = 1) + required_reagents = list(/decl/reagent/toxin/stimm = 1, /decl/reagent/synaptizine = 1, /decl/reagent/toxin/phoron = 0.1) result_amount = 1 /datum/chemical_reaction/joy diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 7ae82b02646..fe0fe58aa97 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -243,6 +243,14 @@ reagents_to_add = list(/decl/reagent/tricordrazine = 15, /decl/reagent/inaprovaline = 5, /decl/reagent/dexalin/plus = 5, /decl/reagent/oxycomorphine = 3, /decl/reagent/synaptizine = 2, /decl/reagent/mental/corophenidate = 5) +/obj/item/reagent_containers/hypospray/autoinjector/berserk + name_label = "berserk injector" + desc = "An injector containing Red Nightshade. Used before fights to induce a berserk state." + volume = 5 + amount_per_transfer_from_this = 5 + + reagents_to_add = list(/decl/reagent/toxin/berserk = 5) + /obj/item/reagent_containers/hypospray/autoinjector/trauma name = "trauma hypo-injector" desc = "A special hypospray made to combat most forms of physical trauma." diff --git a/html/changelogs/rednightshade-stuff.yml b/html/changelogs/rednightshade-stuff.yml new file mode 100644 index 00000000000..882258d568e --- /dev/null +++ b/html/changelogs/rednightshade-stuff.yml @@ -0,0 +1,50 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +# admin +# backend +# security +# refactor +################################# + +# Your name. +author: kermit + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Red Nightshade induced berserk state now increases your melee damage by 50%." + - tweak: "Red Nightshade's metabolisation speed has been decreased, so the berserk state lasts a lot longer. This also prevents all the toxins immediately destroying your liver in 30 seconds." + - rscadd: "An examine message makes it obvious when someone is using Nightshade, in addition to the jitters already present." + - rscadd: "Adds flavour messages which appear when using Red Nightshhade." + - tweak: "Moves Nightshade's cardiotoxicity to OD only. The liver damage will still be severe regardless of ODing." + - tweak: "Changes Nightshade's recipe to something more sensical and in-line with it's effects (now 1u Stimm, 1u Synaptizine, 0.1u Phoron)." + - rscadd: "Adds Red Nightshade to the Random Toxin Kit uplink purchase, maintenance contraband spawn, and xenobotany/L7 vines biohazard random chemicals pool." + - rscadd: "Adds a Box of Berserk Injectors to the Uplink for 2 TC, containing 2 doses of Red Nightshade lasting 2.5 minutes each." + - tweak: "The Random Toxins Kit comes with 3 random toxins instead of just the 1." +