* Basic Constructs: Juggernaut (#79170)
## About The Pull Request
Converts juggernaut constructs to basic mobs. These guys are really
simple, so this is a pretty straightforward one.
The one notable thing about this PR is that I got annoyed that
projectile reflection code was copy-pasted in two different places (the
main one for things like the ablative trenchcoat, and right here on the
juggernaut). So, trenchcoat-style reflection is now a proc on
`/obj/projectile`, which is used in both places.
AI-controlled juggernauts are as simple as befits these big lugs, doing
nothing but slowly walking toward mobs and beating them to death with
their giant fists.
## Why It's Good For The Game
Removes another 5 simple animals.
Not too much else to say about this one, but it's easier to make
projectiles bounce off of things now if anyone wants to do that.
## Changelog
🆑
refactor: Juggernaut constructs now use the basic mob framework. Please
report any bugs.
/🆑
---------
Co-authored-by: san7890 <the@ san7890.com>
* Basic Constructs: Juggernaut
* Modular
* Map Reset
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Adds a Syndicate Monkey Agent beacon uplink item (#79012)
## About The Pull Request
Adds a Syndicate Monkey Agent beacon uplink item. It spawns a dapper
monkey that must follow your orders.
Added a monkey gun case to the uplink, which contains monkey guns!
Though they aren't very powerful.
Added a more modularlike subtype for antagonist spawners to reduce
future hardcoding.
Gave the syndicate turtleneck a monkey sprite, from SS14!
## Why It's Good For The Game
I want to see the clown driving security insane with 2-3 monkeys and an
incredible amount of pranking. Or an assistant killing everyone with his
monkey friends while wearing a monkey suit. Or a geneticist sending out
mutated monkeys to kill people. Or a scientist equipping his monkeys
with bombs or xenobiology equipment and sending them out to wreak havoc.
6 TC is only enough for two monkeys, but you can get a third if you
finish any kind of objective.
> Added a monkey gun case to the uplink, which contains monkey guns!
Though they aren't very powerful.
We can't have the monkey mafia without guns, come on. The guns are weak
and only usable by monkeys. Additionally, they're restricted to
entertainment only.
Credit to SS14 for the monky turtleneck sprite.
## Changelog
🆑
add: Adds a Syndicate Monkey Agent beacon uplink item. It spawns a
dapper monkey that must follow your orders.
add: Added a monkey gun case to the uplink, which contains monkey guns!
Though they aren't very powerful.
refactor: Added a more modularlike subtype for antagonist spawners to
reduce future hardcoding.
sprite: Gave the syndicate turtleneck a monkey sprite, from SS14!
/🆑
---------
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Adds a Syndicate Monkey Agent beacon uplink item
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* It is now possible to survive the Mansus (#79131)
## About The Pull Request
Fixes#79113
There were a handful of bugs with the Mansus realm, this PR fixes them.
Firstly an most importantly, a refactor to damage handling touched the
"unholy determination" effect incorrectly (and I'm not even sure why?),
causing it to damage you instead of healing you most of the time. This
damage was not avoidable, so most people would be crit shortly after
entering the area and stay there.
Secondly, some of the heretic realms were unlit. A change to when
lazyloaded template atmosphere initialises means that the bonfires were
trying to light themselves with no air. Now they do this in
late_initialize instead, giving time for air to arrive.
Thirdly, the spooky hands were runtiming when passing through transit
tiles outside of the bounds of the heretic map. They shouldn't be
effected by shuttle drag anyway, so now they aren't.
Fourthly, I removed a row of empty space at the edge of the heretic map,
just because it annoyed me slightly.
Finally, while I was touching the heretic buff I made it heal you 1/4 as
much as it originally did. This is a balance change rather than a fix,
I'll atomise it out if it is controversial but I don't really expect it
to be.
In the future I would like to come back to these and make each realm
more specific to the path, because I think we could make these both more
exciting and more characterful.
## Why It's Good For The Game
Once it is working properly, the hand dodging minigame is actually
extremely forgiving, even if you don't move very much and get frequently
hit. This means some of those hits might actually add some tension.
## Changelog
🆑
fix: You should be revived properly when entering the mansus realm
following a heretic sacrifice
fix: The buff which is supposed to heal you in the mansus realm will now
do that instead of unavoidably damaging you
balance: The mansus realm's healing buff heals for 25% as much as it did
before it was broken
/🆑
* It is now possible to survive the Mansus
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc (#79024)
## About The Pull Request
- Refactored `bullet_act`. Adds `should_call_parent` and refactors
associated children to support that.
- Fixes silicons sparking off when hit by disabler fire.
- Desnowflakes firing range target integrity and cleans up its
bullet-hole code a bit.
- Cleans up changeling tentacle code a fair bit and fixes it not taking
off throw mode if you fail to catch something.
- The Sleeping Carp deflection is now signalized
- Nightmare projectile dodging is now signalized and sourced from the
Nightmare's brain rather than species
- Refactored how cardboard cutouts get knocked over to be less
snowflaked / use integrity
- Also adds projectile `on_hit` `should_call_parent` and cleans up a bit
of that, particularly their arguments.
- On hit arguments were passed wrong this entire time, it's a good thing
nothing relied on that.
## Why It's Good For The Game
This is cringe.
1863eb2cd8/code/modules/mob/living/carbon/human/_species.dm (L1430-L1442)
Bullets should overall act more consistent across mob types and objects.
## Changelog
🆑 Melbert
fix: Silicons don't spark when shot by disablers
fix: Changelings who fail to catch something with a tencacle will have
throw mode disabled automatically
fix: Fixes occasions where you can reflect with Sleeping Carp when you
shouldn't be able to
fix: Fixes some projectiles causing like 20x less eye blur than they
should be
refactor: Refactored bullet-mob interactions
refactor: Nightmare "shadow dodge" projectile ability is now sourced
from their brain
/🆑
* A comprehensive refactor / cleanup of `bullet_hit` and `on_hit` to cut out a single bad species / mob proc
* Modular changes
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Adds pathmaps, refactors pathfinding a bit (#78684)
## About The Pull Request
Implements /datum/pathfind/sssp, which generates /datum/path_map
/datum/path_maps allow us to very efficently generate paths to any turf
they contain from their central point.
We're effectively running the single source shortest paths algorithm.
We expand from the center turf, adding turfs as they're found, and then
processing them in order of addition.
As we go, we remember what turf "found" us first. Reversing this chain
gives us the shortest possible path from the center turf to any turf in
its range (or the inverse).
This isn't all that useful on its own, outside of a few niche cases
(Like if we wanted to get the farthest reachable turf from the center)
but if we could reuse the map more then once, we'd be able to swarm
to/from a point very easily.
Reuse is a bit troublesome, reqiures a timeout system and a way to
compare different movables trying to get paths.
I've implemented it tho. I've refactored CanAStarPass to take a datum,
/datum/can_pass_info. This is built from a movable and a list of access,
and copies all the properties that would impact pathfinding over onto
itself.
There is one case where we don't do this, pathing over openspace
requires checking if we'd fall through the openspace, and the proc for
that takes an atom.
So instead we use the weakref to the owner that we hold onto, and hold
copies of all the values that would impact the check on the datum.
When someone requests a swarmed path their pass info is compared with
the pass info of all other path_maps centered on their target turf. If
it matches and their requested timeout isn't too short, we just reuse
the map.
Timeout is a tricky thing because the longer a map exists the more out
of date it gets.
I've added a few age defines that let you modulate your level of risk
here. We default to only allowing maps that are currently
being generated, or finished generating in our tick.
Hopefully this prevents falling into trouble, but consumers will need to
allow "failed" movements.
As a part of this datumized pass info, I've refactored pathfinding to
use access lists, rather then id cards directly. This also avoids some
dumbass harddel oppertunities, and prevents an idcard from changing mid
path.
Did a few things to the zPass procs, they took args that they did NOT
need, and I thought it'd be better to yeet em.
If you'd all like I could undo the caching/can_pass_info stuff if you'd
all like. I think it's useful generally because it avoids stuff changing
mid pathfind attempt, but if it's too clunky I could nuke it.
Oh also I added optional args to jps that constricts how it handles
diagonals. I've used this to fix bot paths.
## Why It's Good For The Game
Much of this is redundant currently. I'm adding it because it could have
saved hugglebippers, and because I get the feeling it'll be useful for
"grouping" mobs like bees and such.
We're doing more basic mob work currently and I want to provide extra
tools for that work.
https://github.com/tgstation/tgstation/assets/58055496/66aca1f9-c6e7-4173-9c38-c40516d6d853
## Changelog
🆑
add: Adds swarmed pathfinding, trading accuracy for potential
optimization of used correctly
fix: Bots will no longer take diagonal paths, preventing weirdo looking
path visuals
refactor: Refactored bits of pathfinding code, hopefully easier to add
new pathfinding strategies now
/🆑
* Adds pathmaps, refactors pathfinding a bit
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Watcher Nest Lavaland Ruin (#78790)
## About The Pull Request
Adds a small new lavaland ruin, the Watchers' Grave.


You will need to figure out yourself how to find a way through the walls
surrounding it (it's not very hard).
This is mostly just atmospheric but also serves as a delivery vehicle
for a unique item; an orphaned Watcher egg.
(That's kind of it in terms of loot, unless you count a handful of
lavaland mob corpses and mushrooms).
You can either eat this (it's an egg), throw it at someone to spawn an
angry watcher, or keep hold of it for a while and see what happens.
<details>

That's right it's your very own baby watcher.
It orbits your head and shoots at lavaland creatures for unimpressive
damage. It won't ever intentionally shoot a player but they might walk
in front of it, as it doesn't hurt very much they will probably forgive
you.
If you die it will continue circling your corpse to guard it against
predation.
</details>
In creating this ruin I also added a new component called "corpse
description".
It provides some extra examine text to a corpse which is removed
permanently if the mob is revived.
There's a field you can varedit on corpse spawners (or make a subtype)
which will automatically apply it to spawned corpses.
You can use it for environmental storytelling. Or admins can use it to
make fun of how you died.
Also I fixed basic mobs runtiming when examined by ghosts.
## Why It's Good For The Game
More variety in map generation. It's cute.
Adds a tool that mappers might like.
## Changelog
🆑
add: Adds a new lavaland ruin where you can find a unique egg.
/🆑
* Watcher Nest Lavaland Ruin
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
* Adds practice carbines to all firing ranges (#78867)
## About The Pull Request
Adds practice carbines to all firing ranges. They don't deal damage.
## Why It's Good For The Game
These guns are fun as hell to shoot.
## Changelog
🆑
add: Adds practice carbines to all firing ranges. They don't deal
damage.
/🆑
* Adds practice carbines to all firing ranges
* Adds them to Voidraptor too
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Adds a cowboy bundle to the nuclear ops uplink (#78874)
## About The Pull Request
Tin
The bundle includes revolver, holster, armored cowboy outfit, horse,
apples to tame said horse, and a complimentary lighter.
It costs 18tc, so it's a little more expensive than getting the revolver
& holster on their own, but you also get a horse so it's worth it.
## Why It's Good For The Game
This was intended as a lone-ops bundle so we can finally have some lone
rangers but I think having a crew of cowboy outlaws doing a "train
heist" for a nuke is really funny.
## Changelog
🆑 Wallem
add: Nuclear Operatives now have ready access to ancient cowboy
technology in the form of the Outlaw Bundle. Now you too can roll into
town on your horse.
/🆑
* Adds a cowboy bundle to the nuclear ops uplink
---------
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* Added slapcrafting to tech shells (#78746)
## About The Pull Request
Added slapcrafting to tech shells. Untested!
## Why It's Good For The Game
Easier to make 'em
## Changelog
🆑
qol: Added slapcrafting to unloaded tech shells, click on them with
ingredients to quickly craft your shell.
/🆑
* Added slapcrafting to tech shells
---------
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
* The laser carbine, a full-auto sidegrade to the normal laser gun (#78685)
## About The Pull Request
This PR adds the laser carbine, a new fully-automatic laser weapon that
can be ordered from cargo. A crate of 3 can be ordered from cargo for
1800 credits, locked behind armory access. Here is a video
demonstration:
https://github.com/tgstation/tgstation/assets/21979502/6f7fecec-ccb6-4a65-8027-21ab887fb91d
Now, I'm sure people are very concerned about the balance implications
of this new weapon. Let me give you some hard numbers:
The gun deals 10 damage per shot, and has a capacity of 40 shots with a
fully charged cell. This means that it has, at most, 400 damage per
charge, which is exactly the same as a normal laser gun.
In terms of DPS, it can put an unarmored human in crit roughly as fast a
laser gun. It is meant to be a sidegrade, not an upgrade to the normal
laser gun.
It also has considerably lower wound bonus. During testing, when all 40
shots were fired into an unarmored human, it dealt tier 1 burn wounds
with the occasional tier 2. I never observed a single tier 3 burn wound
during any of my tests.
Here's a picture of the different sprites (The last one is animated just
like the normal laser gun):

## Why It's Good For The Game
For a long time, there has been a strong push to make crew-available
weapons almost entirely energy based. This trend has been contentious,
to say the least. Many people prefer ballistic weapons over energy
weapons. After spending some time on a different codebase, one where
autorifles are still completely available to order from cargo, no emag
needed, I think I might know why (or at least part of the reason). Part
of what I find satisfying about some ballistics is the fact that they
fire quickly and automatically. Energy weapons might be more enjoyable
to use if automatic energy weapons are also an option.
## Changelog
🆑
add: The laser carbine, a weak but fully automatic sidegrade to the
normal laser gun, can now be ordered from cargo.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* The laser carbine, a full-auto sidegrade to the normal laser gun
---------
Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
* Makes the Regal Condor realistically simulate being shot dead with a high caliber hand cannon by making it HITSCAN (#78674)
## About The Pull Request
The Regal Condor come with a magazine and ammo already inside.
The recipe for the magazine now no longer needs TC, but does need donk
pockets (sponsored murder gear, you see) and a hell of a lot more
materials per magazine (you're looking at like 40 sheets of various
materials all up). It also needs you to make the Condor first. But it
comes preloaded with ammo.
The Condor is 1 whole TC more expensive. Also needs some metal. The old
recipe is there in spirit.
The Regal Condor and the magazines come with 10mm Reaper bullets.
They're high damage. They're high AP. They are also hitscan.
## Why It's Good For The Game
Apparently people don't like the Condor. Too much effort for not enough
reward. After all, revolvers exist. 'It must be a joke' they say! 'It's
joke content! I went to all that effort to make it for nothing! That
slut Anne tricked us!'
**Wrong, bitch.**
If you want the Condor to make you shit yourself the moment someone with
it appears on the screen, then fine!
### **You get what you fucking deserve.**
## Changelog
🆑
balance: Despite earlier reports suggesting that the famous lethality of
the Regal Condor was largely a myth, there has been rumors that the gun
has once again started to display its true killing potential on any
station that it 'manifests'.
/🆑
* Makes the Regal Condor realistically simulate being shot dead with a high caliber hand cannon by making it HITSCAN
---------
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Adds The Hand of Midas, an ancient Egyptian gun. (#78699)
## About The Pull Request
Adds the Hand of Midas (HoM), a weapon for pirate captains.
This matchlock pistol is powered by gold rather than gunpowder.
If you hit someone with it, they will be afflicted with Midas Blight for
a duration of time that scales with how much gold is in your gun.
Midas Blight will slowly turn their blood into gold, and slow them down
depending on how much blood is in their system.
If you right-click on someone with the HoM, it will siphon all gold from
their bloodstream and recharge the gun, curing them of Midas Blight in
the process if they still have it.
The amount of gold you can get from people is meant to be ~1.5x as much
as you fired into them in the first place, if you get your timing right.
This way you can exponentially scale the power of your weapon if you can
hit your shots, with a limit of 30 Seconds on the Blight timer.
The siphon has a range of 2 meters, and if you miss a shot you can input
a gold coin into the gun to refill it with the same weak shot you
started with.
It's a little hard to explain in text so here's some video examples:
https://github.com/tgstation/tgstation/assets/66052067/d49238fc-beb2-4ba9-be0c-83e8a701c995https://github.com/tgstation/tgstation/assets/66052067/34dc23e7-2b88-4ee9-bb1e-c8067a491975https://github.com/tgstation/tgstation/assets/66052067/68a07426-ba6c-43a7-8228-132fc4b02b83
## Why It's Good For The Game
Honestly I just had the idea for the gun and thought it would be really
cool lmao.
Also because Barrel Behind the Door is one of the funniest YuGiOh cards,
the censored design is TOO GOOD.

## Changelog
🆑 Wallem
add: Adds The Hand of Midas, an ancient Egyptian matchlock pistol.
/🆑
* Adds The Hand of Midas, an ancient Egyptian gun.
---------
Co-authored-by: Wallem <66052067+Wallemations@users.noreply.github.com>
* oh yeah oh woag
* maybe we can make uncommon into that
* gunnenshooter
* hard work work
* just now realised i forgot inhands
* inhands and worn
* soundsmith tf2
* does the rifles
* puts some of the pistol suppressor images in
* awawawa
* shotgun override apparently
* pistola
* grendae launcher
* dont forget the evil one too
* yeah lets fix that
* oops
* now lets see what kind of errors compiling gives us
* should hopefully be all the compile errors
* i understand morbius now
* surely it will work now
* fixes shrapnel grenades runtiming
* also fixed grenade rangefinding
* how'd I mess thta up
* fixes various issues
* granata!!!
* haha surely this will gow ell
* should fix the grendades for real
* opening this pr then dropping dead
* uhhh fixes some stuff i think?
* armory stuff
* random mapping things pt 2
* blehh :3
* fixes it forever and ever
* whar??
* turns out that needs a tweak
* curious
* that'll work 4 sure now
* fixes vr
* come on over wont you sway with me
* mhm yup
* should hopefully be all that's it?
* missing icons
* makes the rifle more expensive
* makes the smg a little less awful feeling
* dollar store suppressors, just a week away
* mmsmrmmrsgg
* lets the shotguns actually be sawn off
* the propaganda
* hey thats important
* sprite error (comical)
* gives the casings custom materials for printing
* i love code ordering
* 'lets just be safe' ifies the weight classes of mags and ammo boxes
* reworks the sol defense selection a bit
* Update modular_skyrat/modules/ammo_workbench/code/design_disks.dm
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
* act three
* defines
* undefine
* restores the clothing
* some stuff part 3
* fixes the outfit guns not existing
* adjusts firerates and grenade launcher sprites
* fixes .35 sol revolvers??
* slightly un-nerfs the rifle firing rates
* makes the revolver jus tuse the normal sound
* makes the pistol case the right path
* its a machinegun!
* slight little tiny tweaks
* british weather service
* puts the blueshield gun box in their locker
* makes rifle less lethals a bit more normal
* slightly changes the smg burst and firerate
* the pepperball had raygun
* pepperball caliber
* forgot to push the include
* i love testmerges
* revolver sillies
* makes the kiboko's examine_more not just the rifle's
* smallens the eland and enlargens the cost of the kiboko
* lets change the machinegun a bit too why not
* gfl larp (real)
* fixes modular armory templates
* lets cases be ordered dont worry about the other stuff
* makes the takbok say its from the right company
* makes sawn off shotgun suppressors visibile
* those aren't used at all
* tweaks some of the rifle sprites
* shortens the shotgun a bit
* puts the pixel shifting out of initialize to make certain things work b
* granata!!!1!!!
* large number of weapon and ammo tweaks
* windup autofire seems broken somehow?
* fixes the inhands
* outfit sanity
* .40 armor piercing ammo box name correction
* removes var that doesnt exist anymore
* .40 armor piercing rework
---------
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* A thorough audit of damage procs and specifically their use in on_mob_life() (with unit tests!)
* Modular changes--bonus, removes a bunch of completely unused code signals code that was taking up resources needlessly
---------
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
* Makes the reverse revolver better hidden. (#78660)
## About The Pull Request
Fixes#78639
Makes the name and description of the reverse revolver always equal
those of the Syndicate revolver.
## Why It's Good For The Game
The reverse revolver is supposed to look like a normal Syndicate
revolver until you shoot yourself in the face with it. Having an obvious
tell is bad.
## Changelog
🆑
fix: The reverse revolver now looks like a normal Syndicate revolver on
inspection.
/🆑
* Makes the reverse revolver better hidden.
---------
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. (#78310)
## About The Pull Request
Zap strength is now measured in joules. Scales everything to account for
this.
NT CIMS will now display the zap power transmission in watts, instead of
a modifier. This will allow you to actually see how much power the
supermatter is generating accurately, without knowledge of hidden
multipliers. NT CIMs will also show the internal energy gain from heat
in eV/K/s, so you can easily figure out how internal energy gain works,
and how much energy gain it actually gives. The internal energy
measurement will also adjust its prefix. Internal energy is now a
measure of internal energy, rather than internal energy density,
removing the "/cm^3".
Here is what it looked like:

This image was created on an earlier commit where the numbers were wrong
due to a hidden multiplier that got removed later, so keep that in mind.
Also fixes inactive supermatters unnecessarily scaling delta time. The
high energy (>5GeV) additional zaps now also scale with delta time.
The code in this PR is absolute garbage trash and there are some major
issues, so I'm drafting this for now.
## Why It's Good For The Game
Makes it more clear what the factors add, and also how much power the SM
is releasing. Zap strength being measured in joules will simplify a lot
of things, making power balance more clear rather than guessimating.
Adjusting the prefix for internal energy is just the natural thing to
do. The per cubic centimeter part of internal energy would imply it is
energy density, however it is functionally not. It would probably
confuse people thinking the volume of the turf or the size of the
supermatter actually matters for what the internal energy does, when it
does not (except for gas absorption I guess, which changes heating/mol
requirements, but nothing else), so I am removing that part.
## Changelog
🆑
qol: NT CIMs shows how much power the supermatter is releasing.
qol: NT CIMs internal energy will adjust its prefix.
qol: Energy displays (such as multitooling grid) will use the full range
of SI prefixes available, up to the peta prefix if you somehow managed
to reach that.
del: Removes the per cubic centimeter part of internal energy.
fix: Fix unnecessary delta time scaling on inactive supermatters.
fix: Fix high energy zaps not scaling with delta time.
fix: Fixes grounding rods lying about potential power you can generate.
code: Convert supermatter_zap() and tesla_zap() zap_str argument unit to
be in joules, and scales everything that uses that argument.
/🆑
* [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor.
---------
Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
* Fixes beams rendering below mobs by default. The fishing line is no longer emissive. (#78170)
## About The Pull Request
That of beams being layered below mobs has been a minor issue ever since
that mess that is FoV was implemented (with the exception of chain
lighting of the 'lighting' holoparasite type). I'm changing the plane of
beams to GAME_PLANE_UPPER_FOV_HIDDEN along a couple other things.
## Why It's Good For The Game
Re-read the above section, also fishing lines shouldn't generally glow
in the dark like very thin lightsabers, and them being layered below
mobs has always been a peeve to me.
## Changelog
🆑
fix: Fixed beams rendering below mobs by default.
fix: The fishing line beam is no longer emissive (it doesn't glow in the
dark).
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* Fixes beams rendering below mobs by default. The fishing line is no longer emissive.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@ users.noreply.github.com>
* [Fuck Shotties] Old Yellers Old Yeller (Improvised Shell Nerf) (#78235)
## About The Pull Request
Reworks improv shells to not be equal or even superior to buckshot, by
cutting their damage in half and reducing the wound bonuses. In return
they have a demolition_mod of 3, so do more damage overall to the
environment, a true vandal's paradise.
Added a glass shard to the recipe as an actual projectile instead of
just sheets of metal.
## Why It's Good For The Game
When buckshot was originally removed from the station (#55663) the
intended purpose was, as requested by oranges, to make shotguns a
specialist weapon instead of general purpose lethals.
It has come to my attention that improvised shells (which were initially
intended to be a weaker alternative made form commonly available
materials) are in fact better buckshot, and had no right to survive the
original nerf. I am now fixing that oversight by turning improvised
shells into a more specialised vandalism tool.
## Changelog
🆑
balance: Improvised shotgun shells now deal half as much damage to
humans and cause less wounds, but do 50% more damage to structures and
machines. They also require a glass shard for crafting.
/🆑
* [Fuck Shotties] Old Yellers Old Yeller (Improvised Shell Nerf)
---------
Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
* Culls client/mouse code only used by beam rifles in favor of signals. (#78113)
* Culls client/mouse code only used by beam rifles in favor of signals.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* minebots basic bots (#78032)
## About The Pull Request
Transforms the minebots into basic robots. You can now command these
minebots to extract minerals for you. To activate automated mining mode,
simply instruct them with the command "mine." They will then proceed to
autonomously mine walls and gather ores. If you wish to make the bot
deposit all the collected ores, use the command "drop." Alternatively,
you can leave it in collection mode, and it will gather all the ores you
mine. Additionally, the bot now responds to several more commands; you
can instruct it to follow you, toggle its lights on or off by saying
"lights." In attack mode, it refrains from mining or collecting ores but
will engage in combat alongside you. If it detects you as deceased or
unconscious, it will alert all miners, request assistance, and relay
your coordinates via the mining communication channel. to power it on u
will need to feed it any type of ore first so it may listen to ur
commands
## Why It's Good For The Game
makes the non sapiant minebots more useful
## Changelog
🆑
refactor: the minebots have been refactored please report any bugs
add: minebots can now mine walls and collect ores automatically and they
will alert everyone if they find u dead
/🆑
* minebots basic bots
* Modular
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* [NO GBP] Fixed a runtime, and double-barreled shotguns. (#77808)
## About The Pull Request
Catching the only, couple tangible issues I've seen so far following the
removal of `handle_atom_del`.
## Why It's Good For The Game
This will fix#77758
## Changelog
🆑
fix: Fixed the double-barreled shotgun not working properly
/🆑
* [NO GBP] Fixed a runtime, and double-barreled shotguns.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Adds a check grep for using `src` as a trait source rather that `REF(src)` (#77836)
## About The Pull Request
Using `src` as a trait source is an error and can often lead to
hard-deletes
If you wish to tie a source to a certain datum, it is common to use
`REF(src)` instead.
Ideally, we would lint or test for any use of a reference rather than a
string in use in trait sources, but that's a bit harder to setup.
Currently (from what I can see) the *only* erroneous use of references
as sources are via `src`, so it being the most common error, I see it
fine to lint for it.
## Changelog
Nothing player facing.
* Adds a check grep for using `src` as a trait source rather that `REF(src)`
* Update style.dm
---------
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Remove unused override comments and fix a few I found
* remove lighting icon overrides (obsolete)
* remove laz/borg overrides (obsolete)
* Remove the catch-all e-gun override, manually overrides the two severely out of date sprites that we ACTUALLY have updates for
* oop
* removes obsolete surgery table sprite (probably technically too close to Bay's to be using actually)
* Love un-updated pathing
* oop
* this back icon wasn't even on this gun ever was it
* didn't notice this override >:(
* Reverts Laser Ammo Capacity To Pre-Buff Values (#77799)
## About The Pull Request
Closes#77793
This PR reverts the buffs made to ammo capacity on laser weapons in PR
#75329 . This PR does not touch anything else about the laser buffs
(damage and wound chance).
## Why It's Good For The Game
In the eyes of some, the laser buffs were a necessity to prevent them
feeling like a wet noodle (which I don't think was the case, but I
digress). However, the laser buffs also brought along a reduction in
energy cost per shot, which has allowed people to effectively spam the
newly buffed lasers to an unhealthy degree, since they only need to land
4 of the many shots a laser gun can currently produce to win the fight.
The buff as a whole has created a massive power gap between the rest of
the crew's weaponry and lasers, who wildly outclass anything else the
crew can currently obtain along with some antag gear. The crew was
already in a position of strength compared to the antagonists they face,
so the buff has had negative implications regarding the current balance.
However, if we allow antags to get buffed in line with the new lasers,
then lasers will become the only option as opposed to the clear best
option, which I don't think we want. So, I think nerfing the ammo
capacity back down to what it was originally is the most healthy way to
bring lasers back in line without making them feel weak. Let's see what
happens.
## Changelog
🆑
balance: Lasers now have increased energy cost, reverting the cost back
to the initial value before the laser buff.
/🆑
* Reverts Laser Ammo Capacity To Pre-Buff Values
---------
Co-authored-by: IndieanaJones <47086570+IndieanaJones@users.noreply.github.com>
* Fixing embedding for projectiles. (#77674)
So, the main issue was that the variables for the embed element wouldn't
set when attached to a projectile but only on items for some
insignificant reason, which means it'll spawn the shrapnel yes, but
won't embed it since the chance is null/zero. I read the code over and
over and over with the assumption that something like this wouldn't have
been done, yet it was.
As for the secondary issue, because of how embedding works, the casing
types of arrows and harpoon aren't spawned when hitting a non-carbon or
reaching their maximum range. So, I'm re-enabling the reusable arg/var
for the caseless component of harpoons and arrows, and modifying the
`projectile_drop` to not drop their payload if the embedding component
would already do that, so we avoid duping.
* Fixing embedding for projectiles.
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Basic Watchers & Basilisks (#77630)
## About The Pull Request
This one is a double feature because Watchers and Basilisks share the
same typepath. You might see a couple more of those.
As is tradition I decided to fuck with them rather than just port them.
Here's what's up.
**Basilisks**


- Have a new soulless sprite which looks less like a living blue hedge.
- Walk at you and shoot you while you are not in range (just like
before).
- Become supercharged if they become "heated" by lava, lasers, or
temperature weapons. This was a feature they also previously had but
they would never encounter lava, so now it also works if you use the
wrong gun on them.
- Lose their supercharge if you cool them down.
- Otherwise pretty normal mobs.
**Watchers**
https://www.youtube.com/watch?v=kOq_Bf78k5A
Here's a traditional video of me intentionally getting hit by mechanics
(trust me its definitely on purpose)
- They glow emmissively a little bit so you can see them from further
away.
- Their eyes light up about 0.5 seconds before they are able to shoot at
you.
- No longer melee attack, instead try to stay out of melee.
- Will occasionally put you into "Overwatch", meaning they will shoot
you rapidly if you move or act while they're staring at you for a brief
time period (after which you become immune for 12 seconds, and during
which other watchers will play fair and stop shooting at you).
- If they start taking damage they will also start using their "Gaze"
attack, look away or suffer some kind of negative effect!
- - Normal watcher gaze flashes and confuses you.
- - Magmawing watcher gaze obviously burns (and briefly stuns) you.
- - Icewing watcher gaze freezes you and throws you backwards.
- Magnetically attract and eat diamonds. They also used to do this, but
just if they happened to coincidentally walk past some.
**Other accompanying changes**
All basic mobs will now adopt the "stop gliding" trait if they get
slowed down too much.
I moved behaviour for "fire a projectile from this atom" into a helper
proc because I was using it in three places and I will probably use it
in more places. There are probably other places in the existing code
which could be using this.
I think I made the basic mob melee attack forecast default a little more
forgiving, they were fucking me up too much and I am the playtester.
## Why It's Good For The Game
Another one off the list.
New tricks for old dogs.
Framework for making mobs with ranged attacks "fairer" (you can see when
they are ready to shoot you).
More (hopefully) versatile AI behaviours which we will reuse later (I
hope I'm not duplicating one someone already made).
If our players "enjoy" them enough we can give more mobs "don't look at
me" mechanics.
Removes some soul sprites.
## Changelog
🆑
refactor: Basilisks and Watchers now use the basic mob framework. Please
bug report any unusual behaviour.
sprite: Basilisks have new sprites.
add: Basilisks will go into a frenzy if heated by energy weapons or
temperature beams as well as by lava.
add: Watcher eyes will be illuminated briefly when they are ready to
fire at you.
add: Watchers can now briefly put you into "Overwatch" and penalise you
for moving while they can see you.
add: Wounded watchers will occasionally punish players who look at them.
balance: Unusual watcher variants are more likely to appear.
/🆑
* Basic Watchers & Basilisks
* Modular paths
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* ammo bands no longer disappear upon icon updates (#77603)
## About The Pull Request
moves the `update_ammo_band()` call from `update_icon_state` to
`update_overlays`, so that the ammo layer sticks around
## Why It's Good For The Game
visual clarity. i want to be able to see which speedloader/magazine/etc
does what for my gun
## Changelog
🆑
fix: Colored ammo bands, such as those on .357 and .38 speedloaders, no
longer permanently disappear upon icon update.
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* ammo bands no longer disappear upon icon updates
---------
Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* Fixes Ticked File Enforcement and Missing Unit Test (and makes said Unit Test Compile) (and genericizes the C&D list to the base unit test datum)
* Updates ignores
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
* Reflavors the Mosin to be a surplus rifle from the past IC 200 years, rather than from 670 years ago in game. Allergy warning: May contain microscopic silverscale buff
* oorah
* im sure more will come up eventually
---------
Co-authored-by: Paxilmaniac <82386923+Paxilmaniac@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
* guns' projectile damage multiplier reflected in examines, gives guns a vareditable projectile wound bonus modifier (#77280)
## About The Pull Request
A gun's projectile damage multiplier is now reflected in its "show
combat info" examine, so now the shots-to-crit on guns with a modified
projectile damage multiplier (say, the PP-95 SMG, under the slightly
inaccurate typepath `automatic/plastikov`) is accurate. This applies to
both energy weapons and ballistics.
Also, added a new variable that multiplies a fired projectile's wound
bonus. Could be used to make guns really bad at wounding or good at
wounding innately for... reasons? Not really touched by anything for
now.
## Why It's Good For The Game
Being able to account for projectile damage multiplier probably helps in
regards to "how many bullets DOES it take to crit someone else?", since
you don't really get told about it in-game.
The wound bonus thing could be used for adminbus as a joke or to make a
gun more distinct in regards to "how often do I make someone's blood
fall out/leg break/etc."
## Changelog
🆑
fix: Projectile damage multipliers on guns are now reflected in their
combat information.
admin: Admins can now make a gun's fired projectiles better or worse at
wounding by changing the gun's projectile_wound_bonus. Surely this will
not have any repercussions.
/🆑
---------
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
* guns' projectile damage multiplier reflected in examines, gives guns a vareditable projectile wound bonus modifier
---------
Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>