PUBLIC PROJECT WORKSHOP · COMBAT INPUT
Kitty's Dagger
Study a compact ability-driven weapon project where independent skills need independent state, input routing and visible readiness feedback.
1. Import the datapack
Open Creator → Use Public Pack as Base → Kitty's Dagger. Keep the source note enabled so the original GitHub path stays with your learning copy.
2. Separate input from ability execution
- Detect intentKeep the input/key state responsible only for choosing a skill.
- Dispatch one action path per skillThrow, directional throw and ultimate logic should not share one cooldown flag or one giant condition branch.
- Store readiness independentlyEach skill owns its own cooldown/state so one unavailable ability does not block the others.
- Render state back onto the itemUse item feedback as an interface: cooldown/readiness should be visible without opening a menu.
3. Build the five-projectile ultimate pattern
Resolve nearby valid targets first. Dispatch individual projectile actions to selected targets up to the skill limit; when no target exists, use the player's horizontal facing as the basis for a radial fallback. Keep targeting and projectile spawning as separate steps so either one can be replaced later.
4. Test overlap states
| State | Expected behavior |
|---|---|
| Throw unavailable | Only throw feedback changes; directional and ultimate inputs can still resolve. |
| Ultimate ready + another cooldown active | Both visual states can coexist on the same main item. |
| No valid ultimate targets | Projectiles use the defined radial fallback instead of silently failing. |
| Dedicated skill item | Right-click routes directly to that skill and uses the ordinary durability cooldown presentation. |