Files
Bubberstation/code/modules/cargo/gondolapod.dm
T
Profakos 50b37c8c7f Faction defines (#73681)
## About The Pull Request

Quite a lot of mobs had faction defines as a string, which always has a
chance for error. For example, the clown mob spawner had their faction
written as "clown", when the official faction name was "clowns", and a
define existed for it anyways! This PR moves every single string based
factions over here. No references or special role factions. Hopefully I
didn't miss anything.

I also moved a global define used for picking your uplink provider's
flavour to the only file that used it, datum_traitor.dm, and renamed
them a bit to avoid confusion.

I have also noticed that the mimic faction was assigned to the petrified
player with += instead of |=. |= would ensure no duplicate factions, so
I have changed it.

Future improvement:
I have noticed that there is a lot of bloat with factions that contain
only one or two entries (examples: gnomes, floating eyeballs, penguins,
the pet lizards), and some always appear in pairs (vines and plants, the
rare exceptions being killer tomatoes and strange reagent spawned pine
trees), but trimming consolidating them is a matter for a different
time.

## Why It's Good For The Game

Makes assigning factions a bit less error prone.

I can finally remove the ```/// Later all mob factions will be moved
here and their current factions replaced with faction defines.```
comment. Later is NOW.

## Changelog
Nothing player facing
2023-02-28 16:44:08 -07:00

79 lines
2.8 KiB
Plaintext

/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
update_appearance()
addtimer(CALLBACK(src, TYPE_PROC_REF(/atom/, setClosed)), 50)
/mob/living/simple_animal/pet/gondola/gondolapod/setClosed()
opened = FALSE
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)
..()