* Nukies Update 5: Bulldog Unchained (Wardens hate this) (I gave it a second magazine) (#69119)
Gives the Bulldog Shotgun a secondary magazine. You can press rightclick to fire and swap to the secondary magazine. You can also swap the magazine manually by pressing Alt-Rightclick on the gun, and load in a new magazine by rightclicking the gun with the magazine.
* Nukies Update 5: Bulldog Unchained (Wardens hate this) (I gave it a second magazine)
* Nukies Update 5: Bulldog Unchained (Wardens hate this) (I gave it a second magazine)
Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Removes ComponentInitialize()
* Fixes a leftover merge conflict marker
* Fixes the oversight that came from the upstream merge skew
* Fixes all of the instances where we used ComponentInitialize() when we shouldn't've been
* Fixes CI being broken because of the HEV suits
Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Replaces the mood component with a mood datum
* Fixes merge conflicts and updates all of our mood events to use the new mood datums
Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Fixes 118(give or take) cases of mapload not being passed to initilaize (#69107)
fixes 114 cases of mapload not being passed to initilaize
* Fixes 118(give or take) cases of mapload not being passed to initilaize
* Fixes a lot (give or take) cases of mapload not being passed to initilaize
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* Butcher's meathook is no longer restricted by TRAIT_NOGUNS (#68989)
can_trigger_gun always returns TRUE on meathooks, because they aren't real guns so shouldn't be checking if guns can be used.
* Butcher's meathook is no longer restricted by TRAIT_NOGUNS
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
* Adds the COMSIG_PROJECTILE_RANGE signal and the pixel_speed_multiplier var for projectiles (#68647)
The COMSIG_PROJECTILE_RANGE signal can be used to add signal handlers for behaviors that a projectile should execute each step of its travel. Currently, nothing uses it, but it is available for use in admin circuits or lua scripts.
The pixel_speed_multiplier var for projectiles acts as the value passed to the trajectory_multiplier argument of pixel_move, which originally was passed a constant value of 1. By lowering this var, you can reduce the speed of projectiles without them becoming jumpy. As an example, magic missile, gauntlet echo, the demonic watcher's temp beam, and the demonic frost miner's projectiles have all been changed to use this var. As such, their movement will be much smoother (but still the same effective speed).
* Adds the COMSIG_PROJECTILE_RANGE signal and the pixel_speed_multiplier var for projectiles
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* Replaces GetComponent in Mining items with Signalers (#68575)
* Replaces many instances of GetComponents in mining items with signals and better uses overall of Components, in drills and the GPS handcuffs.
* To do this, also added 3 new signals to mechs when you are adding/removing mech equipment onto one.
* Replaces GetComponent in Mining items with Signalers
Co-authored-by: Salex08 <33989683+Salex08@users.noreply.github.com>
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs (#68033)
* addresses reviews on the tram pr made after merge, fixes diagonal movement bugs
* wew
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Tsu's Brand Spanking New Storage: or, How I Learned To Pass Github Copilot As My Own Code
* Delete storage.dm
* yippee
* shit
* holy shit i am stupid
* more fixes
* fuck
* woops
* Most compoennts/elements that register COMSIG_PROJECTILE_ON_HIT can now be applied to turrets and projectile spells (#68238)
expands elements that register COMSIG_PROJECTILE_ON_HIT
* Most compoennts/elements that register COMSIG_PROJECTILE_ON_HIT can now be applied to turrets and projectile spells
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* Makes backblast not runtime, moves some of its behaviour to an "incendiary/fire" parent (#68397)
* just a normal fire projectile
* Update code/modules/projectiles/projectile/bullets/_incendiary.dm
* Makes backblast not runtime, moves some of its behaviour to an "incendiary/fire" parent
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* 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
* Balloonify and removes some `to_chat` spam for miners
* Balloonify and removes some `to_chat` spam for miners
Co-authored-by: GuillaumePrata <55374212+GuillaumePrata@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
* 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>
* Fixes teleporting gun with telekinesis
* Update gun.dm
Co-authored-by: FinancialGoose <92416224+TheBoondock@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Completely removes `proc_holders` from existence. Refactors all wizard, xeno, spider, and genetics powers to be actions. Also refactors and sorts ton of accompanying code.
* our changes
* yes
* 0
* Update blackmesa.dmm
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fixed mech CI not working (thanks safeties)
* Fixes consistent jumpsuits not working for the prefs menu
* Oops forgot to commit this
* We lost this from #10050, now they're grey again
* Fixes point-blank ballistic shots, fixing mech CI that way
* Adds the screenshot icons for our antags
* Adds a bunch of screenshots for all of our species (yes they're ugly but we'll fix them later)
* I Love Merge Conflict Markers
* 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
* Energy gunfire sound pitch now varies based on how much ammo is left. Ballistic guns now have bolt sounds for low ammo.
* mirror
* Update gun.dm
Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
Co-authored-by: John Doe <gamingskeleton3@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* Fishing, Version 1 (#67691)
Adds fishing and fishing minigame.
You use fishing rod to fish.
Equipping specific bait/hook/reels will affect your success chances.
You can fish out fish,items and other things.
Fishing Equipment
Fishing rods have three slots: Bait, Reel and Hook.
Any food can be used as bait but dedicated bait makes fishing easier.
You can buy hook and line sets
New bait types:
Worms : Buy can of them at cargo (alternative acquirement method pending)
Doughballs : Use knife on flat piece of dough to get five of them.
Fishing rod types:
Basic : Print these at the lathe, nothing fancy here.
Tech: Experimental tech. Provides infinite bait
Fishing rods can also hook and reel normal items.
Equipment screen and reeling video
Fishing spots
Keep in mind this PR is meant to add the basic systems and i intend to fill these with more fish in future PR's so wait with suggestions until then.
Lavaland lava (no fish here right now, just other stuff), requires reinforced line to fish in.
Maintenance moisture traps.
Beach away mission water.
Fishing portal available for purchase from cargo - This is stopgap until we fill more spots.
Difficulty depends on fishing spot, fish type, and the fish traits and rod setup combinations.
All fish types can have specific traits, most common ones being favourite and disliked bait types/categories.
Other
Fishing catalog now lists fishing related info
New admin debug verb, fishing calculator that show probabilities with different setups so it's easier to balance this.
Fish now have average weight and size. Make sure to boast if you catch a big one.
Adds tgui mouse passthrough
Screens
Sprites:
Fishing portal sprite by @ ArcaneMusic
Other sprites by @ Mey-Ha-Zah
Bad ones by me. (Could still use better fishing minigame backgrounds)
Sounds:
https://freesound.org/people/soundscalpel.com/sounds/110393/https://freesound.org/people/soundslikewillem/sounds/343748/
* Fishing, Version 1
Co-authored-by: AnturK <AnturK@users.noreply.github.com>
* unrestricted wizard healing staff no longer tells you you are weak (#67726)
* unrestricted wizard healing staff no longer tells you you are weak
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
* This tail refactor turned into an organ refactor. Funny how that works.
* Firstly, fixing all the conflicts.
* Fixes all our maps (hopefully)
* Actually, this should fix pod people hair :)
* Almost everything is working, just two major things to fix
* Fixed a certain kind of external organ
* Cleaning up some more stuff
* Turned tail_cat into tail because why the fuck are they separate?
* Moved all the tails into tails.dmi because that was just dumb to have like 3 in a different file
* Adds relevant_layers to organs to help with rendering
* Makes stored_feature_id also check mutant_bodyparts
* Fixes the icon_state names of ALL the tails (pain)
* Fixes wagging, gotta refactor most mutant bodyparts later on
* I Love Added Failures
* Fixed some organs that slipped through my searches
* This could possibly fix the CI for this?
* It doesn't look like it did fix it
* This will make it pass, even if it's ugly as sin.
* Fixed Felinids having a weird ghost tail
* Fixes instances of snouts and tails not being properly colored
Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Add Russian Roulette memories and moods events (#66051)
About The Pull Request
This adds memories to a nearby audience if someone is playing Russian Roulette with a loaded gun. The person who wins or loses also gains a positive or negative mood event that is long lasting. All of these events only trigger if the person playing is targeting a lethal area.
Why It's Good For The Game
Being able to add Russian Roulette to engravings would be pretty cool.
Changelog
cl
qol: Playing Russian Roulette with lethal intent now creates a mood event for the user and is engrained in any nearby peoples memories. The more bullets the better the memory and mood boost.
/cl
* Add Russian Roulette memories and moods events
Co-authored-by: Tim <timothymtorres@gmail.com>
* fixes infinite loops when a projectile pierces a bumped object (#67485)
thaaat
* fixes infinite loops when a projectile pierces a bumped object
Co-authored-by: silicons <2003111+silicons@users.noreply.github.com>
* Fixes statue simplemob teleport not working and 3 other spells not appearing (#67105)
* Fixes statue simplemob not being able to teleport, and their 3 spells they're supposed to have.
* Also repaths statues to netherworld mobs, to reduce copy paste code.
* Fixes statue simplemob teleport not working and 3 other spells not appearing
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
* [MDB IGNORE] More /area/ typepath organization and cleanup (#67107)
This further continues what I did in b4fb8f3ed1 (but instead of just stations, its now every (most) applicable area in the game
* [MDB IGNORE] More /area/ typepath organization and cleanup
* wew
* e
* Update CentCom_skyrat.dmm
* wew
* ews
Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
* [NO GBP] Jetpack and spacedrift: Fixes and niceties (#66628)
* Jetpack and spacedrift: Fixes and niceties
Ok so when I ported spacemovement onto movement loop,
I neglected to port this behavior that existed to support jetpacks.
Basically, if something that lets you move while spacedrifing
completes a move while you're spacedrifting, the
drift should "disable" to let it complete, and then later restart.
I neglected to add support for that, so that's what this does.
There's some other stuff going on here, mostly things to let jetpacks
ignore some of drift's extra behavior, since when a jetpack is not on
stablized, we want both to coexist.
It's a bit of a mess, I'm sorry about that.
Oh and at temporal's suggestion I've moved the visual_delay set from
newtonian move to an istype on the drift component, that was a good
idea, thanks quiet
* Makes dropping a pull while drifting carry the momentum into the pulled thing\
* Adds some extra context to Process_Spacemove, fixes a bunch of stupid
space bugs
It used to be, if you called Process_Spacemove with a direction, it
assumed you were an "action", so a client or mob trying to move in a
direction.
Unfortuantely for it, I needed to be able to use direction to make mob
pull drifting work. So we now actually pass in a second variable
called continuous_move, which tracks if this Process_Spacemove is on
behalf of a continuous move or not
In addition to this, I've added logic to bumping "off" someone to
prevent backbumping if that makes sense, since the bump is in the form
of a newtonian move that's run before the thing that's bumping actually
moves, we need some way to exclude it from holding the other object in
place.
* Adds a jetpack component, uses it to unify all three versions of
jetpacking
I hate you fikou
There were three copies of the same behavior, which made it hard to fix
stuff. Let's just componentize it
* Fixes jetpacks stabalizing even without fuel
This is mildly hacky. The real fix is to do this with events, but I
really don't wanna bend my brain like that. This'll do
* Ensures turn_off always has a user)
* Shut pu
* Bulky drags no longer effect your movespeed in space, fixing a consistency issue between them and all other forms of drags
* Removes some redundant code, cleans up some messy stuff
* Removes redundant safety checking from jetpack code
* see above
* Removes redundant signals
* [NO GBP] Jetpack and spacedrift: Fixes and niceties
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Adds a check for border objects to projectile impacts (#66789)
When a projectile bumps into something, it decides what it actually hits by calling /obj/projectile/proc/select_target on that atom's turf. This lets the projectile prioritize either its original target or any mobs on the tile over whatever other crap is there, but does not account for border objects in the way of the projectile's path, which should always be the first thing the bullet hits.
This PR makes select_target() prioritize the bumped atom if it's a border object, so that things like directional windows and firelocks properly block incoming fire. /turf/Entered already prioritizes border objects in the relevant direction when picking what to pass to Bump(), so we don't need to recheck the direction.
* Fixes ballistics hitting people through windoors and other border objects
Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
* Converts drunkness and dizziness to status effects. Refactors status effect examine text (and, subsequently, stabilized black extracts). (#66340)
* Refactors dizziness into a status effect
* Refactors the dizziness setter to use the new kind
* Drunkness.
- Should drunk continue to work off of a magic value or be swapped to duration? I've not yet decided: For understandability it's preferabale for "drunk" to use a timer (they are drunk for 3 more minutes), but both adding drunk and decreasing drunk currently use weird calculations which would be difficult to carry over.
- Ballmer is a liver trait
* Dizzy was a setter, not an adjuster
* Does all the drunk effects over
- refactors examine text fully
- refactors stabilized blacks because of this
* Removed
* repaths, fixes some issues
* Minor fixes
* Some erroneous changes
* Fixes some dizziness errors
* Consistency thing
* Warning
* Undoes this change, I dont like its implementation
* max_duration
* Max amount
* Should be a negative
* max duration
* drunk doesn't tick on death
* Rework dizziness strength
* Erroneous dizzy change
* Fixes return type
* this should do it?
* well, one more
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>