Skip to content

We've had first powers PR, what about second powers PR? (Mostly housekeeping systems with 4 new powers)#1136

Open
TheOneAndOnlyCreeperJoe wants to merge 38 commits into
DopplerShift13:masterfrom
TheOneAndOnlyCreeperJoe:new_powers_ui
Open

We've had first powers PR, what about second powers PR? (Mostly housekeeping systems with 4 new powers)#1136
TheOneAndOnlyCreeperJoe wants to merge 38 commits into
DopplerShift13:masterfrom
TheOneAndOnlyCreeperJoe:new_powers_ui

Conversation

@TheOneAndOnlyCreeperJoe

@TheOneAndOnlyCreeperJoe TheOneAndOnlyCreeperJoe commented Jul 10, 2026

Copy link
Copy Markdown

About The Pull Request

Powers is in and there are a few things that need attention still. The UI is catastrophic, there are some underlying faults that I do not want to have blossom in a "its just how we do things", and in general I want powers to be left in a state where the fundamentals are good enough to just not need to touch again.

So we did the following:

  • The UI has been overhauled to a much, cleaner and sleeker look. The front-end now has cool, stylized buttons, each of which redirects to a general page that all the powers re-use with their own style added, or to the special "Your Powers" page which renders all of your personal powers. Adds a whole bunch of new images used by this UI, which basically have a pure-white non-aliased aesthetic (and should be easy to mimmick in the future). This UI also displays icons of powers, and powers are now able to be assigned menu_icon and menu_icon_state to pass these along in case they don't have an action_path to draw from (or if overriding is necessary).
  • The middleware has been overhauled to use constant data. I am going to proclaim that I am not entirely sure if I did it 100% right but as far as I gleamed we have minimized the data we communicate by a large measure. The only non-constant data being communicated is augmented's snowflaking with arm augments.
  • Powers now have bitflags that determine their magic types. This is displayed in icons next to the learn button and informs someone if their power is magical (and detectable to things that detect magic) and that it may be prone to anti-magics of that type, as well as dispels.
  • Powers now have designated color defines and most powers that used these colors (or adjacent ones) now use these defines. The new UIs also use these defines (except not really cause TGUI can't read them so instead we just hardcode them in a cofig file) and they have gotten new background icons that match these colors.
  • Aberrant is now split into twain: Aberrant and Imbued. Aberrant is now squarely the physical body transformations/changes subtype. Meanwhile Imbued now inherits anomalous and is the definitive "you passively are magical/supernatural and are basically a SCP" genre. This makes aberrant no longer a kitchen-sink. Aberrant also now has its hunger mechanics standardized.
  • Imbued in addition to inheriting anomalous now has Enchanted. It has you positively interact with other magic systems such as reducing cooldowns, allows you to detect other magic users and has a gimmicky "anything you throw returns to you" power. Summoned has also been moved here. More specifically:
    • Enchanted: Makes cooldown pass 20% faster, cool effect for root. Only affects magical powers and spells (as in the type)
    • Alcohol is Mana: Makes the above enchanted up to 500% better depending on how drunk you are. This is specifically the degree of drunkenness, not how much alcohol is in your bloodstream.
    • Returning Throws: Anything you throw will not only return to you but seek you out. Throw behavior is othrewise unchanged, so it can be caught, embedded or get stuck.
    • Magic Sight: Can be activated to show an aura around mobs that confirms if they are magical or not (either have magical powers or can cast spells). If you share at least 1 powers path, they appear in a different color instead. No visual tell except your eyes temporarily changing color.
  • Irregular is added to Mortal. False Power and Hidden Power have been moved there and is reserved for a category of "neat advantages that aren't people being powerful". This path ignores the 2-path restriction.
  • Fixes a few leftover bugs such as Deflect going on cooldown too early and Presti being unclicked after use.
  • Some balance stuff: Inexorable is now a power instead of being part of genemodded due to the philosophy of no strong power in quirks. Deflect has been made less conservative power wise.

Why It's Good For The Game

Fundamentals! These are most of the common issues received as either feedback or that I have personally observed and have moved to address before our current system became increasingly reliant on them:

  • The UI was just plain terrible. Everyone agrees; its the old language menu which is even bad for languages!
  • The middleware was bad as it communicated too much info with every change. Whenever you learn or forgot anything it basically acquired and send any and all powers data fresh, which was bad. This basically only sends constant data, and in fact only relevant constant data, helping optimization a ton.
  • Power bitflags opens up more design options since we now definitively know what powers are magical (as opposed it being only able to be arbitrarily infered by a power's action having the resonant trait) and what type of magic.
  • Power colors is just cool consistent styling.
  • Aberrant being a kitchen-sink was a thematic failure that came from early development. With fun ideas such as "being able to be summoned by saying X" or "being immune to magic" needing a home, this became that home, even if it was stretching the flavor definition. With this, Aberrant has its own more squarely rooted theme of resonant-induced physical mutation.
  • Meanwhile Imbued has a stand-alone identity of people infused and acting magical/supernatural. Whilst this is technically the "new" miscellaneous section, it has an identity strong enough that it doesn't feel out of place. The new powers that came with Enchanted are there to give a starting foot in the door for the theme and help set guides on what we want in there.
  • Irregular is based off of common feedback that the security record powers would be really neat to have available without the path restriction. Irregular ignores the 2-path restriction, and its sole goal is to faciliate these generalist 'situations/powers' that don't belong in quirks and still warrant a power cost, with the idea that they are only belonging there if they enhance roleplay/character building options and don't belong elsewhere.

Testing Evidence

Screenshots!
image
image
image
image
image

Changelog

🆑TheOneAndOnlyCreeperJoe
add: New UI for Powers that actually looks robust!
add: Powers now have color defines; in essence consistent color associations. This is reflected in the UI and the action button colors.
add: Added Imbued under Resonant! It is now the home of Anomalous and Enchanted. Flavored around being inherently magical or supernatural, this category has a myriad of ways to interact with existing magic systems and act quirky at the same time.
add: Added Irregular under Mortal! It is now the home of False- and Hidden Power. The path is meant for niché powers that don't justify being secluded to a specific path. Irregular ignores the 2 path restriction
del: Powers can no longer be used when their user is in inside containers (mechs, closets, etc).
balance: Anomalous has been split away from Aberrant into the new Imbued path.
balance: Deflect has less conservative upkeep and stamina costs.
balance: Inexorable has been moved away from Quirks and into Aberrant (Monstrous). Costs 5 points.
balance: Telekinesis can no longer levitate mechs.
balance: Species with TRAIT_NOHUNGER (Hemophage, Holosynth) also get a 35% slower bleed-out rate to offset the fact that they do not regenerate blood.
refactor: Backend middleware was improved for Powers, no longer sending unnecessary amounts of data.
refactor: Powers now store the type of magic they do which can be exploited by various other powers.
refactor: Power actions now inherit their antimagic flags from power's magic flags. Can still be overriden per usual.
fix: Fixes the mental shielding implant to not consume quality when hit with magic that has 0 charge_cost
fix: Fixed a bug where the cultivator UI usurped the theologist UI if it was added after the theologist UI.
fix: Reality Anchors now check off of archetype instead of path for moodlets, future-proofing them.
fix: Deflect now only goes on cooldown after deactivation, not on activation. Respects the incapacitate var.
fix: Prestidigitation is no longer unselected after use.
fix: Martial Artist now lists its numerical value.
fix: Riftwalker sometimes did not show rifts to a mob until they logged out and back in again.
fix: Durathread robes now are properly included in the affinity file and thaumaturgic supplies.

/:cl:

@github-actions github-actions Bot added Sprites Funny little pixels on our screen UI Refactor large sweeping fixes Fix Pest removal; Bugs Feature Something new, something fresh. Balance Keeps the game fair for all. labels Jul 10, 2026

@00-Steven 00-Steven left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

only looked down to radiosynthesis so far

Comment thread code/__DEFINES/~doppler_defines/powers.dm Outdated
Comment thread code/__DEFINES/~doppler_defines/powers.dm Outdated
Comment thread code/__DEFINES/~doppler_defines/powers.dm Outdated
Comment thread code/__DEFINES/~doppler_defines/powers.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers/resonant/aberrant/healing_factor.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers/resonant/imbued/mage_sight.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers/resonant/imbued/mage_sight.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers/resonant/imbued/radiosynthesis.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers/resonant/imbued/radiosynthesis.dm Outdated
…r to enable magic deflection (thanks Dawson). Inexorable has been moved to aberrant.
@github-actions github-actions Bot requested a review from 00-Steven July 11, 2026 06:50
TheOneAndOnlyCreeperJoe added 5 commits July 11, 2026 09:30
…ng added/removed. Enchanted now scales based upon amount of magical powers; caches value for optimization using the new signalers.
…. Tripwire webs finally got over its identity crisis and is in fact now magic.

Removed weird left-over can_use duplication in web crafter.
Comment thread modular_doppler/modular_powers/code/powers/resonant/aberrant/_aberrant_action.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers_prefs_middleware.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers_prefs_middleware.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers_prefs_middleware.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers_prefs_middleware.dm Outdated
Comment thread modular_doppler/modular_powers/code/powers_subsystem.dm Outdated
Comment thread tgui/packages/tgui/interfaces/PreferencesMenu/PowerPathConfig.ts Outdated
Comment thread tgui/packages/tgui/interfaces/PreferencesMenu/PowerPathConfig.ts Outdated
Comment thread modular_doppler/modular_powers/code/powers_prefs_middleware.dm Outdated
@github-actions github-actions Bot requested a review from 00-Steven July 11, 2026 20:08
TheOneAndOnlyCreeperJoe added 13 commits July 12, 2026 00:10
…s dynamically, powers now have datums that define all the metadata aspects of them on DM side. Adds an icon for enigmatist.
…ers) and deliberately named it root_badge_icon
…their own (but can still override on their end). Fixes another linter bug.
…s now has a blacklist function and has mechs inside of it. Fixed a bug with riftwalker that made it that late-joiners could sometimes not see them.
…re using stuff inside lockers). Monstrous root now properly scales its blood regen off of satiety and gives a different benefit to mobs that can't benefit from this.
@github-actions github-actions Bot added the Removal Goodbye label Jul 14, 2026
TheOneAndOnlyCreeperJoe added 2 commits July 14, 2026 20:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Balance Keeps the game fair for all. Feature Something new, something fresh. Fix Pest removal; Bugs Refactor large sweeping fixes Removal Goodbye Sprites Funny little pixels on our screen UI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants