diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm index 0d7c715654..78f9d9f07f 100644 --- a/code/modules/food_and_drinks/food/snacks_bread.dm +++ b/code/modules/food_and_drinks/food/snacks_bread.dm @@ -7,6 +7,17 @@ foodtype = GRAIN dunkable = TRUE +/obj/item/reagent_containers/food/snacks/store/bread/Initialize() + . = ..() + RegisterSignal(src, COMSIG_MOVABLE_TELEPORTED , .proc/bread_teleport) + +/obj/item/reagent_containers/food/snacks/store/bread/proc/bread_teleport(channel) + // you did WHAT? + if(channel == TELEPORT_CHANNEL_BLUESPACE || channel == TELEPORT_CHANNEL_QUANTUM) + new /mob/living/simple_animal/bread(get_turf(src)) + visible_message("The [src] begins to deform and grow grotesque tumors!") + qdel(src) + /obj/item/reagent_containers/food/snacks/breadslice icon = 'icons/obj/food/burgerbread.dmi' bitesize = 2 @@ -228,3 +239,25 @@ /obj/item/reagent_containers/food/snacks/butterdog/ComponentInitialize() . = ..() AddComponent(/datum/component/slippery, 80) + +/obj/item/reagent_containers/food/snacks/store/bread/tumor_bread + name = "dead tumor bread" + desc = "It's still within its expiration date, right?." + icon_state = "tumorbread" + slice_path = /obj/item/reagent_containers/food/snacks/breadslice/tumor_bread + list_reagents = list(/datum/reagent/consumable/nutriment = 10, /datum/reagent/toxin = 10) + foodtype = GROSS | GRAIN + tastes = list("wheat and tumors" = 10) + +//teleporting tumor bread kills it +/obj/item/reagent_containers/food/snacks/store/bread/tumor_bread/bread_teleport() + visible_message(src, "[src] explodes in a horrible mess of tumor and flour!") + qdel(src) + +/obj/item/reagent_containers/food/snacks/breadslice/tumor_bread + name = "tumor bread slice" + desc = "A slice of bread filled with tumors!" + icon_state = "tumorbreadslice" + filling_color = "#B2D72C" + list_reagents = list(/datum/reagent/consumable/nutriment = 2, /datum/reagent/toxin = 2) + foodtype = GROSS | GRAIN diff --git a/code/modules/mob/living/simple_animal/hostile/bread.dm b/code/modules/mob/living/simple_animal/hostile/bread.dm new file mode 100644 index 0000000000..bb65dc0b7a --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/bread.dm @@ -0,0 +1,67 @@ +/mob/living/simple_animal/hostile/bread + name = "tumor bread" + desc = "I have done nothing but teleport bread for three days." + icon_state = "tumorbread" + health = 1 + maxHealth = 1 + turns_per_move = 5 //this isn't player speed =| + speed = 2 //this is player speed + melee_damage_lower = 1 + melee_damage_upper = 2 + obj_damage = 0 + loot = list(/obj/item/reagent_containers/food/snacks/store/bread/tumor_bread) + atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) + minbodytemp = 270 + maxbodytemp = INFINITY + pass_flags = PASSTABLE | PASSGRILLE | PASSMOB + mob_size = MOB_SIZE_TINY + response_help_continuous = "pokes" + response_help_simple = "poke" + response_disarm_continuous = "shoos" + response_disarm_simple = "shoo" + response_harm_continuous = "punches" + response_harm_simple = "punch" + speak_emote = list("growls") + mouse_opacity = 2 + density = TRUE + ventcrawler = VENTCRAWLER_ALWAYS + verb_say = "growls" + verb_ask = "growls inquisitively" + verb_exclaim = "growls loudly" + verb_yell = "growls loudly" + del_on_death = TRUE + +/mob/living/simple_animal/bread/hostile/Initialize() + . = ..() + var/area/A = get_area(src) + if(A) + notify_ghosts("A tumor bread has been created in \the [A.name].", source = src, action=NOTIFY_ATTACK, flashwindow = FALSE, ignore_dnr_observers = TRUE) + +/mob/living/simple_animal/hostile/bread/attack_ghost(mob/user) + if(key) //please stop using src. without a good reason. + return + if(CONFIG_GET(flag/use_age_restriction_for_jobs)) + if(!isnum(user.client.player_age)) + return + if(isobserver(user)) + var/mob/dead/observer/O = user + if(!O.can_reenter_round()) + return + if(!SSticker.mode) + to_chat(user, "Can't become a tumor bread before the game has started.") + return + var/be_bread = alert("Become a tumor bread? (Warning, You can no longer be cloned!)",,"Yes","No") + if(be_bread == "No" || QDELETED(src) || !isobserver(user)) + return + if(key) + to_chat(user, "Someone else already took this tumor bread.") + return + sentience_act() + user.transfer_ckey(src, FALSE) + density = TRUE + +/mob/living/simple_animal/hostile/bread/ex_act() + return + +/mob/living/simple_animal/hostile/bread/start_pulling() + return FALSE //No. diff --git a/icons/obj/food/burgerbread.dmi b/icons/obj/food/burgerbread.dmi index 7ef3a7d418..16878f854a 100644 Binary files a/icons/obj/food/burgerbread.dmi and b/icons/obj/food/burgerbread.dmi differ