* Fix usages of TryIndex()
Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)
This then resulted in TryIndex() getting modified to log errors (94f98073b0), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)
This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.
Fixes#39115
Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.
* fix tests
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* vampire returns + transformstions redo
* carcat fangs fix + greetings music update
* vampire skill trees
* Blood essence gathering
Introduces the vampire blood essence mechanic, including the CP14SpellVampireGatherEssence spell, new skill point consumable component, and related UI/localization updates. Adds clientside effects for spell casting, new vampire skill and action, and refines skill point gain/loss popups. Also restructures vampire components, updates spell logic for client/server prediction, and removes unused parallax files.
* perma damage
* Add skill point cost to magic system and vampire essence spell
Introduced CP14MagicEffectSkillPointCostComponent to allow magic effects to consume skill points. Updated the shared magic system to handle skill point checks and consumption. Added a new vampire spell for creating blood essence, including new icons and localization. Adjusted vampire component to grant and remove skill points, and updated related skill tree and spell prototypes. Minor fixes and refactoring in spell logic and descriptions.
* blood step + blood vision skills
* vampire clans icons
* 50 players limit + vampire objectives
* fixes
* devourers altar transmutation
* Remove StealTarget component from animal, dino, and mole NPCs
The StealTarget component and associated stealGroup were removed from boar, dinosaur, and mole NPC definitions. This likely disables these entities from being targeted for stealing, possibly to adjust gameplay balance or fix unintended behavior.
* fix
* essence creation improve
* altars
* voice masks
* transmutation fix
* teleportation glyph
* crimson candles
* candle crafting
* fix pointer predictions
* Add Vampire Clan Battle gamemode and update vampire roles
Introduces the 'Vampire Clan Battle' gamemode with new localization in English and Russian, updated game preset definitions, and secret weights. Refactors vampire antagonist briefings and objectives for multiple clans, adjusts vampire role preferences and team settings, and reduces the damage of the Vampire Gather Essence spell. Also includes minor improvements to spell and game mode descriptions, and corrects file naming for game preset locales.
* powerful kicks in
* time gates + vampire tree
* vampire proto faction
* fix
* fixes
* tree progression
* search enemy
* Update CP14SharedVampireSystem.cs
* blood essence gathering redo
* essence gathering refactor 2
* blood healing
* Update secret_weights.yml
* tree planting
* boodgrass
* tree upgrade announcement
* construction graph integration
* delete transmutation system
* workbench crafting returns
* cloaks crafting + cloak invisibility
* make vampire tree is generic red tree (sad)
* clan heart sprite
* Refactor vampire tree to clan heart system
Replaces the CP14VampireTreeComponent with CP14VampireClanHeartComponent, updating all related logic, appearance, and localization. Adjusts skill requirements, examination, and level progression to use the new clan heart system. Updates entity prototypes, visuals, and adds new orb sprites for clan heart levels. Localization strings and logic are updated to reflect the new terminology and mechanics.
* Update SpeciesBlacklist.cs
* Refactor vampire clan heart and remove tree spell
Refactored the vampire clan heart to support essence regeneration over time and adjusted level thresholds. Removed the vampire tree planting spell and related prototype fields, as well as unused tree system code. Updated localization, entity prototypes, and faction definitions to reflect these changes.
* Add clan heart construction for vampire clans
Introduces construction graphs, entities, and conditions for building unique clan hearts for each vampire clan (Unnameable, Devourers, NightChildrens). Adds new construction conditions (all clan vampires required, singleton enforcement), updates skill tree to unlock constructions, and removes the now-obsolete CP14MagicEffectAllVampireClanRequiredComponent. Also adds new frame sprites and updates localization and prototype files accordingly.
* level up vfx
* VFX + lobby track
* orb resprite
* sprites
* Add vampire altar mechanics and improve clan heart behavior
Introduces the CP14VampireAltarComponent and altar entity, which doubles blood essence extraction when victims are strapped to the altar. Adds a custom explosion behavior for vampire clan hearts upon destruction, updates construction graphs and recipes for altars, and improves localization. Also refines skill description handling and adjusts vampire bite action text.
* essence get when heart destruction
* Add clan heart damage and destruction announcements
Introduces announcements for when a vampire clan heart is damaged or destroyed, with cooldown to prevent spam. Refactors examination logic and updates localization files for both English and Russian to support new messages and sender formatting.
* glyph adaptation
* resurrection
* Add round end summary for Vampire Clan Battles
Implemented detailed round end text for the Vampire Clan Battles game mode, displaying victory, defeat, or draw outcomes based on surviving factions and population percentage. Refactored alive player percentage logic into a shared method and updated localization files with new outcome messages in English and Russian. Also removed an unused field from the defence condition component.
* Update vampire_cloak.yml
* fix
* fix
* Update portal_glyph.yml
* make hover and info use construction proto name, not entity name
* recipeButtons uses IDs as keys, not names
* return making item green when selected
* Persist construction menu favorites to player profile
* Use `ProtoId`s for construction favorites
* Validate construction favorites updates from the client
* Actually await the async database call
* Now the name of the target craft items is taken directly from the prototypes
* Deleting unnecessary fields
* Deleting unnecessary fields
* Added suffix field
* Added override via localization keys
* My favorite ItemList and TextureRect have been replaced with ListContainer and EntityPrototypeView
* Fix suffix
* Fix construction ghosts... maybe
* Remove suffix from UI
* Suffixes have been removed from prototypes
* Added a description for the secret door
* Fix search..?
* The Icon field of ConstructionPrototype has been removed
* StackPrototypes used in the construction menu have been localized
* TagConstructionGraphStep used in the construction menu have been localized
* The search bar has been localized
* Fix localization and prototypes
* Recipes are now only loaded when the crafting window is opened.
* Fix crooked merge grid of the crafting menu.
* Localization update
* Fix cyborg graph
* Revert "Recipes are now only loaded when the crafting window is opened."
This reverts commit 97749483542c2d6272bda16edf49612c69a0761a.
* Fix loc
* fix merge
* Fix upstream
* Some of the logic has been moved to Shared
* fix
* Small adjustments
* Very small change
---------
Co-authored-by: EmoGarbage404 <retron404@gmail.com>
* 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 some BUI boilerplate
- The disposals overrides got removed due to the helper method handling it.
- Replace window creation with CreateWindow helper.
- Fixed some stinky code which would cause exceptions.
* More
* moar
* weh
* done
* More BUIs
* More updates
* weh
* moar
* look who it is
* weh
* merge
* weh
* fixes
* Added fovarite button
* Some fixes in xaml
* added some events for favorite recipes
* set methods for presenter
* fixes for presenter
* added translates
* reset seach when you select any category
* added some margins
* some fixes from compared
* fixed PR notes about arrays
* deleted controls & margins
* did simpleer with arrays
* review
---------
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
* Revert "Buff the AME until somebody fixes engineering" (#28419)
* Automatic changelog update
* hand teleport portals now may start in the same grid. (#28556)
* Microwave recipes now uses stacktype id instead of entity prototype id for stacked entities (#28225)
* Automatic changelog update
* Add "fill level" sprites to mops and damp rag (#28590)
* Automatic changelog update
* Reword some criminal records text (#28597)
* Update criminal-records.ftl
* Update criminal-records.ftl
* Update criminal-records.ftl
* Remove obsolete VisibilitySystem functions (#28610)
Remove obsolete visibility functions
Co-authored-by: plykiya <plykiya@protonmail.com>
* Prayable datafield typo (#28622)
* notifiactionPrefix -> notificationPrefix
* notifiactionPrefix -> notificationPrefix
* Update engine to v224.1.0 (#28624)
* Use dummy sessions in NukeOpsTest (#28549)
* Add dummy sessions
* Update NukeOpsTest
* Fix PvsBenchmark
* Update engine to v224.1.1 (#28632)
* Add Job preference tests (#28625)
* Misc Job related changes
* Add JobTest
* A
* Aa
* Lets not confuse the yaml linter
* fixes
* a
* Add logs that provide session to player admin logs (#28628)
* Cluster Update (#28627)
done here
* Automatic changelog update
* minor banner changes (#28636)
* minor banner changes
* Uhrmm actchually it's you're, not your
* Update banners.yml
props Hyenh
* Revenant spell catalog locale (#28638)
locale
* Make cuff default range again (#28576)
* Make cuff default range again
* uncuff distance
* how about ONE
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* Automatic changelog update
* Machine-code cleanup (#28489)
* Make Projectiles Only Hit a Variety of Station Objects Unless Clicked on (#28571)
* Automatic changelog update
* Fix Smoke-grenade.ogg not being mono (#28593)
* Fix Cigars Sprites + YAML fix for Inhand unlit cigars/cigs (#28641)
* Automatic changelog update
* Clean up Eva and Hardsuit helm yml + Lets atmos firesuit helm work as a BreathMask (#28602)
* Shifts borgs hats to the right a bit (#28600)
* Fix mouse inhands (#28623)
* Adjust some touch reaction damage levels (#28591)
* Automatic changelog update
* Add closing storage UIs to StorageInteractionTest (#28633)
* Update rules (#28452)
* Add support for LocalizedDatasets to RandomMetadata (#28601)
* Fix Admin Object tab sorting and search (#28609)
* Automatic changelog update
* Internals are kept on as long as any breathing tool is on (#28595)
* Automatic changelog update
* Convert rules to use guidebook parsing (#28647)
* Gives Insulation and NoSlip to all bots (#28621)
* Gives Insulation and NoSlip to all bots
* remove NoSlip from children
* Automatic changelog update
* Nerfs welderbombing (#28650)
nerf welderbombing
* Automatic changelog update
* Give jobs & antags prototypes a guide field (#28614)
* Give jobs & antags prototypes a guide field
* A
* space
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Add todo
* Fix merge errors
---------
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
* Automatic changelog update
* Fix typo in Space Law's restricted gear (#28668)
This typo was included in the wiki as well.
Reported-by: Bobberson in the Discord
* Automatic changelog update
* fixed "silicones" typo in new rules (#28671)
fixed all appearances of silicone where it should have been silicon
* fix janitor not spawning with a survival box (#28669)
hi
* Automatic changelog update
* Fix typo in slime naming conventions (#28682)
* Flatpacker fixes (#28417)
* Return medicine recipe solid material costs to 1 (#28679)
Set material costs of medicine recipes to 1
* Automatic changelog update
* Update Core (#28689)
add
* Fixed the guidebook listing every single rule (#28680)
* Well i tried this way
* New approach (start)
* Did it
* makes spacelaw available, put it under sec
* Automatic changelog update
* rule fixes first pass (#28701)
update
* Add JobRequirementOverride prototypes (#28607)
* Add JobRequirementOverride prototypes
* a
* invert if
* Add override that takes in prototypes directly
* Tweak chapel salvage wreck (#28703)
add
* Fixes client having authority over rules popup cvars (#28655)
* Fixes client having authority over rules popup cvars
* Delete duplicate migration
* Pre-update
* Post-update
* Add locale support for booze and soda jugs labels (#28708)
* Swap some InRangeUnobstructed for InRangeUnoccluded (#28706)
Swap InRangeUnobstructed to InRangeUnoccluded
Co-authored-by: plykiya <plykiya@protonmail.com>
* Automatic changelog update
* Ports the singularity's values from vgstation (#28720)
* ports the singularity values from vgstation
* guidebook fix
* 5000 energy level 6 singulo
* Fix action icons when dragging an active action to another slot (#28692)
* Add DoPopup data field to OnUseTimerTrigger (#28691)
* Dropping Corpses Devoured by Space Dragons on Gib/Butcher. (#28709)
* Update DevourSystem.cs
* Update DevourSystem.cs
* Update Content.Server/Devour/DevourSystem.cs
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Automatic changelog update
* Improve grammar of various petting messages (#28715)
Improve grammar of various petting message
* Fix DamageOtherOnHit.OnDoHit when the target is terminating or deleted (#28690)
* Update Core (#28735)
add
* Fix flatpacker (#28736)
* Fix flatpacker
* a
* rn, atp (#28674)
* Update speech-chatsan.ftl
* Update word_replacements.yml
* Atm-at the moment
* Atm
* Update Resources/Locale/en-US/speech/speech-chatsan.ftl
* Update Resources/Prototypes/Accents/word_replacements.yml
---------
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
* Add loadout group check for role proto (#28731)
MFW same bug twice at 2 layers because I'm stupid.
* Automatic changelog update
* Try fix RGBee (#28741)
* Automatic changelog update
* Ensure packager creates a release folder (#28426)
I was screaming at the github actions runner before i noticed something i had done before caused me to never have a release folder and thus fail.
* allow ' in character names (#28652)
* Automatic changelog update
* Make freeze, freeze & mute, and unmute verbs work on disconnected players. (#28664)
* Automatic changelog update
* fix singulo decay (#28743)
* Automatic changelog update
* Don't use invalid defaults for loadouts (#28729)
At the time it made more sense but now with species specific stuff it's better to have nothing.
* Maybe fix invalid loadout prototypes (#28734)
* Maybe fix invalid loadout prototypes
So if we have existing data SetDefault is not normally called iirc. So what I think is happening is that if we have old loadout groups that get saved to DB and loaded these get dropped entirely and nothing is used to replace the group unless the person specifically looks at their loadout.
Need someone affected to send me their loadout to confirm it's fixed.
* Better fix
* Automatic changelog update
* Fix null ref exception in PrayerSystem (#28712)
* Fix null ref exception in PrayerSystem
* Also check that prayable ent/comp still exist
* Guidebook Updates for the Amateur Spessman (#28603)
* Created NewPlayer.xml
* Created NewPlayer.yml and added it to guides.ftl
* shifted some controls from Space Station 14 to New? Start here!, as well as made a character creation xml to be written later
* switched some stuff between the New? entry and the Space Station 14 entry
* Made everything so nice!!!!!!!!!!!!!!
* fixed formatting inconsistencies
* added a How to use this guidebook section
* build correction and guidebook clarification for other servers
* wrote character creation ig probs fo shizzle
* added new terms to the glossary and alphabetized it
* meh this seems important enough to add
* okay no more shitsec bad idea
* I HATED Roleplaying.xml ANYWAY!!!
* I REALLY REALLY HATED IT ACTUALLYLLL
* Moved Controls and Radio into newplayer.yml, making meta.yml and radio.yml obsolete
* Separated the character creation bits that are just cosmetic from the ones that matter
* also put all the related new player xml files in their own folder
* expanded Radio.xml, kinda fixed survival.xml
* removed the line that mighta maybe sorta possibly could encourage self antag
* thought about this randomly but ICK OCK
* talking is no longer a key part of this game
* moves stuff around, a lot of stuff. basically moves everything but the jobs themselves around
* ah probably should make sure this works first also me when i lie on the internet
* don't be such a grammar nukie
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* okay nevermind that's justified
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* prepare. it is coming. the great reorganization...
* yesyes that's all well and goo- THE REORG IS COMING. THE REORG IS COMING. WAKE UP.
* rename that real quick
* step one begins. first, consolidate existing service entries into their own yaml. this makes botany.yml obsolete.
* update shiftandcrew.yml to only have departments as children also fuck it alphabetization
* consolidated salvage into cargo
* made a new entry for command
* gave salvage a home and service an existence
* made some XML files to be filled out later
* quick rename...
* took some stuff from Intro.txt and i think Gameplay.txt and put it in NewPlayer.xml
* The Great Writing about Departments (25XX, black and white)
* added a bunch of links everywhere
* biochemical is no longer a thing
* service formatinaaaaaaa
* shiny...,,,,,,,,, colo(u)rz..,,,,,,,,,,,,,
* let's get that fixed
* second time i made a typo there as well
* we hate fun around here
* grammar?!???/
* various fixes and more linkings
* oops
* wewlad lol!!
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: AJCM <AJCM@tutanota.com>
* Automatic changelog update
* Add suffixes to excap survival boxes (#28755)
Update emergency.yml
* Add Jani lobby background (#28724)
* Add jani lobby background
* Actually make new lobby screen functional
* Fix license
* Automatic changelog update
* Strip markdown from silicon laws before saying them (#28596)
* saltern update (#28773)
Co-authored-by: deltanedas <@deltanedas:kde.org>
* revert Tornado regex
* Update HumanoidCharacterProfile.cs
* Update arenas.yml
* test
* fix locale
* Update options-menu.ftl
* Update species-names.ftl
* Update debug.yml
* aaaaaa
---------
Co-authored-by: Moony <moony@hellomouse.net>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: icekot8 <93311212+icekot8@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: plykiya <plykiya@protonmail.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: Hmeister-real <118129069+Hmeister-real@users.noreply.github.com>
Co-authored-by: lapatison <100279397+lapatison@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: Cojoke <83733158+Cojoke-dot@users.noreply.github.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Co-authored-by: Ps3Moira <113228053+ps3moira@users.noreply.github.com>
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
Co-authored-by: Repo <47093363+Titian3@users.noreply.github.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: Thomas <87614336+Aeshus@users.noreply.github.com>
Co-authored-by: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: AJCM-git <60196617+AJCM-git@users.noreply.github.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Lyndomen <49795619+Lyndomen@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: MerrytheManokit <167581110+MerrytheManokit@users.noreply.github.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: AJCM <AJCM@tutanota.com>
Co-authored-by: Psychpsyo <60073468+Psychpsyo@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
* Replace obsolete whitelist is valid with whitelist system
* Consistency
* Fix logic
* Bork
* I figured out how to get whitelists on the client lol
* test fail
* woops
* HELP ME FUNCTIONS
* Fix errors
* simplify
---------
Co-authored-by: plykiya <plykiya@protonmail.com>
* moved ComputerBoardComponent to Content.Shared
* made flatpacker accept computer boards
* made flatpack system and ui function with computer boards
* fixed it so that flatpacks of computers are correctly coloured to fit their computer board colour
* unhardcoded the computer flatpack assembly cost
* Combined GetFlatpackCreationCost(...) with GetflatpackCreationCostForComputer(...)
* removed code duplication in SharedFlatpackSystem
* removed code duplication from FlatpackCreatorMenu.xaml.cs
* remove code duplication from FlatpackSystem (on the server)
* fixed indentation error
* Flatpacker and flatpacks
* ok that's good enough
* convert solars/AME to flatpacks
* mats, mats, we are the mats
* basic mechanics are DONE
* thing
* final UI
* sloth
* rped jumpscare
* rename