Add toggleable GM powers command#79
Draft
joshlit wants to merge 1 commit into
Draft
Conversation
joshlit
force-pushed
the
codex/gm-powers-command
branch
3 times, most recently
from
July 14, 2026 15:31
5e8f420 to
2b97479
Compare
joshlit
force-pushed
the
codex/gm-powers-command
branch
from
July 14, 2026 15:55
2b97479 to
3fde767
Compare
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
/powerscommand with toggles for god mode, outgoing damage boost, and attackabilityGameLiving.TakeDamagewithout changing playerEffectivenessGMPowerscontract exposed throughplayer.GMPowersPlayerGMPowersandGMPowersFacadeimplementations so the shared null object has only false/default getters and no-op settersWhy
Staff need a convenient, session-scoped way to test combat interactions without manually changing account state or multiple unrelated settings.
GamePlayergains only one nullable backing field; itsGMPowersfacade safely returns the stateless null-object implementation until a power is enabled. Damage boost uses dedicated power state rather thanEffectiveness, so resurrection illness, weapon skill, concentration, buffs, and other effectiveness-based systems remain untouched.Impact
The powers are available only to GM-level accounts and are not persisted across sessions. A real per-player state object is created only when needed, and the backing field returns to null when no powers remain. Existing GM protection remains unchanged unless
/powers attackableis explicitly enabled.Validation
OpenDAoC/masterdotnet restore GameServer/GameServer.csprojdotnet build GameServer/GameServer.csproj --no-restore --nologo -v:minimal