These things are ultra shitcode and need to be remade from the ground
up, but for the time being this stops them from exploding the server.
Co-authored-by: Matt Atlas <liermattia@gmail.com>
This permits the impact drills to work for surgeries where a screwdriver
would work. For the regular uses that would be opening the hatches on
prosthetic limbs and prosthetic organ repairs. This was done as
machinists, who primarily do those surgeries, usually print an impact
drill for themself anyway so it was an annoyance to have a screwdriver
just for that one thing in their entire workshop.
While at it, I also changed a few hardcoded tool checks elsewhere to not
be as hardcoded.
PDA flashlights work again and their strength is now determined by the
flashlight inside. There is still only one type of flashlight.
Cargo tug lights work again and are now directional.
- Adds the Caria origin, by request of human lore. Carians are vulnrable
to light, but have low light vision.
- Adds the Caria accent.
- Adds Carian flags, available in the loadout.
- Adds the Carian tribunal necklace, available in the loadout.
- All description are by Schwann.
- All sprites are by me.
---------
Signed-off-by: Fyni <itsfyni@gmail.com>
Signed-off-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
With this, cell chargers can be constructed and upgraded. They are about
double the power of a regular recharger with an equal tier of
capacitors, as that is roughly the difference they were at tier 1.
I take no responsibility for people forgetting to upgrade their power
supply to handle the extra drain. Go fetch a better cell in the APC for
that, as it worked fine in local testing when done so.
A regular recharger was added to the machinist's workshop, as they had
no way to recharge device batteries before.
This changes up some of the possible warehouse spawn content. More book
options, couple of shield gens, slightly higher chance of some mats and
some other changes.
The big notable one is the chance of a big mob in the warehouse was
changed from 3% per round to 9% and the list for small and large mobs
was expanded. Particularly psirens were added, with a need to reduce the
spawn rate after the arc.
The warehouse spawn total was also reduced from 180 to 120, partly as a
test and to make the warehouse slightly less overloaded.
Machinists already get a different set of bounties to complete, so this
ensures when an organ bounty rolls, it is a medical job. additionally
prosthetic organs can be added as a future option.
No Breathe wasn't properly checked anywhere because Pressure Immunity
was doing its job by accident.
Also makes Runtime's shuttle area require power, for convenience.
> All injuries sustained as part of this round are immediately and fully
canon, and should be roleplayed to the best of your ability, both in
this round and the following. Do not ignore an injury you have obtained
without explicit approval from administration. You are expected to
roleplay its consequences believably, even extending to following
rounds.
This means that if you were to get shot in the hand during an event, you
cannot magically pop up next shift and pretend it's fully fine. You are
expected to roleplay these things appropriately. Similarly, if your hand
was removed during an event and is substituted with a prosthetic, you
are also expected to keep this unless you adminhelp and an administrator
tells you that you can void the event in question.
Surgeries taking 10 minutes and leaving no consequences is a gameplay
contrivance, not a realistic representation of what surgery/medical
recovery is like in the Auroraverse. Conditionmed will show this better.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Requested by a pharmacist player for when there are no surgeons or
physicians around. Butazoline can now fix tendons in the same conditions
as bicaridine can fix arterials.
Cargo orders would have trouble clearing the list of orders shown
without reloading the ui, due to a lack of unique ID if there was
several of the same item. The same applied to the cooking codex. This is
fixed now.
This also fixes the cooking codex search.
The closest thing to a balance change is the hardsuit boots being
deployable without the chestpiece again.
The SFX can be moved with the recent update to armour sounds if someone
wants, but the slowdown is a heavy enough penalty to discourage it.
- bugfix: "Fixed the Retract All Hardsuit Parts verb, by making hardsuit
boots retractable with the chestpiece deployed, at a heavy slowdown"
- bugfix: "Fixed the stealth system module not decloaking when the user
fires a gun or hits a mob."
- bugfix: "Fixed being able to instantly remove your hardsuit if it had
a storage module in it."
- bugfix: "Fixed mounted energy guns being stuck in taser mode. Also
extends support to other guns with multiple firemods."
- bugfix: "Fixed most hardsuit modules not having an on-mob sprite."
- bugfix: "Fixed synthetic chargers not charging the hardsuit, if the
wearer was an IPC."
- bugfix: "Fixed the hardsuit UI not updating when toggling jetpack
stabalizers."
- bugfix: "Fixed the advanced hacking tool searching the wearer's entire
contents to see if it had been dropped every tick."
Adds a cool-looking subtype of the rescue axe for security and antags.
Spawns by default in security officer and head of security lockers. It
has also been added to some antag preps (mercs, burglars, raiders) and
to the uplink (tools section, 1 BC). Sprite by TheStryker.
<img width="366" height="276" alt="image"
src="https://github.com/user-attachments/assets/c034e454-60e0-4d0b-a5ff-fd1c22f4075f"
/>
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
* Adds the Sun Reach origin, splitting it off from the Imperial Frontier
umbrella.
* This was done with permission from Matt and by request of the human
lore team.
* This is mainly done so Sun Reach can have the hot resist trait, as
befits the sweltering planet.
* Consequently, Sun Reach accent has been removed from the Imperial
Frontier origin (but remains in the exile origin).
* Updated the Novi Jadran description. Both the new Novi Jadran
description and the Sun Reach description were written by Schwann.
---------
Signed-off-by: Fyni <itsfyni@gmail.com>
Makes a large number of mostly small changes to the recently remapped
service wing, now that it's had a few days to stew. Adds urban signs for
service staff facilities and washrooms, adds such a sign to every other
washroom, and makes a little more space on the bar back counter. Also
implements significant remaps to the new service washroom and bar.
<img width="718" height="382" alt="image"
src="https://github.com/user-attachments/assets/5490ad76-3b1e-47c0-9026-984b6412893f"
/>
The washroom now connects both sides of service, and contains a washing
machine. Should make the space more useful.
<img width="632" height="598" alt="image"
src="https://github.com/user-attachments/assets/401da10c-7410-4e4c-8b12-a0575fb6db19"
/>
The bar's drinks vendor and showcase have been moved into the centre
with full density.
Cons of this design:
- It's cramped compared to the current design, which may lead to
congestion.
Pros of this design:
- The vendor and showcase are no longer pixel shifted! You can now move
them about without dismantling tables. The showcase is also close to the
counter, which may be useful on the off-chance it's ever resprited to
not just be a fridge.
- The bar is now more packed, which I think feels more appropriate for a
ship service facility than the current design.
- You can lean on the vendor (as seen above!) to alleviate issues with
congestion. It's designed similarly to the kitchens 1-turf lanes in
that, insofar as there's only two bartenders, it's impossible to be
blocked from getting to one turf in the bar by someone else unless they
are standing on the exact turf you want to be standing on, without
leaning. Doesn't scale well above two bartenders, but there frankly
isn't enough gameplay for 3+ to begin with anyway.
<img width="224" height="256" alt="image"
src="https://github.com/user-attachments/assets/74494b55-e070-4277-b73b-b348b3d5d5f2"
/>
Rejigged the karaoke lounge's turfs a little. The sofa is now red rather
than orange.
<img width="384" height="256" alt="image"
src="https://github.com/user-attachments/assets/e3f989ef-d1d7-4a89-81fa-8d59287eba95"
/>
Did the same with the public garden, to fit in better with the rest of
the department.
<img width="128" height="96" alt="image"
src="https://github.com/user-attachments/assets/94705f68-42a4-40a2-842d-f1f17f022718"
/>
The navigation console has a chair now.
Doesn't meaningfully conflict with
https://github.com/Aurorastation/Aurora.3/pull/22801, and doesn't really
touch the kitchen or hydroponics.
Latex gloves (and by extension, nitrile and all other child items) had a
75% chance to leave fingerprints. This reduces that chance to zero.
While some impressions can be left by these gloves in real life, it is a
counterintuitive behavior for the purposes of the game (and we have
enough of those to memorize elsewhere anyways).
SURPRISE! I hope you all had fun during the Psilence event! It was
really fun spending 6 months coding all the infrastructure I required to
make that encounter possible. Encountering an entire new enemy type was
no doubt incredibly exciting to happen during a big canon round. Well as
promised, these critters will start showing up more often now that the
big reveal has occured.
<img width="982" height="981" alt="image"
src="https://github.com/user-attachments/assets/c537afe6-9b97-4913-8572-85650556b871"
/>
<img width="979" height="981" alt="image"
src="https://github.com/user-attachments/assets/1049b564-eb54-45e8-a113-da48f5c4b67b"
/>
This PR adds new rare random events and overmap hazards for Psirens,
allowing the basic varieties of them to appear in normal gameplay. They
can also be summoned by technomancers. More to come later. :)
This PR tweaks an AI's can_use_remote_ui() proc to check for cameranet
visibility instead of distance to an AI's eye. This allows an AI to use
machines that aren't visible from the eye due to dense objects, but are
still visible from cameras. It also keeps the UI window open if the AI's
eye moves away, and closes the UI window if the viewing camera is
disabled or destroyed.
Fixes#22726
The conditioning skill was a little too harsh on Skrell, who suffered
heavily from being the lightest and smallest species, which made them
have extremely unfavorable interactions with mass and fireman carrying.
This PR gives them a higher than normal mob strength modifier to offset
their low mass, so that they can at least fireman carry a human without
requiring the conditioning skill. This makes both standard and Axiori
skrell start at a similar level as a human's limits for carrying before
the Conditioning skill is considered.
Reduces the chance for bones to break.
Fixes injury checks not respecting the DAMAGE_FLAG_BULLET flag.
The chance was: Brute damage + damage of the hit.
Then multiplied by 2 if the hit was blunt. (Bullets counted as blunt
previously)
The new chance is a linear scale, 0% at no damage, 100% at max health *
4. (Organs take damage up to 4* their max health).
Then 1/2 the damage of the hit, 1 times the damage of the hit if blunt.
To compensate, edged weapons now only decrease their chance to hit
organs by 40% if the ribs are not broken, instead of by 80%.
Example of the first hit to the chest:
STS35 bullet (damage 35):
Previously: 35% + 35% = 70% fracture chance. With 16% chance to hit an
organ.
Now: 8.75% + 17.5% = 26.25% fracture chance. With 49% chance to hit an
organ.
This one will probably need some testing!
There should be an opportunity cost to proning, which at the moment
there isn't and can't really be. When counting the amount of issues this
feature creates (making you artificially harder to it, looking extremely
silly, various layering issues...) it just needs to go at this point.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
<img width="1549" height="857" alt="image"
src="https://github.com/user-attachments/assets/3830233d-0635-4942-b2aa-024651e6cffa"
/>
Limbs make up roughly half of the "Per additional player" processing
overhead, while Organs make up most of the other half.
Not every organ is an easy candidate for "Event-only processing", but
external limbs are significantly easier to do so.
So this PR makes it so that External Limbs no longer require Processing
unless an event happens that would justify them requiring processing.
Which SIGNIFICANTLY reduces the overall additional cost to the
Processing subsystem per player that joins the server.
Oh and I also made the Appendix and Kidneys not require constant
processing. The Appendix will only process if it is hit by an
Appendicitis event, and the Kidneys will only process if they are either
damaged, or you get poisoned.
This PR does a few new things:
1. Adds a Mass var for Movables (/Mob, /Obj) which is literally required
for me to do anything at all with Kinematics (Very routine basic
physics)
2. Adds a derived "effective mass" statistic which is generated via
signal hook, allowing sources like Skills, Drugs, Cybernetics etc to
pitch in and contribute to a user's "Strength" in certain situations
without directly modifying mass.
3. Adds a mass modifier var for species datums, while painstakingly
calibrating each and every single species with consultation from every
lore team. A baseline human gets 72.0kg of Human Reference Mass. Any
species applied to it will multiply this by a constant that
algebraically cancels out the Human Reference Mass and replaces it with
a Species Reference Mass. Changing a species via the usual procs will
reset and then re-apply the correct values.
4. Refactored Lift/Drag/Fireman to have limits and penalties based on
relative effective mass
5. Finally, to make use of all this, I've added a new Conditioning
Skill, which modifies effective mass.
The standard assumption made for Lift/Carry is based in an assumption
that a typical character should realistically be able to
lift/carry/fireman a person 1.25x their mass. Previously the fireman
carry mechanic was heavily hardcoded, and didn't have much in the way of
granularity. If I wanted to RP a character that was a bodybuilder, there
wasn't really a way to do this. With this PR, there's now a fairly large
variety of interesting breakpoints.
This also allows there to be more granularity between different species
as desired by our lore teams. For example, a Zhan is in general stronger
than a M'sai. To give an example in the breakpoints for two different
species:
Human Lift Breakpoints:
Rank 1: 90kg (lift a Skrell, Human, Offworlder, M'sai, KA, or ZA)
Rank 2: 112.5kg (Lift a Zhan, Shell, or Diona Coeus)
Rank 3: 135kg (Lift a (Non-Industrial) IPC, Unathi)
Rank 4: 157.5kg (No new breakpoints, though you get less a movespeed
penalty from lugging around any of the above)
Can Never Lift: Industrial, Bullwark, Diona, Vaurca Ta'
Zhan Tajara Lift Breakpoints:
Rank 1: 116kg (Skrell, Human, Offworlder, M'sai, Ka, Za, Zhan, Shell, or
Diona Coeus)
Rank 2: 145kg (Non-Industrial IPC, Unathi)
Rank 3: 174kg (No new breakpoints, though you get less penalties from
the above)
Rank 4: 203kg (Juuuust barely lift an Industrial or Diona with heavy
slowdown)
<img width="1078" height="436" alt="image"
src="https://github.com/user-attachments/assets/a6802515-a827-4dc1-8734-55b604c589ab"
/>
Conditioning as a Skill sits in the Occupational category, which has
been carefully chosen and designed around to create a fairly compelling
web of opportunity costs. As a skill, it's very desireable for basically
any person that wants to play a "Muscular character" and also enjoys
fireman carrying people around, which makes it particularly useful for
hangar techs. By contrast a Paramedic might not actually need this
skill, since they can bypass the usual limits by just using rollerbeds.
---------
Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Corrects some minor oversights. Kitchen supplies now spawn on the
kitchen counters once more, added a soda machine that I forgot to add,
removes an extra oven, and puts the dinnerware vendor where the oven
was.
The freezer is also less potentially lethal. Turns out I don't know the
Kelvin scale
Fixes several runtimes from the past few weeks, some additional material
repath regressions, and the fact that if I shoot you with a stream of
ionized deuterium particles, it doesn't riddle you with cancer.
changes:
- bugfix: "Fixes emergency shields runtiming when hit by thrown
objects."
- bugfix: "Fixes several stale global list runtimes."
- bugfix: "Fixes several health percentage checks that could use unset
initial health values."
- bugfix: "Fixes additional materials regressions in INDRA code."
- bugfix: "Fixes invalid fuel injector depletion math."
- bugfix: "Makes accelerated particles apply radiation damage to living
mobs they pass through."
This PR clears another server performance culprit, the Cargo Elevator.
It turns out that there was an unchecked processing call in Cargo
Exports, that would permanently increase the servers' proccessing cost
per tick for each and every single unique type sold. With this PR,
exports clear themselves from the processing list once their cost/time
recovers to its original value after being sold. They then re-add
themselves to processing once sold to start the price recovery.
<img width="1144" height="599" alt="image"
src="https://github.com/user-attachments/assets/675f645e-23c7-4c5b-905c-6ab259676fb3"
/>
Not a single one of these timers are doing anything, but they occupy
processing time. This PR makes them not do that. When you activate a
timer, they start processing. When the timer finishes, it stops
processing. No need for it to linger in the processing queue
indefinitely. There's like a hundred of these things on live.