Adds colourblindness for Vulpkanin and Tajara that can be turned on by a
preference in character creation. By default, Vulpkanin and Tajara still
see in full colour, however their darksight is reduced to Human levels
unless they choose the 'unaugmented' eyes option.
Refactors darksight so it's tied to the eye organ. Refactors noir
glasses.
You can now visually distinguish mechanical/mechassisted organs from
their organic counterparts due to their names and icons.
Resolves issue w/ Colour-vision after Cloning/Lesser-to-greater Formswapping.
Cloned Vulpkanin and Tajara get unaugmented vision (colourblind and
darksight) by default since the cloners can't administer the
eye-augmentation surgery. Same goes for swapping from lesser to greater
form as a Changeling.
The monkey-forms of Vulpkanin and Tajara now have almost the same organs as
their greater forms, meaning they get the same colourblindness but
excellent darksight.
`reset_perspective` from tgstation.
Also adds various support for remote viewing lenses - like cameras not
transmitting xray vision, among other things
Recommit because we're using different compiler versions
This commit changes how NanoUI's live data updating system works.
Previously, data for the template was directly gathered in the
ui_interact proc. Now, it is seperated into the proc `ui_data`.
To players, this does absolutely nothing.
To coders, this opens up the potential for a much more complicated and
fancy graphical updating system in the future, because the data is
available on-demand without ever having to call
nanomanager.try_update_ui.
"wait_message" is now guaranteed to be unset provided that the timer
controller doesn't go down, and it'll be reset anyways by the `spawn` if
nothing runtimes in there
Start of porting the /tg/station mecha update.
This commit only cleans up the code and adds the proper dependencies for
the mecha.
- Removes relative pathing from /datum/events
- Updated Process_Spacemove() to use
atom/movable/proc/get_spacemove_backup()
- Basically just makes launching off of unanchored objects in space an
OOP behaviour
- Removed styling atrocities and relative pathing from most of the mecha files.
- Notable exceptions:
- code/game/mecha/mech_bay.dm
- code/game/mecha/mech_fabricator.dm
- code/game/mecha/mecha_construction_paths.dm
- code/game/mecha/mecha_parts.dm
- code/game/mecha/mecha_wreckage.dm
- code/game/mecha/paintkits.dm
- Removed dyndomove/dyndoattackby/dyndobulletact. No more icky dynamic
calls. Replaced by specific code for the 3 modules that used it.
- Refactored module cooldown. It now uses addtimer, and power usage is
hooked directly into the cooldown calls.
- Added atom/movable/proc/has_buckled_mobs(). Currently not that useful,
but, necessary for porting the multi-buckling system from /tg/.
- Split code/game/mecha/equipment/tools/tools.dm into multiple files.
- Removed snowflake behaviour from exosuit drill. It now calls
turf.drill_act(src).
- Different from /tg/: Allows you to drill any wall/floor normally.
- Drill no longer gibs mobs. It deals 80 organ damage instead.
- Drill can be used to harvest dead mobs.
- Removed all global_iterator systems from mecha and mecha equipment.
Everything now uses object processing.
- Mecha now have a turn sound variable and step sound variable. Updated
all subtypes to use these instead of snowflake domove procs.
- Removed mecha_do_after, mecha now uses the normal do_after.
- Removed enter_after, same as above.
- /obj/mecha/Process_Spacemove no longer strangely calls the user's
spacemove.
- /obj/mecha/return_pressure now uses return_air instead of copypasted
cabin air detection.
- Same for /obj/mecha/return_temperature
- Added /obj/mecha/Exited. Basically, properly clears occupant refs,
even if they teleport out/otherwise exit improperly.
- Added hooks for mecha action buttons; Didn't implement them yet.
- Moved mecha UI to code/game/mecha/mecha_topic.dm
- Fixed turfs not updating atmos when ChangeTurf(/turf/space) is used.
- Updated visible_message and audible_message. Both now use
get_mobs_in_view() to ensure that mobs inside containers can see
messages.
- Removed /obj/item/mecha_parts/mecha_equipment/tool subtype. It had no
use. Any subtypes are now just subtypes of
/obj/item/mecha_parts/mecha_equipment.