diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm index 9d214b2d480..674cb41517f 100644 --- a/code/game/objects/items/devices/radio/headset.dm +++ b/code/game/objects/items/devices/radio/headset.dm @@ -15,7 +15,7 @@ var/obj/item/device/encryptionkey/keyslot2 = null maxf = 1489 - var/ks1type = /obj/item/device/encryptionkey + var/ks1type = null var/ks2type = null /obj/item/device/radio/headset/New() @@ -53,7 +53,7 @@ if(H.l_ear == src || H.r_ear == src) return ..(freq, level) return -1 - + /obj/item/device/radio/headset/alt name = "bowman headset" desc = "An updated, modular intercom that fits over the head. Takes encryption keys. Protects ears from flashbangs." @@ -77,7 +77,7 @@ /obj/item/device/radio/headset/binary origin_tech = "syndicate=3" ks1type = /obj/item/device/encryptionkey/binary - + /obj/item/device/radio/headset/headset_sec name = "security radio headset" desc = "This is used by your elite security force." @@ -238,7 +238,7 @@ icon_state = "com_headset" item_state = "headset" ks2type = /obj/item/device/encryptionkey/heads/blueshield - + /obj/item/device/radio/headset/heads/blueshield/alt name = "\proper blueshield's bowman headset" desc = "The headset of the Blueshield. Protects ears from flashbangs." @@ -253,7 +253,7 @@ item_state = "headset" freerange = 1 ks2type = /obj/item/device/encryptionkey/ert - + /obj/item/device/radio/headset/ert/alt name = "\proper emergency response team's bowman headset" desc = "The headset of the boss. Protects ears from flashbangs." @@ -395,4 +395,3 @@ radio_text += ", " radio_desc = radio_text - \ No newline at end of file diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index f7971852067..ae57669c261 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -112,7 +112,7 @@ new /obj/item/clothing/glasses/sunglasses/sechud(src) new /obj/item/weapon/storage/lockbox/loyalty(src) new /obj/item/weapon/storage/box/flashbangs(src) - new /obj/item/clothing/mask/gas/sechailer/hos(src) + new /obj/item/clothing/mask/gas/sechailer/swat(src) new /obj/item/weapon/shield/riot/tele(src) new /obj/item/weapon/melee/baton/loaded(src) new /obj/item/weapon/storage/belt/security(src) @@ -148,7 +148,7 @@ new /obj/item/clothing/under/rank/warden(src) new /obj/item/clothing/under/rank/warden/formal(src) new /obj/item/clothing/glasses/sunglasses/sechud(src) - new /obj/item/clothing/mask/gas/sechailer/warden(src) + new /obj/item/clothing/mask/gas/sechailer(src) new /obj/item/taperoll/police(src) new /obj/item/weapon/storage/box/zipties(src) new /obj/item/weapon/storage/box/flashbangs(src) diff --git a/code/modules/admin/verbs/striketeam.dm b/code/modules/admin/verbs/striketeam.dm index 3218678712c..0c482941239 100644 --- a/code/modules/admin/verbs/striketeam.dm +++ b/code/modules/admin/verbs/striketeam.dm @@ -133,9 +133,9 @@ var/global/sent_strike_team = 0 equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(src), slot_w_uniform) equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/advance(src), slot_shoes) equip_to_slot_or_del(new /obj/item/clothing/suit/space/deathsquad(src), slot_wear_suit) - equip_to_slot_or_del(new /obj/item/clothing/gloves/swat(src), slot_gloves) + equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(src), slot_gloves) equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/deathsquad(src), slot_head) - equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(src), slot_wear_mask) + equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(src), slot_wear_mask) equip_to_slot_or_del(new /obj/item/clothing/glasses/thermal(src), slot_glasses) equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/security(src), slot_back) @@ -152,7 +152,7 @@ var/global/sent_strike_team = 0 equip_to_slot_or_del(new /obj/item/weapon/disk/nuclear(src), slot_in_backpack) equip_to_slot_or_del(new /obj/item/weapon/melee/energy/sword(src), slot_l_store) - equip_to_slot_or_del(new /obj/item/weapon/grenade/flashbang(src), slot_r_store) + equip_to_slot_or_del(new /obj/item/weapon/shield/energy(src), slot_r_store) equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(src), slot_s_store) equip_to_slot_or_del(new /obj/item/weapon/gun/projectile/revolver/mateba(src), slot_belt) diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index 75fcf1ce458..d3030eec675 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -154,18 +154,26 @@ action_button_name = "HALT!" icon_action_button = "action_sechailer" -/obj/item/clothing/mask/gas/sechailer/warden - -/obj/item/clothing/mask/gas/sechailer/hos - /obj/item/clothing/mask/gas/sechailer/swat name = "\improper SWAT mask" desc = "A close-fitting tactical mask with an especially aggressive Compli-o-nator 3000." action_button_name = "HALT!" - icon_state = "swat" + icon_state = "officermask" aggressiveness = 3 ignore_maskadjust = 1 - + +/obj/item/clothing/mask/gas/sechailer/cyborg + name = "security hailer" + desc = "A set of recognizable pre-recorded messages for cyborgs to use when apprehending criminals." + icon = 'icons/obj/device.dmi' + icon_state = "taperecorderidle" + aggressiveness = 1 //Borgs are nicecurity! + ignore_maskadjust = 1 + +/obj/item/clothing/mask/gas/sechailer/cyborg/New() + ..() + verbs -= /obj/item/clothing/mask/gas/sechailer/verb/adjust + /obj/item/clothing/mask/gas/sechailer/verb/adjust() set category = "Object" set name = "Adjust Mask" diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index dfd25c42443..220931d805e 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -36,15 +36,16 @@ permeability_coefficient = 0.01 armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 25, rad = 0) action_button_name = "Adjust Sterile Mask" + icon_action_button = "action_sterile" ignore_maskadjust = 0 species_fit = list("Vox") sprite_sheets = list( "Vox" = 'icons/mob/species/vox/mask.dmi' ) - + /obj/item/clothing/mask/surgical/attack_self(var/mob/user) - adjustmask(user) - + adjustmask(user) + /obj/item/clothing/mask/fakemoustache name = "fake moustache" desc = "Warning: moustache is fake." @@ -168,9 +169,9 @@ ignore_maskadjust = 0 adjusted_flags = SLOT_HEAD icon_state = "bandbotany" - icon_action_button = "action_bandana" + icon_action_button = "action_bandbotany" action_button_name = "Adjust Bandana" - + /obj/item/clothing/mask/bandana/attack_self(var/mob/user) adjustmask(user) diff --git a/code/modules/clothing/masks/voice.dm b/code/modules/clothing/masks/voice.dm index 3d28b720d79..dc26b507025 100644 --- a/code/modules/clothing/masks/voice.dm +++ b/code/modules/clothing/masks/voice.dm @@ -6,7 +6,7 @@ /obj/item/clothing/mask/gas/voice name = "gas mask" - desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics." +// desc = "A face-covering mask that can be connected to an air supply. It seems to house some odd electronics." var/obj/item/voice_changer/changer origin_tech = "syndicate=4" diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index b2cf5cea48f..8ef4ea47268 100644 --- a/code/modules/mob/living/carbon/human/emote.dm +++ b/code/modules/mob/living/carbon/human/emote.dm @@ -303,17 +303,16 @@ m_type = 1 if ("cough") - if(!reagents.has_reagent("dextromethorphan")) - if(miming) - message = "[src] appears to cough!" - m_type = 1 + if(miming) + message = "[src] appears to cough!" + m_type = 1 + else + if (!muzzled) + message = "[src] coughs!" + m_type = 2 else - if (!muzzled) - message = "[src] coughs!" - m_type = 2 - else - message = "[src] makes a strong noise." - m_type = 2 + message = "[src] makes a strong noise." + m_type = 2 if ("frown") message = "[src] frowns." @@ -709,75 +708,55 @@ // Needed for M_TOXIC_FART if("fart") - if(world.time-lastFart >= 600) -// playsound(src.loc, 'sound/effects/fart.ogg', 50, 1, -3) //Admins still vote no to fun - if(TOXIC_FARTS in mutations) - message = "[src] unleashes a [pick("horrible","terrible","foul","disgusting","awful")] fart." - else - message = "[src] [pick("passes wind","farts")]." - m_type = 2 - - var/turf/location = get_turf(src) - var/aoe_range=2 // Default - if(SUPER_FART in mutations) - aoe_range+=3 //Was 5 - - /* // If we're wearing a suit, don't blast or gas those around us. - var/wearing_suit=0 - var/wearing_mask=0 - if(wear_suit && wear_suit.body_parts_covered & LOWER_TORSO) - wearing_suit=1 - if (internal != null && wear_mask && (wear_mask.flags & MASKINTERNALS)) - wearing_mask=1 */ - - // Process toxic farts first. - if(TOXIC_FARTS in mutations) - for(var/mob/M in range(location,aoe_range)) - if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS)) - continue - if(!airborne_can_reach(location,M,aoe_range)) - continue - // Now, we don't have this: - //new /obj/effects/fart_cloud(T,L) - // But: - // <[REDACTED]> so, what it does is...imagine a 3x3 grid with the person in the center. When someone uses the emote *fart (it's not a spell style ability and has no cooldown), then anyone in the 8 tiles AROUND the person who uses it - // <[REDACTED]> gets between 1 and 10 units of jenkem added to them...we obviously don't have Jenkem, but Space Drugs do literally the same exact thing as Jenkem - // <[REDACTED]> the user, of course, isn't impacted because it's not an actual smoke cloud - // So, let's give 'em space drugs. - if (M == src) - continue - M.reagents.add_reagent("space_drugs",rand(1,10)) - /* - var/datum/effect/effect/system/smoke_spread/chem/fart/S = new /datum/effect/effect/system/smoke_spread/chem/fart - S.attach(location) - S.set_up(src, 10, 0, location) - spawn(0) - S.start() - sleep(10) - S.start() - */ - if(SUPER_FART in mutations) - visible_message("\red [name] hunches down and grits their teeth!") - if(do_after(usr,30)) - visible_message("\red [name] unleashes a [pick("tremendous","gigantic","colossal")] fart!","You hear a [pick("tremendous","gigantic","colossal")] fart.") - //playsound(L.loc, 'superfart.ogg', 50, 0) - for(var/mob/living/V in range(location,aoe_range)) - shake_camera(V,10,5) - if (V == src) - continue - if(!airborne_can_reach(get_turf(src), get_turf(V))) - continue - V << "\red You are sent flying!" - V.Weaken(5) // why the hell was this set to 12 christ - step_away(V,location,15) - step_away(V,location,15) - step_away(V,location,15) - else - usr << "\red You were interrupted and couldn't fart! Rude!" - lastFart=world.time +// playsound(src.loc, 'sound/effects/fart.ogg', 50, 1, -3) //Admins still vote no to fun + if(TOXIC_FARTS in mutations) + message = "[src] unleashes a [pick("horrible","terrible","foul","disgusting","awful")] fart." else - message = "[src] strains, and nothing happens." - m_type = 1 + message = "[src] [pick("passes wind","farts")]." + m_type = 2 + + var/turf/location = get_turf(src) + var/aoe_range=2 // Default + if(SUPER_FART in mutations) + aoe_range+=3 //Was 5 + + // Process toxic farts first. + if(TOXIC_FARTS in mutations) + for(var/mob/M in range(location,aoe_range)) + if (M.internal != null && M.wear_mask && (M.wear_mask.flags & MASKINTERNALS)) + continue + if(!airborne_can_reach(location,M,aoe_range)) + continue + // Now, we don't have this: + //new /obj/effects/fart_cloud(T,L) + // But: + // <[REDACTED]> so, what it does is...imagine a 3x3 grid with the person in the center. When someone uses the emote *fart (it's not a spell style ability and has no cooldown), then anyone in the 8 tiles AROUND the person who uses it + // <[REDACTED]> gets between 1 and 10 units of jenkem added to them...we obviously don't have Jenkem, but Space Drugs do literally the same exact thing as Jenkem + // <[REDACTED]> the user, of course, isn't impacted because it's not an actual smoke cloud + // So, let's give 'em space drugs. + if (M == src) + continue + M.reagents.add_reagent("space_drugs",rand(1,10)) + + if(SUPER_FART in mutations) + visible_message("\red [name] hunches down and grits their teeth!") + if(do_after(usr,30)) + visible_message("\red [name] unleashes a [pick("tremendous","gigantic","colossal")] fart!","You hear a [pick("tremendous","gigantic","colossal")] fart.") + //playsound(L.loc, 'superfart.ogg', 50, 0) + for(var/mob/living/V in range(location,aoe_range)) + shake_camera(V,10,5) + if (V == src) + continue + if(!airborne_can_reach(get_turf(src), get_turf(V))) + continue + V << "\red You are sent flying!" + V.Weaken(5) // why the hell was this set to 12 christ + step_away(V,location,15) + step_away(V,location,15) + step_away(V,location,15) + else + usr << "\red You were interrupted and couldn't fart! Rude!" + if ("help") src << "blink, blink_r, blush, bow-(none)/mob, burp, choke, chuckle, clap, collapse, cough,\ncry, custom, deathgasp, drool, eyebrow, frown, gasp, giggle, groan, grumble, handshake, hug-(none)/mob, glare-(none)/mob,\ngrin, laugh, look-(none)/mob, moan, mumble, nod, pale, point-atom, raise, salute, shake, shiver, shrug,\nsigh, signal-#1-10, smile, sneeze, sniff, snore, stare-(none)/mob, tremble, twitch, twitch_s, whimper,\nwink, yawn" diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 3666e7f8a71..580322a9517 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -56,7 +56,7 @@ for(var/obj/O in temp_list) if(O) modules += O - + /obj/item/weapon/robot_module/proc/add_languages(var/mob/living/silicon/robot/R) //full set of languages R.add_language("Galactic Common", 1) @@ -108,7 +108,7 @@ src.modules += new /obj/item/weapon/reagent_containers/glass/beaker/large(src) src.modules += new /obj/item/weapon/reagent_containers/dropper(src) src.modules += new /obj/item/weapon/reagent_containers/syringe(src) - src.modules += new /obj/item/weapon/extinguisher/mini(src) + src.modules += new /obj/item/weapon/extinguisher/mini(src) src.modules += new /obj/item/stack/medical/advanced/bruise_pack(src) src.modules += new /obj/item/stack/medical/advanced/ointment(src) src.modules += new /obj/item/stack/medical/splint(src) @@ -204,7 +204,7 @@ src.modules += new /obj/item/weapon/melee/baton/robot(src) src.modules += new /obj/item/weapon/gun/energy/disabler/cyborg(src) src.modules += new /obj/item/taperoll/police(src) - src.modules += new /obj/item/device/taperecorder(src) + src.modules += new /obj/item/clothing/mask/gas/sechailer/cyborg(src) src.emag = new /obj/item/weapon/gun/energy/laser/cyborg(src) return @@ -265,13 +265,13 @@ if(src.emag) var/obj/item/weapon/reagent_containers/food/drinks/cans/beer/B = src.emag B.reagents.add_reagent("beer2", 2) - + /obj/item/weapon/robot_module/butler/add_languages(var/mob/living/silicon/robot/R) //full set of languages R.add_language("Galactic Common", 1) R.add_language("Sol Common", 1) R.add_language("Tradeband", 1) - R.add_language("Gutter", 1) + R.add_language("Gutter", 1) R.add_language("Sinta'unathi", 1) R.add_language("Siik'tajr", 1) R.add_language("Skrellian", 1) @@ -373,7 +373,7 @@ src.emag = new /obj/item/weapon/reagent_containers/spray/alien/acid(src) src.emag.reagents.add_reagent("pacid", 125) src.emag.reagents.add_reagent("sacid", 125) - + /obj/item/weapon/robot_module/alien/hunter/add_languages(var/mob/living/silicon/robot/R) ..() R.add_language("xenocommon", 1) diff --git a/code/modules/reagents/Chemistry-Reagents-Recreational.dm b/code/modules/reagents/Chemistry-Reagents-Recreational.dm deleted file mode 100644 index 91708e674ba..00000000000 --- a/code/modules/reagents/Chemistry-Reagents-Recreational.dm +++ /dev/null @@ -1,158 +0,0 @@ -//Cough medicine. -/datum/reagent/antidepressant/dextromethorphan - name = "Dextromethorphan" - id = "dextromethorphan" - description = "Cough medicine." - reagent_state = LIQUID - color = "#FF1111" - custom_metabolism = 0.05 - data = 0 - var/message = 0 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 0 - if(!message) message = 0 - data += custom_metabolism - switch(data + src.volume) - if(1 to 5) - if(message == 0) - M << "\red Your throat feels better and you stop coughing." - //The coughing check is made in carbon/human/emote.dm where it checks after this reagent. - message = 1 - if(5 to 12.5) - if(message < 2) - M << "\red You feel full of strength and energy! You're getting restless!" - message = 2 - if(prob(5)) M.emote(pick("twitch_s")) - if(12.5 to 25) - if(message < 3) - M << "\red Your heartrate is racing. You feel euphoric!" - message = 3 - M.druggy = max(M.druggy, 15) - if(prob(5)) M.emote(pick("twitch_s","moan")) - if(25 to INFINITY) - if(message < 4) - M << "\red Your heart is racing and your body won't respond properly. You almost feel like you're on autopilot." - message = 4 - M.druggy = max(M.druggy, 15) - if(prob(10)) M.emote(pick("twitch","moan","drool")) - if(prob(10)) M:weakened = max(M:weakened, 10) - if(prob(5)) M.hallucination = max(M.hallucination, 5) - - ..() - return - -/datum/chemical_reaction/dextromethorphan - name = "Dextromethorphan" - id = "dextromethorphan" - result = "dextromethorphan" - required_reagents = list("cryptobiolin" = 1, "hydrogen" = 1, "carbon" = 1) - result_amount = 3 - -//MDMA -/datum/reagent/antidepressant/mdma - name = "MDMA" - id = "mdma" - description = "MDMA is one of the most popular recreational psychoactives, most commonly sold in the form of 'ecstasy' tablets. It is known for its empathogenic, euphoric, and stimulant effects, and has also been used in psychotherapy." - reagent_state = LIQUID - color = "#EEEEEE" - custom_metabolism = 0.1 - data = 0 - var/message = 0 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 0 - if(!message) message = 0 - data += custom_metabolism - switch(data + src.volume) - if(1 to 5) - if(message == 0) - M << "\red Your heart rate increases. Your senses all seem more amplified. You start to feel... euphoric." - message = 1 - M.druggy = max(M.druggy, 15) - if(prob(5)) M.emote(pick("giggle","moan")) - if(5 to 10) - if(message < 2) - M << "\red Your heart rate increases. Your senses all seem more amplified. You start to feel... euphoric." - message = 2 - M.druggy = max(M.druggy, 15) - if(prob(5)) M.emote(pick("giggle","moan")) - if(10 to 20) - if(message < 3) - M << "\red Your heart rate increases. Your senses all seem more amplified. You start to feel... euphoric." - message = 3 - M.druggy = max(M.druggy, 15) - if(prob(5)) M.emote(pick("giggle","moan")) - if(20 to INFINITY) - if(message < 4) - M << "\red That was probably too much..." - message = 4 - M.druggy = max(M.druggy, 15) - if(prob(10)) M.emote(pick("twitch","giggle","moan")) - if(prob(10)) M.emote(pick("drool")) - if(prob(10)) M:weakened = max(M:weakened, 10) - ..() - return - -/datum/chemical_reaction/mdma - name = "MDMA" - id = "mdma" - result = "mdma" - required_reagents = list("cryptobiolin" = 1, "inaprovaline" = 1, "sugar" = 1) - result_amount = 3 - -//Meth -/datum/reagent/antidepressant/meth - name = "Methamphetamine" - id = "meth" - description = "Methamphetamine is a neurotoxin and potent psychostimulant of the phenethylamine and amphetamine classes that is used as a recreational drug and, rarely, to treat attention deficit hyperactivity disorder (ADHD) and obesity." - reagent_state = LIQUID - color = "#000088" - custom_metabolism = 0.1 - data = 0 - var/message = 0 - - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 0 - if(!message) message = 0 - data += custom_metabolism - switch(data + src.volume) - if(1 to 5) - if(message == 0) - M << "\red You feel an intense euphoria wash over you." - message = 1 - M.druggy = max(M.druggy, 15) - if(prob(10)) M.emote(pick("giggle","moan")) - if(5 to 10) - if(message < 2) - M << "\red The euphoria washing over you is accompanied by an intense restlessness. You need something to do... badly." - message = 2 - M.druggy = max(M.druggy, 15) - if(prob(10)) M.emote(pick("giggle", "moan", "twitch_s", "twitch")) - if(10 to 20) - if(message < 3) - M << "\red The euphoria you're feeling is accompanied by equal parts restlessness and discomfort as your heartbeat goes all over the place." - message = 3 - M.druggy = max(M.druggy, 15) - if(prob(10)) M.emote(pick("giggle", "moan", "twitch_s", "twitch")) - if(20 to INFINITY) - if(message < 4) - M << "\red Your heartbeat becomes highly irregular all of a sudden. The world seems a blur around you. Your head is aching." - message = 4 - M.druggy = max(M.druggy, 15) - if(prob(10)) M.emote(pick("giggle", "moan", "twitch_s", "twitch")) - if(prob(10)) M.emote(pick("drool")) - if(prob(10)) M:weakened = max(M:weakened, 10) - ..() - return - -/datum/chemical_reaction/meth - name = "Methamphetamine" - id = "meth" - result = "meth" - required_reagents = list("water" = 1, "dextromethorphan" = 1, "potassium" = 1) - required_catalysts = list("fuel" = 5) - result_amount = 3 \ No newline at end of file diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 4165c43e475..266895d0d53 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -485,38 +485,6 @@ datum ..() return - srejuvenate - name = "Soporific Rejuvenant" - id = "stoxin2" - description = "Put people to sleep, and heals them." - reagent_state = LIQUID - color = "#C8A5DC" // rgb: 200, 165, 220 - on_mob_life(var/mob/living/M as mob) - if(!M) M = holder.my_atom - if(!data) data = 1 - data++ - if(M.losebreath >= 10) - M.losebreath = max(10, M.losebreath-10) - holder.remove_reagent(src.id, 0.2) - switch(data) - if(1 to 15) - M.eye_blurry = max(M.eye_blurry, 10) - if(15 to 25) - M.drowsyness = max(M.drowsyness, 20) - if(25 to INFINITY) - M.sleeping += 1 - M.adjustOxyLoss(-M.getOxyLoss()) - M.SetWeakened(0) - M.SetStunned(0) - M.SetParalysis(0) - M.dizziness = 0 - M.drowsyness = 0 - M.stuttering = 0 - M.confused = 0 - M.jitteriness = 0 - ..() - return - inaprovaline name = "Inaprovaline" id = "inaprovaline" @@ -1012,7 +980,7 @@ datum if(prob(50)) M.apply_effect(50,IRRADIATE,0) // curing it that way may kill you instead M.adjustToxLoss(100) - M:antibodies |= V.antigen + C.antibodies |= V.antigen ..() return @@ -1037,24 +1005,12 @@ datum var/needs_update = 1 //M.mutations.len > 0 - //Ryetalyn now cures by a random chance per on_mob_life call - Bone White - // 1 volume = ~2% chance - // 10 volume = ~17% chance - // 30 volume = ~38% chance - //if (rand(0, 50+volume) > 50 && ishuman(M)) - if (volume >= 1 && ishuman(M)) - for(var/block=1;block<=DNA_SE_LENGTH;block++) - M.dna.SetSEState(block,0) - genemutcheck(M,block,null,MUTCHK_FORCED) - M.update_mutations() + for(var/block=1;block<=DNA_SE_LENGTH;block++) + M.dna.SetSEState(block,0) + genemutcheck(M,block,null,MUTCHK_FORCED) + M.update_mutations() - M.dna.struc_enzymes = M.dna.struc_enzymes_original - - /* Old Code (non-functional) - M.mutations = list() - M.disabilities = 0 - M.sdisabilities = 0 - */ + M.dna.struc_enzymes = M.dna.struc_enzymes_original // Might need to update appearance for hulk etc. if(needs_update && ishuman(M)) @@ -1637,25 +1593,6 @@ datum ..() return - Alchdranine - name = "Alchdranine" - id = "alchdranine" - description = "Alchdranine is an extremely strange chemical substance that can be used to treat almost any injury with a high level of effectiveness " - reagent_state = LIQUID - color = "#07a4d1" // rgb: 7, 164, 209 - - on_mob_life(var/mob/living/M as mob, var/alien) - if(M.stat == 2.0) - return - if(!M) M = holder.my_atom - if(!alien || alien != IS_DIONA) - M.adjustOxyLoss(-1*REM) - M.heal_organ_damage(1*REM,0) - M.heal_organ_damage(0,1*REM) - M.adjustToxLoss(-1*REM) - ..() - return - adminordrazine //An OP chemical for admins name = "Adminordrazine" id = "adminordrazine" @@ -1665,43 +1602,20 @@ datum on_mob_life(var/mob/living/carbon/M as mob) if(!M) M = holder.my_atom ///This can even heal dead people. + for(var/datum/reagent/R in M.reagents.reagent_list) + if(R != src) + M.reagents.remove_reagent(R.id,5) M.setCloneLoss(0) M.setOxyLoss(0) M.radiation = 0 M.heal_organ_damage(5,5) M.adjustToxLoss(-5) - if(holder.has_reagent("toxin")) - holder.remove_reagent("toxin", 5) - if(holder.has_reagent("stoxin")) - holder.remove_reagent("stoxin", 5) - if(holder.has_reagent("plasma")) - holder.remove_reagent("plasma", 5) - if(holder.has_reagent("sacid")) - holder.remove_reagent("sacid", 5) - if(holder.has_reagent("pacid")) - holder.remove_reagent("pacid", 5) - if(holder.has_reagent("cyanide")) - holder.remove_reagent("cyanide", 5) - if(holder.has_reagent("lexorin")) - holder.remove_reagent("lexorin", 5) - if(holder.has_reagent("amatoxin")) - holder.remove_reagent("amatoxin", 5) - if(holder.has_reagent("chloralhydrate")) - holder.remove_reagent("chloralhydrate", 5) - if(holder.has_reagent("carpotoxin")) - holder.remove_reagent("carpotoxin", 5) - if(holder.has_reagent("zombiepowder")) - holder.remove_reagent("zombiepowder", 5) - if(holder.has_reagent("mindbreaker")) - holder.remove_reagent("mindbreaker", 5) M.hallucination = 0 M.setBrainLoss(0) M.disabilities = 0 M.sdisabilities = 0 M.eye_blurry = 0 M.eye_blind = 0 -// M.disabilities &= ~NEARSIGHTED //doesn't even do anythig cos of the disabilities = 0 bit -// M.sdisabilities &= ~BLIND //doesn't even do anythig cos of the sdisabilities = 0 bit if(ishuman(M)) var/mob/living/carbon/human/H = M var/datum/organ/internal/eyes/E = H.internal_organs_by_name["eyes"] @@ -1714,9 +1628,16 @@ datum M.dizziness = 0 M.drowsyness = 0 M.stuttering = 0 + M.slurring = 0 M.confused = 0 M.sleeping = 0 M.jitteriness = 0 + if(istype(M,/mob/living/carbon)) // make sure to only use it on carbon mobs + var/mob/living/carbon/C = M + if(C.virus2.len) + for (var/ID in C.virus2) + var/datum/disease2/disease/V = C.virus2[ID] + C.antibodies |= V.antigen ..() return @@ -2136,47 +2057,7 @@ datum description = "A highly addictive stimulant extracted from the tobacco plant." reagent_state = LIQUID color = "#181818" // rgb: 24, 24, 24 -/* - ethanol - name = "Ethanol" - id = "ethanol" - description = "A well-known alcohol with a variety of applications." - reagent_state = LIQUID - color = "#404030" // rgb: 64, 64, 48 - on_mob_life(var/mob/living/M as mob) - if(!data) data = 1 - data++ - M.Dizzy(5) - M.jitteriness = max(M.jitteriness-5,0) - if(data >= 25) - if (!M.stuttering) M.stuttering = 1 - M.stuttering += 4 - if(data >= 40 && prob(33)) - if (!M.confused) M.confused = 1 - M.confused += 3 - ..() - return - reaction_obj(var/obj/O, var/volume) - if(istype(O,/obj/item/weapon/paper)) - var/obj/item/weapon/paper/paperaffected = O - paperaffected.clearpaper() - usr << "The solution melts away the ink on the paper." - if(istype(O,/obj/item/weapon/book)) - if(volume >= 5) - var/obj/item/weapon/book/affectedbook = O - affectedbook.dat = null - usr << "The solution melts away the ink on the book." - else - usr << "It wasn't enough..." - return - reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with ethanol isn't quite as good as fuel. - if(!istype(M, /mob/living)) - return - if(method == TOUCH) - M.adjust_fire_stacks(volume / 15) - return -*/ ammonia name = "Ammonia" id = "ammonia" @@ -2184,11 +2065,6 @@ datum reagent_state = GAS color = "#404030" // rgb: 64, 64, 48 - ultraglue - name = "Ultra Glue" - id = "glue" - description = "An extremely powerful bonding agent." - color = "#FFFFCC" // rgb: 255, 255, 204 diethylamine name = "Diethylamine" @@ -2254,28 +2130,23 @@ datum ..() return - beer2 //copypasta of chloral hydrate, disguised as normal beer for use by emagged brobots + beer2 //disguised as normal beer for use by emagged brobots name = "Beer" id = "beer2" description = "An alcoholic beverage made from malted grains, hops, yeast, and water." - reagent_state = LIQUID color = "#664300" // rgb: 102, 67, 0 - reaction_mob(var/mob/living/carbon/M, var/method=TOUCH, var/volume) - if(!..()) return - if(!istype(M) || !M.dna) return //No robots, AIs, aliens, Ians or other mobs should be affected by this. - src = null - if((method==TOUCH && prob(33)) || method==INGEST) - randmuti(M) - if(prob(98)) randmutb(M) - else randmutg(M) - domutcheck(M, null) - M.UpdateAppearance() - return - on_mob_life(var/mob/living/carbon/M) - if(!istype(M)) return - if(!M) M = holder.my_atom - M.apply_effect(10,IRRADIATE,0) + on_mob_life(var/mob/living/M as mob) + if(!data) + data = 1 + switch(data) + if(1 to 50) + M.sleeping += 1 + if(51 to INFINITY) + M.sleeping += 1 + M.adjustToxLoss((data - 50)*REM) + data++ + holder.remove_reagent(src.id, 0.5 * REAGENTS_METABOLISM) ..() return @@ -2294,19 +2165,6 @@ datum if(!M) M = holder.my_atom if(prob(50)) M.heal_organ_damage(1,0) M.nutrition += nutriment_factor // For hunger and fatness -/* - // If overeaten - vomit and fall down - // Makes you feel bad but removes reagents and some effect - // from your body - if (M.nutrition > 650) - M.nutrition = rand (250, 400) - M.weakened += rand(2, 10) - M.jitteriness += rand(0, 5) - M.dizziness = max (0, (M.dizziness - rand(0, 15))) - M.druggy = max (0, (M.druggy - rand(0, 15))) - M.adjustToxLoss(rand(-15, -5))) - M.updatehealth() -*/ ..() return @@ -2598,25 +2456,6 @@ datum return ..() -/* //removed because of meta bullshit. this is why we can't have nice things. - syndicream - name = "Cream filling" - id = "syndicream" - description = "Delicious cream filling of a mysterious origin. Tastes criminally good." - nutriment_factor = 1 * REAGENTS_METABOLISM - color = "#AB7878" // rgb: 171, 120, 120 - - on_mob_life(var/mob/living/M as mob) - M.nutrition += nutriment_factor - if(istype(M, /mob/living/carbon/human) && M.mind) - if(M.mind.special_role) - if(!M) M = holder.my_atom - M.heal_organ_damage(1,1) - M.nutrition += nutriment_factor - ..() - return - ..() -*/ cornoil name = "Corn Oil" id = "cornoil" @@ -2705,7 +2544,7 @@ datum ..() return -/* We're back to flour bags + flour name = "flour" id = "flour" @@ -2723,7 +2562,6 @@ datum src = null if(!istype(T, /turf/space)) new /obj/effect/decal/cleanable/flour(T) -*/ rice name = "Rice" @@ -3327,6 +3165,13 @@ datum usr << "It wasn't enough..." return + reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with ethanol isn't quite as good as fuel. + if(!istype(M, /mob/living)) + return + if(method == TOUCH) + M.adjust_fire_stacks(volume / 15) + return + beer //It's really much more stronger than other drinks. name = "Beer" id = "beer" @@ -3974,29 +3819,6 @@ datum return - -//Fox -/////////////////Requires Further Balance Testing////////////////// -/* - lectrazine - name = "Lectrazine" - id = "lectrazine" - description = "An extremly powerful cardiostimulant and analgesic which is used in revival of deceased." - reagent_state = LIQUID - color = "#080000" - custom_metabolism = 0.1 - - reaction_mob(var/mob/living/carbon/M as mob, var/methode=INGEST) - if(!M) M = holder.my_atom - M.stat = CONSCIOUS - M.setOxyLoss(0) - M.heal_organ_damage(15,0) - M.SetParalysis(15) - M.adjustBrainLoss(10*REM) - return - - -*/ // Undefine the alias for REAGENTS_EFFECT_MULTIPLER #undef REM @@ -4004,4 +3826,4 @@ datum /datum/reagent/Destroy() if(holder) holder.reagent_list -= src - holder = null + holder = null diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index c225c2a9f69..98806674a51 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -327,13 +327,6 @@ datum required_reagents = list("oxygen" = 1, "anti_toxin" = 1, "carbon" = 1) result_amount = 3 - ethanoloxidation - name = "ethanoloxidation" //Kind of a placeholder in case someone ever changes it so that chemicals - id = "ethanoloxidation" // react in the body. Also it would be silly if it didn't exist. - result = "water" - required_reagents = list("ethylredoxrazine" = 1, "ethanol" = 1) - result_amount = 2 - glycerol name = "Glycerol" id = "glycerol" @@ -405,33 +398,6 @@ datum holder.del_reagent("napalm") return - /* - smoke - name = "Smoke" - id = "smoke" - result = null - required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1 ) - result_amount = null - secondary = 1 - on_reaction(var/datum/reagents/holder, var/created_volume) - var/location = get_turf(holder.my_atom) - var/datum/effect/system/bad_smoke_spread/S = new /datum/effect/system/bad_smoke_spread - S.attach(location) - S.set_up(10, 0, location) - playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3) - spawn(0) - S.start() - sleep(10) - S.start() - sleep(10) - S.start() - sleep(10) - S.start() - sleep(10) - S.start() - holder.clear_reagents() - return */ - chemsmoke name = "Chemsmoke" id = "chemsmoke" @@ -720,289 +686,7 @@ datum M.show_message( "The blood seems to break apart in the fuel.", 1) holder.del_reagent("blood") return -/////////////////////////////////////OLD SLIME CORE REACTIONS /////////////////////////////// -/* - slimepepper - name = "Slime Condensedcapaicin" - id = "m_condensedcapaicin" - result = "condensedcapsaicin" - required_reagents = list("sugar" = 1) - result_amount = 1 - required_container = /obj/item/slime_core - required_other = 1 - slimefrost - name = "Slime Frost Oil" - id = "m_frostoil" - result = "frostoil" - required_reagents = list("water" = 1) - result_amount = 1 - required_container = /obj/item/slime_core - required_other = 1 - slimeglycerol - name = "Slime Glycerol" - id = "m_glycerol" - result = "glycerol" - required_reagents = list("blood" = 1) - result_amount = 1 - required_container = /obj/item/slime_core - required_other = 1 - slime_explosion - name = "Slime Explosion" - id = "m_explosion" - result = null - required_reagents = list("blood" = 1) - result_amount = 2 - required_container = /obj/item/slime_core - required_other = 2 - on_reaction(var/datum/reagents/holder, var/created_volume) - var/location = get_turf(holder.my_atom) - var/datum/effect/effect/system/reagents_explosion/e = new() - e.set_up(round (created_volume/10, 1), location, 0, 0) - e.start() - - holder.clear_reagents() - return - slimejam - name = "Slime Jam" - id = "m_jam" - result = "slimejelly" - required_reagents = list("water" = 1) - result_amount = 1 - required_container = /obj/item/slime_core - required_other = 2 - slimesynthi - name = "Slime Synthetic Flesh" - id = "m_flesh" - result = null - required_reagents = list("sugar" = 1) - result_amount = 1 - required_container = /obj/item/slime_core - required_other = 2 - on_reaction(var/datum/reagents/holder, var/created_volume) - var/location = get_turf(holder.my_atom) - new /obj/item/weapon/reagent_containers/food/snacks/meat/syntiflesh(location) - return - - slimeenzyme - name = "Slime Enzyme" - id = "m_enzyme" - result = "enzyme" - required_reagents = list("blood" = 1, "water" = 1) - result_amount = 2 - required_container = /obj/item/slime_core - required_other = 3 - slimeplasma - name = "Slime Plasma" - id = "m_plasma" - result = "plasma" - required_reagents = list("sugar" = 1, "blood" = 2) - result_amount = 2 - required_container = /obj/item/slime_core - required_other = 3 - slimevirus - name = "Slime Virus" - id = "m_virus" - result = null - required_reagents = list("sugar" = 1, "sacid" = 1) - result_amount = 2 - required_container = /obj/item/slime_core - required_other = 3 - on_reaction(var/datum/reagents/holder, var/created_volume) - holder.clear_reagents() - - var/virus = pick(/datum/disease/advance/flu, /datum/disease/advance/cold, \ - /datum/disease/pierrot_throat, /datum/disease/fake_gbs, \ - /datum/disease/brainrot, /datum/disease/magnitis) - - - var/datum/disease/F = new virus(0) - var/list/data = list("viruses"= list(F)) - holder.add_reagent("blood", 20, data) - - holder.add_reagent("cyanide", rand(1,10)) - - return - - slimeteleport - name = "Slime Teleport" - id = "m_tele" - result = null - required_reagents = list("pacid" = 2, "mutagen" = 2) - required_catalysts = list("plasma" = 1) - result_amount = 1 - required_container = /obj/item/slime_core - required_other = 4 - on_reaction(var/datum/reagents/holder, var/created_volume) - - // Calculate new position (searches through beacons in world) - var/obj/item/device/radio/beacon/chosen - var/list/possible = list() - for(var/obj/item/device/radio/beacon/W in world) - possible += W - - if(possible.len > 0) - chosen = pick(possible) - - if(chosen) - // Calculate previous position for transition - - var/turf/FROM = get_turf_loc(holder.my_atom) // the turf of origin we're travelling FROM - var/turf/TO = get_turf_loc(chosen) // the turf of origin we're travelling TO - - playsound(TO, 'sound/effects/phasein.ogg', 100, 1) - - var/list/flashers = list() - for(var/mob/living/carbon/human/M in viewers(TO, null)) - if(M:eyecheck() <= 0) - flick("e_flash", M.flash) // flash dose faggots - flashers += M - - var/y_distance = TO.y - FROM.y - var/x_distance = TO.x - FROM.x - for (var/atom/movable/A in range(2, FROM )) // iterate thru list of mobs in the area - if(istype(A, /obj/item/device/radio/beacon)) continue // don't teleport beacons because that's just insanely stupid - if( A.anchored && !istype(A, /mob/dead/observer) ) continue // don't teleport anchored things (computers, tables, windows, grilles, etc) because this causes problems! - // do teleport ghosts however because hell why not - - var/turf/newloc = locate(A.x + x_distance, A.y + y_distance, TO.z) // calculate the new place - if(!A.Move(newloc)) // if the atom, for some reason, can't move, FORCE them to move! :) We try Move() first to invoke any movement-related checks the atom needs to perform after moving - A.loc = locate(A.x + x_distance, A.y + y_distance, TO.z) - - spawn() - if(ismob(A) && !(A in flashers)) // don't flash if we're already doing an effect - var/mob/M = A - if(M.client) - var/obj/blueeffect = new /obj(src) - blueeffect.screen_loc = "WEST,SOUTH to EAST,NORTH" - blueeffect.icon = 'icons/effects/effects.dmi' - blueeffect.icon_state = "shieldsparkles" - blueeffect.layer = 17 - blueeffect.mouse_opacity = 0 - M.client.screen += blueeffect - sleep(20) - M.client.screen -= blueeffect - del(blueeffect) - slimecrit - name = "Slime Crit" - id = "m_tele" - result = null - required_reagents = list("sacid" = 1, "blood" = 1) - required_catalysts = list("plasma" = 1) - result_amount = 1 - required_container = /obj/item/slime_core - required_other = 4 - on_reaction(var/datum/reagents/holder, var/created_volume) - - var/blocked = list(/mob/living/simple_animal/hostile, - /mob/living/simple_animal/hostile/pirate, - /mob/living/simple_animal/hostile/pirate/ranged, - /mob/living/simple_animal/hostile/russian, - /mob/living/simple_animal/hostile/russian/ranged, - /mob/living/simple_animal/hostile/syndicate, - /mob/living/simple_animal/hostile/syndicate/melee, - /mob/living/simple_animal/hostile/syndicate/melee/space, - /mob/living/simple_animal/hostile/syndicate/ranged, - /mob/living/simple_animal/hostile/syndicate/ranged/space, - /mob/living/simple_animal/hostile/alien/queen/large, - /mob/living/simple_animal/clown - )//exclusion list for things you don't want the reaction to create. - var/list/critters = typesof(/mob/living/simple_animal/hostile) - blocked // list of possible hostile mobs - - playsound(get_turf_loc(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) - - for(var/mob/living/carbon/human/M in viewers(get_turf_loc(holder.my_atom), null)) - if(M:eyecheck() <= 0) - flick("e_flash", M.flash) - - for(var/i = 1, i <= created_volume, i++) - var/chosen = pick(critters) - var/mob/living/simple_animal/hostile/C = new chosen - C.loc = get_turf_loc(holder.my_atom) - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(C, pick(NORTH,SOUTH,EAST,WEST)) - slimebork - name = "Slime Bork" - id = "m_tele" - result = null - required_reagents = list("sugar" = 1, "water" = 1) - result_amount = 2 - required_container = /obj/item/slime_core - required_other = 4 - on_reaction(var/datum/reagents/holder, var/created_volume) - - var/list/borks = typesof(/obj/item/weapon/reagent_containers/food/snacks) - /obj/item/weapon/reagent_containers/food/snacks - // BORK BORK BORK - - playsound(get_turf_loc(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) - - for(var/mob/living/carbon/human/M in viewers(get_turf_loc(holder.my_atom), null)) - if(M:eyecheck() <= 0) - flick("e_flash", M.flash) - - for(var/i = 1, i <= created_volume + rand(1,2), i++) - var/chosen = pick(borks) - var/obj/B = new chosen - if(B) - B.loc = get_turf_loc(holder.my_atom) - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(B, pick(NORTH,SOUTH,EAST,WEST)) - - - - slimechloral - name = "Slime Chloral" - id = "m_bunch" - result = "chloralhydrate" - required_reagents = list("blood" = 1, "water" = 2) - result_amount = 2 - required_container = /obj/item/slime_core - required_other = 5 - slimeretro - name = "Slime Retro" - id = "m_xeno" - result = null - required_reagents = list("sugar" = 1) - result_amount = 1 - required_container = /obj/item/slime_core - required_other = 5 - on_reaction(var/datum/reagents/holder, var/created_volume) - var/datum/disease/F = new /datum/disease/dna_retrovirus(0) - var/list/data = list("viruses"= list(F)) - holder.add_reagent("blood", 20, data) - slimefoam - name = "Slime Foam" - id = "m_foam" - result = null - required_reagents = list("sacid" = 1) - result_amount = 2 - required_container = /obj/item/slime_core - required_other = 5 - - on_reaction(var/datum/reagents/holder, var/created_volume) - - - var/location = get_turf(holder.my_atom) - for(var/mob/M in viewers(5, location)) - M << "\red The solution violently bubbles!" - - location = get_turf(holder.my_atom) - - for(var/mob/M in viewers(5, location)) - M << "\red The solution spews out foam!" - - //world << "Holder volume is [holder.total_volume]" - //for(var/datum/reagent/R in holder.reagent_list) - // world << "[R.name] = [R.volume]" - - var/datum/effect/effect/system/foam_spread/s = new() - s.set_up(created_volume, location, holder, 0) - s.start() - holder.clear_reagents() - return -*/ /////////////////////////////////////////////NEW SLIME CORE REACTIONS///////////////////////////////////////////// //Grey @@ -2184,20 +1868,4 @@ datum id = "rewriter" result = "rewriter" required_reagents = list("spacemountainwind" = 1, "coffee" = 1) - result_amount = 2 - - - -//Fox -///////////////////////Requires Balance Testing/////////////////// -/* - lectrazine - name = "Lectrazine" - id = "lectrazine" - result = "lectrazine" - required_reagents = list("inaprovaline" = 1, "phosphorus" = 1) - required_catalysts = list("silver" = 5) - result_amount = 2 - -*/ - + result_amount = 2 \ No newline at end of file diff --git a/code/modules/research/designs/weapon_designs.dm b/code/modules/research/designs/weapon_designs.dm index 60c4fdd6c37..2a892e2d057 100644 --- a/code/modules/research/designs/weapon_designs.dm +++ b/code/modules/research/designs/weapon_designs.dm @@ -76,7 +76,6 @@ build_type = PROTOLATHE materials = list("$metal" = 4000, "$glass" = 5000, "$silver" = 300) build_path = /obj/item/weapon/shield/riot/tele - locked = 1 category = list("Weapons") /datum/design/lasercannon diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index be4a018bc60..12183f91498 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -104,12 +104,12 @@ ////////////////////////STAGE 4///////////////////////////////// -/datum/disease2/effect/alchdranine +/datum/disease2/effect/doctorsdelight name = "Panacea Effect" stage = 4 activate(var/mob/living/carbon/mob,var/multiplier) - if (mob.reagents.get_reagent_amount("alchdranine") < 1) - mob.reagents.add_reagent("alchdranine", 1) + if (mob.reagents.get_reagent_amount("doctorsdelight") < 1) + mob.reagents.add_reagent("doctorsdelight", 1) /datum/disease2/effect/viralsputum_major name = "Hemoptysis" diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi index 3b53aeb7927..37ef8e659b7 100644 Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ