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.
Fixes#2622
-adds more clothing for people to play dress up with their spessmen.
-fixes some long description on the ian's shirt
-allows people to toggle night vision glasses and material scanners while wearing them
-tweaks more marking related things
Ports the bay's character preview system, which is far better to observe aesthetic changes in the character creation, also solves the issues such as markings don't showing up at the character selection menu.
This PR adds a new helper (ADD_VERB_IN(target, time, verb)) to add verbs to a mob using timers instead of spawn.
Also converted a few instances of spawn-verb-adding to the new helper.
Converts the ion trail effect to use SSeffects instead of a spawn-loop for processing, as well as makes it also manifest on openturfs instead of just space.
CHANGES:
Spiders will no longer create massive stacks of cocoons under dead comrades. Fixes#2448
Limbs infested with spider eggs will now take longer to burst. When they do burst, the limb is gibbed.
Infested limbs will give out more warning now past a certain stage.
Modified the spider event. The moderate severity one will now no longer spawn nurses, so they can't multiply.
Added a major severity spider event. It spawns more spiders than the moderate severity one along with nurses.
-species have the right remains_type now, ipcs will leave behind robot remains, humans will leave behind humans remains, dionae will just leave behind ashes and most xenos will leave behind xeno remains
-soulstones can now leave behind different types of remains depending on their victim species
-wraiths and harversts will not float over open turfs and can freely move around z-levels
-baselines and industrials ipcs will now have the neuter gender, shells can still be female or male, also they won't spawn with internal boxes anymore
-this may fix#1549
changes:
Blood overlays are now cached and do not involve world iteration.
Moved every global icon cache I could find into a new SS for organization & easier debugging. SS does not fire or init.
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.
-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.
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.
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)
Merges the NanoUI subsystem with Nanomanager, as well as cleans up some nanomanager code.
Most of the files in this commit are changed as a result of removing the nanomanager global in favor of the SSnanoui global.