feat(bloodcult): Add Blood Cult antagonist system from Wega #1

Open
wylab wants to merge 25 commits from feature/blood-cult into master

25 Commits

Author SHA1 Message Date
Codex
7400f60521 Revert: Undo unauthorized prototype and code fixes
Some checks failed
CRLF Check / CRLF Check (pull_request) Successful in 50s
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Successful in 3m21s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 35s
RSI Validator / Validate RSIs (pull_request) Successful in 18s
Map file schema validator / YAML map schema validator (pull_request) Successful in 2m17s
YAML Linter / YAML Linter (pull_request) Successful in 2m52s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 2s
Labels: PR / labeler (pull_request_target) Successful in 33s
Labels: Size / size-label (pull_request_target) Successful in 2s
Build & Test Map Renderer / Build & Test Debug (pull_request) Successful in 1s
Test Packaging / Test Packaging (pull_request) Successful in 32m35s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 48m24s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
Reverting changes made without proper authorization:
- BloodCultRuleSystem.cs
- stone.yml
- roundstart.yml
- coats.yml
- bloodcult.yml

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 19:58:14 +01:00
Codex
0ddec6dc27 fix(wega): Only set SelectedGod if null in BloodCultRuleSystem
Some checks failed
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Successful in 3m12s
CRLF Check / CRLF Check (pull_request) Successful in 19s
Test Packaging / Test Packaging (pull_request) Successful in 5m52s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 34s
RSI Validator / Validate RSIs (pull_request) Successful in 24s
Map file schema validator / YAML map schema validator (pull_request) Successful in 2m7s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 2s
Labels: PR / labeler (pull_request_target) Successful in 33s
Labels: Size / size-label (pull_request_target) Successful in 1s
Build & Test Map Renderer / Build & Test Debug (pull_request) Successful in 1s
YAML Linter / YAML Linter (pull_request) Successful in 12m47s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 42m2s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
The UninitializedSaveTest was failing because OnRuleStartup unconditionally
assigned a random god, overwriting the prototype value. This fix ensures
the random selection only happens when no god is pre-selected.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 17:56:22 +01:00
Codex
fd54b9c6f7 fix(wega): Fix prototype test failures for Blood Cult entities
Some checks failed
CRLF Check / CRLF Check (pull_request) Successful in 55s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 12m17s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 36s
RSI Validator / Validate RSIs (pull_request) Successful in 18s
Map file schema validator / YAML map schema validator (pull_request) Successful in 2m10s
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Successful in 15m29s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 4s
Labels: PR / labeler (pull_request_target) Successful in 59s
Labels: Size / size-label (pull_request_target) Successful in 4s
Build & Test Map Renderer / Build & Test Debug (pull_request) Successful in 3s
YAML Linter / YAML Linter (pull_request) Successful in 3m1s
Test Packaging / Test Packaging (pull_request) Successful in 30m56s
- Add canCollide: false to BaseBloodRune (fixes rune physics)
- Set bodyType: Static on BaseBloodCultStructure, BloodCultConstruct, BloodCultStructurePylon
- Add ContainerContainer with SoulContainer to BloodCultSoulStone
- Add selectedGod: Kharin to BloodCultRule
- Add ContainerContainer to ToggleableClothing items (Postman coat, Cult robes)

Fixes UninitializedSaveTest and TestStaticAnchorPrototypes failures.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 17:35:06 +01:00
Codex
cfc77ba495 fix(wega): Add remaining missing textures from wega fork
Some checks failed
CRLF Check / CRLF Check (pull_request) Successful in 19s
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Successful in 15m43s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 1m6s
Test Packaging / Test Packaging (pull_request) Successful in 5m57s
RSI Validator / Validate RSIs (pull_request) Successful in 23s
Map file schema validator / YAML map schema validator (pull_request) Successful in 2m21s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 2s
Labels: PR / labeler (pull_request_target) Successful in 33s
Labels: Size / size-label (pull_request_target) Successful in 2s
Build & Test Map Renderer / Build & Test Debug (pull_request) Successful in 1s
YAML Linter / YAML Linter (pull_request) Successful in 12m36s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 46m19s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
- cult_bola.rsi (throwable)
- jackboots_blue.rsi (shoes)
- magic.rsi (gun projectiles)
- floorglow.rsi (effects)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 16:13:14 +01:00
Codex
bde8fca1ec fix(wega): Add more missing textures (melee weapons, soft hats)
Some checks failed
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Successful in 15m44s
CRLF Check / CRLF Check (pull_request) Successful in 43s
Test Packaging / Test Packaging (pull_request) Successful in 33m1s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 1m7s
RSI Validator / Validate RSIs (pull_request) Successful in 21s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 53m6s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
Map file schema validator / YAML map schema validator (pull_request) Successful in 10m9s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 4s
Labels: PR / labeler (pull_request_target) Successful in 55s
Labels: Size / size-label (pull_request_target) Successful in 4s
Build & Test Map Renderer / Build & Test Debug (pull_request) Successful in 3s
YAML Linter / YAML Linter (pull_request) Successful in 10m14s
- Objects/Weapons/Melee/*.rsi (blood_blade, magic_hand, etc.)
- Clothing/Head/Soft/postmansoft.rsi

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 10:18:04 +01:00
Codex
8ef558bd68 fix(wega): Add missing clothing textures from wega fork
Some checks failed
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Successful in 15m33s
CRLF Check / CRLF Check (pull_request) Successful in 44s
Test Packaging / Test Packaging (pull_request) Successful in 30m17s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 1m4s
RSI Validator / Validate RSIs (pull_request) Successful in 16s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 52m9s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
Map file schema validator / YAML map schema validator (pull_request) Successful in 11m1s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 4s
Labels: PR / labeler (pull_request_target) Successful in 55s
Labels: Size / size-label (pull_request_target) Successful in 4s
Build & Test Map Renderer / Build & Test Debug (pull_request) Successful in 3s
YAML Linter / YAML Linter (pull_request) Successful in 10m2s
Added RSI textures for:
- Backpacks (blueshield, captain variants, postman)
- Duffels (blueshield, captain variants, postman)
- Satchels (blueshield, postman)
- Jumpsuits/Jumpskirts (blueshield, postman)
- Winter coats, armor, gloves, hats, hoods

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 09:05:24 +01:00
Codex
682c9c4c95 fix(bloodcult): Update prototype YAML for upstream API changes
Some checks failed
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Successful in 3m18s
CRLF Check / CRLF Check (pull_request) Successful in 18s
Test Packaging / Test Packaging (pull_request) Successful in 5m52s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 27s
RSI Validator / Validate RSIs (pull_request) Successful in 7s
Map file schema validator / YAML map schema validator (pull_request) Successful in 2m36s
YAML Linter / YAML Linter (pull_request) Successful in 3m4s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 2s
Labels: PR / labeler (pull_request_target) Successful in 23s
Labels: Size / size-label (pull_request_target) Successful in 2s
Build & Test Map Renderer / Build & Test Debug (pull_request) Successful in 1s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 48m15s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
- bloodMaxVolume + bloodReagents → bloodReferenceSolution
- critThreshold → baseCritThreshold

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 08:07:30 +01:00
Codex
f66b429a8e fix(bloodcult): Update BloodstreamSystem API calls for upstream compatibility
Some checks failed
CRLF Check / CRLF Check (pull_request) Successful in 18s
Test Packaging / Test Packaging (pull_request) Successful in 6m10s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 32s
RSI Validator / Validate RSIs (pull_request) Successful in 8s
Map file schema validator / YAML map schema validator (pull_request) Successful in 2m13s
YAML Linter / YAML Linter (pull_request) Failing after 3m12s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 2s
Labels: PR / labeler (pull_request_target) Successful in 21s
Labels: Size / size-label (pull_request_target) Successful in 1s
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Successful in 15m55s
Build & Test Map Renderer / Build & Test Debug (pull_request) Successful in 1s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 53m17s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
- GetBloodLevelPercentage -> GetBloodLevel (upstream rename)
- BloodReagents -> BloodReferenceSolution (upstream rename)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 07:48:33 +01:00
Codex
94cc054c80 fix(bloodcult): Use BloodReferenceSolution instead of BloodReagents
Some checks failed
CRLF Check / CRLF Check (pull_request) Successful in 22s
Test Packaging / Test Packaging (pull_request) Failing after 2m21s
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 33s
RSI Validator / Validate RSIs (pull_request) Successful in 8s
Map file schema validator / YAML map schema validator (pull_request) Successful in 2m30s
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Failing after 8m22s
Build & Test Map Renderer / Build & Test Debug (pull_request) Has been skipped
YAML Linter / YAML Linter (pull_request) Failing after 2m25s
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 5s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 8m33s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
Labels: Size / size-label (pull_request_target) Successful in 10s
Labels: PR / labeler (pull_request_target) Successful in 25s
Upstream renamed BloodReagents to BloodReferenceSolution in commit 907f013.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 07:43:21 +01:00
3403d7d2b8 fix(bloodcult): Add missing weapon textures from wega
Some checks failed
CRLF Check / CRLF Check (pull_request) Successful in 49s
Build & Test Debug / build (ubuntu-latest) (pull_request) Failing after 2m15s
Build & Test Debug / Build & Test Debug (pull_request) Has been skipped
RGA schema validator / YAML RGA schema validator (pull_request) Successful in 28s
RSI Validator / Validate RSIs (pull_request) Successful in 10s
Map file schema validator / YAML map schema validator (pull_request) Successful in 2m17s
Build & Test Map Renderer / build (ubuntu-latest) (pull_request) Failing after 6m27s
Build & Test Map Renderer / Build & Test Debug (pull_request) Has been skipped
Check Merge Conflicts / check-conflicts (pull_request_target) Successful in 4s
YAML Linter / YAML Linter (pull_request) Failing after 1m55s
Labels: Size / size-label (pull_request_target) Successful in 2s
Labels: PR / labeler (pull_request_target) Successful in 46s
Test Packaging / Test Packaging (pull_request) Failing after 6m32s
Add RSI textures for Null Rod weapon variants:
- chainsword.rsi
- force_sword.rsi
- multiverse_sword.rsi
- unreal_sword.rsi
- reaper_scythe.rsi
- hfrequency_sword.rsi
- possessed_blade.rsi
- combat_crowbar.rsi
- arrhythmic_knife.rsi

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
9770d5e2be fix(bloodcult): Match wega exactly - remove SubBloodCult, add missing prototypes
- Remove SubBloodCult from all SubGamemodes variants (doesn't exist in wega)
- Remove SubGamemodesRuleNoBloodCult entity (doesn't exist in wega)
- Use SubGamemodesRule in BloodCult preset (matching wega)
- Add missing weapon prototypes: sword.yml (Chainsword, ForceSword, etc)
- Add missing weapon prototypes: knife.yml (CombatCrowbar, ArrhythmicKnife)
- Add RuneMetal material prototype
- Add metal.rsi and blood_dagger.rsi textures
- Add ru-RU localization for stacks and materials
- Replace stub C# files with exact wega versions (remove TODOs)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
6c2fb13345 feat: Add ClothingSterility stub component
TODO: Port full Surgery sterility system from wega if surgery infection
mechanics are desired. Currently this is a stub component to allow
clothing prototypes to load.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
c8feff6896 feat: Add DiseaseProtection stub component
TODO: Port full Disease system from wega if disease mechanics are desired.
Currently this is a stub component to allow clothing prototypes to load.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
7c1edb7780 feat: Port ItemSelector system from wega
Adds ItemSelector component, system, and UI for selecting items from
a radial menu. Required by WeaponNullRod entity which allows chaplains
to select alternative null rod variants.

Files ported:
- Content.Shared/_Wega/ItemSelector/ItemSelectorComponent.cs
- Content.Shared/_Wega/ItemSelector/ItemSelectorUi.cs
- Content.Server/_Wega/ItemSelector/ItemSelectorSystem.cs
- Content.Client/_Wega/ItemSelector/ItemSelectorBoundUserInterface.cs
- Content.Client/_Wega/ItemSelector/ItemSelectorWindow.xaml
- Content.Client/_Wega/ItemSelector/ItemSelectorWindow.xaml.cs

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
8e3b5dffcd feat: Port clothing systems and dirt system from wega
Phase 1 - Clothing Systems:
- TearableClothing: allows tearing/destroying clothing with DoAfter
- ToggleableSpriteClothing: toggle collar up/down appearance
- Clothing damage container (Slash damage type)
- TearClothing sound collection
- Base clothing prototypes (ClothingUniformToggleableBase, etc.)

Phase 2 - Dirt System:
- DirtableComponent: tracks dirt level and color
- DirtSourceComponent: marks entities as dirt sources
- SharedDirtSystem: handles dirt accumulation and cleaning
- DirtVisualsSystem (client): renders dirt overlay sprites
- WashDirtReaction EntityEffect: cleaning via reagents
- 85 dirt overlay sprites for various clothing types

Adapted from wega:
- Removed StrongnessGenComponent dependency (genetics system)
- Changed BloodReagent API to BloodReagents.Contents[0]

Fixes parent prototype references:
- ClothingUniformToggleableBase
- ClothingUniformSkirtToggleableBase
- ClothingHeadBaseBeret

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
5723109220 fix(bloodcult): Fix YAML linter errors for Blood Cult PR
This commit fixes all 31 YAML linter errors in the Blood Cult feature branch:

Phase 1: Fixed invalid references
- Removed Android component from blacklists (wega-specific, doesn't exist in wylab)
- Changed bloodReagent to bloodReagents format (upstream API change)

Phase 2: Created missing tag/tool prototypes
- Added SoulStone TagPrototype in Tags/tags.yml
- Added BloodDagger ToolQualityPrototype in tool_qualities.yml

Phase 3: Ported weapon/spell prototypes from wega
- Extended magic.yml with ~470 lines of Blood Cult weapons
- Added ProjectileBloodBolt in Projectiles/magic.yml
- Added CultBola in Throwable/bola.yml

Phase 4: Ported clothing prototypes
- Added ClothingOuterCultRobesAlt in coats.yml
- Added ClothingBackpackBloodCult in backpacks.yml
- Added ClothingHeadHatHoodCultrobesAlt in hoods.yml

Phase 5: Ported material prototypes
- Added SheetRuneMetal/SheetRuneMetal1 in Materials/Sheets/metal.yml
- Added RuneMetal StackPrototype in Stack/Materials/materials.yml

Phase 6: Updated Guidebook
- Added BloodCult GuideEntryPrototype in antagonists.yml
- Created BloodCult.xml guidebook content

Phase 7: Copied missing audio asset
- Added anvil.ogg from wega fork

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
d815c29b91 feat(bloodcult): Port missing Wega features for Blood Cult
- Add EmpPulseExclusions to SharedEmpSystem (cultists immune to own EMP)
- Add CuffUsed to SharedCuffableSystem (fix permanent cuffs bug)
- Add CryostorageEnterEvent to CryostorageSystem (reassign targets on cryo)
- Restore original Blood Cult code using these features

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
9c89ddd7af revert af001b1f5e
revert Fix Blood Cult compilation errors for Wylab compatibility

- Use EmpPulse instead of Wega's EmpPulseExclusions (cultists no longer protected from own EMP)
- Remove CuffUsed call (method doesn't exist upstream)
- Comment out ToggleGhostBarActionEntity (doesn't exist in upstream GhostComponent)
- Use BloodReagents.Contents instead of Wega's BloodReagent property

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
2bb5583c8a Fix Blood Cult compilation errors for Wylab compatibility
- Use EmpPulse instead of Wega's EmpPulseExclusions (cultists no longer protected from own EMP)
- Remove CuffUsed call (method doesn't exist upstream)
- Comment out ToggleGhostBarActionEntity (doesn't exist in upstream GhostComponent)
- Use BloodReagents.Contents instead of Wega's BloodReagent property

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
8a4be23057 fix(bloodcult): Disable CryostorageEnterEvent handler
Wylab doesn't have CryostorageEnterEvent (Wega-specific).
Commented out the handler to fix build error CS0246.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
d8542feb6b feat(bloodcult): Add Blood Cult localization and integration from Wega
- Add Russian locale files for Blood Cult UI, presets, actions, entities
- Add SubBloodCult sub-gamemode entity with prob: 0.05
- Add BloodCult to secret weights at 5%
- Add SubGamemodesRuleNoBloodCult variant for BloodCult preset
- Update all SubGamemodes variants to include SubBloodCult

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
70c9fad45e feat(bloodcult): Add Blood Cult game rules and assets from Wega
Layer 4 of Blood Cult migration:
- Game Rules: BloodCult entity (minPlayers: 10)
- Game Preset: BloodCult preset
- Audio: 4 ambient/antag sounds (start, eyes, halos, scribe)
- Textures: All blood cult RSI files including:
  - Effects (teleport, barrier, orb, tentacle)
  - Interface icons and actions
  - Mob sprites (constructs)
  - Structures (runes, airlocks)
  - Clothing (backpack)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
529e1de68e feat(bloodcult): Add Blood Cult prototypes from Wega
Layer 3 of Blood Cult migration:
- Actions: bloodcult.yml (368 lines - all spells and abilities)
- Roles: bloodcultist.yml (antag role + gear definitions)
- Mind role: MindRoleBloodCultist (TeamAntagonist)
- Entity prototypes: Effects, Mobs (constructs), Objects (stone), Structures (runes)
- Faction: BloodCult NPC faction (hostile to NT, Zombie, Vampire, etc.)
- StatusIcon: BloodCultistFaction icon
- Recipes: Construction graphs for blood cult structures
- Guidebook: Entity definition

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
ed13d8f57e feat(bloodcult): Add Blood Cult client UI from Wega
Layer 2 of Blood Cult migration:
- Client system (BloodCultSystem.cs)
- UI Menus: BloodMagic, BloodRites, BloodConstruct, BloodStructure
- UI Menus: Runes, EmpoweringRune, SummoningRune
- UI Controllers for all menus

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00
922fe8b5ea feat(bloodcult): Add Blood Cult C# systems from Wega
Layer 1 of Blood Cult migration:
- Shared components (BloodCultComponents, BloodCultEvents)
- Shared system (SharedBloodCultSystem)
- Server systems (BloodCultSystem, RuneSystem, Abilities)
- Game rule system (BloodCultRuleSystem, BloodCultRuleComponent)
- Role component (BloodCultistRoleComponent)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-24 06:24:28 +01:00