* idk no longer shrugs
* accidentally had this in here!
* this was accidentally in here too!
* fucked up the removal
* fucked it up again this should HOPEFULLY be the last one
turns out it's hard to revert the edit of a file that's just numbers and spaces who woulda thunk?
* Restore SpaceStation14.sln to master
* Restore development.toml
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* 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
* Properly cache regexes in chat sanitization/accents
Wow I wonder if `new Regex()` has a cost to it *looks at server profile*.
* Avoid lag caused by Tippy command completions
CompletionHelper.PrototypeIDs explicitly says *not* to use it with EntityPrototype. Unsurprisingly, reporting a completion result for every entity prototype in the game is a *bad idea*.
* Add active count metrics to some high-load systems
Mover & NPCs
I suspect the thing that caused the Leviathan round to shit itself on performance is NPC spam in space or something. So let's verify that.
* Enable parallel processing on pow3r again
Originally disabled due to a theory of it causing bugs, it was re-enabled on Vulture, and I'm not aware of it having caused any issues there.
* Replace hashset with bitflags for AtmosMonitor alert types.
Allocating these hashsets was like 20% of the CPU of atmos, somehow.
* Cache HashSet used for space movement collider checks
Turns out this was a ton of server allocations. Huh.
* Component for clothes to suppress scream noise
GaggedComponent + AddGaggedClothingComponent and relevant systems to make them work.
Currently only stifles the scream _action_, not all emotes
because if a mime can silently emote, so can gagged you!
* fix comments
* swap to inventory relay
and make it more general such that specific emotes or emotes of a given category can be blocked
* power gloves shouldn't block snapping
* easy fixes
* blockable emote event
* pr comments, switch to using emote event mostly
* pr comments
add beforeEmoteEvent
add emote blocker name to popup
maybe some other stuff, I forget
* get rid of emoteevent's source because I don't need it anymore
* smol clean
* formatting, style, and one minor thing where having a muzzle in your pocket would gag you
* checkpoint
* pt 2
* pt... i forgot
* pt 4
* patch
* More test fixes
* optimization!!!
* the REAL hand system
* fix RetractableItemActionSystem.cs oversight
* the review
* test
* remove test usage of body prototype
* Update Content.IntegrationTests/Tests/Interaction/InteractionTest.cs
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* hellcode
* hellcode 2
* Minor cleanup
* test
* Chasing the last of the bugs
* changes
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* Add basic discord client integration with ooc and admin chat support
* Use username instead of global name
WHY IS GLOBAL NAME NOT JUST THE USERNAME??? WHY ARE THERE NO DOC COMMENTS???
* stuff
* Reviews, methinks.
* Reviews
* reviews
* Extracts magic strings from Tag calls
When #36281 gets merged, the `TagSystem` methods will all give warnings. Let's fix those warnings before they even happen!
* Adds missing libraries
* Remove not yet implemented TagSystem changes
* Fix tag spelling error
Genuinely surprised there was only 1!
* Styling and proper type changes
* Styling
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
---------
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
* round end monolith system
* disable default evac
* auto close demiplanes, and block its opening when no monolith mana
* Update CP14RoundEndSystem.cs
* enable default evac code (its disabled viaa cvar)
* apply brainstorm monolith changes
* comoss update