Commit Graph

2637 Commits

Author SHA1 Message Date
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
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
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
John Willard
952c3ee0d3 Removes ComponentInitialize() (#69118)
* Removes ComponentInitialize()

Completely removes ComponentInitialize() as a proc, which was called on every single atom in the game, twice in some instances (like new players), over something that can already be done with Initialize().
This is the second attempt at doing this, after the first attempt fell apart for some reason. This time it was way easier though, since storages are no longer a Component.

* update icon blocker added before calling parent

* Update code/game/machinery/porta_turret/portable_turret.dm

Co-authored-by: san7890 <the@san7890.com>

* adds a mapload while I'm here

* moves human mood

* Does some UNRELATED thing to the PR

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-08-11 19:01:32 -04:00
necromanceranne
25094ac203 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.
2022-08-11 23:19:14 +02:00
Seth Scherer
34b4034777 Replaces the mood component with a mood datum (#68592)
About The Pull Request

Mood was abusing signals and get component pretty badly, so I redid it as a datum to stop this.
Why It's Good For The CODEBASE

Better code pratices, also gives admins easier tools to manage mood
Changelog

cl
admin: Added two new procs into the VV dropdown menu to add and remove mood events from living mobs.
/cl
2022-08-12 08:59:20 +12:00
MrMelbert
92dc954ab5 Fixes 118(give or take) cases of mapload not being passed to initilaize (#69107)
fixes 114 cases of mapload not being passed to initilaize
2022-08-11 10:22:33 -04:00
Zonespace
26df50fb87 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.
2022-08-09 23:08:48 -04:00
ShizCalev
41e218862e [s] holdup fixes (#69067)
holdup fixes
2022-08-10 04:21:51 +02:00
Mooshimi
f340897498 blind people know when things happen to them (#68950)
* Update strippable.dm

* hit by things blind support

* indentation sadness

* wrong var type moment

* Update code/datums/elements/strippable.dm

I didn't touch this but sure we can add this

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>

* requested changes

Co-Authored-By: Mothblocks <35135081+Mothblocks@users.noreply.github.com>

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-08-05 20:25:59 -04:00
Mooshimi
b09f3868f8 individual LOG_GAME (#68683)
About The Pull Request

    replaces a ton of log_game with user.log_message so the log is added to individual and global logs.
    adds a few logs for individual LOG_VICTIM, LOG_ATTACK etc logging.
    adds logging for bluespace launchpad's tele coords being changed.
    took the word "has" out of log_combat, as it's extra and just lengthens the log.

Why It's Good For The Admins

It's extremely laggy to open game.txt so an alternative is individual game logs
Changelog

cl
admin: A lot of game logs will now also be in individual game logs, for convenience in log diving.
admin: Added logging for bluespace launchpad x and y offset changes, which go to individual game logs.
admin: Attack logs will now be slightly shorter, one useless word was removed.
/cl
2022-08-05 09:32:02 +12:00
Y0SH1M4S73R
0debbf03c4 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).
2022-07-31 10:30:45 +03:00
Fikou
731f87895a [NO GBP] fixes tk firing for real (#68804) 2022-07-27 15:31:50 -04:00
Salex08
8a8fa9c99c 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.
2022-07-27 14:30:04 -04:00
Fikou
0ff9909c97 secondary fires no longer kill the user (#68734) 2022-07-27 14:27:06 -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
Kylerace
fe7513d282 addresses reviews on the tram pr made after merge, fixes diagonal movement bugs (#68033) 2022-07-16 21:44:41 -07:00
necromanceranne
a59960f91f Fixes speedloaders and stripper clips only being able to load their initial ammo subtype, and not their matching caliber as intended. (#68394)
Allows speedloaders for the .357 and .38 to load any matching caliber. Allows stripper clips for 7.62 to do the same.
2022-07-16 20:06:55 -05:00
Fikou
71835a7c1c Nukie Rework Part 2: Nuclear Operative starting gear rework (#68401)
Replaces the nuke op Makarov with the Ansem, a clandestine pistol firing 10mm rounds which do more damage. Ammo costs more.
Replaces the nuke op survival knife with the energy dagger, as well as giving it a soft light, light armor penetration and a light wound bonus.
Replaces the diamond drill in their closet with an entrenching tool, which swaps between crowbar, pickaxe and shovel modes.
Gives the nuke op survival box the syndie box design, as well as a crowbar, screwdriver and mini welder.
Removes the nuke op leader's Krav Maga gloves.
Updates the esword and edagger sprites with ones i had lying around from 2019, they are more consistent.
Moves pistol sprites a bit up to center them.
2022-07-16 19:25:52 -04:00
Fikou
a592c777ff 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
2022-07-16 05:03:44 -07:00
Y0SH1M4S73R
111b1ffe01 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
2022-07-15 23:59:36 -07:00
necromanceranne
09fe98c103 Touches up the Makarov sprites one last time, totally doesn't add a shadowy fake 10mm Makarov. (#68160)
Redoes the Makarov sprite again, adds the Ansem pistol, the shadowy fake of the Makarov in 10mm.
2022-07-12 19:48:08 -07:00
magatsuchi
7d0f393f5d Tsu's Brand Spanking New Storage: or, How I Learned To Pass Github Copilot As My Own Code (#67478)
Currently, storage works as a subtype of /datum/component, utilizing GetComponent() and signals to operate. While this is a pretty good idea in theory, the execution was pretty trash, and we end up with alot of GetComponent() snowflake code (something that shouldn't even need to be used frankly), and a heaping load of scattered procs that lead into one another, and procs that don't get utilized properly.

Instead, this PR adds atom_storage and proc/create_storage(. . .) to every atom, allowing for the possibility of storage on quite frankly anything. Not only does this entirely remove the need for signals, but it heavily squashes down the number of needed procs in total (removing snowflake signal procs that just lead to one another), reducing overall proc overhead and improving performance.
2022-07-08 18:13:18 -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
Salex08
34e6b0b6c6 Fixes a big oversight with steal guns objective (#68093) 2022-07-04 01:03:11 -07:00
MrMelbert
f8f3dbed98 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. (#67083)
* destroy proc holder pt1
- change proc_holder/spell to action/cooldown/spell
- docs all the spell vars, renames some of them
- removes some useless vars
- start with pointed spells, as they're easy

* kill proc_holder pt2
- kill a buncha vars and replace it with flags
- convert a ton over
- general code improvements

* kill proc_holders pt3
- convert a good few more spells
- rename some signals
- handle statpanel
- better docs

* kiill proc_holder pt4:
- restructure the file system of action.dm, separating a good amount of item actions and miscellaneous garbage into files where they belong slightly better. Also splits off item actions, cooldown actions, innate actions, etc. into their own files, overlal making it much better to work with
- converts touch attacks to actions
- converts blood crawl, jaunt subtype

* kills proc_holder pt5
- clears up some icon issues so all the currently converted pages don't have errors
- shapeshift
- some more action cleanup

* kills proc_holder pt5.5:
- some documentation
- reworks feedback to prevent oversight with teleports and stuff

* kills proc_holder pt6:
- converted cult spells
- converted magic missile
- converted mime spells
- chipped away at the errors
- removed some vars which were too general, replaced them with more locally applicable vars. for example "range" which could mean "projectile range" or "aoe radius" or whatever - instead of having a broad net which everyone applies to in a confusing matter, instead lets each spell delegate on their own.
- merged magic/spell and magic/aoe, as the comment intended
- more unified behavior for spell levelling

* kill proc_holders pt 6.5:
- replacing a buncha old proc_holders that have been updated to reduce some errors. sub 900 baby

* kills proc_holder pt 6.75:
- minor fixes

* kills proc_holder pt7:
- cuts down on some errors
- refactors some wiz events

* kills proc_holder pt 7.5:
- malf ranged modules
- some minor errors

* kills proc_holder pt 7.75:
- mor eminor error handling, cleaning up changes

* kill proc_holder pt8:
- refactors spell book
- refactors spell implant
- some more minor error fixing

* kill proc_holder pt 8.5:
- scan ability

* Adds some robust documentation

* kill proc_holder pt9:
- converts some / most mutations over

* kill proc_holder pt10:
- sort out all the granters
- refactor them slightly
- fix some compile errors

* Some set-unset sanity - going to need to test removing Share()

* Removes transfer actions. It doesn't seem to do anything.
- Transfer_actions was called when current = new_character so locially speaking the early return in Grant() should cause it to NOOP. Test this in the future though

* Removes sharing from actions, docs actions better

* Some better documentation for spell and spell components

* Kills proc_holder pt11:
- Finally finishes ALL THE SPELLS IN THE SPELL FOLDER
- Fixes some more errors

* kills proc_holder pt11.5:
- minor error fixing and sanity

* Method of sharing actions. Can be improved  in the future, needs testing

* Implements a way to update the stat panel entry for a spell. Also gets rid of VV stuff, as you can update the bigflags directly in VV now.

* Curse of madness bug I put in.

* kills proc_holder pt12:
- sub 500 errors!
- converts cytology mobs
- converts and refactors spiders slightly
- some minor fixing around the place as usual

* kill proc_holder pt13
- Finishes heretic spells
- Sub 300 errors!
- some touch refactoring to account for mansus grasp

* kills proc_holder pt14:
- revenant
- minor bugfixing for heretic stuff

* kills proc_holder pt14.5:
- some missed stuff for revenant + heretic

* kills proc_holder pt15:
- alien abilities
- more minor fixing
- sub 100 errors. The end is nigh

* kill proc_holder pt16? 17:
- Finishes cult spells
- sub 50 errors!
- refactors the way charge works
- renames / moves some signals

* kills proc_holder pt final:
- sdql spells
- no more errors!

* Bugfixes round 1

* Various bugfixing
- documentation done
- give spell works
- can cast spell gives feedback conditionally
- is available takes into account casting ability

* Some accidental reversions + fixes

* Unit tests

* Completely refactors jaunting
- All bloodcrawling is now handled on the action itself instead of across various living procs
- slaughter demons have their own blood crawls
- jaunting dummies don't have side effects on destroy() anymore

* Wizard spell logging and even more refactoring
2022-07-01 02:01:02 -04: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
necromanceranne
7096580260 Updates the sprites for bullets (inflight), adds pellet sprites, redoes the thermal projectile sprites (#67856)
imageadd: Improves the sprites for bullets, thermal projectiles, and introduces pellet sprites.
2022-06-30 23:17:27 -04:00
Coffee
b40d1e6c20 Fixes gunshot sound runtime (#67943)
* Fixes the bug

* Updates comment
2022-06-24 02:45:25 -04:00
Tim
41c1d71bc4 Add magic reactions to hydroponics plants (#67724)
* Add magic reactions to hydroponics plants

* Refactor magic bolts for plants

* Add polymorph proc to hydroponics plants

* Fix mob and plant_tray variable names
2022-06-22 23:02:44 -05:00
AnturK
fddb6ea124 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/
2022-06-16 22:36:10 +01: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
Fikou
9a0cc0d54f unrestricted wizard healing staff no longer tells you you are weak (#67726) 2022-06-15 01:50:46 -04:00
dragomagol
689f7ff37c Ports Tau Ceti's welding animation! (#67725)
add: welding now has an animation!
2022-06-14 08:02:29 -04: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
Tim
8576db2f32 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
2022-06-07 21:25:11 +12:00
TemporalOroboros
2683ec04b0 Improves logging for smoke clouds. (#67206)
About The Pull Request

Makes smoke propagate the fingerprints of the last person to touch the source of the smoke.
This makes gunpowder smoke actually log the person responsible for the explosions.
Why It's Good For The Game

As of right now gunpowder smoke (and similar) doesn't actually have very good logging as as far as the smoke is concerned it's never been touched and so the resulting explosions are blameless. Obviously, scrolling up for a good minute looking for who has just obliterated the escape shuttle is slightly annoying for the admins. Ergo, making the explosions log who actually is responsible for making the smoke they originate from should reduce admin annoyance.
Changelog

cl
admin: Smoke now logs the last person to touch the source of the smoke as the last person to touch the smoke itself. Gunpowder smoke should be less annoying to log dive as a result as every explosion will log that person.
/cl
2022-06-07 15:45:20 +12:00
silicons
35125733c6 fixes infinite loops when a projectile pierces a bumped object (#67485)
thaaat
2022-06-05 23:57:46 -04:00
SmArtKar
305aa1e478 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.
2022-06-03 04:56:47 -04:00
Kapu1178
6d470992cb This tail refactor turned into an organ refactor. Funny how that works. (#67017)
* Fuck you (refactors ur tails)

* Errors

* Wow. Pain.

* Fixes up probably everything

* finish up here

* Fixes hard del maybe

* original owner hard del

* garbage collection runtime

* suck my peen byond

* Mapped tails

* motherfucker.

* motherrfucker. again.

* Whooopppppsie

* yeah bad idea

* Turns out external organs literally just sat in nullspace forever if their parent was deleted, and didnt Remove() themselves, causing harddels.

* So anyways I repathed all organs

* Fixes

* really.

* unit test... test

* unit test-test but it passes linters this time because im a moh-ron

* I've lost track of what im doing at this point

* Hopefully fixes hard del?

* meh

* Update code/datums/dna.dm

* things n stuff

* repath from master pull
2022-05-30 21:18:34 -07:00
Jolly
cfc2330528 [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
2022-05-23 13:01:19 -06:00
LemonInTheDark
7e9ff85f2a [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
2022-05-20 00:54:00 -07:00
MrMelbert
29bfa42779 Converts jittering to status effect, striking yet another mob level status value (#66852)
Converts jittering to status effect, striking yet another mob level status value
2022-05-11 00:56:29 -04:00
GoblinBackwards
3dac11dc3a Removes AOE hit detection from fireball (#66828) 2022-05-10 20:45:06 -04:00
Ryll Ryll
653d75c72e 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.
2022-05-09 10:24:26 -04:00
Watermelon914
37489698a1 Steal objective can now be cashed out early for less reward as soon as you place the bug on. Removes smuggling objective and adds a new 'Destroy Machinery' objective (#66771)
Steal objective can now be cashed out early for less reward, but completing the time in its entirety will give extra TC and reputation.
The smuggling objective has been removed and replaced with the 'Destroy Machinery' objective, which focuses on disrupting workflow by destroying stuff like protolathes, telecomms and research servers.
Made the easier steal objectives worth slightly less TC
2022-05-08 11:19:22 -07:00
MrMelbert
8df3a80bd5 Refactors the Charge wizard spell (#66599)
This PR refactors the "charge" spell to be signal based instead of looping over held items + istype checks.
This was atomized out of my proc holder removal PR. Figured it was small enough to handle on its own.
2022-05-07 20:02:24 -07:00
TemporalOroboros
068a3be859 Makes smoke and foam attempt to fill the available space. (#65281)
Have you ever noticed that the chemical smoke and chemical foam reactions are a lot less effective in confined spaces? This is because they currently attempt to spread to all tiles within n steps of their origin. If they can't expand onto a tile they get blocked and the expanding cloud/flood misses out on all the tiles that would be in range, but that can't be reached.

Obviously smoke and foam getting blocked by walls and the like makes intuitive sense, but it seemed a bit nonsensical that walls would basically delete a significant chunk of an expanding, amoebic mass. The solution I came up with is making smoke and foam expand until they cover a certain area, with a shared tracker for the target size and total size of the flood. The flood will simply expand as normal until it covers the desired target area. Blocked expansions just don't count and will be made up for with expansion elsewhere.

Attendant to these changes are a whole bunch of minor code improvement to smoke, foam, and one for wizard spells because I was already in the area and :pain:.

There have been some minor balance changes to the chemical smoke and foam reactions:

I converted them over to passing the desired area of the resulting smoke cloud/foam flood. The old equation for the resulting area was along the lines of 2sqrt(x)(sqrt(x) + 1) + 1 given reaction volume x and given unobstructed expansion. I've made them just pass around 2x instead. This is actually less than they used to try for, but now they're guaranteed to reach that unless the flood is fully contained. Not entirely certain if buff or nerf. Probably buff on the station.
Also, foam dilution is now based on covered area instead of target expansion range. Since this scales faster than it used to foam has been effectively nerfed at high volumes. To compensate for this I removed the jank 6/7 effect multiplier and increased the base reagent scaling a bit. Again, not certain if buff or nerf.
2022-05-07 13:10:37 -07:00