From fec3b3e9dd41610a642d64d3eb124504ca79bf2c Mon Sep 17 00:00:00 2001 From: Iamgoofball Date: Fri, 16 Jan 2015 17:56:55 -0800 Subject: [PATCH] Changes, adjustments, NEW CHEMICAL: Epinephrine --- _maps/map_files/generic/z2.dmm | 5 +- .../reagents/Chemistry-Goon-Medicine.dm | 43 +++++++- .../reagents/Chemistry-Goon-Pyrotechnics.dm | 1 - code/modules/reagents/Chemistry-Holder.dm | 15 +-- code/modules/reagents/Chemistry-Recipes.dm | 100 +----------------- .../reagents/reagent_containers/hypospray.dm | 8 +- .../reagents/reagent_containers/pill.dm | 4 +- .../reagents/reagent_containers/syringes.dm | 16 +-- html/changelogs/Iamgoofball.yml | 18 ++++ 9 files changed, 88 insertions(+), 122 deletions(-) create mode 100644 html/changelogs/Iamgoofball.yml diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index abe48b8bc76..5013f51b1ae 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -720,7 +720,7 @@ "nR" = (/turf/unsimulated/floor{tag = "icon-cult"; icon_state = "cult"},/turf/simulated/shuttle/wall{icon_state = "swall_f5"; dir = 2},/area/wizard_station) "nS" = (/turf/unsimulated/wall/fakedoor{name = "Squad 3 Pod"},/area/wizard_station) "nT" = (/obj/structure/table,/obj/item/weapon/gun/syringe{pixel_x = 1; pixel_y = 2},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) -"nU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/antitoxin,/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/antitoxin{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) +"nU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/syringe/charcoal,/obj/item/weapon/reagent_containers/syringe/charcoal{pixel_y = 2},/obj/item/weapon/reagent_containers/syringe/charcoal{pixel_y = 4},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "nV" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 1},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "nW" = (/obj/machinery/door/window{dir = 1; name = "Secure Storage"; req_access_txt = "150"},/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) "nX" = (/obj/structure/table,/obj/item/device/sbeacondrop/bomb{pixel_y = 5},/obj/item/device/sbeacondrop/bomb,/turf/simulated/shuttle/floor{icon_state = "floor4"},/area/space) @@ -834,7 +834,7 @@ "qb" = (/turf/unsimulated/floor{icon_state = "delivery"},/area/centcom/holding) "qc" = (/obj/structure/grille,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/unsimulated/floor{name = "plating"},/area/centcom/holding) "qd" = (/obj/effect/landmark{name = "Holding Facility"},/turf/unsimulated/floor{icon_state = "engine"},/area/centcom/holding) - + (1,1,1) = {" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababadaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeafaeaeaeaeaeag aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacacabababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababahaiaiaiaiaiajakakakakakajalalalalalajamanananaoap @@ -1092,3 +1092,4 @@ abababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab ababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababababab "} + diff --git a/code/modules/reagents/Chemistry-Goon-Medicine.dm b/code/modules/reagents/Chemistry-Goon-Medicine.dm index f2b5c9dad55..043440e98a8 100644 --- a/code/modules/reagents/Chemistry-Goon-Medicine.dm +++ b/code/modules/reagents/Chemistry-Goon-Medicine.dm @@ -444,6 +444,40 @@ datum/reagent/atropine/on_mob_life(var/mob/living/M as mob) required_reagents = list("ethanol" = 1, "acetone" = 1, "diethylamine" = 1, "phenol" = 1, "sacid" = 1) result_amount = 5 +datum/reagent/epinephrine + name = "Epinephrine" + id = "epinephrine" + description = "Reduces most of the knockout/stun effects, minor stamina regeneration buff. Attempts to cap OXY damage at 35 and LOSEBREATH at 3. If health is between -10 to -65, heals 1 TOX, 1 BRUTE, 1 BURN." + reagent_state = LIQUID + color = "#C8A5DC" // rgb: 200, 165, 220 + metabolization_rate = 0.2 + +datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob) + if(!M) M = holder.my_atom + if(M.health > -10 && M.health < -65) + M.adjustToxLoss(-1*REM) + M.adjustBruteLoss(-1*REM) + M.adjustFireLoss(-1*REM) + if(M.oxyloss > 35) + M.setOxyLoss(35) + if(M.losebreath > 3) + M.losebreath = 3 + M.adjustStaminaLoss(-1*REM) + if(prob(30)) + M.AdjustParalysis(-1) + M.AdjustStunned(-1) + M.AdjustWeakened(-1) + M.sleeping -= 1 + ..() + return + +/datum/chemical_reaction/epinephrine + name = "Epinephrine" + id = "epinephrine" + result = "epinephrine" + required_reagents = list("phenol" = 1, "acetone" = 1, "diethylamine" = 1, "oxygen" = 1, "chlorine" = 1, "hydrogen" = 1) + result_amount = 6 + datum/reagent/strange_reagent name = "Strange Reagent" id = "strange_reagent" @@ -504,6 +538,9 @@ datum/reagent/life required_temp = 374 /datum/chemical_reaction/life/on_reaction(var/datum/reagents/holder, var/created_volume) + chemical_mob_spawn(holder, 1, "Life") + +proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reaction_name) if(holder && holder.my_atom) var/blocked = list(/mob/living/simple_animal/hostile, /mob/living/simple_animal/hostile/pirate, @@ -532,7 +569,7 @@ datum/reagent/life var/atom/A = holder.my_atom var/turf/T = get_turf(A) var/area/my_area = get_area(T) - var/message = "A life reaction has occured in [my_area.name]. (JMP)" + var/message = "A [reaction_name] reaction has occured in [my_area.name]. (JMP)" message += " (VV)" var/mob/M = get(A, /mob) @@ -548,10 +585,10 @@ datum/reagent/life for(var/mob/living/carbon/human/H in viewers(get_turf(holder.my_atom), null)) if(H:eyecheck() <= 0) flick("e_flash", H.flash) - for(var/i = 1, i <= 5, i++) + for(var/i = 1, i <= amount_to_spawn, i++) var/chosen = pick(critters) var/mob/living/simple_animal/hostile/C = new chosen - C.faction |= "lifesummon" + C.faction |= "chemicalsummon" C.loc = get_turf(holder.my_atom) if(prob(50)) for(var/j = 1, j <= rand(1, 3), j++) diff --git a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm index 5473e50c81f..ec83d354f03 100644 --- a/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm +++ b/code/modules/reagents/Chemistry-Goon-Pyrotechnics.dm @@ -35,7 +35,6 @@ datum/reagent/clf3/on_mob_life(var/mob/living/M as mob) var/turf/simulated/T = get_turf(holder.my_atom) for(var/turf/simulated/turf in range(1,T)) new /obj/effect/hotspot(turf) - new /obj/effect/hotspot(T) return /datum/reagent/clf3/reaction_turf(var/turf/simulated/T, var/volume) diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm index cbe787af8fd..2e5fb825a15 100644 --- a/code/modules/reagents/Chemistry-Holder.dm +++ b/code/modules/reagents/Chemistry-Holder.dm @@ -196,13 +196,14 @@ datum/reagents/proc/trans_id_to(var/obj/target, var/reagent, var/amount=1, var/p */ datum/reagents/proc/metabolize(var/mob/M) - for(var/A in reagent_list) - var/datum/reagent/R = A - if(M && R) - if(M.reagent_check(R) != 1 && last_tick == 3) - R.on_mob_life(M) - last_tick = 0 - last_tick++ + if(last_tick == 3) + last_tick = 0 + for(var/A in reagent_list) + var/datum/reagent/R = A + if(M && R) + if(M.reagent_check(R) != 1) + R.on_mob_life(M) + last_tick++ update_total() datum/reagents/proc/conditional_update_move(var/atom/A, var/Running = 0) diff --git a/code/modules/reagents/Chemistry-Recipes.dm b/code/modules/reagents/Chemistry-Recipes.dm index 3e656b768f4..ba5d93350c7 100644 --- a/code/modules/reagents/Chemistry-Recipes.dm +++ b/code/modules/reagents/Chemistry-Recipes.dm @@ -183,7 +183,7 @@ silicate name = "Spaceacillin" id = "spaceacillin" result = "spaceacillin" - required_reagents = list("cryptobiolin" = 1, "ephedrine" = 1) + required_reagents = list("cryptobiolin" = 1, "epinephrine" = 1) result_amount = 2 /datum/chemical_reaction/inacusiate @@ -879,9 +879,9 @@ datum/chemical_reaction/pestkiller S.loc = get_turf(holder.my_atom) /datum/chemical_reaction/slimeinaprov - name = "Slime ephedrine" + name = "Slime epinephrine" id = "m_inaprov" - result = "ephedrine" + result = "epinephrine" required_reagents = list("water" = 5) result_amount = 3 required_other = 1 @@ -948,61 +948,7 @@ datum/chemical_reaction/pestkiller O.show_message(text("The slime extract begins to vibrate violently !"), 1) spawn(50) - if(holder && holder.my_atom) - - 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/hostile/retaliate, - /mob/living/simple_animal/hostile/retaliate/clown, - /mob/living/simple_animal/hostile/mushroom, - /mob/living/simple_animal/hostile/asteroid, - /mob/living/simple_animal/hostile/asteroid/basilisk, - /mob/living/simple_animal/hostile/asteroid/goldgrub, - /mob/living/simple_animal/hostile/asteroid/goliath, - /mob/living/simple_animal/hostile/asteroid/hivelord, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood, - /mob/living/simple_animal/hostile/carp/holocarp, - /mob/living/simple_animal/hostile/mining_drone - )//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 - - var/atom/A = holder.my_atom - var/turf/T = get_turf(A) - var/area/my_area = get_area(T) - var/message = "A gold slime reaction has occured in [my_area.name]. (JMP)" - message += " (VV)" - - var/mob/M = get(A, /mob) - if(M) - message += " - Carried By: [M.real_name] ([M.key]) (PP) (?)" - else - message += " - Last Fingerprint: [(A.fingerprintslast ? A.fingerprintslast : "N/A")]" - - message_admins(message, 0, 1) - - playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) - - for(var/mob/living/carbon/human/H in viewers(get_turf(holder.my_atom), null)) - if(H:eyecheck() <= 0) - flick("e_flash", H.flash) - - for(var/i = 1, i <= 5, i++) - var/chosen = pick(critters) - var/mob/living/simple_animal/hostile/C = new chosen - C.faction |= "slimesummon" - C.loc = get_turf(holder.my_atom) - if(prob(50)) - for(var/j = 1, j <= rand(1, 3), j++) - step(C, pick(NORTH,SOUTH,EAST,WEST)) + chemical_mob_spawn(holder, 1, "Gold Slime") /datum/chemical_reaction/slimecritlesser name = "Slime Crit Lesser" @@ -1018,43 +964,7 @@ datum/chemical_reaction/pestkiller O.show_message(text("The slime extract begins to vibrate violently !"), 1) spawn(50) - if(holder && holder.my_atom) - - 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/hostile/retaliate, - /mob/living/simple_animal/hostile/retaliate/clown, - /mob/living/simple_animal/hostile/mushroom, - /mob/living/simple_animal/hostile/asteroid, - /mob/living/simple_animal/hostile/asteroid/basilisk, - /mob/living/simple_animal/hostile/asteroid/goldgrub, - /mob/living/simple_animal/hostile/asteroid/goliath, - /mob/living/simple_animal/hostile/asteroid/hivelord, - /mob/living/simple_animal/hostile/asteroid/hivelordbrood, - /mob/living/simple_animal/hostile/carp/holocarp, - /mob/living/simple_animal/hostile/mining_drone - )//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(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1) - - for(var/mob/living/carbon/human/M in viewers(get_turf(holder.my_atom), null)) - if(M:eyecheck() <= 0) - flick("e_flash", M.flash) - - var/chosen = pick(critters) - var/mob/living/simple_animal/hostile/C = new chosen - C.faction |= "neutral" - C.loc = get_turf(holder.my_atom) + chemical_mob_spawn(holder, 1, "Lesser Gold Slime") //Silver /datum/chemical_reaction/slimebork diff --git a/code/modules/reagents/reagent_containers/hypospray.dm b/code/modules/reagents/reagent_containers/hypospray.dm index 0c15dcf0c0c..5137bd9ebb4 100644 --- a/code/modules/reagents/reagent_containers/hypospray.dm +++ b/code/modules/reagents/reagent_containers/hypospray.dm @@ -54,7 +54,7 @@ /obj/item/weapon/reagent_containers/hypospray/combat/New() ..() - reagents.add_reagent("ephedrine", 15) + reagents.add_reagent("epinephrine", 15) reagents.add_reagent("salglu_solution", 15) obj/item/weapon/reagent_containers/hypospray/combat/nanites @@ -69,7 +69,7 @@ obj/item/weapon/reagent_containers/hypospray/combat/nanites //MediPens /obj/item/weapon/reagent_containers/hypospray/medipen - name = "ephedrine medipen" + name = "epinephrine medipen" desc = "A rapid and safe way to stabilize patients in critical condition for personnel without advanced medical knowledge." icon_state = "medipen" item_state = "medipen" @@ -77,7 +77,7 @@ obj/item/weapon/reagent_containers/hypospray/combat/nanites volume = 10 ignore_flags = 1 //so you can medipen through hardsuits flags = null - var/starting_reagent = "ephedrine" + var/starting_reagent = "epinephrine" var/starting_amount = 10 /obj/item/weapon/reagent_containers/hypospray/medipen/New() @@ -136,4 +136,4 @@ obj/item/weapon/reagent_containers/hypospray/combat/nanites name = "morphine medipen" desc = "A rapid way to get you out of a tight situation and fast! You'll feel rather drowsy, though." icon_state = "medipen" - starting_reagent = "morphine" + starting_reagent = "morphine" diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm index 08e66173103..8614f1d40f4 100644 --- a/code/modules/reagents/reagent_containers/pill.dm +++ b/code/modules/reagents/reagent_containers/pill.dm @@ -144,10 +144,10 @@ reagents.add_reagent("charcoal", 50) /obj/item/weapon/reagent_containers/pill/ephedrine - name = "ephedrine pill" + name = "epinephrine pill" desc = "Used to stabilize patients." icon_state = "pill17" /obj/item/weapon/reagent_containers/pill/ephedrine/New() ..() - reagents.add_reagent("ephedrine", 50) \ No newline at end of file + reagents.add_reagent("epinephrine", 50) \ No newline at end of file diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm index 498158f564d..6a2d6748e7a 100644 --- a/code/modules/reagents/reagent_containers/syringes.dm +++ b/code/modules/reagents/reagent_containers/syringes.dm @@ -234,11 +234,11 @@ /obj/item/weapon/reagent_containers/syringe/ephedrine - name = "syringe (ephedrine)" - desc = "Contains ephedrine - used to stabilize patients." + name = "syringe (epinephrine)" + desc = "Contains epinephrine - used to stabilize patients." New() ..() - reagents.add_reagent("ephedrine", 15) + reagents.add_reagent("epinephrine", 15) mode = SYRINGE_INJECT update_icon() @@ -280,20 +280,20 @@ update_icon() /obj/item/weapon/reagent_containers/syringe/robot/ephedrine - name = "syringe (ephedrine)" - desc = "Contains ephedrine - used to stabilize patients." + name = "syringe (epinephrine)" + desc = "Contains epinephrine - used to stabilize patients." New() ..() - reagents.add_reagent("ephedrine", 15) + reagents.add_reagent("epinephrine", 15) mode = SYRINGE_INJECT update_icon() /obj/item/weapon/reagent_containers/syringe/robot/mixed name = "syringe (mixed)" - desc = "Contains ephedrine & charcoal solution." + desc = "Contains epinephrine & charcoal solution." New() ..() - reagents.add_reagent("ephedrine", 7) + reagents.add_reagent("epinephrine", 7) reagents.add_reagent("charcoal", 8) mode = SYRINGE_INJECT update_icon() diff --git a/html/changelogs/Iamgoofball.yml b/html/changelogs/Iamgoofball.yml new file mode 100644 index 00000000000..ad23e3f4797 --- /dev/null +++ b/html/changelogs/Iamgoofball.yml @@ -0,0 +1,18 @@ +author: Iamgoofball (Look Ma, I didn't mispell my name this time!) +delete-after: true +changes: + - rscadd: "Replaced Star Trek chemistry with Goon Chemistry." + - rscadd: "Emergency Medic's Handbook Tip 1: Styptic Powder = BRUTE, Silver Sulfadiazine = BURN, Charcoal = TOX, Salbutamol = OXY" + - rscadd: "In recipes that used removed reagents, they have been replaced with their goon chemistry counterpart:" + - rscadd: "Hyperzine -> Morphine" + - rscadd: "Inaprovaline -> Epinephrine" + - rscadd: "Kelotane -> Saline-Glucose Solution" + - rscadd: "Bicardine -> Saline-Glucose Solution" + - rscadd: "Dermaline -> Saline-Glucose Solution" + - rscadd: "Dexalin -> Salbutamol" + - rscadd: "Dexalin Plus -> Salbutamol" + - rscadd: "Tricordrazine -> Omnizine" + - rscadd: "Anti-Toxin -> Charcoal" + - rscadd: "Hydroalin -> Penetic Acid" + - rscadd: "Arithrazine -> Penetic Acid" + - rscadd: "Imidazoline -> Oculine" \ No newline at end of file