Three types of playable hivebots, which can be spawned by admins or
storytellers. When spawned, a ghostrole will open.
---------
Co-authored-by: DanseMacabre <rsurname1212@gmail.com>
As title, requested by Diona lore with the intention of making Geras
more viable fighting simplemobs - particularly if you want to play one
as a miner.
This is the same rank of armour as a Vaurca Bulwark, though missing
their substantive brute modifier. This has been implemented as melee
armour instead of a brute modifier so they aren't any less susceptible
to projectiles.
Doesn't apply to Coeus Dionae.
Adds a short variant of the punk sidecut haircut, just trying out the
sprite editor to get a feel for it/make sure there's no extra tricky
workflow steps for very simple baseline sprites to start with. Unless
there's a place with a list of wanted/needed basic sprites to attack,
will try to think of useful things to make for more future practice.

https://github.com/Aurorastation/Aurora.3/issues/18299
Original bug report was for Air Alarms always displaying their wiring
interface when interacted with, even when the maintenance panel was
still closed.
I found a few other objects which also did not correctly check if wires
were accessible before displaying the interface.
There also remains some inconsistency: some objects will always display
the wire interface when clicked on with panel open, but others require
you to have certain tools in hand too (wirecutter, multitool, etc.).
Without them in-hand, they won't give you the wire UI. I'm indifferent
to which option is better, but it should be made consistent. If someone
feels at all strongly about having tools in-hand vs. not to see the
interface, then I can also make that change with whatever the prevailing
opinion is.
Thanks to harry for pointing me in the right direction here.
The way this worked previously, is that it bypassed the UI
initialization. I ended up moving all of that into a seperate proc,
which is now also called upon logging in with the offline authenticator
(after prefs are loaded).
In addition, I improved the login window. Instead of having a closable
pop-up window (which was only made closable due to a bug with it staying
open), it is now integrated into the game window itself (and I fixed the
bug requiring it to be closable). There was also an unclosed `<body>`
tag which I closed, and all the elements previously sent to the (now
blocked) chat window, instead appear on the window itself.
!!! Please merge AFTER #20723 for migrate version (this PR is set up to
seamlessly be merged after that PR) !!!
Adds a new option to character preferences determining whether a shell
is a hidden shell or not. Right now this is a Yes/No toggle that solely
makes records display as "Human" instead of "Shell Frame".
The previous iteration of this was icky.

I hope this is better.
My rationale for this is twofold:
Right now, you can only play a hidden shell "correctly" if you're
untagged. Firstly, this isn't explained anywhere, so people might miss
this by playing a tagged shell that's playing human. Someone might do
this because a tag can be a potent story tool, especially for specific
brands or lines of shells. Imagine tag scanning a runaway you've found
and getting presented with `HLTD-S07U24`, suddenly you get a huge amount
of storytelling there that wouldn't be present without the tag. <sub>any
similarities to persons living or dead is purely coincidental.</sub>
Secondly, it also means you can't play a shell who doesn't try and hide
it, but also has no tag, because that'll automatically show as human,
which is problematic in many ways.
Also, I moved the "species" field in records to the top with the rest of
the public info, and took it out of employement records, because
security and medical would definitely also get that info, logically
speaking.
In the future (with lore team approval) i would like to enable certain
human citizenships for shells with this preference enabled (likely just
Sol, but i mean if lore team wants we can get wacky with Dominia too),
but that's out of scope for this PR.
This change reduces the damage that the green, watermelon-looking
"Creature" mobs are capable of.
Previously, their attacks had a damage range of 20-50. For comparison,
Plains Tyrant and Cavern Geist do 40 damage an attack.
The Xenoarchaology item that spawns these green dudes seems to be
capable of spawning them pretty quickly - and when you're fighting
simple mobs that are able to break your bones and give you an arterial
bleed in a single hit, that gets silly pretty fast.
I've tweaked the damage numbers so that the Creatures are a little
stronger than Hivebot Guardians in terms of damage.
Refactored (second passage) how movement works, now it's mostly in line
with TG handling and avoids calling 3 gazillion Cross() Uncross() etc.
on every atom in a turf.
Fixed EMP protection from species not actually protecting (this includes
the surge prevention for IPCs).
Fixed EMP 3D calculation runtiming because I forgot to make the value
absolute and it was doing the square root of a negative number.
It's now possible to queue the round to start with the Start Round verb
even while the system is initializing, for an even faster pain train to
enter the round and test things.
Updated the renderers to work with BYOND 516.
Some update of ZAS to hopefully be more efficient, and cold/hot air
effects.
Gas effects are now less prominent.
Ported from Bay
Fixes#20571Fixes#17105
- bugfix: "Fixes invisible thermal lance inhands."
- bugfix: "Fixes bulwark chat bubbles."
Also moved the bulwark sprites in dmis to the left one pixel to match
all the other sprites. It annoyed me that it was 9 pixels adjusted
instead of 8 like everyone else. Alignment unchanged.
Nanotrasen and Nanotrasen aggressive law modules/boards renamed to
Conglomerate/Conglomerate Aggressive
Adds the Conglomerate Aggressive lawboard (this lawset already exists,
just never was given a board?). Adds a copy to AI Secure Storage
(alongisde the existing lawboards, this falls under a board the SCC
would have just in case, like the other ones there.)
---------
Co-authored-by: Ben10083 <Ben10083@users.noreply.github.com>
Per request of synthlore - you can no longer select the android job
title to spawn in with a positronic brain in a shipbound chassis, and
neither can you manufacture one.
Cyborgs broadly are not removed and are completely playable, but they
must contain either an MMI or a robot circuit. Positronics can still be
installed into an AI core.
Added armor defines
Converted raw strings use to defines
Added UT test to ensure people set the armor var correctly (to a list)
No player facing changes
Removed the use of deprecated parameter icon-size.
Uniformed all clients to use fit to screen.
Fit to viewport is automatically attempted at login.
Statusbar is now hidden by default, giving more screen space.
Toggle fullscreen now works as expected, for even more screen space.
---------
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: realmattatlas <liermattia@gmail.com>
This adds a toggle to the equip_custom_items proc to alternate between
it equipping only body-related items, and everything else. These two
toggleable modes are called separately.
This is intended to resolve a bug in live where, if you join in with a
custom item prosthetic leg, your shoes will be automatically unequipped
the moment you join. This seems to happen because custom items are
currently equipped after the rest of the loadout/job equipment, so your
shoes are put on before your custom item leg is.
Allows you to jab other people with an overloader. Adds some more
documentation to overloader code, and adjusts effect_time and effects so
that overloaders last the same amount of time but provide more messages
to the user than before.
---------
Signed-off-by: hazelrat <83198434+hazelrat@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Turned a ton of unmanaged globals into managed globals.
Refactored some UT output.
Removed some unused things, including vars.
Added a test to ensure people don't keep adding new unmanaged vars.
Removes the immunity to atmos damage and cold damage from greimorians
queens and servants. This is primarily so they cannot go into vacuum
without being damaged, which is odd given all other greimorian variants
cannot do so.
- You can now look down open spaces by shift clicking/examining them
when they're next to you.
- You can now look up open spaces by clicking the HUD element at the top
right.
- Fixed inconsistencies with the camera getting stuck while looking up
or down. It should now be much more fluid.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Don't let the large file size scare you, it's just mostly splitting
stuff into contained sprites and putting them in the correct place.
Anyway, resprites most non-resprited devices in devices.dmi, and puts
them in contained sprites.
Also puts any related /obj/item/device into contained sprites too.
That's basically the long and short of it.
Adds 25 new IPC screens for baselines, most of which are flags of
various nations not already included but with a notable IPC population.
Credit for ipc_himeo (Himean Globe) goes to anthony.albanese on the
discord. @beepbopbeepbop. Thank you.
https://imgur.com/gallery/idris-synthetic-fashion-show-2467-QPz3vU2 for
some examples of the screens (though not all of them)
- bugfix: "Fixed PDAs not being automatically updated by the Force
Change Name admin action."
- bugfix: "Announcements from non-Horizon ships drifting into hazards no
longer spawn observer chat. You will only get the announcements if you
are on the same z-level. The Horizon will still send its announcements
globally."
- bugfix: "Offships no longer send newscaster announcements."
- bugfix: "Fixed ling stings not working. Again."
- bugfix: "The robotics core console no longer reverts into a normal R&D
console when disassembled and reassembled."
- bugfix: "The robotics core console now has its own circuit that can be
made through R&D."
- bugfix: "Fixed the message that simple mobs print when they step on a
trap."
- bugfix: "Fixed the foam sword sprite."
- bugfix: "Fixed damaged wall overlays."
- bugfix: "Fixed the INDRA field getting messed up by pointing at it."
- bugfix: "Apple pies now count for the pie bounty."
- bugfix: "Changeling chameleon claws no longer spawn in the warehouse."
- bugfix: "Admin click-drag to possess has been fixed."
- bugfix: "Added a minimum damage threshold to delimb, in order to stops
ridiculously small damage from taking off limbs. The threshold is the
organ's max damage divided by 3."
- bugfix: "The Pull psionic ability no longer pulls anchored objects."
Fixes#17739Fixes#17369Fixes#19535Fixes#19166Fixes#20184Fixes#20165Fixes#20164Fixes#20117Fixes#19961Fixes#20231Fixes#20277Fixes#20346
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
What it says on the can; now we can better compensate for processing
spikes by queueing and accounting for verb times (assuming we actually
use this framework to invoke the bulk of them). I have added its use to
some of them, more can be ported as time goes on, eventually everything
but the most trivial ones should go through this.
No player facing changes. Hopefully.
Praise be the omnissiah.
Adds two new Dionae origins for the Viridis, reflecting the recent lore
changes for Hegemony Dionae. The Viridis noble origin comes with a new
accent, Gardensong.
Allows Dionae to be Hegemony consulars as noble Dionae now exist. Also
allows Dionae to take Sinta'Unathi to represent their greater levels of
integration into the Hegemony.
From previous PR:
- Fixes Quick Equip (Thanks, Matt)
- Fixes Loadout Preview, will override uniforms properly now
- Turns shirts into uniform items, so you can attach accessories to them
This also fixes the issue of people spawning in shirtless if they didn't
attach properly to the pants.
Additions:
- Shifts suspenders, leather chaps, and kneepads to be pants
accessories.
(This fixes the issue of accessories staying even without pants, e.g.
assless chaps)
(In future, hip holsters are to be added to this accessory list)
Anyway, that's the long and short of it. Have fun.
---------
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Added various events to the dcs system in regards to click handling.
Refactored various mouse related procs.
Fixed MUI mask.
Fixed AI jump on double click.
Fixed some runtimes with the click handler system.
Updated the click handler system.
Fixed fireman carry.
Removes the min age of Geras Dionae from 30 to 1. While younger dionae
generally will still be a Coeus, Dionae exposed to extreme amounts of
radiation for a long period of time would grow to a Geras much quicker,
especially Dionae on Moghes.
---------
Signed-off-by: Yonnimer <31339047+Yonnimer@users.noreply.github.com>
Enabled new opendream pragmas
Fixed some runtime access check operators (`:`) around the codebase (not
all, some are unfixable as they're used in macros)
No player facing changes (hopefully)
Changes the name of "tame space carp" to "domesticated space carp", to
reflect what it says in their description.
(i also found out that there was an actual difference between 'tame' and
'domesticated'. the more you know)
Refactored mousedrag procs, added signals, some safeguards, did some
cleanups around, renamed them to make a little more sense. Mostly put in
line with TG's code.
Fast clicking and releasing with a drag, depending on the grace period
and how fast it is done, can be counted as clicks, to aid in combat
scenarios where you spamclick.
Added a bunch of flags for passflags on things that were previously
missing them.
Removed snowflake passthrow var, it's a passflag now.
Updated ClickCross and Adjacency code.
It's now possible to interact with things that are adjacent but
otherwise have a machine (or other appropriate items) blocking them, eg.
think of an APC on the wall with a machine in front of it.
* Bandages now do not disappear as damage heals, instead, a special
Remove Bandages verb must be used to remove bandages. This cannot be
used to re-open wounds for now, and can only be used if the bandage
would've downgraded / disappeared at that point.
* Taking damage on a bandaged limb now removes the bandages.