From 72de15b5afd61d492a4ec7d7be07258070bdab4a Mon Sep 17 00:00:00 2001 From: Dwago <43487478+dragoslava@users.noreply.github.com> Date: Sun, 13 Jan 2019 10:08:50 -0800 Subject: [PATCH] Fix's the bug with the corgi dogs, makes mice butcherable. (#5818) rscadd: "Add mice to the butcher list" bugfix: "Fixed the infinite corgi glitch by modifying the recipe to require corgi meat --- code/modules/food/recipes_microwave.dm | 4 +- code/modules/food/recipes_oven.dm | 2 +- code/modules/mob/living/carbon/alien/alien.dm | 4 ++ .../living/carbon/alien/diona/diona_nymph.dm | 27 ++++++++++++- .../living/simple_animal/friendly/mouse.dm | 4 +- .../Chemistry-Reagents-Toxins.dm | 17 ++++++++ .../reagent_containers/food/snacks.dm | 4 +- .../reagent_containers/food/snacks/meat.dm | 21 ++++++++++ html/changelogs/miceandian.yml | 39 +++++++++++++++++++ 9 files changed, 114 insertions(+), 8 deletions(-) create mode 100644 html/changelogs/miceandian.yml diff --git a/code/modules/food/recipes_microwave.dm b/code/modules/food/recipes_microwave.dm index 9180fee32c5..4981cf151f6 100644 --- a/code/modules/food/recipes_microwave.dm +++ b/code/modules/food/recipes_microwave.dm @@ -114,7 +114,7 @@ I said no! /datum/recipe/mouseburger items = list( /obj/item/weapon/reagent_containers/food/snacks/bun, - /obj/item/weapon/holder/mouse + /obj/item/weapon/reagent_containers/food/snacks/meat/mice ) result = /obj/item/weapon/reagent_containers/food/snacks/burger/mouse @@ -128,7 +128,7 @@ I said no! /datum/recipe/classichotdog items = list( /obj/item/weapon/reagent_containers/food/snacks/bun, - /obj/item/weapon/holder/corgi + /obj/item/weapon/reagent_containers/food/snacks/meat/corgi ) result = /obj/item/weapon/reagent_containers/food/snacks/classichotdog diff --git a/code/modules/food/recipes_oven.dm b/code/modules/food/recipes_oven.dm index 07b3f645b9a..a1b5f705adb 100644 --- a/code/modules/food/recipes_oven.dm +++ b/code/modules/food/recipes_oven.dm @@ -11,7 +11,7 @@ appliance = OVEN fruit = list("apple" = 1) reagents = list("pacid" = 5) //It dissolves the carapace. Still poisonous, though. - items = list(/obj/item/weapon/holder/diona) + items = list(/obj/item/weapon/reagent_containers/food/snacks/meat/dionanymph) result = /obj/item/weapon/reagent_containers/food/snacks/dionaroast reagent_mix = RECIPE_REAGENT_REPLACE //No eating polyacid diff --git a/code/modules/mob/living/carbon/alien/alien.dm b/code/modules/mob/living/carbon/alien/alien.dm index c69bdae06f5..c727d31dc07 100644 --- a/code/modules/mob/living/carbon/alien/alien.dm +++ b/code/modules/mob/living/carbon/alien/alien.dm @@ -16,6 +16,8 @@ var/time_of_birth var/language var/death_msg = "lets out a waning guttural screech, green blood bubbling from its maw." + var/meat_amount = 0 + var/meat_type /mob/living/carbon/alien/Initialize() . = ..() @@ -49,3 +51,5 @@ /mob/living/carbon/alien/cannot_use_vents() return + + diff --git a/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm b/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm index 1a7435835cb..8b8ed3668df 100644 --- a/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm +++ b/code/modules/mob/living/carbon/alien/diona/diona_nymph.dm @@ -21,6 +21,8 @@ universal_understand = 0 universal_speak = 0 holder_type = /obj/item/weapon/holder/diona + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/dionanymph + meat_amount = 2 maxHealth = 85 pass_flags = PASSTABLE @@ -372,4 +374,27 @@ for(var/mob/living/carbon/alien/diona/DIO in src.birds_of_feather) //its me! DIO.master_nymph = D return 1 - . = ..() \ No newline at end of file + . = ..() +/mob/living/carbon/alien/diona/attackby(var/obj/item/O, var/mob/user) + if(istype(O, /obj/item/weapon/reagent_containers) || istype(O, /obj/item/stack/medical) || istype(O,/obj/item/weapon/gripper/)) + ..() + + else if(meat_type && (stat == DEAD)) //if the animal has a meat, and if it is dead. + if(istype(O, /obj/item/weapon/material/knife) || istype(O, /obj/item/weapon/material/kitchen/utensil/knife )) + harvest(user) + + +/mob/living/carbon/alien/diona/proc/harvest(var/mob/user) + var/actual_meat_amount = max(1,(meat_amount*0.75)) + if(meat_type && actual_meat_amount>0 && (stat == DEAD)) + for(var/i=0;i[user] chops up \the [src]!") + new/obj/effect/decal/cleanable/blood/splatter(get_turf(src)) + qdel(src) + else + user.visible_message("[user] butchers \the [src] messily!") + gib() \ No newline at end of file diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index 70ac73b1799..922e5da93e0 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -29,12 +29,12 @@ see_in_dark = 6 maxHealth = 5 health = 5 - meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat + meat_type = /obj/item/weapon/reagent_containers/food/snacks/meat/mice response_help = "pets" response_disarm = "gently pushes aside" response_harm = "stomps on" density = 0 - meat_amount = 1 + meat_amount = 1 // Mice are small so you will get less meat var/body_color //brown, gray and white, leave blank for random layer = MOB_LAYER mob_size = MOB_MINISCULE diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm index 081715c759b..054761ae9d0 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm @@ -709,6 +709,23 @@ /datum/reagent/nanites/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) M.contract_disease(new /datum/disease/robotic_transformation(0), 1) + + +/datum/reagent/rattoxin + name = "Toxins" + id = "rattoxin" + description = "Toxins, yuck!." + reagent_state = LIQUID + color = "#535E66" + taste_description = "eugh!" + fallback_specific_heat = 3 + +/datum/reagent/rattoxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed) + if(prob(50)) + M.drowsyness = max(M.drowsyness, 3) + if(prob(10)) + M.emote("vomit") + /datum/reagent/xenomicrobes name = "Xenomicrobes" id = "xenomicrobes" diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 84b8f148122..d921c2f22ca 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -1240,7 +1240,8 @@ /obj/item/weapon/reagent_containers/food/snacks/burger/mouse/Initialize() . = ..() - reagents.add_reagent("protein", 4) + reagents.add_reagent("protein", 5) + reagents.add_reagent("rattoxin", 1) /obj/item/weapon/reagent_containers/food/snacks/omelette name = "omelette du fromage" @@ -4007,7 +4008,6 @@ /obj/item/weapon/reagent_containers/food/snacks/dionaroast/Initialize() . = ..() - reagents.add_reagent("radium", 2) /////////////////////////////////////////// // new old food stuff from bs12 diff --git a/code/modules/reagents/reagent_containers/food/snacks/meat.dm b/code/modules/reagents/reagent_containers/food/snacks/meat.dm index 3b8b26f625f..1b26f439959 100644 --- a/code/modules/reagents/reagent_containers/food/snacks/meat.dm +++ b/code/modules/reagents/reagent_containers/food/snacks/meat.dm @@ -91,3 +91,24 @@ name = "snow strider meat" desc = "A slab of nav'twir's meat, an animal native from Adhomai." icon_state = "adhomai_meat" + +/obj/item/weapon/reagent_containers/food/snacks/meat/mice + name = "mice meat" + icon_state = "chickenbreast" + desc = "You have reached the epitome of poorness: eating the station's vermin." + + +/obj/item/weapon/reagent_containers/food/snacks/meat/mice/Initialize() + . = ..() + reagents.add_reagent("protein", 5) + reagents.add_reagent("rattoxin", 1) + src.bitesize = 1.5 + +/obj/item/weapon/reagent_containers/food/snacks/meat/dionanymph + name = "diona nymph meat" + desc = "A slab of weird green meat." + icon_state = "plantmeat" + +/obj/item/weapon/reagent_containers/food/snacks/meat/dionanymph/Initialize() + . = ..() + reagents.add_reagent("protein", 6) diff --git a/html/changelogs/miceandian.yml b/html/changelogs/miceandian.yml new file mode 100644 index 00000000000..5619ae247ea --- /dev/null +++ b/html/changelogs/miceandian.yml @@ -0,0 +1,39 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +################################# + +# Your name. +author: Drago + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - rscadd: "Adds mice and nymphs to the butcher list." + - rscadd: "Eating mice now has side effects." + - bugfix: "Fixed the infinite corgi dog/mice burger/diona roast glitch by modifying the recipes."