Removes a bunch of default lists from /obj, /obj/item, and /obj/structure, replacing them with either lazylists or adding behavior to the null value.
Null armor is now considered identical to having armor with 0 armor in each category, null attack_verb results in the text "attacked" being used.
changes:
Converted storage objects to Initialize().
Removed timer from storage New/Initialize in favor of LateInitialize.
Removed some pointless src from storage objects.
Fixed GC of some screen objects used by storage objects.
Changed storage objects' filling to be done by fill() instead of New()/Initialize().
Medkits actually work this time!
Added more languages for borgs, plus a short explanation on how borg languages work code-wise for future reference
* Swapped the basic and default/classic icons for all modules
Closes#2781
Adds an end game power for changelings (15 genomes points), allowing them to turn into a robust mob for around five minutes.
Fixes some issues with arm blades and shields, also adds a chem costs to using them.
Adds new changeling related sounds.
Ports vorestation's implementation of /vg/'s holomaps.
Holomaps are an in-game object that shows a map of (most) of the station with departments highlighted, to aid in navigation around the station. Maintenance, high-security, and asteroid areas are excluded from the maps.
Adds approximately 1.5 seconds to server boot to generate maps.
Holomaps were added at:
Arrivals shuttle dock, north of checkpoint.
Surface level lift.
By entrance to security on main level.
North of the kitchen.
South of Engineering, near tech storage.
Beside the IA office.
Near the lift on each sub-level department.
The top of the Tajaran industrial mining RIG chestpiece has been lowered to no-longer obscure the Tajaran's mouth from the front when the helmet is down. (Inconsistent with sidesprites anyway.)
The Ivancarp plushie can now spawn whenever the game calls for a random plushie, and the carp himself has a chance of appearing in cargo's warehouse.
Also made the latest attempt at fixing the phasing cigarettes.
Also changed that thing where part of the face is clearly exposed on the Rescue RIG's helmet when it is ''sealed''.
Removes:
sleep in floorbot/Life() (Fixes#2578)
sleep in medbot/Life()
sleep in farmbot/Life()
a sleep in Diona specific proc chains, which sneaked into human/Life()
a sleep in coldingtons/activate, which sneaked into human/Life()
sleep in bear/misc_command (uncertain if this was ever called in Life(), but hey!)
sleep in corgi/*/Life
This covers all debug references I could find on graylog from the past 30 days.
Refactors:
Removes Nanako-style comments from diona_base.dm which break formatting in VSCode and Github
Swaps diona_base.dm to use to_chat over <<
Experimental tweaks to how parallax's movement hooks work; the current ones appear to be fairly expensive for all movable movement, doing locate(/mob) in src on every forceMove(). This PR creates a new lazylist (contained_mobs) containing a list of every mob directly contained by an object. contained_mobs is updated on mob/forceMove().
Not sure how to handle mobs located deeper than directly inside an object.
Only alternative to this I see is to make SSparallax tick.
Reworks #2689
Includes: Vent crawling up and down.
Quote from original PR:
Main feature is that ventcrawling between Z levels now works perfectly. It takes 10 seconds to climb up or down a pipe...
Mostly micro-optimizations on a few loops, but also includes more non-mem-hack optimizations for white light such as that created by the default sun.
Movable light updates are done on Move/forceMove now instead of Entered/Exited.
Removed pointless cache_u value.
changes:
Queued icon updates now update the atom's associated openspace overlay or openturf.
update_oo() renamed to update_above(), and moved up to /atom. Only meaningful on /turf (updates above openturf if present) and /atom/movable (updates associated OO if present).
Demoted SSfalling to a regular subsystem (1ds tickrate).
Increased SSlighting's tickrate from 2 ds to 1 ds.
changes:
Chameleon items now use appearance copy to duplicate appearance.
Chameleon items now support contained sprites.
Chameleon items will now explicitly qdelete the temporary copy-item instead of assuming it will GC.
Fixes#2753.
changes:
Fixed various GC failures.
Converted integrated radios (used in PDA cartridges) to Initialize.
Added a missing Destroy to the QM PDA cartridge's integrated radio.
Fixed a runtime when mineturfs with no ore were destroyed by explosions.
Fixed a runtime when explosions attempted to Z-travel.
Minor radio performance improvements.
Converted radio globals to defines.
Changed the Security-I and Medical-I frequencies to use the same colors as their respective departments.
Fixes#2646.
This makes it possible to get the railgun and decloner eaiser. It's still rare and costly. Also made it possible to get the mech teleporter (It's really not as good as some people think) by using antag items to get bluespace research up to 6. Also removed a duplicate decloner fab.
changes:
Fixed issues with parallax objects not deleting properly due to hanging refs. (this also seems to fix some mob delete failures, like BSTs)
Fixed issues with hyperzine, inaprovaline, and synaptazine not soft-deleting due to hanging modifier references.
Removed coffee overdoses poisoning Tajara at Mofo's request.
You can't put down the kickstand in turfs such as space or open space. Space bikes will now go fast in asteroid turfs, space and open spaces, making them a bit more useful.
Fixes#2619
The strong grab feature from the force glove just makes them an insta win in any fight you can reach your target, making any force gloves pretty much bullshit together with the bay grab system. This changes that you can only do the strong grabs with syndicate version of the force gloves
Adds the medical rescue module to the map, adding a downgraded injector version to it with actuators. Also, changes the access of the paramedic area, so, not everyone can run inside and steal their things.
And at last, gives maint access to the cmo.
The announcement system just got an upgrade.
Also made the delta siren more concerning.
And made a custom slightly annoying sound for the night mode announcement.
Updates the DMM Suite from /tg/ upstream, adding the ability to load tgm format maps, tick-checks, and better compatibility with SSatoms / Initialize().
Also adds some framework for random ruin generation, though it is not functional yet.
This pr will replace the cloaking device from cargo warehouse spawn,, because they pretty much fall under the same level of bullshit as thermals and etc, with the new portable ladders.
Also, removes from the traitor uplink, because it is only used for combat it seems, defeating the purpose of being a stealth item. The chameleon projector is a better, and far less bullshit item, to cover the same purpose.
Items falling now deal a set amount of damage based on velocity calculations, with no more randomisation. This damage is randomly distributed throughout the head and torso by first calculating the damage dealt to the head - anywhere between zero and 1/2th of total damage, and then calculating the damage to the torso - head damage subtracted from total damage.
Changed the name of lobotomization to MMI preparation in messages displayed to players.
It still functions the same. This is due to concerns that a lobotomy would not have the described effect, and a medical professional (such as a character performing the surgery) would not call that one.
Currently, a mouse gnawing open a box to get its contents generates about a screen's worth of chatspam. And the same applies to eating a box of raisins or similar large meal. I feel this isn't appropriate for the size of the creature nor the severity of the act. In any case ive come up with a better method.
Main attraction of this PR, is that the box nibbling no longer uses visible messages, it only outputs to chat once, when it finally ruptures. In the meantime, any nibbling which doesn't break the box will instead shake it around and make a nibbling sound. Shaking code stolen from locker resist
Mice nibbling things is a quiet clicking noise, easy to ignore. so its unintrusive
Update: I've now extended this to all animal nibbling, not only boxes, but also on food too. To cut down on chatspam from small animals eating things.
The result of this change is that a creature eating a box or a meal is simultaneously easier than before to notice, if you care about it. And easier to ignore, if you don't care.
Also included, two bugfixes:
Re-adds the reverted console canpass behaviour that was lost a couple patches ago
adds a little robustness fix to animals, to deal with an issue where they were getting their stat set back to 0 without properly waking up. still not sure why it happens but now the icons will properly update when they do
A minor issue that's annoyed me for a long time;
This PR adds ON_BORDER support for attack animations and atom facing, causing you to face and strike in the correct direction when dealing with border objects on the same tile as you. Previously these things would fail and do no animation/facing change
Afaik, border objects really just means single pane windows and windoors right now.
Ladders now have proper open-space shafts. Their sprite has been edited to remove the faux-hole, and also the down sprite is now at the same vertical pixel adjustment as the up sprite, so it looks kinda like they connect.
For security's sake, you can no longer fall down an openspace if there is a ladder on the openspace tile. Strangelly enough there was already code for not falling down if there was a ladder below you.
Added flight to some simple mobs that had been excluded from Alberyk's initial runthrough (parrots, bees, bats, and shades.)
The purpose of this PR is that you can now fly up ladder shafts.
Fixes a bug that gave PAI's all access.
It seems at some point silicons were changed to use an internal ID, and pais were given that same ID which had all access.
Changed it so their internal ID only has basic access and rerouted pai ID functions to it. This restores them to intended functionality, that is: They can only walk in public areas, and wherever their master has access, once the master has scanned their ID
Features:
Removal of BOREALIS (python module) as it's not used.
Removes ToR ban feature in lieu of IPIntel.
New BOREALIS config to alert staff if server starts as hidden.
Adminhelps now inform admins on discord if dibsed (when they were sent to discord anyways).
Adds hub visibility to the server access control panel.
Adds mirror ban spotting via ban panel. It now redirects to the linked ban if one is found.
CCIAA now get alerted as to how many of them are online and active when receiving faxes and emergency messages via Discord.
Removed unused C/C++ libraries. The socket_talk module is a generic UDP shipper, of which Arrow implemented a better version. lib nudge is not even compiled for use. lib_nudge module is uncompiled and no longer used, as we use cURL for the bot.
Removed depracted APIs and config settings related to the previous point.
Whitelisted jobs now appear properly in the job selection window as [WHITELISTED].
Job ban reasons can now be viewed from player preferences window.
Await admin approval for final CCIAA requests and implement. RIP CCIAA.
Fix age bans for jobs and antags (dynamic ones, ofc).
Implement https://forums.aurorastation.org/viewtopic.php?f=18&t=8283
changes:
Machinery now uses machinery_process() instead of process(), allowing machines to be put into SSprocessing-style lists in addition to the machinery list.
Automatic power calculations now involve less proc-calls.
Fixes#2665
Fixes the garden vending machine being the wrong and a missing camera tag
Fixes some body markings having the wrong icon state
Fixes verbs such as select equipment and etc being broken
Removes the belly markings because they were awful
This PR unifies the various manual implementations of custom loadout equip into three procs located inside the job subsystem, as well as updates all custom loadout code to use the new procs.
Fixes custom loadout items not overriding job items in character setup.
IPCs had the var eyes set to default, which caused some really odd and ugly sprite to appear on the side of their monitor, this pr will probably fix this.