diff --git a/code/WorkInProgress/Chemistry-Reagents.dm b/code/WorkInProgress/Chemistry-Reagents.dm index e0d9759f235..258c3bb63d6 100644 --- a/code/WorkInProgress/Chemistry-Reagents.dm +++ b/code/WorkInProgress/Chemistry-Reagents.dm @@ -44,11 +44,11 @@ datum on_mob_life(var/mob/M) holder.remove_reagent(src.id, 0.4) //By default it slowly disappears. return -/* + metroid - name = "Metroid Jelly" + name = "Metroid Jam" id = "metroid" - description = "A green liquid produced from one of the deadliest lifeforms in existence." + description = "A green semi-liquid produced from one of the deadliest lifeforms in existence." reagent_state = LIQUID on_mob_life(var/mob/M) if(prob(10)) @@ -56,8 +56,8 @@ datum M.toxloss+=20 else if(prob(40)) M.bruteloss-=5 - ..() //Code no work :< -- Urist -*/ + ..() + blood @@ -593,6 +593,18 @@ datum description = "Pure iron is a metal." reagent_state = SOLID + on_mob_life(var/mob/M) + if(!M) M = holder.my_atom + if((M.virus) && (prob(8) && (M.virus.name=="Magnitis"))) + if(M.virus.spread == "Airborne") + M.virus.spread = "Remissive" + M.virus.stage-- + if(M.virus.stage <= 0) + M.resistances += M.virus.type + M.virus = null + holder.remove_reagent(src.id, 0.2) + return + aluminium name = "Aluminium" id = "aluminium" @@ -942,7 +954,7 @@ datum on_mob_life(var/mob/M) if(!M) M = holder.my_atom - if((M.virus) && (prob(8))) + if((M.virus) && (prob(8) && (M.virus.name!="Magnitis"))) if(M.virus.spread == "Airborne") M.virus.spread = "Remissive" M.virus.stage-- diff --git a/code/WorkInProgress/Chemistry-Tools.dm b/code/WorkInProgress/Chemistry-Tools.dm index 76ec6701537..6fab1b87771 100644 --- a/code/WorkInProgress/Chemistry-Tools.dm +++ b/code/WorkInProgress/Chemistry-Tools.dm @@ -1170,7 +1170,7 @@ var/list/data = list("virus"= F) R.add_reagent("blood", 20, data) - +/* /obj/item/weapon/reagent_containers/glass/bottle/gbs name = "GBS culture bottle" desc = "A small bottle. Contains Gravitokinetic Bipotential SADS+ culture in synthblood medium."//Or simply - General BullShit @@ -1184,8 +1184,8 @@ R.my_atom = src var/datum/disease/F = new /datum/disease/gbs var/list/data = list("virus"= F) - R.add_reagent("blood", 20, data) - + R.add_reagent("blood", 20, data) -- No. +*/ /obj/item/weapon/reagent_containers/glass/bottle/fake_gbs name = "GBS culture bottle" desc = "A small bottle. Contains Gravitokinetic Bipotential SADS- culture in synthblood medium."//Or simply - General BullShit @@ -1217,6 +1217,21 @@ var/list/data = list("virus"= F) R.add_reagent("blood", 20, data) +/obj/item/weapon/reagent_containers/glass/bottle/magnitis + name = "GBS culture bottle" + desc = "A small bottle. Contains a small dosage of Fukkos Miracos." + icon = 'chemical.dmi' + icon_state = "bottle3" + amount_per_transfer_from_this = 5 + + New() + var/datum/reagents/R = new/datum/reagents(20) + reagents = R + R.my_atom = src + var/datum/disease/F = new /datum/disease/magnitis + var/list/data = list("virus"= F) + R.add_reagent("blood", 20, data) + /obj/item/weapon/reagent_containers/glass/beaker name = "beaker" @@ -2029,7 +2044,6 @@ ///jar -/* /obj/item/weapon/reagent_containers/food/drinks/jar name = "empty jar" desc = "A jar. You're not sure what it's supposed to hold." @@ -2040,6 +2054,7 @@ var/datum/reagents/R = new/datum/reagents(50) reagents = R R.my_atom = src + R.add_reagent("metroid", 50) on_reagent_change() if (reagents.reagent_list.len > 0) @@ -2056,5 +2071,4 @@ icon_state = "jar" name = "empty jar" desc = "A jar. You're not sure what it's supposed to hold." - return //Code no work :< -- Urist - */ \ No newline at end of file + return \ No newline at end of file diff --git a/code/datums/diseases/magnitis.dm b/code/datums/diseases/magnitis.dm new file mode 100644 index 00000000000..fa67c3435cb --- /dev/null +++ b/code/datums/diseases/magnitis.dm @@ -0,0 +1,59 @@ +/datum/disease/magnitis + name = "Magnitis" + max_stages = 4 + spread = "Airborne" + cure = "Iron" + agent = "Fukkos Miracos" + affected_species = list("Human") + curable = 0 + +/datum/disease/magnitis/stage_act() + ..() + switch(stage) + if(2) + if(prob(2)) + affected_mob << "\red You feel a slight shock course through your body." + if(prob(2)) + for(var/obj/M in orange(2,affected_mob)) + if(M.flags & CONDUCT) + if(M.x > affected_mob.x) + M.x-- + else if(M.x < affected_mob.x) + M.x++ + if(M.y > affected_mob.y) + M.y-- + else if(M.y < affected_mob.y) + M.y++ + if(3) + if(prob(2)) + affected_mob << "\red You feel a strong shock course through your body." + if(prob(2)) + affected_mob << "\red You feel like clowning around." + if(prob(4)) + for(var/obj/M in orange(4,affected_mob)) + if(M.flags & CONDUCT) + if(M.x > affected_mob.x) + M.x-=rand(1,min(3,M.x-affected_mob.x)) + else if(M.x < affected_mob.x) + M.x+=rand(1,min(3,affected_mob.x-M.x)) + if(M.y > affected_mob.y) + M.y-=rand(1,min(3,M.y-affected_mob.y)) + else if(M.y < affected_mob.y) + M.y+=rand(1,min(3,affected_mob.y-M.y)) + if(4) + if(prob(2)) + affected_mob << "\red You feel a powerful shock course through your body." + if(prob(2)) + affected_mob << "\red You query upon the nature of miracles." + if(prob(8)) + for(var/obj/M in orange(6,affected_mob)) + if(M.flags & CONDUCT) + if(M.x > affected_mob.x) + M.x-=rand(1,min(5,M.x-affected_mob.x)) + else if(M.x < affected_mob.x) + M.x+=rand(1,min(5,affected_mob.x-M.x)) + if(M.y > affected_mob.y) + M.y-=rand(1,min(5,M.y-affected_mob.y)) + else if(M.y < affected_mob.y) + M.y+=rand(1,min(5,affected_mob.y-M.y)) + return \ No newline at end of file diff --git a/code/game/gamemodes/events.dm b/code/game/gamemodes/events.dm index de43da80426..8090a490738 100644 --- a/code/game/gamemodes/events.dm +++ b/code/game/gamemodes/events.dm @@ -233,7 +233,7 @@ /proc/viral_outbreak() command_alert("Confirmed outbreak of level 7 viral biohazard aboard [station_name()]. All personnel must contain the outbreak.", "Biohazard Alert") world << sound('outbreak7.ogg') - var/virus_type = pick(/datum/disease/dnaspread,/datum/disease/cold) + var/virus_type = pick(/datum/disease/dnaspread,/datum/disease/cold,/datum/disease/brainrot,/datum/disease/magnitis) for(var/mob/living/carbon/human/H in world) if((H.virus) || (H.stat == 2)) continue diff --git a/code/game/jobs/jobprocs.dm b/code/game/jobs/jobprocs.dm index 18bcc57d621..6dd2088e93e 100644 --- a/code/game/jobs/jobprocs.dm +++ b/code/game/jobs/jobprocs.dm @@ -597,6 +597,8 @@ usr << "You form a wall in front of yourself." var/obj/forcefield/F = new /obj/forcefield(locate(usr.x,usr.y,usr.z)) F.icon_state = "empty" + F.name = "invisible wall" + F.desc = "You have a bad feeling about this." spawn (300) del (F) return diff --git a/code/game/machinery/computer/medical.dm b/code/game/machinery/computer/medical.dm index dd2acb3a344..7307435c485 100644 --- a/code/game/machinery/computer/medical.dm +++ b/code/game/machinery/computer/medical.dm @@ -92,6 +92,7 @@
Plasmatoid
Space Rhinovirus
Robot Transformation +
Magnitis
Back"} if(6.0) dat += "
Medical Robot Monitor
" @@ -250,6 +251,16 @@
Notes: This disease, actually acute nanomachine infection, converts the victim into a cyborg.

Severity: Major"} + if("mgn") + src.temp = {"Name: Magnitis +
Number of stages: 4 +
Spread: Airborne +
Possible Cure: Iron +
Affected Species: Human +
+
Notes: This disease disrupts the magnetic field of your body, making it act as if a powerful magnet. Injections of iron help stabilize the field. +
+
Severity: Medium"} if (href_list["del_all"]) src.temp = text("Are you sure you wish to delete all records?
\n\tYes
\n\tNo
", src, src) diff --git a/code/game/machinery/processor.dm b/code/game/machinery/processor.dm index 5b9f1d48d2c..160afb9a989 100644 --- a/code/game/machinery/processor.dm +++ b/code/game/machinery/processor.dm @@ -47,7 +47,7 @@ obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob) new /obj/item/weapon/reagent_containers/food/snacks/ketchup(src.loc) return user << "There doesn't appear to be anything in the processing chamber." -/* + /obj/machinery/processor/attackby(obj/item/weapon/grab/G as obj, mob/user as mob) if(istype(G.affecting, /mob/living/carbon/alien/larva/metroid)) sleep(40) @@ -61,9 +61,7 @@ obj/machinery/processor/attackby(var/obj/item/O as obj, var/mob/user as mob) newmob:client:eye = newmob del(G.affecting) del(G) - var/obj/item/weapon/reagent_containers/food/drinks/jar/J = new /obj/item/weapon/reagent_containers/food/drinks/jar(src.loc) - J.add_reagent("metroid",50) //Code no work :< -- Urist -*/ + new /obj/item/weapon/reagent_containers/food/drinks/jar(src.loc) /* /obj/item/weapon/reagent_containers/food/snacks/grown/berries diff --git a/code/game/objects/items/weapons/tools.dm b/code/game/objects/items/weapons/tools.dm index 61ba5b60e5f..1f0b3132535 100644 --- a/code/game/objects/items/weapons/tools.dm +++ b/code/game/objects/items/weapons/tools.dm @@ -139,11 +139,15 @@ WELDINGTOOOL /obj/item/weapon/weldingtool/afterattack(obj/O as obj, mob/user as mob) - if (istype(O, /obj/reagent_dispensers/fueltank) && get_dist(src,O) <= 1) + if (istype(O, /obj/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && !src.welding) O.reagents.trans_to(src, 20) user << "\blue Welder refueled" playsound(src.loc, 'refill.ogg', 50, 1, -6) + else if (istype(O, /obj/reagent_dispensers/fueltank) && get_dist(src,O) <= 1 && src.welding) + user << "\red That was stupid of you." + explosion(O.loc,2,4,8) + else if (src.welding) use_fuel(1) diff --git a/code/game/supplyshuttle.dm b/code/game/supplyshuttle.dm index 80cb59b3f7f..0f28b6eeda7 100644 --- a/code/game/supplyshuttle.dm +++ b/code/game/supplyshuttle.dm @@ -146,7 +146,8 @@ var/supply_shuttle_points = 50 contains = list("/obj/item/weapon/reagent_containers/glass/bottle/flu_virion", "/obj/item/weapon/reagent_containers/glass/bottle/cold", "/obj/item/weapon/reagent_containers/glass/bottle/fake_gbs", - "/obj/item/weapon/reagent_containers/glass/bottle/gbs", + "/obj/item/weapon/reagent_containers/glass/bottle/magnitis", +// "/obj/item/weapon/reagent_containers/glass/bottle/gbs", No. Just no. "/obj/item/weapon/reagent_containers/glass/bottle/brainrot", "/obj/item/weapon/storage/firstaid/syringes", "/obj/item/weapon/storage/beakerbox") diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index 98b55f38ca3..667c1ac62be 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -1122,6 +1122,9 @@ var/showadminmessages = 1 if(aliens_allowed) alien_infestation() message_admins("[key_name_admin(usr)] has spawned aliens", 1) + if("virus") + viral_outbreak() + message_admins("[key_name_admin(usr)] has spawned a virus outbreak", 1) if("retardify") if (src.rank in list("Shit Guy", "Coder", "Host")) for(var/mob/living/carbon/human/H in world) @@ -1491,6 +1494,7 @@ var/showadminmessages = 1 Spawn wormholes (Untested)
Spawn magma(Untested)
Trigger an Alien infestation
+Trigger an Virus Outbreak
Ghost Mode
Remove all urine/poo from station
Make all players retarded
diff --git a/code/modules/admin/verbs/playsound.dm b/code/modules/admin/verbs/playsound.dm index 67d2e14c99f..3477e1a81b4 100644 --- a/code/modules/admin/verbs/playsound.dm +++ b/code/modules/admin/verbs/playsound.dm @@ -40,6 +40,8 @@ set category = "Fun" set name = "Cuban Pete Time" + message_admins("[key_name_admin(usr)] has declared Cuban Pete Time!", 1) + for(var/mob/M in world) if(M.midis) M << 'cubanpetetime.ogg' diff --git a/goonstation.dme b/goonstation.dme index 682008dfbd4..bc913499875 100644 --- a/goonstation.dme +++ b/goonstation.dme @@ -173,6 +173,7 @@ #include "code\datums\diseases\flu.dm" #include "code\datums\diseases\gbs.dm" #include "code\datums\diseases\jungle_fever.dm" +#include "code\datums\diseases\magnitis.dm" #include "code\datums\diseases\plasmatoid.dm" #include "code\datums\diseases\robotic_transformation.dm" #include "code\datums\diseases\xeno_transformation.dm" diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi index fdeca47252c..27bc3493b8d 100644 Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ