Commit Graph

148 Commits

Author SHA1 Message Date
SkyratBot
e63094d9ae [MIRROR] adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs (#3737)
* adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs (#57263)

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

* adds a bitflag for no random pixel shift on dropping, adds turf_flags var to replace usage of flags_1 on turfs

Co-authored-by: Fikou <piotrbryla@onet.pl>
Co-authored-by: Mothblocks <35135081+Mothblocks@ users.noreply.github.com>
2021-03-01 17:55:55 +00:00
SkyratBot
b332b46b65 [MIRROR] Remove hideous inline tab indentation, and bans it in contributing guidelines (#3394)
* Remove hideous inline tab indentation, and bans it in contributing guidelines

* a

Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
2021-02-15 15:32:02 +00:00
SkyratBot
43c6850b31 [MIRROR] Makes reinforced plasma windows block heatspreading (#3101)
* Makes reinforced plasma windows block heatspreading, mostly so the sm delams properly, and partially so mappers have a tool for this sort of thing (#56545)

* Makes reinforced plasma windows block heatspreading

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-02-05 21:24:11 +00:00
SkyratBot
493ee57b09 [MIRROR] Prevents the most common case of fire settling with an excited group (#2845)
* Prevents the most common case of fire settling with an excited group (#56317)

Basically when a group with a breakdown timer one tick away from settling merges with a group with hotspots in
it, and the one with a high breakdown timer is larger, the group would settle without respecting the timer of
the hotspot group, causing fwoosh levels of flame.

There's two other ways to achieve this, if you had one group of tiles that are close to the same gasmix as
another
group, and they became inactive, we'd have the same issue. I've solved this by moving the hotspot subprocess to
after active turfs and before excited groups, just for safety ya feel me?

It's still in theory possible, but much much harder. The hard solution to this would be to integrate heat with
how we reset excited group timers, and split excited groups into smaller portions, but I'm not sure I like that
idea.
I need to mull it over.

* Prevents the most common case of fire settling with an excited group

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-01-23 18:09:23 +00:00
SkyratBot
c43639844b [MIRROR] Makes excited breakdowns independent of adding new turfs (#2722)
* Makes excited breakdowns independent of adding new turfs. This prevents the dreaded stationwide firelock, at least mostly, and moves us away from being dependant on room size. As a downside, we're closer then ever to ZAS. This also allows us to raise the breakdown timer and decrease the amount of overtime experienced in each tick. (#56081)

## About The Pull Request

This prevents the dreaded station-wide firelock, at least mostly, and moves us away from being dependent on room size. As a downside, we're closer then ever to ZAS, and the transition between pre-breakdown and post-breakdown is a lot more visible. This also allows us to raise the breakdown timer and decrease the amount of overtime experienced in each tick.

See video, I'm not sure I'm happy with the current rate, it does look somewhat shit. I'm considering tweaking the alpha curve for gas visuals to try and make it look less not good. [Video](https://cdn.discordapp.com/attachments/326831214667235328/797766078389813298/2021-01-10_01-55-53.mp4)

Closes #56066

## Why It's Good For The Game

Station spanning excited groups are rarer, and will settle down more often. Cold things like space will cool down their group faster, preventing station spanning non updating excited groups.

* Makes excited breakdowns independent of adding new turfs

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2021-01-16 00:50:30 +01:00
SkyratBot
f79e91462c [MIRROR] LINDA Reforged (#2573)
* LINDA Reforged

* Update airlock.dm

* Update biohazard_blob_controller.dm

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2021-01-08 18:52:35 +01:00
SkyratBot
a71d2aca24 [MIRROR] Planetary Atmos Changes (#2135)
* Planetary Atmos Changes (#55398)

This PR sets several Icebox turfs to be planetary atmos turfs, such as the openspace, to return the gas mix to a standard, and reduce the number of active turfs overall. To aid in this, planetary atmos calculations are a seperate share from the main 4 turf share now, and instead re-archive and share 4/5 of their difference in moles to the atmosphere, as well as temperature sharing with a higher heat capacity. This should result in the planetary atmos turfs returning to their standard much faster than before.

Before at most planetary turfs would keep 0.8 of their difference after sharing, compared to the 0.2 difference they will keep now, log(0.2) / log(0.8) showing this is sharing about 7 times faster in getting rid of gas diffs. This should also reduce the effects of continuous fires and limit their active turfs to a certain region on the planet, ex: the incinerator outlet wouldn't spread to the entire planets turfs. This also makes behavior more like space for the purposes of cooling and venting gas for toxins.

This might also make gas farming slightly faster since the gas will also come back faster, but considering most of the expensive gasses have been removed and this will also reduce the lag from gas farms, I think it is a worthwhile change. It can't be worse than making the turfs immutable anyways since that would be the fastest.

Reduces lag and makes gameplay more in-line with space stations in ways that improve quality of life but still preserve uniqueness by not making the planetary turfs completely immutable.

* Planetary Atmos Changes

Co-authored-by: Whoneedspacee <yougotreallyowned@gmail.com>
2020-12-11 10:37:34 +01:00
SkyratBot
c487c73f39 [MIRROR] Grep for space indentation (#1969)
* Grep for space indentation

* aa

* Update species.dm

* Update species.dm

* Update maps.dm

* Update examine.dm

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-12-01 12:26:41 +01:00
SkyratBot
28472fa8f3 [MIRROR] Moves screen objects from mob to hud (#1336)
* Moves screen objects from mob to hud (#54400)

This moves screen images from icons/mob to icons/hud
Makes more sense and it is easier to find

* Moves screen objects from mob to hud

* Update radial.dm

Co-authored-by: nicbn <nicolas.nattis@gmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
2020-10-16 03:37:54 +02:00
SkyratBot
5efc96ab80 [MIRROR] Makes some things that rely on atmos adjacency more sane/faster. (#1108)
* Makes some things that rely on atmos adjacency more sane/faster. (#54096)

* Replaces some CANATMOSPASS calls with a new define that checks if the turfs are in each others atmos adjacent list, as that's the same info that they want.

* Makes some things that rely on atmos adjacency more sane/faster.

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-10-01 21:32:19 +01:00
SkyratBot
ec09510459 Bools and returns super-pr (#53221) (#565)
Replaces like 70-80% of 0 and such, as a side effect cleaned up a bunch of returns
Edit: Most left out ones are in mecha which should be done in mecha refactor already
Oh my look how clean it is

Co-authored-by: TiviPlus <TiviPlus>
Co-authored-by: Couls <coul422@gmail.com>

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
Co-authored-by: Couls <coul422@gmail.com>
2020-08-30 05:12:59 +02:00
SkyratBot
0b65cc596b [MIRROR] Overlay lighting component (#469)
* Overlay lighting component (#52413)

Sparks no longer lag, projectile beams move super smoothly, same with mobs and whatnot. This also allows for easy expansion into directional lights, field-of-view, wee-woo rotating lights or whatever.

It does have a downside: things right-clicked or checked through the alt+click tab will show the light overlay:


This is a BYOND limitation, very well worth it IMO.

🆑
add: Smooth movable lighting system implemented. Projectiles, sparks, thrown flashlights or moving mobs with lights should be much smoother and less laggy.
balance: Light sources no longer stack in range, though they still do in intensity.
/🆑

* Overlay lighting component

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-23 20:17:12 +02:00
SkyratBot
b812f42c85 [MIRROR] Makes the flow of gas overlays cleaner (#448)
* Makes the flow of gas overlays cleaner (#53028)

* Makes the flow of gas overlays cleaner

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2020-08-21 14:16:26 +01:00
SkyratBot
72c69368b6 [MIRROR] Opacity refactor (#405)
* Opacity refactor (#52881)

    Moves all opacity var manipulation to a proc which sends a signal.
    light_blocker element for movable opaque atoms made, which tracks its movement and updates the affected turfs for proper lighting updates.
    has_opaque_atom boolean replaced by the opacity_sources lazylist to keep track of the sources, and a directional_opacity which serves a similar function but also allows for future expansion with on-border opaque objects (not yet implemented).
    Some opacity-related sight procs optimized as a result of this.
    Some variables moved to the object's definition.
    A define or two added into the mix for clarity.
    Some code cleaning, like turning booleans into their defines.
    One file renamed for clarity.

Changelog

cl
balance: Mechs no longer block sight. It's a non-trivial cost for the lighting system with little to no gain.
/cl

* Opacity refactor

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-19 04:48:14 +02:00
SkyratBot
1d879663ca [MIRROR] Cleans up some refs (#236)
* Cleans up some refs (#52713)

* clin

* Might as well

* Unreferenced datums autodel + lame proc

Co-authored-by: TiviPlus <TiviPlus>

* Cleans up some refs

Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
2020-08-07 18:39:08 +01:00
SkyratBot
5fd8cb072e [MIRROR] Color standardization, vars moved, and signals (#194)
* Color standardization, vars moved, and signals (#52574)

    Defined all the existing light_color values.
    Moved their definitions to colors.dm
    Made white the default color. It was so already, but that was very obscured.
    Moved the atom light-related variables to the atom definition.
    Wrapped changes to variables such as light_color into procs that report the event through signals.
    Moved the light_on variable to the atom level, also adding a signal for its changing, to represent toggling lights.
    Cleaned up a little bit of code in where new variables were defined before redefinitions.

This is all atomization to reduce changes in #52413
None of this affect gameplay at all, it's all code cleaning and refactoring.

There's more colors to standardize, a search for color = will find lots of targets, and I see little need to have both the LIGHT_COLOR and COLOR patterns, but I don't want to make this PR bigger than it already is.

* Color standardization, vars moved, and signals

Co-authored-by: Rohesie <rohesie@gmail.com>
2020-08-04 12:20:31 +02:00
SkyratBot
4394b6f971 [MIRROR] Adds an atmos debugging tool and excited group visualizer (#185)
* Adds an atmos debugging tool and excited group visualizer (#52395)

* Adds an atmos debugging tool and excited group visualizer

* rebuild moment

* yarn install -> yarn run build

* Sigh

* Fixed UI, did not test, needs a rebuild.

* Proper flexing

* Adds varied colors, improved ui courtusy of stylemistake:

* Fixes a runtime, updates tgui

* added superconductors, cleaned up some shitcode, removed a clashing color

* Woop

* Speed

* rebuild

* Adds a tick count

* begone auto-update

* color defines

* rebuild moment

* color improvements, fixes updating

* adds another preprocesser define to handle showing max shares in the ui

* test of application system?

* patches up some display issues, allows for smooth flowing from one group to another

* overlay-ified

* client testing

* dmi moment

* plane master

* it fucking works

* size change

* passthrough

* rebuild moment

* adresses review concerns, toggles active turf vis on when testing

Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>

* Adds an atmos debugging tool and excited group visualizer

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Aleksej Komarov <stylemistake@gmail.com>
2020-08-03 16:37:24 +02:00
LemonInTheDark
b327917d1a Sweeps up some redundant checks 2020-06-16 21:49:30 -07:00
kevinz000
50492bbc39 Update LINDA_system.dm 2020-05-12 19:08:24 -07:00
kevinz000
56114975b1 macro 2020-05-12 12:14:30 -07:00
Ghilker
9532dbd2a8 Hydrogen Gas (#50510)
* new PR no tgui bundle build yet

* tgui bundle built

* atmos.dmi conflict fix 2

* balancing

* tgui bundle fix
2020-04-20 14:47:22 -03:00
LemonInTheDark
f6d501542f let's uberisolate 2020-03-29 14:42:20 -07:00
LemonInTheDark
a1e4ae0bba please send help 2020-03-22 21:26:21 -07:00
Tad Hardesty
0f0604575f Add return type annotations to some procs 2019-06-25 23:03:38 -07:00
vuonojenmustaturska
251bf9b97f Update LINDA_turf_tile.dm (#43962) 2019-05-14 23:34:10 -04:00
AnturK
d81ff09046 Atmos adjacency subsystem revival (#43447)
This improves init times and makes explosions and other shit that modifies a bunch of turfs faster by saving a proccall and potentially not doing the same work more than once.

cl Naksu
code: Turf adjacency list updates are now handled by a subsystem queue
/cl
2019-04-24 21:21:25 +12:00
William Wallace
a944c2a362 Ghosts can analyze gas mixes and some new objects can be analyzed (#43502)
* Ghosts can analyze gas mixes and some new objects can be analyzed

* Replace show_air_status_to with atmosanalyzer_scan
2019-04-16 21:46:36 +12:00
vuonojenmustaturska
029aa1d3c8 Webeditor PR touching LINDA (#43330)
* Update LINDA_fire.dm

* Update LINDA_fire.dm

* Update LINDA_fire.dm

* Update LINDA_fire.dm

* Update LINDA_fire.dm

* Update LINDA_fire.dm

* the return value doesn't even fucking matter

* now it's much more readable

* just checking to see if you were awake
2019-03-30 18:57:34 +01:00
Fox McCloud
1d6aa2fb2a Fixes an Ancient LINDA Bug (#43326) 2019-03-28 01:54:38 -04:00
Kyle Spier-Swenson
29828e55a7 Fix adjacent turf calculations for open turfs that block atmos. (#42123)
* Fix adjacent turf calculations for open turfs that block atmos.

Turfs weren't checking rather or not they themselves blocked atmos before looking for open turfs near them.

* How'd that get there?
2018-12-30 03:08:16 +13:00
4dplanner
126a671d75 Argument order 2018-12-22 13:16:05 +00:00
4dplanner
b285458e2e Fixes fires 2018-12-22 11:04:41 +00:00
4dplanner
b8ab16c932 Never cool the air 2018-12-16 12:28:37 +00:00
4dplanner
b13a3cfc76 Still reacts after bypass 2018-12-16 01:42:49 +00:00
kevinz000
10d846022a [READY]MultiZ stuff - tile atmos, movement backend, falling backend, etc etc - Electric boogaloo (#40428)
Basic multiZ mob movement procs (Observers can always move)
Open space, showing what things are below it, and everything that entails. No complex support for dynamic generation just yet.
Decide how openspace should look :/

    Atoms falling through open space (NO MOB SUPPORT/DAMAGE/ANYTHING YET.)

//CANCELLED FOR ANOTHER PR - [ ] Being able to see upwards? Downwards is going to be handled by open space.

MultiZ tile atmospherics - EDIT: Working demo! https://puu.sh/B7mUs/3f6274740f.mp4
Bugtest the heck out of this trainwreck.
2018-12-11 22:09:59 +13:00
Jordan Brown
95f20ee827 Merge pull request #41679 from 81Denton/remove-hotspot
Reverts "hotspot_expose() will now heat the turf's air if it fails to create a hotspot"
2018-12-02 09:30:42 -05:00
81Denton
7d8872389b Use defines for turf atmos (#41751)
initial_gas_mix for turfs were all over the place instead of using defines. I
didn't change turfs that only show up in a single place, like the Snowdin
plasma river turf.

KITCHEN_COLDROOM_ATMOS isn't used yet; if this gets merged I'll use it to turn
kitchen cold rooms into proper.... cold rooms
2018-12-01 15:24:22 -08:00
Denton
ed7ab7f07e Reverts "hotspot_expose() will now heat the turf's air if it fails to create a hotspot" 2018-11-25 18:58:08 +01:00
nicbn
10278bebde New sprites for gases (#40873)
* take one

* take 2

* oops

* take n

* n2o thing

* Update LINDA_turf_tile.dm

* Update atmospherics.dm
2018-10-14 16:43:08 +03:00
vuonojenmustaturska
92f548efce memes 2018-10-09 21:59:40 +03:00
AnturK
018a09cb47 Melting won't happen during turf changes. (#40538) 2018-09-29 23:11:38 -04:00
ShizCalev
324f4e0b6f Makes flashes, & flashbangs flash (#40357)
* Makes flashes & flashbangs flash

* cleanup / badminnery feature

* Added cameras
2018-09-20 23:46:44 -04:00
ShizCalev
392f4bd8e3 Bloodcult Stun Spell Tweaks (#40328)
* Cult Stun Spell Tweaks

Updated to use anti_magic_check instead of a nullrod check.

Corrected the stun message showing if the target is immune to the effect.

Added some visual effects (an actual red flash), and a "holy bubble" around the person if they're immune to the effect.

https://i.imgur.com/wd77s8w.gifv

Closes #40285

* Refactor, added mob_light helper
2018-09-19 10:30:49 -04:00
kevinz000
9eec1f8db2 Adds move force and move resist, movement/pushing/pulling tweaks (#39556)
* Removes anchroed from mobs, adds move force/resist

* Move force and move resist

* WIP, still has debug messages.

* Fixes

* Update living.dm

* Anchored removal

* Stuff

* Unit tests

* Removes anchored from dview

* DME

* Update anchored_mobs.dm

* Fix

* No ghost spacewind

* Update mulebot.dm

* Update temporary_visual.dm

* Update forcefields.dm

* Update step_triggers.dm

* Update portals.dm

* Update alien_acid.dm

* Update bump_teleporter.dm

* Update landmarks.dm

* Update countdown.dm

* Update blessing.dm

* Update shieldgen.dm

* Update containment_field.dm

* Update field_generator.dm

* Update singularity.dm

* Update atmosmachinery.dm

* Update door.dm

* Update gravitygenerator.dm

* Update door.dm

* Update effects.dm

* Update temporary_visual.dm

* Update bump_teleporter.dm

* Update forcefields.dm

* Update landmarks.dm

* Update portals.dm

* Fixes

* Throwforce annnd done, finally

* Fixes

* Haha I'm dumb sometimes
2018-09-15 05:08:30 -04:00
ShizCalev
98a6b39cca Clean up mixed space & tab usage (#40121) 2018-09-05 22:51:20 -07:00
AnturK
d2427b7a1f Fixes atmos_spawn_air causing invalid temperatures 2018-07-21 12:03:09 +02:00
vuonojenmustaturska
db4c1d56ce Some tiny optimizations to atmos and chatcode (#38564)
* ever onward

* to_chat memes
2018-06-18 23:57:52 -04:00
Emmett Gaines
02a58e2017 Switches over vars[] access to vis_contents proper (#38448) 2018-06-13 17:24:45 -07:00
deathride58
c5a0e14acb Tones down values for a lot of different hotspot_expose calls (#38232)
* Tones down values for a lot of different hotspot_expose calls

* Update LINDA_fire.dm (#38217)

* Automatic changelog compile, [ci skip]

* Slight changes to camera network code (#38223)

* Removes a useless var and corrects two cameras to use the automatic naming system to reduce dv usage.

* Damn github didnt notice this was here....

* Fixes datediff not returning (#38215)

* Fixes pocket items being deleted when monkeyizing (#38220)

* Automatic changelog generation for PR #38220 [ci skip]

* readds atmos heating from hotspot_expose(), as requested by naksu

* Tones down hotspot_expose values for sparks moving and destroying

* tones down item heat by a lot. no more burning your face off after smoking a cigarette
2018-06-08 15:53:10 +03:00
AnturK
8ff8380a5d Fixes fires breaking indestructible turfs. (#38335) 2018-06-08 15:45:28 +03:00