mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-23 05:00:55 +01:00
Gondolas are now basic mobs (#83451)
## About The Pull Request This PR turns gondolas into basic mobs and does some fiddling with gondola pods Their verbs are now action buttons which they lose upon delivering. If set to stay, they won't have their abilities afterwards (or wont get them in the first place if the delivery is already done). Lets them survive without a pod requirement in case admins want to spawn one for their own stuff, so I also removed it from the snowflake checks to exclude them from stuff. Also replaced the hardcoded "cant speak" with simply giving the mute trait, so admins can make gondolas speak if they want to for any reason. ## Why It's Good For The Game The pet level of simple animals can finally be killed off, also gives admins more control over gondola-related stuff if they so wish. ## Changelog 🆑 refactor: Gondolas (including gondola pods) are now basic mobs. /🆑 --------- Co-authored-by: san7890 <the@san7890.com>
This commit is contained in:
@@ -1,80 +0,0 @@
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod
|
||||
name = "gondola"
|
||||
real_name = "gondola"
|
||||
desc = "The silent walker. This one seems to be part of a delivery agency."
|
||||
response_help_continuous = "pets"
|
||||
response_help_simple = "pet"
|
||||
response_disarm_continuous = "bops"
|
||||
response_disarm_simple = "bop"
|
||||
response_harm_continuous = "kicks"
|
||||
response_harm_simple = "kick"
|
||||
faction = list(FACTION_GONDOLA)
|
||||
turns_per_move = 10
|
||||
icon = 'icons/obj/supplypods.dmi'
|
||||
icon_state = "gondola"
|
||||
icon_living = "gondola"
|
||||
SET_BASE_PIXEL(-16, -5) //2x2 sprite
|
||||
layer = TABLE_LAYER//so that deliveries dont appear underneath it
|
||||
loot = list(/obj/effect/decal/cleanable/blood/gibs, /obj/item/stack/sheet/animalhide/gondola = 2, /obj/item/food/meat/slab/gondola = 2)
|
||||
//Gondolas aren't affected by cold.
|
||||
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_plas" = 0, "max_plas" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
|
||||
minbodytemp = 0
|
||||
maxbodytemp = 1500
|
||||
maxHealth = 200
|
||||
health = 200
|
||||
del_on_death = TRUE
|
||||
var/opened = FALSE
|
||||
var/obj/structure/closet/supplypod/centcompod/linked_pod
|
||||
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod/Initialize(mapload, pod)
|
||||
if(!pod)
|
||||
stack_trace("Gondola pod created with no pod")
|
||||
return INITIALIZE_HINT_QDEL
|
||||
linked_pod = pod
|
||||
name = linked_pod.name
|
||||
desc = linked_pod.desc
|
||||
. = ..()
|
||||
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod/update_overlays()
|
||||
. = ..()
|
||||
if(opened)
|
||||
. += "[icon_state]_open"
|
||||
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod/verb/deliver()
|
||||
set name = "Release Contents"
|
||||
set category = "Gondola"
|
||||
set desc = "Release any contents stored within your vast belly."
|
||||
linked_pod.open_pod(src, forced = TRUE)
|
||||
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod/examine(mob/user)
|
||||
. = ..()
|
||||
if (contents.len)
|
||||
. += span_notice("It looks like it hasn't made its delivery yet.</b>")
|
||||
else
|
||||
. += span_notice("It looks like it has already made its delivery.</b>")
|
||||
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod/verb/check()
|
||||
set name = "Count Contents"
|
||||
set category = "Gondola"
|
||||
set desc = "Take a deep look inside youself, and count up what's inside"
|
||||
var/total = contents.len
|
||||
if (total)
|
||||
to_chat(src, span_notice("You detect [total] object\s within your incredibly vast belly."))
|
||||
else
|
||||
to_chat(src, span_notice("A closer look inside yourself reveals... nothing."))
|
||||
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod/setOpened()
|
||||
opened = TRUE
|
||||
layer = initial(layer)
|
||||
update_appearance()
|
||||
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, setClosed)), 5 SECONDS)
|
||||
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod/setClosed()
|
||||
opened = FALSE
|
||||
layer = LOW_MOB_LAYER
|
||||
update_appearance()
|
||||
|
||||
/mob/living/simple_animal/pet/gondola/gondolapod/death()
|
||||
QDEL_NULL(linked_pod) //Will cause the open() proc for the linked supplypod to be called with the "broken" parameter set to true, meaning that it will dump its contents on death
|
||||
qdel(src)
|
||||
..()
|
||||
@@ -352,7 +352,7 @@
|
||||
qdel(src)
|
||||
return
|
||||
if (style == STYLE_GONDOLA) //Checks if we are supposed to be a gondola pod. If so, create a gondolapod mob, and move this pod to nullspace. I'd like to give a shout out, to my man oranges
|
||||
var/mob/living/simple_animal/pet/gondola/gondolapod/benis = new(turf_underneath, src)
|
||||
var/mob/living/basic/pet/gondola/gondolapod/benis = new(turf_underneath, src)
|
||||
benis.contents |= contents //Move the contents of this supplypod into the gondolapod mob.
|
||||
for (var/mob/living/mob_in_pod in benis.contents)
|
||||
mob_in_pod.reset_perspective(null)
|
||||
|
||||
Reference in New Issue
Block a user