Runtime map now has a bunch of new areas / items with often-tested
stuffs, and some hard-to-put-at-runtime stuffs.
Runtime map jobs now are positioned to make it faster to reach the
aforementioned often-tested stuffs.
Runtime map doesn't generate an overmap anymore by default, which speeds
up the process.
Runtime map now loads in ~11 seconds instead of ~40 seconds as it was
before.
Updated the maploader to be faster in parsing maps.
Bapi is not engaged anymore if we're only measuring the map size, which
speeds up the process.
In fastboot we do not generate the codexes anymore, which speeds up the
process.
In fastboot and if exoplanets and away sites are not enabled, we do not
parse the map templates anymore, which speeds up the process.
Updated the icon smoothing to be faster.
Optimized cargo area code.
Other optimizations.
Refactored the attack proc signature.
Added signals and components for the attack proc.
Added signals and components for the attackby proc.
Adjusted some leftover attackby procs signatures.
Added grep test to ensure people don't keep adding attack/attackby procs
with the wrong signature.
- Cleaned up electronic cigarette code slightly.
- Electronic cigarette cartridges are now removed with alt-click.
- Electronic cigarette cartridges now last far longer.
For some reason, e-cigs had their own snowflake transfer value, which
meant that your average electronic cartridge lasted you maybe 1 minute.
---------
Signed-off-by: Matt Atlas <mattiathebest2000@hotmail.it>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
This is a remap of the TCAF Corvette offship, intended to be more
intuitive than the current one.
**This is up for review.**
Notes:
1. The combustion engine isn't the only source of power in the ship,
there's also a portable generator that should be able to produce enough
to keep the ship going.
2. This adds a few clothing and overmap sprites for use in the
ghostrole, credit to Noble for them, and it also consolidates a few of
the existing TCAF assets into a single faction file. It isn't
comprehensive, but it's more organised than it was.
3. The armoury has been diversified a little. It's now composed of two
blaster rifles, one bolt slinger, one combat laser rifle, one pump
shotgun, and one burst rifle, plus the PEAC and six blaster revolvers as
sidearms. The primary intention of the combat laser rifle, pump shotgun,
and burst rifle is to provide a little AP which blasters universally
badly lack, so the ghostrole should be decently competitive against
armour. My hope is it should be roughly as strong as the Coalition
Ranger ship in combat.
4. I'm not totally happy with the hangar, but I'm not satisfied with any
of the docking port designs I've been able to think of, so I'm running
with it for now. I do believe a docking port is generally preferable.
5. Per Trio, species restrictions are tightened a bit on the Decurion to
only cover humans, Skrell, IPCs, and Vaurca Warriors. Liable to be
changed. Vaurca workers have also been excluded from every combatant
ghostrole, playable only as technicians. I'll be prodding at adding
bulwarks too, but they're not currently included due to some fickleness
with giving them appropriate uniforms.
6. The sensors are the strong variant for the shuttle and ship, with the
idea that it should be particularly good at reconnaissance. I doubt
anyone would use the shuttle to scout the sector, but the sensors are
good to throw a bone in that direction.
Refactored the projectile code, mostly in line with TG's now.
Refactored various procs that are used or depends on it.
Projectiles can now ricochet if enabled to.
Damage falloffs with distance.
Homing projectiles can now have accuracy falloff with distance.
Projectiles have a maximum range.
Muzzle flash is configurable per projectile.
Impact effect of the projectile is configurable per projectile.
Accuracy decreases with distance.
Projectiles work with signals and emits them, for easy hooking up from
other parts of the code.
Meatshielding is now less effective .
Impact sound is now configurable per projectile.
High risk.
Refactored all the builtin text procs to use string interpolation
instead.
Added a linting for the above.
This is based on, and should only be merged after, #19847
Added 79 new stickers. 60 by LforLouise, 1 by Noble Row, 2 by Ben10083,
10 by Hazelmouse, 1 by Mr.Popper, 4 by FabianK3, and 1 by Kermit.
Added sticker sheets, a storage that can only store stickers. Sprite by
Noble Row
Added the new sticker sheets to the loadout menu
Replaced gold star and googly eye boxes with sticker sheets.
Nicotine pill bottle was incorrectly labled 10u, while only having 5u
pills.
Whoops.
Thanks Ofna01 for letting me know.
---------
Signed-off-by: HanSolo1519 <72716882+HanSolo1519@users.noreply.github.com>
Refactored the abstract meta propriety into defines.
It's now more easy to spot/see abstract types thanks to the macro that
defines them.
Added a check on initialization of atoms to avoid spawning abstract
types.
Made the spawn_atom proc check for abstractness.
Made the spawn_atom proc use tgui_list for types list shorter than 1000
elements, which enables to search in them. It's too laggy on larger
lists so above 1000 it uses the builtin input.
Made the spawn_atom use a list subtraction instead of a double list,
it's lighter on memory and processing.
Your coworkers getting you down? Struggling to keep that headache at bay
during a day at the office? Just need a pick-me-up? Look no further!
Adds the Nanopharm, a simple vending machine giving access to some
over-the-counter pharmaceuticals. Caffine pills, Cough medicine, that
sort of thing. Amazing for 'My coworkers are such a headache I need to
pop pills over it' rp.
Please actually do feel free to give feedback over what should be added
or omitted. I want to give some variety without adding things that
should be prescription and controlled substances. Current things of note
are caffeine pills, nicotine pills, and vitamins which this PR adds.
Same as #19740, but with less conflicts hopefully. Credit to
Courierbravo for helping with the map when my SDMM install messed up
---------
Signed-off-by: HanSolo1519 <72716882+HanSolo1519@users.noreply.github.com>
Take two; without panic closing a PR because it changed a file I didnt
want changed!
Adds a new item to the game and to the loadout options under 'zippos',
the Callistean lighter!
A cheap. Flimsy. Garbage lighter that Idris swears wasn't a money
laundering scheme.

This is intended as a warm up PR for me to re-familiarize myself with a
few tools; and to give something nice to the better moon.
This makes candles, matches, and cigarettes burn for longer than they
currently do. Matches burn for twice as long, candles for about +1/3 as
long, and cigarettes around twice as long.
Code note: I don't see any problems with this for matches and candles,
but there's a comment in the current code warning strictly not to lower
the smokable burn_rate below 0.01, see the changes. I haven't been able
to hunt down exactly why this is, and it seems like the burn_rate for
the parent type was already lowered down to 0.006 a few years ago by a
previous PR intended to extend cigarette burn times. From what I can
tell reagents are still being absorbed below 0.01 by having the
cigarette on your mask slot, so if there is a serious issue with this it
can be removed under review, but I'm not certain what it would be. I've
removed every subtype modification to burn_rate, which seems to have
been left a setting substantially higher than the parent, causing pipes
and cigars in live to seem to burn out very quickly - like in a little
over a minute.
The removed `qdel` seemed extraneous from what I could gather. There may
be a niche instance that the `qdel` caught, but from what I read of the
code and testing it, the `qdel`s in `activate()` and `small_countdown()`
are sufficient. I could have put it behind an if statement, and still
could, but it looked messy and seemed unnecessary.
I have some small gripe with `DROPLIMB_BLUNT` somehow not causing injury
or a bleeding wound. If someone gets their hand hit so hard with a
baseball bat that they no longer have their hand, I doubt it would be
bloodless. I struggle to think of a scenario where the loss of a limb
does not involve heavy bleeding.
Anyway, I settled for changing it to a `DROPLIMB_EDGE.` I was
considering adding an instant bloodloss (5-10% depending on which limb
was exploded), but that felt a bit much.
Additionally, I would like to make the change from `_BLUNT` to `_EDGE`
for [Greimorian egg-bursting limb
loss](5e69bf50bc/code/game/objects/effects/spiders.dm (L322)),
but I worried it would muddle this PR too much.
Below image shows what a health analyzer scan prints with the new
`_EDGE` limb loss. When `_BLUNT` there is simply no wound, bleeding, or
pain.

Refactored hitby to be in line with TG's version.
Refactored item weight defines to a more clear naming scheme, also in
line with TG's version.
Refactored how the movement bumps are handled, ported signals to handle
them, in preparation for the movement update.
Fixed disposal hit bouncing the hitting atom on the wall.
Items do not push other items anymore if they are tiny.
This reduces the explosion radius of standstills. Currently, standstill
landmines blow a hole in the ship so large that it can take engineering
an extremely long time to fix it, even with full staffing. If a
standstill goes off inside service, for instance, nobody is using
service for a very large portion of the round, if ever - between the
venting, the broken floors, walling, windows, furniture, and machines. I
think it'd benefit as a tool without its users having to worry about the
insane blast radius disrupting more than they intended.
This reduces the heavy and light impact ranges, so they'll do less
structural damage, but maintains their devastation range - so, if you're
caught at the epicentre of the blast, you should still be about as
immediately critical as before. Lethality shouldn't be strongly
influenced, just structural damage. The blast radius is still large
enough that, in my testing, it's impossible to fully escape the blast.
Current blast radius:

PR blast radius:

* Animal traps now work based off mob size, instead of having a specific
mapped in list for animals it can or cannot capture.
* Added new examine text to traps that help explain how to use them.
* Added a verb to deploy / undeploy traps.
* Tweaked a couple interactions with traps, mechanically and
grammatically.
* Fixed a lot of bugs and issues with traps.
- [x] Finish looking over the file and removing the bad.
- [x] Clear out the TO-DO's I left in the file.
- [x] Add ability to examine the item to figure out how to use the item.
- [x] Test changes.
Refactored Life() to receive seconds per tick and times fired as
parameters.
Life() now cannot be slept in, turned various sleepings into async calls
procs.
Optimized mob AI subsystems, gave them new priorities levels and flags.
Grab upgrades are now elaborated asynchronously, tweaked them to avoid
stacking multiple upgrades.
Fixed plains tyrants keeping sending messages about stomping even if
dead.
Removed the gelf logging infrastructure.
Refactored the various logging procs to be a direct call in light of the
above.
Removed ancilliary UDP related things.
As titled. It sets the idea that the cubed animals aren't exactly the
same as their regular counterparts. This might be something for lore to
decide though, not me. So this PR should probably stay up for a bit.
For those too scared of clicking the "files changed" section. The
description is as follows.
"The manufacture of a cubed animal produces subjects that are similar
but have marked differences compared to their ordinary cousins. Higher
brain functions are all but destroyed and the life expectancy of the
cubed animal is greatly reduced, with most expiring only a few days
after introduction with water."
---------
Co-authored-by: WickedCybs <wickedcybs@gmail.com>
Resprites various IDs that used the original Nanotrasen ID despite being
separate organizations. Complete changes are:
-Resprited guest pass
--Fixed description to specify we are on a ship now
-Resprited Legion ID
-Resprited Centcom and CCIA ID
-3 new IDs for Command (silver stripe), Bridge Crew (no stripe), and
Captain (gold stripe)
All sprites are either made by myself, or modification of existing ID
sprites.

Trying to bring both in line with this PR:
https://github.com/Aurorastation/Aurora.3/pull/18708
Maglights have the same force as binoculars, multitools, etc - other
formerly 5-force items. They are still outclassed by crowbars and guns
in melee, so they shouldn't revert to being the default weapon of
choice.
Energy weapons were not buffed in the above PR, so I've simply adjusted
active_force by the formula above.
Adds tents, in two variants (A larger and smaller one). These utilise a
new large structure framework allowing a single item to spawn multiple
structures (The parts of the tent) in the correct places. The tents
count as inside, so can be used to shelter from weather. Tents have
roofs which become semi-transparent when entered. There are also
mappable effects which generate a tent at round start for mapping.
Adds sleeping bags, which can be attached to the outside of bags for
easy carrying. Ideally this would be an accessories interaction, but
backpacks aren't clothing and converting them to be such is outside of
the scope of this PR.
Adds foldable tables, for setting up on expeditions.
Ported SSThrowing from TG, to handle throwings.
Updated movement system to the latest iteration, made it a datum as per
latest iteration.
Updated pass/hit handling of atoms, introduced pass_flag_self to
determine what atoms allow to pass.
Moved procs and defines around to make them more organized.
This PR brings back the more accurate title for First Responders, of
Paramedic, to bring it in line with some snippets of the SOP and to be
more accurate to the role itself, as both Security Officers and the rare
and elusive Firefighting Atmospherics Technician can be considered first
responders.
also I just like it better.
Changes any mentions of first responder in gear/access/etc to Paramedic
or PARAMEDIC where applicable.
* Added power cores, a type of large battery cell that get used by
exosuits. The nuclear and phoron variants are self-charging.
* Combat mechs now start with nuclear power cores, allowing them to
sustain themselves indefinitely, so long as they stay out of the action
for a bit.
* Removed basic power cells from the mechfab, replaced with the mech
powercores.
* Mech cell statuses now instantly update as soon as the cell charges or
discharges.
* Added a stack of 10 uranium to the machinist's workshop, which can
print two nuclear power cores.
The Vaurca integrated mag-claw augment now mimics magboot functionality
(not slipping, etc) rather than deploying an entire pair of magboots
onto the user. Code shamelessly copied from #18875
Added some notifications of proximity to the plains tyrant.
Reduced health and auto-brute-healing of the plains tyrant.
Fixed traps pathing so that mobs should now pass in them.
Optimized SA_attackable proc.
Mechs are no longer opaque, this fixes the simplemobs not attacking them
(because the line of sight check fails as the turf they stand on is
opaque if they are opaque too) as well as avoid lighting recomputing on
every step.
---------
Signed-off-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Co-authored-by: Matt Atlas <mattiathebest2000@hotmail.it>
Standard examination was in an examine box. This makes it so fluff
examines are also in a box.
Fixes#18438
---------
Co-authored-by: Cody Brittain <cbrittain10@live.com>