Fixes#1550Fixes#1609
Fixes pumpkins having the wrong sprite
Fixes clothing not updating the blood overlay when you spray it with cleaner
Fixes wizards being able to select the apprentice book
Fixes: #2380, #2475, #2496, #2500, #2504, #2506, #2514, #2518, #2519.
Adds new flooring decals for the Medical Bay. These are of the same style that those that already existed,
but fit to the layout and naming of the new map's Medical Bay. There are new signs for the EMT, General Treatment Room, ICU, Ward and Cloning.(Images below)
Slightly modifies the layout of the Medbay, and the CE's office.
(Images below)
changes:
- NanoUIs and objects are now cleaned out of open_uis when their UIs are closed instead of leaving their entries in the list forever.
- Cleaned up a bunch of open_uis code.
- Common NanoUI files (css, js) are now loaded into the rsc instead of loaded at runtime.
NanoUI no longer sends coder resources that the client doesn't actually need.
Adopts the /tg/ style of ghost follow links. This is to make clicking them a less of a PITA when you're a ghost. All links tested as functional and properly formatted.
This PR adds a system to display round statistics at the end of the round, with the option of logging said statistics to the feedback database.
Tracked stats:
Most deaths by ckey.
Number of people cloned.
Number of times humans have fallen into openturfs.
Number of times humans have died from falling into openturfs.
Number of times humans have been gibbed.
-adds the netgun, replacing the syndicate cyborg energy crossbow with a downgraded mounted version, and giving the heisters a chance of getting one of those in their random gun spawn
-fix the meteor gun, giving it a new sprite and fixing the wrong icon state on the projectile
-ports emp/haywire rounds from baystation, only .38 and 12 gauge rounds
-fix the action button of the am rifle not wielding it
-gives the wizard staffs tech levels
-removes the xray crate from cargo
Fixes#1923
The system used to be of complexity O(n^2). Essentially two for loops running per every argument. Which ended up being surprisingly slow (there were instances where I saw the argument parser as using quite a lot of CPU time).
This replaces it with a more linear algorithm. It's somewhere near O(n) where n is the length of the unparsed query. Which is more stable and faaaster. This comes with two changes, however:
Parameters inside the query now have to be delimited from both sides with : (colons). The alternative to this would be to use something like $n or just assume that space marks the end of a marker. Only the former is workable, the latter would break a few queries already.
Arguments in the argument array no longer have to be prefixed by : (colons). So, while in the query you would write :thing:, you'd initialize the array of args as: list("thing" = somevar). It could be made to work without it, but eh, I think this is fine.
Argument validation is slightly weaker. What I mean by this is that with the old system, unused keys would result in an error. This is no longer a thing. Missing keys will still result in an error, however.
One more improvement: double delimiting removes an edge case where if key A partially covers key B, depending on the order, key A would mangle key B.
Updated and tested all queries that I could find. So this should be good.
Gamemodes that haphazardly crash two or more other gamemodes together are now explained in their voting option, so we can stop having to explain it to OoC literally every round
-removes the flares from the officer's locker, because they are already added via code, it seems
-fixes the iaa being stuck inside the sec meeting room when they spawn
-fixes this #2326 again
-fixes the maint airlock before the kitchen having no access
-the heist base now uses dynamic lighting
-replaced the regular wardrobes with lockers with access in the spawn area checkpoint to avoid greytiders looting it
-the arrivals shutle dock is now its own area with its own apc
-added a robotic cryo console to the ai lift entrance
-replaces the hop's supply request console with a supply control console
-places the creed's office and the admin shuttle behind blast doors
Fixes#2505
-fixes being unable to sawn off double barrel shotguns
Carps, combat drones, faithless, bats, caverns dwellers, parrots, viscerators and the like won't fall anywhere when they walk into an open turf, they can also travel across z levels in case a player is controlling them.
Also, makes cats immune to fall damage.
Preview: https://kama.skullnet.me/index.php/s/GsEdb7q733nO1LK
Okay. These modules allow you to fall from any height without taking damage. As long as your suit is powered and they're enabled, anyways. Secondly, they allow you to leap! Civilian grade allow you to leap 4 tiles, military grade ones (syndicate + ERT commander) allow you to leap 7 tiles and to also grapple people (Vox leap feature).
On top of that, if you middle click on the tile you're on with them selected, you will try to leap upwards. If the tile you're facing above you is a solid (non-open turf, but not dense either), then you will start to climb onto that tile. Civilian grade model isn't powerful enough to jump you there fully, so you gotta spend 4 seconds grappling for your life. Get interrupted in that time, you fall. Military grade models hop you instantly.
Seismic Charges are now much cheaper.
KA can now fit into suit storage and the explorer's belt.
Several more items can now fit into the explorer's belt.
KA's with multiple installed modkits can now properly be turned into a RIG module, which keeps said modkits.
RIG thermal drills now work properly.
Mining drones should now spawn with a jetpack.
Mining drone ore bags are now much larger, as they cannot drag crates.
Fixes#2499Fixes#2495Fixes#2493Fixes#2480Fixes#2487Fixes#2491Fixes#2492
Gives the head of security Lieutenant Columbo, an attack dog with a special sprite that deals slightly less damage compared to other attack dogs.
Replaces Poly with floor B.O.B.
Gives Lamarr's cage a little more breathing room.
Fixes the command roof
De-randomizes fall damage. Fall damage is now the base variable * z_levels_fallen * species.fallmod + rand(-base variable/2, base variable/2)
Incorporates the first try at reasonable z_velocity. Base variable + 5(z_levels_fallen^2)
Adds toilets to the main level
Adds Poly.
Properly moves ZAS defines into the ZAS defines file & removes docs file from compile. ZLEVELS has been renamed to MULTIZAS to better explain what it does.
Fixes#2362Fixes#2232Fixes#2234Fixes#2214Fixes#2385Fixes#2386Fixes#2356Fixes#2406Fixes#2409Fixes#2404Fixes#2432Fixes#2439Fixes#2437
Removes "You hear a click from the bottom of the door" message from airlocks when they bolt/unbolt.
Makes ghosttraps significantly easier to spot.
-adds turbans at some people's request
-adds the forensic technician's allowed roles to sec related custom loadout
-fixes shoes having two species_restricted vars
-add species restrictions to galoshes and the like
-changed how the force var works on the shoes, regular shoes have 0, boots have 3 and combat boots/magboots have 5
-adds nitrile gloves after a forum request
Implements suggestion https://forums.aurorastation.org/viewtopic.php?f=21&p=78011 in the following fashion:
Powersinks explode ~18 minutes after being placed on normal SMES setup. Obviously more input from engineering will make this process go faster.
Upon reaching their capacity, they will now cause a larger area power surge. The surge will smash all lights belonging to APCs within close to moderate proximity, and call EMP act on all connected powernet items that are within range (severity depending on distance). All of those items have a small chance to cause a minor explosion as well, primarily because EMP act is fucking whimpy.
changes:
Centcomm airlocks can now be opened by hand again, but are still not emaggable.
Centcomm airlocks can no longer be damaged by any means. Hopefully.
Centcomm turrets can no longer be emagged or moved.
Windoors can no longer be used as a source for infinite glass and airlock electronics.
Removed spawns and some sleeps from turrets, replaced with timers.
Ports a refactor of diagonal smoothing underlays from /tg/, fixes a bug where diagonal smoothing did not work on shuttle walls, and updates shuttle walls to use the generic smoothing instead of mapped in icon states.
Fixes issues with shuttle corners not showing the correct underlay.
Intent: implement all of the features from #2442 while also unfucking the multiz movement files to be more readable and not recurse.
To that end, this PR does the following:
All multiz travel is now arbitrated by SSfalling. This will eliminate the need for recursion without relying on timers. Timers would be a bit scary.
The call chain for multiz movement now looks like this (in terms of overwritable procs):
can_fall() (Can lead into fall_impact() & fall_collateral() if returns FALSE)
fall_through() IF current block is open space ELSE fall_impact() & fall_collateral()
Removed almost every istype(src, A) check in the movement.dm file by exercising proper parenting and call chains.
Documented and standardized the contents of multiz/movement.dm. Because this is an API we're going to be relying on very heavily, I'd like to get this right before we move on.
A lot of minor tweaks, like swapping usr over to the applicable mob, and so on.
-allow voting for most mixed gamemodes, with exception of bughunt and infection
-adds crossfire(merc and heister), also adds a raider frequency to don't mix them with mercs
-adds siege(rev and merc)
-adds visitors(ninja and wizard)
-fix using thermite on walls leaving behind a black title
-fix the dionae titles having no sprite
-adds a bluespace walls that don't spread, for use in future events
changes:
Cascade turfs now use SScalamity to tick instead of addtimer loops.
On universal-state change to Cascade, SSgarbage's GC timeout period is set to 20 minutes, as we really don't care about hard-dels when the round ends in 5 minutes.
changes:
SSopenturf no longer abuses list Cut() (performance improvement)
Openspace overlay objects are now cleaned up after a delay, allowing for smooth animations when an object moves out of an openspace area.
Openspace multipliers are now properly copied by SSopenturf, leading to openturfs properly darkening more the deeper they are.
Openspace updates now cascade up turfs even if one of the turfs in the chain is already queued for update.
Objects entering openspace turfs that already have overlays or do not need an overlay no longer trigger openturf updates.
What it says on the tin.
IPIntel and BYOND account age relating panic bunker settings from TG. Also implements methods for potentially tagging VM users. Ontop of all of this, creates a spiffy UI for admins with R_SERVER to adjust the settings of the entire suite at runtime.