Wing sprites are courtesy of Papaporo Paprito over on Fulpstation!
This PR adds a second sprite for flight potion wings for moths.
A new system is implemented to make this possible, using radial menus.
About The Pull Request
This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:
Disarm and Grab intents have been removed.
Harm/Help is now combat mode, toggled by F or 4 by default
The context/verb/popup menu now only works when you do shift+right-click
Right click is now disarm, both in and out of combat mode.
Grabbing is now on ctrl-click.
If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)
Minor interaction changes:
Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game
Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.
As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.
As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.
In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.
The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog
cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
About The Pull Request
The core of the PR:
The improvised shotgun that was is dead and removed.
Now we have Pipeguns. Pipeguns are bolt action rifles that have a damage multiplier that reduces their damage to 75%, and can be modified to fit the rare 7.62mm bullets. If you want to that is.
The pipegun also slowly increases in misfire probability for every shot at a rate of 5% per shot.
Pipeguns can also be upgraded to Regal Pipeguns. These contain more bullets, don't misfire and don't have a damage multiplier. To acquire one is a maint secret, only available to lucky assistants who come across the diary of a dead assistant. The probability of finding the book is quite, quite low.
Bandoliers now fit individual 7.62mm. Because why not. Currently they're available in stripper clips that fit into most combat belts so this is mostly a style preference at the moment
Other shit
Ammo modification and misfire behaviour is now generalized to all ballistics. You can now make any gun misfire and any internal magazine gun swap ammunition.
Misfires are not a flat chance. Instead, they increment as the gun fires over time.
Ports over this PR Citadel-Station-13/Citadel-Station-13#12274 which I felt was pretty neat conceptually for making some weapons weaker.
Makes the icemoon hermit's mosin into a regal pipegun, just to get mosins out of easy access.
Why It's Good For The Game
Improvised shotguns were one of my favourite weapons to horribly abuse while they were utterly broken a nice alternative, but I fully support moving towards curbing gun power curve. Part of that should include looking at improvised weapons like this which are seeing considerable usage with the removal of buckshot and slugs.
Initially I wanted to pair this with a PR of my own to bop Mosins on the skull along with it, but #56319 is already doing that, and while it's a very lenient approach to my own (I was going to remove them entirely from cargo), I respect it.
Changelog
cl
add: Replaces improvised shotguns with Pipeguns (with a special variant for those willing to go through arbitrary bullshit to acquire it and sheer good luck).
add: Now all guns can be set to misfire and swap ammunition.
add: Misfire chance is incremental as you fire the weapon, and not a flat static chance. This can be reset by using a piece of cloth on the gun and 10 seconds of cleaning.
balance: This has been applied to the detective revolver, but it only increments while using .357 bullets.
add: Guns can have damage multipliers attached for the bullets they fire. The pipegun (but not the regal version) is the first example with a 75% damage output.
balance: The Ice Hermit now has a regal pipegun instead of a Mosin Nagant.
balance: The bandolier fits 7.62mm.
balance: You can construct receivers and rifle stocks in the crafting menu.
balance: Detaches the magical rifles from the boltaction subtype, since they are just basically not using any variables attached to that subtype and made from a series of early returns.
/cl
This PR makes it so that the recycler no longer moves stuff to nullspace before qdelling it
It resulted in lost materials (now the battery the tablet computer would try to drop should actually get recycled instead of runtiming / being in nullspace)
I tested this change with objects (ammo boxes, debug tools box) that contained "lots" of other objects and couldn't see any performance problems or runtimes.
The objects contained by the parent object were pretty much recycled instantly and one couldn't even see them
This should prevent runtimes caused by the recycled objects loc being null and also should result in objects being fully recycled.
* Makes duffelbag curse less cheesey and more for what it was intended to do by limiting the number of bags you can have forced on you
* Makes casting the spell a whisper. Because putting duffelbags on sec while disguised sounds really funny.
* Makes duffelcurse equivalent to the blind spell in cooldown and cost
instead of heat and cold damage being handled by unsuitable_atmos_damage, instead its handled by unsuitable_heat_damage and unsuitable_cold_damage
if these vars arent set on the mob, they are set by default to the value of unsuitable_atmos_damage
Fixes included config files not loading, adds an error to catch future instances, cleans up some code and comments a proc
We were passing a list as a filename, which is never good for file loading
* Fixes / refactors emotes
Crack emote no longer runtimes
Ghosts can use help emote
Exhale / inhale emote only work for living
Move beep emote living subtype
Help emote no longer tells you that you can't use it
* Remove var in arguments
Lint
* Replace loop with join
"long beard" is not a beard option
replaced it with Beard (Very Long) which is the same thing
adds vars for corpses to set their hair colors
makes wizard have white beard
Cleaned up, commented on, and (hopefully) improves a lot of blob code.
Put pretty much everything balance-related (except for the strains themselves) into a define file, for easier viewing, changing, and balancing.
Added a bunch of new functionality that new strains (some of which I plan to add in the future) could use: from increased expansion range to more spores per factory.
The various internal variables are in °K. The UI displays °C.
Conversion to °C was done before clamping to 2.7°K, leading Space Heaters
to have a range less than their stated values.
Functionally, this changes the minimum temperature boundary from
2.7°C to 2.7°K. The minimum target temp with maxed, non-badminned
parts is -90°C.
You can still produce points at a decent rate. This stops someone
that managed to thread the needle to extremely low pressures while still
meeting mass requirements from making half a million points per second,
though that did require maxed out parts.
Fixes 2 wendigo runtimes:
- When the wendigo tries to teleport to you but there is no location to teleport it would runtimes because the code tried to pick from a empty list
- The wendigo scream message used capitalize which is not needed and also runtimed, since capitalize expects a string not some object
This commit will add a slightly modified version of Pubbystation's
Monastery to the list of available emergency shuttles, becoming the
most expensive shuttle to buy at 250 times the crate price (Defaults
around 50,000cr)
This shuttle will cause significant damage and fully showcase the
absurdity of the Monastery's size by providing an up close and
personal, interactive comparison. PubbyStation's monastery will be
forever preserved.
Added a button to the Nanite Cloud Controller Rules UI with two states:
- Meet all (default) - all rules must be met to run the program
- Meet any - any of the rules must be met to run the program
This change doesn't impact the default rule behavior, but gives an
ability to create more flexible rule setups when needed.
Fixes#56561
the holodeck control console now returns if the previous program still has not finished loading in, so it should now be impossible to have two concurrent load_program() processes running at the same time and thus programs should not overlap under lag. tested locally with around 80% time dilation and 0 holodeck cooldown while spamming the fuck out of loading simulations
qol as you are gonna check the name of the dude anyway with pda while the input window is open and then missclick into the captain, with this you dont have to
fixes the infinite rod bug where disposal pipes ejecting things under a reinforced floor will break off a rod, but not actually remove the reinforcement, allowing for loops to get infinite rods and by extension metal material. this forces reinforced floors to break when this occurs
if people make a new tile that this doesn't want to be forced they can code it, i ran into some issues about actually spawning the stack item not working properly regardless of checks about whether the floor can pop or not, so its just going to be forced at all times
## About The Pull Request
So, there on the downstream we've encountered a problem with the security officer slots jumping to 12 every time the round starts, regardless of what we set them to in the configs.
In the configs it says that you can set the coefficients to 0 to disable scaling, and upon investigation, it seems that all the scaling coefficients suffer from similar problem.
https://github.com/tgstation/tgstation/blob/master/config/game_options.txt#L198
the `min_val` in the config entry datums is 1 on each of them, leading to unexpected behaviour
## Why It's Good For The Game
It fixes certain config values leading to unexpected and unwanted behaviour