[READY]Plague rat (#13968)

* Le Ratto

* Description

* Update plague.dm

* Update plague.dm

* Update plague_rat.dm

* Update code/modules/mob/living/simple_animal/hostile/plague_rat.dm

Co-authored-by: Ashleigh Carr <ashcorr20@gmail.com>

* Comments and plague meat

* Update code/datums/diseases/plague.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/datums/diseases/plague.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/datums/diseases/plague.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/modules/food_and_drinks/food/snacks/meat.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/modules/mob/living/simple_animal/hostile/plague_rat.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/modules/mob/living/simple_animal/hostile/plague_rat.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/modules/mob/living/simple_animal/hostile/plague_rat.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/modules/mob/living/simple_animal/hostile/plague_rat.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/modules/mob/living/simple_animal/hostile/plague_rat.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/modules/mob/living/simple_animal/hostile/plague_rat.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* Update code/modules/reagents/chemistry/reagents/other_reagents.dm

Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>

* No more infecting people with space suits and armor

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

* Update plague_rat.dm

Co-authored-by: Ashleigh Carr <ashcorr20@gmail.com>
Co-authored-by: Anvilman6 <54463777+Anvilman6@users.noreply.github.com>
This commit is contained in:
SuperSlayer
2022-05-21 14:42:37 +03:00
committed by GitHub
parent bc18cbc093
commit ad458c28ff
5 changed files with 172 additions and 3 deletions

View File

@@ -0,0 +1,54 @@
/datum/disease/plague
form = "Disease"
name = "Plague"
max_stages = 5
spread_text = "Airborne"
cure_text = "Spaceacillin"
cures = list(/datum/reagent/medicine/spaceacillin)
agent = "Plague rats"
viable_mobtypes = list(/mob/living/carbon/human)
cure_chance = 20
desc = "A deadly disease, spread by infected animals and insects. It causes fever, weakness, headache and choking."
required_organs = list(/obj/item/organ/lungs)
severity = DISEASE_SEVERITY_BIOHAZARD
bypasses_immunity = TRUE
/datum/disease/tuberculosis/stage_act()
..()
switch(stage)
if(2)
if(prob(2))
affected_mob.emote("cough")
to_chat(affected_mob, span_danger("Your chest hurts."))
if(prob(2))
to_chat(affected_mob, span_danger("Your head pounds."))
if(4)
if(prob(2))
to_chat(affected_mob, span_userdanger("You can't keep steady!"))
affected_mob.Dizzy(5)
if(prob(2))
to_chat(affected_mob, span_danger("You can barely breathe!"))
affected_mob.adjustOxyLoss(5)
affected_mob.emote("gasp")
if(prob(10))
to_chat(affected_mob, span_danger("You can't breathe!"))
affected_mob.adjustOxyLoss(20)
affected_mob.emote("gasp")
if(prob(2))
to_chat(affected_mob, span_danger("You feel weak!"))
affected_mob.adjustStaminaLoss(40)
if(5)
if(prob(10))
affected_mob.vomit(20)
if(prob(15))
affected_mob.adjust_bodytemperature(30)
to_chat(affected_mob, span_danger("You feel hot!"))
if(prob(2))
to_chat(affected_mob, span_danger("You feel very weak!"))
affected_mob.adjustStaminaLoss(100)
if(prob(6))
to_chat(affected_mob, span_danger("Your lungs feel full of fluid! You're unable to breathe!"))
affected_mob.adjustOxyLoss(35)
affected_mob.emote("gasp")
return

View File

@@ -340,6 +340,19 @@
icon_state = "shadowmeat" icon_state = "shadowmeat"
desc = "It is covered in a strange darkness. This slab's magical properties appear to be drastically weakened due to the synthetic nature of the meat." desc = "It is covered in a strange darkness. This slab's magical properties appear to be drastically weakened due to the synthetic nature of the meat."
/obj/item/reagent_containers/food/snacks/meat/slab/plagued
name = "meat"
desc = "A slab of disease-ridden meat. Eating it is a questionable idea."
icon_state = "meat"
dried_type = /obj/item/reagent_containers/food/snacks/sosjerky/
bitesize = 3
list_reagents = list(/datum/reagent/consumable/nutriment = 3, /datum/reagent/consumable/cooking_oil = 2, /datum/reagent/plaguebacteria = 3) //It is infected by plague
slice_path = /obj/item/reagent_containers/food/snacks/meat/raw_cutlet/plain
slices_num = 3
filling_color = "#FF0000"
tastes = list("meat" = 2, "decay" = 1)
foodtype = MEAT | RAW
////////////////////////////////////// MEAT STEAKS /////////////////////////////////////////////////////////// ////////////////////////////////////// MEAT STEAKS ///////////////////////////////////////////////////////////

View File

@@ -0,0 +1,89 @@
/mob/living/simple_animal/hostile/plaguerat
name = "rat"
desc = "It's a large rodent, afflicted with both anger issues and a terrible disease."
icon_state = "mouse_gray"
icon_living = "mouse_gray"
icon_dead = "mouse_gray_dead"
speak = list("Skree!","SKREEE!","Squeak?")
speak_emote = list("squeaks")
emote_hear = list("Hisses.")
emote_see = list("runs in a circle.", "stands on its hind legs.")
melee_damage_lower = 5 //stronk
melee_damage_upper = 5
obj_damage = 5
speak_chance = 1
turns_per_move = 5
see_in_dark = 6
maxHealth = 20
health = 20
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab/plagued = 1)
density = FALSE
ventcrawler = VENTCRAWLER_ALWAYS
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
mob_size = MOB_SIZE_TINY
mob_biotypes = list(MOB_ORGANIC,MOB_BEAST)
faction = list("rat")
var/playstyle_string = "<span class='big bold'>You are a Plague Rat,</span></b> \
Your goal is to spread The Plague as much as possible, by infecting anyone you can. \
You can do this by licking their food, or by directly biting them. \
You can also nibble on dead bodies to slightly heal yourself! \
However, you are still very fragile! You're just are a small rat, after all.</b>"
/mob/living/simple_animal/hostile/plaguerat/AttackingTarget()
..()
var/mob/living/carbon/C = target
if(isliving(C) && (C.stat != DEAD)) //It is for injecting plague reagent into people via biting them.
if(C.reagents)
var/obj/item/I = C.get_item_by_slot(ITEM_SLOT_OCLOTHING)
if(!istype(I, /obj/item/clothing/suit/space/hardsuit) && !istype(I, /obj/item/clothing/suit/armor))
C.reagents.add_reagent(/datum/reagent/plaguebacteria, 3)
if(C.stat == DEAD) //It is for biting dead bodies to heal.
src.visible_message(span_warning("[src] starts biting into [C]!"),span_notice("You start eating [C]..."))
if(do_mob(src, target, 3 SECONDS))
to_chat(src, span_notice ("You finish eating [C]."))
heal_bodypart_damage(5)
C.adjustBruteLoss(15)
return
if (!isliving(target) && target.reagents && target.is_injectable(src, allowmobs = TRUE)) //It is for injecting plague reagent into food and reagent containers by licking them. Not to be confused with biting people.
src.visible_message(span_warning("[src] starts licking [target]!"),span_notice("You start licking [target]..."))
if (do_mob(src, target, 2 SECONDS))
target.reagents.add_reagent(/datum/reagent/plaguebacteria,rand(1,2),no_react = TRUE)
to_chat(src, span_notice("You finish licking [target]."))
return
//Spawn Event
/datum/round_event_control/plaguerat
name = "Spawn a Plague Rat"
typepath = /datum/round_event/ghost_role/plaguerat
weight = 6
max_occurrences = 1
earliest_start = 30 MINUTES
/datum/round_event/ghost_role/plaguerat
minimum_required = 1
role_name = "plaguerat"
/datum/round_event/ghost_role/plaguerat/spawn_role()
var/list/candidates = get_candidates(ROLE_SENTIENCE, null, ROLE_SENTIENCE)
if(!candidates.len)
return NOT_ENOUGH_PLAYERS
var/mob/dead/selected = pick_n_take(candidates)
var/datum/mind/player_mind = new /datum/mind(selected.key)
player_mind.active = 1
if(!GLOB.xeno_spawn)
return MAP_ERROR
var/mob/living/simple_animal/hostile/plaguerat/S = new /mob/living/simple_animal/hostile/plaguerat/(pick(GLOB.xeno_spawn))
player_mind.transfer_to(S)
player_mind.assigned_role = "Plague rat"
player_mind.special_role = "Plague rat"
to_chat(S, S.playstyle_string)
SEND_SOUND(S, sound('sound/magic/mutate.ogg'))
message_admins("[ADMIN_LOOKUPFLW(S)] has been made into a plague rat by an event.")
log_game("[key_name(S)] was spawned as a plague rat by an event.")
spawned_mobs += S
return SUCCESSFUL_SPAWN

View File

@@ -2043,3 +2043,14 @@
wounded_part.heal_damage(0.25, 0.25) wounded_part.heal_damage(0.25, 0.25)
M.adjustStaminaLoss(-0.25*REM) // the more wounds, the more stamina regen M.adjustStaminaLoss(-0.25*REM) // the more wounds, the more stamina regen
..() ..()
/datum/reagent/plaguebacteria
name = "Yersinia pestis"
description = "A horrible plague, in a container. It is a TERRIBLE idea to drink this."
color = "#7CFC00"
taste_description = "death"
can_synth = FALSE
/datum/reagent/plaguebacteria/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
L.ForceContractDisease(new /datum/disease/plague(), FALSE, TRUE)

View File

@@ -508,6 +508,7 @@
#include "code\datums\diseases\magnitis.dm" #include "code\datums\diseases\magnitis.dm"
#include "code\datums\diseases\parrotpossession.dm" #include "code\datums\diseases\parrotpossession.dm"
#include "code\datums\diseases\pierrot_throat.dm" #include "code\datums\diseases\pierrot_throat.dm"
#include "code\datums\diseases\plague.dm"
#include "code\datums\diseases\retrovirus.dm" #include "code\datums\diseases\retrovirus.dm"
#include "code\datums\diseases\rhumba_beat.dm" #include "code\datums\diseases\rhumba_beat.dm"
#include "code\datums\diseases\sleepy.dm" #include "code\datums\diseases\sleepy.dm"
@@ -2534,6 +2535,7 @@
#include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm" #include "code\modules\mob\living\simple_animal\hostile\nanotrasen.dm"
#include "code\modules\mob\living\simple_animal\hostile\netherworld.dm" #include "code\modules\mob\living\simple_animal\hostile\netherworld.dm"
#include "code\modules\mob\living\simple_animal\hostile\pirate.dm" #include "code\modules\mob\living\simple_animal\hostile\pirate.dm"
#include "code\modules\mob\living\simple_animal\hostile\plague_rat.dm"
#include "code\modules\mob\living\simple_animal\hostile\rat.dm" #include "code\modules\mob\living\simple_animal\hostile\rat.dm"
#include "code\modules\mob\living\simple_animal\hostile\regalrat.dm" #include "code\modules\mob\living\simple_animal\hostile\regalrat.dm"
#include "code\modules\mob\living\simple_animal\hostile\russian.dm" #include "code\modules\mob\living\simple_animal\hostile\russian.dm"