* added generic Entity Effects status effect component
* added Magic Vision Statuseffect component
* renamed visionmask to Visibilitymask and added StatusEffectComponent notice comment
* added two event listeners on MagicVisonStatusEffect applied and removed
* moved changes to server side
* moved Component serverside
* removed Overlay Property
* Added magic vison status effect prototype and applying
* cleaned upnew lines
* added new prototype
* moved Magic vision status effect component to shared again
* fixed applying mask
* cleaned new lines
* Moved to components folder
* marked MagicVisionComponent obsolete and changed protoid name
* Added parent MobStatusEffectBase
* added mana cost to Magical vision spell
* removed unneeded constructor
* Added the system
* added statuseffect eventlistners for applied and removed also removed old event listners
* removed old magic vision component check
* Removed Data field attribute
* added back Data field attribute
* added access atribute
* moved Status effect update to server
* removed shared System moved all to server side
* Update Content.Shared/_CP14/StatusEffect/Components/CP14EntityEffectsStatusEffectComponent.cs
Co-authored-by: Red <96445749+TheShuEd@users.noreply.github.com>
* Fix typo in DataField attribute for Effects list
* Obliterated CP14MagicVisionComponent from existence
* Fix comment capitalization in CP14EntityEffectsStatusEffectComponent
* Fix summary capitalization in CP14EntityEffectsStatusEffectComponent
* Refactor CP14MagicVisionSystem.cs by removing blank lines
Removed unnecessary blank lines for cleaner code.
* Remove status effect event handlers
Removed event subscription and related methods for status effects.
* Remove empty line in OnExamined method
* Added a Spell toggle status effect
* fixed datfields shouldnt be static
* imlpemented status applying in yml
* cleaned white space :3
* changed toggle to has status effect
* fix leftover
* added check for firsttime predict so it doesnt get applied twice
* added getvismaskevent to statuseffect relay
* changed event lisnter to use CP14MagicVisionStatusEffectComponent to prevent future conflicts
* removed unneeded _status property
* added check for if its the last status effect on remove
* added check if Status effect is already present if applied
* changed check to component instead of entity
* changed ent target to player.localEntity
* fix: removed has effect check as it already has the effect when first apllied
* changed event to on player attached
* removed first time predicted check
* changed cooldown to 0.5 seconds
* made Spell mana change effect not save
* added status efect applied event listner back and moved apply and remove overlay to separete methods
* removed replaced action event
* added fix to let nextupdate catch up to CurTime
* fix: status effect not beeing removed when crit or dead
* fix: Action beeing able to be used while dead
* fix: added prediction check to applied back for double apply and remove bug
---------
Co-authored-by: Red <96445749+TheShuEd@users.noreply.github.com>
* DoAfter support for Actions (#38253)
* Adds Action DoAfter Events
* Adds DoAfterArgs fields to DoAfterComp
* Adds a base doafter action
* Adds Attempt action doafter logic
* Adds doafter logic to actions
* Changes Action Attempt Doafter and action doafter to take in Performer and the original use delay. Use delay now triggers when a repeated action is cancelled.
* Readds the TryPerformAction method and readds request perform action into the action doafter events
* Adds a force skip to DoAfter Cancel so we can skip the complete check
* Adds a Delay Reduction field to the comp and to the comp state
* Fixes doafter mispredict, changes doafter comp check to a guard clause, sets delay reduction if it exists.
* Cancels ActionDoAfter if charges is 0
* Serializes Attempt Frequency
* Comment for rework
* Changes todo into a comment
* Moves doafterargs to doafterargscomp
* Adds DoAfterArgs comp to BaseDoAfterAction
* Removes unused trycomp with actionDoAfter
* Replaces DoAfterRepateUseDelay const with timespan.zero
* Removes unused usings
* Makes SharedActionsSystem partial, adds DoAfter partial class to ActionSystem, moves ActionDoAfter logic to the SharedActionsSystem.DoAfter class
* Cleanup and prediction
* Renames OnActionDoAfterAttempt to OnActionDoAfter, moves both to Shared Action DoAfter
* Removes ActionAttemptDoAfterEvent and moves its summaries to ActionDoAfterEvent. Converts OnActionDoAfterAttempt into TryStartActionDoAfter
* Removes Extra check for charges and actiondoafters
* Sloptimization
* Cleanup
* Cleanup
* Adds param descs
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Refactor CP14 action emote and speech handling
Moved emote and speech logic from magic spell components to dedicated CP14 action components and systems. Removed CP14MagicEffectEmotingComponent and related event handling, introducing CP14ActionEmotingComponent and updating event subscriptions. Updated resource consumption and performed logic to use new action-based components. Adjusted affected prototypes and removed obsolete code.
* kicking in
* Refactor athletic spell actions and remove mana cost calc
Reworked dash and sprint spell YAMLs to use modular effect events and updated their action properties. Removed the unused CalculateManacost method from CP14SharedMagicSystem.cs. Also removed the startDelay property from the kick action.
* fix cooldown and resource cost
* casting visuals adapt
* telegraphy adapt
* slowdown adaption
* Remove Lumera and Merkas demigod spells and skills
Deleted all spell and skill prototypes related to the Lumera and Merkas demigods, including their actions, effects, and skill trees. Updated athletic sprint and second wind spells, and refactored portal_to_city spell to use modular effects. Also added a debug category to the admin skill reset verb.
* fuck...
* done
* some refactor hell
* light + lurker process
* meta process
* mobs process
* vampire
* finish
* no clientside
* Update water_creation.yml
* fixes
* Update ice_ghost.yml
* а
* viator review
* fix lurker
---------
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Kitchen spike and sharp system
* Use transform and parent
* A
* Works
* A
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* move all the radio components and system to Shared.
* duh split impl
* address reviews
* cleanup
---------
Co-authored-by: walksanatora <walkerffo22@gmail.com>
* First commit
* CommandImplementation on singletons is die, a la moony
* Fix duplicated thingy because yes
* Prototypes, bugfixes, refactoring oh my
* Remember to actually stage your ftl changes next time, leaf
* 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>
* Title
* Tired
* That shit did nothing goddamn
* Fix for real
* Use og code
* Hmmm borgaer
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* Title
* Tired
* That shit did nothing goddamn
* Fix for real
* Use og code
* Hmmm borgaer
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
* delete all modular content
* clean up
* Update guard.yml
* spear first pass
* Add imperial two-handed sword and update spear
Introduces the imperial two-handed sword with new sprites, prototype, and animations. Refines spear configuration: adjusts damage, animation, and offsets, and updates its sprites and prototype to use a new resource path. Improves melee weapon animation logic for both thrust and slash attacks.
* neck displacement
* Update neck.png
* Update migration.yml
* dagger
* Add sword prototype and refactor melee weapon swing logic
Introduces a new sword entity and associated textures. Refactors melee weapon swing logic by renaming SwingLeft to CPSwingLeft and updating related code. Adjusts animation offsets and rotation values for daggers, spears, and two-handed swords. Moves and updates dagger texture assets to a new directory structure.
* hatchet
* sickle
* Add skimitar sword entity and sprites
Introduced a new 'skimitar' sword entity with description and associated sprite assets, including icon, in-hand, and equipped states. Also updated the imperial sword's name and description for clarity.
* Add rapier weapon and adjust melee weapon balance
Introduced the imperial rapier weapon with associated prototype and textures. Increased the default single-target melee damage modifier to 1.3 and removed per-weapon clickDamageModifier overrides from dagger, spear, sword, and two-handed sword. Also increased sword base damage to 10 for better balance.
* Add iron tool/weapon variants and update wall thresholds
Introduces iron variants for pickaxe, shovel, dagger, rapier, spear, sword, and two-handed sword, including new sprites and YAML prototypes. Adjusts wall and ore vein damage thresholds for destruction and sound triggers. Updates migration.yml to map modular iron weapons to new iron variants and spawns stone blocks on stonebrick wall breakage. Also refactors dagger textures to use an 'iron' directory.
* Refactor ice dagger and adjust blacksmith skills
Replaced CP14IceDagger with CP14WeaponDaggerIce, updating its parent, stats, and components for consistency. Adjusted base dagger damage types. Blacksmith job and related melting skills are now commented out or disabled, reflecting a change in skill progression and job setup.
* Update ice_dagger.yml
* Deprecate sword mastery skills and update melee swing logic
Commented out SwordMastery, RapierMastery, and SkimitarMastery skills and removed their assignment from guard and artisan job prototypes. Renamed CPSwingLeft to SwingLeft in melee weapon code for clarity and updated related logic.
* Remove requiredSkills from anvil and furnace recipes
Eliminated the 'requiredSkills' field from all recipes in Anvil/misc.yml and furnace.yml. This simplifies recipe definitions and removes skill prerequisites for crafting these items.
* Update guard_commander.yml
* Comment out freeLearnedSkills for T1 and T2 skeletons
Disabled the freeLearnedSkills entries, including SwordMastery and SkimitarMastery, in both T1 and T2 DemiplaneAntag skeleton YAML prototypes. This change may be for balancing or testing purposes.
* Update migration.yml
* Update migration.yml
* guidebook
* r
* spear passive + hammer passive
* tool hammer + skimitar refactor
* balance tweak
* kick nerf
* TOWER DEFENCE UPDATE
* default shield refactor
* buckler (only sprites)
* Update migration.yml
* buckler parry
* some fixes
* Update T2.yml
* Update T2.yml
* Update instruments.yml
* Update migration.yml
* M O P
* war axe
* Update migration.yml
* Keen Eye skill
* arrows + bow + loadouts
* Update tools.yml
* trading
* fix
* Update misc.yml
* Update migration.yml
* alert cleanup and API
* I expect update loops to be at the top.
* Address review
* Address review x 2
* Merg my PR
* Fix
* Update Content.Shared/Alert/AlertsSystem.cs
webedit
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
* FIX THAT TEST FAIL!!!!
* Me when I forget to actually give you alerts
* Hammedborgar
---------
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
* Make yaml gas serialization cleaner
* fix exception
* fix validation code
* rudimentary test & permissive loading
* change it a bit
* Test fixes and adjustments
* added secret gamepresets
* cut down on alias
* remove all secret presets
* change the command to allow for a secret argument
* update test
* moved the secret argument after the number of rounds argument
* added completions
* localization and use of CompletionHelper.Booleans
* command now has a option for a decoy preset
* fixed decoy message in the end
* ops
* clean up
* hint 2
* improve localization
---------
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
This PR adds delta-pressure damage. In short, airtight structures can now take damage proportional to the difference in pressures between the sides of the structure.