* Displacement maps in byond are not displacement maps (#62403)
Totally forgot to add this
* Mention in the rendering docs that the byond displacement filter is not actually a displacement filter
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* runtime fix for borgs cryoing with upgrade modules + no more mmi laying around after they cryo, and various other runtime fixes
* Fixing conflicts
Co-authored-by: Seris02 <49109742+Seris02@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
* Adds 2 new signals, adds pre/postattack_secondary signals to circuit signal handler presets (+a proccall component fix) (#62233)
Adds COMSIG_ITEM_AFTERATTACK_SECONDARY and COMSIG_MOB_ITEM_AFTERATTACK_SECONDARY signals, which are both called by item/proc/afterattack_secondary.
Adds COMSIG_ITEM_PRE_ATTACK_SECONDARY and COMSIG_ITEM_AFTERATTACK_SECONDARY to the list of circuit signal handler presets.
The proc call, set var, and spawn atom components will resolve any weakrefs passed to them in their parameter port, seeing as the list literal component now converts datums into weakrefs.
* Adds 2 new signals, adds pre/postattack_secondary signals to circuit signal handler presets (+a proccall component fix)
Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
* Updated interactions
* Update interaction_menu.dm
* Colors
* Update interaction_menu.dm
* Update interaction_menu.dm
* Update interaction_menu.dm
* Better code for all.
* Update interaction_component.dm
* Removes support for TARGET SPEAK and USER SPEAK due to instability.
* Update interactions.dm
* Update interaction_component.dm
* Enables you to interact from a distance again.
* Fixed the join/ready buttons not reverting if the game fails to setup. (#62112)
This will fix#61580
* Fixed the join/ready buttons not reverting if the game fails to setup.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* Fixes overlay lighting not having any color. (#62087)
The overlay lighting plane was never actually being drawn, only used as an alpha filter over the main lighting plane.
That's fine to do, but it only cuts away darkness, doesn't actually lay down any color.
So let's properly draw it too, so things look right
Fixes#61899
* Fixes overlay lighting not having any color
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Add debug suggestions (#61908)
.debug profile mapicons
prints a massive oneline json with the data of all currently onscreen rendering objects
* Add undocumented render debug command to the rendering documentation
Co-authored-by: TiviPlus <57223640+TiviPlus@users.noreply.github.com>
* Replaces the Mafia button with the Minigames button. Adds tgui panels for selecting minigames and for CTF (#61638)
This PR replaces the Mafia button on the observer HUD with a minigames button that allows you to access both CTF and Mafia.
It also adds a CTF menu that allows you to view current scores, players needed to start a game, and joining a ctf game without needing to move to the spawner.
Co-authored-by: Jared-Fogle <35135081+Mothblocks@ users.noreply.github.com>
* Replaces the Mafia button with the Minigames button. Adds tgui panels for selecting minigames and for CTF
Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Jared-Fogle <35135081+Mothblocks@ users.noreply.github.com>
* Revert "clickon now includes attack_secondary (#61848)" (#61900)
This reverts commit a7c69aa341.
* Revert "ClickOn now actually calls ranged right click attacks"
Co-authored-by: oranges <email@oranges.net.nz>
* clickon now includes attack_secondary (#61848)
I... don't know how this was missed. Ranged right clicks only called post secondary attacks, which is hilarious and mysterious. How did NOBODY notice you could only hold someone up in MELEE range?
I also named the vars in the proc to be more readable, and added a few early returns. I didn't touch much about the top part of the proc so it may still look gross.
* ClickOn now actually calls ranged right click attacks
Co-authored-by: tralezab <40974010+tralezab@users.noreply.github.com>
* Changes a bunch of New()s to Initialize()s (#61626)
* Changes a bunch of New()s to Initialize()s
Co-authored-by: Jordan Brown <Cyberboss@users.noreply.github.com>
* [TM Candidate] Overhauls orbit and POI code to fix part of issue #61508 where players could observe /mob/living/new_player on the lobby.
* E
* Missed merge
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* tgui Preferences Menu + total rewrite of the preferences backend
* nah, we dont need to ping those people
* trying to remove the funny stuff
* unmodularizing this
* prefs reset
* this may need to be reverted, who knows
* okay, this part
* perhaps
* EEEEEEEEE
* unsanitary
* E
* Stage 1 + loadout system
* more fixes
* E
* I mean, it launches?
* More fixes and reorganisation
* E
* customisation code is spaget.
* disable ERP prefs
* Update erp_preferences.dm
* Update erp_preferences.dm
* E
* Slowly getting there
* It may be time for help :)
* tri...colors... help
* preferences now pass preferences
* Update dna.dm
* Fuck this man
* missing savefile return, set_species works, removed dumb stuff from updateappearance
* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8199
* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8224
* https://github.com/tgstation/tgstation/pull/61519
* https://github.com/Skyrat-SS13/Skyrat-tg/pull/8278
* e
* le butonAZARAK HELLO
* hhh
* Proper recognition where it's due, MrMelbert!
* EEEE
* examine block
* Better gen hit sounds from whitedream
* final loadout touches, more bug fixes im sure to come
* i said there would be bugfixes
* Update LoadoutManager.js
* Missing preferences in the html menu
* LIVE TESTING PHASE BABY
* Update LoadoutManager.js
* EEE
* LAUNCH TEST FIRE
* Update job.dm
* Update new_player.dm
* 50gb DAY ONE PATCH
* EEE
* Update preferences.dm
* buggle fixes
* Update examine.dm
* >LOOC starts on
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: jjpark-kb <55967837+jjpark-kb@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
Co-authored-by: Azarak <azarak10@gmail.com>
* Fix parallax animation (#61341)
so it turns out lummox changed the behavior of loops, such that the starting point of loops has to be the same as the end so if you want a discontinuous jump you have to have an "initial state" time=0 frame in the animation
* Fix parallax animation
Co-authored-by: AMonkeyThatCodes <20987591+AMonkeyThatCodes@users.noreply.github.com>
Repaths everything referring to "toxins" while actually meaning either the room in science or plasma gas. While this PR might be disrespectful to our forefathers, given this is (I believe) a holdover from as far back as the Exadv1 days, this has constantly irked me since I started working with the code. None of the player-facing stuff has referred to plasma as toxin since before 4407 hit, besides the Toxins Lab, and yet all of the type-paths are still pointing at toxins, making it a nightmare to search for in a map editor, and making the code needlessly easy to confuse with that of toxin damage. So this just fires it into the sun.
Anything relating to Toxins, the science subdepartment, now makes reference to Ordnance instead. This felt fitting enough given the focus of the subdepartment is around the creation of and testing of explosives.
Anything relating to plasma gas has, fittingly, been made to refer to plasma gas.
Edit: Ah yes, I feel I should probably apologise off the bat for the size of this PR- the code touched is mostly atmos machinery and simplemobs, a few sprites here and there, and of course the station maps + a few offstation maps.
Makes the code more legible and makes mapping less painful.
(The payment has been made)
Co-authored-by: EOBGames <58124831+EOBGames@users.noreply.github.com>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* small refactor to can_interact() so that borg range is fully respected (#60693)
Its a relatively small refactor that changes the previous machinery "can_interact()" proc that literally did a full override despite half of their checks already existing in not one, but TWO parent procs, so i removed the redundant checks, added callbacks to its parents and then added the cyborg range check on the can_interact_with() itself. in doing so i also moved the interaction range var from silicons only, to mobs as a whole and defaulted it to a single tile, silicons override it to 7 (so pAIs and borgs like before) but then set AI and AI.eye to "null", because i have a check in can_interact that if there is no range set, then the range is effectively unlimited. and i even added code for when AI is carded and their wireless transmission is disabled it sets their range to "0" aka, it has no range to do anything even if it could
this was really complicated for me so despite my extensive testing it probably would be a bad thing if any of you want to test my code yourself to ensure there isnt a bug with this (theres no runtimes ive come across)
note: i did a lot of searching and going through machinery to ensure i caught all the little snowflake overrides and added can_interact() checks to them, but i may have missed one or two things, especially maybe a altclick or ctrlclick somewhere, however i believe i caught most of them
one nice side effect of this refactor is that you can actually set another mobs range to something other than 1 tile and they can interact at range, rather than only silicons getting this ability, an admin could VV a human to have a 3 tile arm reach as a meme if they want
* small refactor to can_interact() so that borg range is fully respected
Co-authored-by: 小月猫 <alina.r.starkova@gmail.com>
* Fix grammar when attacked by an unknown assailant (#61103)
* Fix grammar when attacked by an unknown assailant
Co-authored-by: esainane <esainane+github@gmail.com>
* Del The World: Unit testing for hard deletes (#59612)
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* Del The World: Unit testing for hard deletes
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: SteelSlayer <42044220+SteelSlayer@ users.noreply.github.com>
* initial
* whoops
* more fixes
* forgot
* frick
* oop
* minor visual fixes
* cleared out-of-date stuff that was asimilated by erp update. ye, sry for that but useroth said i can if i need to
* interface fixes + cleaned trash.
* fixesss
* more fixes
* other interface fix and im dumb
* text and fonts fixes
* mapfixes
* small item fix
* floppa my beloved
* fixme
* yepp
* little addition to vibrator
* more user friendly toys
* hotfix because im dumb
* informing user about stuff happening in their genitals
* Fixed strip menu for new slots
* Vibrating toys now makes constant vibration sounds.
* fucking ton of fixes, i debugged so much stuff i want to die when did i slept last time
* signal vibrator fixes
* i guess its all bugs for now, need testing
* hotfix
* chemicals fixed. other dumb bug fixed too
* feex
* undo
* aight, some text stuff
* repsrited signal vibrator, fixed some dumb bugs. Almost ready for tommorrow pr.
* tried to fix things, need to test
* fixed?
* maybe now its fixed
* we finished here.
* yeah, credits. I forgot them.
* Oh well, resolved the conflict wrong.
* map fixed
* formatting test
* more linter stuff
* did changed that skyrat asked me to
* kinda fixed more stuff
* remove mapchanges
* no magic like kat magic
* please
* further mapchanges removal
* fix
* little fix, because one map supposed to be changed.
* quick structure fixes + balance stuff
* some fixes. remind - fix worn tomorrow.
* ah fuck it, i fixed it now. Who need sleep anyway?
* furnitures are no longer invuln
* fixes poles
* milking machine uses cuffs instead
* makes stuff uses cuffs
* frick
* fix lints
* stuffe
* line
* Forgot to add this little feature
* OKAY FINE I GUESS 10 MINUTES IS TOO MUCH.
* squashed bugs
* minor fix to prevent visual bugs with pillow piles.
* frick
* removed logging
* pref for toys
* tabs
* suggested idea added
* hot fix
* Revert "suggested idea added"
This reverts commit 33796f0abb896b83d02dbefee4e3b62df5f6a5db.
* Revert "hot fix"
This reverts commit bf0bc6330f5897ce2d67bb9571eb818d3a64325b.
* fuck the suggestions, i just want it to work fine
* fuck the suggestions, i just want it to work fine
* truly fixes lints
* balance tweaks + fleshlight fixed
* more balance tweaks
* gasmask fixes. Now it doesn't kill people but still makes them suffer
* fix ball mittens
* dead people tell no tales
* some minor fixes
* grammars
* add messages
* use a new pref
* simple check
* knock-knock. Who? A fix.
* fuck
* fixes vibrators
* hexacrocin now can be cured properly
* fix x_stand
* frick
* FUCK
* fixes everyonr being horny
* fixes pain
* fixes strapon
* stop process
* nymphomania fixed
* fix spam
* fixed heels and quirks
* Dead people shouldn't cum
* Knock-knock. A penis enlarger fix
* use the traits goddamn it
* Nymphomania fix
* Fucking moths can't now chomp vibrators
* Added yes/no check to climax button, also some improvements and multiple messages bugfix
* milking machine balance tweaks, bimbo trauma fix
* milking machine construction messages added
* some fixes
* Revert "Fucking moths can't now chomp vibrators"
This reverts commit 2bf37ca3b0b98c3bbd7bf35626faa7a0be54fcfb.
* little clean up of code, but it still doesn't works properly
* fuck the moths. You can't eat vibrators once more.
* catsuit bug fix
* balance tweaks
* Pillows now made of cloth, not metal.
* pillow fixes
* masochism quick fix
* dumb quickfix, it will break anything, don't panic
* yay now it works again
* nymphomania fix
* clean up
* half of ball mittens fix. For another half buy our DLC just for 2,99$!
* IM COOL I FIXED THE BALL MITTENS! FINALLY!
* prefs now works properly
* pain stuff fixed, i guess. no more arousal by decompression damage.
* lol how did i missed those
* can't buckle fucking cows to milker anymore
* oops
* me cool
* fixed small bug with pillows
* gasmask quick fix
* fix spam
* fixes strapon
* balance stuff.
* fix because im dumb
* fix
* the last fix for this codebomination. I hope this is it.
Co-authored-by: Katherine Kiefer <sterlite2902@gmail.com>
Co-authored-by: Useroth <37159550+Useroth@users.noreply.github.com>
Co-authored-by: SkyratBot <59378654+SkyratBot@users.noreply.github.com>
* railings can now be vaulted/climbed over from both sides. (#60110)
Quality of life; it spares us from having to walk all the way around or destroy them with either a wirecutter (faster) or any impromptu weapon (slower, as they currently have 300 maximum integrity, despite taking only three iron rods - one more than grilles - to make) in certain occasions, and it's already a thing on other codebases that have railing objects.
* railings can now be vaulted/climbed over from both sides.
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
* EVEN MORE HARDDEL FIXES (#60228)
Fixes a ton of harddels, sourced from #59996
I think this brings us down to like, ~100 per round from ~200, with only like 20 of those being proper hell failures. I've seen harddel profiles below 1 second of total cost. Feeling good.
See you on the other side
Makes the cryopod control computer into a weakref, never trust bee code
Converts brig door timer internal lists to weakrefs
Fixes a harddel caused by qdeling a motion sensitive camera after it had left its source area, jesus christ why didn't we do this already holy shit
Converts the radio implant ref held by the antenna mutation to weakrefs because it isn't reliably cleaned up, makes the radio implant actually qdel its fucking radio
Removes the target var from the throwing datum, it does literally nothing and just exists to cause harddels, mostly for the singularity
Fixes a cable harddel sourced from things that try to enter blueprints after smoothing, but before roundstart. IE, shuttles. Removes shuttles from the blueprints
Fixes emmisive blockers being added post qdel
Removes some manual ghosting from cryopods, I initially did this for harddel reasons, but I figured out a better fix for that. I'm now doing it because it's got this really strange logic for like "re-entering the game" that doesn't actually link to what the ghostize proc does. We should remove this at some point
Fixes robot hud objects harddeling due to hanging refs
Fixes buildmode related hanging refs, I'm coming for you admin team
Fixes a few instances of trying to add the forensics component post qdel, hhhhhhhhhhh
Fixes some split personality harddels/weirdness
Replaces a use of disconnect_duct with an init qdel hint, I suspect there's more issues with duct harddels, I've seen some odd logs about ahhh the area_contents list, but we can worry about that later
Makes teleporter targets into weakrefs, properly types them as /atom
Makes frequency devices into weakrefs
Makes cameras remove themselves from camera nets on Destroy
Makes tgui ui datums implement destroy, this means if I ever see one hang a ref to user or whatever, I know there's an error with calling close() properly. I've seen this harddel once, but not after this change so I assume there was some error with close(). IDK maybe this is a papering over? Would have to ask @ stylemistake
I've seen logs of beartraps being in world post del, putting a return there just in case. The same is true of nerf darts, but I haven't really looked into that yet
Makes a shoe's ref to untying alerts a weakref, yes this is needed.
Moves clearing client_in_contents to the Login of the new mob. This prevents doing things like ghosting someone before a mob qdel causing harddels
Fixes a harddel set sourced from adding a status effect to a qdeleted thing. Is this an error? I'm honestly not sure.
Converts bsa code to weakrefs
Converts the partner var of heat exchangers to weakrefs
Converts camera assemblies to weakrefs
Fixes some dumb behavior with ammo casings and assuming you'll be on a turf post Destroy parent call
Fixes? merger related harddels, you were never cleared from your own members list, so origin objects would end up making a new list, creating harddels. Potential input from @ ninjanomnom about the logic
Chasms store a static list of "falling atoms", which only exists for chasms that go somewhere else. This list wasn't being cleared of qdeleted objects, which is what happens when you fall in most chasms. Fixes this, and converts the list to weakrefs.
Fixes some runtimes in both sheet code, and the weather listener element. This is here because runtime spam made testing more of a pain, didn't think it needed its own pr
Fixes colorful reagent harddels sourced from reagents that were qdel'd before roundstart. I'm only like 50% sure this actually got it, but the issue may have been solved by #60174, so eh
Turns the nuke op antag datum's ref to the war button into a weakref
Fixes some holopad code that was not nulling refs all the time
Converts camera bugs to weakrefs, this was the result of the bug being "reworked" like 6 years back without taking the existing ref clearing into account. Whole item needs a redo, but this'll do for now.
Ensures that the both pulling and pullee refs are cleared on Destroy
The crew monitor held all users in a non clearing list, makes that list a weakref because I hate everything
Oh and I removed all sources of gas_mixture qdeletion, I'm kinda unsure on this since it's not technically supported, but any harddels from it might? indicate something going wrong with like, gas passing logic. I'd like @ MrStonedOne's thoughts, since I trust him to call me an idiot if I'm wrong.
<!-- Please add a short description of why you think these changes would benefit the game. If you can't justify it in words, it might not be worth adding. -->
## Why it's not good for the game
I crashed sybil like 10 times to get this data, I'm gonna put it to good use. Don't think you're safe sybilites, I'm coming for you.
* EVEN MORE HARDDEL FIXES
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
* Replace a number of New() overrides with Initialize() (#60223)
* Replace a number of New() overrides with Initialize()
Co-authored-by: coiax <yellowbounder@gmail.com>
* Adds a kneecapping element and adds that very element to baseball bats.
* Update signals.dm
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>
* Modifies right click logic so that it is not the same priority as modifier keys. (#59656)
Strips out the existing right click code - Due to the myriad of ways right clicking has been implemented, dedicated signals and procs for right clicking without modifiers are fundamentally incompatible with our system of primary and secondary attacks.
Adds additional signals to attacking code. These signals allow atoms to cancel the attack chain early on secondary attacks, or override the standard procs and not send signals to prevent any undesired behaviour from signal handlers.
Items that used RightClick procs have been converted to attack_hand_secondary.
The slaughter demon, having its own set of snowflake code as poor OOP principles have been applied in UnarmedAttack() procs with lacking calls to parent procs and arbitrary redefinition of behaviour, checks for a right click in its own UnarmedAttack() and performs a bodyslam off that.
Storage components now hijack the secondary attackby stage via signals to handle their opening and closing shortcuts on right click. When you right click a storage component equipped item with an object in your active hand, the object has an opportunity to perform its logic in pre secondary attack code and cancel the attack chain. If it does not cancel the attack chain in pre-attack, then the storage component takes over for attackby and, if possible, opens the relevant inventory and ends the attack chain.
The forensic scanner is a proof-of-concept of this working in action. With its scan logic moved from afterattack code to pre attack code for right clicking, right clicking with the scanner will now perform a scan where previously one was impossible. Left clicking still does what it always does - Scans at the very end of the attack chain.
The logic still isn't perfect - For example, you still can't attack containers in melee even in combat mode (you'll either open them or put your weapon into them regardless of which option you choose) - But this is a better setup overall which allows for items to at least override this behaviour in pre-attack if needed.
* Modifies right click logic so that it is not the same priority as modifier keys.
* a
Co-authored-by: Timberpoes <silent_insomnia_pp@hotmail.co.uk>
Co-authored-by: Gandalf <jzo123@hotmail.com>