diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index b6e157c59b8..4c01933dbe6 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -245,7 +245,8 @@ client
if(ismob(D))
body += ""
- body += ""
+ body += ""
+ body += ""
body += ""
body += ""
@@ -494,6 +495,17 @@ client
src.give_disease(M)
href_list["datumrefresh"] = href_list["give_spell"]
+
+ else if(href_list["give_disease2"])
+ if(!check_rights(R_ADMIN|R_FUN)) return
+
+ var/mob/M = locate(href_list["give_disease2"])
+ if(!istype(M))
+ usr << "This can only be used on instances of type /mob"
+ return
+
+ src.give_disease2(M)
+ href_list["datumrefresh"] = href_list["give_spell"]
else if(href_list["ninja"])
if(!check_rights(R_SPAWN)) return
diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm
index 77e45f2d679..05afecb3a99 100644
--- a/code/modules/admin/admin_verbs.dm
+++ b/code/modules/admin/admin_verbs.dm
@@ -557,14 +557,42 @@ var/list/admin_verbs_mentor = list(
/client/proc/give_disease(mob/T as mob in mob_list) // -- Giacom
set category = "Fun"
- set name = "Give Disease"
- set desc = "Gives a Disease to a mob."
+ set name = "Give Disease (old)"
+ set desc = "Gives a (tg-style) Disease to a mob."
var/datum/disease/D = input("Choose the disease to give to that guy", "ACHOO") as null|anything in diseases
if(!D) return
T.contract_disease(new D, 1)
feedback_add_details("admin_verb","GD") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] gave [key_name(T)] the disease [D].")
message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the disease [D].", 1)
+
+/client/proc/give_disease2(mob/T as mob in mob_list) // -- Giacom
+ set category = "Fun"
+ set name = "Give Disease"
+ set desc = "Gives a Disease to a mob."
+
+ var/datum/disease2/disease/D = new /datum/disease2/disease()
+
+ var/greater = ((input("Is this a lesser or greater disease?", "Give Disease") in list("Lesser", "Greater")) == "Greater")
+
+ D.makerandom(greater)
+ if (!greater)
+ D.infectionchance = 1
+
+ D.infectionchance = input("How virulent is this disease? (1-100)", "Give Disease", D.infectionchance) as num
+
+ if(istype(T,/mob/living/carbon/human))
+ var/mob/living/carbon/human/H = T
+ if (H.species)
+ D.affected_species = list(H.species.name)
+ if(istype(T,/mob/living/carbon/monkey))
+ var/mob/living/carbon/monkey/M = T
+ D.affected_species = list(M.greaterform)
+ infect_virus2(T,D,1)
+
+ feedback_add_details("admin_verb","GD2") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
+ log_admin("[key_name(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].")
+ message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] a [(greater)? "greater":"lesser"] disease2 with infection chance [D.infectionchance].", 1)
/client/proc/make_sound(var/obj/O in world) // -- TLE
set category = "Special Verbs"