Commit Graph

399 Commits

Author SHA1 Message Date
Ghom
1be27a4ffe Dunking handle_atom_del() in the trash bin. (#77339)
Whatever you do, if it warrants the use of something like
`handle_atom_del`, chances are `Exited` can do it better, as most of
these cases involve movables that shouldn't be moved out of their loc
(`Destroy` forcefully moves movables to nullspace) without calling
specific procs, and for the remaining few, `handle_atom_del` doesn't
even cover the eventuality of a movable being deleted outside the source
atom, so it's quite garbage.

Beside, I feel confident in saying `handle_atom_del()` is older than the
DCS, an echo on the workarounds done at the time.
2023-08-18 11:02:22 +00:00
Hatterhat
ede1b5f494 guns' projectile damage multiplier reflected in examines, gives guns a vareditable projectile wound bonus modifier (#77280)
## About The Pull Request
A gun's projectile damage multiplier is now reflected in its "show
combat info" examine, so now the shots-to-crit on guns with a modified
projectile damage multiplier (say, the PP-95 SMG, under the slightly
inaccurate typepath `automatic/plastikov`) is accurate. This applies to
both energy weapons and ballistics.

Also, added a new variable that multiplies a fired projectile's wound
bonus. Could be used to make guns really bad at wounding or good at
wounding innately for... reasons? Not really touched by anything for
now.

## Why It's Good For The Game

Being able to account for projectile damage multiplier probably helps in
regards to "how many bullets DOES it take to crit someone else?", since
you don't really get told about it in-game.

The wound bonus thing could be used for adminbus as a joke or to make a
gun more distinct in regards to "how often do I make someone's blood
fall out/leg break/etc."

## Changelog
🆑
fix: Projectile damage multipliers on guns are now reflected in their
combat information.
admin: Admins can now make a gun's fired projectiles better or worse at
wounding by changing the gun's projectile_wound_bonus. Surely this will
not have any repercussions.
/🆑

---------

Co-authored-by: Hatterhat <Hatterhat@users.noreply.github.com>
2023-08-13 03:43:10 +02:00
Watermelon914
69827604c4 Improves the RPG loot wizard event. (#77218)
## About The Pull Request
As the title says. Adds a bunch more stat changes to various different
items and a somewhat simple way of modifying them whilst minimizing
side-effects as much as possible.
Added a new negative curse of polymorph suffix that can randomly
polymorph you once you pick up the item.
Curse of hunger items won't start on items that are not on a turf.
Curse of polymorph will only activate when equipped.

Bodyparts, two-handed melees, bags, guns and grenades, to name a few,
have a bunch of type-specific stat changes depending on their quality.

Some items won't gain fantasy suffixes during the RPG loot event, like
stacks, chairs and paper, to make gamifying the stats a bit harder.
I'm sure there'll still be other ways to game the event, but it's not
that big of a deal since these are the easiest ways to game it.
High level items also have a cool unusual effect aura

## Why It's Good For The Game
Makes the RPG item event cooler. Right now, it's a bit lame since
everything only gains force value and wound bonus on attack. This makes
the statistic increases more type-based and make it interesting to use

It's okay for some items to be powerful since this is a wizard event and
a very impactful one too. By making the curse of hunger items not spawn
on people, it'll also make it a less painful event too.

## Changelog
🆑
add: Expanded the RPG loot wizard event by giving various different
items their own statistic boost.
/🆑

---------

Co-authored-by: Watermelon914 <3052169-Watermelon914@users.noreply.gitlab.com>
2023-07-31 17:09:53 +00:00
Ghom
2bb4dfe76c Expanding the Experimental MODsuit Bepis Node with three new modules. (#75801)
## About The Pull Request
So, I've had this idea to make a contribution to the Bepis feature with
some modsuit stuff. The gimmicky stuff is ok and a good way to even out
the better content since it has game of chance design it has (you can
find those disks in space anyway so...). However, the Experimental
MODsuit node feels very underwhelming right now, compared to how big
that feature is.

This PR adds three MOD modules to the Experimental MODsuit node, plus
two more:
- Magneto Charger: While the Modsuit is activated, each step the user
takes will charge the installed power cell by a tiny bit, enough to
sustain a standard modsuit of generic slow speed with only a few, easy
modules installed. It won't work in zero G, while flying, pulled by
someone else, on a conveyor belt, riding a vehicle or crawling on the
floor, though.
- Recycler: It collects (most) garbage and casings off the ground and
recycles them into material sheets that can be dispensed on an adjacent
location or storage with with Middle Mouse Button. Doesn't clean debris,
and scuffed because most trash doesn't yield material anyway.
- - It also has two subtypes, unbound from the node: one that dispenses
riot foam darts and can be found on the black market, and another that
dispenses the more innocuous foam darts, rarely found in maints.
- Shooting Assistant: A configurable module. On Stormtrooper mode, it
will give the user a faster fire rate (the double tap trait) at the cost
of accuracy. On Sharpshooter mode, it will improve the user accuracy and
make their shots ricochet against walls at least once (if the hit atom
allows that, that is, e.g. lasers don't ricochet against iron walls), at
the cost of movement speed. Both modes also prevent the user from dual
wielding guns.

To make the Stormtrooper mode stackable with the poor aim quirk and
refrain from making a new trait for the sharpshooter mode, the gun
spread code in gun.dm has also received a little refactor and cleanup.
Also, it's been tested.

## Why It's Good For The Game
The Experimental MODsuit node is quite shabby and could use something
extra to make it more appealing to MODsuit enjoyers.

Also doubles down as a small addition to the black market and maint
loot, and code cleanup, since gun code gives off some garbled vibes.

## Changelog

🆑
add: Expanded the Experimental MODsuit Bepis node with three new
modules: Magneto Charger, Recycler and Shooting Assistant.
add: Added a Riot Foam Recycler module to the black market, as well a
more innocuous version as maint loot.
/🆑
2023-06-14 23:00:05 -04:00
larentoun
e5d3045847 fix: Gun overlays are now one with gun's icon (#75773)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

Adds `KEEP_TOGETHER` flag to the gun's `appearance_flags`, so overlays
are now one with gun's icon.

Before:

![Screenshot_23](https://github.com/tgstation/tgstation/assets/31931237/df47ace7-bccd-4847-bf44-47bd1facae05)
![Screenshot_24](https://github.com/tgstation/tgstation/assets/31931237/7b0bbc57-6e6e-4092-9a7f-a87b9500373a)

After:

![image](https://github.com/tgstation/tgstation/assets/31931237/7b238bd0-3e2c-4514-abfd-b4cdd54cfc23)
![image](https://github.com/tgstation/tgstation/assets/31931237/07a057ff-a26c-4a08-b530-20e69f39beea)


## Why It's Good For The Game

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

Better visuals. Also required, when guns are forced to be placed in 90
degree

## Changelog

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

🆑
fix: Gun overlays (energy ammo counter, flashlights, bayonette, etc) are
now one with gun's icon, which makes said overlays to transform
correctly with gun's transform (ie, throwing)
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2023-06-01 16:19:19 -04:00
MrMelbert
899c46a711 Changes gun flipping to use attack self secondary, moves it to base gun level (#75680)
## About The Pull Request

- Gun flipping is now done via attack self secondary (right click it
when it's in your active hand) rather than attack self ("use" hotkey or
left clicking it when in active hand)

- Moves gun flipping to `/gun` level

## Why It's Good For The Game

- Gun flipping has historically had very bad UX, as most ballistic guns
used attack self for some function - loading the gun, ejecting spent
rounds, racking the gun, etc. By putting it on attack self secondary, it
makes it a bit more of a deliberate thing and keeps it out of the way of
expected behavior
- TLDR: Makes it much less likely you end up spinning your shotgun like
a dingus in the middle of a firefight instead of racking the thing.
- Also makes it less likely you dump your entire mag trying to show off.

- Putting it on the base level lets me spin lasguns and disablers around
which I've always wanted to. It also means you can spin stuff like wands
and bows but I'm not too plussed about that. It's just funny

## Changelog

🆑 Melbert
qol: Gun Flipping is now done by right clicking the gun when it's in
your active hand ("use secondary"), meaning you should be less likely to
accidentally spin your gun instead of ejecting rounds / racking / etc.
qol: You can gun flip all guns, instead of just ballistics. This
includes stuff like wands.
/🆑
2023-05-27 23:42:43 -04:00
Ghom
6e5ae1cc24 Fixing a few minor maintenance hindrances. (#75594)
## About The Pull Request
See the title and relative issue reports mentioned in the section below.

## Why It's Good For The Game
Closes #75461, closes  #75462, closes #75467.

## Changelog

🆑
fix: Capturing CTF control points no longer requires the active hand to
be empty.
/🆑
2023-05-23 16:51:36 -06:00
ShizCalev
a94a61c6a0 Fixes runtime when qdel'ing self-recharging guns with bayonets attached (#75406)
```
[00:29:34] Runtime in energy.dm, line 161: cannot read from list
proc name: can shoot (/obj/item/gun/energy/can_shoot)
src: the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator)
src.loc: the plating (81,77,2) (/turf/open/floor/plating)
call stack:
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): can shoot()
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): update overlays(16777215)
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): update icon(16777215)
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): update appearance(16777215)
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): clear bayonet()
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): handle atom del(the survival knife (/obj/item/knife/combat/survival))
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): handle atom del(the survival knife (/obj/item/knife/combat/survival))
the survival knife (/obj/item/knife/combat/survival): Destroy(0)
the survival knife (/obj/item/knife/combat/survival): Destroy(0)
the survival knife (/obj/item/knife/combat/survival): Destroy(0)
...
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): deconstruct(0)
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): atom destruction("melee")
the proto-kinetic accelerator (/obj/item/gun/energy/recharge/kinetic_accelerator): blob act(the normal blob (/obj/structure/blob/normal))
the normal blob (/obj/structure/blob/normal): ConsumeTile()
the normal blob (/obj/structure/blob/normal): Be Pulsed()
the blobola (/obj/structure/blob/special/core): pulse area(the blobola overmind (/mob/camera/blob), 12, 4, 3)
Objects (/datum/controller/subsystem/processing/obj): fire(1)
Objects (/datum/controller/subsystem/processing/obj): ignite(1)
Master (/datum/controller/master): Loop(2)
Master (/datum/controller/master): StartProcessing(0)
```

🆑 ShizCalev
fix: Fixed a runtime which occured when a self-recharging gun (ie
proto-kinetic accelerator) with a bayonet attached was deleted.
/🆑
2023-05-13 20:33:17 -04: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
Ryll Ryll
f7a49c4068 Gunpoints now take half a second to activate, make gasp sounds, and briefly immobilize the shooter and target, other small balance changes (#74036)
## About The Pull Request
This PR messes around with gunpoints a bit, with the purpose of making
them more viable in certain scenarios without making them obnoxious. The
biggest change is that gunpoints now require a 0.5 second do_after()
where neither the shooter nor the target moves, and immobilizes both of
them for 0.75 seconds if point blank, or half that if you're 2 tiles
away. Originally you were supposed to only be able to initiate a
gunpoint from point-blank, but #56601 seems to have removed that
requirement, so we'll run with it and just leave it as advantageous to
gunpoint closer up. The do_after() reinforces that it should be used as
an ambush tactic, and so you can't use it on someone who's actively
fleeing or fighting you.

Getting held up will now make you emit a shocked gasp sound, a la Metal
Gear Solid, which combined with the short immobilize will hopefully make
it more noticeable that someone's pointing a gun at you.

Holdups will now immediately give a 25% bonus to damage and wounds,
instead of having to wait 2.5 seconds to hit the double damage stage.

Finally, right clicking someone that you're holding up will no longer
shoot them. That just feels like good consistency.

## Why It's Good For The Game
Hopefully makes gunpoints a little more viable for when you want to
stick someone who's not expecting it up without them immediately jetting
off. In the future I'd like to ape Baycode and let the gunman have an
action that toggles whether the victim is allowed to move, so you can
order them to move to a second location without instantly shooting them,
but that'll come later.
## Changelog
🆑 Ryll/Shaps
balance: Holding someone at gunpoint now requires both the shooter and
the victim to hold still for half a second before activating, so you
can't hold-up people fleeing or fighting you. After that, it will
briefly immobilize the both of you, 0.75 seconds if adjacent, or half
that if you're two tiles away. Nuke ops are immune to the
immobilization, since they're ready to die anyways.
balance: Holding someone up will immediately apply a 1.25x damage and
wound multiplier, rather than waiting 2.5 seconds to hit 2x.
soundadd: Being held up will now make the victim play a sharp gasp
sound, a la Metal Gear Solid.
qol: Trying to hold someone up that you're already holding up will no
longer shoot them.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2023-05-02 10:38:02 +12: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
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
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
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
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
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
FinancialGoose
17587615e0 Fixes changeling tentacle secondary behaviour (#71686)
## About The Pull Request
Fixes #69013 
## Why It's Good For The Game
## Changelog
🆑
fix: fixed using the changeling tentacle arm via right mouse click
holding people up instead of firing it. Now it will fire like normal
/🆑

Co-authored-by: Time-Green <timkoster1@hotmail.com>
2022-12-05 17:49:34 -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
VexingRaven
a91e732cc2 [NO GBP] More balloon alerts for guns + fixes a wrong alert (#71136)
## About The Pull Request

Turns out I missed a few to_chats in #70398. Also I accidentally
inverted one so it said close the cover instead of open it. Oops!
## Why It's Good For The Game

Same reason as the original PR, balloon alerts are handy for stuff you
care about right now and not in 5 minutes. Also they should probably not
tell you to do the opposite of what you actually need to do.
## Changelog
🆑 VexingRaven
fix: Fixed a few balloon alerts for guns and moved a few more chat
messages to balloon alerts
/🆑
2022-11-07 09:33:29 -08:00
VexingRaven
9a70367815 Replace some chat messages for guns with balloon alerts (#70398)
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-10-15 14:14:23 -07:00
John Willard
91f02f2a6b canUseTopic now uses TRUE/FALSE instead of defines that just say TRUE (#69790)
* canUseTopic now uses TRUE/FALSE instead of defines that just say TRUE

The most idiotic thing I've seen is canUseTopic's defines, they literally just define TRUE, you can use it however you want, it doesn't matter, it just means TRUE. You can mix and match the args and it will set that arg to true, despite the name.

It's so idiotic I decided to remove it, so now I can reclaim a little bit of my sanity.
2022-10-01 09:47:52 -07: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
ShizCalev
50f8a03502 Converts a bunch of things over to get_random_valid_zone() (#69331)
refactor: A bunch of things that used to not do anything (or just fall back on the chest) when targeting a limb that someone was missing will now be far more likely to attack another limb!
2022-08-21 16:27:12 -07:00
Kapu1178
2eccf3cea0 Cleans up update_icons, makes the update_icon_updates_onmob element bespoke, updates CODEOWNERS (#69179)
* I just realised this is all one commit.

* hail marry

* fix.

* FIXES IT FOR REAL

* Update code/datums/elements/update_icon_updates_onmob.dm
2022-08-16 13:50:21 -04:00
ShizCalev
41e218862e [s] holdup fixes (#69067)
holdup fixes
2022-08-10 04:21:51 +02:00
Fikou
731f87895a [NO GBP] fixes tk firing for real (#68804) 2022-07-27 15:31:50 -04:00
itseasytosee
4f59986661 Gunpoint Fix Revaliance, Afterbith (#68556)
Fixes being able to point anything at gunpoint
2022-07-20 20:32:21 -05:00
itseasytosee
71c273a01a Holding people at gunpoint is FIXED (#68361) 2022-07-17 00:45:55 -07:00
GuillaumePrata
eb6c33a762 Balloonify and removes some to_chat spam for miners (#67816)
About The Pull Request

Playing as miner and paying attention to the radio is pure pain, so many of your job related actions create useless spam messages inside your chat/radio tab (unless you split them, which creates other issues) so this PR changes a few of them:

1 - PKAs won't send a useless * click * message to your chat window when it's not ready to fire. It already has a different and clear sound that does it's job.
2 - Guns won't send a message to your chat with "you shoot the gun". You clicked your mouse, you hear the sound, you see the projectile leave and you already get a message logged there with what you hit.
3 - Digging with a pickaxe/shovel/hand is a balloon alert and the message for when you finish digging a wall is removed as you just seen the wall of basalt disappear so you know what happened...
Why It's Good For The Game

As a miner most of your interaction with the station is over the radio, less useless spam on the chat tab will hopefully help make mining feel less like a single player game.
Changelog

cl Guillaume Prata
qol: Miners rejoice! A few of the mostly useless and spammy messages that get send to your chat were changed to balloon alerts or straight up removed. Hopefully, you will have an easier time listening to the radio chatter now.
/cl
2022-07-05 09:17:22 +12:00
FinancialGoose
db3ee3a6cf Fixes teleporting gun with telekinesis (#68083)
So when you fire a gun with the clumsy trait it has a chance to backfire at you and shoot yourself and if you dont have the no_drop trait will drop the gun on your location hence the teleporting gun bug with telekinesis. This pr adds a check to whether the user is firing via tele or not.

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-07-01 01:29:20 -04:00
Iamgoofball
ea1536d66a Energy gunfire sound pitch now varies based on how much ammo is left. Ballistic guns now have bolt sounds for low ammo. (#67549)
About The Pull Request
u0aw4DulWt.mp4
Why It's Good For The Game

Breaks up the monotony of firearm sounds, makes them actually useful in a gameplay context. Energy gun effects inspired by Cruelty Squad.
Changelog

cl
soundadd: Energy and Magic gunfire sound pitch now varies based on how much ammo is left.
soundadd: Ballistic gunfire now has a low-ammo click sound.
/cl
2022-06-16 13:09:39 +12:00
MrMelbert
3c8b666b35 Refactors Gunlight / Helmetlight to be a component (#67517)
Atomized from the proc holder PR

    Refactors gunlight / helmet light to be a component.
        They just copy+pasted code between each other and it was really annoying. I was working on fixes for the proc holder PR and noticed this (had to make the same fix for two things).
    Moved Mind Monkey Helmet to its own file
    Balloon alerts for seclite attachment / removal

One may be able to genericize this even further and put the bayonet behavior on this as well. Future idea.
Why It's Good For The Game

Cleaner, less copy pasted code.
Changelog

cl Melbert
refactor: Gunlight / Helmetlight behavior is now a component.
qol: Gunlight / Helmetlight now uses balloon alerts.
/cl
2022-06-10 16:34:24 +12: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
blessedmulligan
2121df09de Fixes removing attachments from guns (#64376)
resolves #64211

canUseTopic check for removing gun attachments was reversed. So, you couldn't remove attachments unless you're out of reach of the gun or something.
2022-01-26 00:36:42 +00: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
Fikou
fd9a7f8a58 MOD update: Modular Cores (#64042)
* Modsuit update - Cores
2022-01-15 13:54:53 +01:00
Jeremiah
9c6fdb567d TGUI list conversions + bug fixes (#63354)
About The Pull Request

    Converts more inputs to TGUI. Possibly all user-facing input lists in the game.
    Did any surrounding text/number inputs as well
    Added null choice support so users can press cancel.
    Added some misc TGUI input fixes
    Fixed custom vendors while I was there

I refactored a lot of code while just poking around.
Primarily, usage of .len in files where I was already working on lists.
Some code was just awful - look at guardian.dm and its non use of early returns
If there are any disputes, I can revert it just fine, those changes are not integral to the PR.
Why It's Good For The Game

Fixes #63629
Fixes #63307
Fixes custom vendors /again/
Text input is more performant.
Part of a long series of TGUI conversion to make the game more visually appealing
Changelog

cl
refactor: The majority of user facing input lists have been converted to TGUI.
refactor: Tgui text inputs now scale with entered input.
fix: Many inputs now properly accept cancelling out of the menu.
fix: Fixes an edge case where users could not press enter on number inputs.
fix: Custom vendor bluescreen.
fix: You can now press ENTER on text inputs without an entry to cancel.
/cl
2021-12-31 11:07:28 +13:00
John Willard
6c0aba5da4 removes double spaces AFTER symbols (#62515)
* removes double spaces AFTER symbols

* found more
2021-11-03 21:09:35 -04:00
Sealed101
49d8a96f26 feex (#62511)
this includes the anti-drop implant issue as well
2021-11-03 20:38:07 -04:00
Watermelon914
6b360a0e80 Shooting specific wizard staffs as a non-wizard or non-magician now backfires in different ways. (#62257)
About The Pull Request

If you try using the staff of change, the staff of chaos, the spellblade or the staff of healing as a crewmember, then it'll backfire.
People who can use the staff normally: Apprentices, Wizards, Amateur Magician (from Summon Magic event)

Backfiring is different depending on the staff, each effect is listed below and happens when you try firing the staff.
Staff of change - Wabbajacks the imposter, although they can't become a xeno or a borg.
Staff of chaos - 5% chance to fire the staff at the imposter using it.
Staff of healing - Acts as a medibeam gun to the imposter.
Why It's Good For The Game

Crew getting access to the Staff of Change tends to end in a lot of people becoming xenomorphs or syndicate borgs. It forces the round into a turn for the worse for all antags as xenomorphs have hardstuns, syndicate borgs have emag, greatly improved healing chemicals and powerful weaponary.
Crew getting access to the Staff of Healing results in death being irrelevant. Killing people is no longer a viable tactic as an antagonist because anyone killed, no matter how damaged their body is, can be instantly healed with this staff.
Crew getting access to the Staff of Chaos is like crew getting access to the staff of change and the staff of healing at the same time, only more unpredictable. It's better if they can't reliably use it to get the spells they want as chaos is implied in the name, it becomes russian roulette trying to get the correct bolt as you can also get shot by a bolt of death, instantly killing you.

This is a better alternative to outright removing the staffs or making them usable only by wizards as it gives a quirky use to trying to use them as a crewmember. Maybe not the staff of healing, but fuck the staff of healing.
Changelog

cl
balance: If you try using the staff of change, the staff of chaos or the staff of healing as a crewmember, then it'll backfire. The Staff of change wabbajacks the user, like the pool of change; this means you can't become a xenomorph or a syndicate borg. The Staff of chaos has a 5% chance of firing the bolt directly at the user using it. The Staff of healing now behaves like a medibeam gun to non-wizards trying to use it.
/cl
2021-10-28 11:50:59 +13:00
itseasytosee
f51000f506 Repaths knives to not all be children of the kitchen knife. (#62035)
Basically makes the code less dumb, took a long time. I worked hard to make sure there were no unintended effects (minus the fact you can no longer get spoons from the experimentor). No player-facing effects

I thought it looked weird that all cultist and combat knives were subtypes of the kitchen knives
2021-10-15 15:28:01 -07:00
Ghilker
95c8e00af7 cleanup _HELPERS/_lists.dm and all the necessary files (#61827)
Bring _HELPERS/_lists.dm to latest standards by:
-Adding proper documentation and fixing existing one
-Giving vars proper names
-Procs now use snake case as per standard (many files that use those procs will be affected)
2021-10-12 14:48:51 +01: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
Kylerace
d9ee5e7297 moves obj_integrity and associated procs to the atom level (#61183) 2021-09-06 04:07:26 -07:00
Fikou
9814934605 adds a gun circuit shell (#61156)
adds the circuit gun shell, every projectile it hits with outputs the shot mob, everytime its shot charge from an attached circuit is transferred to it, it deals no damage
increases the range of the to string circuit to 7 tiles from 5, now should get everything in view range
2021-09-02 19:29:49 +01:00
LemonInTheDark
cd576ab519 Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
2021-08-15 21:09:26 -07:00
Ghom
68aa7ebe4d wormhole projectors now fire blue wormholes with lmb and orange ones with rmb. (#60563) 2021-08-15 20:30:19 -07:00
itseasytosee
447b43fa17 Meat-hooks and changeling tentacle's firing pins are no longer visable (#60455)
Adds a Boolean to mark guns as "pinless" so they don't care about or show firing pins
2021-07-28 17:35:10 -03:00
Mothblocks
e0c72b16b3 Fix runtime when deleting crossbows/syringe guns (#60421) 2021-07-26 03:59:24 -07:00