From 2fe846065a6d4a98368985317dc99ea800a8ad53 Mon Sep 17 00:00:00 2001 From: "giacomand@gmail.com" Date: Wed, 24 Oct 2012 00:29:27 +0000 Subject: [PATCH] -Added "give disease" VV dropdown option. -You cannot spread diseases which are marked as SPECIAL or NON_CONTAGIOUS via blood injections. -Carp no longer drift in space. -Captain helmet now protects you from facehuggers. -All humanoid aliens can now Regurgitate. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@4946 316c924e-a436-60f5-8080-3fe189b3f50e --- code/datums/datumvars.dm | 14 ++++++++++++++ code/datums/disease.dm | 2 ++ code/datums/diseases/alien_embryo.dm | 1 - code/modules/admin/admin_verbs.dm | 11 +++++++++++ .../clothing/spacesuits/miscellaneous.dm | 1 - .../carbon/alien/humanoid/alien_powers.dm | 15 +++++++++++++++ .../carbon/alien/humanoid/caste/hunter.dm | 17 +---------------- .../mob/living/simple_animal/hostile/carp.dm | 2 +- code/modules/reagents/Chemistry-Reagents.dm | 4 +++- 9 files changed, 47 insertions(+), 20 deletions(-) diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm index fba1e04b19c..b53426a4a92 100644 --- a/code/datums/datumvars.dm +++ b/code/datums/datumvars.dm @@ -245,6 +245,7 @@ client if(ismob(D)) body += "" + body += "" body += "" body += "" body += "" @@ -477,6 +478,19 @@ client if(!admin_rank_check(src.holder.level, 3)) return src.give_spell(MOB) href_list["datumrefresh"] = href_list["give_spell"] + else if (href_list["give_disease"]) + if(!href_list["give_disease"]) + return + var/mob/MOB = locate(href_list["give_disease"]) + if(!MOB) + return + if(!ismob(MOB)) + return + if(!src.holder) + return + if(!admin_rank_check(src.holder.level, 3)) return + src.give_disease(MOB) + href_list["datumrefresh"] = href_list["give_spell"] else if (href_list["ninja"]) if(!href_list["ninja"]) return diff --git a/code/datums/disease.dm b/code/datums/disease.dm index 9a56e665cad..918bdb535ff 100644 --- a/code/datums/disease.dm +++ b/code/datums/disease.dm @@ -17,6 +17,8 @@ to null does not delete the object itself. Thank you. */ +var/list/diseases = typesof(/datum/disease) - /datum/disease + /datum/disease var/form = "Virus" //During medscans, what the disease is referred to as diff --git a/code/datums/diseases/alien_embryo.dm b/code/datums/diseases/alien_embryo.dm index 0e9f41e8b50..4bf249b43d3 100644 --- a/code/datums/diseases/alien_embryo.dm +++ b/code/datums/diseases/alien_embryo.dm @@ -5,7 +5,6 @@ if(!holder) return if(holder == affected_mob) stage_act() - if(affected_mob) if(affected_mob.stat == DEAD) if(prob(50)) diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 40af83e0f9b..76210446860 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -592,6 +592,17 @@ log_admin("[key_name(usr)] gave [key_name(T)] the spell [S].") message_admins("\blue [key_name_admin(usr)] gave [key_name(T)] the spell [S].", 1) +/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." + 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/make_sound(var/obj/O in world) // -- TLE set category = "Special Verbs" set name = "Make Sound" diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 71dd6e20629..373dac2cae8 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -4,7 +4,6 @@ icon_state = "capspace" item_state = "capspacehelmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment. Only for the most fashionable of military figureheads." - flags = FPRINT | TABLEPASS | HEADCOVERSEYES | BLOCKHAIR flags_inv = HIDEFACE permeability_coefficient = 0.01 armor = list(melee = 65, bullet = 50, laser = 50,energy = 25, bomb = 50, bio = 100, rad = 50) diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm index a366503ac5c..79baa0eeae8 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm @@ -164,3 +164,18 @@ I kind of like the right click only--the window version can get a little confusi if("resin nest") new /obj/structure/stool/bed/nest(loc) return + +/mob/living/carbon/alien/humanoid/verb/regurgitate() + set name = "Regurgitate" + set desc = "Empties the contents of your stomach" + set category = "Alien" + + if(powerc()) + if(stomach_contents.len) + for(var/mob/M in src) + if(M in stomach_contents) + stomach_contents.Remove(M) + M.loc = loc + //Paralyse(10) + src.visible_message("\green [src] hurls out the contents of their stomach!") + return \ No newline at end of file diff --git a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm index 652bd14e244..0a9a69dd144 100644 --- a/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm +++ b/code/modules/mob/living/carbon/alien/humanoid/caste/hunter.dm @@ -73,19 +73,4 @@ update_icons() src << "\green You are no longer invisible." return -*/ -/mob/living/carbon/alien/humanoid/hunter/verb/regurgitate() - set name = "Regurgitate" - set desc = "Empties the contents of your stomach" - set category = "Alien" - - if(powerc()) - if(stomach_contents.len) - for(var/mob/M in src) - if(M in stomach_contents) - stomach_contents.Remove(M) - M.loc = loc - Paralyse(10) - for(var/mob/O in viewers(src, null)) - O.show_message(text("\green [src] hurls out the contents of their stomach!"), 1) - return \ No newline at end of file +*/ \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 021cdbc241d..56bfacf18c7 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -36,7 +36,7 @@ minbodytemp = 0 /mob/living/simple_animal/hostile/carp/Process_Spacemove(var/check_drift = 0) - return //No drifting in space for space carp! //original comments do not steal + return 1 //No drifting in space for space carp! //original comments do not steal /mob/living/simple_animal/hostile/carp/FindTarget() . = ..() diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 4615e57e6f3..74dbaa9672e 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -101,9 +101,11 @@ datum src = null for(var/datum/disease/D in self.data["viruses"]) var/datum/disease/virus = new D.type + // We don't spread. + if(virus.spread_type == SPECIAL || virus.spread_type == NON_CONTAGIOUS) continue + if(method == TOUCH) M.contract_disease(virus) - else //injected M.contract_disease(virus, 1, 0)