* Adds linter defines to repo.
* Uncomments linter defines already in the code.
* Resolves unreachable code linter errors.
* Nukes decade+ old syndie specops code except for computer since that's mapped in?????
* Resolves procs has no parent linter error.
* Proc signature fixes
* Bad comments
* "In" danger
* Type safety
* Implied nested list abuse
* Top level ..() usage
* Sleepy coder typos
* Invalid kwargs calls
* Pointless returns
* Linter hacks (see full message)
Byond doesn't care and it has no effect but linter doesn't like var/proc
for holding references to procs, despite that it's valid byond code.
Also, the linter seems to have serious issues figuring out relative
proc names. This commit is a sort of take-it-or-leave-it thing. It's not
required, it just cuts down on warnings, but this code is valid DM code.
* WHATEVER THIS IS
* Trick dreamchecker linter into ignoring this file's sins in it's weird use of vars
* Fix list decoration syntax - Its a list, not list of lists
- To declare that a var is a list you can `var/list/blah = list()` syntax or the `var/blah[0]` syntax. Both do exactly the same thing. But if you do `var/list/blah[0]` that is just like doing `var/list/list/blah = list()`
* Hopefully stops the ai holder subtype folder from going quantum and sometimes changes capitalization over time, and incidentally causing 20+ linter errors.
* Fixes unwrapped negated object in list linter error.
* Resolves colon-like list accessing linter error.
* Turns linter on in linter config.
* Fixes closet indentation properly and cleans up suit storage unit switch.
Co-authored-by: Aronai Sieyes <arokha@arokha.com>
Co-authored-by: Leshana <Leshana@users.noreply.github.com>
All living mobs will now have a check run every 30 seconds or so to replay the current ambience of the area they're in, if they've not had it played in the last minute. Said check is a 35% chance of playing the ambience. Good for if you're standing around in one area.
Computers + turrets got new sounds, turrets have a deploy, retract, and rotate sound. Arcade machines now play sound effects depending on what step you're on and what you're doing.
Replaced maintenance ambience with different ambience from Paradise/Aurora, and moved our maintenance to foreboding, and moved old foreboding to it's own folder.
* Fix a typo in a verb.
* Add straffing to mechs. This took my entire morning goddamnit.
You now have a straffing verb. Very convenient to shoot while firing back.
Thanks to @drexample even if i didn't use all that much of the original code i stole.
* Change straffing to strafing.
* Correct an oversight.
* Add a variable that determines whether or not you are in a mech or fighter at the moment.
* Rework a lot of mech code backend and add clickable buttons.
- Gygax overload, Durand defence mode, phazon phase, marauder smoke, zoom and thrusters have been made into modular things. Just put the 'smoke_possible' var to get those actions.
- Move most abilities that aren't for default mechs to 'Mecha_actions.dm' for less huge of a file. Marauder abilities to be moved shortly.
- Lot of verbs have been broken into procs such as toggle_lights() now being a verb refering to a lights() proc for easier work later on.
- Delete some movement code duplications.
- Changed the smoke system to be more up to date, inspiration taken from the cooking machines.
* Space out some things for ease for reading.
* Improve the damage readout for mechs on examine
* Improve speed boost code to an easier to modify version.
* Deleting a couple few forgotten debug messages.
This adds throw_alert() and /obj/screen/alert, a system that allows you to do custom hud alerts for any variety of things from "You're too cold!" to mecha status indicators for the pilot.
There's quite a few things that actually got replaced; the
fire/oxy/tox/co2 alerts are all now just alerts, as is nutrition. There's also a number of new alerts, such as blindness, highness, legcuffed, buckled, handcuffed, and probably some more I missed; read code/_onclick/hud/alert.dm and see for yourself!
Additionally, a number of tweaks have been done to resisting code, to make it so that there's an indicator when you're buckled or handcuffed, and can just click the alert to start resisting. This includes a refactor that combines the logic for lockers, holders all into one proc, called container_resist().
Also, the health and internals indicator got moved down one tile each. Needed room for the alerts. If we add the oxygen tank action buttons from /tg/ and remove the internals indicator, the health indicator can go back where it was originally.
Alerts, pictured in the top right.

* POLARIS: Attack animations
* POLARIS: Overlay flick system
You can't do this in Byond, unfortunately, so here's some code from /tg/
* Make attack anims a preference
* Fixes text indicator. Works on getting the chat bar to work.
* Getting the text bar to show the typing indicator proved to be impossible.
Seeing as it was cut out 3 years ago for being absolutely broke, I snipped it out of the code.
* Makes the indicator work better
* Polaris initial plane upstream merge
* POLARIS: Fix RIG visors with new plane system, and material scanner VIS_FULLBRIGHT
* POLARIS: Fix GetFlatIcon so that cameras and id pictures don't show the HUD overlays.
* POLARIS: Adds a 'alter values' proc for plane master ease of tweaking
Setting stuff like colorblindness variety and things.
* Remove NIF reference, fix lighting layer define
* Handle effects above lighting plane
* Moved all layer defines to planes+layers.dm
* Fixed overlays that are supposed to be above lighting to use the PLANE_LIGHTING_ABOVE
* Merge: 3000% human/update_icons() speed improvement
* Merge: Avoid ghosts pointing at things
Uses a mob var to determine antag validity instead of typechecks, since I believe this will work out better in the long term. Inheritance can automatically make new mobs we make be invalid by default.
You can imagine them as 8-second-resist office chairs that the mob is buckled to now. You can pull them around in the net, too, since it's baaaasically like an office chair now. They can't pull themselves around like office chairs while in the net, though. Because that'd be hax. You can click them (or resist) to start tearing them up (same from the outside).
Also keep in mind the mob inside can still wreck anyone adjacent (or shoot you). That's how it was before, too. So you can't really run up and drag them to prevent escape without them punching you (shouldn't you be roleplaying all this anyway?). Switching hands interrupts the resist so no reloading, getting other weapons, using PDA etc while resisting.
Also got rid of this SUPER SNOWFLAKE VARIABLE on all mobs used literally only by energy nets.
Fixes auto blindness and no click on 510 servers, lessens the lag of
mesons and material scanners, and I suspect the general speed as well.
I only made it work for Polaris (and by extention, to our server, Eros),
and adapted it a bit.
Ported from:
7c2cc890ab
Merges the use of the is_small and mob_size into one.
Changes the species size handling to set the mob size instead of being yet another separate var to check.