Commit Graph

2729 Commits

Author SHA1 Message Date
necromanceranne
2c255b0f12 You can rename/change the description of thermal pistols (#74337)
## About The Pull Request

As the title, you can change the name and description of thermal
pistols.

Also changes the description a bit so people don't think it's self
charging.

## Why It's Good For The Game

Someone asked me to do this. Also people were sometimes confused about
the description.

## Changelog
🆑
qol: You can rename and change the description of nanite/thermal
pistols.
/🆑
2023-03-30 10:36:10 +02:00
Bloop
7c59368b38 Fixes cycler shotgun using 64x64 sprite for inhands (#74332)
## About The Pull Request

What it says on the tin. Setting this back to 32x32 fixes the awkwardly
floating off to the side inhand sprite for these guns.

Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/16838

## Why It's Good For The Game

Bugfix

## Changelog

<details>
<summary>From this</summary>
  

![image](https://user-images.githubusercontent.com/13398309/228412774-4ba6447d-332a-4a07-b417-681b4c6632d6.png)

</details>

<details>
<summary>To this</summary>
  

![dreamseeker_znDdYBHocq](https://user-images.githubusercontent.com/13398309/228413267-94aa5576-d0e1-40bd-8e6f-5c3eec57f095.gif)

</details>

🆑
fix: cycler shotguns' inhand sprites will no longer float ominously by
their wielder's side
/🆑
2023-03-29 19:29:13 -06:00
san7890
ccef887efe Lints Against Unmanaged Local Defines (#74333)
# MAINTAINER - USE THE BUTTON THAT SAYS "MERGE MASTER" THEN SET THE PR
TO AUTO-MERGE! IT'S MUCH EASIER FOR ME TO FIX THINGS BEFORE THEY SKEW
RATHER THAN AFTER THE FACT.

## About The Pull Request

Hey there,

This took a while to do, but here's the gist:

Python file now regexes every file in `/code` except for those that have
some valid reason to be tacking on more global defines. Some of those
reasons are simply just that I don't have the time right now (doing what
you see in this PR took a few hours) to refactor and parse what should
belong and what should be thrown out. For the time being though, this PR
will at least _halt_ people making the mistake of not `#undef`ing any
files they `#define` "locally", or within the scope of a file.

Most people forget to do this and this leads to a lot of mess later on
due to how many variables can be unmanaged on the global level. I've
made this mistake, you've made this mistake, it's a common thing. Let's
automatically check for it so it can be fixed no-stress.

Scenarios this PR corrects:

* Forgetting to undef a define but undeffing others.
* Not undeffing any defines in your file.
* Earmarking a define as a "file local" define, but not defining it.
* Having a define be a "file local" define, but having it be used
elsewhere.
* Having a "local" define not even be in the file that it only shows up
in.
* Having a completely unused define*

(* I kept some of these because they seemed important... Others were
junked.)
## Why It's Good For The Game

If you wanna use it across multiple files, no reason to not make it a
global define (maybe there's a few reasons but let's assume that this is
the 95% case).

Let me know if you don't like how I re-arranged some of the defines and
how you'd rather see it be implemented, and I'd be happy to do that.
This was mostly just "eh does it need it or not" sorta stuff.

I used a pretty cool way to detect if we should use the standardized
GitHub "error" output, you can see the results of that here
https://github.com/san7890/bruhstation/actions/runs/4549766579/jobs/8022186846#step:7:792
## Changelog
Nothing that really concerns players.

(I fixed up all this stuff using vscode, no regexes beyond what you see
in the python script. sorry downstreams)
2023-03-29 10:17:03 -07:00
necromanceranne
c27f9a6d9b Minor Nukie Thing: Bolt-action Sniper Rifle, balance coding, and some ammo changes (#73781)
## About The Pull Request

### The Rifle:
-The Sniper Rifle is now a bolt action. This replaces the 4 second fire
delay on the sniper rifle. This overall will improve the fire rate if
you're good at racking the bolt, but it will also feel less like you're
in a weird limbo of inaction while using the sniper rifle, since the
fire delay can be quite confusing to players not used to it. This can be
tweaked, like reducing the speed of the racking action, if it seems like
it is too much.
-The scope component now goes up to 50 tiles (or so), which allows you
to gain a significant sightline over an area. The reasoning for this is
simple. The component actually nerfed the overall range of the sniper
rifle's scope, so this should hopefully restore that somewhat. And
having such a huge sightline makes it much easier to utilize the
impressive range of the rifle. Currently, it's really only ideal for
extremely close range fighting.
-The normal sniper rifle, the one that syndicate base scientists get,
can be suppressed. I don't know why it was different.

### The Ammo:

Normal .50 BMG: Does much more object damage, and on top of that deals
additional damage to mechs, but not by much more. Now, when it
dismembers a limb, it also deals its damage to the chest. This ensures
that you didn't straight up lose out on dealing a killing blow because
you took their limb off, and makes the dismemberment property of .50 BMG
a significant upside rather than a immense detriment.

Marksman: Gains a lot of the above benefits, but has much lower range.
Why this nerf? It's actually because of some funny nonsense with how
ricochet works. Which can cause....accidents to happen. To you. Consider
that firing down a straight line and missing could be quite embarrassing
when the bullet has 400 tiles of range.

Soporific: Now called Disruptor ammo. Works as it did before, putting
humans to sleep for 40 seconds (seriously, 40 seconds). Also deals some
stamina damage, if...that's relevant. But now also causes an EMP effect
and a boatload of added damage to both mechs and borgs, allowing it to
be an excellent anti-mech and anti-borg ammo type, as well as scrambling
any pesky suit sensors, energy weapons and so on in an area around the
impact. Useful for support fire.

Incendiary (NEW!): Causes a massive firebomb to go off where it impacts
(no explosion, so this isn't a stun). Also sets the target on fire,
which is always fun. Good for shooting into groups of people with
impunity. Also deals burn damage instead, since I think nukies could use
more methods for direct fire damage.

Surplus (NEW!): It's .50 BMG but it lacks most if not all the upsides.
No armour penetration, no dismemberment, no paralysis. It still deals a
lot of damage to objects, so not a bad option for simply removing
structures from afar. So what's the point in this ammo? You can buy 7
magazines for the price of one. I want to introduce 'Surplus' as an idea
for nukies to invest in if they want to be able to keep shooting but
they're really on a budget, like most non-warop nukies tend to be. This
is definitely subject to change (like a damage decrease on top of
everything else).

Pricing and Capacity: Normal ammo and surplus costs 3 TC. Every special
ammo costs 4 TC. Every special ammo also has the same ammo capacity as
the normal magazine. It's kind of weird how most of the subtypes had 5
shots rather than 6, but then soporific had...3? I don't get it. This
would probably cause a good deal of confusion, especially if you are
swapping ammo types and weren't aware of this particular oddity.

Anyway, 6 shots.

### Minor Addition
Gets rid of the cheap suppressor. It lies to players, tricking them into
thinking this is a low quality suppressor. Newsflash, it isn't. There is
no distinct difference between that suppressor and the normal
suppressor.

## Why It's Good For The Game

The sniper rifle, unfortunately, sucks a lot except for very specific
use cases. It got a big nerf with the scope component in terms of range,
even if the functionality is way cooler. And, at a baseline, there was
some counterintuitive functions attached to it. Dismemberment was cool,
but it also caused a loss in overall damage due to how limbs contribute
to core health. On top of this, the cool ammo types were...not much
better? Penetrator was almost always the best option, even if it lost a
lot of damage as a consequence.

So, what was it good for? X-ray + Penetrator. Pretty much, that's it. It
has some other uses but if I had to be entirely honest, there wasn't
much that other weapon couldn't do as well.

Hopefully this helps things going forward, and I want to mess with this
as well down the line in case its a bit too much of a boost in power.

Absolutely please rip this PR apart.

## Changelog
🆑
balance: Makes the syndicate sniper rifle a bolt-action rifle.
balance: Sniper rifles have a scope range of roughly 50 tiles.
balance: Sniper rifle ammo, if it dismembers your limbs, does damage to
the chest.
balance: All the various syndicate sniper rifle magazines have
consistent casing quantities (6 shots). They also have more consistent
pricing. 3 for normal and a box of surplus, and 4 for every other type.
balance: Reduces the range of Marksman ammo to 50 tiles. Not because it
is strong, but because you might accidentally shoot yourself if you're
not watching where you're shooting. Ricochets are no joke.
add: Replaces Soporific with Disruptor ammo. Works like soporific, but
also EMPS things it hits.
add: Adds Incendiary .50 BMG. Causes a combustion to erupt from the
struck target, as well as setting targets on fire. Great for parties.
add: Adds Surplus .50 BMG. It sucks, but you get a lot of them! Quantity
over quality, baby.
remove: The suppressors in the bundle are of standard quality. The
apparent 'cheap suppressor' that came bundled with the C-20r and sniper
rifle were found to actually be 'fine'. Trust us.
/🆑
2023-03-28 19:16:33 +02:00
Zephyr
ecbcef778d Refactors Regenerate Organs, and a few organ helpers (#74219)
## About The Pull Request

Refactors regenerate organs to be slightly more intelligent in handling
organ changes and replacements.
Noteably:
- We don't remove organs that were modified by the owner; such as
changing out your heart for a cybernetic
- We early break out of the for loop if they aren't supposed to have an
organ there and remove it
- We check for the organ already being correct, and just healing it and
continuing if it is

Also changes the names of some of the organ helpers into snake_case
### Mapping March
Ckey to receive rewards: N/A

## Why It's Good For The Game
## Changelog

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
2023-03-26 17:54:36 +01:00
John Willard
3e41388e20 Removes networks from the game (#74142)
## About The Pull Request

This is a continuation of
https://github.com/tgstation/tgstation/pull/74085 - I announced in the
comments there that this would be my next PR, and this is it.

Removes SSnetwork, ``/datum/ntnet``,
``/datum/component/ntnet_interface``, ``var/network_root_id``, the
network unit test, and a lot of other things related to networks.

- NTNet circuits now check for an Ntnet relay, and uses signals to
operate.
- Logs in Wirecarp is now only for PDA and Ntnet Relay things, so you
can no longer see what ruins exist using it (why should Wirecarp know
that Oldstation spawned? The flavor is that they dont know its there).
- Removed it from MULEbots entirely, I don't think it even did anything
for them? Botkeeper seems to work without it, so it's possibly there
from pre-tgui PDAs.
- Moves assigning random names to a base proc instead of being tied to
network, this is things like random-naming scrubbers/vents. The behavior
hasn't changed at all.
- Makes Ntos work for consoles when relays are down, as the comments
said they're supposed to (because they're wired). I think this was an
accidental change on my part, so this is a revert of that.

## Why It's Good For The Game

Ntnet is ancient code that hasn't given us much that we can't do with
already existing alternatives, we've been slowly moving away from it for
init times, and though a large portion of that was limited to airlocks,
I still don't think this is a system worth keeping around.
It's way too complex to expect feature coders to do anything with it,
and too old with better alternatives for anyone to want to improve any
of it.

## Changelog

🆑
fix: Computers are now properly connected to Ethernet, and can use Ntos
when Relays are down.
refactor: Removes Ntnet and Ntnet interfaces, which was only used by
Ntnet circuits (which now directly checks for a Relay to work) and
MULEbots, which did nothing with it.
balance: Wirecarp no longer tells you what ruins spawned in a round,
instead it's limited to PDA logs, and tells you the source too. This
means the RD can catch someone running illegal programs if they don't
make any attempt at hiding it.
qol: Wirecarp logs is now set to save 300 at once, instead of 100 and
being increased to 300 by the RD during the round. This is pretty
insignificant, since there's no reason to NOT want as many logs as
possible.
/🆑

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
2023-03-26 03:02:28 -07:00
Pickle-Coding
b688c36620 Allows any bullet class that doesn't override wound_bonus to cause wounds. (#73838)
Overrides wound_bonus for the bullet class to be 0 instead of
CANT_WOUND.
## About The Pull Request
The bullet class has wound_bonus 0 instead of CANT_WOUND. This allows
things such as 9mm and 10mm to wound, and probably other things.
## Why It's Good For The Game
Makarovs that used 9mm and some other things just didn't cause any
wounds, and that was sad. Bullets are physical things, so it doesn't
make sense to make them not cause any wounds unless they were overidden.
## Changelog
🆑
balance: 9mm, 10mm, and other stuff can cause wounds.
/🆑
2023-03-19 18:25:31 -06:00
ArcaneDefence
45bd67e0dd Fixes a bunch of ammo sprite fuckups (#73987)
## About The Pull Request
fixes https://github.com/tgstation/tgstation/issues/73979 and cleans up
some leftovers from https://github.com/tgstation/tgstation/pull/73736
Fixes 12 gauge external shotgun magazine sprites from using the default
sprite when we have unique ones
Adds unique sprites for the 12 gauge external shotgun buckshot/slug
magazines

## Why It's Good For The Game

![image](https://user-images.githubusercontent.com/51932756/224886189-cf17d259-c3cf-4db3-be98-21e353554bf0.png)

![image](https://user-images.githubusercontent.com/51932756/224886340-8ca9573f-8621-442f-a5a8-e4f23197d669.png)
Nukies that use the bullpup can recognize their ammo
availability/selection quickly
Magazines are more consistently displayed

## Changelog
🆑
fix: A bunch of invisible magazine sprites are visible now
imageadd: Bullpup shotgun magazines for buckshot and slugs are now
indicated with a red or white dot, respectively.
/🆑
2023-03-14 19:17:27 -06:00
LemonInTheDark
60e85fa947 Polishes some side sources of light and color (#73936)
## About The Pull Request

[Circuit Floor
Polish](6b0ee98132)

Circuit floors glow! but it looks like crap cause it's dim and the
colors are washed out.
I'd like to make them look nicer. Let's make them more intense and
longer range, and change the colors over to more vivid replacements.

While I'm here, these should really use power and turn on and off based
off that.
Simple enough to do, just need to hook into a signal (and add a setter
for turf area, which cleans up other code too).

[Desklamp
Upgrade](8506b13b9c)

Desklamps look bad. They're fullwhite, have a way too large
range.Crummy.
Let's lower their lightrange from 5 to 3.5, and make the ornate ones
warmer, and the more utilitarian ones cooler. The clown one can be
yellow because it's funny

I'm renaming a color define here so I'm touching more files then you'd
expect

[Brightens
Niknacks](835bae28e9)

Increases the light range of request consoles, status displays,
newscasters, and air alarms (keycard machines too, when they're awaiting
input at least)
Increases the brightness of air alarms, I think they should be on par
with apcs, should be able to tell when they're good/bad.
Increases the brightness of vending machines (I want them to light up
the tiles around them very lightly, I think it's a vibe)

Fixes a bug with ai status displays where they'd display an emissive
even if they didn't have anything on their screen, looking stupid.
This was decently easy but required a define. Looked really bad tho

## Why It's Good For The Game

Pretty

<details>
<summary>
Circuit Floors
</summary>

Old

![image](https://user-images.githubusercontent.com/58055496/224534470-c6eac5f5-5de6-40e9-897d-3212b8796d81.png)

![image](https://user-images.githubusercontent.com/58055496/224534477-ad412ad9-f7c4-44ae-ad75-a1a2c9bd17be.png)

New

![image](https://user-images.githubusercontent.com/58055496/224534486-b7b408a3-546c-4f90-aa9f-0e58bf8128ad.png)

![image](https://user-images.githubusercontent.com/58055496/224534496-626458f7-ab63-429c-a5db-eae9c784d06a.png)
</details>

<details>
<summary>
Desk Lights
</summary>

Old

![image](https://user-images.githubusercontent.com/58055496/224534513-9868b0b8-bc73-4b45-b986-8445078a8653.png)

![image](https://user-images.githubusercontent.com/58055496/224534518-bbbc8c6d-b59e-4f28-a31c-6c6a7e2c2885.png)

New

![image](https://user-images.githubusercontent.com/58055496/224534529-7988f440-03be-42ef-894c-b9e77f577ae5.png)

![image](https://user-images.githubusercontent.com/58055496/224534532-c3f2c6bf-c925-4a59-a8f9-10bb955a9942.png)
</details>

The niknack changes are more minor so I'm not gonna grab photos for
them. I can if you'd like but I don't think it's necessary. Mostly a
vibes in dark spaces sorta thing
 
## Changelog

🆑
add: I made circuit floors brighter and more vivid.
add: Made air alarms, vending machines, newscasters, request consoles,
status displays and keycard machines slightly "brighter" (larger light
range, tho I did make air alarms a bit brighter too)
add: Tweaked desklamps. Lower range, and each type gets its own coloring
instead of just fullwhite.
fix: AI displays are no longer always emissive, they'll stop doing it if
they aren't displaying anything. Hopefully this'll look nicer
/🆑
2023-03-14 16:34:52 -06:00
NamelessFairy
1f32c5f7b2 New var on firing pins for admins to render them unremovable. Fixes firing pin swapping overlapping balloon alerts (#73837)
## About The Pull Request

A couple weeks ago I needed a gun that could not under any circumstances
have its firing pin removed for an event, there was a var for
"pin_removable" which didn't actually do this, I've reworked its purpose
to allow admins to edit as firing pin to make it unremovable and renamed
its old functionality to pin_hot_swappable to better clarify what the
var actually did.

Also I've changed the balloon alert for pin swapping to be a single
balloon alert stating the pins have been swapped rather than two, one
for removal and one for replacement.

None of existing firing pins has had to functionality implemented on
them so its admin only for the time being.
## Why It's Good For The Game

Better readability for pin swapping and admins/future coders can make
firing pins unremovable for events/code additions.
## Changelog
🆑
fix: Firing pin swapping's 2 balloon alerts have been replaced with a
single more readable one.
admin: Admins can now edit a pin_removable var on firing pins to render
them unremovable from the weapons they're installed in.
/🆑
2023-03-10 21:33:54 -07:00
MrMelbert
d755b70d76 Removes bad nodamage var from projectiles, fixes Juggernaut / Rust Walker projectiles doing zero damage (#73806)
## About The Pull Request

- Juggernaut and Rust Walker projectiles were subtyped off of magic,
which is `nodamage`.

- The juggernaut actually had a copy+paste error with their type
`on_hit` which caused none of their special effects on hit ("relative
patching catches this")

- Then I realized projectiles have this var `nodamage` which is, for all
intents and purposes, just `damage > 0`. it's not checked for pacifism,
it's just that. This is dumb. So very dumb, so I removed it.
- There are, however, a few situations which used it in a unique way,
such as the blast wave cannon. This is why I replaced it with a proc,
`is_hostile_projectile`, for certain situations to actually find out if
the projectile is damaging. Projectiles can override this on a per type
basis by default, damaging projectiles = hostile.
- This has a chance to break some things, but I ... kinda doubt it will.

Fixes #73756

## Why It's Good For The Game

Projectiles that act as they should, less dumb vars

## Changelog

🆑 Melbert
fix: Fixes Juggernaut / Rust Walker projectiles doing zero damage
fix: Fixes Juggernaut projectiles not doing bonus damage to nearby
structures
code: Removed projectile nodamage var, replaces it with just checking
for damage
/🆑
2023-03-10 17:51:31 -07:00
Paxilmaniac
ebeec530ff Changes AMMO_BOX_FULL_EMPTY to be either -full or -empty on a magazine, rather than the old behavior of using the max ammo of the magazine (#73736)
## About The Pull Request

As the title might imply:

AMMO_BOX_FULL_EMPTY will now look for sprites with -full and -empty,
rather than -[whatever the max ammo was] and -0
## Why It's Good For The Game

If a magazine is only going to have two states, that being having ammo
and not having ammo, why do I have to fuck with finding the capacity of
the magazine? On the other hand, why should anyone trying to change the
ammo count of a magazine have to fuck with the sprite naming for what
should otherwise just be a change of a var.
## Changelog
🆑
code: AMMO_BOX_FULL_EMPTY now looks for -full and -empty for sprites,
rather than -[max ammo of that magazine] and -0
/🆑
2023-03-04 20:47:12 -08:00
Paxilmaniac
94296fe022 Removes the pipegun's chance to misfire and make you shoot yourself (#73738)
## About The Pull Request

As the title might imply, the increasing percentage chance that a
pipegun misfires and fires at the user has been removed.
## Why It's Good For The Game

The pipegun already has a large number of other downsides, like a 1
round ammo capacity, it being bolt action, the fact it can get dirty and
have the bolt jam, and the 3/4 damage modifier. While these all make
sense and can make for a pretty fun improvised weapon, the chance to
misfire brings it from 'interesting' to 'unusuable in 99% of
situations'.
## Changelog
🆑
balance: The pipegun's chance to misfire and shoot at you rather than
the person you're pointing it at has been removed
/🆑
2023-03-03 19:39:45 -08:00
Profakos
50b37c8c7f Faction defines (#73681)
## About The Pull Request

Quite a lot of mobs had faction defines as a string, which always has a
chance for error. For example, the clown mob spawner had their faction
written as "clown", when the official faction name was "clowns", and a
define existed for it anyways! This PR moves every single string based
factions over here. No references or special role factions. Hopefully I
didn't miss anything.

I also moved a global define used for picking your uplink provider's
flavour to the only file that used it, datum_traitor.dm, and renamed
them a bit to avoid confusion.

I have also noticed that the mimic faction was assigned to the petrified
player with += instead of |=. |= would ensure no duplicate factions, so
I have changed it.

Future improvement:
I have noticed that there is a lot of bloat with factions that contain
only one or two entries (examples: gnomes, floating eyeballs, penguins,
the pet lizards), and some always appear in pairs (vines and plants, the
rare exceptions being killer tomatoes and strange reagent spawned pine
trees), but trimming consolidating them is a matter for a different
time.

## Why It's Good For The Game

Makes assigning factions a bit less error prone.

I can finally remove the ```/// Later all mob factions will be moved
here and their current factions replaced with faction defines.```
comment. Later is NOW.

## Changelog
Nothing player facing
2023-02-28 16:44:08 -07:00
NamelessFairy
8f1f56423e Fixes a bunch of bugs with paywall firing pins. (Including making them work in the first place) (#73564)
## About The Pull Request

Fixes: #69379

Tried to use these for a thing yesterday and discovered they are full of
bugs.
Fixes include:
Paywall firing pins without a registered owner will no longer put them
inside you when you try to put them into a gun.
If you decline the terms and conditions of the firing pin it no longer
permanently bricks the pin.
Per shot firing pins no longer let you fire them for free by removing
your ID after the first shot (Firing pins are linked to bank accounts
rather than unique users now which afaik was intended just not done)
Per shot firing pins no longer charge you for trying to fire empty guns.
Per shot firing pins no longer charge you for initially acknowledging
they charge you per shot.
## Why It's Good For The Game

Bugfixs a bunch of issues.
## Changelog
🆑
fix: Unregistered paywall firing pins wont vanish when you try to insert
them into a gun
fix: Declining to pay for a paywall firing pin will no longer brick the
firing pin for everyone
fix: paywall firing pins are linked to bank accounts instead of unique
users, so they can't be used for overly elaborate ling checks or letting
people without IDs fire them for free.
fix: Attempting to fire an empty gun with a paywall firing pin will no
longer charge you.
fix: Multi-shot paywall firing pins do not charge you for agreeing to
the initial prompt.
spellcheck: Fixes a spelling mistake in paywall firing pin prompts
code: The owner of a paywall firing pin is now tracked via account
rather than ID, this stops the pin from holding a reference to a deleted
ID if the ID is ever destroyed.
/🆑
2023-02-24 18:16:59 -07:00
Tim
a1ada2c9ef Refactor, improve, and rename canUseTopic to be can_perform_action (#73434)
This builds on what #69790 did and improved the code even further.
Notable things:
- `Topic()` is a deprecated proc in our codebase (replaced with
Javascript tgui) so it makes sense to rename `canUseTopic` to
`can_perform_action` which is more straightforward in what it does.
- Positional and named arguments have been converted into a easier to
use `action_bitflag`
- The bitflags adds some new checks you can use like: `NEED_GRAVITY |
NEED_LITERACY | NEED_LIGHT` when you want to perform an action.
- Redundant, duplicate, or dead code has been removed.
- Fixes several runtimes where `canUseTopic` was being called without a
proper target (IV drips, gibber, food processor)
- Better documentation for the proc and bitflags with examples
2023-02-16 20:22:14 -05:00
SuperSlayer
793e38e1b6 Buffs mech disabler (#72941)
## About The Pull Request

Mech disabler now is works like a shotgun, shooting 5 weak disabler
beams(15 damage, the normal disabler beam has 30). The energy drain is
increased to 100 from 30. Has a cooldown of 1.5 seconds.

The exact numbers(weapon scatter, damage, amount of projectiles) can be
discussed.

## Why It's Good For The Game

When you are trying to nonlethally deal with someone, a normal security
officer with their roundstart available equipment is more effective then
an expensive lategame mech, due to that fact that it is really slow,
cant use stunbattons and even if you manage somehow to stamcrit a person
with a mech disabler you still need some time to get out in order to
handcuff them. So mech disablers are useless, especially compared with
other mech weapons, like rocket launchers and ballistic guns. This PR
makes the mech disabler not trash, so roboticists would have a wider
choice of useful weapons when making a mech.

## Changelog

🆑
balance: Mech disabler now works as a shotgun, shooting 5 weak disabler
beams at one time.
balance: Mech disabler now uses 100 energy instead of 30, and it's
attack cooldown increased to 1.5 seconds instead of 0.8
/🆑
2023-02-13 22:11:30 -07:00
NamelessFairy
39ba5c6c68 Soporific magazines use the correct icon, penetrator and marksman magazines now have icons. (#73217)
## About The Pull Request

Fixes #73192

Soporific sniper rifle magazines had used the wrong icon, I've fixed
this, I'm also re-purposed an old unused magazine sprite and added a new
one for the other 2 sniper ammo types.
## Why It's Good For The Game

Bug fix + now the alt sniper ammo types have unique sprites.
## Changelog
🆑
fix: Soporific sniper magazines use the correct icon again.
imageadd: Penetrator and Marksman sniper magazines now have icons.
/🆑
2023-02-12 10:10:58 -08:00
Jacquerel
3335b5e59f Basic Mob Spiders II: Elements (#73202)
## About The Pull Request

This PR elementises two kinds of spider behaviour in preparation for
making them into Basic Mobs, which in turn will solve a bug with
Araneus.
This will probably conflict with my other PR but I'll deal with it.

The Nurse Spider and Flesh Spider healing abilities which were similar
but not _quite_ the same now share the same component.
Also Lightgeists because they also did this.
I'll be honest I think Flesh Spider would be better off with the
"Regenerator" component instead but that would be a balance change so I
can't do that right now.

The Tarantula "slower when not on webs" passive is also now an element.
This will make my third PR (to be opened when these two are merged)
easier.

Also I noticed we were using the same colour for spawning a particle in
a few places so I moved that hash into the colours define file.

ALSO while making this the linter identified that a shitload of procs
were passing `required_bodytype` to `heal_overall_damage` as if it was
`stamina` which probably caused some bugs. Don't know which though!


https://user-images.githubusercontent.com/7483112/217679050-b728ee98-3ba1-4663-bb6b-75295d5f9a6a.mp4

## Why It's Good For The Game

Reduces amount of duplicated code, making it easier to maintain.
Elements can be reused for other things later, like the infuser?

## Changelog

🆑
refactor: Spider healing abilities have been refactored to reuse the
same code rather than reimplement it across two different mobs, it
should work the same as it used to. This is also used by Lightgeists.
fix: Mob biotype on `heal_overall_damage` should be applied more
consistently. This might mean that some things which were previously
healing prosthetic limbs have stopped doing that.
/🆑
2023-02-10 12:40:31 -07:00
SuperSlayer
ea2afe79cc Fixes reverse revolver name (#73315)
## About The Pull Request

Reverse revolver is now named "Syndicate Revolver", same as the normall
syndie revolver.

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

## Why It's Good For The Game

Fix

## Changelog
🆑
fix: Fixes reverse revolver name being different from syndicate revolver
name
/🆑
2023-02-10 12:33:53 -07:00
jimmyl
3f61c4c2cd Rebuilds Luxury Shuttle (mostly), makes it emag-only (#72940)
## About The Pull Request
![2023 02 07-06 49
54](https://user-images.githubusercontent.com/70376633/217159751-790e6ded-8525-4d13-a5b5-6a3d8076a00e.png)
Changes the really goofy old lux shuttle to a cooler layout with some
additions to make it a luxury and not just
"anti-poor-people protection + food"

Shuttle was made bigger to make it less cramped for the luxury class,
pool was moved to its own room, added an arcade
and a bar corner, has real lasers to shoot poors with (20c each shot),
has fire extinguishers now
Adds a new preopen variant of hardened shutters
Adds a paywall pin subtype for the luxury shuttle, and a laser gun
subtype

Made emag-only at a price of 10000 credits
## Why It's Good For The Game

The old luxury shuttle looked REALLY awful with its pool, was pretty
cramped even in the luxury section and BARELY resembled a luxury..
This luxury shuttle provides luxuries such as a less poorly designed
pool, more space for legs, arcade, to make it resemble a luxury unlike
the old one

## Changelog
🆑
add: Luxury Shuttle is now bigger, and less ugly! Poor people still get
it rough though...
/🆑
2023-02-07 22:59:47 -07:00
Comxy
7e41cd3c0b Netherworld Mobs Refractor (#73086)
## About The Pull Request

This PR refactors netherworld mobs into basic mobs as best as possible.
Also makes some of them run faster when they are getting damaged or deal
more damage. Now the mobs might be able to keep up a little with the
players.
## Why It's Good For The Game

Makes the mobs have better movement and more dynamic movement. Makes the
quality of these mobs better.
## Changelog
🆑
add: Added new damage buffs for netherworld mobs
refactor: Refactors netherworld mobs into basic mobs
/🆑
2023-02-05 12:42:07 -07:00
John Willard
c097f167b1 Completely removes do_mob and do_after_mob (#73117)
## About The Pull Request

This is a remake of #70242

Replaces all instances of ``do_mob`` and ``do_after_mob`` with
``do_after``.

## Why It's Good For The Game

All 3 of these are just copy pastes of eachother but some miss some
features (like do_after not checking for target loc change, which helps
towards fixing https://github.com/tgstation/tgstation/issues/66874
though it doesn't because mechs are setting ``do_after`` on the mob in
the mech) and signals only being used on ``do_after``.

## Changelog

🆑
fix: Mechs should now cancel out of drilling when they move.
/🆑
2023-02-02 21:17:20 +00:00
NamelessFairy
cdf3970bf0 The toy crossbow nolonger floats nearby your hand when you hold it. (#73140)
## About The Pull Request

The toy crossbow had its inhand dimensions set incorrectly to 64 causing
the inhand sprites to be offset incorrectly, I've set them to 32.
## Why It's Good For The Game

Bugfix.
## Changelog
🆑
fix: Toy crossbows have had their offset fixed and will now correctly
display in your hand.
/🆑
2023-02-02 15:40:22 +01:00
Profakos
995a41654d Clarifies that TRAC bullets are not teleporter compatible (#73141)
## About The Pull Request

The detective's TRAC bullets embeds tracking implants into people. This
implants works similarly to the injectable tracking implant, such as
with the Prisoner Console or the Bluespace Locator. However, it has
`allow_teleport` set to false, preventing it from being used on the
teleporter. This has not been communicated in game, unless if you take
out the implant from whoever you shot, and stuck it inside the implanter
pad to read its in detail description.

This PR updates the ammo box and the design datum's description, to make
this clearer.

## Why It's Good For The Game

Closes #73121 , if a future detective examines the box, they will know
not to walk into the teleporter room to set up an ambush.

## Changelog
 

🆑
spellcheck: Clarifies that TRAC bullets are not teleporter compatible
/🆑
2023-02-02 15:40:02 +01:00
Bloop
0d3c71aeb2 Fixes an edge case where you can get incurable plasma damage, & fixes healing sources that don't have biotype restrictions not working if the mob doesn't have the MOB_ORGANIC biotype (#73017)
## About The Pull Request

Fixes #72962

The plasma river applies toxins damage to a mob as it transforms
individual limbs into plasmaman ones.
Once all limbs have been transformed, the mob's species changes to
plasmaman.

This currently leads to incurable toxin damage as antitoxin drugs do not
work on plasmamen. Made it so that upon transforming fully, the toxin
damage is cleared.

Also fixed an issue where healing sources that do not have a
required_biotype parameter (e.g. `adjustToxLoss(-5)` vs
`adjustToxLoss(-5, required biotype=whatever)`) will not work on mobs
that do not have the `MOB_ORGANIC` biotype (e.g. plasmamen) due to it
defaulting to `MOB_ORGANIC`. For now those use the `forced` param to
accomplish this.

## Why It's Good For The Game

Incurable damage is no good.

## Changelog

🆑
fix: fixed getting incurable tox damage when fully transformed into a
plasmaman via plasma rivers
fix: fixed rod of asclepius/medibeam etc not being able to heal tox
damage despite not having biotype restrictions
/🆑
2023-02-01 17:23:46 +01:00
SuperSlayer
9c6de54268 Fixes swapped reverse revolver sprites (#72662)
## About The Pull Request

Fixes https://github.com/tgstation/tgstation/issues/72651 by changing
reverse revolver sprite to "revolversyndie"

## Why It's Good For The Game

Fixes an issue

## Changelog
🆑
fix: Fixes reverse revolver sprite being swapped to normal revolver
sprite
/🆑
2023-01-19 17:09:25 -08:00
Fikou
519bf69869 Dynamic Human Icon Generation For Simple/Basic Mobs (& Cardboard Cutouts) (#72517)
## About The Pull Request
revive of #68760
this time a proc, not an element
this time supports cardboard cutouts
this time supports mob corpses

![image](https://user-images.githubusercontent.com/23585223/211064291-81070650-189f-4afa-8116-81b687e3ea35.png)

## Why It's Good For The Game
prevents these icons ever being outdated, they'll always look what they
are supposed to, saves spriting work

## Changelog
🆑 Fikou, a hood by Viro
refactor: humanoid mobs and cardboard cutouts automatically generate
their sprites, they no longer will be outdated
/🆑

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2023-01-18 20:04:10 +00:00
Jeremiah
872e64fb05 Adds spaces around logical operators (#72603)
## About The Pull Request
Part of a prior PR that was closed (#72562). This version does not add
the check in CI.
## Why It's Good For The Game
The work is already done, so I figured why not.
## Changelog
N/A Nothing player facing

Co-authored-by: Jeremiah Snow <jlsnow301@pm.me>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-01-16 16:56:35 -08:00
Stonetear
d8350d7a87 Documents bolt_types and fixes Mosin Nagant Sprite (#72448)
## About The Pull Request
For an unknown period of time, `/obj/item/gun/ballistic` used the wrong
type of sprite for it's `bolt_type`, so anyone trying to make a new gun
and using it as an example wouldn't be able to make it work. Being an
abstract item, it used `BOLT_TYPE_STANDARD` when it had a
`BOLT_TYPE_LOCKING` icon state.

If you spawn it in and look at it, it looks like this.

![image](https://user-images.githubusercontent.com/89315023/210435339-05fdf022-94a2-49d4-98c0-c2155ab604a7.png)
But if you VV `bolt_bolt` type to `4` ( `BOLT_TYPE_LOCKING`), it looks
correct.

![image](https://user-images.githubusercontent.com/89315023/210436016-59b6eddc-cd6c-4e55-87f4-5791a8c94a1f.png)
Same with the Mosin, which now has a visible bolt, so you can tell if
it's open or not now!

![bolt](https://user-images.githubusercontent.com/89315023/210435912-31b24d7e-882c-49a7-bc81-9d681fe5d851.png)

So basically:
- Changes the Mosin to use the correct bolt type, `BOLT_TYPE_LOCKING`.
- Makes the abstract `/obj/item/gun/ballistic` use the correct type of
sprite. It comes in designer _Debug Purple checkerboard_.

![image](https://user-images.githubusercontent.com/89315023/210437549-3babc107-840f-4fce-9fe8-7913d50d6075.png)
- Adds `bolt_types_explained.md`. As the name implies, this explains in
detail what all the bolt types do, and what you should name the
iconstates for them when you're trying to make a new gun.
- Various comment changes in `ballistic.dm`, and the `combat.dm`
defines.
- De-souls the `boolets` variable name to `bullets` in the ammo counter
proc
- Adds a new parameter `handle_modifications = TRUE` to `sawoff()` When
set to false, it allows you to still use the sawing logic, but bypasses
all the snowflake code for variable changes, and only sets `sawn_off` to
true. This is helpful if you want to allow a weapon to be sawed off, but
don't want your icon forcibly set to `lefthand_file =
'icons/mob/inhands/weapons/guns_lefthand.dmi` or the weight class set to
normal.



## Why It's Good For The Game

Documentation is always good I hear. Also if you're trying to make a new
gun or fix a sprite issue, now you can look at the base type to
understand how it works!

## Changelog
🆑
fix: Mosin Nagant bolt sprites are now visible. It's like 5 pixels so
not a surprise nobody noticed for years.
/🆑
2023-01-14 17:59:05 +01:00
LemonInTheDark
858da9f19a Optimizes explosions (very slightly) (#71763)
## About The Pull Request

We do two major things here.
First, instead of having every turf need to ask all the turfs in "front"
of it for its blast resistance, we have blast resistance carry back in a
cache, so they only need to ask the one directly in front of them.
Much faster, such wow

The other thing we do is totally remove the idea of "building" a turf's
explosion resistance. Instead, a turf's full resistance is stored on it
at all times.
We use an element to manage objects that want to block explosives, and
that's it simple as.
As an optimization, turfs handle block differently, using a system where
we imply that a turf's own block is just the initial of their
explosive_resistance, unless proven otherwise
This also saves a significant amount of time

To be honest with you, I did this mostly cause I wanted to well make
explosions faster
This doesn't really fufil that. They are faster, but not by much
The bulk of explosion cost comes from actually exploding things, rather
then figuring out what/how to delete.
This code is much faster for larger blastwave sizes, because calculating
protection is constant.

We save maybe 60% of propogate_blastwave, but unfortunately
propogate_blastwave for one maxcap on the top left of icebox's chapel is
only 28ms, so while 11ms is good, it's not everything I could want when
the cost of explosion/fire is 555ms.

I'm happy about it still tho, because doing things like this means I can
expand on how explosive blocking works without needing to make things
seriously expensive in here.
Also it's faster for meme admin explosions and mega burgers

## Why It's Good For The Game

Speeds up explosives slightly, opens the door to better blast resistance
projection
2023-01-09 22:29:03 -08:00
ShizCalev
69337dffba Fixes dual wielding bypassing wizard checks (#72431)
Fixes #72428

🆑 ShizCalev
fix: Non-magic inclined mobs will no longer fire staffs while duel
wielding.
/🆑
2023-01-06 17:52:40 -08:00
tattle
1861746e8c Fix a runtime in logging (#72493)
Turns out 72362 created a runtime that put the logs for getting hit by
a projectile into LOG_GAME instead of LOG_ATTACK because LOG_VICTIM
isn't recognized by log_message.
2023-01-06 14:17:56 -06:00
Mothblocks
f54dcda1c0 afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item (#72320)
Necessary for #72292 to work effectively, and probably not very useful
out of that context. Split out of its own PR because this is long and
boring.

I want to make sure that we're catching actual mistakes there, and not
just experiencing side effects of how shitty the attack chain is.
2023-01-04 21:10:41 -08:00
Iamgoofball
a83388fc2d Adds an engraving to the staff of healing regarding proper healing beam usage. (#72403)
🆑
fix: Adds an engraving to the staff of healing regarding proper healing
beam usage.
/🆑

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-01-03 21:56:03 +00:00
Jeremiah
97db4ecca4 Adds the Cursed quirk (#72317)
## About The Pull Request
Adds a silly negative quirk inspired by fallout's bloody mess.

Bad luck interactions for
- Microwaving
- Cigarette coupons
- Russian roulette
- Vending machines
- Ledges
- Slipping

All of which have a chance to kill you, which, by the way, causes you to
**delimb and explode**.

This changes the admin smite as well since it's all the omen component.
Giving permanent omens will mean the player will gib on death, which is
super probable given the insane base damage from bonking your head.
Permanent omen smites are basically dooming someone to die of natural
causes.

<details>
<summary>GIFs</summary>


![dreamseeker_ZE6hyRdYet](https://user-images.githubusercontent.com/42397676/209779120-f7d76862-91e2-4366-a49d-e93366d96faf.gif)

updated: Death no longer fully gibs (carbons)

![dreamseeker_8S8r6B6gMM](https://user-images.githubusercontent.com/42397676/209874302-2e24f581-ffda-42e7-9794-dbe0fff2ff5b.gif)

Panic at seeing bad omen coupons

![dreamseeker_tykHbePTSS](https://user-images.githubusercontent.com/42397676/209887936-5d7f5edf-6fa2-41c7-8503-37432b49c7c0.gif)


![3](https://user-images.githubusercontent.com/42397676/209885388-90523f2c-531a-4928-96b2-c902552cbbbc.png)
</details>

## Why It's Good For The Game
Adds a bit of physical comedy and difficulty for players that want it.
## Changelog
🆑
add: Hope you saved for a rainy day: Added the 'Cursed' quirk which
causes excessive slippage and... other difficulties.
/🆑

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
2023-01-03 13:18:24 -08:00
MrMelbert
acb96fee1d Refactors memories to be less painful to add and apply, moves memory detail / text to memory subtypes. Adds some new memories to demonstrate. (#72110)
## About The Pull Request

So, a huge issue with memories and - what I personally believe is the
reason why not many have been added since their inception is - they're
very annoying to add!

Normally, adding subtypes of stuff like traumas or hallucinations are as
easy as doing just that, adding a subtype.

But memories used this factory argument passing method combined with
holding all their strings in a JSON file which made it just frustrating
to add, debug, or just mess with.

It also made it much harder to organize new memories keep it clean for
stuff like downstreams.

So I refactored it. Memories are now handled on a subtype by subtype
basis, instead of all memories being a `/datum/memory`.

Any variety of arguments can be passed into memories like addcomponent
(KWARGS) so each subtype can have their own `new` parameters.

This makes it much much easier to add a new memory. All you need to do
is make your subtype and add it somewhere. Don't need to mess with jsons
or defines or anything.

To demonstrate this, I added a few memories. Some existing memories had
their story values tweak to compensate.

## Why It's Good For The Game

Makes it way simpler to add new memories. Maybe we'll get some more fun
ones now?

## Changelog

🆑 Melbert
add: Roundstart captains will now memorize the code to the spare ID
safe.
add: Traitors will now memorize the location and code to their uplink.
add: Heads of staff winning a revolution will now get a memory of their
success.
add: Heads of staff and head revolutionaries who lose their respective
sides of the revolution also get a memory of their failure.
add: Completing a ritual of knowledge as a heretic grants you a quality
memory.
add: Successfully defusing a bomb now grants you a cool memory. Failing
it will also grant you a memory, though you will likely not be alive to
see it.
add: Planting bombs now increase their memory quality depending on how
cool the bomb is.
refactor: Memories have been refactored to be much easier to add.
/🆑
2023-01-03 11:23:31 -08:00
tattle
43d3fb9916 Projectile hits on mobs are logged globally (#72362)
## About The Pull Request
The log_message for projectile victims wasn't being logged globally. It
wasn't being logged elsewhere (for cannons at least, presumably for any
non-vehicle non-mob firer), so it should be logged globally here.

## Why It's Good For The Game
Fixes #72336

## Changelog
🆑 Tattle
fix: projectile hits on mobs are logged globally
/🆑

Co-authored-by: tattle <article.disaster@gmail.com>
2022-12-31 21:31:12 -08:00
Jacquerel
2917880138 Clean up something else which was failing CI (#72299)
## About The Pull Request

Well my last PR passed the CI but everything else is still failing and I
want a little tick next to my pull requests.
So I guess I'm whacking moles until everything that 515 doesn't know how
to dispose of is disposed of?

I'll be honest I don't know what change makes this a requirement when it
wasn't before but it seems like a logical thing to be doing.
Unfortunately running this test locally doesn't produce a failure for me
so my only solution is to keep getting the CI to do it and hope that it
doesn't report a false positive again.

## Why It's Good For The Game


![image](https://user-images.githubusercontent.com/7483112/209726114-4a6da427-f82b-433b-a7ef-39591dc72e7b.png)

## Changelog

Not player facing
2022-12-27 23:49:06 +00:00
Fikou
baab4a3145 fixes neurotoxin newtonian movement and alien hud hand icons (#72269)
neurotoxin now properly moves u
also the alien spit shot by simplemob xenos is now a subtype of normal
because it was fucking stupid
also the nt hud pr broke the hud hand icons so fixes that
2022-12-27 16:45:46 -06:00
Jacquerel
32277e51cf [no GBP] Carp no longer die in space or break CI (#72266)
## About The Pull Request

See title
Apparently I didn't notice that "default atmospheric tolerance" was
merged while my carp refactor was open, so on live they're not
spaceproof and all die shortly after spawning

Also additionally two things were failing CI tests due to hard deletions
and now don't

## Why It's Good For The Game

They probably shouldn't do that

## Changelog

🆑
fix: Space Carp can now breathe in space
/🆑
2022-12-27 21:01:54 +01:00
Mothblocks
0235cfb078 Experiment with holding hard references to objects being qdeleted in 515 (saves 1.1+ seconds on init times, more on prod) (#72033)
## About The Pull Request
Adds `EXPERIMENT_515_QDEL_HARD_REFERENCE`, which will queue to the GC
subsystem using hard references rather than `\ref`. This is only
possible in 515 because of the new `refcount` proc. `\ref` is very very
slow and has some nasty knock on effects, so removing its usages where
possible is good.

This is an explicit opt in define because I want to give us the ability
to test 515 on live while only testing 515 itself, not our experimental
changes. We have a few more of these we want to do so I made a separate
file for them. They're auto-defined in unit tests so we see them with
the alternate test runner. In a perfect world we'd test both on and off,
but eh.

Closes https://github.com/tgstation/dev-cycles-initiative/issues/10
2022-12-27 08:04:49 +00:00
MrMelbert
0d4b56435b Converts drowsy and eye blur to status effects, striking yet another two carbon level status vars (#71950)
## About The Pull Request

You know the deal by now.

- Drowsiness is now tracked via status effect.
- Eye blue is now tracked via status effect.

In converting these over, cleaned up a bit of code relating to some
other effects. Attempts to unify behavior between some of them, namely
certain biotypes or mob types shouldn't be experiencing certain effects.

## Why It's Good For The Game

More stuff moved to status effects, slightly more cleaner and better to
work with code. Allows for all mobs that can sleep to be able to get
drowsy, too.

## Changelog

🆑 Melbert
refactor: Drowsiness and Blurred Eyes are now tracked via status effect.
/🆑
2022-12-26 19:58:21 +01:00
Jacquerel
b174af7661 Basic Mob Carp Part VIII: Basic Mob Carp (#72073)
## About The Pull Request

Wow we're finally here. This turns carp into Basic Mobs instead of
Simple Animals.
They use a variety of behaviours added in previous PRs to act in a
marginally more interesting way than they used to.
But don't worry there's still 2 or 3 PRs to follow this one until I'm
done with space fish.

Changes in this PR:
Carp will try to run away if they get below 50% health, to make use of
their "regenerate if not attacked" component.
Magicarp have different targetting behaviour for spells depending on
their spell;
- Ressurecting Carp will try to ressurect allied mobs.
- Animating Carp will try to animate nearby objects.
- Door-creating Carp will try to turn nearby walls into doors.

You can order Magicarp to cast their spell on something if you happen to
manage to tame one.
The eating element now has support for "getting hurt" when you eat
something. Carp eating can rings and hating it was too soulful not to
continue supporting.

## Why It's Good For The Game

Carp are iconic beasts and I think they should be more interesting.
Also we just want to turn mobs into basic mobs anyway.

## Changelog

🆑
add: Carp will now run away if their health gets low, meaning they may
have a chance to regenerate.
add: Lia will now fight back if attacked instead of letting herself get
killed, watch out!
balance: Magicarp will now aim their spells more intelligently.
add: Tame Magicarp can be ordered to use their spells on things.
refactor: Carp are now "Basic Mobs" instead of "Simple Mobs"
fix: Dehydrated carp no longer give you a bad feeling when they're your
friend and a good feeling when they're going to attack you.
balance: Tamed carp are now friendly only to their tamer rather than
their whole faction, which should make dehydrated carp more active.
Order them to stay or follow you if you want them to behave around your
friends.
/🆑
2022-12-25 18:24:18 -08:00
Andrew
0818d6ae4c Crafting/Cooking menu update (#71779)
## About The Pull Request

Updated crafting menu, adding a lot of new functions and recipes that
were not in the crafting menu before.

<img alt="cult"
src="https://user-images.githubusercontent.com/3625094/206009533-aec3a1dd-cbe5-45eb-8515-1b75fabb65c5.PNG">

<img alt="nH77dLyyGx"
src="https://user-images.githubusercontent.com/3625094/206009786-b6706f70-0599-40bf-b051-8f499de43abd.png">


![image](https://user-images.githubusercontent.com/3625094/206623881-12d8abfc-de5e-458e-a01c-3daac8dbe9bd.png)


https://user-images.githubusercontent.com/3625094/206009841-738e4a03-0660-45b7-8d83-15eeb6501967.mp4

## Why It's Good For The Game

It is easier to use, and it has a lot of recipes that were spread
throughout the game, some of which weren't even on the wiki.
Crafting and cooking now count about 1200 recipes in total, including
conditionally available ones.

## Changelog

🆑
qol: Rewrote the crafting/cooking menu UI
qol: Split crafting and cooking menus in two different menus
qol: Crafting is no longer blocking the entire UI, only the "Make"
buttons are disabled
qol: Added stack crafting recipes to the crafting menu
qol: Added cooking recipes that were absent in the crafting menu before
(tool recipes, machine recipes, reactions)
qol: Added option to search recipes by title
qol: Added option to filter recipes by required materials/ingredients
qol: Added food types to the cooking menu, highlighting diet of your
species (liked, disliked foods)
qol: Added total nutrition value of the result to the cooking menu
qol: Added option to filter cooking recipes by the food type of the
resulting food
qol: Added "Can make" category that lists all currently craftable
recipes throughout all categories
refactor: changed categories and reshuffled some items in them
code: Reagents now have default container to get an icon from the
reagent datum
code: Objects now have `desc_controls` var for OOC information about
mouse controls that are visible on examine, but not in the description
fix: Fixed alignment on many food icons
fix: Fixed missing icon for beef stroganoff
/🆑

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2022-12-25 12:27:49 -08:00
Sol N
7687a28e7c refreshes syndi-kits and syndicate surplus crates, introduces shared limited stock (#71869)
## About The Pull Request

After all, the Syndicate loves a good throwback.


![C6O47fPhAB](https://user-images.githubusercontent.com/116288367/207737104-3d24574f-02e0-433d-8ea7-6825ca4cb970.png)

This PR does a few things with the goal of reimplementing and
revitalizing syndicate traitor kits and the syndicate surplus crate.
Of note is that I have added in a way for limited stock items to share
their limited stock.

Following maintainer guidance the syndicate traitor kits have increased
in price and as a result some of the lower value ones have been
adjusted. I've given all active bundles current TC costs per item
knowing full well they will be inaccurate eventually.

<details>
  <summary>Changes as a result of my audit of syndikits</summary>
    
### UNCHANGED
Recon, Spai, Stealthy, Screwed, Sniper, Nukie Meta, Implants
Mad Scientist, Bees

Lord Singuloth is also unchanged and disabled, I think that it should
turn into a new supermatter themed kit maybe. outside of current scope.

### Gun Kit
Replaced emag with doorjack and gave it a chameleon holster, literally
moved 1 tc elsewhere

### Murderer
replaced emag again, no additions its a lot of tc and Just Good

### Hacker
added doorjack, otherwise unchanged

### Sabotage
no changes other than adding in extra bombs it didnt have

### James Bond
gave him some gadgets with the freedom implant, emp flashlight, and one
x4. also a cyanide pill and deck of cards for fun

### Ninja
Added in miner Jump Boots, smoke spell, and doorjack. dont just want it
to be space ninja

### Dark Lord
Added in new lightning bolt spell granter and made the desword default
to red. probably overbudget.

### White Whale
dehydrated carp added so you can ride it alongside the ones you grenade
out. hard to imagine changing this

### Mr Freeze
changed temperature gun to be cryo only so that i could give him the
cryo thermal pistol. cold attacks only.

### 2006 Traitor
doorjack.

</details> 

tl;dr theyre all about 30 tc worth of shit more or less some are more
but thats what rarity should be for
you can only buy from one type of syndicrate per round


![QOF1WO7CC6](https://user-images.githubusercontent.com/116288367/207739417-00ae6b81-b6aa-4774-a4bb-f2d880988ff4.gif)

Next up is the return of the surplus crate. 
Crate is generated, gives you gear **based on your progression at the
time of buying the crate**, you can use it all at the start and get some
chameleon kits and not a lot of dangerous weapons or wait till later.
I've changed the weight on some items here and there and given weight to
role and species locked items, though I will admit that latter is
unimportant because I set moth lanterns to be unable to appear in these
two crates.


![dreamseeker_t8abXysKqK](https://user-images.githubusercontent.com/116288367/206761978-96e2a51e-f9a5-48e4-a863-a9198fa15ea2.gif)

But who cares about that your eyes instantly went to the United Surplus
Crate and the United Surplus Key lets be honest.

The united surplus crate is 80 TC worth of uplink items relative to your
current progression when you purchase it and gives you a locked box. It
**will explode if you try to break it** so be careful with it. It gives
you 80 TC and costs 20 TC because it is impossible to open without key.
The rub of course is that the Syndicate forbids agents from buying more
than one surplus item of any kind, you need to find another traitor and
make them buy you a key to open your box. Or I guess you can share the
box?


![dreamseeker_ts0AZeiyfy](https://user-images.githubusercontent.com/116288367/207740388-3f688bba-5d71-48d2-8079-671bbed7e54e.gif)

Regardless, if the crate is opened with any other means it doesn't spawn
its contents, you need 2 traitor uplinks.
Both of these items have a 30 minute timer because you don't want a
crate that has 5 emp flashlights in it. You at least want one energy
sword.

I did a lot of code shit and changed various things to be proc based to
allow for more editing and interjection of things, as I wrote in code
comments making a crate thats locked to a specific set of progression
just means changing the proc that generates a list of valid uplink items
to check items' progression values to a specified value instead of your
characters progression.

Ok I think that goes over everything more or less????

## Why It's Good For The Game

I've heard that people liked these and I think they are quite fun, being
able to go from "i dunno what to do as a traitor" to "ah, of course, I
will become the Bombler" is a fun thing to be able to have, and people
like to get a bunch of random shit in the mail. Some of it even feels
free!!!!!!!!!!!!!!!!!!! Brain points go up!!!

The division of procs allows for more creativity with this system than
existed before as well as other possibilities for interacting with the
uplink handler in funny ways.

## Changelog

🆑
add: the syndicate is once again distributing syndi-kits, some now with
new technology
add: a fresh batch of syndicate surplus crates have been sent out,
though they seem a bit lighter than before
add: in an effort to encourage cooperation, a traitor can now purchase
either the new United Surplus Syndicate Crate or its key, but not both
add: lightning bolt book granter for wizard event and one syndie-kit
bundle
add: temperature gun that only makes things colder for one syndie-kit
bundle
code: it is now possible to have uplink items share limited stock
bal: role-restricted items no longer can be delivered by the stray
syndicate drop pod event
/🆑
2022-12-18 12:23:32 +00:00
Imaginos16
0ccd96e910 Revolver Resprites: Imaginos Edition (#72008)
## About The Pull Request
Self Explanatory! This PR resprites every revolver in the game and adds
a new variety: The Syndicate Revolver!

![image](https://user-images.githubusercontent.com/77556824/207713437-c4908250-be0b-47bc-9991-20dd106ebdd3.png)

This also takes into account detective revolvers and their reskins!

![image](https://user-images.githubusercontent.com/77556824/207713493-bcc384c6-fc9a-4a98-9199-acfe937d6d9b.png)

The Syndicate Revolver itself is a cosmetic change of the regular .357
revolver, which can still be found via gatfruit, or Garbage Day. The
Syndicate Revolver can be obtained via the battlecruiser, or any uplink.

Special thanks to @axietheaxolotl for making the Syndicate Revolver
sprite.
## Why It's Good For The Game
The previous sprites were either too old, or looked like plastic toys,
and desperately needed a visual overhaul. This PR addresses that issue
in a very direct manner!
## Changelog
🆑 PositiveEntropy, AxieTheAxolotl
imageadd: Resprites every revolver!
imageadd: Adds the Syndicate Revolver, a visually new, but mechanically
identical .357 revolver to uplinks!
/🆑

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-12-16 01:00:33 +00:00
necromanceranne
cdabfade59 The Indestructible objective energy guns protect their contents, preventing them from bricking (#71976)
## About The Pull Request

Stops the two objective firearms from having their contents destroyed by
bombs. This isn't important for any other firearms, as they're all
destroyed by those explosions rather than surviving them, only to have
their contents deleted instead.

## Why It's Good For The Game

An everpresent consequence of oversimulation in firearms is that they're
prone to stupid shit like this happening. Since you can't replace the
power cell in these weapons, it just bricks the guns.

You can certainly replace the firing pin in the gun if that's destroyed,
but I figured it would be better to just wholesale make this no longer a
problem for these weapons.

## Changelog
🆑
fix: Stops strong enough explosions from bricking the objective energy
guns permanently.
/🆑
2022-12-14 08:53:27 +01:00
ShizCalev
ae8ed395e1 Changes the missing food icon test to cover ALL /obj's (#71908)
Might as well cover everyyyyyyyyything. :)

Fixes https://github.com/tgstation/tgstation/issues/71953
Fixes https://github.com/tgstation/tgstation/issues/71983

🆑 ShizCalev
code: We now unit test all /obj's for missing icons. :)
/🆑


todo: Fix the fucked up icons.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-12-13 17:51:40 -08:00
Fikou
f9445e027f makes beams better (plus small kinesis tweaks) (#71768)
## About The Pull Request
kinesis now waits for its first inputs to be given before firing, it
should no longer pull the item to the center of the screen
the kinesis overlay now is emissive
beam emissivity now works (emissive appearances no longer reset
transform)
beams now have a variable whether or not they should be emissive,
because of stuff like vines or chains from the meat hook
fixes https://github.com/tgstation/tgstation/issues/71640

## Why It's Good For The Game
neat visual stuff

## Changelog
🆑
fix: fixes beam glow in the dark effects
fix: kinesis now doesnt pull the item to the centre of the screen when
first used
fix: physical beams (like vines or meat hook chain) no longer glow in
the dark
/🆑
2022-12-09 15:58:58 -05:00