Commit Graph

1610 Commits

Author SHA1 Message Date
SkyratBot
5530e003a7 [MIRROR] Double clicking on your corpse (or something containing it) no longer makes you automatically re-enter it [MDB IGNORE] (#21285)
* Double clicking on your corpse (or something containing it) no longer makes you automatically re-enter it (#75505)

## About The Pull Request

Removes the check for reentering your body when double clicking on
things as a ghost.

## Why It's Good For The Game

Perhaps my experience is not universal, but I have never found an
occasion where I did this and wanted to re-enter my corpse, and
conversely many occasions where I want to orbit my corpse and find
myself re-entering it instead.

Any form of revival will pull you back into your body automatically
these days and there's no real benefit to being in your corpse, and in
the rare circumstance someone wants to do this the verb is still
available.

## Changelog
🆑
qol: Double clicking your corpse or something containing it as a ghost
will now orbit as in other cases instead of re-entering your corpse.
/🆑

* Double clicking on your corpse (or something containing it) no longer makes you automatically re-enter it

---------

Co-authored-by: Thunder12345 <Thunder12345@users.noreply.github.com>
2023-05-20 22:30:36 +01:00
SkyratBot
31e7e5fb0a [MIRROR] Fix SHOULD_NOT_SLEEP hit in simple_animal/hostile's resolve_unarmed_attack [MDB IGNORE] (#21164)
* Fix SHOULD_NOT_SLEEP hit in simple_animal/hostile's resolve_unarmed_attack (#75416)

Multiple paths fixed. See #75232

![image](https://github.com/tgstation/tgstation/assets/8171642/cd7b2b16-b462-442c-a6af-91c53c69fef4)

* Fix SHOULD_NOT_SLEEP hit in simple_animal/hostile's resolve_unarmed_attack

---------

Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
2023-05-14 22:17:29 -07:00
SkyratBot
88e4c08a98 [MIRROR] New Medical job: The Coroner [MDB IGNORE] (#20963)
* New Medical job: The Coroner

* Fixes coroner (code-side) (#21005)

* Fixes coroner

* Update jobs.dm

* trailing newline

* wew

* VR Replacements

* w

---------

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-05-08 03:44:11 +01:00
SkyratBot
9c2e07ee7c [MIRROR] Miner Style Points 2: Style on Everyone [MDB IGNORE] (#20826)
* Miner Style Points 2: Style on Everyone (#74690)

## About The Pull Request
A re-open of https://github.com/tgstation/tgstation/pull/66326 with
Fikou's permission

Adds the style meter, it can be bought from the mining vendor for 1500
points, it is an attachment to your glasses.
The style meter creates a display on your hud, with your recent actions,
like attacking enemies, killing them, mining ore etc. Actions like
spinning or flipping increase your score multiplier, making you get more
points.
Your style meter affects how much ore you get from mining rocks. By
default with the meter, you get 20% less ore, but at the highest, you
can get 1.2x the ore from mining. In addition, on B-tier or above, you
can "hotswap" items, by attacking an item in your backpack with one in
your hand (should it fit and all that). Also features a leaderboard for
highest style point count!

New streamable: https://streamable.com/eewi6l

The following are sources of points:

- Killing things
- Killing big things
- Killing small things
- Punching things
- Melee'ing things
- Mining rocks and ores
- Having matrix traps detonate
- Hit, defuse, and detonate gibtonite
- Detonate crusher marks
- Scan geysers
- Parry projectiles (others or your own)

Oh, right. While wearing the style meter, you're able to parry any
lavaland-based projectile by clicking on it or the tile it is on, which
reflects it back in a 7 degree arc, making it 20% faster and 15% more
damaging. Usually not very easy.

Maybe-plan in the future for some syndicate variant of this (with bullet
parrying and appropriate style sources, etc.), but not for this PR

Thanks to Arcane, multitooling the style meter will make it play some
sounds on rank-up.

![image](https://user-images.githubusercontent.com/41448081/231605640-a01c2b60-1ba1-4390-8bea-0aa804ea1973.png)

https://streamable.com/nheaky

Parrying in action

## Why It's Good For The Game
Makes miners bring more ore in a fun way.

## Changelog
🆑 Fikou, Zonespace, Arcane for voicing
add: The mining vendor now has a style meter. This meter gauges your
style points and uses them to improve your ore yield.
/🆑

---------

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

* Miner Style Points 2: Style on Everyone

---------

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
2023-04-28 19:54:39 -07:00
Tom
6435018ba7 Add logging for manually changing your targeted zone (#72814) (#20787)
* Add logging for manually changing your targeted zone (#72814)

See title.
Surgery hud is exempt from this.

Requested by @Mothblocks

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>

* Delete 

---------

Signed-off-by: GitHub <noreply@github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: dragomagol <66640614+dragomagol@users.noreply.github.com>
2023-04-26 10:44:01 -07:00
SkyratBot
1a0cdfac66 [MIRROR] Hologram Touchup (Init savings edition) [MDB IGNORE] (#20638)
* Hologram Touchup (Init savings edition)

* Update hologram.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-21 03:53:09 +01:00
SkyratBot
4085ed014c [MIRROR] Expands conversion unit test coverage [MDB IGNORE] (#20516)
* Expands conversion unit test coverage (#74563)

## About The Pull Request

Requires #74562 and #74556 be merged first.

Unit tests cult conversion and throws in a case for rev AOE flashes

## Changelog

Not necessary

---------

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

* Expands conversion unit test coverage

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: san7890 <the@ san7890.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2023-04-14 14:37:53 +01:00
SkyratBot
3c90e6faec [MIRROR] Adds a new HUD: The Detective UI! [MDB IGNORE] (#20359)
* Adds a new HUD: The Detective UI! (#74459)

## About The Pull Request
This PR adds the new HUD; The Detective UI
Originally made for fun, it was recieved well enough to make me publish
it. Its designed to have a fun gimmick (That Being Noir Detectives), but
still be easily readable at a glance!

![image](https://user-images.githubusercontent.com/75904284/229353228-cd391f36-e968-4e66-9b3b-4e34a7b00535.png)

![image](https://user-images.githubusercontent.com/75904284/229353287-c20b1812-6846-4af1-a598-7a357f861d8e.png)
## Why It's Good For The Game
New HUDs mean more customization options for players, and as far as I'm
aware I think thats a pretty good thing!
## Changelog
🆑
add: A new HUD, The 'Detective' UI
imageadd: All the spritework for said HUD.
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>

* Adds a new HUD: The Detective UI!

---------

Co-authored-by: kinnebian <75904284+kinneb@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@ users.noreply.github.com>
2023-04-06 02:07:55 +01:00
SkyratBot
24f300b304 [MIRROR] Removes emergency meetings [MDB IGNORE] (#20253)
* Removes emergency meetings

* 0

---------

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-04-01 21:32:34 +01:00
Gandalf
e4b4d4d3c0 MISSED MIRROR [Lints Against Unmanaged Local Defines] (#20204)
* https://github.com/tgstation/tgstation/pull/74333

https: //github.com/tgstation/tgstation/pull/74333
Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* var stuff

Co-Authored-By: tattle <66640614+dragomagol@users.noreply.github.com>

* vars

* Update sol_fed.dm

---------

Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
2023-04-01 01:15:22 +01:00
SkyratBot
f3155d0f63 [MIRROR] Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it [MDB IGNORE] (#19876)
* Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it (#73920)

## About The Pull Request

Clicking on the turf of a fire alarm/light switch with your hand will
activate it, similar to how you can click the turf a door is on to close
it and not pixel hunt. Refers to the turf it *looks* like it's on, not
the one it actually is on, since fire alarms and light switches are
actually on the turf near the wall, pixel shifted up.

False walls are ignored.

## Why It's Good For The Game

Lets our artists do whatever they want to these sprites, or those of
future consumers, without worrying about niche balance stuff. I really
like people using fire alarms for environmental combat and don't want
that to get in the way of spriting.

## Changelog
🆑
qol: Clicking on the turf of a fire alarm/light switch with your hand
will activate it.
/🆑

* Clicking on the >> WALL << of a fire alarm/light switch with your hand will activate it

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-03-14 23:17:05 -07:00
SkyratBot
f36d71d0c4 [MIRROR] The CE blueprints can no longer be used to obfuscate cultist summon locations [MDB IGNORE] (#19772)
* The CE blueprints can no longer be used to obfuscate cultist summon locations (#73853)

## About The Pull Request

The Nar'Sie summon message will now only use the original name of the
ritual site area. You can no longer fake out the ritual announcement by
renaming the area with the CE blueprints.

The ritual site locator HUD popup now also uses the original area names,
to prevent the same issue from occurring.
## Why It's Good For The Game

Closes #73036.
## Changelog
🆑
fix: The cultist ritual site locator and Nar'Sie summon message will no
longer use area names modified by the CE's blueprints.
/🆑

* The CE blueprints can no longer be used to obfuscate cultist summon locations

---------

Co-authored-by: Rhials <Datguy33456@gmail.com>
2023-03-11 02:39:27 -08:00
SkyratBot
fa7538b5dc [MIRROR] Adds the "Law panel", a control center for admins interacting with silicon laws [MDB IGNORE] (#19655)
* Adds the "Law panel", a control center for admins interacting with silicon laws

* Update admin_verbs.dm

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:10:46 +00:00
SkyratBot
53db0f7784 [MIRROR] Visual fixes (lighting, weird shit, old bugs from a parallax thing) [MDB IGNORE] (#19482)
Visual fixes (lighting, weird shit, old bugs from a parallax thing)

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 06:07:58 +00:00
lessthanthree
7305d12d29 [MANUAL MIRROR] Nightvision Rework (In the name of color) (#19608)
* Nightvision Rework (In the name of color) (#73094)

Relies on #72886 for some render relay expansion I use for light_mask
stuff.

Hello bestie! Night vision pissed me off, so I've come to burn this
place to the ground.
Two sections to discuss here. First we'll talk about see_in_dark and why
I hate it, second we'll discuss the lighting plane and how we brighten
it, plus introducing color to the party.

https://www.byond.com/docs/ref/#/mob/var/see_in_dark

See in dark lets us control how far away from us a turf can be before we
hide it/its contents if it's dark (not got luminosity set)
We currently set it semi inconsistently to provide nightvision to mobs.

The trouble is stuff that produces light != stuff that sets luminosity.
The worst case of this can be seen by walking out of escape on icebox,
where you'll see this

![image](https://user-images.githubusercontent.com/58055496/215683654-587fb00f-ebb8-4c83-962d-a1b2bf429c4a.png)

Snow draws above the lighting plane, so the snow will intermittently
draw, depending on see_in_dark and the luminosity from tracking lights.
This would in theory be solvable by modifying the area, but the same
problem applies across many things in the codebase.
As things currently stand, to be emissive you NEED to have a light on
your tile. People are bad at this, and honestly it's a bit much to
expect of them. An emissive overlay on a canister shouldn't need an
element or something and a list on turfs to manage it.
This gets worse when you factor in the patterns I'm using to avoid
drawing lights above nothing, which leads to lights that should show,
but are misoffset because their parent pixel offsets.

It's silly. We do it so we can have things like mesons without just
handing out night vision, but even there the effect of just hiding
objects and mobs looks baddddddd when moving. It's always bothered me.
I'll complain about mesons more later, but really just like, they're too
bright as it is.

I'm proposing here that rather then manually hiding stuff based off
distance from the player, we can instead show/hide using just the
lighting plane. This means things like mesons are gonna get dimmer, but
that's fine because they suck.

It does have some side effects, things like view() on mobs won't hide
stuff in darkness, but that's fine because none actually thinks about
view like that, I think.

Oh and I added a case to prevent examining stuff that's in darkness, and
not right next to you when you don't have enough nightvision, to match
the old behavior `see_in_dark` gave us.

Now I'd like to go on a mild tangent about color, please bare with me

You ever walk around with mesons on when there's a fire going, or an
ethereal or firelocks down.
You notice how there isn't really much color to our lights? Doesn't that
suck?

It's because the way we go about brighting lighting is by making
everything on the lighting plane transparent.
This is fine for brightening things, but it ends up looking kinda crummy
in the end and leads to really washed out colors that should be bright.
Playing engineer or miner gets fucking depressing.

The central idea of this pr, that everything else falls out of, is
instead of making the plane more transparent, we can use color matrixes
to make things AT LEAST x bright.

https://www.byond.com/docs/ref/#/{notes}/color-matrix

Brief recap for color matrixes, fully expanded they're a set of 20
different values in a list
Units generally scale 0-1 as multipliers, though since it's
multiplication in order to make an rgb(1,1,1) pixel fullbright you would
need to use 255s.

A "unit matrix" for color looks like this:
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0, 0, 0, 0
)
```

The first four rows are how much each r, g, b and a impact r, g, b and
well a.
So a first row of `(1, 0, 0, 0)` means 1 unit of r results in 1 unit of
r. and 0 units of green, blue and alpha, and so on.
A first row of `(0, 1, 0, 0)` would make 1 red component into 1 green
component, and leave red, blue and alpha alone, shifting any red of
whatever it's applied to a green.

Using these we can essentially color transform our world. It's a fun
tool. But there's more.

That last row there doesn't take a variable input like the others.
Instead, it ADDS some fraction of 255 to red, green, blue and alpha.

So a fifth row of `(1, 0, 0, 0)` would make every pixel as red as it
could possibly be.

This is what we're going to exploit here. You see all these values
accept negative multipliers, so we can lower colors down instead of
raising them up!
The key idea is using color matrix filters
https://www.byond.com/docs/ref/#/{notes}/filters/color to chain these
operations together.

Pulling alllll the way back, we want to brighten darkness without
affecting brighter colors.
Lower rgb values are darker, higher ones are brighter. This relationship
isn't really linear because of suffering reasons, but it's good enough
for this.
Let's try chaining some matrixes on the lighting plane, which is bright
where fullbright, and dark where dark.

Take a list like this

```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     -0.2, -0.2, -0.2, 0
)
```
That would darken the lighting a bit, but negative values will get
rounded to 0
A subsequent raising by the same amount
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0.2, 0.2, 0.2, 0
)
```
Will essentially threshold our brightness at that value.
This ensures we aren't washing out colors when we make things brighter,
while leaving higher values unaffected since they basically just had a
constant subtracted and then readded.

You may have noticed, we gain access to individual color components
here.
This means not only can we darken and lighten by thresholds, we can
COLOR those thresholds.
```
list(1, 0, 0, 0,
     0, 1, 0, 0,
     0, 0, 1, 0,
     0, 0, 0, 1,
     0.1, 0.2, 0.1, 0
)
```
Something like the above, if applied with its inverse, would tint the
darkness green.
The delta between the different scalars will determine how vivid the
color is, and the actual value will impact the brightness.

Something that's always bothered me about nightvision is it's just
greyscale for the most part, there isn't any color to it.
There was an old idea of coloring the game plane to match their lenses,
but if you've ever played with the colorblind quirk you know that gets
headachey really fast.
So instead of that, lets color just the darkness that these glasses
produce.
It provides some reminder that you're wearing them, instead of just
being something you forget about while playing, and provides a reason to
use flashlights and such since they can give you a clearer, less tinted
view of things while retaining the ability to look around things.

I've so far applied this pattern to JUST headwear for humans (also those
mining wisps)
I'm planning on furthering it to mobs that use nightvision, but I wanted
to get this up cause I don't wanna pr it the day before the freeze.

Mesons are green, sec night vision is red, thermals orange, etc.

I think the effect this gives is really really nice.
I've tuned most things to work for the station, though mesons works for
lavaland for obvious reasons.

I've tuned things significantly darker then we have them set currently,
since I really hate flat lighting and this system suffers when
interacting with it.

My goal with these is to give you a rough idea of what's around you,
without a good eye for detail.
That's the difference between say, mesons, and night vision. One helps
you see outlines, the other gives you detail and prevents missing
someone in the darkness.

It's hard to balance this precisely because of different colored
backgrounds (looking at you icebox)
More can be done on this front in future but I'm quite happy with things
as of now

I have since expanded to all uses of nightvision, coloring most all of
them.

Along the way I turned some toggleable nightvision into just one level.
Fullbright sucks, and I'd rather just have one "good" value.

I've kept it for a few cases, mostly eyes you rip out of mobs.
Impacted mobs are nightmares, aliens, zombies, revenants, states and
sort of stands.

I've done a pass on all mobs and items that impact nightvision and added
what I thought was the right level of color to them. This includes stuff
like blobs and shuttle control consoles
As with glasses much of this was around reducing vision, though I kept
it stronger here, since many of these mobs rely on it for engaging with
the game

<details>
<summary>
Technical Changes
</summary>

filter transitions.
Found this when testing this pr, seemed silly.

This avoids dumbass overlay lighting lighting up wallmounts.
We switch modes if some turfflags are set, to accomplish the same thing
with more overhead, and support showing things through the darkness.

Also fixes a bug where you'd only get one fullscreen object per mob, so
opening and closing a submap would take it away

Also also fixes the lighting backdrop not actually spanning the screen.
It doesn't actually do anything anymore because of the fullscreen light
we have, but just in case that's unsued.
Needs cleanup in future.

color with a sprite

This is to support the above
We relay this plane to lighting mask so openspace can like, have
lighting

vision goggles and such
Side affect of removing see_in_dark. This logic is a bit weak atm, needs
some work.

It's a dupe of the nightvision action button, and newly redundant since
I've removed all uses of it

trasnparent won't render

These sucked
Also transparent stuff should never render, if it does you'll get white
blobs which suck

</details>

Videos! (Github doesn't like using a summary here I'm sorry)
<details>

Demonstration of ghost lighting, and color

https://user-images.githubusercontent.com/58055496/215693983-99e00f9e-7214-4cf4-a76a-6e669a8a1103.mp4

Engi-glass mesons and walking in maint (Potentially overtuned, yellow is
hard)

https://user-images.githubusercontent.com/58055496/215695978-26e7dc45-28aa-4285-ae95-62ea3d79860f.mp4

Diagnostic nightvision goggles and see_in_dark not hiding emissives

https://user-images.githubusercontent.com/58055496/215692233-115b4094-1099-4393-9e94-db2088d834f3.mp4

Sec nightvision (I just think it looks neat)

https://user-images.githubusercontent.com/58055496/215692269-bc08335e-0223-49c3-9faf-d2d7b22fe2d2.mp4

Medical nightvision goggles and other colors

https://user-images.githubusercontent.com/58055496/215692286-0ba3de6a-b1d5-4aed-a6eb-c32794ea45da.mp4

Miner mesons and mobs hiding in lavaland (This is basically the darkest
possible environment)

https://user-images.githubusercontent.com/58055496/215696327-26958b69-0e1c-4412-9298-4e9e68b3df68.mp4

Thermal goggles and coloring displayed mobs

https://user-images.githubusercontent.com/58055496/215692710-d2b101f3-7922-498c-918c-9b528d181430.mp4

</details>

I think it's pretty, and see_in_dark sucks butt.

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: The darkness that glasses and hud goggles that impact your
nightvision (think mesons, nightvision goggles, etc) lighten is now
tinted to match the glasses. S pretty IMO, and hopefully it helps with
forgetting you're wearing X.
balance: Nightvision is darker. I think bright looks bad, and things
like mesons do way too much
balance: Mesons (and mobs in general) no longer have a static distance
you can see stuff in the dark. If a tile is lit, you can now see it.
fix: Nightvision no longer dims colored lights, instead simply
thresholding off bits of darkness that are dimmer then some level.
/🆑

* modular edits

* see_in_dark

* [MIRROR] Adds a unit test to detect double stacked lights [MDB IGNORE] (#19564)

* Adds a unit test to detect double stacked lights

* we really need to get that night vision pr done

* lints fixes

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>

* Update augments_eyes.dm

* Update augments_eyes.dm

* eeee

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Co-authored-by: Paxilmaniac <paxilmaniac@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:17:22 +00:00
SkyratBot
9325ea1758 [MIRROR] Refactor Statue & Creature unobserved behaviour [MDB IGNORE] (#19565)
* Refactor Statue & Creature unobserved behaviour

* Update statue.dm

* Update ProduceConsole.js

---------

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2023-03-10 04:05:25 +00:00
OrionTheFox
d097050d1d [Manual Mirror] Adds checkgrep for improper or missing atom Initialize args (mapload) (#19539)
* Adds checkgrep for improper or missing atom Initialize args (`mapload`) (#72846)

## About The Pull Request

Adds a grep for atom initialize overrides which does not include mapload

Regex used
`^/(obj|mob|turf|area|atom)/.+/Initialize\((?!mapload).*\)`

Also replaced some space indentation with some tab indentation in some
other greps


![image](https://user-images.githubusercontent.com/51863163/213883049-ef6d953a-e11f-4876-9852-c09633ddc289.png)

## Why It's Good For The Game

See #69107, #61759, #61623

## Changelog

No player facing changes

* Missed by #8374

* Add (mapload) to a //Skyrat Edit so that it passes

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2023-02-26 15:20:38 -05:00
SkyratBot
5f9f60713b [MIRROR] Starlight Polish (Space is blue!) [MDB IGNORE] (#19059)
* Starlight Polish (Space is blue!) (#72886)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Adds support to underlays to realize_overlays
Ensures decals properly handle plane offsets
Fixes space lighting double applying if it's changeturf'd into. this
will be important later
Makes solar vis_contents block emissives as expected
Moves transit tube overlays to update_overlays, adds emissive blockers
to them

#### Adds render steps

An expansion on render_target based emissive blockers. 
They allow us to hijack an object's appearance and draw it somewhere
else, or even modify it, THEN draw it somewhere else.
They chain quite nicely

Fixes shuttles deleting z holder objects

#### Makes space emissive, makes walls and floors block emissives
The core idea here goes like this:
We make space glow, and give its overlays some color

This way, the tile and space parallax remain fullbright, along with
anything that doesn't block emissives, but anything that does block
emissives will instead get shaded the color of starlight

This requires a bit of extra work, see later

This is done automatically with render relays, which now support
specifiying layer and color (Need to make an editor for these one of
these days)

The emissive blocking floor stuff requires making a second render plate
to prevent double scaling

Also adds some new layering defines for lighting, and ensures all turf
lights have a layer. We'll get to this soon

#### Makes things in space blue

We color them the same as starlight, by taking advantage of space being
emissive
This means that things in space that block emissive will block it
correctly and be colored blue by the light overlay, but space itself
will remain fullbright

This does require redefining what always_lit means, but nothing but
cordons use that so it's fineee


#### Makes glass above space glow, and some other stuff

Glass tiles that sit above space will now shine light with matching
color to the glasses color. This includes mat tiles.

Glass tiles (not mat because they have no alpha) also only partially
block emissives.
Adds a new proc that uses render steps to acomplish this, essentially
we're cutting out bits below X alpha and drawing what remains as an
emissive.

#### Modifies partial space showing to support glow

Essentially, alongside displaying space as an underlay, we also display
a light overlay colored like starlight.
That starlight overlay gets masked to only be visible in bits that do
not contain any alpha.

We also mask the turf lighting to not go into bits that have no alpha,
to ensure we get the effect we want.
This is done with that lighting layer thing I mentioned earlier.

#### Makes appearance realization's list output ordered

I want it output in order of overlay, sub overlay suboverlay, next
overlay
Need to use insert for that

## Why It's Good For The Game

Pretty!
Also having space be emissive is a very very good way to test for fucked
emissive blockers (If it's broken why are we even drawing the overlay)
I know for a fact mob blockers on lizards and socks are kinda yorked, I
think there's more

<details>
<summary>
Old
</summary>


![image](https://user-images.githubusercontent.com/58055496/213916157-d4b38aa7-3ab6-42a4-989f-7bfba2dc2cba.png)

![image](https://user-images.githubusercontent.com/58055496/213916077-637fa288-bbee-477d-aded-730d9683477e.png)

![image](https://user-images.githubusercontent.com/58055496/213916088-0657a8a2-5627-48e2-8c4b-870c90ef2072.png)

</details>


<details>
<summary>
New
</summary>


![image](https://user-images.githubusercontent.com/58055496/213916107-2af74e64-1817-4a44-b528-180a9160cb9e.png)

![image](https://user-images.githubusercontent.com/58055496/213916115-5fa36fcc-b988-4ccf-850e-21c26ed463d0.png)

![image](https://user-images.githubusercontent.com/58055496/213916120-6833187d-b12e-42a7-ac4b-63c56deb71e5.png)

</details>

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
add: Space now makes things in it starlight faintly blue
fix: Glass floors that display space now properly let space shine
through them, rather then hiding it in the dark
add: Glass floors above space now glow faintly depending on their glass
type
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>

* update modular

* Update _decal.dm

* Update _decal.dm

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
2023-02-12 00:42:28 -08:00
lessthanthree
12d989be4c [MANUAL MIRROR] Adds an Escape Menu (#19217)
* Adds an Escape Menu (#72906)

* suicide

---------

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-02-08 02:20:09 +00:00
SkyratBot
fd9ef31df2 [MIRROR] Fixes HUD elements not being set properly on Login() [MDB IGNORE] (#19198)
* Fixes HUD elements not being set properly on Login() (#73245)

* Fixes HUD elements not being set properly on Login()

---------

Co-authored-by: Kapu1178 <75460809+Kapu1178@users.noreply.github.com>
2023-02-06 22:19:22 -05:00
SkyratBot
1fe0d145a3 [MIRROR] Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind [MDB IGNORE] (#18760)
* Converts blindness and nearsightedness to status effects, scratches some VERY dumb blindness handling that resulted in mobs becoming "incurably" blind

* Fixes the conflicts and makes shit compile!

* Fixes other things that didn't show up because I hadn't updated

* Fixes the lints.

* Okay NOW it's ready (please don't add anything else that touches blindness I beg you)

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
2023-02-03 16:08:32 -05:00
SkyratBot
4e219672c7 [MIRROR] Patches Excessive "The" Out Of Hand Offering [MDB IGNORE] (#19057)
Patches Excessive "The" Out Of Hand Offering (#73040)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

Hey there,


![image](https://user-images.githubusercontent.com/34697715/215312944-df112bef-2a32-4206-9f46-a2b8c15145a3.png)

"her the hand" is rather silly, so let's trim it down a bit to be nice
and generic. This alert is custom-made for the hand item, and doesn't
really show up in any other context... so it should be fine? The icon
will always be that hand icon so we should be fine.

I wish we could have used the text macros like `\the` or something, but
that doesn't play too well with alerts for some reason? I don't have the
time to look into this so let's just do the simple fix of reducing the
words that show up (looks better without the larger footprint imo).

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

## Why It's Good For The Game

Less confusing language, better grammar and formatting.

<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and it's effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
spellcheck: Whenever you offer your hand to someone in need, or just
wanting to pull them around- the alert that shows up to them should be a
bit more clear now with a 100% decrease in non-necessary pronouns and
articles.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->

---------

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2023-02-03 15:28:05 -05:00
SkyratBot
15d5ab2438 [MIRROR] fixes fov removal f12 exploit [MDB IGNORE] (#19112)
* fixes fov removal f12 exploit (#73107)

## About The Pull Request
adds a variable to huds containing all screen objects that should be
permanently there
fov stuff goes there now rather than not being kept on the screen at all
therefore fov no longer disappears

## Why It's Good For The Game
i must torture lemon.

## Changelog
🆑
fix: fixes fov removal f12 exploit
/🆑

* fixes fov removal f12 exploit

---------

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
2023-02-02 16:15:11 +00:00
SkyratBot
ffac8f0df0 [MIRROR] Fixes critical plane masters improperly not being readded in show_to [MDB IGNORE] (#19060)
Fixes critical plane masters improperly not being readded in show_to (#72604)

## About The Pull Request

[Adds support for pulling z offset context from an atom's
plane](9f215c5316)

This is needed to fix paper bins, since the object we plane set there
isn't actually on a z level.
Useful elsewhere too!

[Fixes compiler errors that came from asserting that plane spokesmen had
a plane
var](b830002443)

[Ensures lighting backdrops ALWAYS exist for each lighting
plane.](0e931169f7)

They can't float becuase we can see more then one plane at once yaknow?

[Fixes parallax going to shit if a mob moved zs without having a
client](244b2b25ba)

Issue lies with how is_outside_bounds just blocked any plane readding
It's possible for a client to not be connected during z moves, so we
need to account for them rejoining in show_to, instead of just blocking
any of our edge cases.

Fixing this involved having parallax override blocks for show_plane and
anything with the right critical flags ensuring mobs have JUST the right
PMs and relays.
It's duped logic but I'm unsure of how else to handle it and frankly
this stuff is just kinda depressing.
Might refactor later

[show_to can be called twice successfully with no hide_from
call.](092581a5c0)

Ensures no runtimes off the registers from this

## Why It's Good For The Game

Fixes #72543
Fixes lighting looking batshit on multiz. None reported this I cry into
the night.

## Changelog
🆑
fix: Fixes parallax showing up ABOVE the game if you moved z levels
while disconnected
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Time-Green <timkoster1@hotmail.com>
2023-01-31 16:30:01 -05:00
SkyratBot
2d468e9c2d [MIRROR] Implements functionality for variable weapon attack and secondary weapon attack speeds. [MDB IGNORE] (#19048)
Implements functionality for variable weapon attack and secondary weapon attack speeds. (#72959)

## About The Pull Request
The click cooldown after attacking with a weapon can now be controlled
with a var. A var can also be set for secondary attack cooldown, if
unset it is the same as the weapon's normal attack speed.

The two weapons who already had hardcoded mechanics to achieve this
effect (see: The Stinger, Hyper Frequency Blade) have been converted to
this system.
## Why It's Good For The Game
Future varying of weapon qualities and admin shenanigans.
## Changelog
🆑
code: Greater support for variability in weapon attack speed 
admin: Admins are now able to grief you by hitting you with a toolbox 10
times in one second.
/🆑

Co-authored-by: itseasytosee <55666666+itseasytosee@users.noreply.github.com>
2023-01-31 13:54:11 +00:00
SkyratBot
b8f850876d [MIRROR] Refactor: Carp Infusion & Lungs [MDB IGNORE] (#19004)
Refactor: Carp Infusion & Lungs (#71940)

## About The Pull Request
Recently before merging PR #71867 I failed to account for the carp lungs
and spacewalk trait in my testing (I did not try to fly across space)
and so I did not notice other bugs. This PR fixes the bugs/oversights
which I missed in my prior PR. Fixes #72678

I have completed a refactor of
`/obj/item/organ/internal/lungs/proc/check_breath` and
`/mob/living/carbon/proc/check_breath` because I noticed that bugs
within the gas alert system (stuck alerts) were caused by their improper
execution, and the code was written in a hard-to-understand style.

This PR also includes a small adjustment to status indicators which
allows you to add an already existing timed indicator without
overwriting it; it instead resets the existing timeout.

Here is a granular list of bugs:

- Bug A: Causes the spacewalk trait to not be applied to the mob, and is
caused by a minor developer oversight in
`/datum/status_effect/organ_set_bonus/carp/enable_bonus()` wherein it
attempts to add `TRAIT_SPACEWALK` to the status effect rather than to
the Mob.
- Bug B: Causes the carp lungs to suffocate you in space, because that
behavior is unimplemented.
- Bug C: Causes the gas alert indicators ("Too much O2!" etc) to stay
stuck to the screen if `check_breath` or other procs fail to remove
them. This is caused by the way `check_breath` early-returns without
executing the necessary logic to manage its gas alerts.
- Bug D: The part of `lungs/proc/check_breath()` that removes consumed
miasma from the air is only doing so when helium is also present and
consumed.

This PR contains fixes for these bugs:

- Fix A: Added the spacewalk trait to the mob, allowing the trait to
enable space flight as expected.
- Fix B: Added `TRAIT_SPACEBREATHING` as a lungs trait, which is used in
`check_breath`, which allows the mob to "breathe" in space or vacuum,
but suffocate when breathing unsuitable gas/O2.
- Fix C: Changed the proc `/mob/proc/throw_alert` such that, when
throwing an alert which already exists, it resets the timeout of the
existing alert rather than replacing it.
- ~Fix C2: Added a 10 second timer to gas alerts. If something fails to
clear them from the screen, they will now clear themselves after 10
seconds.~
- Fix D: Refactored `/mob/living/carbon/proc/check_breath` and
`obj/item/organ/internal/lungs/proc/check_breath` to run the necessary
logic for resetting gas side effects and gas alerts.
- Removed an early-return which was causing the `check_breath` functions
to skip most of their critical sections.
- Fixed the part of `lungs/proc/check_breath()` that removes consumed
miasma from the air, allowing it to remove the correct amount when
expected to.
- Added conditionals to check for `TRAIT_SPACEBREATHING` on lungs to
bypass suffocation.
- Added a fall-back to a default "flyweight" breath
`datum/gas_mixture/empty_breath` to Carbons and lungs, used in in the
event that either gets a null `breath`.
- Renamed `obj/item/organ/internal/lungs/proc/handle_too_little_breath`
to `handle_suffocation` and refactored it to handle more aspects of
suffocation that was originally being handled inline.
- Added `/obj/item/organ/internal/lungs/proc/breathe_gas_volume` to
`check_breath` to replace lots of inlined logic which handles
consuming/exchanging gases (O2 for CO2, etc).

## Why It's Good For The Game

Shortly after PR #71867 was merged, we noticed the carp lungs and
spacewalking trait were not working as expected when doing the Space
Carp DNA infusion. This PR fixes the bug and allows you to spacewalk
like a Space Carp again.

This PR also adjusts the gas alert indicators so they don't get stuck to
the screen as often. This PR also fixes a bug that was causing timed
alerts to overwrite each other when it was unnecessary to do so, and
helps prevent their on-throw animation from being replayed when not
appropriate.

I have included an intermediate refactor of
`/mob/living/carbon/proc/check_breath` and
`obj/item/organ/internal/lungs/proc/check_breath` in this PR, and I have
tried to improve readability/maintainability while correcting critical
oversights in the ways breathing was working. After my changes are
merged, I will likely work on another refactor to delete duplicated
sections of code between Carbons and lungs, as much of it is 99%
identical.

## Changelog

🆑 A.C.M.O.
refactor: Refactored breathing, mostly check_breath, for Carbons and
lungs organ.
add: Added the space-breathing trait for lungs.
fix: Fixed the Space Carp DNA infusion to apply the Spacewalk trait,
allowing you to fly through space.
fix: Fixed the Space Carp lungs, allowing you to breathe in space with
them.
fix: Fixed gas status indicators re-playing their on-throw animation
when they are refreshed.
fix: Fixed gas status indicators getting stuck to the screen in some
situations.
fix: Fixed gas side effects, such as euphoria and hallucinations, to
reset when expected.
fix: For Humans, fixed Miasma only being consumed from the air when
Helium is present.
/🆑

---------

Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-01-31 02:17:34 +00:00
SkyratBot
9c5408fe27 [MIRROR] Optimizes changing z level as a ghost by something like 85% [MDB IGNORE] (#19030)
Optimizes changing z level as a ghost by something like 85% (#73005)

<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

Optimizes hud image addition/removal on z change

We were doing a lot of repeated work here, not to mention all the proc
calls.
So I pushed the "operate on loops" behavior into its own proc, so I
could ensure we only do some of this stuff once

This plus some removal of safeties saves 75% of the cost of z level
transitions as a ghost

Prevents double on_changed_z_level calls from ghosts and shuttles

Reacting to z changes used to be done off doMove or one of those
children, timber moved it to Moved, but did not remove the calls that
assumed things like abstract_move wouldn't trigger it

This means that moving up/down as a ghost was causing a double call of
the whole z move stack. Suprised this never broke anything tbh

Makes csv stat tracking actually encode numbers properly, cleans up an
indev comment from plane group code

## Why It's Good For The Game

Speed, and fixes

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2023-01-29 23:50:33 +00:00
nevimer
b2e7e489cb Missed Mirror: Fix incorrect calls to UnregisterSignal (#68698) (#18856)
Fix incorrect calls to UnregisterSignal (#68698)

Fix calls to UnregisterSignal

(cherry picked from commit aba3bc80e0)

# Conflicts:
#	code/_onclick/hud/new_player.dm
#	code/datums/status_effects/debuffs/debuffs.dm
#	code/game/objects/items/devices/geiger_counter.dm

Co-authored-by: Gamer025 <33846895+Gamer025@users.noreply.github.com>
2023-01-21 22:15:23 -08:00
Zonespace
e98b446a5c Mirror #72195 (#18651)
Blob QoL: Orbit menu & Antag Info (#72195)

## About The Pull Request
Blob UI refactor that started from sorting blobs into their appropriate
orbit section.

Original issue:
Permanently hostile antags like blob can produce minions, but these lil
guys don't actually get an antag datum and thus don't get sorted into
the proper section in the orbit menu.

Now:
- Blob minions also go in "Biohazards" section of orbit UI
- Blob helper text is now an antag info UI
- Blobs get their own text span type instead of boring big chat
- Blob minions get actual objective: Protect the core

<details>
<summary>View the OUTDATED blob antag info screen:</summary>


![vLQMLDHxHw](https://user-images.githubusercontent.com/42397676/209544201-3adddeb2-cdd5-4cb7-adcc-59ead43fa07a.gif)
</details>

## Why It's Good For The Game
Orbit menu will now properly sort player controlled blob minions into
the biohazard sections, making it easier to distinguish the bad guys
Blob antag info is a little easier to read, much more in line with the
other antags
## Changelog
🆑
fix: Blob minions are now sorted into biohazards in orbit UI.
add: Blobs now get antag info screens.
add: Blob minions get objectives (protect the core!).
add: Adds blob style text for victories, etc.
refactor: Refactors some blob & blob minion code.
/🆑

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2023-01-12 10:42:31 -05:00
SkyratBot
9ad06abd1f [MIRROR] Don't call afterattack() twice in the attack chain [MDB IGNORE] (#18629)
* Don't call afterattack() twice in the attack chain (#72617)

## About The Pull Request

It wasn't caused but went un-noticed in #72292 that `afterattack()` proc
was called twice towards the end of the attack chain. Just randomly
noticed this when browsing the code

## Changelog
🆑
fix: don't call after attack twice
/🆑

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

* Don't call afterattack() twice in the attack chain

Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
2023-01-10 07:33:44 -08:00
SkyratBot
509b89f45c [MIRROR] Contextual tutorials for swapping hands and dropping items [MDB IGNORE] (#18604)
* Contextual tutorials for swapping hands and dropping items

* Fixes

* Oops

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
2023-01-10 14:26:08 +01:00
SkyratBot
e7bc2c7d4f [MIRROR] Removes double spaces in defines and removes some unused ones [MDB IGNORE] (#18622)
* Removes double spaces in defines and removes some unused ones (#72466)

## About The Pull Request

1. Removes unused defines (DIAG_CIRCUIT_HUD, LIGHTING_BASE_MATRIX,
pda_styles and the defines it uses, MAFIA_MEDAL_CHARISMATIC &
MAFIA_MEDAL_VIP).

2. Removes double spaces (or tab->space & space->tab) from everywhere I
saw them in the defines folder (unless used by autodoc)

3. Removes the unecessary amount of tabs from lists in HubMigrator, this
PR was at first gonna be around achievements but this just bugged me,
which spiraled into this.

## Why It's Good For The Game

me when i spread my code standards onto the codebase i contribute to

this doesn't affect the game however it does make the defines look
cleaner and brings it up to date with our most recent standards.

## Changelog

not player-facing.

* Removes double spaces in defines and removes some unused ones

Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com>
2023-01-09 22:03:10 -08:00
SkyratBot
ae3b1e78a4 [MIRROR] Dogs become tamed when given bones [MDB IGNORE] (#18549)
* Dogs become tamed when given bones

* skew

Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 08:38:01 -05:00
SkyratBot
36bc850a11 [MIRROR] fixes silly stuff about basic mobs [MDB IGNORE] (#18368)
* fixes silly stuff about basic mobs

* merge conflicts, also apply upstream 72120

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2023-01-09 06:00:48 -05:00
Zonespace
e38eee6dee holopara qol update (#72042) (#18438)
holoparasite types have improved code
admins can now give someone a holoparasite through a new menu in vv
dropdown
alt click holopara abilities were moved to right click (support's beacon
wasn't, but support's heal mode was)
holoparas have less hardcoded stuff so admins can edit them easier
holoparasites now get their light color from their guardian color
holoparasites no longer have the hostile faction, things will attack
them
holoparasites now have a damage overlay, so you can see how much your
summoner is damaged
holoparasite health updating is now event based rather than running on
life, so you'll see health changes everytime they happen, rather than
every 2 seconds
holoparasites fly properly again (they cant spacewalk, but count as
flying for stuff like chasms)
holoparasite creation now uses a radial menu with tooltips for each
subtype. it also shows ghosts which type you picked
holoparasites can no longer be fugu'd
adds support for ownerless holoparasites
fixes mildly related bugs along the way

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: Tastyfish <crazychris32@gmail.com>
2023-01-09 05:39:54 -05:00
SkyratBot
650d64f6d4 [MIRROR] afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item [MDB IGNORE] (#18519)
* afterattack now returns a flag if it's reasonable to suspect the user intends to act on an item

* Update _neck.dm

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
2023-01-07 06:55:38 +00:00
SkyratBot
c812d943e6 [MIRROR] Rescale SM health from 900 to 100, UI improvements, visual changes. [MDB IGNORE] (#18456)
* Rescale SM health from 900 to 100, UI improvements, visual changes. (#72252)

Rescaling because i saw someone think that the number on the supermatter
UI are actually the percent damage over time, which is wrong.

Added delta symbol to damage and energy since they actually denote
change, not the actual value.

Chose the numbers that look good instead of doing a 1:1 rescale of the
old one (i.e. im dividing or multiplying things by 10 instead of 9). In
practice this means I'm lowering the damage cap but increasing damage
over the board for atmos (since it's mostly divisors). Lowered the
damage overall for external stuffs.

A bit of modification on the filter helpers to suit my needs. Added
documentation because I'm awesome.

* Rescale SM health from 900 to 100, UI improvements, visual changes.

Co-authored-by: vincentiusvin <54709710+vincentiusvin@users.noreply.github.com>
2023-01-01 09:15:37 -08:00
SkyratBot
115083352e [MIRROR] replaces chaos holoparasite with gaseous holoparasite [MDB IGNORE] (#18226)
* replaces chaos holoparasite with gaseous holoparasite (#72049)

## About The Pull Request
replaces chaos holopara with the gaseous holopara (if someone has a
better name suggest it)
instead of the fire and hallucinations, it can now expel gas from
itself, flooding an area with one of the following:
o2, n2, n2o, co2, h2o, bz or plasma
its punches cause sparks and it regulates the user's temperature and
extinguishes them
https://streamable.com/leukv5

## Why It's Good For The Game
chaos holopara is very underwhelming, the hallucinations arent really
that good and ss13 fires arent either, also there was no real theme tied
around it, what do hallucinations and fire have in common?
this may be more fun and it plays more with the sandbox, lets see!

## Changelog
🆑 fikou
del: chaos holoparasite
add: gaseous holoparasite, it can expel various gases from its body and
stabilizes the users temperature
/🆑

Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>

* replaces chaos holoparasite with gaseous holoparasite

Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
Co-authored-by: tattle <66640614+dragomagol@ users.noreply.github.com>
2022-12-31 10:10:40 -08:00
SkyratBot
1737ab8598 [MIRROR] Fixes parallax on >2 level maps going fucky with optimized multiz [MDB IGNORE] (#18298)
* Fixes parallax on >2 level maps going fucky with optimized multiz (#72169)

## About The Pull Request

We no longer always render parallax.
This was causing issues because we can't isolate the white of space from
the vaugely white of everything else.

So instead, if your parallax plane is out of view, we'll not only
disable it, but we'll disable the strand we send from the main plane TO
it.

Instead only blending against the bottom stack.

This does mean there's a possibility for fullwhite on z transition
borders (potentially fixable), or when hijacking the plane (also
fixable, but significantly more annoying).

This is enough to make large maps functional though, so I'm happy with
it

## Why It's Good For The Game

Allows for #71731 and other maps like it. Makes my code actually work

## Changelog
🆑
fix: Using optimized multiz on > 2 z layer maps will no longer cause
fucko bungo
/🆑

* Fixes parallax on >2 level maps going fucky with optimized multiz

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-12-24 21:27:07 -08:00
SkyratBot
339f158af5 [MIRROR] Pacifists can attack people with non-lethal weapons [MDB IGNORE] (#18302)
* Pacifists can attack people with non-lethal weapons (#72183)

## About The Pull Request

Fixes #72054
Allows pacifists to hit people with weapons which only do stamina
damage.
Additionally, allows pacifists to participate in boxing which also only
does stamina damage.
Is it pacifism to hit someone square in the face while wearing boxing
gloves? I say, maybe.

## Why It's Good For The Game

Pacifists were feeling left out after not being invited to your pillow
fights.
More seriously, they can use _guns_ which only do stamina damage so it
makes sense that they can use melee implements too.
Boxing is fun.

## Changelog

🆑
fix: Pacifists can now hit people with pillows and holographic weapons,
as well as participate in boxing.
/🆑

* Pacifists can attack people with non-lethal weapons

Co-authored-by: Jacquerel <hnevard@gmail.com>
2022-12-24 21:26:46 -08:00
SkyratBot
df737af4a0 [MIRROR] *hand, or That /One/ Emote You Always Felt Was Missing [MDB IGNORE] (#18200)
* *hand, or That /One/ Emote You Always Felt Was Missing (#71600)

## About The Pull Request
It's happened to me _repeatedly_ that I'd see someone down on the floor,
and wanted to just, give them a hand, so they could take it and get up
that way, without just, directly clicking on them, since that's a little
bland. I've also wanted to just, offer my hand to someone so they could
grab it, so that I could pull them alongside me, rather than just
targeting one of their arms and ctrl-clicking them.

I've had this idea for a _long_ time, and only just decided to do this
today.

Now, I know what you might say. "Golden, that's a lot of code for
something this simple!" You're not wrong. _However_. I decided to go
along and to give some more love to the `/datum/status_effect/offering`
status effect and the offering-related alerts, to make them a lot more
versatile and a lot less hardcoded. Hence the whole "refactoring" part
of this.

Of course, when I add something, I don't do it half-way. So, the way the
emote works is much like the `*slap` emote, except that:

- When you click on someone, it does the exact same as if you were
offering the item to them, except that it's targeted (much like
ctrl-shift-click).
- If there's nobody directly adjacent to you, it won't do anything.
- If there's at least one person lying down around you, you will offer
them your help to get up. Should they take your hand and let you help
them up, you will both receive a simple memory about being helped up (or
helping up), as well as a 45-seconds-long small mood buff, because it
feels nice to be on either end of such a friendly gesture. If they get
up, they automatically get disqualified from being offered some help
standing up, and likewise, if you lie down, that offer goes away as
well.
- If there's at least one person around you, you will instead extend
your hand in their direction, for them to grab onto it. Should they do
so, you will then grab them by their arms and pull them.

I reworked the offering status effect to no longer have a hardcoded
`can_hold_items()` check, so that kisses and the hand offering would no
longer need you to have free hands to complete. The logic here is that
you can still pull someone even with both hands filled, so I figured I'd
leave it this way.

Note: If anyone would like to give the item a better sprite, by all
means, go ahead, that'd be amazing. I'm just not really a great spriter
and couldn't be bothered to waste hours making a very _meh_ hand.

## Why It's Good For The Game
It's fluff, and nice fluff at that. It makes it easier for people to be
nice to one-another without having to necessarily spend so long writing
up an emote that the person on the floor will already have gotten back
up. I'm sure the MRP folks will like it, and I'm certain the HRP
downstreams will love it too ;)

## Changelog

🆑
add: Added the *hand emote, which you can offer to someone standing up
in order to give them the possibility to grab onto your hand and let you
drag them away, or to someone lying down to help them back up, which
always makes everyone involved a little happier!
refactor: De-hardcoded and genericized a lot of the offering status
effect and alert code, to make it require a lot less copy-paste to
handle new cases.
fix: Offering a kiss no longer requires the receiver to have free hands
to accept said kiss!
/🆑

* *hand, or That /One/ Emote You Always Felt Was Missing

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
2022-12-20 21:28:44 -05:00
SkyratBot
1c76ea5334 [MIRROR] Changes our map_format to SIDE_MAP [MDB IGNORE] (#18070)
* Changes our map_format to SIDE_MAP (#70162)

## About The Pull Request

This does nothing currently, but will allow me to test for layering
issues on LIVE, rather then in just wallening.
Oh also I'm packaging in a fix to one of my macros that I wrote wrong,
as a joke

[removes SEE_BLACKNESS usage, because we actually cannot use it
effectively](c9a19dd7cc)

[c9a19dd](c9a19dd7cc)

Sidemap removes the ability to control it on a plane, so it basically
just means there's an uncontrollable black slate even if you have other
toggles set.

This just like, removes that, since it's silly

[fixes weird layering on solars and ai portraits. Pixel y was casuing
things to render below who
shouldn't](3885b9d9ed)

[3885b9d](3885b9d9ed)

[Fixes flicker
issues](2defc0ad20)

[2defc0a](2defc0ad20)

Offsetting the vis_contents'd objects down physically, and then up
visually resolves the confliciting that was going on between the text
and its display.

This resolves the existing reported flickering issues

[fixes plated food not appearing in
world](28a34c64f8)

[28a34c6](28a34c64f8)

pixel_y'd vis_contents strikes again. It's a tad hacky but we'll just
use pixel_z for this

[Adds wall and upper wall plane
masters](89fe2b4eb4)

[89fe2b4](89fe2b4eb4)

We use these + the floor and space planes to build a mask of all the
visible turfs.
Then we take that, stick it in a plane master, and mask the emissive
plane with it.

This solves the lighting fulldark screen object getting cut by emissives
Shifts some planes around to match this new layering. Also ensures we
only shift fullscreen objects if they don't object to it.

[compresses plane master
controllers](bd64cc196a)

[bd64cc1](bd64cc196a)

we don't use them for much rn, but we might in future so I'm keeping it
as a convienince thing

🆑
refactor: The logic of how we well, render things has changed. Make an
issue report if anything looks funky, particularly layers. PLEASE USE
YOUR EYES
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Changes our map_format to SIDE_MAP

* Modular!

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2022-12-19 20:58:43 +13:00
SkyratBot
15faaa54f5 [MIRROR] Rewrites how action buttons icons are generated, makes them layer nicer. Allows observers to see a mob's action buttons. [MDB IGNORE] (#17907)
* Rewrites how action buttons icons are generated, makes them layer nicer. Allows observers to see a mob's action buttons.

* conflicts

* Modular!

* update modular

* icon icon icon icon icon

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: Funce <funce.973@gmail.com>
2022-12-16 16:01:41 +00:00
SkyratBot
699e9f8150 [MIRROR] TGUI Latejoin Menu! [MDB IGNORE] (#18025)
* TGUI Latejoin Menu!

* [PR PR] Fixes up the TGUI Latejoin Menu! (#18044)

* Makes Angel, Dragon and Robotic wings available in the preferences menu again (#18013)

Makes Angel, Dragon and Robotic wings available in the prefs menu again

* Automatic changelog for PR #18013 [ci skip]

* [MIRROR] Petrified human statues now drop a (stone) brain on destruction [MDB IGNORE] (#18026)

* Petrified human statues now drop a (stone) brain on destruction (#71816)

## About The Pull Request
Destroying a petrified human statue will now drop their brain, albeit a
little more statue-like.

![image](https://user-images.githubusercontent.com/41448081/206316168-e902d6e4-1cb8-4498-80c8-891c59ae638b.png)

Changed from original PR after talking w/ Fikou about it

## Why It's Good For The Game
While the combo *does* step on the toes of Smite, the statue+rod combo
is capable of fully removing you from the round without a way back very
quickly. This keeps the strength of the combo while not making it
entirely impossible to get back into the round.

## Changelog
🆑
balance: Destroying a petrified human statue will now drop their brain.
/🆑

* Petrified human statues now drop a (stone) brain on destruction

Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>

* Automatic changelog for PR #18026 [ci skip]

* [MIRROR] Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. [MDB IGNORE] (#18019)

* Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup. (#71674)

## About The Pull Request

- The chaplain choice beacon now uses a radial to select the armor set,
instead of a list, giving the user a preview of what each looks like.

![image](https://user-images.githubusercontent.com/51863163/205417930-f5ceab11-6974-48a9-a871-abcb8228bcf2.png)

- Lots of additional cleanup to choice beacon code in general. Less copy
pasted code.
- All beacons now speak from the beacon with their message, instead of
some going by "headset message". Soul removed

## Why It's Good For The Game

I always forgot when selecting my armor which looks like what, and
choosing an ugly one is a pain since you only get one choice. This
should help chaplains get the armor they actually want without needing
to check the wiki.

## Changelog

🆑 Melbert
qol: The chaplain's armament beacon now displays a radial instead of a
text list, showing previews of what all the armor sets look like
qol: (Almost) all choice beacons now use a pod to send their item,
instead of just magicking it under your feet
code: Cleaned up some choice beacon code.
/🆑

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

* Chaplain armor beacon now uses radial + previews possible armor sets, plus some choice beacon code cleanup.

* update modular

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

* Automatic changelog for PR #18019 [ci skip]

* [MIRROR] Fixed an improper proc ref. [MDB IGNORE] (#18031)

Fixed an improper proc ref.

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

* Automatic changelog for PR #18031 [ci skip]

* Fiiix!

* Fuck

* [MIRROR] Windoors are vulnerable to a jaws of life [MDB IGNORE] (#18040)

* Windoors are vulnerable to a jaws of life (#71733)

## About The Pull Request
Windoors can be pried by a jaws of life now
## Why It's Good For The Game
Windoors are already immune to any kind of deconstruction outside of
bashing it, so making it immune to the jaws of life as well seems
excessive
## Changelog
🆑
balance: jaws of life can pry windoors
/🆑

Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>

* Windoors are vulnerable to a jaws of life

Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>

* Automatic changelog for PR #18040 [ci skip]

* Automatic changelog compile [ci skip]

* [fix] fixes det revolver icons (#18049)

* Delete guns.dmi

* Add files via upload

* Automatic changelog for PR #18049 [ci skip]

* [MIRROR] Fixes fake links in Adminwho that led to "no_feedback_link" [MDB IGNORE] (#18027)

* Fixes fake links in Adminwho that led to "no_feedback_link" (#71804)

## About The Pull Request
Basically, sometimes, very rarely, it was possible for this to happen,
when it shouldn't be happening. I was wondering for a little while what
it was about, and then I finally downloaded my chat logs for a round and
realized what was going on. It should no longer happen.

## Why It's Good For The Game
Clickable links that lead nowhere (and thus don't do anything) aren't
very good for the game.

## Changelog

🆑 GoldenAlpharex
fix: There shouldn't be clickable names in Adminwho that don't do
anything anymore.
/🆑

* Fixes fake links in Adminwho that led to "no_feedback_link"

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>

* Fix: Self-Actualization Device Doubling Damage (#18015)

* Change adjustOrganLoss/BruteLoss/FireLoss to set

* Reverts my naive soluton

* Automatic changelog for PR #18027 [ci skip]

* Automatic changelog for PR #18015 [ci skip]

* Fix TGUI latejoin menu not closing properly, properly this time

* Oh yea, flavourtext requirement exists. Not that we actually have it enabled upstream.

* Revert "Merge remote-tracking branch 'upstream/upstream-merge-71883' into fixlatejoinmenu"

This reverts commit 3279e73418f95637162a2923b0431e9e26b43403, reversing
changes made to d46aab7b421fee94d49b57e863bfd8e0917fc43f.

* Fucking stupid code merge shit

* Cool newline bro

* Dumb stupid commented code

* Also this

Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: RatFromTheJungle <62520989+RatFromTheJungle@users.noreply.github.com>
Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>

* fix

Co-authored-by: Rimi Nosha <riminosha@gmail.com>
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
Co-authored-by: Fikou <23585223+Fikou@ users.noreply.github.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
Co-authored-by: lizardqueenlexi <105025397+lizardqueenlexi@users.noreply.github.com>
Co-authored-by: texan-down-under <73374039+etherware-novice@users.noreply.github.com>
Co-authored-by: Candycaneannihalator <candycane@ thisisnotarealaddr.com>
Co-authored-by: Changelogs <action@github.com>
Co-authored-by: RatFromTheJungle <62520989+RatFromTheJungle@users.noreply.github.com>
Co-authored-by: Dani Glore <fantasticdragons@gmail.com>
Co-authored-by: distributivgesetz <distributivgesetz93@gmail.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-12-15 16:18:28 -05:00
SkyratBot
6a5b4a4bac [MIRROR] Adds logic to provide leniency for drag clicks [MDB IGNORE] (#18124)
* Adds logic to provide leniency for drag clicks (#71082)

## About The Pull Request

Ok so like, in byond. if you click on something and release the click
without moving off its sprite, that counts as a "click"

If you however move your mouse off its sprite, or it does so on its own,
any further releases count as dragdrops.

We already have logic for catching drag -> mouse back over sprite. The
code I'm adding here basically is just a bit nicer about how exact you
need to be

I'm adding tweakable values for how much your mouse is allowed to move
(This isn't perfect currently, since if the target itself moves we don't
care, need to work on this) in a short time period. If you meet these
cases, we instead call it a click.

They're globs for now cause I don't have a good feel for em, will tweak
over time. I want to reduce dumb clickspam and click dragging moving
mobs/drifting items by accident.

Oh also fixed a bug in ai behaviors that came from not knowing what
get_active_hand did

Fixes a monkey behavior of using their held item

It turns out it never worked, and the only reason it didn't runtime was
because of an if() check that got passed the result of an invalid proc
call. this fixes that

## Why It's Good For The Game

Spam clicking and drag clicking are stupid. they should be less stupid

## Changelog
🆑
add: Adds a grace period for hit detection, between clicking ON someone,
and then moving your mouse off before releasing the click. It's short,
hopefully it helps with stupid
/🆑

* Adds logic to provide leniency for drag clicks

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-12-13 20:59:30 -08:00
SkyratBot
a5a173f672 [MIRROR] Adds the DNA Infuser, a genetics machine you feed corpses to infuse their DNA with yours! What could go wrong?! [MDB IGNORE] (#17811)
* Adds the DNA Infuser, a genetics machine you feed corpses to infuse their DNA with yours! What could go wrong?!

* SR conflicts

* fox ears

* remove duplicate event and merge master

Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
Co-authored-by: Tom <8881105+tf-4@users.noreply.github.com>
2022-12-07 16:07:26 +00:00
GoldenAlpharex
b6f65d6407 Fixes cleaning bubbles not showing up during cleaning by removing a redundant call to COMSIG_ITEM_AFTERATTACK (#17847)
Fixes cleaning bubbles not showing up
2022-12-02 00:05:06 +00:00
SkyratBot
6eb8c22245 [MIRROR] pAIs and lightgeists can now correctly climb ladders. [MDB IGNORE] (#17802)
* pAIs and lightgeists can now correctly climb ladders. (#70869)

## About The Pull Request
See the title and the relative issue reports.

The logic here is that, if they can move, chances are they can also use
ladders (with a few exceptions such as camera mobs). This ought to
include both pAIs and lightgeists, even if they cannot directly interact
with about every other object in the game.

I have also moved lightgeists onto a new file, from colossus.dm.

## Why It's Good For The Game
This will fix #57061 and fix #69228.

## Changelog

🆑
fix: pAIs and lightgeists can now correctly climb ladders.
fix: fixed a small issue with the radial menu for ladders that caused
the user to travel down when abruptly closed.
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* pAIs and lightgeists can now correctly climb ladders.

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-12-01 01:00:48 +00:00
SkyratBot
7f09cedf89 [MIRROR] basic mob attack now has should_call_parent [MDB IGNORE] (#17715)
* basic mob attack now has should_call_parent (#71461)

Adds SHOULD_CALL_PARENT onto basic mob's attack chain, because of a previous issue that living and obj didn't call parent. This PR originally fixed it, but another PR did the exact same fix, so this is just adding the forced parent call.

* basic mob attack now has should_call_parent

* obj_defense skew

Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Zonespace <41448081+Zonespace27@users.noreply.github.com>
Co-authored-by: tastyfish <crazychris32@gmail.com>
2022-11-28 12:05:29 -05:00
SkyratBot
ea1e6ff95f [MIRROR] Adds a preference that disables intensive rendering on different multiz layers [MDB IGNORE] (#17737)
* Adds a preference that disables intensive rendering on different multiz layers (#71218)

## About The Pull Request

It's kinda hacky, but it is nearly the same as just rendering one z
layer.
We allow people to ENTIRELY REMOVE most plane masters from their screen.
This has the side effect of disabling most visual effects (AO is a big
one) which saves a LOT of gpu.

We rely on planes being essentially layers to ensure things render in
the proper order. (outside of some hackyness required to make parallax
work)

I've kept parallax and lighting enabled, so visuals will still look
better then multiz pre plane cube.
It does also mean that things like FOV don't work, but honestly they
didn't work PRE plane cube, and FOV's implementation makes me mad so I
have a hard time caring.

Reduces gpu usage on my machine on tram from 47% to 32%, just above the
27% I get on meta.

I'm happy with this.

Oh also turns out the parallaxing had almost no cost. Need to remove it
as a side effect of what I'm doing but if I could keep it I would.

There's still room for in between performance options, like disabling
things like AO on lower z layers, but I didn't expect it to make a huge
impact, so I left things as is

Also fixes a bug with paper bins not respecting z layer. It came up in
testing and annoyed me

## Why It's Good For The Game

Ensures we can make multiz maps without running into client performance
issues, allows users to customize performance and visual quality.

## Changelog
🆑
add: Adds a new rendering option to the gameplay preferences. You can
now limit the rendering intensity of multiz levels. This will make
things look a bit worse, but run a LOT better. Try it out if your
machine chokes on icebox or somethin.
/🆑

Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>

* Adds a preference that disables intensive rendering on different multiz layers

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2022-11-25 14:27:27 +00:00