* Converts A && A.B into A?.B (#54342)
Implements the ?. operator, replacing code like A && A.B with A?.B
BYOND Ref:
When reading A?.B, it's equivalent to A && A.B except that A is only evaluated once, even if it's a complex expression like a proc call.
* Converts all A && A.B into A?.B
Co-authored-by: ZeWaka <zewakagamer@gmail.com>
* Some shuttes rework. Allow many shuttles of one template to work at the same time. (#53993)
* add replace button to shuttle panel
load button now only load new shuttle
* shuttle teplate loads as shuttle
* new shuttle console connects to shuttle
* new navigation computer connect to shurrle
* docking_port id now unique
add count to id if id already in work
* many docks from one base tenplate
* up
* fix unregister
* up
* up
* up
* block multiple shuttle loading
* return preview button
* up id generation
* Some shuttes rework. Allow many shuttles of one template to work at the same time.
Co-authored-by: Dennok <Deneles@yandex.ru>
* Emergency Shuttle Toggle (#53912)
Admins now have the option to enable or disable the shuttle(located in the admin tab).
Disabling the shuttle will basically pause it where it is, regardless(unless game is over). Until the admins enable it again. It will resume exactly back to where it was and continue from there. This is great for events. You can't recall or call the shuttle while it's disabled.
Admins also now get the option when calling the shuttle to disable the recall of said shuttle unless they cancel it or select enable shuttle.
* Emergency Shuttle Toggle
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Make docking port visible when debugging shuttles (#53851)
* Make docking_port visible when debugging shuttles
Co-authored-by: Dennok <Deneles@yandex.ru>
* Random whiteship selection (#53603)
Breaks shit if the deprecated map pr is merged before/after without me fixing it so only merge one of those
* Random whiteship selection
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Change BYOND version to 513.1526
* Remove BSQL from docker image
* Add a docker publish action
* Add a docker test action
* Cleanup runtime icons
* Cleanup runtime sounds
* Correct docker workflow names
* Add Dockerfile as an appveyor cache dependency
* Fix build issues
* Copy all dlls
* No need for .dlls in docker
* Minor cleanups
* Unicode support Part 1
Makes all calls to ascii2text() and text2ascii() unicode aware as well as all calls in code/__HELPERS/text.dm.
Adds defines for the footext_char() procs to maintain 512 support.
I did some cleanup on the text helpers since a lot of them were really, really bad.
reject_bad_text() and reject_bad_name() have an arg to reject non-ascii chars which defaults to TRUE.
* Give travis a more recent beta
* Ultimate compat
Added the _char procs I was missing
Test the build instead of the version because Lummox is a goddamn moron
* Suggested fixes, removes the last of the dd_ helpers
* Reading the reference is very important!
* Minor code improvements and a comment
* Typo
About The Pull Request
Shuttles no more ruin areas on fly off from moved custom
dock.
If you dock to custom dock, then move custom dock, after fly off shuttle turfs lost its areas, it replaced by space. It ok in space, but bad on lavaland.
Why It's Good For The Game
Gravityless and airless areas on lavalend is bad.
Changelog
cl
fix: Shuttles no more ruin areas on fly off from moved custom
dock.
/cl
* will this work?
* add shuttle console to meta
* add shuttle console to box
* remove glide size from box, add shuttle console to delta
* replace airlocks in lavaland common area
* remove step
* secure the gulag a bit more, add a beer fridge
* restore unix line endings?
* Update code/game/objects/structures/crates_lockers/closets/secure/freezer.dm
Co-Authored-By: Emmett Gaines <ninjanomnom@gmail.com>
* review
* Removes shuttle manipulator
* oops
* moves ui to ssshuttle
* fuck it lets just remove it.
* ooops
* Revert "fuck it lets just remove it."
This reverts commit 8a95879f21d3f4aad3d56e33fa90ebc1940c1e27.
* re-remove the old admin proc
Like it says on the tin, mappers no longer need to set the stationary
dock area type as it will use the area type of whatever it starts on.
This is how they all worked anyway, but you can still set it yourself if
you find some very strange usecase for having a different area type.
About The Pull Request
Shuttle sounds previously played PER DOOR AT MAX VOLUME
This fixes that problem by instead playing shuttle sounds from the nearest engine or door if there's no engines.
Also there's distance sounds.
Why It's Good For The Game
it's not because it's actually SOUL for the shuttle sound to horribly ear rape you when it has enough doors.
Changelog
cl
fix: Shuttle sounds should no longer ass blast your ears as they no longer play PER DOOR and instead from the nearest engine, or door if none are available.
soundadd: Distant shuttle sounds.
/cl
- Normal shuttles that are not emagged will no longer throw things around.
People will still be knocked down.
- Emagged shuttles and poorly designed shuttles will also throw things
around on tables, as well as closets.
Shuttles were not mapped with the idea that their contents would be thrown
around violently every time they moved. This means that things like wheely
chairs, potted plants get chucked about the place. To get around this, the
"magnetic_catch" component was added, to partially bypass this effect in the
first place. But this component is only used in one place, in shuttle loading,
which means if a shuttle is custom built, suddenly and unexpectedly,
everything flies everywhere.
Instead, violent shuttle throwing should be limited to crappy shuttles,
(ie. asteroid with engines) and emagged shuttles. As such, I've removed
the magnetic component from tables and racks, to make shuttle throwing
more violent when it happens.
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.
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).
Now that shuttles are all loaded via template we no longer have a need for the
timid var on shuttles.
Well not all shuttles, it seems I forgot to template the backup shuttle so it
wouldn't have been working until now. This got fixed here as well.
cl ninjanomnom
fix: Shuttles have proper baseturfs now.
fix: Mineral walls properly use their baseturfs when destroyed/drilled.
add: A new engineering goggle mode allows you to see the shuttle area you're standing in.
admin: Buildmode works a bit better with baseturfs now and can properly only remove the top layer of turfs when editing. Note that as a result the order you place turfs is important and a wall placed on space means when the wall is removed there will be space underneath.
/cl
This adds an area hook for turfs getting the PlaceOnTop proc called so shuttle areas are able to intercept it and add a special turf used for determining where the bottom of the shuttle is. I'm not too certain on this being the best way to handle it but the alternatives restrict the kind of turfs that are allowed to be on shuttles which I didn't want to do as it was part of the whole intent of the baseturf change to allow any turf type on shuttles.
The alternative to the area hook would require a tool which attaches turfs to a shuttle which is why there's a shuttle area viewing tool in this pr. I considered doing it this way first but decided it was too clunky.
In addition to other changes:
Tiled/Reinforced floors have proper baseturfs now.
A large amount of the remaining ChangeTurf calls were swapped over to various baseturf helpers so, for example, mining doesn't create a lavaland turf if somehow the mineral wall is on plating.
Escape pods, the aux base, and syndicate drop pod have been converted over to shuttle templates as well.
The error when the timid var is set incorrectly has been changed to a stack_trace.
The change turf file has been made all lowercase as per standard.
* Refactors shuttles to be loaded in, rather than be on the station maps
- Shuttles are now loaded in by the shuttle subsystem.
You configure what shuttles are loaded in via
`/obj/configuration/shuttle_load` objects.
* Box arrivals shuttle is now imported from template
* Moves things out of the #ifdef
* Box emergency shuttle is now imported
* Box emergency shuttle is now templated
* Box ferry and whiteship now load from template
* More shuttles on Box done
* Apart from the pods, Box is now completely templated
* Delta now has all non-awkward shuttles loaded in
And Centcom..
* Removes no ops turfs, more error messages
* Fixes slightly chopped off external wall
* Massaging more shuttles into working correctly
* Debug messages are king
* Delta cargo shuttle now docks again
* First pass of Metastation shuttles
* Omegastation first pass
* Metastation now has its own shuttle
* Did most shuttles on Pubby
* Turns out Pubby arrival shuttle is slightly smaller than Box arrival
* Whoops, missed a stationary port
* TGMified the pubby arrival shuttle
* First pass, box is working
* All stations now have roundstart_template and no configuration objects
* Removes roundstart_move
* Why do we even have these unused keys
* Remove unused coded vars
* removes some excessive safety checks
* Missed some Centcom cargo dock stuff
* Got it working again
* That thing that Cyberboss wanted
* Noop turfs the shuttle templates
* And template noop for the area
* Attempts to assuage travis
* Warning!
* Please love me, Travis
* RIP Remie