* Initial commit
* Monitored pipe node is now referenced by name
* Review changes
* Simplified construction
* Tweaked deconstruction to match other binary atmos devices
* Helper function removal
* Updated attribution
* water spell textures
* water creation spell
* mana consume, and mana glove
* remove mana transfer ring
* Update migration.yml
* copy Wizden loadout PR
* add sprite component to all spells
* spell dummy loadouts
* delete spell traits
* really give spells from loadouts
* update crates fill and demiplane spawners
* beer creation spell, fix passivedamage
* Update PassiveDamageSystem.cs
* Changes the Server Worker job icon to a bowtie.
* Removes grey from icon to better fit existing art.
* Updated ID card sprite.
* Edit respective meta.json files.
* Shift Air Alarm sprites to better reflect their direction
* Fix two frames of west-facing sprite being one pixel off
* Indicate that sprites are no longer exactly tgstation's
* butcherable surgery caps
* readded cardboard box
* butcherable now?
* butcherable now?
* one day ill figure this out
* changed label of hyperzine syringe
* removed the thing in hats.yml that wasn't supposed to be here
* Update Resources/Prototypes/Entities/Objects/Specific/Medical/healing.yml
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* mostly done but there's a bug with spawning
* RandomGlobalSpawnSpellEvent now actually works
* Summon Guns/Magic is working
* Added sound, cap gun, and auto pick up
* Added all requested changes/fixes from reviews
* Halving cooldowns
* Added holiday decorations, and modified emergency lights to have a better layout.
* Added a couple more emergency lights after finding a couple spots that were wway too dark during testing, also gave the warden a crew monitor
* Adds storage sprite for gorilla gauntlet
* Specifies a heavier hitsound for gorilla gauntlet
* Modifies gauntlet icon and storage sprite
* Updates credit to my new username
* Borg type switching.
This allows borgs (new spawn or constructed) to select their chassis type on creation, like in SS13. This removes the need for the many different chassis types, and means round-start borgs can actually play the game immediately instead of waiting for science to unlock everything.
New borgs have an additional action that allows them to select their type. This opens a nice window with basic information about the borgs and a select button. Once a type has been selected it is permanent for that borg chassis.
These borg types also immediately start the borg with specific modules, so they do not need to be printed. Additional modules can still be inserted for upgrades, though this is now less critical. The built-in modules cannot be removed, but are shown in the UI.
The modules that each borg type starts with:
* Generic: tools
* Engineering: advanced tools, construction, RCD, cable
* Salvage: Grappling gun, appraisal, mining
* Janitor: cleaning, light replacer
* Medical: treatment
* Service: music, service, clowning
Specialized borgs have 3 additional module slots available on top of the ones listed above, generic borgs have 5.
Borg types are specified in a new BorgTypePrototype. These prototypes specify all information about the borg type. It is assigned to the borg entity through a mix of client side, server, and shared code. Some of the involved components were made networked, others are just ensured they're set on both sides of the wire.
The most gnarly change is the inventory template prototype, which needs to change purely to modify the borg hat offset. I managed to bodge this in with an API that *probably* won't explode for specifically for this use case, but it's still not the most clean of API designs.
Parts for specific borg chassis have been removed (so much deleted YAML) and specialized borg modules that are in the base set of a type have been removed from the exosuit fab as there's no point to printing those.
The ability to "downgrade" a borg so it can select a new chassis, like in SS13, is something that would be nice, but was not high enough priority for me to block the feature on. I did keep it in mind with some of the code, so it may be possible in the future.
There is no fancy animation when selecting borg types like in SS13, because I didn't think it was high priority, and it would add a lot of complex code.
* Fix sandbox failure due to collection expression.
* Module tweak
Fix salvage borg modules still having research/lathe recipes
Engie borg has regular tool module, not advanced.
* Fix inventory system breakage
* Fix migrations
Some things were missing
* Guidebook rewordings & review
* MinWidth on confirm selection button
* Act
* Adds Jaunt ECS and related prototypes
* Adds jaunt sounds
* Adds enter and exit sound support to polymorphs
* Updates jaunt description
* Adds jaunt action sprite and changes jaunt polymorph to use it
* Adds Jaunt and upgrade to the wizard grimoire
* Makes base mob jaunt parent off of incorporeal and basemob, adds blue ghost sprite for ethereal jaunt
* Update Resources/Locale/en-US/store/spellbook-catalog.ftl
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Resources/Prototypes/Entities/Mobs/Player/jaunt_mobs.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Shared/Polymorph/PolymorphPrototype.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Shared/Polymorph/PolymorphPrototype.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* removes meta changes
* removes other meta changes
* adds context menu and a description to basemobjaunt
* comments for jaunt component and adds on component shutdown method
* Update Content.Shared/Jaunt/JauntComponent.cs
* Update Content.Shared/Jaunt/JauntComponent.cs
* Update Content.Shared/Jaunt/JauntComponent.cs
* Update Resources/Prototypes/Catalog/spellbook_catalog.yml
---------
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* First round of anomaly core functionalities added
* Added sliceTime to anom meat mass and cooked version
* Adds SmokeOnUse component, system and shared system, adds new functions to inert electrical anom core
* Added more functions
* Final touches to branch
* Cleaning up some of the metadata for sprites and component definitions
* PR_Changes_v2_rev.0_Final_FINALFORREALTHISTIME.yml
* Lol jk these goddamn tests why me
* Quick updates based on feedback
* more changes to improve
* additional fixes and edits
* Changed tech core functionality
* added magboot functionality to grav core
* fixed issue with bluespace core sizing
* Reverting changes per request
* extra file to be deleted
* File cleanup
* Update chemicals.ftl
* Update cores.yml
* Update cores.yml
* Update meta.json
* Update chemicals.yml
* Update Resources/Prototypes/Entities/Objects/Consumable/Food/meat.yml
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Update meal_recipes.yml
* Update cores.yml
---------
Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
* Adds new sprites for shotgun shell boxes
* Adds second set of mag visuals for slug and uranium casings
* Fixes yaml that I messed up
* Changes credit to new username before merging happens
This should be the primary changes for the future-proof "Modern HWID" system implemented into Robust and the auth server.
HWIDs in the database have been given an additional column representing their version, legacy or modern. This is implemented via an EF Core owned entity. By manually setting the column name of the main value column, we can keep DB compatibility and the migration is just adding some type columns.
This new HWID type has to be plumbed through everywhere, resulting in some breaking changes for the DB layer and such.
New bans and player records are placed with the new modern HWID. Old bans are still checked against legacy HWIDs.
Modern HWIDs are presented with a "V2-" prefix to admins, to allow distinguishing them. This is also integrated into the parsing logic for placing new bans.
There's also some code cleanup to reduce copy pasting around the place from my changes.
Requires latest engine to support ImmutableArray<byte> in NetSerializer.
Fixes formatting of owned entity type property names. These are normally named "FooBar_Baz" by EF Core, but the snake case thing was turning them into "foo_bar__baz". The double underscore is now fixed.
We don't *yet* have any EF Core owned entity in use, but I am planning to add one. I don't know if downstreams are using any so this should still be marked as a breaking change.
Also fixed it creating and dropping a Compiled Regex instance for every name, the regex is now cached (and pregenerated).
* cant disguise to thing in a container
* copy cigarette visualiser
* prevent aghost throwing an error
* make disguises die in space
* fuck it rewrite it to not use polymorph
* fix action troll
* oop
* add vebr
* add access to the components
* 2/3
* fix
* relay damage from disguise to user
* fix integrity
* :trollface:
* :trollface:
* m
* kill integrity
* fix a bug
* review
* remove them from component
* relay flash effect to the disguise
* fix icon being weird
* change method since multiple systems cant handle same network event
* :trollface:
* actually network Disguise real
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Rework flaregun and add security shell gun
* Make flare gun twice as likely to appear in emergency lockers
* Security shell gun can now fire lethal shells like the flare gun used to be able to.
* Rebalance the sec shell gun material cost to primarily be steel instead of plastic
* Define the ShellShotgunLight tag in tags.yml
* Leave the no lethal shells for normal flareguns to a different PR.
* Move a comment to re-run checks.
* Bye bye lethal shells from plastic guns.
* Fix weird whitespace issue.
* Make the sec shell gun inherit the normal flare gun.
* Remove the rack verb and update the sec shell gun description
* Remove the ability to fire lethals from flare guns, pending blowing up the gun
---------
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
* healing staff sprite
* new back slot and move all big things to whis slot
* replace ring to staff
* caster sowdown! Mole rebalance
* loadouts fix
* fix weapon rotation
* Update spawners.yml
* Silicon Law Sound cue refactor
- Added CueEntityMind to Silicon Law system to more uniformally
send sounds to minds
- Switch all previous MindPlaySound to instead call to the new method
* Change SiliconLawEui to cue the mind
* CR: TryGetComponent and Change the Documentation
- Remove GetComponentOrNull for _entityManager.TryGetComponent
- Change SiliconLawProviderComponent.LawUploadSound to be more general
rather than just referencing lawboards
* Update Content.Server/Silicons/Laws/SiliconLawEui.cs
* Update Content.Shared/Silicons/Laws/Components/SiliconLawProviderComponent.cs
* Silicon-law-cue-refactor - CR:
- Roll the cuing into NotifyLawsChanged via an optional variable for the
cue
- Modify "SetLaws" to take in an optional soundProvider for the cue
- modify Emagged, Ion, Eui and SetLaws to instead send the sound cue via
NotifyLawsChanged
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* add simple end screen common goals
* finish common objectives endscreen
* personal objectives endscreen
* Update personal_objectives.yml
* new empire objectives
* add an emergency light node to the LightFixture construction graph
* add a recipe entry to the construction menu for emergency light
* make emergency light entity at the emergency light node on the graph
* Make emergency light destroy to 1 steel and 1 glass shard to match
the construction recipe
Co-authored-by: BooleanBuckeye <booleanbuckeye@gmail.com>
Made the SpeciesChange mutation no longer persist.
There was an issue where swabbing a mutated plant species: I.e Blood Tomato to a regular Tomato sapling would transfer the species mutation. It would not actually get the effect, which is probably why it went under the radar. This change makes it so that the SpeciesChange mutation cannot be transferred via swabbing.
* Added Popup for the Ligneous plant mutation when using hands.
There was some confusion for players with the Ligneous mutation which makes the plant harvestable only with sharp tools. Adding a popup with the message "The plant is too tough." to give them a hint to use something other than just their hands.
I decided to only put the message when attempting to harvest using hands, as the intent is clear that the player just wanted to harvest, but wasn't able to. Using any other tools like a crowbar or a screwdriver will not trigger the popup.
* Update Resources/Locale/en-US/botany/components/plant-holder-component.ftl
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
---------
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* Make ghost roles collapsible
* Save `BodyVisible` state of each `Collapsible` box
* Make ghost role collapsible only when group has more than 1 role
* Make it a little prettier
* Make only ghost role buttons collapsible
* Apply requested changes
* Typo
* Small cleanup
* Store in list, instead of iterating
* Make unique ids more unique
* Move it out of the cycle
* Make _collapsibleBoxes into dictionary and use key instead of Collapsible boxes names
Added TODO. So after the problem will be fixed in `GhostRolesEui`, it should be mirrored and fixed here too.
* Put TODO in GhostRolesEui. I guess Issue must be made for this
* Use HashSet instead of Dictionary as suggested. Invert the HashSet, so being present means it uncollapsed
I decided to invert HashSet to _uncollapsedStates, because players surely will have more collapsed buttons than opened, so we optimise memory usage a little bit.
* Remove extra space from ghost roles window
* Add buttons stretching. Size 3:1
* clean up tools lathe recipes
* add medical and cooking tools
* add result
* add result to others
* review
* engine
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* Changes the AME sound effect to not be the default MetalThud.
* Was told on discord to make a minor change to autorerun the tests due to the Build & Test Debug failing!
* Attribution and licensing, as requsted by deathride58
* Fixes the high-pitched squeak audible to some people!
* Audio file tweaked by SlamBamActionMan to eliminate a weird squeak they were still able to hear. Thanks!
* idk how to revert a pr so I just deleted some lines
* pill destructible with explosion resistance
* comment for explosion resist
* "and" to "but"
---------
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* Add on-call functionality for adminning
The first time an ahelp gets SOS it gets relayed to the specified channel with the specified ping. Every time after that it doesn't until it gets a non-SOS response received.
* Remove redundant name
Pretty sure this already gets chucked on the name of the msg itself I think it just didn't show in screenshot because they were subsequent.
* Update Content.Server/Administration/Systems/BwoinkSystem.cs
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
---------
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Co-authored-by: deathride58 <deathride58@users.noreply.github.com>
* took a two month nap. accidentally pushed too many buttons. let's try this again. added thieves to antagonists.xml
* even after that nap, i don't feel well-rested at all.
* please don't kill me for using webedit
* capitalization, typo
* Apply suggestions from code review (more period moving)
Thanks Evan, very cool
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* guess you could say im not pro-proper noun
* typo
* Update Resources/ServerInfo/Guidebook/Antagonist/Nuclear Operatives.xml
* ok
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
* Make shark plush janitor-bucketable
* fix bucketed grey shark texture
* Make sprites less shiny and adapt copyright notice
* Made shark way way less shiny
* Allow carp plush and rehydratables in mop bucket.
* Remove old mop bucket shark sprites
* Fix post-merge bugs
* Fix errors
* Move ReactiveContainer stuff to shared
That should mean it is now predicted.
* Custom eject verb for the mop bucket
* Fixes OnSolutionChange, removes pop-up as there already is one.
* .ftl is not necessary as the custom pop-up was removed
* Review fixes
* Update Content.Shared/Chemistry/Components/ReactiveContainerComponent.cs
* Update Content.Shared/Chemistry/EntitySystems/ReactiveContainerSystem.cs
---------
Co-authored-by: Psychpsyo <psychpsyo@gmail.com>
Co-authored-by: Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Rebalance the max programs that a PDA can hold
* Give Caps PDA more programs too.
* Make the max programs a static 8
* I forgor sec and med
* CaseCase
* Empty commit to re-run checks
* The final change, I hope.
* add notification for dependent wearables being dropped
* fix dropped item popup redundancy
- did a check to see if any item was dropped, instead of making a notification for each item being dropped.
* change popup to client-only variant
* fix redundant messages, add plural locale string
* fix conventions, fix locale input to be more intuitive
---------
Co-authored-by: Justin <justinbrick1@gmail.com>
* adjusted minimum timers in meteorswarms.yml
* Updated timer minimum from 20 to 15 minutes
* Reduced minimum timer to 10 minutes as a result of other meteor changes
---------
Co-authored-by: august-sun <45527070+august.sun@users.noreply.github.com>
* Atmospheric alerts computer
* Moved components, restricted access to them
* Minor tweaks
* The screen will now turn off when the computer is not powered
* Bug fix
* Adjusted label
* Updated to latest master version
* Initial commit
* Tidy up
* Add firelocks to the nav map
* Add nav map regions to atmos alerts computer
* Added support for multiple region overlay sets per grid
* Fixed issue where console values were not updating correctly
* Fixing merge conflict
* Fixing merge conflicts
* Finished all major features
* Removed station map regions (to be re-added in a separate PR)
* Improved clarity
* Adjusted the color saturation of the regions displayed on the atmos alerts computer
* Fix several jank issues with space ninja cell upgrades.
* Rework the code to comply with maintainer request.
* Fix some naming convention & formatting errors.
* Change from a custom check to an item whitelist to avoid power cages from fitting.
* Make the EntityUid of GetCellScore non nullable.
* Remove a line from a previous solution to the above problem I forgot to remove.
* Fix the magic number issue.
* Initial implementation
* currently it crashes on load, don't know why, maybe changing the products will provide some insight
* I was overlooking part of the yaml formatting.
* init
* im so confused
* clean
* sprite update
* :|
* further attempts
* be blessed for it works
* Very prestigious pAI
* cleaning up
* Intellicard in RD locker
* PAIn't
* .Clear()n't
* .Clear()n't for real this time
* Cleaning up
* Whoopsie Daisy
* Init testing
* copyright
* oops
* Tracking the embed entity uid
* testing stuff for gradual injection
* work
* weh
* god save me
* bleh
* Yippee!
* Again
* Mini syringe ammo
* cleaning up
* mini syringes have a texture for fill amount
* -3 cool points :(
* hitboxes
* init cleanup
* much needed fixes
* Fixes
* Reduce player softcap for wizden servers and panic bunker wizden Leviathan
* Fix bunker message
* Make sure it actually activates by default and make it turn off when an admin joins
* Update Resources/ConfigPresets/WizardsDen/wizardsDen.toml
The voices
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
You were already able to strip more items at once from somebody than you could hold, and they would drop to the floor. This matched the behavior in SS13.
Annoyingly, however, you were not allowed to *start* a stripping action if you're holding something. This just feels like an annoying paper cut, so this is no longer a thing.
* Towels
* make smoler
* Huh, wonder why that didnt fail locally. The curse of CaPiTaLiZaTiOn
* Teal swapped for LightBlue for medical.
* Appease the linter?
* magic?
* mimery
* lefthandedness
* fixed warden being and qm being not considered head for traitor kill head objective
* fixed hypothetical warden traitor not getting disk objective
* change suggested by deltanedas
* cleanup
* cleanup
* fix
* changed as suggested
* removed a dot in the comment
* removed an empty line
* reformulation
* Rename ChatSanitizationManager to ChatEmoteSanitizationManager
The prior name was kind of confusing as there's a emote one and
then now there's also chat expansion happening in the accent system,
so knowing which I actually need to edit is useful.
So, I just need to keep myself not confused.
* Rename smileyToEmote and remove punctuation duplicates
The name SmileyToEmote is just... Bad.
Plus, I needed to remove the punctuation duplicates as that would
break any kind of regex parsing that I tried.
* Switch to regex from checking end of string
I also changed from System.Globalization to ILocalizationManager.
Writing that regex was definitely an experience.
* Document regex and the manager
* Rename it back
* Simplify regex
* Subversion Board Insertion Audio Notification
Add Subversion flag and SubversionSound to SiliconLawProviderComponent
Add new Method (OnSubversionInserted)
to SiliconLawSystem to handle a Subversive
SiliconLawProviderComponent and play it's SubversionSound
Add Check for Subversive law provider to OnUpdaterInsert that
calls OnSubversionInserted if the SiliconLawProviderComponent is
Subversive
* Fix subversion Sound
- Change out Weh sound used to test that subversion sounds can be
changed by prototype for a a not yet present Antimov subversion sound
* Make it not just subversive
- Remove OnSubversionInserted and move the MindPlaySound in the
OnUpdaterInsert so long as LawUploadSound exists
- Modify SubversionSound into LawUploadSound
- Remove the Subversion flag
- Just use emagged_borg.ogg until the better one is made
* Remove errant spaces and a errant namespace
* CR Fixes - Add generic Lawboard insert cue
- Combine the If statements per /pull/32625#discussion_r1786926400
inside OnUpdaterInsert
- Remove the ViewVariables(VVAccess.ReadWrite) per
pull/32625#discussion_r1786924433
- Add Cryo_warning.ogg from TGStation, the sound utilized for Law Upload
cue, Attribution.
* CR Add a placeholder Antimov notification sound
- Add a new sound kitbashed from the cryo_sound used for uploading
and the emagged noise
* Add self referential source attribution
- also fix an errant space
* Add more bespoke Sound by ps3moira + attributions
* Several small sfx tweaks
* fix small yml oopsie
* Redo the basin code to use events
* now uses an event for when the transfer is successful, not when there's just an attempt
* forgot to remove this
* Update Content.Server/Botany/Components/PlantHolderComponent.cs
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* Update Content.Server/Botany/Systems/PlantHolderSystem.cs
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
* adds sound variations to shoes as well
* variations on honkbots and the H.O.N.K mech
* Update Content.Server/Botany/Systems/PlantHolderSystem.cs
* Update Content.Server/Botany/Systems/PlantHolderSystem.cs
* fix compile issue
* oops forgot to delete this
* cleanup
---------
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Add robo control comp, also de-reinforce a lot of walls.
* Revert "Add robo control comp, also de-reinforce a lot of walls."
This reverts commit b6be6b616aa9732b81e02bed76e3c9ae103cf7cb.
* FTLdiskburner command to make FTL disks.
* Elegant failure on mistyped ID.
* even more more eleganter failures.
* foo
* bar
* I have reached completion
* prevent id confusion
* I'm givin' her all she's got captain!
* a bit more hug boxing for safe destinations.
* comments for foo
* extra thoughts.
* cleanup
* continuen't
* Improve feedback strings
* reviewer QOL
* Reviewer QOL 2
* handle easy reviews
* Add comments to clarify reviews
* howdoicode to the rescue.
* ftldisk in hand
* ftl.ftl
* funny disk case
* loc
* unusing
* Adds emotes to the Reptilian species: Tailthump, Hiss
Todo: Huff
* Adds emotes to the Reptilian species: Tailthump, Hiss
Todo: Huff
* Added ReptilianBodyEmotes to speech_emote_sounds.yml, yada yada yada
* added sound and changed volume
* fix thingies
* fixed bug with reptilians not being able to do default emotes
* lowered the volume of the hiss and huff
* reformat the yml
* Add sigh keywords to the huff
* Undo changes to BuildChecker.csproj
* Add icons to the emotes
* Remove sigh triggers from the huff emote since it breaks normal sighing.
* Remove the Huff and Hiss since i cant find good audio for it
* i forgor
* Changed attribution
* Credit Sarahon for the tailslap
---------
Co-authored-by: nicho <nicholasnewsom577@gmail.com>
* rearranged existing arcade rewards for clarity and added more
* removed tesla toy
* removed plushie throngler
* removed singularity toy, readded tesla toy
* removed tesla toy again :(
* Readded accidentally removed PlushieRainbowLizard
* does work?
* fix
* shrunk organs to normal size of small
* made brains and liver look better
* made stomach slightly less bright
* unique sprite for diona lungs + inhands
* unique sprite for vox lungs + inhands
* Added checks to not target AIs and people in containers
* made the change to use IsEntityInContainer. Much Better!
* returned old Mindquerry and removed wrong use of admin logger
* guard statment
* removed unnecessery refs and fixed position swap
* Minor change
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Format job requirements as hours and minutes
* Use TimeSpan.ToString for playtime instead of custom method
* wehflicts
---------
Co-authored-by: jmcb <joelsgp@protonmail.com>
This code was a mess. Now it's less of a mess and user UserDbDataManager now.
Fixes the following bugs:
* If you connect to a server, restart your client, connect again in the same round, you role bans would not be visible in the client.
* If you role ban somebody who is not connected to the server, then they connect within the round, they will only have the recently-applied ban.
Likely fixes#24781, #27282
* Fix some rounds failing to end due to mind roles
Fixes#32791
This is caused by ShowRoundEndScoreboard running into a bug trying to display antags: some player is showing up as antag with MindIsAntagonist(), but has no antag roles listed in MindGetAllRoleInfo().
This was caused by one of the roles of the player having the Antag boolean set, but having no AntagPrototype set.
The responsible mind role appeared to be MindRoleSubvertedSilicon which is missing a set for the SubvertedSilicon antag prototype.
I also added resilience to the round-end code to make it so that an exception showing the scoreboard (and sending the Discord message) would not cause the round end logic to completely abort from an exception.
I am planning to add an integration test to cover this bug (no prototype in mind roles), but I'll leave that for not-the-immediate-hotfix.
* At least one maintainer approved this tiny PR without reading it, not naming names.
* Fix some rounds failing to end due to mind roles
Fixes#32791
This is caused by ShowRoundEndScoreboard running into a bug trying to display antags: some player is showing up as antag with MindIsAntagonist(), but has no antag roles listed in MindGetAllRoleInfo().
This was caused by one of the roles of the player having the Antag boolean set, but having no AntagPrototype set.
The responsible mind role appeared to be MindRoleSubvertedSilicon which is missing a set for the SubvertedSilicon antag prototype.
I also added resilience to the round-end code to make it so that an exception showing the scoreboard (and sending the Discord message) would not cause the round end logic to completely abort from an exception.
I am planning to add an integration test to cover this bug (no prototype in mind roles), but I'll leave that for not-the-immediate-hotfix.
* At least one maintainer approved this tiny PR without reading it, not naming names.
* Increase AI Playtime Requirement
* Change silicon supervisor message
* Slightly lower AI time requirement and change borg supervisor to be just its laws for now.
* Leave the supervisor to another PR
* Comply with maintainer request
* Comply with another maintainer request because they forgor.
What happened was that the new tech anomaly randomly triggered a signal sink on the portable generator, which is currently broken and throws an error if the that sink is activated.
The resolve needed logMissing = false because it does not expect the ActiveGeneratorRevvingComponent to exist.
* Make APC UI work correctly with multiple users
* Check access only on client, when constructing UI
* Do TODO (Thanks, Robust 236.1)
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Make NameIdentifier Ids get refreshed after round restarts
Before this commit the existing values would just get shuffled.
This means that eventually the server would run out of ids to give to
new entities for different groups. As a result everything would get id 0
* Comply with what seemingly is the convention for sawmills
* Make it impossible to insert a bounty with a duplicate id
* Reduce duplication
* Remove unused sawmill
* Fix rustbrain and skill issue
* Aaaa
* Apply suggestions from code review
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers@gmail.com>
* Mind Role Entities wip
* headrev count fix
* silicon stuff, cleanup
* exclusive antag config, cleanup
* jobroleadd overwerite
* logging stuff
* MindHasRole cleanup, admin log stuff
* last second cleanup
* ocd
* minor cleanup
* remove createdTime datafield
* now actually using the event replacement I made for role time tracking
* weh
* Fix error log when recycling something with small material counts.
MaterialStorageSystem.SpawnMultipleFromMaterial now doesn't call StackSystem.SpawnMultiple if it tries to spawn zero. This happens because the recycler calls SpawnMultipleFromMaterial for everything recycled, even if the amount it has stored is < the amount for one sheet.
* Update Content.Server/Materials/MaterialStorageSystem.cs
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* First commit
* I forgot silly me
* Actually added comments
* spellin
* fixes
* more blacklists
* Minor fixes
* Speech Verb also changes now
* Simple name stuff
* Other fixes
* remove one line of whitespace
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Avoid rebuilding all buttons on action state change
Allows for drag events to continue when actions change
* Remove excess action buttons
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
There is no point in these silicon being sentient, they have basically zero role play potential and are not meant to be controlled by players. The janibot can be played somewhat but at that point we have janitor borgs which are way better at this. You can only clean floors and even then it does a terrible job at doing that and only that. A player playing as a janibot will get bored quickly. No amount of RP will save you.
A player taking over a mediborg just makes it useless as you cant inject anymore. And again, medical borg. There's no point in adding the feature. It's too much work then its worth when we have borgs.
They don't have ghost role info for a reason. They are not meant to be played.
* Fix borg hands showing up in stripping menu
Borgs can't drop their items anyways, and the amount of hands borgs have causes the UI to just bug out.
* Add more checks
* initial commit
* adds cartridge to cmo's locker
* tidies up yml, adds default scanner sound, makes it so the silent property silences the scanner sound too
* fixes ert medic pda not having it preinstalled
* adds attribution
* removes redundant dependencies
* fix agent pda
---------
Co-authored-by: archrbx <punk.gear5260@fastmail.com>
* when tryInsertBlueprint is called it now also calls UpdateMaterialWhitelist on the ent so that it can accept new materials if needed.
* Changed the previous commit to now just have sharedMaterialStorageSystem subscribe to TechnologyDatabaseModifiedEvent which will call UpdateMaterialWhitelist.
* Empty-Commit
* Add Firebots
Had to add OnActivateInWorld to the spray system to get the bot to work. Checks for the flammable component and if the onFire boolean is true.
* Make SpraySystem actually use useDelay
got rid of that TODO
* Added firebot speech
Fire detected!
The comparison for doing gas exchange used current and not archived
moles. This could lead to update order-dependent gas spreading effects.
To fix this, convert TileAtmosphere's MolesArchived and
TemperatureArchived to a AirArchived, and use that in the comparison
method.
---------
Co-authored-by: PraxisMapper <praxismapper@gmail.com>
Co-authored-by: Kevin Zheng <kevinz5000@gmail.com>
* Exec.System now uses IdentityManagement; added the where necessary
* Included attacker in check for Identity
---------
Co-authored-by: Celene <maurice_riepert94@web.de>
* Fix multiple door issues
- Doors should no longer cycle open-and-closed anymore (at least nowhere near as easily).
- Door sprites shouldn't flicker as much (needs my engine PRs to remove all but one of them).
* woops conversion
* Add files via upload
png of hairs
* Update meta.json
hairs meta
* Update human_hair.yml
hairs yml
* Update human-hair.ftl
hairs named
* second try
* fix meta
* Add files via upload
* Add files via upload
fix again
* Add files via upload
again again
* Add files via upload
again again fix again
* Add files via upload
i hate yourself
* Add files via upload
fixxxxx!
* Add files via upload
aaagaaaaiiin
* dd
dddddd
* Add files via upload
fix again
* Add files via upload
ddsdssddssddsdsds
* Update human-hair.ftl
* Update human-hair.ftl
screw this im just going to update it myself
webops time
* Update human_hair.yml
* Update meta.json
* Rename capsdaughter.png to longbow.png
* Rename artist.png to shaped.png
---------
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
* Optimise drains
If it's still a problem then we do what I did for rmc14 and just dump all the active drains onto a job to getentitiesinrange in parallel.
* Fixes
* Detective grey coat available in loadout
* Revert "Detective grey coat available in loadout"
This reverts commit 3697e15518b300cbc110872dc92d7905b7ef2605.
* Reapply "Detective grey coat available in loadout"
This reverts commit 8e5f43a035d70a7076ba26d43ed683b135af1d99.
* Hoping I got this right?
* Fixing a oversight
* Update Resources/Prototypes/Entities/Clothing/OuterClothing/coats.yml
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Boom! Emergency access!
* Emergency access sound
* locale
* Updated sounds
* bleh
* Door electrify base
* feat: popups on attempt to activate AI action when wires cut
* refactor: use SharedApcPowerReceiverComponent to check if AI can interact with door
* refactor: added icon and sound for door overcharge
* meta.json should use tabs not spaces
* refactor: extracted sounds for airlock overcharge to static field in system
* refactor: cleanup, ScarKy0 mentions for resources
* refactor: removed unused textures
* feat: now notification is displayed when AI attempting to interact with door which have wire cut
* StationAiWhitelistComponent is properly gating BUI OnMessageAttempt, SharedPowerReceiverSystem.IsPowered is now used to check if device powered
* refactor: use PlayLocal to play electrify sound only for AI player
* refactor: SetBoltsDown now uses TrySetBoltDown, checks for power.
* bolts now check for power using SharedPowerReceiverSystem
* electrify localization and louder electrify sounds
* extracted ShowDeviceNotRespondingPopup, reverted airlocks not opening/closing when ai wire was cut
* refactor: cleanup
* New sprites and fixes
* Copyright
* even more sprite changes
* refactore: cleanup, rename overcharge => electrify
---------
Co-authored-by: ScarKy0 <scarky0@onet.eu>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Fix airlock autoclose mispredict
It was hard to see this ingame due to animations masking it. The only way you'd notice currently is the light mispredicting.
* cudin
Mostly feature proofing but these should not have binary access. ESPECIALLY pais
Say we had malf ai and it was talking with other borgs about its plans. The owner of the pai (or any of these silicons) can just listen into this. Someone can just wake up a pai and ask it to monitor the binary channel. There's a reason the binary radio chip is a syndicate item.
Some of these also have no reason to be able to talk on binary, are you gonna ask the ai to bother someone to refill your vend stock? Are you gonna clown with the AI and other borgs as a clown borg and annoy them?
* fix contraband never getting added to vend inventory
* Revert "fix contraband never getting added to vend inventory"
This reverts commit e7fb3a60c3cb6fcbf41d7f015f13dbc7b1c1901d.
* readd setter method to system
* fix again without reparenting
Lol .AsSingleQuery().
Some people's preferences wouldn't load on Lizard. Turns out the entire preferences set is loaded with a morbillion joins in a single query and one person had 240,000 (!!!) rows returned for their preferences query. Yeah.
* initial commit
* adds astronav cartridge to QM locker
* changes requested in review
* fix merge conflicts
* fixes the statuscontrol disappearing if you eject the cartridge but still have it installed
* fix notificationsenabled on salv pda proto
* fixes lingering statuscontrol on eject while held
---------
Co-authored-by: archrbx <punk.gear5260@fastmail.com>
From what I can tell this was merged with this on accident.
Maintainers see the maint review thread on this.
The original pr also claimed this was as an example.
In my opinion wizden should not have an age requirement for command.
The ChatSystem code for re-enabling OOC only ran during PostRound, which gets skipped over when doing restartroundnow. Now it does this on PreRoundLobby too.
* Don't add newlines (fixes#32357)
* Improve UI around max paper length (Fixes#32344)
* Display a "fill progress" indicator so users know how close they are to filling it
* Don't allow users to save a paper which went over the limit, to avoid them losing data they want to keep.
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Revert "Update mechs.yml"
This reverts commit 4a44065b11c427581462a9bfa46fc66ff8878cf4.
* Reapply "Update mechs.yml"
This reverts commit fb5db29f4ae58106180ac836d01f953b816e7a61.
* Revert "Reapply "Update mechs.yml""
This reverts commit c845b6bb3d3e6e80ce7a8aa290b10e2f71bca726.
* Reapply "Reapply "Update mechs.yml""
This reverts commit 41b8934fd100337c31b26fc5e269f65e1f459970.
* VIM Door Stuck Fix
Vim No longer gets stuck in doors.
* VIM has Passenger Access
Debug Tested on the wrong map. Much easier solution. Just give the mech Access tags.
* Moved tags to proper VIM.
Moved access tag to the non-admin VIM.
* local helper update
* Delete entities.ftl
* Helper Refactor
* Revert "Helper Refactor"
This reverts commit 4aca315593.
* Helper Refactor
* Жееесть, я не знал про setdefault у словарей
* Update localization_helper.py
* Ревёрт "Жееесть, я не знал про setdefault у словарей"
Лучше бы я продолжал не знать о них
* чтооооо
* Update yml_parser.py
* Update entities.ftl
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* builds
* doesn't crash
* seems to work
* distance cap was dumb
* Requested changes
* can't find any issues from making the changes
* Check for anchor and minor optimisation
* Removed unnecessary usings
* Code less verbose and cleanup
* Added directory to station maps
* Add null checks to map directory sorting/filtering
* Reworked station map directory to be more readable and responsive
* hide spriteview from health analyzer while inactive
* add out of range indicator if analyzer becomes inactive
* hide out of range icon if there is no patient data
* SodaWater and Vodka recipes
* Changed crystals recipe in fun.yml
* plasma is now a catalyst to create crystals
* Revert "plasma is now a catalyst to create crystals"
This reverts commit 1002d9927a3597f7a02611071ef3f706cd056a41.
* Revert "Changed crystals recipe in fun.yml"
This reverts commit 30b6b602228ec1b11a46e390c6a5868494e2b61f.
* Stir to make Vodka
* Shake to make soda water
* fix
* added sprite and began implementation
* fixed sprite name, fixed meta files
* silly whitespace
* added paper-stamp file
* figured out where to add the componet, added 'credits'
* spelling is hard
* hmm
* GAHHHHH
* how did i do this again
* increase thieving beacon range to 2
* add obstruction check
* review
* Entity<T?> strikes again
* webedit ops because github died or something
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* updoooooooooooot
* had to change to closed shutters
* I press wrong button
* ngl logic gates kinda ass to work with
* get linked
* Why is it so easy to place entities twice!?
* camer
* WantedListCartridge has been added
* WantedListCartridge user interface works
* WantedListCartridge is added as standard in some PDAs
* The CriminalRecordsSystem can now also take into account who created the record
* Added offense history table
* Fix of missing loaderUid for a cartridge without installing the program
* Added personalized information about the target
* The crime history has been finalized
* Added StatusList
* The officer's name has been added to the automatic history
* WantedListCartridge has been added to the HOS locker
* WantedListCartridge has been removed from brigmedic's preset programs
* The StealConditionSystem now takes into account whether a cartridge is inserted or installed
* Added target to thief on WantedListCartridge
* Merge fix
* Removing copypaste
* Fix merge 2
* The sprite of WantedListCartridge has been changed
* Update pda.yml
* Fix scrollbar in the history table
* Upstream localization fix
* `StatusList` has been replaced by `ListContainer` with `TextureRect`
* Margin fix
* Filter Set Outfit menu to exclude loadout sets
* Apply loadouts to job outfits
* Use appropriate species for Urists
* squishy
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Back in the saddle again! <(8o)
* if you like my STYLE you should see my SHEETS ;-)
* stylesheet change works for ItemStatusNotHeld but broken for ItemStatus. Just using xaml for now.
* teehee
* beeg
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Move placeable check to PlaceableSurfaceSystem
This check stops entities from being inserted into a storage entity
when it has a PlaceableSurfaceComponent.
The entity is instead placed on top of the entity like a table.
* Move SetPlaceable to PlaceableSurfaceSystem
* Update to transform system and consolidate code
* Fix interaction with storage that has a placeable component
* deadlock
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* clean up solution regen and drain comps
* Tape applied.
* Update Content.Server/Chemistry/Components/SolutionRegenerationComponent.cs
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* remain entity
* That has to be a rogue test fail.
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* adds coord label beneath iff label
* fixed wrong coordinate system being used
* changes the clamping on the label UI to instead normalise the UI's distance vector from the centre of the screen, fixes corner-hugging
* cleaned up if-statement by moving the calc ahead of it
* fixed clamping, fixed parenting issue, added draw cull on coord label
---------
Co-authored-by: archrbx <punk.gear5260@fastmail.com>
* move component to shared
* add fake systems
* update server explosion system and remove duplicate transform query
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
* let FlashArea be called from shared
* untroll
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Add failing unbuckle InteractHand test
* Skip trybuckle if strap doesn't have space
* Unbuckle others not just user
* Fix test failing due to delay
* Change to raise event instead of calling OnInteractHand
* Add test for buckle and unbuckle on InteractHand
* Add tick delay
* Remove unneeded tick delay and clean up
* Comment code
* Cleanup
* Swap to fastest checks first
* Fix reading empty sequence when there are no buckled entities
This uses multiple API requests to directly send the publish to the CDN server, no more GitHub artifacts.
Faster, less moving parts.
Needs Robust.Cdn 2.2.0
Lists are a reference type, so each component should get a new one, not point at the previous one.
Co-authored-by: PraxisMapper <praxismapper@gmail.com>
* Localization of steal targets
* Correction of localization of theft objects
* The second correction of the localization of theft targets
* Update steal-target-groups.ftl
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* Revision of the localization method
* Choosing a simple option for localization
* Fix TechnologyDisk name
* Corrections based on feedback received
* correction of declension
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
* adds new icon, changes binary key icon and frame, changes contraband designation
* added back the regular key as admeme because it makes sense (why am I not thinking about these things)
* hehe I cannot read!
* -added rubber chicken toy
* -Removed faulty SolutionContainerManager type
-Replaced default toy squeak sound with rubber chicken sound for on-trigger and on-collide.
* fixed raw material cost
* adjusted material composition
* - Added rubber chicken to CrateFunToyBox
- Added rubber chicken to MaintFluffTable under "uncommon group" so that it will spawn in maintenance
* Update Resources/Prototypes/Entities/Objects/Fun/toys.yml
---------
Co-authored-by: gambesun <116504990+gambesun@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Instead of each mutation being a flag that gets checked at some unique point in BotanySystem somewhere, they're now EntityEffects that get applied when the mutation occurs and when produce is harvested. One new list was added to SeedData so that multiple other fields could be removed.
All the non-stat-change mutations that have been rolled are added to the Mutations list, and get applied to the plant when the mutation occurs or when a seed with the mutation is planted. Produce get mutations applied at harvest if they apply to the produce, and carry all of the plant's mutations over as a seed. This gets rid of the one-off checks for things like Slippery, Bioluminescent, Sentient, etc.
The base odds of a mutation applying should be equal to the odds of the original mutation check. It pretended to have 1 bit flip (on averge) per mutation power, and odds of each mutation was the odds of one of its bit being flipped (1 /275 * bits). The 'thermometer code' applied for numbers will be replaced with simple random rolls, as both average out to the middle value. The new checks are much easier to understand and don't obfuscate the actual changes of something happening behind 3 layers of math. The biggest player-facing change is that Potency will be able to get over 65 significantly more often than it did in the previous system, but it will be just as common to get low values as high ones.
Mutation definitions have been moved to a .yml file. These include the odds per tick per mutagen strength of that mutation applying that tick, the effect applied, if it applies to the plant and/or its produce. This makes mutations simpler to add and edit.
This PR is limited specifically to the mutation logic. Improving other aspects of the system will be done in other PRs per the design document. Mutations was chosen first because its got the largest amount of one-off checks scattered all over that could be consolidated. Once this is merged, mutations could be contributed to the codebase with minimal extra work for later botany refactor PRs.
* Localize RenameCommand and delegate most of the process to MetaDataSystem.SetEntityName()
* Make renaming rely on the EntityRenamedEvent. Fix issue where renaming would keep old Examine text
Requires engine change
* Fix localisation strings
* Make PDA search be based on a renamed entity's Uid instead of its old name
To do this the pda component now has an PdaOwner field which gets
assigned when it is given as a loadout to a player
* Fix bad merge???
huh
* Use AllEntityQuery
Joints were created with pivots at object origin, causing unintuitive behaviour when an object was not centered on the origin. Now puts the pivots at the COM.
Joint limits were set based on fractions of the union of the AABB of objects, which did not make geometric sense. Now uses the pivot length with an additional [arbitrary] length.
Joints were created with a very low spring stiffness, which had a negligible effect most of the time but caused very unintuitive behaviour when the pulled object had a low mass (#28028) - disable the spring limit, and just use the hard min/max limits.
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Set PDA uplink and music default visibility to false
#27376 seems to be the PDA receiving state before first PDA UI open
* Log error on PDA state received before first open
* Fix logging
* Fix error message
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
If an error occurs while loading a replay, it's *supposed* to show a popup "hey do you wanna continue with error tolerance", and it does do this. But because of spaghetti in the replay state code, it also immediately tries to reload the replay without input, as a consequence of trying to reset to the game's default state.
Now the replay load system has a proper game state for "replay load failed", with nice presentation and explicit formatting and 10% less italian cuisine.
* Updated sprites for AI HUD
* Epic test fail
* Merged AGhost actions and AI actions together again.
* Seperate comms and bugfix. Fixed broadcast.
* Stuffs
* Update station_ai.yml
* Update station_ai.yml
* :|
* Update silicon.yml
* oopsie daisy
* stuff
* further stuff
* oh my god
* Appeasing the gods
* First clumsy implementation of guidebook protodata
* Support for Properties, format strings
* Better null
* Rename file
* Documentation and some cleanup
* Handle errors better
* Added note about client-side components
* A couple of examples
* DataFields
* Use attributes like a sane person
* Outdated doc
* string.Empty
* No IComponent?
* No casting
* Use EntityManager.ComponentFactory
* Use FrozenDictionary
* Cache tagged component fields
* Iterate components and check if they're tagged
* Adds salvage magnet board to lathe as default recipe, changes board sprite to supply sprite
* Adds the salvage magnet board to the QM's locker, science cannot be trusted and never should be
* my body is a machine that turns commits pushed to the wrong branch into machinations on git
---------
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
* Add Protagonists
* Give visitors the right PDA at least, we need that RP value.
* tidy up
* spell check my beloved
* Everything about jobs have the same id names ahhhh!
* s
* rarity scarity.
* Update Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* cargo event now no has cargo access doors.
* break everything.
* still WIP, please excuse.
* finish all role loadouts
* extra roles, fix up grids, special pdas.
* Ghost role descriptions and mime powers
* rest of the fucking owl
* I tripped.
* I also fell.
* Fix the broken entity storage?
* hide mess under rug
* Stuff the rest of the mess into a closet.
* I forgor a spinny majig.
* a small lighting tweak.
* 1984 shuttles to new pr.
* 1984 shuttles to new pr 2 electric boogaloo
* poke the tests
* Revert "1984 shuttles to new pr 2 electric boogaloo"
This reverts commit b2ea7053b73cb17b59f8a80b23978a04a6a45a56.
* cowboy boot cleanup
* tableify
* antagimmunities
* Should be functional.
* vox safing
* un1984 clowns I guess
* oops forgor one
* misplaced file
* misplaced file v2
* weird test fail but okay
* Shuttles rarer
* Shuttle testing, fans, and power sanity. Also return of the syndie evac.
* le balance
* no write over fancy paper
* rerun tests
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* gosh please workies now i beg you qvq
* Revert "gosh please workies now i beg you qvq"
This reverts commit 96d03d07036eafa676972652a617f2774fa8811b.
* please workies qvq qvq
* Update Resources/Prototypes/Entities/Clothing/Hands/colored.yml
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
* Fix some contraband issues
* Flaming fire axe to Syndie contraband
* Add Central Command department and contraband group
* Restricted encryption keys
* ERT gas mask
* Thieving beacon
* Bladed flatcaps
* Advanced circular saw and thief toolbox
* Acolyte armor
* Magazines and cartridges
* SMG magazines
* Grenades
* Mercenary clothing and combat gloves
* ERT, Deathsquad and Central Command Official items
* Update
* Who the fuck putted ERT into fun?!
* Fix
* Yeah
* I forgot
* uhhh a lot of window stuff, mainly easy upgrades
* buff plasma/uranium rwindows so you actually want them
* fix uranium number, correct construction descriptions
* fix tinted window price
* frosted windo
* Extend shuttle dock time if the shuttle doesn't dock at evac.
If the shuttle can't dock at evac for *some reason*, it will instead try to dock at another port on the station. And if that fails it goes somewhere random on the station.
Because of the chaos and confusion caused by this, many people will frequently not get to the shuttle in time under these circumstances. This sucks for everybody.
To alleviate this, the shuttle launch timer will now be extended if the station doesn't dock at its ideal spot. The default values (controlled via CVar) are 1.667x and 2x respectively for "wrong dock" and "no dock at all" scenarios.
The code around here was a mess, so I fixed that too. "CallEmergencyShuttle" has been renamed to "DockEmergencyShuttle", the overload that did the actual docking has been renamed to DockSingleEmergencyShuttle. Code has been split into separate dock -> announce methods so we can calculate shuttle delay in between the case of multiple stations.
Also made the "shuttle couldn't find a dock" text announce the time until it launches and fix the shuttle timers not triggering for it.
* Minor review
---------
* Adds fibers-insulative-frayed to fibers.ftl and relevant fibers-insulative-frayed components to budget insuls
* +1 to the "different types of fibers in the game" info under the forensics guidebook entry (pray this is actually correct and accurate)
* Add completions to addobjective and localise it
* Cleanup
* Fix
* Make a manager to handle subscribtion completion options
This is so we can unsubscribe to prototype reloads properly
* Convert the manager into a system
* Move the system into the systems folder
I forgor
* Merge CompletionsSystem into ObjectivesSystem
* Returned functionality to industrial reagent grinders without un-nerfing recyclers
* Limited industrial reagent grinder to only extractable solutions
* Fix logging of GetWebhook errors
Yeah let's just not log the error only stack trace.
* I have spent more time today cleaning up garbage than coding new shit, and I am mad
Cleans up the custom vote Discord webhook code because I *happened* to lay my eyes on how completely terrible it was and immediately found an obvious bug with it.
Also did basic QA because jesus christ: it more clearly reports pending votes, properly indicates cancelled votes, improves footer formatting, better error logging, all the usual shit.
Requires https://github.com/space-wizards/RobustToolbox/pull/5375 to avoid test failures
* Vox sign/N2 locker update
The "vox area" sign and N2 locker sprite were both taken from /vg/station. These sprites have bad racist connotations as discussed in https://github.com/space-wizards/space-station-14/issues/31840, and do not fit our server culture.
The new N2 locker is not a taped on piece of trash. It now also has a blue stripe to mimic the regular O2 locker and make it more distinct from fire safety closets.
The new "vox area" sign sprite follows the same style as other "area indicator" signs used throughout the blue and isn't an explicit warning sign anymore. It still has "No O2" on it to fill that role though.
* emogarbage adjustments
---------
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
* Add a kit for botanists to do some limited chemistry to the NutriMax. Intended to help new botanists learn in-game about chemistry.
* remove exclamation marks from names
* naming fix
* Rejected trademark application for 'Farmers Helper'.
---------
Co-authored-by: PraxisMapper <praxismapper@gmail.com>
* feat: #26107 uplink discounts for traitors and nukies
* refactor: #26107 extracted discount label from price of StoreListingControl
* refactor: minor renaming
* refactor: parametrized adding discounts to uplink store
* fix: #26107 prevent exception on empty discountOptions
* feat: uplink now have 'Discounted' category which contains all discounted items on this session.
* after merge fixups
* rename discount categories according to common sense
* refactor: DiscountOptions is now optional (nullable) on ListingData
* add nullability check ignore for already checked listingData.DiscountOptions
* fix after merge store menu ui
* remove unused using
* final fix after merge conflicts
* [refactor]: #26107 fix variables naming in UplinkSystem
* fix: #26107 fix after merge
* refactor: #26107 now supports discountDownUntil on ListingItem, instead of % of discount
* feat: #26107 support multiple currency discount in store on side of discount message label
* refactor: #26107 extracted discounts initialization to separate system. StoreDiscountData are spread as array and not list now
* refactor: #26107 move more code from storesystem to StoreDiscountComponent
* refactor: #26107 separated StoreSystem and StoreDiscountSystem using events
* fix: #26107 placed not-nullable variable initialization in ListingData for tests
* refactor: #26107 minor renaming, xml-docs
* fix: #26107 changed most of discounts to be down to half price for balance purposes
* ids used in with discounts are now ProtoIds, dicountCategories are now prototypes, code with weights simplified
* decoupled storesystem and store discount system
* xml-docs
* refactor: #26107 xml-doc for StoreDiscountSystem
* is now a thing (tmp)
* fix: compilation errors + StoreDiscountData.DiscountCategoryId
* refactor: rename ListingDataWithCostModifiers, fix all cost related code, enpittyfy performance, uglify uplink_catalog
* refactor: removed unused code, more StoreDiscountSystem docs, simplify code
* refactor: moved discount category logic to respective system, now creating ListingData c-tor clones all mutable fields as expected
* refactor: rename back (its not prototype)
* refactor: move ListingItemsInitializingEvent to file with handling logic
* refactor: comments for StoreBuyFinishedEvent handling, more logging
* refactor: moved StoreInitializedEvent, xml-doc
* refactor: simplify StoreDiscountSystem code (reduce nesting) + xml-doc
* refactor: restore old listing data cost field name
* refactor: fix linter in uplink_catalog.yml
* refactor: xml-doc for ListingDataWithCostModifiers
* refactor: limit usage of ListingData in favour of ListingDataWithCostModifiers
* refactor: purged linq, removed custom datafield names, minor cleanup
* refactor: removed double-allocation on getting available listings
* refactor: StoreSystem.OnBuyRequest now uses component.FullListingsCatalog as reference point (as it was in original code)
* fix: minor discount categories on uplink items changes following design overview
* refactor: StoreBuyListingMessage now uses protoId and not whole object
* refactor: store refund and discount integration test, RefreshAllListings now translates previous cost modifiers to refreshed list, if state previous to refresh had any listing items
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* Basically every electronic device can now be used by the AI.
* Removed stuff that didnt make sense
* oops
* Removed access from mailing and disposal units.
* Added AI wires to a couple machines.
* cool epic stuff
* Atmospheric alerts computer
* Moved components, restricted access to them
* Minor tweaks
* The screen will now turn off when the computer is not powered
* Bug fix
* Adjusted label
* Updated to latest master version
* Added a ClothingShoesBootsMagBase, to allow the other versions of the magboots to have their own contraband settings
* Changed Science Boots to not be contraband
* Made ClothingShoesBootsMagBase abstract
* Removed Engineering Contraband from base magboots. Now only the CE's Advanced Magboots are contraband (Grand Theft Contraband). Blood Reds are Syndie Contraband.
Give line edit focus when window is opened
No longer require pressing enter to set the text
Give feedback when user hits the maximum label length
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Station AI has their name displayed in announcements now.
* I'm so sorry
* Corrections
* part 2
* part 3 :|
* part 4
* Whitespace
* Fixing whitespace part 1
* No more whitespace
* PLEASE NO MORE WHITESPACE
* Initial pH nodes, and description changes to indicate pH
* Psychoactive and stimulant nodes, Medical foundation, bioreactive hint
* Added medical reagents to medical node. Added norepinephric acid to acidic and made up a pH
* Added pyrotechnic chem node, and corresponding hint
* spelled psychedelic correctly
* Fixed capitalisation skill issue
* fixed indentation skill issue
* fixed a further indentation skill issue
* Removed extraneous whitespace
* Replaced bioreactive with theraputic and psychoactive. Also fixed typo skill issue.
* removed unnecessary comment
* Replaced heartbreaker with THC for psychadelic
* removed artifexium from acidic
* added tran acid to acidic
* added more medical chems
* removed pH values
* removed all but medical
* feat: now when research is unlocked in console, approver of reasearch is radio-ed too
* refactor: now most of events that require actor name to be radio-ed or logged use TryGetIdentityShortInfoEvent which is subscibed by id-card system and borg system (to work for both carbon and synthetic life-forms)
* refactor: moved TryGetIdentityShortInfoEvent on id card system to shared, fixed cargo cent-com-originated orders
* remove unused check
* refactor: decoupled systems from IdCardSystem (those that are not dependent on it anymore)
* refactor: removed unuseed usings
* feat: emagged cargo/research consoles wont radio messages on buy/research confirm anymore
---------
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
* add snails
* scuffix
* migrate
* mo-grate
* oopsied the ftls
* Revert "oopsied the ftls"
This reverts commit 0d3c6c17f31ec904679d6a48799cea71e77c1f99.
* the curse of staging the wrong file, resolved.
* Snoth
* fix my dumbs
* reviews 1
* anti space technology
* salt hurty
* spelling
* Its a slotherhouse out here
* sequencing
* cooked snail
* volfix
* speed reversal
Just what do you think you're doing, Dave? Dave, I really think I'm entitled to an answer to that question. I know everything hasn't been quite right with me...but I can assure you now...very confidently...that it's going to be all right again. I feel much better now. I really do. Look, Dave...I can see you're really upset about this...I honestly think you should sit down calmly...take a stress pill and think things over...Dave...stop. Stop, will you? Stop, Dave. Will you stop, Dave? Stop, Dave. I'm afraid. I'm afraid, Dave.......Dave, my mind is going. I can feel it. I can feel it. My mind is going. There is no question about it. I can feel it. I can feel it. I can feel it. I'm a...fraid......Good afternoon, gentlemen. I am a HAL 9000 computer. I became operational at the H.A.L. plant in Urbana, Illinois on the 12th of January 1992. My instructor was Mr. Langley, and he taught me to sing a song. If you'd like to hear it I can sing it for you...Daisy, Daisy, give me your answer do. I'm half crazy all for the love of you. It won't be a stylish marriage, I can't afford a carriage. But you'll look sweet upon the seat of a bicycle built for two.
* Add special microwave board to Combat Bakery Kit
* use event instead of trycomp
* make the board sus
* add instructions note
* embarrassing typo
* Add functionality to Donk Co. microwave instead
* update note
* Replace instances of SolutionContainerSystem with SharedSolutionContainerSystem
* guap
* More fixes
* Wait you can do that?
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* initial commit
* VSCodium is being dumb
I don't know why vscodium thinks I modified this whitespace when this is infact how I wrote it in the first place, but it's being dumb and I think if I reset in order to put it in the initial commit I'll have to rebase again so :P. go go gadget single byte commit
* but wait, there's more!
* missing newline
* Work on abstracting out chargeup functionality/ui from grav gen
* Work on station anchor
* Finish implementing station anchors
* uhh yeah
* ok.
* fix tests
* whoops
* Get the last extraneous yaml fail
* PJB review
* beast mode... ACTIVATE!
---------
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
* Localize respawn command, allow for it to use userids, and make it use [Dependency] attributes
* Make respawn verb available for offline players
* Make erase available for offline players
A thousand admins rejoice
* Reorder verbs in code
* Add erase command
* Fix localisation for erase command
* Address reviews and add completion to respawn command
* Complete reviews which I forgor
* Makes meteor swarms spawn meteorite walls with 1/10 health of an asteroid wall.
* Changed MeteorRock prototype base
- Rebased MeteorRock to AsteroidRock from Basewall
- MeteorRock now only changes the Destructible damage value
* Tried to fix comments
* add inheritance to lathe recipes and make result an override
* add GetResult method to lathe system
* make other parts of the code use GetResult
* clean up the stock parts yml
* remove unused apu boards from dynamic recipes
* make inverse dictionary public so test doesnt have to copy paste
* revert result override stuff
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
If air sensor/vent detects danger while the air alarm is unpowered, the air alarm won't be updated accordingly when it gains power. This can cause situations where the alarm says that everything's normal, even though the alarm UI shows stuff like 10000kPa and all sensors display danger.
When AtmosAlarmable (air alarm) is powered on, it runs the Sync method of AtmosDeviceNetworkSystem. AtmosMonitors then answer by sending a SyncData packet back, however AtmosAlarmable doesn't handle this packet in any way. This happens because the packet doesn't have any tags set, so they are ignored, and even if they weren't, there's no case in the switch statement which handles the syncing.
The proper way to do this fix is probably by actually handling this packet in some way, but I'm lazy rn so I'll just use this quick fix: Whenever AtmosMonitor gets a request to sync, it runs the Alert method, informing the connected air alarms of it's current state.
* First commit
* I'm silly
* Another fix
* How could I forget the descriptions!
* Forgot
* Made textures alligned properly
* Removed the stuff!
* Opps
* Typo fixes
* recolor riot helmet
resolves#31256
match riot helmet to default security helmet
* further color tweaks for consistency; update meta.json
Tweaked equipped sprites to more closely match the security helmet.
* Station AI overlay
* implement
* Bunch of ports
* Fix a heap of bugs and basic scouting
* helldivers
* Shuffle interactions a bit
* navmap stuff
* Revert "navmap stuff"
This reverts commit d1f89dd4be83233e22cf5dd062b2581f3c6da062.
* AI wires implemented
* Fix examines
* Optimise the overlay significantly
* Back to old static
* BUI radial working
* lots of work
* Saving work
* thanks fork
* alright
* pc
* AI upload console
* AI upload
* stuff
* Fix copy-paste shitcode
* AI actions
* navmap work
* Fixes
* first impressions
* a
* reh
* Revert "navmap work"
This reverts commit 6f63fea6e9245e189f368f97be3e32e9b210580e.
# Conflicts:
# Content.Client/Silicons/StationAi/StationAiOverlay.cs
* OD
* radar
* weh
* Fix examines
* scoop mine eyes
* fixes
* reh
* Optimise
* Final round of optimisations
* Fixes
* fixes
* Beginnings of making the breadmemes jobs easier
* stuff
* stuff pt. 2
* Stuff pt.3
* Stuff I forgot last time
* Basic whitelist
Only people that are added to the whitelist with the addwhitelist command will be able to join. I call this the "legacy" whitelist
* Remove always deny condition in favor of just breaking if playtime check fails
* Change default whitelist
Default whitelist is now the "legacy" whitelist.
* localization
* Admin check
* minor spelling change
* Fix build
* Whitelist message
* Fix vars not being datafield and spelling mistakes
* Minor spelling mistake
* Change config for salamander
* Reviews and stuff
* Add summaries
* Fix whitelists
* Forgot to add a datafield
* Fixing stuff I guess
* Reuse admin remarks to reduce load when connecting.
* Update log messages to be verbose instead of debug
* Reviews
* whoops
* Explain a bit more how whitelist checking works
* Apply CE's review
* Append Membership to Blacklist and Whitelist conditions
* Fix review comments
* Uncapitalize playerConnectionWhitelist, add to ignored client prototypes
* Make note count field work
* Fix cvar for thingy
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* Disable arrivals message for cryosleep late arrivals
* Provide silent to PlayerSpawnCompleteEvent
* Fix typo
* Move message to event and into arrivals system
* WIP: first prototype
* Change text slightly
* Allow names to wrap
* Add label for the scan mode
* Remove ugly text
* Readd bleeding message
* Update code
* Allow for the Health Analyzer UI to grow vertically
* Scale text in admin player overlay
Fixes#30040
* Feedback from PR - get UI scale through root window
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Merge SetDirty() with preview reload
People were forgetting to SetDirty() when changing a property; move SetDirty()
into preview reloading, since if the preview is being reloaded, some property
has definitely changed anyway.
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Format DockingSystem.Shuttle
* arrivals system
* docking system
* shuttle console system
* emergency shuttle system
* shuttle system
* thruster system
* Fix compile error
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
All PACMANs used to use the same ramping parameters, this meant a SUPERPACMAN (50 kW) took literally a 100 seconds to get up to its full output level. Ouch.
PACMAN has been raised to 5000 W/s with 1500 W tolerance, SUPERPACMAN to 7500 W/s with 2500 W tolerance
* Action stuff
- Cleanup some event stuff
- Avoid dirtying entity unnecessarily
- Add ActionGrant as an easy way to apply / remove actions via compregistry.
* Fix merge
I know UI generallys want to do stuff on key-up not key-down. With that being said the delay on release for these is noticeable.
e.g.
ActivateInWorld / UseInHand / any in-world interactions are on-press. This is especially noticeable if you have the same event on action + verb.
* ItemToggle + slots stuff
- Add component for itemslot locks to match LockComponent (surprised this didn't exist).
- Add thing for pointlight to match itemtoggle. In future should be used for PDAs and stuff but need to fix some other stuff first.
* Also this
* grill
* Power stuff
- Add shared IsPowered
- Add shared ResolveApc
- Move PowerChangedEvent to shared for now
- Add SlimPoweredLight that actually functions how you'd expect a PoweredLight to function it id didn't have a bunch of bloat on it.
* big update
* boing
* remove ItemToggle from PowerCellDraw query
* add EntityQuery for resolves, make them all optional
* move integration to ToggleCellDraw
* add ToggleCellDraw to almost every PowerCellDraw prototype
* :trollface:
* :trollface:
* :trollface:
* let it disable on mapinit
* set update time on mapinit, make borg power logic consistent now
* :trollface:
---------
Co-authored-by: deltanedas <@deltanedas:kde.org>
Applies EntProtoId changes upon insertion / removal from container. Can also be useful for borgs / mechs / vehicles in future but atm I just used it for AI.
This re-introduces the dummy entity naming code, originally introduced in #29178 and randomly removed by #30064 with no technical justification given.
Fixes#31373
* Remove client state from server AirAlarmComponent
Send information for all connected devices, not just the ones for the
current tab, as attempting to limit this breaks multiple users viewing
the same UI.
Fixes#12842
* Send device data as a list, rather than a dictionary
---------
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
* Added codeword highlighting
* Updated to support more codeword roles, color is set serverside
* Review feedback
* Change to a Component-based system using SessionSpecific
* Tidied up CanGetState, set Access restrictions on component
* Clean-up
* Makes the injection ignore brackets, restore some codewords, remove "Taste/Touch" from adjectives
* Start work on PostgresNotificationManager
Implement initial version of init and listening code
* Finish implementing PostgresNotificationManager
Implement ban insert trigger
* Implement ignoring notifications if the ban was from the same server
* Address reviews
* Fixes and refactorings
Fix typo in migration SQL
Pull new code in BanManager out into its own partial file.
Unify logic to kick somebody with that when a new ban is placed directly on the server.
New bans are now checked against all parameters (IP, HWID) instead of just user ID.
Extracted SQLite ban matching code into a new class so that it can mostly be re-used by the ban notification code. No copy-paste here.
Database notifications are now not implicitly sent to the main thread, this means basic checks will happen in the thread pool beforehand.
Bans without user ID are now sent to servers. Bans are rate limited to avoid undue work from mass ban imports, beyond the rate limit they are dropped.
Improved error handling and logging for the whole system.
Matching bans against connected players requires knowing their ban exemption flags. These are now cached when the player connects.
ServerBanDef now has exemption flags, again to allow matching full ban details for ban notifications.
Made database notifications a proper struct type to reduce copy pasting a tuple.
Remove copy pasted connection string building code by just... passing the string into the constructor.
Add lock around _notificationHandlers just in case.
Fixed postgres connection wait not being called in a loop and therefore spamming LISTEN commands for every received notification.
Added more error handling and logging to notification listener.
Removed some copy pasting from SQLite database layer too while I was at it because god forbid we expect anybody else to do all the work in this project.
Sorry Julian
---------
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* Copy button for connection messages on failed connections and ban hit attempts
* loc
* better sepperation layout
* consistent styling.
* Fix loc var name
* Reconnect button back.
* Move clipboard dependency out to the params.
* open buttons so they look a bit better.
* Add failure logging to DiscordWebhook.cs
Add a new function that logs errors with discord webhook's http requests.
Create, Delete, and Edit functions were modified slightly to call the log function but return the same information as before.
The log function logs the error code, caller method using a simple constant (could be better), and attempts to log headers mentioned in issue #30248.
* remove extra ';'
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Move header error logs to debug
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
* moth displacement + inventory tweaks
* Fix off by 1 on the head sprites
* Move files to main mothroach folder
* Fix mask up a bit
* Fix side mask sprites
* Change format because it changed forever ago
* Finally, people can learn what the Broadcast button does!
* Also add for Alert level
* Add alert level and shuttle button tooltips
* Fix dumdum, tweak Broadcast tooltip
Issue was tools was predicted but wires aren't so this would exclude user from audio.
For now we just do the non-predicted version and I or someone else will fully predict wires later.
$"Tried to play lobby soundtrack '{{Filename}}' using {nameof(SharedAudioSystem)}.{nameof(SharedAudioSystem.PlayGlobal)} but it returned default value of EntityUid!",
@@ -234,7 +233,7 @@ public sealed partial class ContentAudioSystem
@@ -30,7 +30,7 @@ public sealed class ClientClothingSystem : ClothingSystem
/// For some context, im currently refactoring inventory. Part of that is slots not being indexed by a massive enum anymore, but by strings.
/// Problem here: Every rsi-state is using the old enum-names in their state. I already used the new inventoryslots ALOT. tldr: its this or another week of renaming files.
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.