Port of Baystation12/Baystation12#13264
Large PR to put into Master, but the bug is really annoying and since it affect a traitor item, an often used one, I'll take the risk.
Fixes#1956
Fixes explosives implants and lawgiver not working.
Stopped IPCs from being able to see without optics installed.
Made Industrial Frames actually pressure-proof, which allows them to use suit coolers on their back.
(Apologies for accidentally including some old commits. They've already been merged, anyway, so I hope it's not too much trouble.)
changes:
Fixes PDA manifest.
Fixed some bad turfs on the outpost.
Very slightly sped up lighting initialization.
Fixed mine turfs bordering on space turfs having a bad edge.
Possibly sped up asteroid gen slightly.
In this PR:
Destroy() fixes backported from PR #1783.
JaniPDA fixes & improvements.
Chickens no longer consume their own eggs.
Language adding in setup is now 100% more sane.
Chemical dispensers now actually check that the user is still alive before renaming.
Ghosts are now marked as non-simulated atoms.
Non-simulated atoms no longer trigger proximity listeners.
Vendors no longer accept synthetic tools as stocking options.
Fixes#812.
Fixes#1877, Fixes#1929.
Fixes#1930.
Fixes#1152, Fixes#1917.
Fixes#1902.
Fixes#1165.
changes:
Added an abstract-machinery helper type for interacting with power systems without duplicating power code.
Changed intercoms to use abstract machines to handle power state changes instead of polling with process().
Hardhat lights are now directional (LIGHT_WIDE)
Fixes#1922.
changes:
Flashlights now default to LIGHT_WIDE directional lighting.
Glowsticks, Lamps, Flares, and Slime Cores use LIGHT_OMNI.
Maglights use LIGHT_NARROW.
Heavy-duty flashlights use LIGHT_SEMI.
EVA suits default to LIGHT_WIDE.
Lanterns use LIGHT_OMNI, as well as now having a more appropriate light color.
Floodlights use LIGHT_WIDE, as well as having a more appropriate light color.
Synthetics default to LIGHT_WIDE. (including drones)
Added some predefined light_wedge values to the lighting defines file.
Fixed some bad angles that screwed up north/south lights in some cases.
Tweaks diona values on all lights, and range/power on a couple
Also adds a slightly dimmer sprite for tube light fixtures that they switch to during night mode. To reduce the incongruity from having a bright tube putting out very little light
changes:
Removed shim for old spark system.
Converted all calls to old spark system with calls to new one.
Processor-based effects are no longer pooled, as it had minimal performance impact and was breaking things.
Tweaked some visible_messages for rogue drones.
PB effects' handling of location is now done at the /datum/effect_system level.
This PR simplifies the lighting update system (removes update_type) and instead makes the lighting system decide which update method to use based on server load.
Instant updates are used during low-load, scheduled during high.
Also removes: update_lights_now() (redundant), diff_light() (unused).
This is it. The big one.
Risk: Very large. This modifies or rewrites several important systems.
Some things still need balancing, but that's probably better done if/when this hits dev.
changes:
New smooth lighting system.
Machinery split into three processes: machinery, powernet, pipenet Removed due to breakage. Refactored into multi-step process.
Mob process rewritten.
NanoUI process rewritten.
Objects process rewritten.
Tweaked color output of station lights.
Slime core lights now emit colored light.
Fixed light update frequency issue with fire alarms, hydroponics trays, and airlocks.
Increased light emission from bolted airlocks.
Miscellaneous performance improvements.
New datum pool implementation.
New lighting usage profiler.
Lighting system now tracks UV light, which is not visible to players.
Space now has a parallax effect.
Disabled Spin View verbs due to incompatibility with the new lighting system.
Disabled hallucination view spin due to incompatibility with the new lighting system.
Lighting system now initializes in the lobby before the round starts to reduce BoR deadtime.
Added UV light tracking to lighting engine; dionae now gain energy exclusively from UV light.
Added colored lighting to a few consoles that used default (white) light.
Autosync the local warrants with the datacore on opening the device
Please describe the intent of your changes in a clear fashion.
Please make sure that, in the case of icon or mapping changes, you include images of these changes in the PR's description.
The downloader and the file manager no longer come default on any device.
A client enrollment app comes now with every console
The user has to select weather the device is a private or company device and select a software preset if its a work console
Work devices are locked down to a specific set of programs
Private devices get the downloader and the file manager to install programs as usual.
Threw out the backup of the old-old camera monitor.
Made software presets a generic thing that are not dependant on the form factor of a device.
Ported holowarrants from bay
Ported wall mounted consoles from bay
Ported various computer fixes from bay
Vending machines spawn now with the holowarrant "client"
Mapping changes:
CE and HoS dont get a modular computer with command preset (they did not have that before bay merge, so why should they now)
Added a modular computer with command preset to the head of staff briefing room
Replaced the camera monitoring console in the Engine Control room with a modular computer
Replaced the cam monitor in the CE´s office with a wall mounted console
Switched places of the bar sink and console
Replaced the consoles with obj/item consoles
Mapped in the ERT and Merc Console (Merc Shuttle, ERT Area)
Fixed the "border" at the heisters base
Also waiting for CCIA on a design for the warrants.
But that can be changed with a follow up pull
Was supposed to contain a fix for Vaurca surgery, but I decided to greenlight this ASAP once I detected a critical bug with how blobs worked.
Fixes#1509Fixes#1470Fixes#1506Fixes#1501Fixes#1484Fixes#1466
Also replaces a lot of Vaurca checks with isvaurca() so that Shells don't start doing weird shit.
Fixes a bug where shining penlights in eyes wouldn't print medical diagnostics messages.
Makes the penlight's eye protection detection a bit more tolerant/intelligent.
Fixes the sprite on the non-modular power monitoring console.
Fixes the sprite on the telecomms traffic control console.
-fix several wrong tech origin related to the guns
-tweak some sprites
-add x-ray laser rifle
-add new sprites for the suit cooling unit, with one when being worn on the back
-fixed suit cooling units not working when worn on the back and inside exosuits
changes:
imageadd: "Some AI displays now have special icons used when the AI is dead."
rscadd: "Added an admin verb that allows force-storaging of SSD AIs."
imageadd: "The AI's icon now changes when it is EMPed."
other:
Gave a name to borgs' internal radio so it doesn't show as "station bounced radio".
Disabled rejuvinate() for AIs as it didn't actually work anyways.
Fixed a potential bug where an engiborg's welder might've been able to be attached to things.
Added a code helper to check if an item is a borg tool.
changes:
bugfix: "Fixed formatting of forms when held up to a security camera."
spellcheck: "Fixed grammar error in IA and CE's headsets."
Fixes#1196.
Fixes#1358.
Fixes#1376.
Fixes#1347.
Replaces some BYOND text macros with spans.
Issues:
M'sai's preview image does not work (missing image).
Fixes radiation so species' radiation_mod values are actually applied.
Refactored radiation application to use proc apply_radiation() instead of directly modifying the variable.
Baymerge changed the attack proc, i think by removing a default value, and a lot of things broke because they weren't using the function correctly.
This proc does three main things.
Adds a default to /obj/item/proc/attack to target the chest when no target zone is supplied.
Fixes the lack of a target zone in many attack procs, properly defining it so it'll get passed to the parent, and ensure that bodypart-specific targeting works.
Removes most instances of code to retrieve the user's selected zone, and instead to use the zone passed into the attack function. saves duplication of effort.
Visual tweaks to several modular computer screens:
Standby screen: Added detail and a background, made silver, improved animation
Menu screen: Altered colours to more resemble the actual UI
All medical screens: Made a deeper blue, closer to the original medical colors.
Modified the modular computers _description file to reorganise the descriptions of programs, and to note those that aren't implemented yet. Its a lot, the bay people didn't quite finish this project.
Also, console power use increased by 20% because holoscreens are fancy and deserve it.
* code\game\machinery\cryopod.dm:482:error: orient_right: undefined var
* code\modules\mob\mob_movement.dm:272:error: mob.last_move_intent: undefined var
* code\modules\mob\living\simple_animal\simple_animal.dm:377&402:error: user.changeNext_move: undefined proc
* code\modules\mob\living\silicon\robot\robot_items.dm:31:error: loaded_item.reliability: undefined var
* fixes whatever to do with chameleon.dm
* camera.dm
* didn't get chameloeon the first time round
* uplink.dm
* code\game\objects\items\devices\PDA\PDA.dm:959:error: U.last_target_click: undefined var
* code\modules\clothing\head\misc_special.dm:159:error: icon_head: undefined var
changelog:
rscadd: "New implementation of magnetic door locks, can be found in armory and eng secure storage."
soundadd: "Added hydraulic servo sounds."
devchangelog:
New helpers
Added check_neighbor_density(turf/T, var/dir) which checks if anything dense is on a tile next to T and return 1 if it is
Added is_type_in_view(var/type, var/dist = 0, var/center = src) and is_type_in_oview which will make a list from view and and return 1 if something matches the declared type
Adds directional audio for explosions and fixes a variety of sound issues with them.
Adds screenshaking for explosions
Tweaks volumes and adds missing sounds for several window/airlock interactions.
Also fixes some runtime errors here and there which were discovered during testing, mostly just adding safeties
Things done:
Created several random objects, that can be used to randomize loot in the maint or other places. Several items, some rare things and other random useful or not objects.
Added a svd gun with its own snowflakness, to replace the heister's lwap, but, they will get an extra energy gun to compesate.
Added tracksuits, stunrod, new sprite for the rapier, a new sword flavor and the old cane sword.
Changed the heister ship armory; two random melee weapons, the dragunov with an extra mag and a random energy gun.
Changed the chances of ghetto guns going bad.
Replaced the carbines in the ert area with energy pistols, so, they can make use of the holsters.
Clumsy people may have trouble with glowsticks now.
Changes:
returned heavy flashlights from old code, some in security, eva storage and engineering
added robust maglights, placed some in security
ported glowsticks from polaris
cameras, recorders and some old code items sprites are being re-added
you can now carry flashlights into your armor
you can now carry wizard related items into the wizard robe and voidsuit
you can now carry chaplain related items into the chaplain hoodie and nun robes
you can now carry chaplain related items into the chaplain hoodie and nun robes
cult hoods now share the same armor values as the robes