Commit Graph

1500 Commits

Author SHA1 Message Date
SkyratBot
635f1beda4 [MIRROR] MULEbots uses the blood walking element (now component), fixes MULEs tracking blood infinitely [MDB IGNORE] (#14613)
* MULEbots uses the blood walking element (now component), fixes MULEs tracking blood infinitely  (#68047)

Blood walking is a component, MULES use blood walking

* MULEbots uses the blood walking element (now component), fixes MULEs tracking blood infinitely

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-06-29 13:21:11 +01:00
jjpark-kb
c9561919c2 ash ritual (#14501)
* ash ritual magic

* oops

* recommended changes and fixes

* there

* ashwalker only

* refactor

* there

* the curse needs work

* there, curse is good

* componentify the elements

* adds new rituals and some qol

* fix a small issue
2022-06-28 22:17:01 -07:00
SkyratBot
d3e4f492df [MIRROR] Examine Blocks [MDB IGNORE] (#14562)
* Examine Blocks

* u[dates

* wew

Co-authored-by: 13spacemen <46101244+13spacemen@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-28 19:55:23 +01:00
SkyratBot
18a56ffeeb [MIRROR] (code bounty) The tram is now unstoppably powerful. it cannot be stopped, it cannot be slowed, it cannot be reasoned with. YOU HAVE NO IDEA HOW READY YOU ARE [MDB IGNORE] (#14477)
* (code bounty) The tram is now unstoppably powerful. it cannot be stopped, it cannot be slowed, it cannot be reasoned with. YOU HAVE NO IDEA HOW READY YOU ARE

* fex

* fex

Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-25 01:24:00 +01:00
Gandalf
15581123b0 Vox version Beanyvox (#13400)
* wew

* restore

* wew

* Create vox.dm

* yes

* weh

* updat

* Update _basemap.dm

* fixed

* color options and more fixes

* wew

* more fixes

* Update vox_bodymarkings.dmi

* beak and fix

* e

* Update hands.dmi

* fdx

* wew

* Update hands.dmi

* e

* fux

* feet fixes

* Update mask.dmi
2022-06-19 22:06:43 +01:00
SkyratBot
889b36d5ea [MIRROR] Converts diggable from component to bespoke element [MDB IGNORE] (#14407)
* Converts diggable from component to bespoke element (#67695)

* Changes diggable to an element and fixes it, saving on some memory.

* Converts diggable from component to bespoke element

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-06-19 10:09:15 -07:00
SkyratBot
986642f3a6 [MIRROR] Cursed Dufflebag is now less picky + no longer permanently applies you with pacifism even after being removed + causes less wounding [MDB IGNORE] (#14396)
* Cursed Dufflebag is now less picky + no longer permanently applies you with pacifism even after being removed + causes less wounding (#67687)

Cursed Duffelbag is less picky, now. Instead of snowflaking for only burnt food, it will take any item with /toxin reagents within it.
	/badfood (in burnt recipes) are considered toxins, so it still works.
The damage from the duffelbag now has a wounding penalty.
	A negative penalty to wounding, but no penalty to bare wounding.
If the attached mob is dead, it now deals significantly less damage, and doesn't heal the dufflebag.
The dufflebag now uses visible messages to convey it's eating to people nearby, instead of just to_chats.
Fixes the cursed duffelbag cursing the mob to gain pacifism and clumsiness permanently.
	dropdel causes items to be qdeleted before the drop signal is sent so it never uncursed the mob.

Why It's Good For The Game

Cursed Duffelbag is less picky now.

Burnt food is surprisingly a little less common now-a-days, due to food changes / decomposition / etc.
This led to it being much easier to literally acid the dufflebag off instead of engage with it's mechanic, which is pretty lame.

By allowing any toxin type to be used, it greatly opens up more options to get it removed.

The damage from the duffelbag now has a wounding penalty.

Dufflebag's damage had no wounding modifier, meaning it was surefire guaranteed to break your ribs, which was incredibly debilitating.

Now, it can still break your ribs if you have very little chest protection, but it's much much less likely if you're wearing equipment.

If the attached mob is dead, it now deals significantly less damage.

Makes it a bit easier to treat people who are afflicted with a dufflebag. Reviving people with a cursed dufflebag would constantly result in them being damaged greatly beyond the defib threshold. Just annoying.

The dufflebag now uses visible messages to convey it's eating to people nearby, instead of just to_chats.

Mostly QoL. Some people would be confused why someone's being damaged from seemingly nowhere.

Fixes the cursed duffelbag cursing the mob to gain pacifism and clumsiness permanently.

Bugfeex. Sue me.

* Cursed Dufflebag is now less picky + no longer permanently applies you with pacifism even after being removed + causes less wounding

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-06-19 02:28:09 +01:00
SkyratBot
3f95ebbd5e [MIRROR] Fishing, Version 1 [MDB IGNORE] (#14370)
* 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>
2022-06-17 00:30:40 +01:00
SkyratBot
d37405ca72 [MIRROR] Fixes Knockdown signal being incorrect, making knock-off items (and others) trigger when they should again. Also cleans up the knockoff component and unit tests it. [MDB IGNORE] (#14357)
* Fixes `Knockdown` signal being incorrect, making knock-off items (and others) trigger when they should again. Also cleans up the knockoff component and unit tests it. (#67720)

At some point, someone did a find and replace over this file, and completely screwed up the signal for Knockdown().

This caused components that relied on it, like the Knockoff component, to work way less often.

This PR fixes that.
It also goes through and cleans up the Knockoff component. More consistent style guide stuff, minor improvements, better documentation.

It also unit tests it.

* Fixes `Knockdown` signal being incorrect, making knock-off items (and others) trigger when they should again. Also cleans up the knockoff component and unit tests it.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-06-17 00:29:25 +01:00
SkyratBot
71b58f3f7c [MIRROR] Fixes slips being broken and adds a unit test to catch it happening again. [MDB IGNORE] (#14299)
* Fixes slips being broken and adds a unit test to catch it happening again. (#67741)

* Fixes slips being broken and adds a unit test to catch it happening again.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2022-06-13 23:18:57 -07:00
Higgin
ac3d1993d6 Fixes stasis removing numbing and adds pre-surgery warning. (#14222)
* Fixes stasis removing numbing and adds a little warning if you're about to work on somebody who isn't numb.

* Update code/datums/components/surgery_initiator.dm

Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>

* Update code/datums/components/surgery_initiator.dm

Moves the balloon alert over the actual target.

Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>

Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Pinta <68373373+softcerv@users.noreply.github.com>
2022-06-13 06:41:34 -07:00
SkyratBot
7db844c30d [MIRROR] floating movement type now stops slips [MDB IGNORE] (#14277)
* floating movement type now stops slips (#67694)

* float movement type now stops slips

* weh

* floating movement type now stops slips

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2022-06-12 20:59:18 +01:00
SkyratBot
0a1f06a2d1 [MIRROR] This tail refactor turned into an organ refactor. Funny how that works. [MDB IGNORE] (#14017)
* 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>
2022-06-11 23:20:16 -04:00
SkyratBot
73d6dc9f6e [MIRROR] Makes ore silo connecting work on multi-z [MDB IGNORE] (#14257)
* Makes ore silo connecting work on multi-z (#67640)

* makes ore silo connecting work on multi-z

* I merged the two checks for same z level when connecting an ore silo, and disconnecting it. This was because I didn't want to copy paste the code to use it twice, which was what now caused the problem of multi-z maps being unable to connect ore silos on the same level. At the time it was also intentional since it's easier to connect than to disconnect something, but I realize that this inconsistency isn't great or beneficial to anyone.

* Turns it into a helper instead

* Makes ore silo connecting work on multi-z

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-06-12 02:34:45 +01:00
SkyratBot
d2e1be321f [MIRROR] Refactors Gunlight / Helmetlight to be a component [MDB IGNORE] (#14226)
* Refactors Gunlight / Helmetlight to be a component

* wew

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-10 20:49:38 +01:00
SkyratBot
1b0a57232e [MIRROR] Lemon does weather effects [MDB IGNORE] (#14231)
* Lemon does weather effects

* Update code/datums/components/food/decomposition.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-06-10 17:05:56 +01:00
SkyratBot
5568d98073 [MIRROR] Prevents negative mats [MDB IGNORE] (#14191)
* Prevents negative mats (#67582)

* Prevents negative mats from the ore redemption machine.

Co-authored-by: robbertapir <robbertapir@ airmail.cc>

* Prevents negative mats

Co-authored-by: robbertapir <102324362+robbertapir@users.noreply.github.com>
Co-authored-by: robbertapir <robbertapir@ airmail.cc>
2022-06-08 15:47:07 +01:00
SkyratBot
4cdae6c67e [MIRROR] Fixes grammar error in embed code [MDB IGNORE] (#14170)
* Fixes grammar error in embed code (#67589)

Fixes grammar error

* Fixes grammar error in embed code

Co-authored-by: BeeSting12 <zvmallol@gmail.com>
2022-06-08 02:07:56 +01:00
SkyratBot
4369049809 [MIRROR] Massive plumbing layer/placement improvements [MDB IGNORE] (#14172)
* Massive plumbing layer/placement improvements (#66602)

* Massive duct improvements

* last minute fixes/additions to plumbing layer fixes

* letter, loop, and early return fixes

* early continues

* color comments

* reaction chamber colors

* rcd tweaks

* Update code/datums/components/plumbing/reaction_chamber.dm

* Update code/datums/components/plumbing/reaction_chamber.dm

* Update code/datums/components/plumbing/_plumbing.dm

* Update code/datums/components/plumbing/_plumbing.dm

* remove unused var, better duct restacking

Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>

* Massive plumbing layer/placement improvements

Co-authored-by: Tastyfish <crazychris32@gmail.com>
Co-authored-by: ShizCalev <ShizCalev@ users.noreply.github.com>
2022-06-07 17:43:09 -07:00
SkyratBot
64b71f7585 [MIRROR] Material holding machines can't connect to ore silos on different z levels [MDB IGNORE] (#14167)
* Material holding machines can't connect to ore silos on different z levels (#66953)

The station's ore silo can't connect to machines that are off the station z-level anymore. This doesn't affect multi-z stations.
Also includes ore silo code improvement because I was unhappy with it.

* Material holding machines can't connect to ore silos on different z levels

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2022-06-07 21:11:42 +01:00
SkyratBot
1183c2a21c [MIRROR] Adds steam vents to maintenance, adds some flavor to maintenance. [MDB IGNORE] (#14039)
* Adds steam vents to maintenance, adds some flavor to maintenance. (#66915)

* Steam Vent Challenge (Do not meme)

* Fixes icebox, I think

* Changes to how smoke behaves appears to have removed the need for the opacity setting on the vent. Sounds.

* Mapmerge sama please

* Adds signal system, crafting recipe, and some basic crafting organization.

* Potential fix

* Apply suggestions from code review

Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>

* makes changes thanks anturk

Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>

* Adds steam vents to maintenance, adds some flavor to maintenance.

Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
Co-authored-by: Seth Scherer <supernovaa41@ gmx.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-06-06 15:27:22 +01:00
SkyratBot
746e06fcdc [MIRROR] Ports the Flower Garland from JollyStation [MDB IGNORE] (#14126)
* Ports the Flower Garland from JollyStation (#67468)

* pick 12 flowers and regret your decisions

* Update code/modules/clothing/head/garlands.dm

Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>

* Update code/modules/clothing/head/garlands.dm

Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>

* Update code/modules/clothing/head/garlands.dm

Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>

* Update code/modules/clothing/head/garlands.dm

Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>

* grammar

* sanity mood event

* willards review

Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>

* Ports the Flower Garland from JollyStation

Co-authored-by: Jolly <70232195+Jolly-66@users.noreply.github.com>
Co-authored-by: ATH1909 <42606352+ATH1909@ users.noreply.github.com>
2022-06-06 12:33:35 +01:00
SkyratBot
0614ceb209 [MIRROR] Minor buffs for Heretic focuses / equipment and the Void Cloak. [MDB IGNORE] (#14054)
* Minor buffs for Heretic focuses / equipment and the Void Cloak. (#67263)

* Heretic focus changes, turns it into an Element
* Buffs Void cloak, letting it hold more and hold more kinds of items
* Makes eldritch potions small sized (before: normal)
* Adds more explanations to some descriptions.

* Minor buffs for Heretic focuses / equipment and the Void Cloak.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-06-02 13:46:48 +01:00
SkyratBot
0134b67a7c [MIRROR] Fixes pellet cloud wounding where I just broke it [MDB IGNORE] (#14052)
* Fixes pellet cloud wounding where I just broke it (#67424)

I was stupid in #67331 (9431c92f70) and forgot an initial() around an un-instantiated projectile var call. This puts it in so wounding checks don't runtime. I have actually tested that this works

Pellet clouds work properly

* Fixes pellet cloud wounding where I just broke it

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2022-06-02 13:46:09 +01:00
SkyratBot
cd7673aae0 [MIRROR] Adds Cargorilla [MDB IGNORE] (#14044)
* Adds Cargorilla (#67003)

* Adds cargorilla

* working cargorilla

* Tweaks to control + jobs and stuff

* Sleep

* Probably don't leave in debug

* el sanity

* el change them to use globals, el refactor

* Does this fix it?

* Ah, okay

* el copypaste

* el mapload vars

* ready to ship

* Adds Cargorilla

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-06-02 03:28:23 +01:00
SkyratBot
f394ee1ea0 [MIRROR] Caps projectile armor at 90%, armor now applies to pellet cloud wounding [MDB IGNORE] (#14007)
* Caps projectile armor at 90%, armor now applies to pellet cloud wounding (#67331)

* Caps projectile armor at 90%, armor now applies to pellet cloud wounding

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2022-05-31 04:02:10 +01:00
SkyratBot
b290c49a94 [MIRROR] Add new H.E.C.K. suit GAGS sprite, recolorable via spray can [MDB IGNORE] (#14006)
* Add new H.E.C.K. suit GAGS sprite, recolorable via spray can (#67217)

imageadd: The H.E.C.K. suit has a new sprite. (by Meyhazah)
add: You can now use a spray can to completely recolor the H.E.C.K. suit.

* Add new H.E.C.K. suit GAGS sprite, recolorable via spray can

Co-authored-by: Urumasi <Urumasi@email.cz>
2022-05-31 04:01:33 +01:00
SkyratBot
9a1e9dba26 [MIRROR] Fixes Nullwave Vibrato triggering a chaplain's own antimagic. Also genericizes musical sect code slightly. [MDB IGNORE] (#13995)
* Fixes Nullwave Vibrato triggering a chaplain's own antimagic. Also genericizes musical sect code slightly.  (#67266)

Goes through and genericizes sect music effects slightly. As it stood pretty much all of them were copy+pastes of one another, with some minor changes, so making them one unified thing is cleaner.

* Fixes Nullwave Vibrato triggering a chaplain's own antimagic. Also genericizes musical sect code slightly.

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2022-05-30 12:30:42 +01:00
SkyratBot
6c35bca4bb [MIRROR] Continues removing unnecessary species names of bodyparts in visible messages [MDB IGNORE] (#13942)
* Continues removing unnecessary species names of bodyparts in visible messages (#67254)

* removes some more unnecessary species mentions from bodypart messages

* Continues removing unnecessary species names of bodyparts in visible messages

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
2022-05-27 15:21:25 +01:00
SkyratBot
4e3290868c [MIRROR] lattice is walkable on chasm [MDB IGNORE] (#13909)
* lattice is walkable on chasm (#67294)

* lattice is walkable on chasm

Co-authored-by: Mooshimi <85910816+Mooshimi@users.noreply.github.com>
2022-05-26 23:21:50 +01:00
SkyratBot
b4e92540d0 [MIRROR] fixes small zparallax bug [MDB IGNORE] (#13880)
* fixes small zparallax bug (#67244)

fixes an issue where if you attempted to regain control of your initial body after possessing another body it caused a stack trace due to MOB_LOGIN signal not being unregistered

(This was tsu's fault, introduced in a9d8be4d16)

* fixes small zparallax bug

Co-authored-by: magatsuchi <88991542+magatsuchi@users.noreply.github.com>
2022-05-25 16:24:27 +01:00
SkyratBot
a61b1ea07f [MIRROR] [MDB IGNORE] More /area/ typepath organization and cleanup [MDB IGNORE] (#13832)
* [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>
2022-05-24 16:47:55 +01:00
SkyratBot
82f7550ca3 [MIRROR] Silver slime food is now toxic(causes disgust when eaten), as it's not real food. [MDB IGNORE] (#13824)
* Silver slime food is now toxic(causes disgust when eaten), as it's not real food. (#67181)

Silver slime food is now toxic, as it's not real food.

* Silver slime food is now toxic(causes disgust when eaten), as it's not real food.

Co-authored-by: Iamgoofball <iamgoofball@gmail.com>
2022-05-23 11:50:32 +01:00
SkyratBot
23809ac6d5 [MIRROR] Adds Puzzgrid smite to trap enemy gamers in a fiendishly hard puzzle [MDB IGNORE] (#13780)
* Adds Puzzgrid smite to trap enemy gamers in a fiendishly hard puzzle (#66855)

* Puzzgrids

* Adds Puzzgrid smite to trap enemy gamers in a fiendishly hard puzzle

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2022-05-22 01:11:47 +01:00
SkyratBot
d047132609 [MIRROR] fix sm shards dusting when wrenching [MDB IGNORE] (#13784)
* fixes sm shards dusting when wrenching (#67155)

* fix sm shards dusting when wrenching

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
2022-05-21 09:05:09 -07:00
SkyratBot
f3a4977442 [MIRROR] Makes Cultist Summoning Nar'Sie An Important Announcement [MDB IGNORE] (#13787)
* Makes Cultist Summoning Nar'Sie An Important Announcement (#67143)

Hey there,

I first noticed this about three months, but I was pretty pleased about it since I was a cultist. I decided that today I should

Fix #Issue

It just makes it an important message, so that it will indeed reveal the location that the cult is summoned, and won't be muffled by that good-for-nothing potato-chip-eating centcom intern.

* Makes Cultist Summoning Nar'Sie An Important Announcement

Co-authored-by: san7890 <the@san7890.com>
2022-05-21 09:04:29 -07:00
SkyratBot
e416c5b573 [MIRROR] [NO GBP] Jetpack and spacedrift: Fixes and niceties [MDB IGNORE] (#13754)
* [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>
2022-05-20 14:41:47 +01:00
SkyratBot
01a6ade18c [MIRROR] Change healing by sleeping to be affected by sanity, darkness (or blindfold), and earmuffs. [MDB IGNORE] (#13758)
* Change healing by sleeping to be affected by sanity, darkness (or blindfold), and earmuffs. (#65713)

About The Pull Request

Depending on the mob's sanity level, it can have a positive or negative boost to healing effects while sleeping. Sleeping in darkness, wearing a blindfold, and using earmuffs also counts as a healing bonus. Beauty sleep is very important for 2D spessmen.
Why It's Good For The Game

This is a small gameplay change that rewards players for keeping their sanity at good levels. Also depression has also been linked with impeding wound healing in real life. The placebo effect on peoples minds is strenuously documented and I think it would be cool to see it in the game.
Changelog

cl
expansion: Healing by sleeping is now affected by sanity, sleeping in darkness (or using a blindfold), and using earmuffs. The healing from sleeping in a bed was slightly decreased.
/cl

* Change healing by sleeping to be affected by sanity, darkness (or blindfold), and earmuffs.

Co-authored-by: Tim <timothymtorres@gmail.com>
2022-05-20 13:34:33 +01:00
SkyratBot
43abf0176f [MIRROR] OpenDream Cleanup Pass [MDB IGNORE] (#13690)
* OpenDream Cleanup Pass (#67036)

OpenDream can detect BYONDisms that BYOND or SpacemanDMM miss. This PR fixes all of the issues it found in TG. Each change is explained in code comments below.

* OpenDream Cleanup Pass

Co-authored-by: ike709 <ike709@users.noreply.github.com>
2022-05-18 19:56:35 +01:00
SkyratBot
55ec232462 [MIRROR] Refactors the forensics component into a datum [MDB IGNORE] (#13649)
* Refactors the forensics component into a datum

* Refactors the forensics component into a datum

* Refactors the forensics component into a datum

Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-05-17 20:32:15 +01:00
SkyratBot
4cbd7043ea [MIRROR] Minor twohanded component refactor [MDB IGNORE] (#13524)
* Minor twohanded component refactor

* wew

* Update energy_fireaxe.dm

Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-11 02:10:45 +01:00
SkyratBot
3e4bad8694 [MIRROR] Confusion status effect is now duration based instead of magic number based [MDB IGNORE] (#13496)
* Confusion status effect is now duration based instead of magic number based

* e

* Update tgstation.dme

* Update contract.dm

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-11 01:52:39 +01:00
SkyratBot
7606c1715e [MIRROR] Bandana GAGS follow-up [MDB IGNORE] (#13437)
* Bandana GAGS follow-up

* yes

Co-authored-by: Ebb-Real <95765134+Ebb-Real@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-11 00:31:06 +01:00
SkyratBot
de669c4772 [MIRROR] Refactors cyborg drink refilling into a component [MDB IGNORE] (#13472)
* Refactors cyborg drink refilling into a component

* Update robot.dm

Co-authored-by: Seth Scherer <supernovaa41@gmx.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-10 01:49:26 +01:00
Useroth
4d07f3a620 Missed mirror (#13460)
* 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>
2022-05-09 15:05:42 +01:00
SkyratBot
66312868bc [MIRROR] Supermatter cascade round-end [MDB IGNORE] (#13436)
* Supermatter cascade round-end

* wew

Co-authored-by: Ghilker <42839747+Ghilker@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-09 01:23:07 +01:00
SkyratBot
c1a1683db6 [MIRROR] removes permeability, rolling it into bio armor [MDB IGNORE] (#13435)
* removes permeability, rolling it into bio armor

* e

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-09 01:16:27 +01:00
SkyratBot
ef2016732d [MIRROR] Makes smoke and foam attempt to fill the available space. [MDB IGNORE] (#13407)
* Makes smoke and foam attempt to fill the available space.

* wew

* reset

* Revert "reset"

This reverts commit 75be4f934504793ceb5c9bf2f3774dc24517df5a.

Co-authored-by: TemporalOroboros <TemporalOroboros@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-05-08 04:01:32 +01:00
Useroth
cca7f8ee4c Some missed mirrors (#13415)
* Refactors firestacks into status effects (#66573)

This PR refactors firestacks into two status effects: fire_stacks, which behave like normal firestacks you have right now, and wet_stacks, which are your negative fire stacks right now. This allows for custom fires with custom behaviors and icons to be made.

Some fire related is moved away from species(what the fuck was it even doing there) into these as well.
Oh and I fixed the bug where monkeys on fire had a human fire overlay, why wasn't this fixed already, it's like ancient.

Also changed some related proc names to be snake_case like everything should be.

This allows for custom fire types with custom behaviours, like freezing freon fire or radioactive tritium fire. Removing vars from living and moving them to status effects for modularity is also good.
Nothing to argue about since there's nothing player-facing

* Hud Image Culling By Z Level: Theft edition (#65189)

* makes hud images only apply by z level

* makes some of the atom_hud procs have better names

* fixes warning with the hud_user list and adds better documentation

* better docs for hud_images

* removes TODOs

* docs for hud_list

* adds support for linked z levels so mobs can see lower ones

* fixes merge conflict and shittily makes only shocked airlocks get added

* adds support for setting images in the hud as active and inactive

* gets rid of unatomic spatial grid change

* maybe i should actually try COMPILING my changes

* fixes merge skew and makes it compile again

* fixes huds refusing to remove from users who changed z level

* improves z level and registration logic

* fixes antag huds not appearing

* Fixes antag huds not properly setting. We now use hud_list in init, so it needs to be set before the new call, not after. Not sure why the use of appearance key was split like this, but none else knows either so none can stop me

* Ensures that hiding a basic appearance also hides the atom's active list too

* Fixes antag huds going poof

Ensures that remove_atom_from_hud will return false if the passed atom
isn't managed by it

This fixes antag huds disappearing randomly, since they assumed that if
the parent call of remove_atom_from_hud returned true, we should delete
ourselves. This is a safe assumption for them to make, since they should
only ever have one atom.

Does kinda bork if we call remove_atom_from_hud in a way that is unsure
if the passed atom is actually in that list. We were forced into doing
this by how atom huds use the qdeleting signal.

* makes basic alternate_appearance's only update themselves when setting their hud image to active and makes them not add themselves to the global huds_by_category list

* fixes mistake with hud_users list being set non associatively (bad)

* as anything in bot path loops

* Fixes merge skew problems

* Makes bot paths non global

This way they can show themselves to only the bot that "owns" them, ya
feel me?

* Fixes huds not showing up sometimes, cleans up some code

Post Kapu's limb refactor, we were calling prepare_huds twice in a human
init call chain. What was happening was this:

call prepare_huds() // Human
I gained a new hud image
I set active hud icons to mirror it
call prepare_huds() // Living
I overwrote the new hud image
I attempted to set active hud icons, which failed because it assumes
this can never happen

*cries*

* Renames add_hud_to_atom to show_to

My hope is this will make understanding hud code a bit easier, by tying
the behavior to a "verb" more closely. Also renamed a few vars

* remove_hud_from_mob -> hide_from

* Nitpicks a few comments

* Whoops/fuck/shit/damn it all/hhhhhhhhhhhh

* Moves check down, improves stack trace a bit

Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>

* small touch-up

* this should do it

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: KylerAce <kylerlumpkin1@gmail.com>
2022-05-08 03:59:40 +01:00
SkyratBot
694a0740dc [MIRROR] Parallax but better: Smooth movement cleanup [MDB IGNORE] (#13414)
* Parallax but better: Smooth movement cleanup (#66567)

* Alright, so I'm optimizing parallax code so I can justify making it do a
bit more work

To that end, lets make the checks it does each process event based.
There's two. One is for a difference in view, which is an easy fix since
I added a view setter like a year back now.

The second is something planets do when you change your z level.
This gets more complicated, because we're "owned" by a client.
So the only real pattern we can use to hook into the client's mob's
movement is something like connect_loc_behalf.

So, I've made connect_mob_behalf. Fuck you.

This saves a proc call and some redundant logic

* Fixes random parallax stuttering

Ok so this is kinda a weird one but hear me out.

Parallax has this concept of "direction" that some areas use, mostly
the shuttle transit ones. Set when you move into a new area.
So of course it has a setter. If you pass it a direction that it doesn't
already have, it'll start up the movement animation, and disable normal
parallax for a bit to give it some time to get going.

This var is typically set to 0.

The problem is we were setting /area/space's direction to null in
shuttle movement code, because of a forgotten proc arg.

Null is of course different then 0, so this would trigger a halt in
parallax processing.

This causes a lot of strange stutters in parallax, mostly when you're
moving between nearspace and space. It looks really bad, and I'm a bit
suprised none noticed.

I've fixed it, and added a default arg to the setter to prevent this
class of issue in future. Things look a good bit nicer this way

* Adds animation back to parallax

Ok so like, I know this was removed and "none could tell" and whatever,
and in fairness this animation method is a bit crummy.

What we really want to do is eliminate "halts" and "jumps" in the
parallax moveemnt. So it should be smooth.

As it is on live now, this just isn't what happens, you get jumping
between offsets. Looks frankly, horrible. Especially on the station.

Just what I've done won't be enough however, because what we need to do
is match our parallax scroll speed with our current glide speed. I need
to figure out how to do this well, and I have a feeling it will involve
some system of managing glide sources.

Anyway for now the animation looks really nice for ghosts with default
(high) settings, since they share the same delay.

I've done some refactoring to how old animation code worked pre (4b04f9012d). Two major
changes tho.

First, instead of doing all the animate checks each time we loop over a
layer, we only do the layer dependant ones. This saves a good bit of
time.

Second, we animate movement on absolute layers too. They're staying in
the same position, but they still move on the screen, so we do the same
gental leaning. This has a very nice visual effect.

Oh and I cleaned up some of the code slightly.

* Parallax but better: Smooth movement cleanup

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-05-07 23:33:34 +01:00