From c51bfc153b3fcf741c435fee965bb027404c0ea7 Mon Sep 17 00:00:00 2001 From: Sishen Date: Fri, 11 Oct 2019 13:24:00 -0400 Subject: [PATCH] b --- _maps/map_files/MetaStation/MetaStation.dmm | 2 +- _maps/map_files/PubbyStation/PubbyStation.dmm | 2 +- code/modules/cargo/packs.dm | 7 - .../mob/living/simple_animal/hostile/goose.dm | 138 ------------------ 4 files changed, 2 insertions(+), 147 deletions(-) diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index d3bf0a4e00..2aebec1d21 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -78455,7 +78455,7 @@ /turf/open/floor/engine, /area/science/xenobiology) "dbq" = ( -/mob/living/simple_animal/hostile/retaliate/goose/vomit, +/mob/living/simple_animal/hostile/retaliate/goose, /turf/open/floor/wood{ icon_state = "wood-broken6" }, diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm index 3d15f887bd..1c9cea2c39 100644 --- a/_maps/map_files/PubbyStation/PubbyStation.dmm +++ b/_maps/map_files/PubbyStation/PubbyStation.dmm @@ -54388,7 +54388,7 @@ /turf/open/floor/plating, /area/maintenance/department/cargo) "ggg" = ( -/mob/living/simple_animal/hostile/retaliate/goose/vomit, +/mob/living/simple_animal/hostile/retaliate/goose, /turf/open/floor/wood, /area/maintenance/department/crew_quarters/dorms) "gih" = ( diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 86a9c21f10..976d3eddcf 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -2237,13 +2237,6 @@ contains = list(/mob/living/simple_animal/hostile/retaliate/goose) crate_name = "goose crate" -/datum/supply_pack/critter/goose/vomit - name = "Vomit Goose Crate" - desc = "Angry and violent birds. Evil, evil creatures. This one pukes!" - cost = 5000 - contains = list(/mob/living/simple_animal/hostile/retaliate/goose/vomit/cargo) - crate_name = "vomit goose crate" - /datum/supply_pack/critter/monkey name = "Monkey Cube Crate" desc = "Stop monkeying around! Contains seven monkey cubes. Just add water!" diff --git a/code/modules/mob/living/simple_animal/hostile/goose.dm b/code/modules/mob/living/simple_animal/hostile/goose.dm index 50b8261c79..b67770fb4b 100644 --- a/code/modules/mob/living/simple_animal/hostile/goose.dm +++ b/code/modules/mob/living/simple_animal/hostile/goose.dm @@ -28,146 +28,8 @@ attack_same = TRUE gold_core_spawnable = HOSTILE_SPAWN var/random_retaliate = TRUE - var/icon_vomit_start = "vomit_start" - var/icon_vomit = "vomit" - var/icon_vomit_end = "vomit_end" /mob/living/simple_animal/hostile/retaliate/goose/handle_automated_movement() . = ..() if(prob(5) && random_retaliate == TRUE) Retaliate() - -/mob/living/simple_animal/hostile/retaliate/goose/vomit - name = "Birdboat" - real_name = "Birdboat" - desc = "It's a sick-looking goose, probably ate too much maintenance trash. Best not to move it around too much." - gender = MALE - response_help = "pets" - response_disarm = "gently pushes aside" - response_harm = "kicks" - gold_core_spawnable = NO_SPAWN - random_retaliate = FALSE - var/vomiting = FALSE - var/vomitCoefficient = 1 - var/vomitTimeBonus = 0 - var/datum/action/cooldown/vomit/goosevomit - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/cargo - name = "Sickly Goose" - real_name = "Sickly Goose" - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/Initialize() - . = ..() - goosevomit = new - goosevomit.Grant(src) - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/Destroy() - QDEL_NULL(goosevomit) - return ..() - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/examine(user) - . = ..() - . += "Somehow, it still looks hungry." - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/attacked_by(obj/item/O, mob/user) - . = ..() - feed(O) - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/feed(obj/item/O) - var/obj/item/reagent_containers/food/tasty = O - if(!istype(O)) - return - if (contents.len > GOOSE_SATIATED) - visible_message("[src] looks too full to eat \the [tasty]!") - return - if (tasty.foodtype & GROSS) - visible_message("[src] hungrily gobbles up \the [tasty]!") - tasty.forceMove(src) - playsound(src,'sound/items/eatfood.ogg', 70, 1) - vomitCoefficient += 3 - vomitTimeBonus += 2 - else - visible_message("[src] refuses to eat \the [tasty].") - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit() - var/turf/T = get_turf(src) - var/obj/item/reagent_containers/food/consumed = locate() in contents //Barf out a single food item from our guts - if (prob(50) && consumed) - barf_food(consumed) - else - playsound(T, 'sound/effects/splat.ogg', 50, 1) - T.add_vomit_floor(src) - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/barf_food(var/atom/A, var/hard = FALSE) - if(!istype(A, /obj/item/reagent_containers/food)) - return - var/turf/currentTurf = get_turf(src) - var/obj/item/reagent_containers/food/consumed = A - consumed.forceMove(currentTurf) - var/destination = get_edge_target_turf(currentTurf, pick(GLOB.alldirs)) //Pick a random direction to toss them in - var/throwRange = hard ? rand(2,8) : 1 - consumed.safe_throw_at(destination, throwRange, 2) //Thow the food at a random tile 1 spot away - sleep(2) - if (QDELETED(src) || QDELETED(consumed)) - return - currentTurf = get_turf(consumed) - currentTurf.add_vomit_floor(src) - playsound(currentTurf, 'sound/effects/splat.ogg', 50, 1) - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_prestart(duration) - flick("vomit_start",src) - addtimer(CALLBACK(src, .proc/vomit_start, duration), 13) //13 is the length of the vomit_start animation in gooseloose.dmi - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_start(duration) - vomiting = TRUE - icon_state = "vomit" - vomit() - addtimer(CALLBACK(src, .proc/vomit_preend), duration) - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_preend() - for (var/obj/item/consumed in contents) //Get rid of any food left in the poor thing - barf_food(consumed, TRUE) - sleep(1) - if (QDELETED(src)) - return - vomit_end() - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/proc/vomit_end() - flick("vomit_end",src) - vomiting = FALSE - icon_state = initial(icon_state) - -/mob/living/simple_animal/hostile/retaliate/goose/vomit/Moved(oldLoc, dir) - . = ..() - if(vomiting) - vomit() // its supposed to keep vomiting if you move - return - var/turf/currentTurf = get_turf(src) - while (currentTurf == get_turf(src)) - var/obj/item/reagent_containers/food/tasty = locate() in currentTurf - if (tasty) - feed(tasty) - stoplag(20) - if(prob(vomitCoefficient * 0.2)) - vomit_prestart(vomitTimeBonus + 25) - vomitCoefficient = 1 - vomitTimeBonus = 0 - -/datum/action/cooldown/vomit - name = "Vomit" - check_flags = AB_CHECK_CONSCIOUS - button_icon_state = "vomit" - icon_icon = 'icons/mob/animal.dmi' - cooldown_time = 250 - -/datum/action/cooldown/vomit/Trigger() - if(!..()) - return FALSE - if(!istype(owner, /mob/living/simple_animal/hostile/retaliate/goose/vomit)) - return FALSE - var/mob/living/simple_animal/hostile/retaliate/goose/vomit/vomit = owner - if(!vomit.vomiting) - vomit.vomit_prestart(vomit.vomitTimeBonus + 25) - vomit.vomitCoefficient = 1 - vomit.vomitTimeBonus = 0 - return TRUE