Merged
Conversation
Implements impact-based area damage for projectile abilities, enabling fireball-style explosions that damage multiple enemies on collision. Core Changes: - ProjectileAbility: Added impact_aoe_radius, impact_aoe_damage_mult, impact_effect properties - AbilityProjectile: Implemented _apply_impact_aoe() with EntityTracker spatial queries - AbilityProjectile: Added AnimatedSprite2D support for frame-based animations - EntityPool: Registered fireball scene for object pooling Fireball Implementation: - 5-frame animated sprite (FB00_nyknck assets) - 5000 base damage with 250px AoE explosion (80% damage multiplier) - Expanding shockwave impact effect (0.5s radial gradient animation) - Scene-based approach suitable for moderate projectile counts (5-10) Technical Details: - AoE excludes direct hit target to prevent double-damage - Spatial queries via EntityTracker for O(1) radius lookups - Impact effects spawn via PackedScene instantiation (self-despawning) - AnimationPlayer-driven shockwave with additive blending 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Implemented build-up → sustained loop animation pattern for pooled projectiles: - AnimatedSprite2D with dual animations: "default" (5-frame build-up) → "repeat" (2-frame loop) - animation_finished signal transitions between phases automatically - Animation reset in pool recycling ensures consistent frame state - Dynamic impact effect scaling via set_aoe_radius() Technical details: - Signal connection check prevents duplicates when pooling - Sprite sheet atlas (All_Fire_Bullet_Pixel_16x16) replaces individual frames - Works with EntityPool reuse (no _ready() re-calls) - Provides reusable pattern for multi-phase ability animations Impact: Fireball charges up over 1s then pulses, creating satisfying visual progression 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Added comprehensive documentation for two-phase animation system: - Two-phase animation pattern (build-up → sustained loop) - Animation lifecycle with object pooling considerations - Signal connection management for pooled entities - Reusable multi-phase pattern for VFX/abilities/enemies Key concepts documented: - Pooled entities don't call _ready() on reuse (autoplay won't trigger) - Explicit animation.play() in initialize() required - animation_finished signal for state machine transitions - Animation reset in reset() for consistent frame state - is_connected() check prevents duplicate signal connections Provides reference implementation from Fireball.tscn for future abilities 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
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.
No description provided.