Files
Bubberstation/code/modules/shuttle/syndicate.dm
T
SkyratBot 36cf718cc7 [MIRROR] Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart [MDB IGNORE] (#19678)
* Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart (#73678)

## About The Pull Request
So, this spiraled from one missing icon being fixed to an entire check
for said icons.
Several icon files no longer use error icons because its assumed that
the checks will handle any missing ones, but the checks don't apply to
emissives nor overlays at all. This led to the radsuit having an
emissive but no icon_state for it - a relic of the old radsuit. This was
only noticed because of a downstream with an error icon appearing for
it...

I was curious how many were actually having the same issue, so I made a
small little stack_trace in the mutable_appearance proc.
There were like, 2k. Lots of them were icons named, like, "transparent"
or "blank" too...
I moved that check to the emissives proc because I semi-understand that
system so could actually fix it, and it moved to around fourty
roundstart. Much more achievable.

(The error usually has more info if you click on it, including the item
that caused it. I dunno how to add that to the check itself because of
where it's located, though.)

![F99cOII1XJ](https://user-images.githubusercontent.com/76465278/221503786-63dc6980-a48b-4290-b891-23c0499500ff.png)

This fixes all the ones I could find, including...
Nonexistant icons that shouldn't be adding emissives on:
- Empty Barsign
- Radsuit
- Mass Driver Controllers
- Telescreens
- Aux Base Consoles
- PanDEMIC
- Kobayashi computer (holodeck)
- Abductor camera console
- Syndie drop pod
- BSA controller
Entirely missing icons on:
- Pwr Game Vendor (this was just misnamed)
- Generic Soda Vendor
- Engivend
- Security Laptop (proud of this one.,.,)
![dreamseeker_36PwO4HSLO](https://user-images.githubusercontent.com/76465278/221544806-3c5ae33a-1360-49e0-ba80-afea6c0a9339.gif)

There are no doubt more of them hidden about, but I don't really know
what I'm doing... If there's a check that'd be better than this, please
review telling me what to change <3
## Why It's Good For The Game
Fixes missing icons, fixes attempts to add icons where we don't need
them, and adds a check to help fix more of the two issues as they occur.
## Changelog
🆑
fix: fixed missing emissives on the Engivend, Pwr-Game Soda, and generic
Soda vendors. Also fixed the seclaptop having no valid screen icon!
fix: fixed a few items trying to apply emissives when they shouldn't.
code: added a stack_trace for emissives with missing icon states.
/🆑

* Adds a stack_trace for emissives with invalid icon_states, fixes all that appeared roundstart

* Update cryopod.dm

---------

Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:11:13 +00:00

69 lines
2.6 KiB
Plaintext

#define SYNDICATE_CHALLENGE_TIMER (20 MINUTES)
/obj/machinery/computer/shuttle/syndicate
name = "syndicate shuttle terminal"
desc = "The terminal used to control the syndicate transport shuttle."
circuit = /obj/item/circuitboard/computer/syndicate_shuttle
icon_screen = "syndishuttle"
icon_keyboard = "syndie_key"
light_color = COLOR_SOFT_RED
req_access = list(ACCESS_SYNDICATE)
shuttleId = "syndicate"
possible_destinations = "syndicate_away;syndicate_z5;syndicate_ne;syndicate_nw;syndicate_n;syndicate_se;syndicate_sw;syndicate_s;syndicate_custom"
resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
flags_1 = NODECONSTRUCT_1
/obj/machinery/computer/shuttle/syndicate/launch_check(mob/user)
. = ..()
if(!.)
return FALSE
var/obj/item/circuitboard/computer/syndicate_shuttle/board = circuit
if(board?.challenge && world.time < SYNDICATE_CHALLENGE_TIMER)
to_chat(user, span_warning("You've issued a combat challenge to the station! You've got to give them at least [DisplayTimeText(SYNDICATE_CHALLENGE_TIMER - world.time)] more to allow them to prepare."))
return FALSE
board.moved = TRUE
return TRUE
/obj/machinery/computer/shuttle/syndicate/recall
name = "syndicate shuttle recall terminal"
desc = "Use this if your friends left you behind."
possible_destinations = "syndicate_away"
/obj/machinery/computer/shuttle/syndicate/drop_pod
name = "syndicate assault pod control"
desc = "Controls the drop pod's launch system."
icon = 'icons/obj/terminals.dmi'
icon_state = "dorm_available"
icon_keyboard = null
icon_screen = null
light_color = LIGHT_COLOR_BLUE
req_access = list(ACCESS_SYNDICATE)
shuttleId = "steel_rain"
possible_destinations = null
/obj/machinery/computer/shuttle/syndicate/drop_pod/launch_check(mob/user)
. = ..()
if(!.)
return FALSE
if(!is_reserved_level(z))
to_chat(user, span_warning("Pods are one way!"))
return FALSE
return TRUE
/obj/machinery/computer/camera_advanced/shuttle_docker/syndicate
name = "syndicate shuttle navigation computer"
desc = "Used to designate a precise transit location for the syndicate shuttle."
icon_screen = "syndishuttle"
icon_keyboard = "syndie_key"
shuttleId = "syndicate"
lock_override = CAMERA_LOCK_STATION
shuttlePortId = "syndicate_custom"
jump_to_ports = list("syndicate_ne" = 1, "syndicate_nw" = 1, "syndicate_n" = 1, "syndicate_se" = 1, "syndicate_sw" = 1, "syndicate_s" = 1)
view_range = 5.5
x_offset = -7
y_offset = -1
whitelist_turfs = list(/turf/open/space, /turf/open/floor/plating, /turf/open/lava, /turf/closed/mineral, /turf/open/openspace, /turf/open/misc)
see_hidden = TRUE
#undef SYNDICATE_CHALLENGE_TIMER