* [NO GBP] Jetpack and spacedrift: Fixes and niceties (#66628)
* Jetpack and spacedrift: Fixes and niceties
Ok so when I ported spacemovement onto movement loop,
I neglected to port this behavior that existed to support jetpacks.
Basically, if something that lets you move while spacedrifing
completes a move while you're spacedrifting, the
drift should "disable" to let it complete, and then later restart.
I neglected to add support for that, so that's what this does.
There's some other stuff going on here, mostly things to let jetpacks
ignore some of drift's extra behavior, since when a jetpack is not on
stablized, we want both to coexist.
It's a bit of a mess, I'm sorry about that.
Oh and at temporal's suggestion I've moved the visual_delay set from
newtonian move to an istype on the drift component, that was a good
idea, thanks quiet
* Makes dropping a pull while drifting carry the momentum into the pulled thing\
* Adds some extra context to Process_Spacemove, fixes a bunch of stupid
space bugs
It used to be, if you called Process_Spacemove with a direction, it
assumed you were an "action", so a client or mob trying to move in a
direction.
Unfortuantely for it, I needed to be able to use direction to make mob
pull drifting work. So we now actually pass in a second variable
called continuous_move, which tracks if this Process_Spacemove is on
behalf of a continuous move or not
In addition to this, I've added logic to bumping "off" someone to
prevent backbumping if that makes sense, since the bump is in the form
of a newtonian move that's run before the thing that's bumping actually
moves, we need some way to exclude it from holding the other object in
place.
* Adds a jetpack component, uses it to unify all three versions of
jetpacking
I hate you fikou
There were three copies of the same behavior, which made it hard to fix
stuff. Let's just componentize it
* Fixes jetpacks stabalizing even without fuel
This is mildly hacky. The real fix is to do this with events, but I
really don't wanna bend my brain like that. This'll do
* Ensures turn_off always has a user)
* Shut pu
* Bulky drags no longer effect your movespeed in space, fixing a consistency issue between them and all other forms of drags
* Removes some redundant code, cleans up some messy stuff
* Removes redundant safety checking from jetpack code
* see above
* Removes redundant signals
* [NO GBP] Jetpack and spacedrift: Fixes and niceties
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Space drifting fixes and cleanup (#64915)
* Fixes infi pushing off something in space
Right now you can just push "into" a dense object forever, and depending
on your move rate, just kinda glide
We can fix that by checking if we're trying to push "off" something
we're moving towards
* Makes pushing off something shift it instantly
Currently if you kick off something in space it waits the delay of the
move to start drifting. Looks dumb, let's not
* Updates backup movement to properly account for directional windows. GOD I HATE DIRECTIONAL DENSITY SHOOOOOT MEEEEEEEEEEEEEEEEEEE
* Uses range instead of orange so standing on the same tile as a directional counts properly, rather then suddenly entering a drift state. I hate it here
* Ensures all args are named, updates implementations of the proc with the new arg
* Space drifting fixes and cleanup
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Makes `share()` canonical. Saves cpu time, makes the simulation proper (#63785)
* Makes `share()` canonical. Saves cpu time, makes the simulation proper
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Fix hand teleporter and other portals looping forever (#59894)
Makes portals use Bumped() instead of COMSIG_ATOM_ENTERED for detecting atoms crossing the event horizon.
Removes unused and potential loop causing forceMove argument from do_teleport()
* Fix hand teleporter and other portals looping forever
Co-authored-by: Wayland-Smithy <64715958+Wayland-Smithy@users.noreply.github.com>
* Makes turfs persist their signals, uses this to optimize connect_loc (#59608)
* Makes turfs persist signals
* Splits connect_loc up into two elements, one for stuff that wishes to connect on behalf of something, and one for stuff that just wants to connect normally. Connecting on behalf of someone has a significant amount of overhead, so let's do this to keep things clear
* Converts all uses of connect_loc over to the new patterns
* Adds some comments, actually makes turfs persist signals
* There's no need to detach connect loc anymore, since all it does is unregister signals. Unregisters a signal from formorly decal'd turfs, and makes the changeturf signal persistance stuff actually work
* bro fuck documentation
* Changes from a var to a proc, prevents admemems and idiots
* Extra detail on why we do the copy post qdel
* Makes turfs persist their signals, uses this to optimize connect_loc
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc
* WHEW THAT WAS EASY
* Update ammo.dm
Co-authored-by: Kylerace <kylerlumpkin1@gmail.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* 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>
About The Pull Request
Permanent portals no longer randomly select a portal to use as their exit, and instead stick with the first one they find, they're supposed to only have one linked portal anyways.
Adds a portal exit landmark, one-way portals use this to define their exit as opposed to the weird as hell and pointless portal deletion system I was using before, also nice for mapping since they have different icons so you can more easily tell which is which.
Adds One-Use portals, they're just one-way portals that delete after they're used, was requested for a reference off-station thing someone was making, probably also useful for things like mobs that die and spawn portals to an area, most likely will be used in ice moon.
Goat ruin was the only thing using the permanent portal system for ruins so far since VR hub got removed, so I just moved that over to use the landmarks.
Why It's Good For The Game
The old code is garbage I wrote like a year ago because it was packaged with VR hub, and someone added copy-pasta at some point, absolutely terrible. This cuts down on a lot.
Changelog
🆑
refactor: Permanent Portal fixes and One-Way Portal improvements for mapping.
/🆑
* Build SpacemanDMM from source
* oops
* Fix new unreachables/dumb code
* ooops cache conflict
* bugfix
* oops
* lint
* ninjanomnom held me down and forced me to delete this
About The Pull Request
This pr adds in a new lavaland boss in a seperate z level arena also included are goat plushies that ram into people and goat skins which you get by butchering goats and can wear on your head, a goat gun that shoots goats and finally multiple tweaks/fixes generally involving possible ways to teleport out of noteleport area and or cheese the king goat.
Why It's Good For The Game
Lavaland has not seen any new bosses for a long bloody time and although the boss may be a bit silly I feel more hardcore players will enjoy the challenge it brings since this is meant to be a very hard boss also new goat related items are always neat.
🆑 Fluffe9911 for porting/making most of it, Monster and Sabiran for the King Goat!
add: A new king goat lavaland boss!
add: Goats now drop skin which you can wear on your head! (coder sprite)
add: Goat themed plushies that ram people! (realistic version sprite by identification code by karma)
/🆑
goat
This is ported over from my work on yogstation with minor changes mostly to make things work there is more goat content I made but didnt wanna do too much at once and dont know if tg would like it
About The Pull Request
VR sleepers now lead to the VR Hub, a place with a bunch of portals that lead you to other areas, or just has chill stuff like a bar. Includes portals to all the old vr maps, the megafauna training simulator map, a soon to be minecraft map, and my crappy game runner where you run away from falling tiles and fight to be the last person to survive. Merges murderdome and syndicate trainer into the vr hub map so they spawn every time with vr. Recall portals now can have multiple exits to support the old vr waypoint system from the hub. Also moves a lot of stuff around in the files to make it more organized. There's now also a ghost role that can access VR as well with infinite spawns.
VR NOW HAS A CONFIG OPTION SO ENABLE IT OR VR WILL NOT WORK.
Why It's Good For The Game
Being a ghost is boring for most people, it's nice to have a place for people to hang out rather than just leave the server. This is also a nice place where people can put gamemodes they're testing or other fun little minigames that can't be main gamemodes. VR currently is not used by really anyone so I don't see anyone getting bothered by this PR as well.
* lava arena is now not the default for swoop attack
adds mass fire attack, sends fire lines out from the drake in 360 degrees
lava pools now have a chance to be spawned with the fire breath attack
adds greater delay for lava pools on lesser ash drake so they don't just all instantly get placed
lava arena doesn't needlessly recalculate the turfs it will be using every pass now
enraged state, procs when you try to escape from the lava arena attack without fighting it normally, colors the drake turns its brightness up as it glows, then shoots out fire everywhere, also heals the drake for 250 health.
fixes a bug where fire lines wouldn't appear if their range would put the calculated end turf outside the map
fixes a bug where indestructible open turfs would turn into basalt on the lava arena attack
fixes a bug where lava arena safe spots would be on indestructible closed turfs
drake swoops now have a greater default recovery time
* fixes stupid text error
* adds vr mining sleepers to the lavaland mining base which can be used to train with megafauna and test out other items
removes useless code from colossus's file including having a dead icon of the drake and butchering results
adds virtual versions of each megafauna which don't drop any items and are deleted upon death
adds the vr mining map
* adds virtual megafauna spawners and their respective icons, spawn 1 megafauna at their location and are indestructible
changes default virtual megafauna hunter gear to be more like the default mining gear
* adds more items to spawning in mining vr
megafauna spawner nests can no longer be pushed
virtual megafauna now have a limit to how far they can move away from their nest
adds arenas and fast bluespace tile paths to each megafauna spawner and gives the mining base some walls to protect it
* adds mining vr map to the away mission config
adds perm portals, linked two way portals who are linked by id and can be set in mapping files by editing instance
adds megafauna portals for the arenas
fixes up some junk on the mining vr map
adds a spawn delay for megafauna spawners after the linked megafaunas death
fixes a bug where bubblegum could teleport outside of his arena
* adds true spawn var to bubblegum to easily handle clones / virtual versions of it spawning
fixes bug where virtual legion would release the real legion when damaged
moves vr mining code to the away missions code to adhere to contributing.md
* converts map files to tgm
adds arena cleanup and fixes runtime bugs on virtual megafauna spawn and death
* reverts local drake changes
* fixes bug where drake corpses still had a gps signal
removes worthless include
* adds the crusher trophies to the vr mining kit
no more granting null achievements you stinky virtual megafauna
this map really didn't need to be 255x255 im sorry
* even smaller map wowee also please compile
* adds respawning item crates for the lavaland items and healing junk
even smaller map and some filler spaces for possible future bosses
removes lavaland map changes
mining vr now works properly with other vr maps and is randomly selected working with normal vr sleepers on station
fixes permanent being permanant my bad
* lavaland map stop being changed
* maybe a bit overkill with the amount of healing items
* reordering i guess but why is the rum gone
* work please
* Update Lavaland.dmm
* Update Lavaland.dmm
* adds force stop option to portals so you can choose to not chain teleports with non linked portals.dm
permanent portals now can be var edited mid game and still work (cool admin events? idk)
permanent portals are no longer deleted if they don't have a linked portal
adds one way portals, portals that lead somewhere but have no return portal. basically non hardlinked portals but able to be done in map and edit stuff
adds recall portals for the vr megafauna arenas, one way portals but you can recall to them by using a one time use spell (no it is not tied to your real mind it is tied to the vr mind)
virtual megafauna can no longer escape their arenas
moves some virtual megafauna procs to the main megafauna file to reduce needless code
* recall portals can now be chained and the portal recall spell can now go back in a stack reverse style
* adds boss rush mode, fight all of the bosses successively with only one break in the middle without dying
object spawners can now choose their datum spawner type through a var
moves some virtual megafauna code from the megafauna file to the megafauna spawner datum
* adds new goodies to the end of the boss rush
removes a lot of the copy pastad code in the vr megafauna
adds true spawn var, decides whether or not the megafauna should grant achievements or have an internal gps, used for bubblegum hallucinations and virtual megafauna
internal gps are now added on the base megafauna path
hierophant's crusher trophy no longer spawns at its beacon (let's be honest some people missed it because of this) so it works properly with the crusher loot var
cl XDTM
add: Spraying holy water on tiles will now prevent cult-based teleportation from using them as a destination point.
tweak: Quantum, wormhole and magic teleportation is no longer disrupted by bags of holding.
/cl
Refactors some teleportation code so it uses do_teleport instead of directly forceMove.
do_teleport now has a channel argument, to specify the type of teleportation used. This will affect what can and cannot interfere with teleportation. For example, BoHs interfere with bluespace teleportation but not wormhole, quantum or magic teleportation.
do_teleport now sends a COMSIG_ATOM_INTERCEPT_TELEPORT signal, allowing the target turf (or anything placing a signal on said turf) to react appropriately. As a proof of concept, blessed tiles use it to prevent teleportation from the cult channel.
Intercepting teleportation can have interesting potential uses, from teleport denial fields, to teleport scramblers (teleports you somewhere else instead), telefraggers that gib anyone unlucky enough to teleport in their area of effect, teleport anchors that shunt all teleportations in a wide area to themselves, and so on.
Portals have supported atmospherics linking for a long time, just that it
defaults to off. This would allow admins to let the two things that uses basic
portals (not wormholes) enable it for portals they create.
* THE PORTAL UPDATE
* portal gun checks
* damn functions
* o_range(s)
* Atmos Portals (#12)
* Rod Form's damage now scales with how much it's upgraded
* buffs chem grenades
* Fix getrev runtime
* Automatic changelog generation for PR #27948 [ci skip]
* Automatic changelog generation for PR #27951 [ci skip]
* Fixes admiral recall (#27861)
* the man with the 2 shotguns that blasted me to the end of the world with dualwielding. nerf (#27978)
* Beam rifles now slowdown while scoped (#27898)
* Update beam_rifle.dm
* Update beam_rifle.dm
* Update beam_rifle.dm
* Fixes a very silly clockwork false wall trick (#27996)
* Fixes#27979 (#28002)
* Automatic changelog generation for PR #28002 [ci skip]
* Fixes#27989 : Riot suits no longer hide jumpsuits (#28003)
* Fixes#27989
* remove tag
* Automatic changelog generation for PR #28003 [ci skip]
* Refactors a cooldown var to not require a spawn or sleep (#28011)
* wat (#28012)
* Remove spawns in favour of stacktrace calls, which don't stop the called (#28013)
proc
* Refactor another spawned cooldown var (#28014)
* Come on, pathetic (#28015)
* Refactor another spawn cooldown (#28016)
* Goodbye spawn (#28017)
* Another spawn timer (#28018)
* Remove a commented out function (#28019)
* Gotta go with the fro2.0 (#28010)
* This doesn't do anything (#28020)
* refactor another spawn cooldown (#28022)
* Refactors another spawn cooldown var (#28023)
* Refactor another spawn (#28024)
* Refactor another spawn var (#28027)
* woops
* woops2
* atmos links!
* unused
* wew
* ffs!
* Forced updates
* update
* Update portals.dm
* adjacent/atmospass checks
* Create portals.dm
* Update portals.dm
* Update other_tools.dm
* stuff
* crossed
* documentation
* reee
* no portal stacking!
* woops
* Add the system for managed global variables
* Travis ban old globals
* So you CAN inline proccall, that's neat
* Fix that
* master.dm
* Remove the hack procs
* Move InitGlobals to the proper spot
* configuration.dm
* Fix the missing pre-slash
* clockcult.dm
* This is probably for the best
* Doy
* Fix shit
* Rest of the DEFINES tree
* Fix
* Use global. for access
* Update find_references_in_globals
Always hated that proc
Whoever made it must've bee a r e a l idiot...
* __HELPERS tree
* Move global initialization to master.
Fix the declaration
* database.dm
* Dat newline
* I said DECLARATIVE order!
* Here's something you can chew on @Iamgoofball
* game_modes.dm
* Fix this
* genetics.dm
* flavor_misc.dm
* More stuff
* Do it mso's way. Keep the controllers as global
* Make master actually see it
* Fix
* Finish _globalvars/lists
* Finish the rest of the _globalvars tree
* This is weird
* Migrate the controllers
* SLOTH -> GLOB
* Lighting globals
* round_start_time -> ticker
* PAI card list -> pai SS
* record_id_num -> static
* Diseases list -> SSdisease
* More disease globals to the SS
* More disease stuff
* Emote list
* Better and better
* Bluh
* So much stuff
* Ahh
* Wires
* dview
* station_areas
* Teleportlocs
* blood_splatter_icons
* Stuff and such
* More stuff
* RAD IO
* More stuff and such
* Blob shit
* Changeling stuff
* Add "Balance" to changelogs
* Balance for changelog compiler + Auto Tagging
* Update the PR template
* hivemind_bank
* Bip
* sacrificed
* Good shit
* Better define
* More cult shit
* Devil shit
* Gang shit
* > borers
Fix shit
* Rename the define
* Nuke
* Objectives
* Sandbox
* Multiverse sword
* Announce systems
* Stuff and such
* TC con
* Airlock
* doppllllerrrrrr
* holopads
* Shut up byond you inconsistent fuck
* Sneaky fuck
* Burp
* Bip
* Fixnshit
* Port without regard
* askdlfjs;
* asdfjasoidojfi
* Protected globals and more
* SO MANY
* ajsimkvahsaoisd
* akfdsiaopwimfeoiwafaw
* gsdfigjosidjfgiosdg
* AHHHHHHHHHHHHHHHHHHHHHHH!!!!!
* facerolll
* ASDFASDFASDF
* Removes the unused parts of dmm_suite
* WIP
* Fix quote
* asdfjauwfnkjs
* afwlunhskjfda
* asfjlaiwuefhaf
* SO CLOSE
* wwwweeeeeewwwww
* agdgmoewranwg
* HOLY MOTHER OF FUCK AND THATS JUST HALF THE JOB?!?
* Fix syntax errors
* 100 errors
* Another 100
* So many...
* Ugh
* More shit
* kilme
* Stuuuuuufffff
* ajrgmrlshio;djfa;sdkl
* jkbhkhjbmjvjmh
* soi soi soi
* butt
* TODAY WE LEARNED THAT GLOBAL AND STATIC ARE THE EXACT SAME FUCKING THING
* lllllllllllllllllllllllllllllllllllllllllll
* afsdijfiawhnflnjhnwsdfs
* yugykihlugk,kj
* time to go
* STUFFF!!!
* AAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!!!!!!!!
* ngoaijdjlfkamsdlkf
* Break time
* aufjsdklfalsjfi
* CONTROL KAY AND PRAY
* IT COMPILEELEELELAKLJFKLDAFJLKFDJLADKJHFLJKAJGAHIEJALDFJ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* Goteem
* Fix testing mode
* This does not belong in this PR
* Convert it to a controller
* Eh, fuck this option
* Revert controllerization Ill do it some other time
* Fix
* Working controllerization
* FOR THE LOVE OF CHRIST PROTECT THE LOGS
* Protect admins and deadmins
* Use the inbuilt proc