Commit Graph

706 Commits

Author SHA1 Message Date
Ghom
5394e34a23 roundstart offstation antagonists (wizards, nuke ops...) no longer have quirk assigned to them. (#60987)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2021-08-24 15:45:58 -07:00
AMonkeyThatCodes
3427843dd5 Replaced the lobby menu (with actual art) (#60953) 2021-08-24 15:16:01 -07:00
Rohesie
6c4134d1ea Job refactor 2: less hardcoded lists (#60578)
* Job refactor 2: less hardcoded lists

* Obsessed can happen
2021-08-05 21:13:05 +02:00
tralezab
43fd840b2f Kills _globalvars/misc.dm (#60358) 2021-07-26 16:58:18 -07:00
Rohesie
6c8c797cdc Fixes security not getting assigned to departments (#60349) 2021-07-22 15:46:33 -07:00
Rohesie
4c21166e4f Job refactor: strings to references and typepaths (#59841)
* Job refactor: strings to references and typepaths
2021-07-18 20:48:47 +02:00
Kylerace
b4f9c979ce fixes ghosts not being included in get_hearers_in_view(), AGAIN! (#60297)
thanks to shaps for reporting this
turns out mob/dead/Initialize() doesnt call parent, and mobs are made hearing sensitive in mob/Initialize(), so ghosts yet again werent included in get_hearers_in_view(). now they are!

now actually tested this time by attacking pun pun then ghosting, on master the red attack text doesnt show for ghosts in view but now it does

with the first pr the issue was because when target was a mob, view() only includes what the mob can see, so i made it always use a turf like it was previously. but the refactor done in the same pr meant that ghosts didnt become hearing sensitive so whoops
2021-07-17 23:34:21 -07:00
Wayland-Smithy
fe3823a84d Fixes admin observer special radio keys double sanitizing input (#60039)
Moves /mob/dead/observer/say() message sanitize code to after the special admin radio keys logic that will also sanitize.
Changes an if else chain to a switch statement,
2021-07-11 23:38:21 -07:00
Kylerace
ca02dc622b fixes a connect_loc runtime related to abstract_move (#59969) 2021-07-10 17:40:53 -07:00
Wayland-Smithy
33781ac857 Fix Tram ghost magnet and other cases of observer forceMove (#60026) 2021-07-08 18:11:13 -07:00
Wayland-Smithy
0d1ef29662 Drastic Lag Mitigation Subsystem: SSlag_switch (#59717)
Requested by oranges and inspired by the upcoming event. A new subsyetem, non-processing (for now), aimed at providing some toggle switches that can be flipped as a last ditch effort to save some CPU cycles by sacrificing some non-critical mechanics. Below you can see each individual toggle.

Screenshot of the admin panel:
image
Surely there are more opportunities for toggles I missed, but adding new ones is not very difficult at all.
Why It's Good For The Game

Better performance during extreme pop, I hope.
Changelog

cl
code: Introduces the Lag Switch subsystem for when a smoother experience is worth trading a few bells and whistles for. Performance enhancement measures can be togged by admins with the Show Lag Switches admin verb or enabled automatically at a pop amount set via config.
config: Added a new config var: number/auto_lag_switch_pop
2021-07-08 11:02:52 +12:00
Sheits
a27435511c Adds fly wings, fixes robo & skeleton wings (#59755)
Adds fly wings, fixes robo & skeleton wings
2021-06-25 04:25:30 -04:00
Ryll Ryll
b3a3d520a2 Admin QOL: Adds a speech prefix for ghosted admins to talk through their linked body (#59762)
One of the more annoying parts of sending in a centcom official or ERT as an admin is the fact that sometimes you need to keep in touch with them- especially when you're supporting a response team with multiple people, and sending them headset messages one-by-one or using command reports won't cut it. In these cases, I spawn myself in at centcom (or use the body I made for briefing) and talk on the Centcom radio freq, but this sucks because while you're in the body, you can't watch what they're doing because you're not a ghost!

So this PR adds a special speech prefix for admin ghosts, :j, which tries to relay your chat message to your linked body if one exists, instead of sending it to deadchat.
2021-06-23 00:45:11 -03:00
Watermelon914
375a20e49b Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs.
Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines.

Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing.
Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc.

(Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
2021-06-14 13:03:53 -07:00
Timberpoes
ec2938c72c Refactors quirk code. (#59618)
Adds new signal - COMSIG_MOB_EQUIPPED_ITEM. Signal sent at the same time COMSIG_ITEM_EQUIPPED is and allows something to Register for every time a mob equips an item. Replaced a process() in /datum/quirk/badback with signals relating to this. Holds a weakref to any backpack it has registered signals with for use in its own remove() proc.

Removes snowflake code in /datum/quirk/light_step - This quirk no longer uses GetComponent to directly modify a component. Instead, the same code has been shifted into the component itself, which now checks for TRAIT_LIGHT_STEP and mods the volume and range accordingly.

Refactors quirk code in general - Quirks no longer do major logic in New() and no longer qdel themselves in New(). You now fully instantiate a quirk assigned to a var, then call /datum/quirk/proc/add_to_holder(). Various scenarios that shouldn't happen now get handled in this proc and calling code can cleanup properly. Quirks "support" having no quirk_holder - Since their default state is no quirk_holder until the quirk is added to a holder, and similarly quirks can be removed from a holder as well. Destroying a quirk with a quirk_holder will remove it from the quirk_holder properly. qdeling a quirk_holder will clean up any quirks attached to them.

Rethinks processing quirks - Quirks no longer all process automatically. The new logic changes mean their previous need to process() just to check if their quirk_holder had been QDELETED so they didn't become runtime factories has been removed by the refactored code. The few quirks that still process require processing_quirk = TRUE which will start them processing when added to a quirk_holder and stop processing on removal. This means there should be some many hundred fewer quirks process()ing 24/7 every shift.

Subtypes item quirks - A number of quirks are designed to give items to the player. There's code duplication and varying implementation issues, so item quirks have their own subtype with a proc and some vars to handle this. Quirks will no longer fail to give items at all (some quirks actually explictly qdel'd the items they give if the user had no free hands or slots) and will drop items on the floor in the worst-case scenario. Players will always get the opportunity to see messages related to item quirks as these are in a code path that, when the quirk is first added to a new mob, will either output immediately if the mob has a client, or wait for the mob to have a client otherwise.

"Roundstart quirks" paradigm removed - Quirks now have a path to add unique effects that aren't replicated if the quirk is transferred from one mob to another - add_unique(). Item spawning and other similar one-shot logic is done here. This means that adding a quirk to a mob will trigger the one-time effects. Transferring it between mobs (for example, slimepeople changing bodies or swapping a golem shell) will not. roundstart_quirks var renamed to just quirks since it genuinely is just a list of quirks the mob has from any source - Whether roundstart, admin or transferred.

Family Heirloom quirk - Heirloom is now a weakref.

Nyctophobia quirk - No longer process()es, now Registers COMSIG_MOVABLE_MOVED. Every footstep in the dark will slow you back to walking.

Reality Dissociation Syndrome quirk - No longer snowflakes behaviour for mindbreaker toxin on process. Now mindbreaker toxin has the anti-hallucination functionality built into its already existing HAS_TRAIT(M, TRAIT_INSANITY) check in on_mob_life.

Tongue Tied quirk - Now uses .getorganslot(ORGAN_SLOT_TONGUE) to find the tongue instead of locate() in internal_organs

Obsessed antag - Thanks to the Family Heirloom quirk now holding a weakref to the heirloom item itself, this antag type will no longer get the steal heirloom objective if the heirloom doesn't exist (ie. the weakref is null or fails to resolve, meaning the item has been destroyed)

Various quirks that were impossible to remove before are now removable - Examples being light step (which no longer directly modifies the footstep component) and bad back.

In addition, adds some extra documentation overall and improves compliance with code requirements in a number of procs (but certainly not all).

Probably various other little changes here and there to make the above all mesh together.
2021-06-13 15:47:15 -03:00
TemporalOroboros
daec5002fc Adds Neon Carpet (#59140)
Adds a couple varieties of neon carpet.
Makes decals care about their plane in addition to their layer.
2021-06-13 15:40:53 -03:00
tralezab
db5caae9c5 Adds skeleton and robot wings from Yog (#59347) 2021-06-13 00:21:10 -07:00
LemonInTheDark
f90e8cf7a3 Fixes a bunch of harddels that are sourced from player action (#59371)
Sourced from #59118 and a cursed project I'll pr later, This pr contains a lot of harddel fixes for stuff that pops up after a player interacts with something. I'm not gonna list them all here because there's something like 60 130, check the commit log if you're curious

Oh and I moved ref tracking screaming to a separate define, and made some optimizations to the thing in general. I think that's it, this pr is a bit of a frankenstine
2021-06-10 21:44:23 -03:00
Thunder12345
7bad25e05a added three new hair gradients, a pair of shorter fades and a spiky wave (#59545)
imageadd: Three new hair gradients, a pair of shorter fades and a spiky wave.
2021-06-10 20:32:34 -04:00
Bobbahbrown
17747498a1 Fix zero playtime bypassing soft panic bunker (#59530) 2021-06-07 16:11:21 -03:00
Cimika/Lessie/KathyRyals
61654778fe Ported hair gradients from TGMC. (#59435)
* Ported hair gradients from TGMC.

* Removed preferences. Added hair spray. Added the colorist quirk.

* Adds 2 new longer fade variants

* Added to vendor. Added to goodies.

* Added the sprite for the spray.

* Grammar!

* Update code/modules/mob/living/carbon/human/species.dm

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>

* Doccing and newline.

* Reviewies concerns adressed.

* Update code/modules/mob/living/carbon/human/human_defines.dm

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>

Co-authored-by: NamelessFairy <40036527+NamelessFairy@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-06-05 20:12:28 -04:00
tralezab
909c81866d Detaches Anonymous themes and Triple AI from SSTicker (+ more anonymous themes and content) (#59373)
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-06-05 14:19:09 -07:00
Timberpoes
ed5d574cb9 Prevent players who get booted back to the lobby on shiftstart from getting broken antag status on latejoin (#59377) 2021-05-31 01:07:00 -04:00
Mothblocks
e2b929974e Remove a bunch of old gamemode code (#59067)
* Beep beep gamemode removal coming through

* More cleaning

* More cleaning

* Clean up station_was_nuked

* Station nuke source

* Remove name

* More unused functions

* Remove antag rep, which was unused in dynamic

* Remove more antag rep stuff, which was UNUSED IN DYNAMIC

* Station goals outside of mode

* Remove setup_done

* Remove player lists

* Move some older procs

* Fix simulations

* Attempt to fix this stupid case sensitive bullshit

* Revert "Attempt to fix this stupid case sensitive bullshit"

This reverts commit 8693c02d67602543d7d4b92130a7a32cd973e5bf.

* ???

* Delete icons/Testing directory

* Move station_goals global definition
2021-05-29 11:03:41 +02:00
Celotajs
190d0a0384 Replace alert usage with tgui_alert (#58419)
Pretty much every alert() call is replaced with tgui_alert, except one I replaced with tgalert as a fallback. If tgui_alert exists, why not use it?
2021-05-20 22:43:27 +12:00
Kylerace
0bc876423a fixes issue with ghosts being able to affect the world, oversight from the crossed refactor (#59010)
* as anything in _SendSignal

* Revert "as anything in _SendSignal"

This reverts commit 350c4b33d975d25003afb2cab2458a3026676559.

* ghosts can no longer affect the world (hopefully)
2021-05-14 16:46:59 -04:00
Celotajs
991b5f074a Tidy HTML folder (#58761)
This PR aims to make the HTML folder a little more organized, as well as remove a few unused files.
Why It's Good For The Game

Doesn't change anything for the player, however makes the files more organized.
2021-05-11 09:35:57 +12:00
Kylerace
08df8798ce (code bounty) refactors all uses of Crossed() and Uncrossed() into signals sent to loc, tracked by connect_loc (#58340)
Co-authored-by: Jared-Fogle <35135081+Mothblocks@users.noreply.github.com>
Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2021-05-07 03:54:03 -07:00
Celotajs
76fb2e1712 Convert changelog to TGUI (#58593)
This pull request converts the changelog to TGUI. 
Note: Old unused changelog files will be automatically removed on the next changelog run
Why It's Good For The Game

More consistent UI, ability to view all historic logs.
Changelog

cl Celotajs
refactor: Converted the changelog popup to TGUI
/cl
2021-04-27 08:41:56 +12:00
celotajstg
7811a45fe0 Prevent negative open positions in crew manifest (#58300)
* Resolve open position issues in crew manifest

* Use the classes helper for multiple classes

Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
2021-04-11 20:54:47 +03:00
celotajstg
67cb9cb08c Refactor crew manifest in lobby, ghost and AI actions (#58275)
Co-authored-by: celotajstg <celotajstg@users.noreply.github.com>
2021-04-10 17:18:30 +03:00
Rob Bailey
292b217911 Layer overhaul (#57915)
## About The Pull Request
Changes up some layer and plane defines for no particular reason lol

## Why It's Good For The Game
Planes actually override layers, and layers control ordering within planes. A lot of the usage of plane and layer was wholly unnecessary. This refactor helps future maintainability while also being needed staging for _future features._
2021-03-29 09:51:44 -04:00
tralezab
09b9ba6ce6 Highlander + Summon Guns and Magic now uses signals to equip new crewmembers (#57817) 2021-03-23 20:26:21 -07:00
Ghom
35da28189a Observers can now use emojis at the start of messages without the risk of triggering admin commands. (#57433)
Added a client.holder check to the line about radio extensions for admin chat and deadchat commands. It means common observers can finally spam dchat with plushie emoji. Admin observers still have to deadmin before using emojis safely, until someone takes the time to refactor saycode mods so these admin commands only acept the comma prefix (luckily, observer/get_message_mods() doesn't trim the message).
2021-03-14 14:56:40 -07:00
Kyle Spier-Swenson
a691b9a52d Partial revert of datum poll creation, fixes duplicated irv votes (#57462)
* Partial revert of datum poll creation + stops duplicated votes from being trusted from clients

Reverts the part of jordies poll refactor that allowed a duplicated vote in the db to make it back on the client's vote screen.

Also fixes the code that would allowed duplicated votes to be passed from the client. (not from jordie's poll refactor pr.)

The race condition still exists, thats harder to fix, counting code handles this correctly

* Update poll.dm

* Update poll.dm
2021-03-06 10:36:43 +13:00
Timberpoes
890615856e Fully implements the ID Card design document (#56910)
Co-authored-by: Rohesie <rohesie@gmail.com>
2021-02-28 19:26:45 -08:00
Qustinnus
10bfda57b9 Ethereals now crystalize on death, allowing them to heal themselves unless the crystal is destroyed, but giving them a brain trauma if it succeeds. (#57225)
Co-authored-by: ATH1909 <42606352+ATH1909@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-28 13:49:31 -08:00
Ryll Ryll
ea89867adc Allows ghosts to start messages with asterisks in deadchat again (#57159)
#56519 had noble goals in trying to make emote code more robust for
ghosts, but in doing so it undid #47144, which was made to allow people
to start messages with asterisks in deadchat without getting hassled by
the game thinking you're emoting. This re-limits the emote checker to
the only two emotes ghosts have ever had, *spin and *flip.
2021-02-25 13:31:27 +00:00
TemporalOroboros
e4079c87b8 update_appearance (#55468)
Creates update_name and update_desc
Creates the wrapper proc update_appearance to batch update_name, update_desc, and update_icon together
Less non-icon handling code in update_icon and friends
Signal hooks for things that want to change names and descriptions
99%+ of the changes in this are just from switching everything over to update_appearance from update_icon
2021-02-19 12:06:18 -03:00
Qustinnus
ef80ed1935 Addiction rework (#56923)
Co-authored-by: Krysonism <49783092+Krysonism@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
2021-02-16 18:20:16 -08:00
Mothblocks
0f435d5dff Remove hideous inline tab indentation, and bans it in contributing guidelines (#56912)
Done using this command sed -Ei 's/(\s*\S+)\s*\t+/\1 /g' code/**/*.dm

We have countless examples in the codebase with this style gone wrong, and defines and such being on hideously different levels of indentation. Fixing this to keep the alignment involves tainting the blames of code your PR doesn't need to be touching at all. And ultimately, it's hideous.

There are some files that this sed makes uglier. I can fix these when they are pointed out, but I believe this is ultimately for the greater good of readability. I'm more concerned with if any strings relied on this.

Hi codeowners!

Co-authored-by: Jared-Fogle <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-14 16:53:29 -08:00
Qustinnus
fbcf3f7123 You no longer need to hold shift to open the context menu as a ghost (#56646) 2021-02-05 11:52:09 -08:00
Jack7D1
8c44c500e8 New flight potion wing sprites for moths (#56412)
Wing sprites are courtesy of Papaporo Paprito over on Fulpstation!
This PR adds a second sprite for flight potion wings for moths.
A new system is implemented to make this possible, using radial menus.
2021-02-04 01:36:45 -03:00
Qustinnus
63399f90ee removes the test-merge only code from the combat mode commit (#56634)
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
2021-02-03 19:55:38 -08:00
Qustinnus
707fc287b4 Replaces intents with combat mode (#56601)
About The Pull Request

This PR removes intents and replaces them with a combat mode. An explanation of what this means can be found below
Major changes:

    Disarm and Grab intents have been removed.
    Harm/Help is now combat mode, toggled by F or 4 by default
    The context/verb/popup menu now only works when you do shift+right-click
    Right click is now disarm, both in and out of combat mode.
    Grabbing is now on ctrl-click.
    If you're in combat mode, and are currently grabbing/pulling someone, and ctrl-click somewhere else, it will not release the grab (To prevent misclicks)

Minor interaction changes:

Right click to dissasemble tables, racks, filing cabinets (When holding the right tool to do so)
Left click to stunbaton, right click to harmbaton
Right click to tip cows
Right click to malpractice surgery
Right click to hold people at gunpoint (if youre holding a gun)
Why It's Good For The Game

Intents heavily cripple both the code and the UI design of interactions. While I understand that a lot of people will dislike this PR as they are used to intents, they are one of our weakest links in terms of explaining to players how to do specific things, and require a lot more keypresses to do compared to this.

As an example, martial arts can now be done without having to juggle 1 2 3 and 4 to switch intents quickly.

As some of you who saw the first combat mode PR, the context menu used to be disabled in combat mode. In this version it is instead on shift-right click ensuring that you can always use it in the same way.

In this version, combat mode also no longer prevents you from attacking with items when you would so before, as this was something that was commonly complained about.

The full intention of this shift in control scheme is that right click will become "secondary interaction" for items, which prevents some of the awkward juggling we have now with item modes etcetera.
Changelog

cl Qustinnus
add: Intents have been replaced with a combat mode. For more info find the PR here: #56601
/cl
2021-02-04 16:37:32 +13:00
Gamer025
db0dd61a96 Fixes emote runtime / changes how emotes work for ghosts (#56519)
* Fixes / refactors emotes

Crack emote no longer runtimes
Ghosts can use help emote
Exhale / inhale emote only work for living
Move beep emote living subtype
Help emote no longer tells you that you can't use it

* Remove var in arguments

Lint

* Replace loop with join
2021-02-02 21:30:13 +01:00
tralezab
5d6f272077 Modernizes Admin Only Wizard Event, Department Revolt (#56061)
Co-authored-by: Mothblocks <35135081+Jared-Fogle@users.noreply.github.com>
2021-01-26 03:36:19 -08:00
tralezab
c3d4797813 Improvements to Anon Names + Refactoring + Wizard Academy theme and event (#55935)
Co-authored-by: Rohesie <rohesie@gmail.com>
2021-01-23 12:11:22 -08:00
CRITAWAKETS
ca1e06f05c Adds in the comet hairstyle. (#56217)
## About The Pull Request

This PR adds in the new "Comet" hairstyle. A bit anime-ish.

[Example](https://i.imgur.com/e5Xg9It.png)

## Why It's Good For The Game

New hairstyles are good, and so far i've recieved positive feedback on this one.
2021-01-18 12:15:38 -05:00
Gamer025
37c23ef428 Fixes and refactors death examine code (#55907)
Examine death bodies should now display the correct text
Changed the logic so that the message tells you if the players is:

- Still in his body (`[t_He] [t_is] limp and unresponsive; there are no signs of life...`) or
- A ghost that could enter the body again (`[t_He] [t_is] limp and unresponsive; there are no signs of life and [t_his] soul has departed, but the link is not yet fully broken...`) or
- No ghost, that can reenter the body and no key (`[t_He] [t_is] limp and unresponsive; there are no signs of life and [t_his] soul has lost the will to live...`)

Also refactored the code a bit:

- Moved the death examine message generation to a proc so that you can work with returns
- Removed pushed_do_not_resuscitate since its not needed this way
2021-01-07 16:18:09 -03:00