Merge pull request #317 from Chemlight/Make-Virology-Great-Again

Reverse Engineering Virology from Beeviro
This commit is contained in:
Dahlular
2020-07-14 17:04:38 -06:00
committed by GitHub
38 changed files with 551 additions and 1350 deletions

View File

@@ -5,48 +5,26 @@ is currently following.
*/
GLOBAL_LIST_INIT(disease_ability_singletons, list(
new /datum/disease_ability/action/cough,
new /datum/disease_ability/action/sneeze,
new /datum/disease_ability/action/infect,
new /datum/disease_ability/symptom/mild/cough,
new /datum/disease_ability/symptom/mild/sneeze,
new /datum/disease_ability/symptom/medium/beard,
new /datum/disease_ability/symptom/medium/hallucigen,
new /datum/disease_ability/symptom/medium/confusion,
new /datum/disease_ability/symptom/medium/vomit,
new /datum/disease_ability/symptom/medium/voice_change,
new /datum/disease_ability/symptom/medium/visionloss,
new /datum/disease_ability/symptom/medium/deafness,
new /datum/disease_ability/symptom/powerful/narcolepsy,
new /datum/disease_ability/symptom/medium/fever,
new /datum/disease_ability/symptom/medium/shivering,
new /datum/disease_ability/symptom/medium/headache,
new /datum/disease_ability/symptom/medium/nano_boost,
new /datum/disease_ability/symptom/medium/nano_destroy,
new /datum/disease_ability/symptom/medium/viraladaptation,
new /datum/disease_ability/symptom/medium/viralevolution,
new /datum/disease_ability/symptom/medium/vitiligo,
new /datum/disease_ability/symptom/medium/revitiligo,
new /datum/disease_ability/symptom/medium/itching,
new /datum/disease_ability/symptom/medium/heal/weight_loss,
new /datum/disease_ability/symptom/medium/heal/sensory_restoration,
new /datum/disease_ability/symptom/medium/heal/mind_restoration,
new /datum/disease_ability/symptom/powerful/fire,
new /datum/disease_ability/symptom/powerful/flesh_eating,
new /datum/disease_ability/symptom/powerful/genetic_mutation,
new /datum/disease_ability/symptom/powerful/inorganic_adaptation,
new /datum/disease_ability/symptom/powerful/heal/oxygen,
new /datum/disease_ability/symptom/powerful/heal/chem,
new /datum/disease_ability/symptom/powerful/heal/coma,
new /datum/disease_ability/symptom/powerful/heal/teleport,
new /datum/disease_ability/symptom/powerful/heal/growth,
new /datum/disease_ability/symptom/powerful/heal/EMP,
new /datum/disease_ability/symptom/powerful/heal/sweat,
new /datum/disease_ability/symptom/powerful/wizarditis,
new /datum/disease_ability/symptom/medium/pierrot,
new /datum/disease_ability/symptom/medium/cockroach,
new /datum/disease_ability/symptom/powerful/youth
))
new /datum/disease_ability/action/cough(),
new /datum/disease_ability/action/sneeze(),
new /datum/disease_ability/action/infect(),
new /datum/disease_ability/symptom/cough(),
new /datum/disease_ability/symptom/sneeze(),\
new /datum/disease_ability/symptom/hallucigen(),
new /datum/disease_ability/symptom/choking(),
new /datum/disease_ability/symptom/confusion(),
new /datum/disease_ability/symptom/youth(),
new /datum/disease_ability/symptom/vomit(),
new /datum/disease_ability/symptom/voice_change(),
new /datum/disease_ability/symptom/visionloss(),
new /datum/disease_ability/symptom/viraladaptation(),
new /datum/disease_ability/symptom/vitiligo(),
new /datum/disease_ability/symptom/sensory_restoration(),
new /datum/disease_ability/symptom/itching(),
new /datum/disease_ability/symptom/weight_loss(),
new /datum/disease_ability/symptom/metabolism_heal(),
new /datum/disease_ability/symptom/coma_heal()
))
/datum/disease_ability
var/name
@@ -256,180 +234,144 @@ new /datum/disease_ability/symptom/powerful/youth
O.AddComponent(/datum/component/infective, D.disease_template, 300)
StartCooldown()
return TRUE
/*******************BASE SYMPTOM TYPES*******************/
// cost is for convenience and can be changed. If you're changing req_tot_points then don't use the subtype...
//healing no longer costs more, sans regen coma, due to how healing symptoms have been made scary
/datum/disease_ability/symptom/mild
cost = 2
required_total_points = 4
category = "Symptom (Weak)"
//passive symptom abilities
/datum/disease_ability/symptom/medium
cost = 4
required_total_points = 8
category = "Symptom"
/datum/disease_ability/symptom/medium/heal
cost = 5
category = "Symptom (+)"
/datum/disease_ability/symptom/powerful
cost = 4
required_total_points = 16
category = "Symptom (Strong)"
/datum/disease_ability/symptom/powerful/heal
cost = 8
category = "Symptom (Strong+)"
/******MILD******/
/datum/disease_ability/symptom/mild/cough
/datum/disease_ability/symptom/cough
name = "Involuntary Coughing"
symptoms = list(/datum/symptom/cough)
cost = 2
required_total_points = 4
short_desc = "Cause victims to cough intermittently."
long_desc = "Cause victims to cough intermittently, spreading your infection if your transmissibility is high."
/datum/disease_ability/symptom/mild/sneeze
/datum/disease_ability/symptom/sneeze
name = "Involuntary Sneezing"
symptoms = list(/datum/symptom/sneeze)
cost = 2
required_total_points = 4
short_desc = "Cause victims to sneeze intermittently."
long_desc = "Cause victims to sneeze intermittently, spreading your infection and also increasing transmissibility and resistance, at the cost of stealth."
/******MEDIUM******/
/datum/disease_ability/symptom/medium/beard
/datum/disease_ability/symptom/beard
//I don't think I need to justify the fact that this is the best symptom
name = "Beard Growth"
symptoms = list(/datum/symptom/beard)
cost = 1
required_total_points = 8
short_desc = "Cause all victims to grow a luscious beard."
long_desc = "Cause all victims to grow a luscious beard. Ineffective against Santa Claus."
long_desc = "Cause all victims to grow a luscious beard. Decreases stats slightly. Ineffective against Santa Claus."
/datum/disease_ability/symptom/medium/hallucigen
/datum/disease_ability/symptom/hallucigen
name = "Hallucinations"
symptoms = list(/datum/symptom/hallucigen)
cost = 4
required_total_points = 8
short_desc = "Cause victims to hallucinate."
long_desc = "Cause victims to hallucinate. Decreases stats, especially resistance."
/datum/disease_ability/symptom/medium/confusion
/datum/disease_ability/symptom/choking
name = "Choking"
symptoms = list(/datum/symptom/choking)
cost = 4
required_total_points = 8
short_desc = "Cause victims to choke."
long_desc = "Cause victims to choke, threatening asphyxiation. Decreases stats, especially transmissibility."
/datum/disease_ability/symptom/confusion
name = "Confusion"
symptoms = list(/datum/symptom/confusion)
cost = 4
required_total_points = 8
short_desc = "Cause victims to become confused."
long_desc = "Cause victims to become confused intermittently."
/datum/disease_ability/symptom/medium/vomit
symptoms = list(/datum/symptom/vomit)
short_desc = "Cause victims to vomit."
long_desc = "Cause victims to vomit. Slightly increases transmissibility. Vomiting also also causes the victims to lose nutrition and removes some toxin damage."
/datum/disease_ability/symptom/medium/voice_change
symptoms = list(/datum/symptom/voice_change)
short_desc = "Change the voice of victims."
long_desc = "Change the voice of victims, causing confusion in communications."
/datum/disease_ability/symptom/medium/visionloss
symptoms = list(/datum/symptom/visionloss)
short_desc = "Damage the eyes of victims, eventually causing blindness."
long_desc = "Damage the eyes of victims, eventually causing blindness. Decreases all stats."
/datum/disease_ability/symptom/medium/deafness
symptoms = list(/datum/symptom/deafness)
/datum/disease_ability/symptom/medium/fever
symptoms = list(/datum/symptom/fever)
/datum/disease_ability/symptom/medium/shivering
symptoms = list(/datum/symptom/shivering)
/datum/disease_ability/symptom/medium/headache
symptoms = list(/datum/symptom/headache)
/datum/disease_ability/symptom/medium/nano_boost
symptoms = list(/datum/symptom/nano_boost)
/datum/disease_ability/symptom/medium/nano_destroy
symptoms = list(/datum/symptom/nano_destroy)
/datum/disease_ability/symptom/medium/viraladaptation
symptoms = list(/datum/symptom/viraladaptation)
short_desc = "Cause your infection to become more resistant to detection and eradication."
long_desc = "Cause your infection to mimic the function of normal body cells, becoming much harder to spot and to eradicate, but reducing its speed."
/datum/disease_ability/symptom/medium/viralevolution
symptoms = list(/datum/symptom/viralevolution)
/datum/disease_ability/symptom/medium/vitiligo
symptoms = list(/datum/symptom/vitiligo)
/datum/disease_ability/symptom/medium/revitiligo
symptoms = list(/datum/symptom/revitiligo)
/datum/disease_ability/symptom/medium/pierrot
symptoms = list(/datum/symptom/pierrot)
/datum/disease_ability/symptom/medium/cockroach
symptoms = list(/datum/symptom/cockroach)
/datum/disease_ability/symptom/medium/itching
symptoms = list(/datum/symptom/itching)
short_desc = "Cause victims to itch."
long_desc = "Cause victims to itch, increasing all stats except stealth."
/datum/disease_ability/symptom/medium/heal/weight_loss
symptoms = list(/datum/symptom/weight_loss)
short_desc = "Cause victims to lose weight."
long_desc = "Cause victims to lose weight, and make it almost impossible for them to gain nutrition from food. Reduced nutrition allows your infection to spread more easily from hosts, especially by sneezing."
/datum/disease_ability/symptom/medium/heal/sensory_restoration
symptoms = list(/datum/symptom/sensory_restoration)
short_desc = "Regenerate eye and ear damage of victims."
long_desc = "Regenerate eye and ear damage of victims."
/datum/disease_ability/symptom/medium/heal/mind_restoration
symptoms = list(/datum/symptom/mind_restoration)
/******POWERFUL******/
/datum/disease_ability/symptom/powerful/fire
symptoms = list(/datum/symptom/fire)
/datum/disease_ability/symptom/powerful/flesh_eating
symptoms = list(/datum/symptom/flesh_eating)
/datum/disease_ability/symptom/powerful/wizarditis //strong because it can remove hardsuits and bio protection
symptoms = list(/datum/symptom/wizarditis)
/datum/disease_ability/symptom/powerful/genetic_mutation
symptoms = list(/datum/symptom/genetic_mutation)
/datum/disease_ability/symptom/powerful/inorganic_adaptation
symptoms = list(/datum/symptom/inorganic_adaptation)
/datum/disease_ability/symptom/powerful/narcolepsy
symptoms = list(/datum/symptom/narcolepsy)
/datum/disease_ability/symptom/powerful/youth
/datum/disease_ability/symptom/youth
name = "Eternal Youth"
symptoms = list(/datum/symptom/youth)
cost = 4
required_total_points = 8
short_desc = "Cause victims to become eternally young."
long_desc = "Cause victims to become eternally young. Provides boosts to all stats except transmissibility."
/****HEALING SUBTYPE****/
/datum/disease_ability/symptom/powerful/heal/oxygen
symptoms = list(/datum/symptom/oxygen)
/datum/disease_ability/symptom/powerful/heal/chem
symptoms = list(/datum/symptom/heal/chem)
/datum/disease_ability/symptom/vomit
name = "Vomiting"
symptoms = list(/datum/symptom/vomit)
cost = 4
required_total_points = 8
short_desc = "Cause victims to vomit."
long_desc = "Cause victims to vomit. Slightly increases transmissibility. Vomiting also also causes the victims to lose nutrition and removes some toxin damage."
/datum/disease_ability/symptom/powerful/heal/coma
/datum/disease_ability/symptom/voice_change
name = "Voice Changing"
symptoms = list(/datum/symptom/voice_change)
cost = 4
required_total_points = 8
short_desc = "Change the voice of victims."
long_desc = "Change the voice of victims, causing confusion in communications."
/datum/disease_ability/symptom/visionloss
name = "Vision Loss"
symptoms = list(/datum/symptom/visionloss)
cost = 4
required_total_points = 8
short_desc = "Damage the eyes of victims, eventually causing blindness."
long_desc = "Damage the eyes of victims, eventually causing blindness. Decreases all stats."
/datum/disease_ability/symptom/viraladaptation
name = "Self-Adaptation"
symptoms = list(/datum/symptom/viraladaptation)
cost = 4
required_total_points = 8
short_desc = "Cause your infection to become more resistant to detection and eradication."
long_desc = "Cause your infection to mimic the function of normal body cells, becoming much harder to spot and to eradicate, but reducing its speed."
/datum/disease_ability/symptom/vitiligo
name = "Skin Paleness"
symptoms = list(/datum/symptom/vitiligo)
cost = 1
required_total_points = 8
short_desc = "Cause victims to become pale."
long_desc = "Cause victims to become pale. Decreases all stats."
/datum/disease_ability/symptom/sensory_restoration
name = "Sensory Restoration"
symptoms = list(/datum/symptom/sensory_restoration)
cost = 4
required_total_points = 8
short_desc = "Regenerate eye and ear damage of victims."
long_desc = "Regenerate eye and ear damage of victims."
/datum/disease_ability/symptom/itching
name = "Itching"
symptoms = list(/datum/symptom/itching)
cost = 4
required_total_points = 8
short_desc = "Cause victims to itch."
long_desc = "Cause victims to itch, increasing all stats except stealth."
/datum/disease_ability/symptom/weight_loss
name = "Weight Loss"
symptoms = list(/datum/symptom/weight_loss)
cost = 4
required_total_points = 8
short_desc = "Cause victims to lose weight."
long_desc = "Cause victims to lose weight, and make it almost impossible for them to gain nutrition from food. Reduced nutrition allows your infection to spread more easily from hosts, especially by sneezing."
/datum/disease_ability/symptom/metabolism_heal
name = "Metabolic Boost"
symptoms = list(/datum/symptom/heal/metabolism)
cost = 4
required_total_points = 16
short_desc = "Increase the metabolism of victims, causing them to process chemicals and grow hungry faster."
long_desc = "Increase the metabolism of victims, causing them to process chemicals twice as fast and grow hungry more quickly."
/datum/disease_ability/symptom/coma_heal
name = "Regenerative Coma"
symptoms = list(/datum/symptom/heal/coma)
/datum/disease_ability/symptom/powerful/heal/teleport
symptoms = list(/datum/symptom/teleport)
/datum/disease_ability/symptom/powerful/heal/growth
symptoms = list(/datum/symptom/growth)
/datum/disease_ability/symptom/powerful/heal/EMP
symptoms = list(/datum/symptom/EMP)
/datum/disease_ability/symptom/powerful/heal/sweat
symptoms = list(/datum/symptom/sweat)
cost = 8
required_total_points = 16
short_desc = "Cause victims to fall into a healing coma when hurt."
long_desc = "Cause victims to fall into a healing coma when hurt."

View File

@@ -467,8 +467,7 @@
/obj/item/reagent_containers/glass/bottle/mutagen = 1,
/obj/item/reagent_containers/glass/bottle/plasma = 1,
/obj/item/reagent_containers/glass/bottle/synaptizine = 1,
/obj/item/reagent_containers/glass/bottle/formaldehyde = 1,
/obj/item/reagent_containers/glass/bottle/viralbase = 1)
/obj/item/reagent_containers/glass/bottle/formaldehyde = 1)
// ----------------------------
// Disk """fridge"""

View File

@@ -23,8 +23,6 @@
var/obj/item/clothing/CH = head
if (CS.clothing_flags & CH.clothing_flags & THICKMATERIAL)
return 1
if(HAS_TRAIT(src, TRAIT_BEEFRIEND))
return 1
return 0

View File

@@ -174,15 +174,3 @@
var/obj/item/clothing/head/helmet/justice/escape/helmet = new(src)
equip_to_slot_or_del(helmet,SLOT_HEAD)
helmet.attack_self(src) // todo encapsulate toggle
/mob/living/carbon/monkey/tumor
name = "living teratoma"
verb_say = "blabbers"
initial_language_holder = /datum/language_holder/monkey
icon = 'icons/mob/monkey.dmi'
icon_state = ""
butcher_results = list(/obj/effect/spawner/lootdrop/teratoma/minor = 5, /obj/effect/spawner/lootdrop/teratoma/major = 1)
type_of_meat = /obj/effect/spawner/lootdrop/teratoma/minor
aggressive = TRUE
bodyparts = list(/obj/item/bodypart/chest/monkey/teratoma, /obj/item/bodypart/head/monkey/teratoma, /obj/item/bodypart/l_arm/monkey/teratoma,
/obj/item/bodypart/r_arm/monkey/teratoma, /obj/item/bodypart/r_leg/monkey/teratoma, /obj/item/bodypart/l_leg/monkey/teratoma)

View File

@@ -56,10 +56,6 @@
var/turf/T = get_turf(src)
for(var/obj/item/I in contents)
I.on_mob_death(src, gibbed)
for(var/datum/disease/advance/D in diseases)
for(var/symptom in D.symptoms)
var/datum/symptom/S = symptom
S.OnDeath(D)
if(mind && mind.name && mind.active && !istype(T.loc, /area/ctf))
var/rendered = "<span class='deadsay'><b>[mind.name]</b> has died at <b>[get_area_name(T)]</b>.</span>"
deadchat_broadcast(rendered, follow_target = src, turf_target = T, message_type=DEADCHAT_DEATHRATTLE)

View File

@@ -1,35 +0,0 @@
/mob/living/simple_animal/hostile/heart
name = "Heart"
desc = "A living heart. It's angry!."
icon = 'icons/obj/surgery.dmi'
icon_state = "heart-on"
icon_living = "heart-on"
icon_dead = "heart-on"
gender = NEUTER
turns_per_move = 5
speak_emote = list("beats")
emote_see = list("beats")
a_intent = INTENT_HARM
maxHealth = 24
health = 24
speed = -1
harm_intent_damage = 5
melee_damage_lower = 15
melee_damage_upper = 15
response_help = "touches"
response_disarm = "beats"
response_harm = "breaks"
density = FALSE
attacktext = "beats"
ventcrawler = VENTCRAWLER_ALWAYS
attack_sound = 'sound/effects/singlebeat.ogg'
stat_attack = UNCONSCIOUS
attack_same = 1
gold_core_spawnable = HOSTILE_SPAWN
see_in_dark = 8
deathmessage = "falls lifeless."
del_on_death = 1
loot = list(/obj/item/organ/heart)
atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
minbodytemp = 150
maxbodytemp = 500

View File

@@ -611,16 +611,13 @@
nutriment_factor = 15 * REAGENTS_METABOLISM
metabolization_rate = 1 * REAGENTS_METABOLISM
taste_description = "sweetness"
var/power = 0
/datum/reagent/consumable/honey/on_mob_life(mob/living/carbon/M)
if(power == 0)
M.reagents.add_reagent(/datum/reagent/consumable/sugar,3)
if(prob(55))
M.adjustBruteLoss(-1*REM+power, 0)
M.adjustFireLoss(-1*REM+power, 0)
M.adjustOxyLoss(-1*REM+power, 0)
M.adjustToxLoss(-1*REM+power, 0)
M.adjustBruteLoss(-1*REM, 0)
M.adjustFireLoss(-1*REM, 0)
M.adjustOxyLoss(-1*REM, 0)
M.adjustToxLoss(-1*REM, 0)
..()
/datum/reagent/consumable/honey/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
@@ -631,12 +628,6 @@
S.success_multiplier = max(0.6, S.success_multiplier) // +60% success probability on each step, compared to bacchus' blessing's ~46%
..()
/datum/reagent/consumable/honey/special
name = "Royal Honey"
id = "royalhoney"
description = "A special honey which heals the imbiber far faster than normal honey"
power = 1
/datum/reagent/consumable/mayonnaise
name = "Mayonnaise"
id = "mayonnaise"

View File

@@ -1582,25 +1582,6 @@
taste_description = "rainbows"
var/no_mob_color = FALSE
/datum/reagent/consumable/laughter/laughtervirusfood
name = "anomolous virus food"
color = "#ffa6ff" //rgb: 255,166,255
taste_description = "a bad idea"
id = "laughtervirusfood"
/datum/reagent/consumable/virus_food/advvirusfood
name = "highly unstable virus food"
color = "#ffffff" //rgb: 255,255,255 ITS PURE WHITE CMON
taste_description = "an EXTREMELY bad idea"
id = "advvirusfood"
/datum/reagent/consumable/virus_food/viralbase
name = "Experimental viral base"
description = "Recently discovered by Nanotrasen's top scientists after years of research, this substance can be used as the base for extremely rare and extremely dangerous viruses once exposed to uranium."
color = "#fff0da"
taste_description = "tears of scientists"
id = "viralbase"
/datum/reagent/colorful_reagent/on_mob_life(mob/living/carbon/M)
if(!no_mob_color)
M.add_atom_colour(pick(random_color_list), WASHABLE_COLOUR_PRIORITY)

View File

@@ -230,19 +230,6 @@
if(D)
D.Evolve(level_min, level_max)
/datum/chemical_reaction/virus_food_laughter
name = "Anomolous virus food"
id = "virusfood_laughter"
results = list("laughtervirusfood" = 1)
required_reagents = list("laughter" = 5, "virusfood" = 1)
/datum/chemical_reaction/virus_food_admin
name = "Highly unstable virus Food"
id = "virusfood_admin"
results = list("advvirusfood" = 1)
required_reagents = list("viralbase" = 1, "uranium" = 20)
mix_message = "The mixture turns every colour of the rainbow, soon settling on a bright white. There's no way this isn't a good idea."
/datum/chemical_reaction/mix_virus/mix_virus_2
name = "Mix Virus 2"
@@ -330,23 +317,6 @@
required_reagents = list("uraniumplasmavirusfood_stable" = 1)
level_min = 8
level_max = 8
/datum/chemical_reaction/mix_virus/mix_virus_13
name = "Mix Virus 13"
id = "mixvirus13"
required_reagents = list("laughtervirusfood" = 1)
level_min = 0
level_max = 0
/datum/chemical_reaction/mix_virus/mix_virus_14
name = "Mix Virus 14"
id = "mixvirus14"
required_reagents = list("advvirusfood" = 1)
level_min = 9
level_max = 9
/datum/chemical_reaction/mix_virus/rem_virus

View File

@@ -126,11 +126,6 @@
/obj/item/reagent_containers/glass/beaker/on_reagent_change(changetype)
update_icon()
/obj/item/reagent_containers/glass/bottle/viralbase
name = "Highly potent Viral Base Bottle"
desc = "A small bottle. Contains a trace amount of a substance found by scientists that can be used to create extremely advanced diseases once exposed to uranium."
list_reagents = list("viralbase" = 1)
/obj/item/reagent_containers/glass/beaker/update_icon()
if(!cached_icon)
cached_icon = icon_state