* Fixes runtimes from firing projectiles, adds unit test for firing guns (#57345)
* Fixes runtimes from firing projectiles, adds unit test for firing guns
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Fixes the randomly failing unit test that sometimes happens. (#57266)
* Fixes the randomly failing unit test that sometimes happens.
Co-authored-by: Thalpy <33956696+Thalpy@users.noreply.github.com>
* moves gun related icons to guns folder (#57077)
moves ammo icons, projectile icons and hitscan effect icons to guns folder
renames projectile.dmi to ballistic.dmi so its less confusing
moves rcd ammo from ammo.dmi to tools.dmi with the rcd
* moves gun related icons to guns folder
Co-authored-by: Fikou <piotrbryla@onet.pl>
* improves fire extinguisher code, and makes fire extinguisher water go through machinery, lockers, and crates (#57004)
* improves fire extinguisher code, and makes fire extinguisher water go through machinery, lockers, and crates
Co-authored-by: Tlaltecuhtli <33834933+Tlaltecuhtli@users.noreply.github.com>
* Add a new admin weapon: foam finger that shoots missiles (#57013)
An admin only rocket firing foam finger has been added. There is also
a toy version available from arcades that is just a giant foam finger.
* added a new admeme weapon: foam finger that shoots missiles as requested by boris (now in arcades!)
Co-authored-by: c420-o <76887567+c420-o@users.noreply.github.com>
* Fixes projectile damage multiplier not applying to stamina damage dealt by projectiles. (#57016)
* Fixes projectile damage multiplier not applying to stamina damage dealt by projectiles.
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* replaces all instances of ammo_casing/BB to loaded_projectile again without crashing this time
* a
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Holodeck Bugs are NOT ALLOWED!!!! Fixes Issue with Holodeck Projectiles (#56933)
* Holodeck Bugs are NOT ALLOWED!!!! Fixes Issue with Holodeck Projectiles
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
* Sprite fixes: Suppressed Sniper Rifles and Donksoft Pistols (#56754)
* Gives the sniper rifle a suppressor overlay so that it no longer shows up as missing a sprite, also fixes donksoft pistols by repathing them from pistols over repathing them from toy saber smgs. Creates a flag for checking if a gun needs a toy overlay, so it is handled in the parent.
* Sprite fixes: Suppressed Sniper Rifles and Donksoft Pistols
* Update maint_loot_common.dm
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Refactors sharpness to use a bitfield (#56817)
Refactors sharpness to use bitfield instead of bitflags in case someone wants to add more types of sharp things, or unique behaviour with them
* Refactors sharpness to use a bitfield
* Update bullets.dm
Co-authored-by: Sparkezel <53384660+Sparkezel@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Refactor can_inject, and introduce try_inject (#56816)
Splits can_inject into can_inject and try_inject. The latter can perform side effects, while the former cannot. Moved the show_error bool parameter to a flag that try_inject checks.
Changes the signature to can_inject(mob/user, target_zone, injection_flags). This was previously redefined in several places, making it impossible to use named parameters. This refactor now allows named parameters to be used, and thus avoiding the ugliness of TRUE, FALSE, FALSE in parameters.
* Refactor can_inject, and introduce try_inject
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
* fixes 2 runtimes caused by holding people up with a gun (#56800)
Fixes two runtimes, one caused by status effects always expecting a return from throw_alert, and another caused by holding yourself up (which you shouldn't even be able to do). Also fixes an issue caused by multiple people holding up the same person, when one of the perpetrators stopped holding up the victim, all of the victim's related alerts disappeared.
* fixes 2 runtimes caused by holding people up with a gun
Co-authored-by: TJatPBnJ <69724863+TJatPBnJ@users.noreply.github.com>
* M90 changes (#56667)
The m90 is now 14tc instead of 18. Its grenades can be bought from the uplink in boxes for 6tc, instead of individual grenades for 2tc each. You can also fire the m90's grenade launcher with right click.
* M90 changes
Co-authored-by: TJatPBnJ <69724863+TJatPBnJ@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Renames the _alt attacks to _secondary for clarity (#56752)
* Renames the _alt attacks to _secondary for clarity
Co-authored-by: Rohesie <rohesie@gmail.com>
* Add alternate attack procs (#56663)
Adds alternate attack procs for right-clicking. Updates the gunpoint code to use this new proc as an example (though I suspect this is being changed soon, so oops).
This makes it easier to add new behavior to right click, which we should be doing.
* Add alternate attack procs
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
* You can no longer shoot and melee with guns at the same time (#56647)
* You can no longer shoot and melee with guns at the same time
Co-authored-by: Qustinnus <Floydje123@hotmail.com>
* makes blast cannons not seem like an innocent item before a bomb is loaded (#56645)
* makes blast cannons not seem like an innocent item before a bomb is loaded
Co-authored-by: Fikou <piotrbryla@onet.pl>
* You can now remove embedded objects directly with a hemostat (#56637)
* You can now remove embedded objects directly with a hemostat
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Adds powerup system, refactors ctf pickups and powerup mine subtypes into it (#56605)
* Adds powerup system, refactors ctf pickups and powerup mine subtypes into it
Co-authored-by: Fikou <piotrbryla@onet.pl>
* cyborg disablers and cyborg t*sers are now emp-proof like the other cyborg-mounted energy-based guns are (#56481)
* cyborg disablers and cyborg t*sers are now emp-proof like the other cyborg-mounted energy-based guns are
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
* Defines calibers (#56476)
Adds defines for all of the ammo calibers
Replaces all current magic strings with defines
Docs what guns use what calibers
Corrects the name of the incendiary .45 ammo casing to indicate that it fires incendiary rounds rather than armor piercing rounds
* Defines calibers
Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
* The day has come gamers, the mosin nerf/rework (#56319)
* THE NERF
* fixes a dumb mistake
* Sanity check and second thoughts
* mosin jamming
* adds the cleaning supplies, sprites, slight changes to dmg and jamming and HNNNG ONE LAST BUG
* adds maint kit to russian surplus, second try at fixing
* everything is fixed now :)
* finishing touches
* Last fix?
* fix
* fix var names
* a new sound and few more fixes
* add /brand_new variant to all ert/special spawned mosins, added a check if bolt is locked
* Bolt_locked is true when bolt is open 😂
* added a clamp just in case
Co-authored-by: Sparkezel <1haslo4@ gmail.com>
* The day has come gamers, the mosin nerf/rework
* Update to use our realism
Co-authored-by: Sparkezel <53384660+Sparkezel@users.noreply.github.com>
Co-authored-by: Sparkezel <1haslo4@ gmail.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
* Replacing magic numbers with defines in robot code (#56241)
While scouring robot code for some (hopefully upcoming) fixes, I found a bunch of gross numbers. These numbers are now letters.
* Replacing magic numbers with defines in robot code
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
* [s] fixes damage multiplicative exploit with foam darts (#56250)
## About The Pull Request
fixes a pretty bad exploit with foam darts
## Why It's Good For The Game
- Modify a dart with a pen, giving it 5 damage
- Target someone's mouth (or a monkeyman)
- Fire
- Firing sequence for handle_suicide multiplies damage by 5 on the projectile instance
- Dropped projectile has 25
- Repeat 1 more time for 125 instacrit dart, or another time after that for 600 instakill dart
all discovery credits go to @ necromanceranne, this was brought to my attention
* [s] fixes damage multiplicative exploit with foam darts
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
* Infinite Gun Culling: Gun Kit Edition (#56133)
Every prototype firearm in the game now utilizes crafting to construct it, usually sacrificing a standard version of that firearm in order to produce the new one. The guns are made using gun part kits you print from the security protolathe (or buy, in the case of hellfire lasers).
* Infinite Gun Culling: Gun Kit Edition
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
* Makes the rest of large guns bulky (sans traitor objectives and a few others) (#56132)
## About The Pull Request
What it says on the tin.
Practically everything but pistols, SMGs, and traitor weapons can no longer be stashed into bags.
I had considered making some large guns that traitors can order (like the blast cannon) also bulky, but concealment is important for some of those things.
However, the bulldog shotgun and sniper rifle have been made bulky, because they're shotguns and sniper rifles!
Traitor objectives are still normal size and can fit in backpacks.
## Why It's Good For The Game
Makes previous changes to weapons and thus balance consistent across our full list of guns. Players can clearly understand what can fit in the bag based on the size of the weapon.
* Makes the rest of large guns bulky (sans traitor objectives and a few others)
* Update special.dm
Co-authored-by: Cartographer-D <63861499+Cartographer-D@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Adds Rocket Backblast (#55681)
This PR adds the backblast element, which when attached to a gun, creates giant plumes of fire when said gun is fired. The PM9 rocket launcher that nuke ops can buy kinda sucks and even a direct hit with the standard rockets loaded isn't enough to guarantee a one-hit crit on a direct hit against an armored opponent, which sucks for how much you pay for it. In that vein, I've also buffed the standard rockets a bit, they now do 50 brute up from 30 on a direct hit, and they create flames on their explosion.
Also makes a tweak to /proc/get_turf_in_angle(), since tile coordinates start at 1,1 instead of 0,0 that proc is now clamped to min 1,1 rather than 0,0
* Adds Rocket Backblast
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>