* 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>
* move all the radio components and system to Shared.
* duh split impl
* address reviews
* cleanup
---------
Co-authored-by: walksanatora <walkerffo22@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>
* Revert "Disable vulpkanin human hair (#40144)"
This reverts commit d02aa1a4e2.
* You can once again shave your pet Vulp
* I can see the ass, I'm safe
* Rectified docstring as I am a good person
* I am doing this instead of playing Silksong please help
* Fix forgetting to re-add shader overriding
* 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>
This prevents the volume and temperature labels from changing width when the value lands on integer values, making the text easier to read.
Co-authored-by: opl <4833621+opl@users.noreply.github.com>
* base identity hide
* ui
* Better UI
* store data in Mind
* disable arrivals an leave announcement
* tips updated
* Enhance identity recognition and examination feedback
Added logic to display remembered character names during examination and improved the process for remembering character names on map initialization. Also updated localization files to include new examination feedback strings. Minor refactoring and bug fixes in identity recognition systems.
* Update CP14SharedIdentityRecognitionSystem.cs
* fix
* Refactor pacified block logic to action system
Moved pacified block functionality from magic spell components to the new CP14ActionSystem and related components. Removed CP14MagicEffectPacifiedBlockComponent and its logic, and introduced CP14ActionDangerousComponent for handling pacified checks. Updated examine and checks logic to use the new action-based components, improving separation of concerns between magic and action systems.
* finish pacified
* mobtargetstate refactor
* skillpoint cost refactor
* somaticAspect refactor
* material cost refactor
* mana cost now
* stamina cost
* SSD + verbal aspect
* religion
* music tool refactor
* vampire
* get rid of this event
* manacost refac
* Remove magicType field from spell definitions
Eliminated the 'magicType' property from all CP14MagicEffect components in spell YAML files across Electric, Fire, Life, Light, and Water categories. This streamlines spell configuration and may reflect a change in how magic types are handled in the system.
* Remove mana cost reduction effects from skill tiers
Eliminated the ModifyManacost effects from tier 2 and tier 3 skills in electromancy, healing, hydrosophistry, illusion, and pyrokinetic. This change standardizes skill progression and may be part of a balance update to mana cost mechanics.
* comment out T3 tiers
* namespace refactor
* fix hands
* Add respawn action for ghosts with confirmation popup
Introduces a new respawn action for ghosts, allowing them to return to the lobby and respawn as a new character. Adds supporting systems, localization, prototype definitions, and an icon for the action. The action includes a confirmation popup to prevent accidental use.
* Prevent respawning with the same character in a round
Introduces a system to block players from rejoining a round with a character that has already died, notifying them with a localized message. Refactors and moves respawn-related localization strings to new files for both English and Russian.
* Prevent admins from character reuse restriction
Added a check in CP14RespawnSystem to allow admins to bypass the restriction that prevents the same character from re-entering the round. This ensures that admin users are not limited by the character reuse logic.
* Adjust vampire features and add construction category
Increased vampire skill points from 1 to 3 and removed SendOnlyToOwner override. Updated power punch spell: removed cast slowdown, increased paralyze durations, and raised cooldown. Added new construction category for vampires with English and Russian localization, and updated vampire construction recipes to use this category. Reduced furnace recipe craft times from 4 to 1. Cleaned up unused usings in vampire components.
* Improve vampire skill popups and clan heart features
Added missing popup when no essence is left to gather and improved popup handling for skill point changes. Updated localization for clan progress and essence messages, added WarpPoint to vampire clan heart, and adjusted vampire skill tree structure and UI positions.
* Add vampire hypnosis skill and rebalance vampire content
Introduces the Hypnosys vampire skill and associated spell, including new status effects and alerts for forced sleep. Adjusts vampire skill tree progression, rebalances bite spell effects, modifies construction recipes to use stone instead of iron, and updates entity drop behaviors. Also tweaks skill point defaults and hunger/thirst effect order for plant growth spells.
* Adjust hunger settings and map spawner modifiers
Removed baseDecayRate and starvationDamage from Hunger components for NightChildrens, Devourers, and Unnameable in subgamemodes.yml. Updated comoss.yml and venicialis.yml to replace or add spawner modifiers, introducing Boar and Rabbits while removing EnemyFlem, MonsterMosquito, and MobSlimeIce.
* Add SSD block to magic system and vampire bite spell
Introduced CP14MagicEffectSSDBlockComponent to prevent magic use on SSD (disconnected) players. Updated the magic system to check for SSD status and added localization strings for SSD block messages in English and Russian. Applied the SSD block effect to the vampire bite spell. Also fixed a typo in the PacifiedBlockComponent filename.
* Make blood reagents unrecognizable and adjust effects
Set all blood reagent variants to 'recognizable: false' to prevent easy identification. Simplified and unified damage effects for blood reagents, removing some specific reactions and adjusting damage groups, particularly for vampire-related blood types. Also fixed a duplicate 'allowedStates' key in the vampire bite spell action.
* Enable map initialization and clean up power punch spell
Changed map creation in Demiplane and CrashToWildlands systems to run map initialization by setting runMapInit to true. Removed redundant map initialization check in CP14SpawnProceduralLocationJob. Also removed the CP14ActionSpellVampirePower2 entity from the vampire power punch spell prototype.