Commit Graph

17 Commits

Author SHA1 Message Date
SkyratBot
694a0740dc [MIRROR] Parallax but better: Smooth movement cleanup [MDB IGNORE] (#13414)
* Parallax but better: Smooth movement cleanup (#66567)

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

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

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

So, I've made connect_mob_behalf. Fuck you.

This saves a proc call and some redundant logic

* Fixes random parallax stuttering

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

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

This var is typically set to 0.

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

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

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

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

* Adds animation back to parallax

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

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

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

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

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

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

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

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

Oh and I cleaned up some of the code slightly.

* Parallax but better: Smooth movement cleanup

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
2022-05-07 23:33:34 +01:00
SkyratBot
da30e9df00 [MIRROR] Should fix shuttles leaving without sections [MDB IGNORE] (#11407)
* Should fix shuttles leaving without sections(#64764)

Should(tm)

This was a suggestion by @ Mothblocks and it seemed easy to implement

Fixes #64546 (Icebox evac will sometimes leave without sections)
Fixes #64653 (You might have fixed the kilo whiteship by making it move, but you didn't fix all of it)

Uh people won't just randomly get yeeted into space with half of a shuttle.
Kinda funny for people watching but not if you die of pressure loss or get stuck on the station
Runtime man bad

(Sleeping in here in general is like admitting that we're ok with missing a few atoms, which is what this runtime is. S just missing is better then overtime. Supposedly --Lemon)

* Should fix shuttles leaving without sections

Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com>
2022-02-09 14:28:22 +00:00
SkyratBot
3e66e4f6b7 [MIRROR] Adds Shuttle Ceilings on Multi-z Maps [MDB IGNORE] (#11280)
* Adds Shuttle Ceilings on Multi-z Maps (#64493)

* Ports multiz shuttle ceiling function from #63920

* Adds support for /turf/open/space/openspace to actually make the code work

* Remove tgstation.dme

* Implement code review suggestions on documentation

* Change variable names

* Replace missed oldT

* Adds Shuttle Ceilings on Multi-z Maps

Co-authored-by: RandomGamer123 <31096837+RandomGamer123@users.noreply.github.com>
2022-02-05 12:23:03 +00:00
SkyratBot
c33061765b [MIRROR] [MDB IGNORE] BIDDLE TRAITORS - Adds progression traitors. Refactors uplink code in its entirety [MDB IGNORE] (#10620)
* [MDB IGNORE] BIDDLE TRAITORS - Adds progression traitors. Refactors uplink code in its entirety

* updates and fixes

* ffff

Co-authored-by: Watermelon914 <37270891+Watermelon914@users.noreply.github.com>
Co-authored-by: Gandalf <9026500+Gandalf2k15@users.noreply.github.com>
2022-01-12 03:25:38 +00:00
SkyratBot
7c8ebfc761 [MIRROR] Fix disky teleporting itself off the emergency shuttle on transit. [MDB IGNORE] (#8614)
* Fix disky teleporting itself off the emergency shuttle on transit. (#61786)

Fixes #61782

Did a minor cleanup in the stationloving component to better represent what the proc the destination_in_bounds proc actually did. It is now atom_in_bounds since it's called after the atom has moved and works on the atom's turf. This doesn't fix the problem, but it obfuscated things a bit since it was deceptively named.

The issue is that when the e-shuttle leaves the station, for every turf on the shuttle it first moves the turf's contents to hyperspace, then moves the turf to hyperspace, then changes the area. Since the player holding disky enters Hyperspace first then has the shuttle turf constructed around them, disky teleports back to the station because it enters a non-whitelisted location.

Instead of whitelisting Hyperspace, I changed the order of operations to turf transfer, area transfer and finally atom transfer. This fixes the issue (as now disky moves from z=2 to z=12 /area/shuttle/escape, where escape shuttle is whitelisted instead of z=12 /area/transit, where /area/transit is not whitelisted).

* Fix disky teleporting itself off the emergency shuttle on transit.

Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
2021-10-05 23:54:16 +01:00
Gandalf
31c8d7ca34 Massive shuttle refactor and arrivals system change (#4572)
* FIRST!!

* aaaa

* Update floor.dm

* aaaaaaaa

* aaaaaaaaaaaaaaaaaaaaaa

* aaaaaaaaaaa

* Update CentCom_skyrat_z2.dmm

* Update MetaStation_skyrat.dmm

* aaaaaaaaaaaaaaaaaaaaa

* crashing this shuttle with no survivors

* aaaaaaaaaaaaaaaaaaaaaa

* aaaaaaaa

* aaaaaaaa

* Update emergency.dm

* aaaaa

* Update emergency_skyrat.dmm

* Update emergency_skyrat.dmm

* aaaaa

* a
2021-04-05 14:49:02 +01: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
Tad Hardesty
8bfdee9f64 Improve accuracy of shuttle ripple removal (#40078) 2018-09-05 13:04:30 -04:00
Tad Hardesty
aff11eaaa8 Give multiple copies of shuttles their own area instances (#39890) 2018-08-27 06:04:48 -04:00
Tad Hardesty
77d2e26172 Enhance the power of the Shuttle Manipulator (#39870)
The 50s/5s thing appears to be a mistake, given that 5s is 50ds and fast travel checks seconds against 50 and sets deciseconds to 50 on adjacent lines.

In addition to sending shuttles to docks, three extra modes are added:

    Infinite Transit puts the shuttle in transit which lasts until another destination is chosen
    Delete Shuttle does what it sounds like
    Into The Sunset marks every mind on the shuttle as 'escaped' and then deletes the shuttle
        Also puts the mobs in stasis so they won't suffocate, bleed out, etc. before roundend

It is also now possible to change the destination dock of the arrivals shuttle (example: an event where arrivals are sent to the Lavaland Wastes dock instead).
2018-08-26 12:54:24 +12:00
ninjanomnom
c46dda0e4e Shuttle throwing applies to all objects as opposed to just mobs 2018-06-19 18:13:57 -04:00
kevinz000
7bf86ed53f Refactors transit requests to turf_reservations. 2018-06-04 16:30:15 -07:00
Emmett Gaines
7dcd690756 Removes some unnecesary vars on shuttles (#37041)
* Removes some unnecesary vars on shuttles

* Forgot to reapply unused transit turf flag
2018-04-12 13:42:03 +03:00
ninjanomnom
bea53726f1 Fixes underlying area grabbing subtypes 2018-04-07 20:13:50 -04:00
Emmett Gaines
7f293d2e95 Fixes shuttles breaking when the turf the mobile dock is on is removed (#36261) 2018-03-10 02:13:41 -06:00
ninjanomnom
fbe7f5ab4f removed an extra checktick that could cause issues 2018-01-18 21:43:44 -05:00
Emmett Gaines
ca603a6db4 a new file for dock and its new fractured existence (#33627) 2017-12-18 21:24:48 -06:00