Skip to content

feat(multimesh): MultiMesh homing system with ability variants and to…#72

Merged
AgentService merged 4 commits intomainfrom
multimesh_projectiles
Oct 13, 2025
Merged

feat(multimesh): MultiMesh homing system with ability variants and to…#72
AgentService merged 4 commits intomainfrom
multimesh_projectiles

Conversation

@AgentService
Copy link
Copy Markdown
Owner

…ol updates

Roughly implemented:

  • MultiMesh homing with grouped targeting and staggered updates
  • Fixed 3 critical bugs (stale variable, missing multiplier, magnitude loss)
  • Created homing ability variants (focused_seeker, seeking_volley)
  • Archived scene-based abilities (reuse_1, reuse_2)
  • Enhanced AbilityTestingPopup with missing homing properties
  • Updated ability display to show names instead of IDs

🤖 Generated with Claude Code

…ol updates

Roughly implemented:
- MultiMesh homing with grouped targeting and staggered updates
- Fixed 3 critical bugs (stale variable, missing multiplier, magnitude loss)
- Created homing ability variants (focused_seeker, seeking_volley)
- Archived scene-based abilities (reuse_1, reuse_2)
- Enhanced AbilityTestingPopup with missing homing properties
- Updated ability display to show names instead of IDs

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

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Comment thread autoload/MultiMeshProjectileManager.gd Outdated
Comment on lines +168 to +174
# Extract homing configuration (once per ability activation)
if projectile_data.has("is_homing"):
_homing_enabled = projectile_data.get("is_homing", false)
_homing_mode = projectile_data.get("homing_mode", HomingMode.TRACK_TO_DEATH)
_homing_strength = projectile_data.get("homing_strength", 2.0)
_homing_group_count = projectile_data.get("homing_group_count", 10)
_homing_update_interval = projectile_data.get("homing_update_interval", 4)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Homing settings overwritten for all active multimesh projectiles

The projectile spawn handler stores homing configuration in _homing_enabled, _homing_mode, _homing_strength, etc. (lines 168‑174) and those same globals are consumed in _on_combat_step to steer every active projectile. When two different MultiMesh abilities fire concurrently, the most recently spawned projectile overwrites these globals and immediately changes the steering mode and strength of previously spawned projectiles. For example, casting a non-homing MultiMesh volley after a homing volley will flip _homing_enabled to false, causing the already-fired homing arrows to stop tracking their targets mid-flight. These configuration values need to be stored per projectile (or per ability batch) rather than globally to avoid cross-contamination.

Useful? React with 👍 / 👎.

AgentService and others added 3 commits October 13, 2025 02:18
…mpty lines

All ability .tres files now use consistent formatting with empty lines separating:
- Fire mode & rendering settings
- Homing configuration (if used)
- Chain/pierce/knockback mechanics
- Projectile behavior (spread/speed/lifetime)
- Damage & type
- Cooldown & count & range
- Scaling parameters
- Ability metadata (id/name/description/tags/level)
- Scene references (visual_scene, icon)

No functional changes, formatting only.

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

Co-Authored-By: Claude <noreply@anthropic.com>
Changed from 2-arrow focused seeker to 7-arrow spread pattern:
- projectile_count: 2 → 7
- spread_angle: 25° → 180°
- projectile_speed: 1200 → 600
- base_damage: 333 → 3333
- pierce_count: 2 → 0
- homing_group_count: 3 → 7
- Updated description to match current stats

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

Co-Authored-By: Claude <noreply@anthropic.com>
…tion

Global homing variables (_homing_enabled, _homing_mode, _homing_strength)
were overwritten by most recently spawned ability, causing all active
projectiles to adopt new homing behavior mid-flight.

Added per-projectile arrays for homing configuration:
- _projectile_homing_enabled[] / _homing_mode[] / _homing_strength[]
- spawn_projectile() stores config per-projectile from projectile_data
- _on_combat_step() reads per-projectile config instead of globals
- Compacting logic copies per-projectile homing config

Impact: Multiple concurrent abilities (homing + non-homing) now work correctly.
Example: seeking_volley arrows continue tracking when volley_multimesh fires.

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

Co-Authored-By: Claude <noreply@anthropic.com>
@AgentService AgentService merged commit f8b661d into main Oct 13, 2025
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant