-
Notifications
You must be signed in to change notification settings - Fork 193
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Psionic Refactor Version 3 Part 1 (#1383)
# Description They say Rome wasn't built in a day, well this entire PR was coded in a single 6 hour Adderall binge. This PR represents the next big leap in code capability for the PsionicSystem, completely reworking how Psionic Powers are added and removed, such that like the TraitSystem, they utilize modular functions governing how they work. Instead of there being only 5 different hardcoded things that Psi Powers can do, there is now a library containing 21 different modular functions, which are slotted as desired into the power prototypes. Additionally, a significant improvement in the logical flow of this is that since each power is responsible for its own "removal codepath", it's now possible to remove individual powers from a character, as opposed to always needing to wipe the slate clean entirely. I'm not going to add any new powers in this PR, nor am I touching the code for the Psionic Actions themselves, that'll come in Part 2, in which I refactor the Psionic-Actions so that they also operate on similar stacks of modular functions. This PR also makes extensive refactors to the PsionicPowerPrototype, as well as PsionicAbilitiesSystem, so that it has all new hooks and datafields for other systems to be able to modify a psion. It is now entirely feasible to create unique "Types" of Psions, with their own distinct power lists. It's also now possible to create "Tech Trees" of powers, by setting up powers such that they write to and modify the personalized pool of available powers to generate. For example, Xenoglossy and Psychognomy are now dependent on Telepathy, and simply won't appear in the list of available powers if a Psion doesn't first have Telepathy. # Changelog :cl: - add: Psionic Refactor V3 is here! No new powers are added in this update, but the options for creating new powers has been SIGNIFICANTLY EXPANDED. - add: Xenoglossy and Psychognomy now can only be rolled if you first have the Telepathy power. - add: Breath of Life can now only be rolled if you first have the Healing Word power - add: Pyrokinesis and Summon Imp now require the Pyroknetic Flare power - add: All new Psychognomy descriptors for many pre-existing powers. Have fun being unintentionally screamed at telepathically by someone with the POWER OVERWHELMING trait.
- Loading branch information
Showing
11 changed files
with
1,516 additions
and
627 deletions.
There are no files selected for viewing
580 changes: 580 additions & 0 deletions
580
Content.Server/Abilities/Psionics/PsionicAbilitiesSystem.Functions.cs
Large diffs are not rendered by default.
Oops, something went wrong.
634 changes: 260 additions & 374 deletions
634
Content.Server/Abilities/Psionics/PsionicAbilitiesSystem.cs
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.