Commit Graph

2918 Commits

Author SHA1 Message Date
SkyratBot
b557e89855 [MIRROR] More standardization for ghost notifications (READY) [MDB IGNORE] (#25104)
* More standardization for ghost notifications (READY) (#79596)

## About The Pull Request
I'm still not satisfied with how ghost notifications work. This gives
every notification with a source (99% of all notifications, in other
words) a link to jump/orbit. Currently, notifications with "play"
interactions would only get the interact link, so jumping to the source
was pretty annoying.

It removes posting the entire message in the alert tooltip, as some got
pretty lengthy and it didn't seem to fit. To replace this, they will
always use headers

After:

![image](https://github.com/tgstation/tgstation/assets/42397676/debfce52-3627-4a43-8663-33d61d893161)

![image](https://github.com/tgstation/tgstation/assets/42397676/01f299ae-dc6a-45f8-a97a-cb2c815088b2)

![image](https://github.com/tgstation/tgstation/assets/42397676/99567376-063e-458e-af2a-2dd4306747cc)

NOTIFY_JUMP and NOTIFY_ORBIT have been merged, since the only difference
seems to be whether it's a turf. The result shaves off some redundant
lines of code, since most-every usage of notify_ghosts uses
NOTIFY_ORBIT.
## Why It's Good For The Game
More standardization for the ghost notification system. Adds a few alert
headers that never had them. All in all, makes it easier for creators to
throw alerts at ghosts
## Changelog
🆑
qol: Nearly every ghost alert should now feature a "VIEW" button, even
those with click interaction.
del: Ghost alerts no longer show the entire message in the tooltip,
instead have been replaced with titles.
/🆑

* More standardization for ghost notifications (READY)

* Modular

* Update outpost_of_cogs.dm

---------

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-19 11:25:32 -05:00
SkyratBot
94603a2a96 [MIRROR] Stops rebar crossbow crashing dreamseeker when fired at point blank. (NO GBP) [MDB IGNORE] (#25102)
* Stops rebar crossbow crashing dreamseeker when fired at point blank. (NO GBP) (#79803)

## About The Pull Request

Simply put, due to how "caseless" is an element added to the ammo when
it hits something, but ammo is qdeleted upon hitting someone. If shot
point blank without combat mode (for some reason) it tries to add
caseless to an ammo that no longer exists. For some reason, the result
of this is to just fucking crash DS instead of aborting the adding of
the element. The ammo isnt reusable anymore, but I'll take that over
crashing.

## Why It's Good For The Game

Removes a game-breaking bug. I hate gun ammo code so much.

## Changelog

🆑
fix: Stopped a DS crash when shooting a rebar crossbow in specific
circumstances.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Stops rebar crossbow crashing dreamseeker when fired at point blank. (NO GBP)

---------

Co-authored-by: KingkumaArt <69398298+KingkumaArt@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-11-19 00:37:59 -05:00
SkyratBot
020d2ad13e [MIRROR] Code compression for reagent holder. Lowers plumbing reaction chamber tick usage [MDB IGNORE] (#25050)
* Code compression for reagent holder. Lowers plumbing reaction chamber tick usage (#79686)

## About The Pull Request
More code improvements for reagent holder. As you can see it removes a
lot more code than it adds so code savings are significant. This does
not touch on any floating point arithmetic, all that is behind us, this
focuses on removing redundant procs and merging existing procs to
achieve the same functionality so if you do see any changes in reagent
related behaviour it's not intentional and should be reported as a bug
here.

The following code changes can be summarized into points.

**1. Removes procs `get_master_reagent_id()` &
`get_master_reagent_name()`**
Both of these procs have the exact same functionality as
`get_master_reagent()` with the only exception of returning a different
value. Instead we can just call `get_master_reagent()` directly and
infer the name & type of it ourselves rather than creating a wrapper
proc to do it for us, therefore reducing overall code

**2. Removes & Merges `remove_all_type()` proc into `remove_reagent()`**
The proc `remove_all_type()` is highly inefficient, it first uses a for
loop to look for the reagent to remove & then it again calls
`remove_reagent()` on the reagent once it has found it. We can just
embed this functionality directly into `remove_reagent()` by simply
adding an additional parameter `include_subtypes`. This way the
operation is faster, and we reduce the code to get the job done. Also
now `remove_reagent()` will return the total volume of reagents removed
rather that a simple TRUE/FALSE

**3. Removes & Merges `trans_id_to()` proc into `trans_to()`**
Both these procs have the same job of transferring either a single
reagent or all reagents. `trans_id_to()` is a scaled down version of
`trans_to()` because
- It does not have any `method` var. This means if you want to transfer
a single reagent to a mob/organ or any other object it does not have the
functionality to expose the target to that transferred reagent.
- It does not have a `multiplier` var to scale reagent volumes
- It does not have code to deal with organs or stop reactions i.e. it
does not have the `no_react` var.

We can overcome all these short comings by simply adding an extra var
`target_id` to specify what specific reagent to transfer therefore
attaining the same functionality while keeping the benefits of
`trans_to()` proc therefore reducing overall code

**4. Lowers plumbing reaction chamber tick usage for balancing ph.**
Rather than invoking a while loop to balance ph it's much easier for the
player to simply make the reaction chamber wait for e.g. add a reagent
that will never come. This will make the chamber wait therefore giving
the reaction chamber ample time to correctly balance the ph and then
remove that reagent from the list therefore getting correct ph levels.
No need to create code hacks when the player can do it themselves  so
the while loop has been removed

## Changelog
🆑
code: removed redundant procs `get_master_reagent_id()` &
`get_master_reagent_name()`
code: merged `remove_all_type()` proc with `remove_reagent()` now this
proc can perform both functions. `remove_reagent()` now returns the
total volume of reagents removed rather than a simple TRUE/FALSE.
code: merged `trans_id_to()` proc with `trans_to()` now this proc can
perform both functions
refactor: plumbing reaction chamber will now use only a single tick to
balance ph of a solution making it less efficient but more faster. Just
make the reaction chamber wait for longer periods of time to accurately
balance ph
refactor: reagent holder code has been condensed. Report any bugs on
GitHub
/🆑

* Code compression for reagent holder. Lowers plumbing reaction chamber tick usage

* Modular update

* Update alcohol_reagents.dm

---------

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-11-16 18:27:20 -05:00
SkyratBot
248e30344b [MIRROR] Makes Telekinesis + Russian Revolver Interaction more fair [MDB IGNORE] (#25042)
* Makes Telekinesis + Russian Revolver Interaction more fair (#79740)

## About The Pull Request

Fixes #77238

Basically, you were able to just spam kill people with the russian
revolver if you had telekinesis, which isn't really fair. Now, after
taking a leaflet out of the the discussion in that issue report, you can
still pull off the same party trick... once...

Basically, let's just say that when you focus on firing the gun in your
mind... you're also pointing it directly at your mind (your brain (your
skull (you instantly die))). This occurs even if the projectile doesn't
actually touch you (because that would be hellish to account for) but
you're the one who's playing russian roulette man

You still get to do some collateral damage because that's still a very
funny interaction but you only get to do it once per life. I don't know
if people will be happy to revive you after you "shoot" them. Also, the
way it's coded means that you can still leave the revolver on the table
and fire it at your foot or something, or just use it normally, as a
telekinesis user. This _only_ applies to distance-based firings.
## Why It's Good For The Game

The russian revolver is specifically coded to prevent you from damaging
other people, and this was a pretty silly way to sidestep that based on
the checks. Instead, let's make it so that you can still do this
admittedly funny interaction, but with enough reason to not do it (the
reason being that you'll always get fucking blatted).
## Changelog
🆑
balance: After a string of unfortunate incidents, persons with
telekinesis have been strongly warned against playing Russian Roulette,
as they tend to hyperfixate on the gun a bit too much and end up firing
it directly at their head.
/🆑

* Makes Telekinesis + Russian Revolver Interaction more fair

---------

Co-authored-by: san7890 <the@san7890.com>
2023-11-16 11:55:56 -05:00
Bloop
19b0d81127 Removes illegal tech from legally bought suppressors' deconstructor value (#24888)
* Removes suppressor from illegal tech

* Removes suppressor from illegal tech

* Makes a subtype of suppressor that are considered legal

Syndicate ones are now their own type.

* Update tgstation.dme

* Update armament_utility.dm
2023-11-12 14:54:58 -05:00
SkyratBot
2f4010c992 [MIRROR] Removes final remnants of 'targetted' [MDB IGNORE] (#24927)
* Removes final remnants of 'targetted' (#79626)

## About The Pull Request

Finishing what https://github.com/tgstation/tgstation/pull/79513/
started, removes 'targetted' typo from code. Also updates the basic mob
guide with the new updated var names.

## Why It's Good For The Game

Typos bad. Accurate guides good.

## Changelog

🆑
code: gets rid of the rest of the instances of 'targetted' typo from
code
/🆑

* Removes final remnants of 'targetted'

---------

Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-11 08:11:32 -05:00
SkyratBot
94e579cd35 [MIRROR] Emergency hotfix for engi crossbow [NO GBP] [MDB IGNORE] (#24910)
* Emergency hotfix for engi crossbow [NO GBP] (#79606)

Hadnt added these commits when the PR got merged due to not expecting it
oops

## Why It's Good For The Game

See above, used to make my last pr actually function as intended.

## Changelog

🆑
fix: fixed engi crossbow being able to be used onehanded + ability to
craft with sci inducers
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Emergency hotfix for engi crossbow [NO GBP]

---------

Co-authored-by: KingkumaArt <69398298+KingkumaArt@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-11-10 09:44:42 -05:00
SkyratBot
064682b5cd [MIRROR] Adds engi improvised weapon - rebar crossbow + Engi Exclusive Tot Shop Variant [MDB IGNORE] (#24860)
* Adds engi improvised weapon - rebar crossbow + Engi Exclusive Tot Shop Variant (#78777)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

![image](https://github.com/KingkumaArt/KingkumaTGSS13/assets/69398298/e4d921a6-9bd6-4eb3-9085-2bfa5df67826)
Engi now has access to a Half Life 2 Inspired rebar crossbow! Made of
rods, wire, and an inducer, it shoots sharpened iron rods at a high
velocity. High damage and good embed chance, but requires you to reload
every shot which requires you to stand still for three seconds to pull
the string back. You can also Use a wrench on it to force it to store
more rods (read: more than one), but risks it exploding and shooting you
instead.

The syndicate variant, avaliable to traitor engis, can fire three rounds
before needing a reload, and features a scope and better armor piercing
ammpo, but costs 10TC. I see it as a sidegrade to the revolver - quieter
and has much more widespread ammuniton, but holds less ammo and doesnt
have the same burst stopping power. And, to those concerned about the
balance of a non-traitor with this item - the AP ammo can only be made
by the traitor who bought it, and anyone else has to use normal ammo.

GUN STAT JUNK
Normal one has 60% embed chance and does 40 damage (against unarmored
targetd), but requires you to wait at least 3 seconds not moving to pull
the string back. Good alpha strike but not sustainable in a long fight.
Its akin to a pipegun.

Lacks any AP qualities besides piercing a jumpsuit, because any wound
chance it has is due to a bare skin bonus. Generally not a great weapon
to fight sec with.

Syndie version is generally the above but better. Takes less to pull the
string back, slightly higher damage, better fire rate, etc. Doesnt fare
well against any armor thats equivalent to sec gear or better due to
most having low (relatively) AP and wound chance, but good bare wound
bonus.

STATS TLDR: Its good against unarmored chumps and greyshirts but anyone
in armor that protects against bullets will kick your teeth in.

Also, Ammo is crafted from an iron rod. I wanted to have it just fire
rods as is, but theyre stacked items which you cant define projectiles
or ammo from.

## Why It's Good For The Game

I've always felt engi, for as big of a department as it is, is lacking
in the "fun weapons" area. Sci has mechs and xenobio, med has chem nades
and syringe guns, and cargo has anything the QM will buy - but other
than the flamer and shocked doors, engi doesnt have much. Thats why I
made this pr. it was originally just a traitor item, as they lacked many
traitor items in their shop, but I felt like a worse, bootleg version
would suit them.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Enginenering rebar crossbows + tot kit
add: Added a bunch of ammos and crafting junk to make the ammo exist
image: added icond for all the above
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Adds engi improvised weapon - rebar crossbow + Engi Exclusive Tot Shop Variant

---------

Co-authored-by: KingkumaArt <69398298+KingkumaArt@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
2023-11-08 22:35:31 -05:00
SkyratBot
596b2f050e [MIRROR] Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls [MDB IGNORE] (#24804)
* Converts some notify_ghosts args to bitflags, multilines all notify_ghosts calls

* Update supermatter.dm

* Modular

* More modular

* Update cortical_borer_egg.dm

---------

Co-authored-by: Rhials <28870487+Rhials@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-11-05 22:01:17 -05:00
SkyratBot
b69284b39d [MIRROR] Practice Carbine Dual Wielding Fix [MDB IGNORE] (#24686)
* Practice Carbine Dual Wielding Fix (#79359)

## About The Pull Request

When I added laser carbines, I made it impossible to dual wield them
because it could allow you to shoot normal lasers far faster than
intended (#72705). Someone else later added practice laser carbines, and
decided to allow dual wielding with them. This predictably led to the
exact same problem, so now they can't be dual wielded. Closes #79331.
## Changelog
🆑
fix: Practice laser carbines can no longer be used to rapidly fire
regular laser guns.
/🆑

* Practice Carbine Dual Wielding Fix

---------

Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
2023-10-31 18:36:30 -04:00
SkyratBot
187528cd4c [MIRROR] [NO GBP] Buckshot no longer instantly deletes itself except when used pointblank. Oops [MDB IGNORE] (#24700)
* [NO GBP] Buckshot no longer instantly deletes itself except when used pointblank. Oops (#79392)

## About The Pull Request

This was causing lethal shotgun shells with no stamina damage to
instantly delete. Oops.

## Why It's Good For The Game

I broke it and fucked up MrrFish' op round and definitely not because I
OWNED HIM WITH A BEEPSKY STUN

### BITCH

## Changelog
🆑
fix: Lethal ballistic pellet-based shotgun shells no longer instantly
delete.
/🆑

* [NO GBP] Buckshot no longer instantly deletes itself except when used pointblank. Oops

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2023-10-31 18:36:13 -04:00
SkyratBot
a859b09902 [MIRROR] Gives the Revolvers on the Nuke Ops uplink Syndicate Firing Pins [MDB IGNORE] (#24692)
* Gives the Revolvers on the Nuke Ops uplink Syndicate Firing Pins (#79327)

## About The Pull Request

gives revolvers on the nukie uplink syndie firing pins

## Why It's Good For The Game

Every other firearm on the nukie uplink has a syndie firing pin.

## Changelog
🆑
fix: The Syndicate Revolver now has a Syndicate Firing Pin on the Nuke
Ops uplink.
/🆑

* Gives the Revolvers on the Nuke Ops uplink Syndicate Firing Pins

---------

Co-authored-by: starrm4nn <139372157+starrm4nn@users.noreply.github.com>
2023-10-31 18:35:28 -04:00
SkyratBot
eb75696ae9 [MIRROR] [NO GBP]Fixes tesla zaps. [MDB IGNORE] (#24698)
* [NO GBP]Fixes tesla zaps. (#79398)

## About The Pull Request
Closes #79297
Closes #79312

Due to the new cutoff parameter being added to tesla_zap() (from
#78310), and most callers used positional arguments instead of keywords,
the zap flags was getting fed the shocked_targets list and maybe other
junk. This caused a bunch of unusual phenomena. This is fixed by using
keyword arguments.

Tesla zaps that use the grid were significantly weaker in terms of
damage than they're supposed to be. This was a byproduct of trying to
convert everything to joules and removing unnecessary power multipliers.
This is fixed by reverting the damage scaling and zap power of zap
sources that aren't based on grid. Technically this will cause the zaps
from other sources to have less power, but these tend to not be able to
put power on grid, so this wouldn't have any change other than what a
grounding rod displays. Doesn't really matter.

Logs machine explosions from zap_act. Not the most helpful log (would
take a lot of effort to add an extra parameter to pass the source), but
better than nothing.

Probably other stuff I did, lol.
## Why It's Good For The Game
Stops zap fuckery. Admins can now find the explosions when a 9GeV engine
decides to go haywire or whatever.
## Changelog
🆑
fix: Fixes tesla zaps being weird.
admin: Logs explosions from explosive zaps.
/🆑

* [NO GBP]Fixes tesla zaps.

---------

Co-authored-by: Pickle-Coding <58013024+Pickle-Coding@users.noreply.github.com>
2023-10-31 10:29:50 -07:00
Iajret
7e357a6d4c Fixes disabler SMG having 20x more shots and remove energy weapons cell redefines (#24587)
* remove modular redefines

* remove nonmodular vars
2023-10-27 22:11:58 -04:00
SkyratBot
abaf77ef16 [MIRROR] Fix dsiabler / laser impact effects [MDB IGNORE] (#24618)
* Fix dsiabler / laser impact effects (#79252)

## About The Pull Request

Fixes #79250

Simply restores the check for brute damage type up a level before going
into blood splatters / sparks.

Not a perfect fix, as this means brute projectiles are unable to have
unique impact effects, but as we have no brute projectiles with impact
effects currently (~~outside of a CTF projectile I think?~~ Just kidding
all bullets are supposed to have an effect but it uses the blood
splatter instead. Project for another day?) it suffices.

## Changelog

🆑 Melbert
fix: Disablers and Lasers now show their on-impact effects on hit mobs
again.
/🆑

* Fix dsiabler / laser impact effects

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-10-27 17:10:22 -04:00
SkyratBot
5acdae15c9 [MIRROR] mag check - examining magazines now tells you what's the next/ready round [MDB IGNORE] (#24599)
* mag check - examining magazines now tells you what's the next/ready round (#79258)

## About The Pull Request
joke pr name: Mag Drills (Elite)

- Examining an ammo box (incl. magazines) now tells you the
top-loaded/next round in the magazine, so if you have a bunch of
mislabeled/unlabeled magazines you can figure out which one is your
regular bullets and your Not So Regular bullets.
- Also, adds a variable `casing_phrasing` which is used instead of just
"rounds" or "shells" in little, relevant text bits (e.g. moving bullets
in/out of magazines).

## Why It's Good For The Game
- Ammo Box Examines: I think it's probably a good thing to be able to
check what bullets are in what box/magazine without having to pull them
out.
- The casing phrasing thing was just for something that bugged me. I
should probably extend that out to the guns, too, but after a certain
point it's just something that only a small subset of people will
notice.

## Changelog

🆑
qol: Examining an ammo box (incl. magazines) now tells you the top
loaded round, so if you have different ammo types in different
magazines, you can at least try to figure out which one is which.
spellcheck: Ammo boxes (incl. magazines) can now be set to use different
phrasing for their ammunition (e.g. cartridges, shells, etc. instead of
just mixing "rounds" and "shells").
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>

* mag check - examining magazines now tells you what's the next/ready round

---------

Co-authored-by: Hatterhat <31829017+Hatterhat@users.noreply.github.com>
Co-authored-by: Hatterhat <Hatterhat@ users.noreply.github.com>
2023-10-26 06:47:36 -07:00
SkyratBot
a7509e9dfb [MIRROR] Scatter laser shells now use the scatter laser beam, and makes them significantly easier to make. Projectiles can now have damage falloff. [MDB IGNORE] (#24584)
* Scatter laser shells now use the scatter laser beam, and makes them significantly easier to make. Projectiles can now have damage falloff. (#78927)

## About The Pull Request

Allows for damage falloff to apply to more than just shotgun pellets.
Now any projectile can have a damage falloff defined.

Scatter Laser shells no longer use the minigun beams to determine their
damage. Instead they use the actually defined scatter laser beams. Those
beams do 7.5 damage per pellet, times by 6 pellets.

Scatter laser beams now have damage falloff, a separately defined
(positive) wounding power from normal beams, and wound falloff.

Scatter laser shells can be printed from security protolathes once you
have weapon tech.

Scatter laser shells _may_ be damaged by EMPs based on severity. The
result is that it fires a practically useless volley of laser fire. They
cause a honk sound when they hit, so you know when you've shot one of
these.

## Why It's Good For The Game

Well, we want shotguns universally to not be defined by their damage
output (especially extreme damage output) but by niche.

What does the scatter laser shell currently occupy as a niche?

The single highest damage output of any projectile weapon in direct
damage. The thing we don't want of shotguns, and it is reigning champion
of all guns.

Okay, that's a bit misleading, because obviously it is competing with
the likes of .50 BMG which does 70 damage outright and dismembers limbs,
potentially doing upwards of 90 damage if it does, and also hard stuns
people. Obviously _that_ is technically a stronger bullet.

But not for raw damage, because the scatter laser does 90 damage out the
gate, barring any potential wounding that might occur which increases
the damage multiplicatively. No gimmicks, no extra procs, nothing. It's
just 15 force lasers (with no damage dropoff) split between 6 beams.

And the reason for this is because this shell has been nerfed once prior
by making it not fire 6 normal laser shots into someone. That was 120
damage at the time, 120 to 90 was...I guess a nerf during the taser era.
Depends on how you viewed it. Buckshot was doing like 80 at the time,
believe me it was a wild period. But anyway, when we did the whole
damage rearrangement over the course of the laser few years, every other
shell got touched except this one for some reason. Even pulse slugs lost
10 damage while this was still sitting on 90 force point blank.

So what is the new niche? Well, it's laser buckshot. That's not a niche
but crew don't get buckshot, so this is their buckshot. It wounds real
good. Real goddamn good. And its is a laser. It fits the aesthetic,
obviously.

Okay, thanks.

## Changelog
🆑
balance: Scatter laser shells actually utilize the _real_ scatter laser
beam. This comes with damage changes. And wounding power.
feature: EMPs can potentially damage scatter laser shells.
refactor: All projectiles can now have damage falloff defined. Yay.
balance: Scatter laser shells can be printed when weapons technology is
researched.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@ gmail.com>

* Scatter laser shells now use the scatter laser beam, and makes them significantly easier to make. Projectiles can now have damage falloff.

* Modular

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Jacquerel <hnevard@ gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-25 19:29:37 +00:00
Zergspower
bb8d8f968a [Mostly-Modular] Major refactor of most modular borg code with some QOL adjustments (#24542)
* The great BORG

* godamn my head

* how did that even compile

* Why do you keep reverting

* ah ticked

* Delete tallrobot_effects.dmi

* removes 'dogborg' language and cargo tweaks

* lol silly dog you dont have a custom panel yet

* that typo tho

* Forgot about that borg building

* Apply suggestions from code review

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>

* local edit

* Godamnit Hemlock

* re-deletes altborgs

* Update mechfabricator_designs.dm

* Revert "Update mechfabricator_designs.dm"

This reverts commit 569912fa2fadda9fbcdc83646e995405f33dfb24.

---------

Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-10-25 08:24:37 -07:00
SkyratBot
51035a3674 [MIRROR] Disabler SMG: We got laser carbine, so why not have automatic disabler? [MDB IGNORE] (#24568)
* Disabler SMG: We got laser carbine, so why not have automatic disabler? (#79158)

## About The Pull Request
Basically, it's #78685, but instead of an automatic deadly laser gun,
it's an automatic disabler gun.

https://github.com/tgstation/tgstation/assets/42353186/6ce1c401-30a6-45f7-a55c-4d95f742c35a

_For comprasion, normal disabler takes 4 shoots and too uses 80% of
charge_

![disabler
SMG](https://github.com/tgstation/tgstation/assets/42353186/7242a0bd-9e78-4e98-a746-7c735b4f997e)

![smg
inahnd](https://github.com/tgstation/tgstation/assets/42353186/a20848ab-9157-43a8-a146-6c3b57e0a817)

It's a side-grade as well, the damage is halved (15 instead of 30) while
the ammo count (40 instead of 20) is higher. So damage potential stays
the same.
The sound which it uses is more weak sounding to signify that.

You **can't** dual wield them.

You can order a crate of 3 at Cargo.
## Why It's Good For The Game
Automatic guns are fun, and as laser carbine showed - REAL FUN.
This introduces another automatic gun available to the crew through
Cargo because variety is always good, and this way we cover the both
most prominent projectiles (Lasers and Disablers).
Now Security can have fun without only killing people, this also lets
Pacificists have some as well.

<details>
  <summary>GET DISABLED</summary>

![HoS does
ratatata](https://github.com/tgstation/tgstation/assets/42353186/29b0d1b3-3bae-4230-ac03-958c58d67a7e)

</details>

## Changelog
🆑
add: New automatic weapon for the crew - Disabler SMG. Capable of
rapidly firing weak disabler beams.
/🆑

---------

Co-authored-by: Jacquerel <7483112+Jacquerel@ users.noreply.github.com>

* Disabler SMG: We got laser carbine, so why not have automatic disabler?

---------

Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: Jacquerel <7483112+Jacquerel@ users.noreply.github.com>
2023-10-24 22:02:15 +00:00
SkyratBot
48ed11d76e [MIRROR] fixes thermal pistols doing literally nothing on impact [MDB IGNORE] (#24567)
* fixes thermal pistols doing literally nothing on impact (#79175)

## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/79167

## Why It's Good For The Game

refactors sometimes overlook things

## Changelog
🆑
fix: The nanites inside of thermal pistols are once again angry, and
aggressively want to burn/puncture people.
/🆑

* fixes thermal pistols doing literally nothing on impact

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2023-10-24 21:54:37 +00:00
SkyratBot
05437fe376 [MIRROR] Basic Constructs: Juggernaut [MDB IGNORE] (#24547)
* 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>
2023-10-24 20:44:31 +00:00
SkyratBot
4b4119e4b6 [MIRROR] New Muzzle Flash + Temperature gun Baking beam change [MDB IGNORE] (#24557)
* New Muzzle Flash + Temperature gun Baking beam change

* Update _energy.dm

---------

Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-10-24 20:06:57 +00:00
SkyratBot
0e3b7d842b [MIRROR] Adds a Syndicate Monkey Agent beacon uplink item [MDB IGNORE] (#24550)
* 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>
2023-10-24 10:11:25 -07:00
SkyratBot
c63f897521 [MIRROR] It is now possible to survive the Mansus [MDB IGNORE] (#24490)
* 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>
2023-10-21 15:12:00 -04:00
jjpark-kb
416fa76bda fixes arrows to be different icons again (#24463) 2023-10-20 12:10:50 -04:00
SkyratBot
b6da56408e [MIRROR] A comprehensive refactor / cleanup of bullet_hit and on_hit to cut out a single bad species / mob proc [MDB IGNORE] (#24430)
* 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>
2023-10-19 22:18:41 -04:00
SkyratBot
1dd5011776 [MIRROR] Adds pathmaps, refactors pathfinding a bit [MDB IGNORE] (#24414)
* 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>
2023-10-18 03:31:21 -04:00
SkyratBot
08c99f9478 [MIRROR] Improves code for power usage of energy weapons [MDB IGNORE] (#24323)
* Improves code for power usage of energy weapons

* Modular update

* This comment was wrong, it was 10 before

* One last modular

---------

Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-14 01:35:36 +00:00
SkyratBot
06467afb92 [MIRROR] Laser Carbine sprite and sound improvement [MDB IGNORE] (#24305)
* Laser Carbine sprite and sound improvement (#78831)

## About The Pull Request
Changes the laser carbine sprite and makes the orange laser sprite
brighter (the laser carbine shot orange lasers from the start). Changes
the laser2.ogg to a new sound that is now used by the laser carbine (can
be heard in the video):

https://github.com/tgstation/tgstation/assets/42353186/cfaff327-335f-4e6b-9773-b1ce62600212

**NEW SPRITE:**
![laser carbine
big](https://github.com/tgstation/tgstation/assets/42353186/5e0b1c90-527c-47ae-9747-7f833a84c880)

**OLD SPRITE:**
![old
carbine](https://github.com/tgstation/tgstation/assets/42353186/5d2eb35c-9ddb-49db-99b3-e1631a1db8dd)
## Why It's Good For The Game
The laser carbine sprite must be improved, as in the original PR people
wanted it to be "polished" so I did it. Polished the sprite without
changing the core design.

![image](https://github.com/tgstation/tgstation/assets/42353186/0c6f73a3-0dd0-4ba5-9cf8-dd34cade2fd1)

New sounds give it a unique sound to distinguish it from other guns,
it's also less noise-polluting than normal laser gun sound which is long
and too beefy for a 10-burn damage gun.
## Changelog
🆑
sound: laser2.ogg sound has been changed. Now laser carbine uses it.
image: Laser carbine and orange laser sprite have been improved.
/🆑

* Laser Carbine sprite and sound improvement

---------

Co-authored-by: DrTuxedo <42353186+DrDiasyl@users.noreply.github.com>
2023-10-13 00:31:26 -07:00
SkyratBot
4a618d0561 [MIRROR] Watcher Nest Lavaland Ruin [MDB IGNORE] (#24286)
* Watcher Nest Lavaland Ruin (#78790)

## About The Pull Request

Adds a small new lavaland ruin, the Watchers' Grave.

![image](https://github.com/tgstation/tgstation/assets/7483112/9c3fa6f0-3e7d-4540-8646-5229eb11445b)

![image](https://github.com/tgstation/tgstation/assets/7483112/93bc14f0-9a0c-40d3-bd30-cc79a0d85752)

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>

![dreamseeker_cMNnZXjfgL](https://github.com/tgstation/tgstation/assets/7483112/841db8fc-19ac-431f-aa66-c9ec5fbedbc3)

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>
2023-10-11 19:57:35 -04:00
SkyratBot
3df48e051b [MIRROR] Adds practice carbines to all firing ranges [MDB IGNORE] (#24263)
* 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>
2023-10-10 19:42:38 -04:00
SkyratBot
6da5503e2d [MIRROR] Refactors Revenants into Basic Mobs [MDB IGNORE] (#24233)
* Refactors Revenants into Basic Mobs

* Update revenant_abilities.dm

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-09 20:39:03 -04:00
SkyratBot
120cea1200 [MIRROR] Adds a cowboy bundle to the nuclear ops uplink [MDB IGNORE] (#24234)
* 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>
2023-10-09 20:09:08 -04:00
SkyratBot
0c9149bf35 [MIRROR] Refactor gib code to use bitflags and have documentation [MDB IGNORE] (#24143)
* Refactor gib code to use bitflags and have documentation

* Modular updates

* Modular updates

* Modular updates

---------

Co-authored-by: Tim <timothymtorres@gmail.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-10-09 15:00:17 -04:00
SkyratBot
ba7ef668a1 [MIRROR] Added slapcrafting to tech shells [MDB IGNORE] (#24167)
* 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>
2023-10-06 20:56:47 -07:00
SkyratBot
a4bb73539a [MIRROR] The laser carbine, a full-auto sidegrade to the normal laser gun [MDB IGNORE] (#24151)
* 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):

![laser_carbines](https://github.com/tgstation/tgstation/assets/21979502/75c88c8a-aa8a-481d-994d-86850fcdbb9b)

## 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>
2023-10-06 14:46:49 -07:00
SkyratBot
d5d78fec30 [MIRROR] Makes the Regal Condor realistically simulate being shot dead with a high caliber hand cannon by making it HITSCAN [MDB IGNORE] (#24149)
* 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>
2023-10-06 14:46:20 -07:00
SkyratBot
4b78c15fde [MIRROR] Adds The Hand of Midas, an ancient Egyptian gun. [MDB IGNORE] (#24105)
* 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-83e8a701c995

https://github.com/tgstation/tgstation/assets/66052067/34dc23e7-2b88-4ee9-bb1e-c8067a491975

https://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.

![image](https://github.com/tgstation/tgstation/assets/66052067/7c930287-410d-43bd-8731-0f7224b9f049)
## 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>
2023-10-03 22:00:40 -07:00
Paxilmaniac
42dbc6d028 Armadyne Antitrust Act 2563 :: Disintegrates armadyne as a concept and replaces basically everything related (#23424)
* 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>
2023-10-03 11:20:23 -04:00
SkyratBot
59e1231c8b [MIRROR] A thorough audit of damage procs and specifically their use in on_mob_life() (with unit tests!) [MDB IGNORE] (#24087)
* 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>
2023-10-03 05:27:34 -04:00
projectkepler-RU
2597aae010 [NON-MODULAR]X-01 nerf revert (#24054)
* Update energy_gun.dm

* upstream to downstream again

* Create 2023-09.yml
2023-10-01 22:47:58 -04:00
Hatterhat
d2edcd4341 reduces base wound bonus of bullets' base type (#23574)
hasta la vista baby hasta la vista baby

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2023-09-30 19:54:27 -04:00
SkyratBot
2db9800806 [MIRROR] Makes the reverse revolver better hidden. [MDB IGNORE] (#24022)
* 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>
2023-09-29 15:03:25 -07:00
SkyratBot
89a03b48e2 [MIRROR] Converts slapcrafting into a component [MDB IGNORE] (#23955)
* Converts slapcrafting into a component

* Update color.dm

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-27 18:19:23 -04:00
SkyratBot
f5eb6b48b8 [MIRROR] [NO GBP]Zap strength is now measured in joules. NT CIMs will now display the power transmission from the zaps, accounting for every factor. [MDB IGNORE] (#23887)
* [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:
![Screenshot
(25)](https://github.com/tgstation/tgstation/assets/58013024/781323d4-db91-4a78-9a46-8152022993ed)

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>
2023-09-24 23:24:04 -07:00
SkyratBot
010f85e59a [MIRROR] Fixes beams rendering below mobs by default. The fishing line is no longer emissive. [MDB IGNORE] (#23876)
* 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>
2023-09-24 00:49:07 -04:00
SkyratBot
7d5897d7e7 [MIRROR] Augments/Prosthetic limbs now spark when shot instead of bleeding [MDB IGNORE] (#23824)
* Augments/Prosthetic limbs now spark when shot instead of bleeding

* Updating modular (why is this entire proc copy pasted...)

* Update projectile.dm

* Updating modular (why was this entire proc copy pasted...)

* Merge branch 'upstream-merge-78248' of https://github.com/Skyrat-SS13/Skyrat-tg into upstream-merge-78248

---------

Co-authored-by: nikothedude <59709059+nikothedude@users.noreply.github.com>
Co-authored-by: Giz <13398309+vinylspiders@users.noreply.github.com>
2023-09-21 04:59:43 -04:00
SkyratBot
e310aa97b3 [MIRROR] [Fuck Shotties] Old Yellers Old Yeller (Improvised Shell Nerf) [MDB IGNORE] (#23812)
* [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>
2023-09-19 21:19:43 -04:00
SkyratBot
d9e5ac6b73 [MIRROR] Cleans up some depreciated code related to caseless ammo [MDB IGNORE] (#23752)
* Cleans up some depreciated code related to caseless ammo

* Update _energy.dm

* Update _energy.dm

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Bloop <13398309+vinylspiders@users.noreply.github.com>
2023-09-17 20:17:23 +00:00
SkyratBot
e1d49bd0e7 [MIRROR] Culls client/mouse code only used by beam rifles in favor of signals. [MDB IGNORE] (#23754)
* 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>
2023-09-17 15:35:22 -04:00