Commit Graph

423 Commits

Author SHA1 Message Date
Cheshify b9fa1bc8f4 The Laser Musket (2023) (Settlement Helper Edition) (#76231)
## About The Pull Request
This adds a craftable laser musket to the game. It's slow and unwieldy,
but consistent! I'd be happy to tweak the numbers if it's too good/bad.

This PR also adds an independent militia ERT, who travels the spinward
sector to help defend stations!

TO DO LIST:

- [x] Finish worn sprites
- [x] Add a crafting recipe on par with the pipegun
- [x] Add bayonets
- [x] Separate charging into two stages and REDO THE AUDIO AAAA
- [x] Clean up code (Needs review, totally)

Scrapped:

- Possibly add overcharge mechanic (This is just beyond my skill level
for now)
- Find a unique sound for the weapon firing (We have a unique
projectile, and I can't a sound that fits more than the laser gun one)


![image](https://github.com/tgstation/tgstation/assets/73589390/40ee8f1d-5c1f-4638-af70-ff1215b85c9e)

![1211
(1)](https://github.com/tgstation/tgstation/assets/73589390/1a4b9856-a878-4500-96ce-4fd83587fa81)

![musket (2) (2)
(2)](https://github.com/tgstation/tgstation/assets/73589390/2ebdc2ed-6f78-4761-9deb-a1b2d337a02d)

![aaaa1
(1)](https://github.com/tgstation/tgstation/assets/73589390/6076edd3-97c9-41ec-a67a-90717f97eab0)


![image](https://github.com/tgstation/tgstation/assets/73589390/c47e44bd-3f4b-44b3-aaa5-9b1c25a72cad)

Inhands by RedSentry27
Suit sprite by Kinnebian
Prime Laser Musket sprites by RedSentry27

Balance Considerations (ew):
25 damage (30 on prime)
Normal wound
40 Stamina damage (45 on prime)
Weak to armour (prime not weak to armor)
2 second charge time, needs to be charged twice
No overcharge
Requires two hands to hold (like a chainsaw)

Crafting Recipe:
One rifle stock
Fifteen Cable Coils
Four Iron Rods
One micro laser
One capacitor
One pair of prescription glasses
One drinking glass
Craft for 10 seconds with a wirecutter and screwdriver

Prime crafting recipe: (REQUIRES READING MAINTENANCE LOOT: "journal of a
space ranger")
One laser musket
Fifteen cable coils
Five silver
One water recycler
Fifteen units of nuka cola
Craft for 30 seconds with a screwdriver while wearing cowboy boots and a
cowboy hat
## Why It's Good For The Game
The idea of assistants and revs forming firing lines in the halls to
shoot eachother sounds hilarious. Besides, we need a parallel to the
pipegun, and this is the funniest way to do so.
## Changelog
🆑 Cheshify, Kinnebian, and RedSentry27
add: Maintenance engineers have sent out blueprints across the sector
for a new laser musket.
admin: A new energy-gun toting ERT is available to send to the crew.

---------

Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-06-30 19:54:33 +00:00
Ghom 6b007f758b Replaces ammo_casing/caseless and bullet/reusable with elements. (#76335)
The reusable and caseless types only purposes are the behaviors of
deleting the casing when fired and spawning a new object when the
projectile ultimately reaches its maximum range or hits a target, both
of which are easily "elementizable". Also, I don't like those barely
filled sub-folders in the projectile module, and the fact we've
divergent reusable and single use arrow types.
2023-06-28 01:14:59 +00:00
ynot01 27650dac1d Prevents desert eagles from loading sniper rounds (and vice versa) (#75382)
## About The Pull Request

This splits CALIBER_50 into CALIBER_50BMG and CALIBER_50AE, setting the
sniper rifle to use the former and the deagle to use the latter.
## Why It's Good For The Game

Prevents each of these weapons from loading calibers that they are not
intended to.

Recorded from yogs:


![teS5bum](https://github.com/tgstation/tgstation/assets/28408322/856a8af0-2fd4-40a2-b473-0bea160028e4)
## Changelog
🆑
fix: Desert Eagles can no longer load .50 BMG sniper rifle rounds and
vice versa.
/🆑
2023-05-13 00:04:07 -07:00
oranges 7317025857 Buffs Lasers (#75329)
## About The Pull Request
This increases laser wound chance, increases the damage and also makes
them use less energy.

## Why It's Good For The Game
Lasers cannot reload so they're not as convenient as a gun, so this will
maybe make them more cool, honestly I just want to try this to see what
happens.

## Changelog
🆑 oranges
balance: increased laser damage, decreased energy cost and increased
wound chance
/🆑
2023-05-11 10:39:28 -07:00
ArcaneMusic f2fd69a49a Minerals have been refactored so costs and minerals in items are now in terms of mineral defines. (#75052)
Ladies, Gentlemen, Gamers. You're probably wondering why I've called you
all here (through the automatic reviewer request system). So, mineral
balance! Mineral balance is less a balance and more of a nervous white
dude juggling spinning plates on a high-wire on his first day. The fact
it hasn't failed after going on this long is a miracle in and of itself.

This PR does not change mineral balance. What this does is moves over
every individual cost, both in crafting recipes attached to an object
over to a define based system. We have 3 defines:

`sheet_material_amount=2000` . Stock standard mineral sheet. This being
our central mineral unit, this is used for all costs 2000+.
`half_sheet_material_amount=1000` . Same as above, but using iron rods
as our inbetween for costs of 1000-1999.
`small_material_amount=100` . This hits 1-999. This covers... a
startlingly large amount of the codebase. It's feast or famine out here
in terms of mineral costs as a result, items are either sheets upon
sheets, or some fraction of small mats.

Shout out to riot darts for being the worst material cost in the game. I
will not elaborate.

Regardless, this has no functional change, but it sets the groundwork
for making future changes to material costs much, MUCH easier, and moves
over to a single, standardized set of units to help enforce coding
standards on new items, and will bring up lots of uncomfortable balance
questions down the line.

For now though, this serves as some rough boundaries on how items costs
are related, and will make adjusting these values easier going forward.

Except for foam darts.

I did round up foam darts.

Adjusting mineral balance on the macro scale will be as simple as
changing the aforementioned mineral defines, where the alternative is a
rats nest of magic number defines. ~~No seriously, 11.25 iron for a foam
dart are you kidding me what is the POINT WHY NOT JUST MAKE IT 11~~

Items individual numbers have not been adjusted yet, but we can
standardize how the conversation can be held and actually GET SOMEWHERE
on material balance as opposed to throwing our hands up or ignoring it
for another 10 years.
2023-05-03 14:44:51 +00:00
Thunder12345 461ef29f18 Bows no longer randomly become unusable (#75058)
## About The Pull Request

Fixes bows randomly becoming unusable.

On firing bows were leaving behind a reference to their casing in the
internal magazine. As arrows are technically caseless ammo there was no
way to remove this casing, and eventually it would turn into a null,
rendering the magazine unable to load any new arrows.

This is fixed by adding a check for whether the ammo is cased to all
ballistic guns in `process_fire()`. Caseless ammo has its casing removed
from the magazine's `stored_ammo` list to prevent it rotting away to a
null down the line.

While I was here renamed and autodocced the var `heavy_metal` which
appears to be exactly the var for having a casing that I needed.

## Why It's Good For The Game

Bows becoming randomly useless because of leftover vars is bad and
silly, and so are mystery meat vars with undescriptive names and no
autodoc.

## Changelog
🆑
fix: Bows will no longer randomly stop taking new arrows.
/🆑
2023-05-01 14:08:12 -06:00
rageguy505 6e1b38ec0a adds spent subtypes for some ammo and adds them to the waystation and the faceoff space ruins. (#74950)
## About The Pull Request
Adds spent subtypes for .357, .45 acp and buckshot.
Replaces live ammo with the spent subtype on the waystation and the
faceoff space ruins.
## Why It's Good For The Game
I talked with a map maker and he didn't intend for 60+ live .357 rounds
on his map.
I assumed its the same for the waystation.
## Changelog
🆑

fix: Replaced live ammo found that was unintended on the waystation and
the faceoff with spent subtypes.
/🆑
2023-04-27 19:26:18 +01:00
necromanceranne 997dac9616 Imports and Contraband: Different! Cargo crates without locks! MEAT! (#74490)
## About The Pull Request

### **Cargo Black Market goods should stay in cargo's hands**

#### New Cargo Console Category: Imports

This category is explicitly the non-departmental category beyond simply
having a Misc category. It is meant for material that nobody is meant to
be buying for their departments, and mostly for the odd-ball crates that
might show up. It also allows us to maintain contraband as exactly that;
contraband that the departments shouldn't have access too whatsoever. If
someone is buying from this category, they probably intend to be a
cheeky fuck.

<details>
  <summary>The New Changes</summary>

#### Baseline Imports

MEAT: MEAT (meat backpack you can eat)

<details>
  <summary>MEAT</summary>
  
![MEAT
MEAT](https://user-images.githubusercontent.com/40847847/229593459-f3c98abe-114b-43c1-a3e2-afc16b76c84f.png)
![MEAT MEAT MEAT
MEAT](https://user-images.githubusercontent.com/40847847/229593473-07a30781-a05e-4ca5-893b-778900cd2d1c.png)

</details>

Duct Spiders: They're adorable and cause a mess, but that doesn't stop
Nanotrasen from importing them from the Australicus sector to your
station!

Stack of 50 Bamboo Cuttings: Pretty expensive and kind of a premium.
Allows for those people looking to make bamboo decorations without
hoping botany exists, and are at least willing to pay. Also lets them
make horribly dangerous stuff with bamboo, of course.

A Single Sheet of Bananium: The problems this will cause I think speak
for themselves. (mostly due to a clown fruitlessly attempting to make
something actually disruptive while bankrupting cargo)

Natural Fish Bait: It isn't cheating, it's homemade. (Really good bait
but expensive and obviously drugs)

A dumpster...: A corpse in a dumpster, doesn't get more complicated than
that. Useful for corpse reasons.

Made using some code I borrowed from over here!
https://github.com/lizardqueenlexi/orbstation/pull/354

#### Contraband Imports

Foam Force Pistols: Same as it ever was with a price reduction. I
brought it down because riot darts are like 8 bullets a clip, and do
less damage than a disabler using riot darts. It feels like a sidegrade
weapon, and even if it technically is a ballistic weapon, it...isn't
that strong. I think this is pretty safe.

Definitely Not a Duct Spider: It's actually a giant spider in a box. If
you want to waste cargo's money while also sending them a mess to deal
with, this is the crate for you.

Russian Surplus Military Gear Crate: I took this opportunity to futz
with boltaction rifles. There are two kinds of mosin nagant you can get
in this crate. One of them is the good kind (no jamming). The other is
the shit kind (yes jamming), but you get more of them. You can get the
good ammo, or you can get the shit ammo. You'll have to pick through it
a lot more carefully to make sure you know which ones you've received.
Since this dilutes the pool even further, getting a good number of
mosins that aren't trash is even more expensive, and even if you do get
mosins at all, you might still only get the bad ammunition that doesn't
work against actual human threats as well. It also now cannot be
purchased through the security cargo supply console, and as to why they
could in the first place baffles me. Doesn't have a lock anymore
because...it's contraband? Who is locking this stuff?

**Side note: _You can make surplus 7.62 in the autolathe as well. It is
not very good except to fight fauna or naked assistants._**

**Side Side note: _I've killed off the shitty brand_new subtype and
brought peace once more to this land._**

#### Illegal Imports (Emag)

NULL_ENTRY: A journal that suggests how to make a...very interesting
weapon. The Regal Condor. Kind of an evolution on some other ideas I've
had over the years. This one is basically a secret weapon with a few
hurdles to jump through. Very lethal. Very expensive.

**Side note: _For reference, it's effectively 19 TC worth of gear to
make, but there does exist some methods to acquire this more cheaply if
you can get some bits and pieces from world spawns. Given it requires
you to get some pieces of equipment that might require additional
purchases of contraband, and getting into the captain's office to loot a
specific piece of clothing, the stakes more than make up for the
effectiveness._**

Smuggled WT-550 Autorifle Crate: This is basically the same, but you
might have noticed had you recently attempted, like me, to buy these
when you emagged them using a personal account and discovered a tragic
oversight. You couldn't, because they still needed armory access. This
removes that access, because you've already gone to the effort of
getting your hands on an illicit firearm through cargo, and if they
techs somehow miss the fact that you've purchased a WT-550...all the
better for you!

Smuggled WT-550 Ammo Crate: Includes AP and Incendiary!

**Side note: _You can get WT-550 ammo again via the Illegal Technology
node._**

Shocktrooper: Replaces the Special Ops crate. Contains a box of EMPs,
smoke grenades, a couple of gluon grenades and a couple of frag
grenades. Funsies.

Special Ops: The NEW Special Ops crate. Contains a chameleon mask,
jumpsuit and agent card. And a knife.

**Side note: _This is what appears in some cargo loan events._**

Refurbished Mosin Nagant Crate: The actual good mosin nagants. There are
6 of them. But they don't come with spare ammo. Hand them out to your
techs!
</details>

#### New Crates

- MEAT crate - Standard
- Duct Spider crate - Standard
- Giant Hostile Spider crate - Contraband
- 50 sheets of Bamboo crate - Standard
- A single sheet of bananium crate - Standard
- Natural (drugs) fish bait - Standard
- Dumpster with a corpse in it - Standard
- Shocktrooper crate (Grenades) - Emag
- Special Ops crate (Disguise) - Emag - Appears in some cargo loan
events
- Refurbished Mosin Nagant crate - Emag
- Regal Condor construction journal (NULL_ENTRY) - Emag

#### Changed Crates

- Foam Force Pistols (cheaper) - Contraband
- Russian Surplus Crate (less reliable, can't be bought by security
console) - Contraband
- WT-550 crate (more obtainable via personal accounts, thus
incriminating, not armory locked) - Emag
- WT-550 ammo (includes incendiary and AP) - Emag

#### Crates that got moved, unchanged, into Imports

- Foam Force Crate 
- Cosa Nostra Crate 
- Black Market LTSRBT 
- 'Contraband' Crate 
- Biker Gang Crate

#### Not crate changes
- You can print Surplus 7.62 (same as normal 7.62 but it sucks against
armor) from hacked autolathes.
- You can get WT-550 ammo from illegal tech.
- Removes the redundant Brand New Mosin subtype
- Fixes a potential exploit with jamming chance on Mosins.

## Why It's Good For The Game

I just think some of the magic of Cargo getting their hands on obviously
dangerous equipment and either hording it for themselves or attempting
to pawn it off was lost in recent times. A lot of this 'black market'
gear, however, suddenly became openly available to the crew anyway. For
_free_. Contraband crates and mafia crates could be purchased via the
Service budget. Security could just stock up en masse on mosins through
their console. And one fairly unfortunate consequence of a few recent
changes has made it nearly impossible to actually get illicit gear in
the first place, even if you did go to the effort of getting the money
for it.

On top of this, most of cargo's goods are pretty safe purchases. There
isn't much that would be considered 'actually a really bad idea to buy'
other than maybe supermatter shards. I wouldn't mind there existing ways
for someone to waste cargo's money while also causing them to have to
clean up the mess.

## Changelog
🆑
balance: A significant overhaul of various illicit and dubiously legal
goods and gadgets available via cargo.
balance: Cargo now has an Import category for all non-departmental
goods. (And black market goods)
balance: Most contraband that already exists has been moved into
Imports.
adds: Includes several new imports of dubious quality. You get what you
pay for.
code: Removes the brand new mosin subtype as it is now defunct.
fix: Fixes potentially exploitative code in the jamming proc. Cleans up
that code while I'm at it.
/🆑

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: carlarctg <53100513+carlarctg@users.noreply.github.com>
2023-04-08 18:35:10 +00: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
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
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
Ryll Ryll f55aafcc68 Adds the Marksman Revolver from Ultrakill, with coinflipping and splitshotting! (#70612)
## About The Pull Request
Ultrakill is a neat game that I like, and I like to add fun things from
things I like. This PR adds the marksman revolver as an admin-only
weapon, complete with coin flipping and splitshotting mechanics! [Have a
video demonstration!](https://streamable.com/5x4mnj)

Basically, right clicking on a visible tile flips a coin towards a
random adjacent tile to the one you targeted. Shooting the coin
projectile with the hitscan primary fire while it's within one tile of
the target will trigger a splitshot. Those two child splitshots will
roughly follow the priority order of Ultrakill (prioritizing coins [for
even more splits!], then nearby mobs, then less nearby mobs, then other
random stuff nearby). I plan to add other stuff for the shots to
prioritize like fuel tanks, windows, and others.

I'm still working out some of the finer details of balance and more
closely matching how it works to UK (while still working in the realm of
SS13), and of course I hope to get unique sprites/sounds/whatever.

<img src='https://imgur.com/XUTqksD.png'>

## Why It's Good For The Game
Adds more funny/unique things for admins to spawn in.

## Changelog

🆑 Ryll/Shaps
add: Added the Marksman Revolver, for admins to spawn.
/🆑
2022-11-21 23:21:18 -08:00
necromanceranne 87f5f2ecfa What if meteorslugs were mini cannonballs (#71137)
## About The Pull Request

Meteorslug shells fire effectively mini cannonballs. They're not as
strong, but they tear through everything they shoot, including walls and
airlocks. They're not as lethal as the real deal or go nearly as far
(range of 7, not even a screens length), but they are still pretty
destructive. They don't fling people, but they could potentially barrel
over several people, which I think is a good trade-off.

Meteorslugs need gunpowder (for a bigger shot) and rum (yarr) to
construct.

## Why It's Good For The Game

Only through sleep deprivation do I get such diabolical ideas.

Also, the original functionality wasn't very interesting except for
like, maybe a few niche silly things, but the real value was using them
to get into places. This version still definitely does that. But it's
_cooler_.

(The object displacement was pretty jank and I think this accomplishes a
very similar effect without actively harming why people would look to
use meteorslugs)

## Changelog
🆑
balance: Meteorslugs are now miniature cannonballs. They also need more
gunpowder and rum to be constructed.
/🆑
2022-11-21 21:03:26 -08:00
AnturK 4d6a8bc537 515 Compatibility (#71161)
Makes the code compatible with 515.1594+

Few simple changes and one very painful one.
Let's start with the easy:
* puts call behind `LIBCALL` define, so call_ext is properly used in 515
* Adds `NAMEOF_STATIC(_,X)` macro for nameof in static definitions since
src is now invalid there.
* Fixes tgui and devserver. From 515 onward the tmp3333{procid} cache
directory is not appened to base path in browser controls so we don't
check for it in base js and put the dev server dummy window file in
actual directory not the byond root.
* Renames the few things that had /final/ in typepath to ultimate since
final is a new keyword

And the very painful change:
`.proc/whatever` format is no longer valid, so we're replacing it with
new nameof() function. All this wrapped in three new macros.
`PROC_REF(X)`,`TYPE_PROC_REF(TYPE,X)`,`GLOBAL_PROC_REF(X)`. Global is
not actually necessary but if we get nameof that does not allow globals
it would be nice validation.
This is pretty unwieldy but there's no real alternative.
If you notice anything weird in the commits let me know because majority
was done with regex replace.

@tgstation/commit-access Since the .proc/stuff is pretty big change.

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-11-15 03:50:11 +00:00
necromanceranne c29b3781a9 Missile Sanity Checking: I made it explode better? (#70813)
* Fixes robotics and nukies gaining access to the wrong type of exosuit missiles, renames the BRM-6 to the PEP-6 (Precision Explosive Projectile), ensures the defines match to which gun goes where, also renames the ammo paths to also prevent the same confusion, swaps around a whole lot of the pathing for what missile is the baseline and what is the parents, makes the PEP use the missile procs instead of its own snowflake code, inadvertently makes the missile a borg murder device but fuck it they're dense objects
2022-10-27 21:12:57 +02:00
Tim 09d88b31ee Wizard DLC - Tower of Babel (#69629)
About The Pull Request

This adds a new status effect called - Tower of Babel

Any carbon mob afflicted by the status effect will lose knowledge of every known language and gain a randomized one as a replacement. The affected mob will also be hit with a depressing moodlet that lasts for 15 seconds. Silicons are immune to all effects.

This effect is implemented in several ways:

    Tower of Babel wizard event (all crew on the station z level are affected. The wizard is not and gains mastery of every language to taunt their victims)
    Admin smite option
    Admin secret event (can be reversed)
    Staff of Babel (formerly the Staff of Sapping) will spawn during spawn magic wizard event
    Magicarp will randomly shoot bolts of babel
    Staff of Chaos will randomly shoot bolts of babel
    Overdosing on Mushroom Hallucinogen will temporarily and sporadically acquire the effect

The effect can be blocked or cured in several ways:

    Curators are given immunity
    Reading a book of babel (via lavaland loot) cures and gives immunity
    Reading a language book cures and gives immunity ONLY for that particular language

Note - The Tower of Babel does not allow tongueless, mute, or tongue tied people the ability to speak
2022-10-19 05:17:05 +00:00
arnociiroc 2b02bf103b nerfs shotgun darts (#70112)
* Shotgun darts now only hold up to 15 units, with the nukie-variation being able to hold up to 30. This puts it on-par with the Syringe gun.
2022-10-09 23:33:15 -04:00
MrMelbert de04b3be80 Kills /obj/shapeshift_holder, replaces it with /datum/status_effect/shapechange_mob, also does a lot of Wabbajack refactoring (#69091)
About The Pull Request

    Deletes /obj/shapeshift_holder, replaces it with /datum/status_effect/shapechange_mob
    Refactors Heretic worm form into a shapeshift spell
    Refactors Wabbajack, and associated code

Fixes #69117
Fixes #65653
Fixes #59127
Fixes #52786
Why It's Good For The Game

/obj/shapeshift_holder was one of the worst remaining abuses of /obj direct subtypes, so I replaced it with a cool fancy datum.

This also decouples the shapeshifting behavior entirely from the shapeshifting spell. So we have support for shapeshifted mobs not sourced from a spell. Which is neat, we could technically swap Wabbajack to use this in the future.
Changelog

cl Melbert
fix: Wabbajacking a shapeshifted mob no longer runtimes horribly. When a shapeshifted mob is wabbajacked, they'll now be removed from their shapeshift and stunned.
fix: Transforming via a shapeshift should no longer rob you of your hearing / runechat awareness.
fix: Shapeshifting plays nicer with holoparasites.
fix: Being polymorphed from a xeno to a non-xeno correctly makes you a non-xeno
refactor: Refactored shapeshifting, the shapeshift holder is now a status effect instead of an object.
refactor: Heretic worm form is a shapeshift spell now, this might have some minor behavioral changes but should overall be the same.
refactor: Refactored Wabbajack (+ cursed pool). Overall a bit more clean / consistent behavior.
/cl
2022-09-02 09:44:41 +12:00
tattle d91390a447 [IDB IGNORE] The Great Sweep: Moving dmis into subfolders (part 1) (#69416)
Moves singulo and supermatter dmis into obj/engine, renamed from obj/tesla_engine
Moves Halloween, Christmas, and misc holiday items to obj/holiday
Moves lollipops to obj/food
Moves crates, closets, and storage to obj/storage
Moves assemblies to obj/assemblies
Renames decals.dmi to signs.dmi ...because they're signs and not decals
Moves statues, cutouts, instruments, art supplies, and crayons to obj/art
Moves balloons, plushes, toys, cards, dice, the hourglass, and TCG to obj/toys
Moves guns, swords, shields to obj/weapons
2022-08-24 20:49:35 -03:00
Seth Scherer f1a363c825 Converts a shitload of istypes to their more concise macros (#69260)
* Converts a lot of istypes() to use their istype macro helpers.
2022-08-18 22:08:44 -04:00
Fikou 731f87895a [NO GBP] fixes tk firing for real (#68804) 2022-07-27 15:31:50 -04:00
Fikou 0ff9909c97 secondary fires no longer kill the user (#68734) 2022-07-27 14:27:06 -04:00
GoblinBackwards 3dac11dc3a Removes AOE hit detection from fireball (#66828) 2022-05-10 20:45:06 -04:00
Ryll Ryll 7d8549c265 Confiscates the bounty hunter flamethrower, gives them a fire cycler shotgun + fire pistol (#65984)
Some lovely person who will go unnamed decided 3 years ago that the flamethrowers would be a good weapon for some bounty hunters to use to hunt their quarry. This turned out to be a massive liability and cause lots of innocent people to get toasted, so this PR aims to give them a different fire-based arsenal that isn't so indiscriminate.

The armored bounty hunter role is now issued a cycler dual-tube shotgun that comes with one tube of rubbershot, and one tube of a new incendiary shotgun slug that leaves no fire trail, but still lights up their target. They also receive a 9mm Makarov loaded with fire bullets and one spare mag (these ones do leave a trail).
2022-05-01 15:20:55 -07:00
magatsuchi 9ee0c753f8 readds the chameleon gun (#66569)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-04-29 21:39:22 -07:00
RandomGamer123 36a680b93e Prevent bullets from sometimes missing if blocked by another person diagonally (#66276) 2022-04-26 12:36:05 -07:00
Fikou 742b272f52 Adds a scope component, removes old zooming and adds sniper marksman ammo. (#66218)
Removes the old sniper rifle zoom, replaces it with a scope component. the scope activates on right click and lets your camera follow your mouse.
https://streamable.com/2c63u4 (due to byond rounding some shots were weirdly missed in that video, its fixed now)
Also adds sniper marksman ammo to the nukie uplink. It does slightly less damage, but it is hitscan and has one guaranteed ricochet shot, so you can shoot a wall and it could still hit someone.
2022-04-25 15:03:49 -07:00
cacogen 980c5cdee7 Can secondary attack (right-click) and fire guns with TK (#65473) 2022-03-25 21:56:28 -04:00
necromanceranne cc7391fc97 Adds a sprite for rubbershot and the rubbershot box (#64562)
Gives rubbershot and rubbershot boxes a new sprite to differentiate them from beanbags.
2022-02-08 18:56:14 -03:00
necromanceranne 906fb0682b Ballistic to Energy: Autorifles for Thermal Pistols; Adds .38 Crate to Cargo (#64280)
About The Pull Request
The design doc behind this PR, which is only mildy been deviated from on some of the end particulars. Cobby-Approved! Maintainer Discussed!
https://hackmd.io/@6DbtsAKCTtW_9MByKFjZqg/r1xYKCNOt

Cargo Changes
Cargo has had all WT-550's removed and replaced with Thermal Pistols.
Cargo can now order Thermal Pistols, a kind of energy/ballistic hybrid weapon shooting chunks of altered nanites into people. We couldn't use them in people, so maybe we'll use them as bullets! Magma/Ice bullets, to be exact.
You can, after paying a whopping 4K on a goodie pack (you have to pay from your own personal account) buy a .38 revolver. This is mostly to help some poor detective who lost their revolve in what I'm sure will be an inevitable scramble for ballistics. If even the 4K pricetag isn't enough, at least it requires detective access to open the pack...I hope.
Some of the crates that contained autorifle related items have been changed/removed.

unknown (2)

securarevolver 4 0

Science Changes
Ballistic Weaponry node no longer exists, and has been replaced with Exotic Ammo as both the pre-requisite to other nodes, as well as being able to be researched as soon as the Weaponry node is unlocked and not Advanced Weaponry.

Thermal Pistols
-Fairly average bullet statistics; 10 AP but shooting into Energy armor. 20 damage (Brute for cryo, Burn for inferno). Decent wounding potential, but individually much lower ammo counts than lasers.
-Bought in twinned pairs in a two gun holster (just for normal sized energy guns). They're normal sized.
-Each gun has 8 shots (thereabouts). 16 between two.
-Cryo pistols do a knockdown and extra damage against extremely hot targets. Inferno pistols do an explosion cantered on the target against extremely cold targets.
-The guns are EMP-proof.

Why It's Good For The Game
The current gameplay loop of crew combatants is them relying on backup and retreating as necessary to reload their weapons during fights. The ability to repeatedly harry opponents in the field reloads is something that should be moved away from for crew equipment, as it emphasizes lone wolf tactics and one-man army problems, with boxes full of spare ammo usually allowing any single combatant to outlast multiple foes. In addition, ballistics often are not subject to the same (interesting) limitations of energy weapons, so they're typically a no-brainer choice. We shouldn't have such an easy choice be readily available like that.

The thermal pistols present a more challenging weapon to use as a solo combatant but become far more versatile and potent when paired with a decent buddy and basic level co-ordination. They're not a straightforward choice for every situation, but instead are a weapon employed given the right circumstances for them to shine.

In addition to the gameplay issues that ballistics pose, we're in a goddamn spacegame. Unless the ballistics are noticeably weird (they're not), we should expect that our more advanced research station has some pretty odd guns of the energy variety.

Changelog
🆑 Necromanceranne, quin
add: Adds the Inferno and Cryo Pistols. A hybrid energy/ballistic weapon, to cargo. It can be purchased in either a goodies pack or a normal crate order.
add: Thermal Pistols do more damage and a special based on temperature of the target hit.
add: Inferno pistols cause an explosion when they hit a severely cold target.
add: Cryo pistols cause a knockdown and extra damage if they hit a severely hot target.
add: There is a special nanite pistol, which is admin spawned. Don't tell anyone about the forbidden ballistic energy gun.
add: You can order a .38 revolver as a goodie pack. It is expensive.
del: Removes WT-550's from cargo and related content from the techweb/protolathes.
balance: Exotic Ammo is now much earlier in the tech web to take the place of Ballistic Weaponry.
/🆑
2022-02-07 11:29:08 -05:00
Ryll Ryll 73eaf4273e Drinking root beer increases your fire-rate; Adds root beer (#63956)
* Adds TRAIT_DOUBLE_TAP and a drink/pair of gloves that grant it

* increased price

* per reviews
2022-01-17 22:40:33 -08:00
Ryll Ryll f637240933 Rubbershot is now very bouncy (#64020)
Makes shotgun rubbershot bouncier.
2022-01-14 15:02:16 +01:00
Fikou 7b38dd4ff7 MODsuits (#59109) 2021-12-24 12:00:24 -08:00
John Willard 88d7dbfc10 removes double spaces before symbols (#62397)
This can apparently cause some bugs on occasions, so I thought I might as well try to kill them all.
2021-10-28 19:25:50 -03:00
tralezab 6c01cc2c01 every case of initialize that should have mapload, does (#61623)
## About The Pull Request

stop forgetting to include mapload, if you don't include it then every single subtype past it by default doesn't include it

for example, `obj/item` didn't include mapload so every single item by default didn't fill in mapload

![](https://media.discordapp.net/attachments/823293417186000909/875122648605147146/image0.gif)

## Regex used:

procs without args, not even regex

`/Initialize()`

procs with args
`\/Initialize\((?!mapload)((.)*\w)?`

cleanup of things i didn't want to mapload:
`\/datum\/(.)*\/Initialize\(mapload`
2021-09-24 17:56:50 -04:00
Fikou 5c67c53272 Removes Tactical Resting (#61552)
About The Pull Request

If you are on combat mode, your bullets will hit people lying down or stunned, otherwise they pass through.
Why It's Good For The Game

The original PR that added it was labeled a fix (#55495) only mentioning it in the changelog once, when it was a balance change, as resting to avoid bullets was intentionally removed after we added crawling and a rest button, for being fucking stupid.
The thing that original pr "fixed" was mobs being bullet sponges, which you can now prevent by switching off combat mode, so it is no longer needed.
Avoiding people shooting at you while also having guns of your own you are perfectly able to shoot is stupid.
It makes mobs like beepsky super annoying, where unless youre in a large area the robot chasing you with one of the only hardstuns left in the game will be really hard to hit.
Changelog

cl
balance: If you are on Combat Mode, your bullets no longer pass through prone people
/cl
2021-09-21 12:26:24 +12:00
LemonInTheDark a08f698230 Harddeletes: Accident edition (#61562)
So I started with fixing some timing stuff in #61540, decided to look into foam harddels since I've known about them for a while, got bored, tried to figure out the plane master failures I've seen, and well uh, did.

I'm sure there'll be more, but for now:
Fixes foam darts sticking around post qdel due to dumb guncode, adds a stack trace to handle it.
Makes map popups actually clear the screen they're effecting of their objects, preventing plane master harddels, most commonly sourced from admin pod memes. Not clearing from the screen WAS SOMEHOW AN INTENDED FEATURE!?!@ because "clients log out often anyway and that clears screen so it's fine" I am having a meltdown
Changes examine timers from a ref + signal to a ref(), the timer's 1 second, it's not gonna cause any collisions for the love of christ
2021-09-20 17:17:09 +01:00
Seris02 b17a6ce1ba hopefully fixes buckshots only shooting one projectile (#61464) 2021-09-16 22:55:12 -07:00
Thunder12345 391a71ba30 removes all misc files/folders from the projectiles module (#60478)
Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
2021-07-28 01:46:25 -07:00
Thunder12345 39da0b0407 Capture The Flag: Class Warfare (#59629)
Co-authored-by: Thunder12345 <stewart@critar.demon.co.uk>
2021-07-23 15:49:22 -07:00
LemonInTheDark 96cc4a7260 EVEN MORE HARDDEL FIXES (#60228)
Fixes a ton of harddels, sourced from #59996 
I think this brings us down to like, ~100 per round from ~200, with only like 20 of those being proper hell failures. I've seen harddel profiles below 1 second of total cost. Feeling good.

See you on the other side

Makes the cryopod control computer into a weakref, never trust bee code 
Converts brig door timer internal lists to weakrefs
Fixes a harddel caused by qdeling a motion sensitive camera after it had left its source area, jesus christ why didn't we do this already holy shit
Converts the radio implant ref held by the antenna mutation to weakrefs because it isn't reliably cleaned up, makes the radio implant actually qdel its fucking radio
Removes the target var from the throwing datum, it does literally nothing and just exists to cause harddels, mostly for the singularity
 Fixes a cable harddel sourced from things that try to enter blueprints after smoothing, but before roundstart. IE, shuttles. Removes shuttles from the blueprints
Fixes emmisive blockers being added post qdel
Removes some manual ghosting from cryopods, I initially did this for harddel reasons, but I figured out a better fix for that. I'm now doing it because it's got this really strange logic for like "re-entering the game" that doesn't actually link to what the ghostize proc does. We should remove this at some point
Fixes robot hud objects harddeling due to hanging refs
Fixes buildmode related hanging refs, I'm coming for you admin team
Fixes a few instances of trying to add the forensics component post qdel, hhhhhhhhhhh
Fixes some split personality harddels/weirdness
Replaces a use of disconnect_duct with an init qdel hint, I suspect there's more issues with duct harddels, I've seen some odd logs about ahhh the area_contents list, but we can worry about that later
Makes teleporter targets into weakrefs, properly types them as /atom
Makes frequency devices into weakrefs
Makes cameras remove themselves from camera nets on Destroy
Makes tgui ui datums implement destroy, this means if I ever see one hang a ref to user or whatever, I know there's an error with calling close() properly. I've seen this harddel once, but not after this change so I assume there was some error with close(). IDK maybe this is a papering over? Would have to ask @stylemistake 
I've seen logs of beartraps being in world post del, putting a return there just in case. The same is true of nerf darts, but I haven't really looked into that yet
Makes a shoe's ref to untying alerts a weakref, yes this is needed.
Moves clearing client_in_contents to the Login of the new mob. This prevents doing things like ghosting someone before a mob qdel causing harddels
Fixes a harddel set sourced from adding a status effect to a qdeleted thing. Is this an error? I'm honestly not sure.
Converts bsa code to weakrefs
Converts the partner var of heat exchangers to weakrefs
Converts camera assemblies to weakrefs
Fixes some dumb behavior with ammo casings and assuming you'll be on a turf post Destroy parent call
Fixes? merger related harddels, you were never cleared from your own members list, so origin objects would end up making a new list, creating harddels. Potential input from @ninjanomnom about the logic
Chasms store a static list of "falling atoms", which only exists for chasms that go somewhere else. This list wasn't being cleared of qdeleted objects, which is what happens when you fall in most chasms. Fixes this, and converts the list to weakrefs.
Fixes some runtimes in both sheet code, and the weather listener element. This is here because runtime spam made testing more of a pain, didn't think it needed its own pr
Fixes colorful reagent harddels sourced from reagents that were qdel'd before roundstart. I'm only like 50% sure this actually got it, but the issue may have been solved by #60174, so eh
Turns the nuke op antag datum's ref to the war button into a weakref
Fixes some holopad code that was not nulling refs all the time
Converts camera bugs to weakrefs, this was the result of the bug being "reworked" like 6 years back without taking the existing ref clearing into account. Whole item needs a redo, but this'll do for now.
Ensures that the both pulling and pullee refs are cleared on Destroy
The crew monitor held all users in a non clearing list, makes that list a weakref because I hate everything

Oh and I removed all sources of gas_mixture qdeletion, I'm kinda unsure on this since it's not technically supported, but any harddels from it might? indicate something going wrong with like, gas passing logic. I'd like @MrStonedOne's thoughts, since I trust him to call me an idiot if I'm wrong.

<!-- Please add a short description of why you think these changes would benefit the game. If you can't justify it in words, it might not be worth adding. -->

## Why it's not good for the game

I crashed sybil like 10 times to get this data, I'm gonna put it to good use. Don't think you're safe sybilites, I'm coming for you.
2021-07-19 12:41:21 -04:00
Beatrice c36abfdb99 Fixing Energy Gun Weapon Description Runtimes + Miscellaneous Weapon Description Fixes, Take 2 (#59778)
Fixes a runtime issue cause by the possibility of loaded_projectile being null by changing how projectile stats are obtained on energy weapons, and adds a separate line for energy ammo types that deal stamina damage and regular damage to incorporate both damage types
2021-07-11 10:23:19 -03:00
Spookuni ddb489dac6 Increase the number of shots for laser rifles, energy guns and hellfire lasers (#60015)
* Lasers get more shooty

* down to 15%
2021-07-07 17:08:45 -04:00
Watermelon914 375a20e49b Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.

Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
2021-06-14 13:03:53 -07:00
LemonInTheDark f90e8cf7a3 Fixes a bunch of harddels that are sourced from player action (#59371)
Sourced from #59118 and a cursed project I'll pr later, This pr contains a lot of harddel fixes for stuff that pops up after a player interacts with something. I'm not gonna list them all here because there's something like 60 130, check the commit log if you're curious

Oh and I moved ref tracking screaming to a separate define, and made some optimizations to the thing in general. I think that's it, this pr is a bit of a frankenstine
2021-06-10 21:44:23 -03:00
Beatrice 9dea259764 Replacing Ebow's Default Shot Sound (#59416)
Replace the default (Unused) fire sound of the basic energy crossbow with the suppressed sound effect
2021-06-01 22:30:55 -07:00
Beatrice 0568e85ca7 Nanotransen Legal Liability Initiative - Weapon Stats but more RP (#58865)
* Weapon Descriptions (And Also Reversion)

Adds support for weapon statistics to be shown as part of examining an item, similar to the tags found on armor. Also, reverts the small changes I made on master because I'm a fucking idiot and made those changes on master.

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-05-23 01:17:05 -07:00
Ryll Ryll b1edc496db Is that a fucking rocke- (#59056)
Being hit directly by a rocket launcher now has a 1% chance to make you briefly try processing what's about to happen before exploding you.
2021-05-15 02:04:33 -07:00
Fikou b17b55aae8 Full Auto Update: no crit firing, no spamclicking, more autofire, more balance (#58595) 2021-04-22 15:59:23 -07:00
KathrinBailey 9deb7102c7 Cleans up bullets to use subtypes for ammo variations (#57846)
We have a bunch of bullets across the code that are pewpewmm_ap and powpowmm/ap
This switches it to the latter for consistency.
2021-04-12 11:51:13 -04:00