
Fixed monkey cubes under showers from turning the game into Doom 3.
Fixed showers not showering you because of an improper early return on
wet floors.
Fixed blood overlays being wrongly cleared when you shower.
Sonme code improvements.
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>
Added new sprites for random objects for everything in random/clothing,
/food, /loot, /medical, and /misc.
Also got distracted and changed how the corn oil/cooking oil tank looks
and how much reagent it holds. Now looks like the rest of the reagent
tanks and holds the same amount of liquid, 1000u.
Halves the price of overloaders from 200 to 100. Free IPCs are an
economically disadvantaged group so something aimed at them probably
shouldn't be so expensive.
Triples the amount of time overloaders last. 30 seconds was too short a
time for meaningful roleplay to occur, especially given how much they
cost.
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.
I'm not sure when the templeist versebook lost the icon it was meant to
reference, but it's been broken for a while. This adds a new sprite for
the book, plus inhands, to fill the gap.
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
This adds the Lone Spacer offship and ghostrole. This is a shuttle-based
offship with only one slot, designed to be a totally generic and
versatile sandbox to play around with. It can be played in pretty much
any way imaginable, in any sector, any species, essentially any origin,
doing anything from piracy to smuggling, trading, light mining or
xenoarchaeology, or whatever else helps the intrepid explorer scratch
out a living from the stars.
**This is up for review.**
A few things to note:
- This adds a few crate variants to provide hazards in some of the
submaps. I've playtested these, they seem to work smoothly.
- There is an ongoing bug with shuttle-based offships, including this
and the Izharshan ship, in which telecommunications doesn't work unless
you clear every filtered frequency. I'm not attempting to tackle that
bug in this PR, so tentatively players will have to use the multitool by
the all-in-one to clear the filtering frequencies, or they can simply
use a shortwave.
- The ship is just within the constraints for shuttle size - I couldn't
make it any bigger. If it can't dock with a docking port, it's because
the docking port is mapped without enough space.
- IconDiffBot says I modified the Xanu Frigate overmap sprites at one
point. I'm not honestly sure how this happened, but it _seems_ fine?
- The workshop submap gives the ship a variety of generic augments, plus
all of the Zeng-Hu specific augments including the memory manipulator
and enhanced retinas. It doesn't have any more faction-specific augments
than those. The submap is mostly designed for installing prosthetics and
augments and making simple robots, but I'm pretty sure you could use it
to make a shipbound or IPC if you really wanted.
Credit to NobleRow for the overmap sprites!
Personal shields can now remain active while put back in the belt,
freeing your hands.
Some code reordering and cleanup.
Fixed a runtime on inspection of the personal shield.
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>
Moves the IPC memory wiper from the RD's locker to the OM's locker. It
makes more sense for the OM to have it, since the Machinist is an
operations overseen job, not a science overseen job.
Removes the tranquilizer rifle from the HoS's office, and places it in
the RD's office. Along with removing the box of shells from the HoS
locker, placing them in the RD's locker.
Changes the description of the rifle to move it away from being a 50 cal
sniper. Changed the shells to reflect this as well.
Expands the RD's office and reshuffles it slightly to make space for the
tranquilizer cabinet.
Part 2 will be a resprite of the rifle, to be added at a later date.
PR will need loremaster approval due to description involving corporate
lore.
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.
Unfortunately most of the map is kind of unplayable or not mapped in
mind with stairs being untraversable for roller beds or wheelchairs.
Remapping every map to work with this mechanic is also not something I
am interested in.
---------
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Fixed a runtime with crates animation when closing.
Updated closets door animation code, renamed one var to be more clear,
some minor DMDoc, moved some procs around.
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:

Changes the sink/reagent dispenser (i.e. water tanks)' filling system to
be intent-based rather than opening a window every time. Should make
filling/emptying containers at least 10x quicker. :)
Use **HELP** intent to fill from a container. Any other intent (i.e.
HARM) will have you try to empty the container into the dispenser/sink
instead.
Additional examination info has been added to both the sink and reagent
dispensers to give such information.