- Fix a bug with Wheel not Clearing for Adding / Removing Abilities
- Fix a bug not being able to resolve Built In Abilities
- Fix a Chained Ability Windup System
Resolved conflicts in AbstractDataAbilities, DataAbilities, PlayerAbilityData
to integrate both toggle system (upstream) and chain delay tracking (local).
ChainedAbility now has UUID and DisplayName fields matching Ability pattern.
ChainedAbilityController rewritten: saves in abilities/chained/, dual-index
by name and UUID, legacy migration from chained_abilities/ directory.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The dot product was being computed but not used - panels were blocking
projectiles from both sides. Now correctly checks which side the
projectile approaches from and only blocks if it's moving toward
the panel surface.
https://claude.ai/code/session_01EV9KpiykvW4rASz7ju5iTG
Implements four new energy ability types:
- Energy Dome: Spherical barrier centered on caster that blocks incoming
energy projectiles. Configurable per-projectile-type damage multipliers,
HP/durability and duration modes. RING telegraph.
- Energy Wall: Placeable flat energy panel with configurable dimensions
and height offset (can float above ground). Optional launching mode
fires the wall forward with damage/knockback.
- Energy Shield: Held energy panel that follows the caster and rotates
with their look direction. Defensive blocking ability.
- Energy Slicer: Thin wide blade projectile (JJK Cleave inspired).
Extends AbstractEnergyProjectileAbility. Piercing by default.
Architecture:
- EnergyBarrierData: HP, duration, per-type damage multiplier map
- EnergyPanelData: Panel dimensions, height offset, launch properties
- AbstractEnergyBarrierAbility: Shared base for Dome/Wall/Shield
- EntityEnergyDome, EntityEnergyPanel, EntityEnergySlicer entities
- RenderEnergyDome, RenderEnergyPanel, RenderEnergySlicer renderers
with translucent inner/outer layers (voxel-blocky aesthetic)
- Projectile-barrier collision system in EntityAbilityProjectile
https://claude.ai/code/session_01EV9KpiykvW4rASz7ju5iTG