Commit Graph
3958 Commits
Author SHA1 Message Date
KamandClaude Opus 4.6 2f814c1903 IAbilityAction interface, AbilityAction unified slot, and bug fixes
- Added IAbilityAction interface (internal + API) for unified Ability/ChainedAbility handling
- Created AbilityAction (replaces AbilitySlot) with 3 modes: INLINE_ABILITY, ABILITY_REFERENCE, CHAIN_REFERENCE
- Unified DataAbilities storage from dual lists to single List<AbilityAction>
- Added ChainedAbility, ChainedAbilityEntry, ChainedAbilityController
- Updated PlayerAbilityData with resolveActionKey() for chain: prefix resolution
- Added resolveAction/canResolveAction to AbilityController
- Fixed unsafe cast in DataAbilities.onDamage()
- Fixed NPE in GuiNPCAbilities for chain reference slots
- Fixed NPC chain interrupt double cooldown
- Fixed removeAbility() incorrectly removing chain references

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 23:22:03 -05:00
Kam f39d843c70 Merge branch 'dev' of https://github.com/KAMKEEL/CustomNPC-Plus into dev 2026-02-17 21:03:58 -05:00
Kam 2bcf3b03d5 Refactoring and Bug Fixes 2026-02-17 21:03:54 -05:00
Vidal 90e146e7b0 Merge remote-tracking branch 'origin/dev' into dev 2026-02-17 23:02:39 -03:00
Vidal 8001a14d3a HeavyHit refactor
- Hit Delay ticks
2026-02-17 23:02:24 -03:00
Kam c7956a24a6 Abilities are now Stored by Name not UUID 2026-02-17 20:44:27 -05:00
Vidal bc336abf9d Proper register for ability variants 2026-02-17 20:41:07 -03:00
Vidal c6b2797b5d Attempt at implementing ability variants directly from the register 2026-02-17 20:11:42 -03:00
Vidal 52269705b5 Merge remote-tracking branch 'origin/dev' into dev 2026-02-17 19:38:52 -03:00
Kam 89158cb10a Ability Potion Effect 2026-02-17 17:37:51 -05:00
Kam fb5029796f Update AbilityEnergyProjectile.java 2026-02-17 17:32:54 -05:00
Kam dcd9572024 Merge branch 'barriers' into dev 2026-02-17 17:32:48 -05:00
Vidal 071cbc9890 Applied the fix to select gui as well 2026-02-17 18:38:58 -03:00
Vidal 55149ab5d1 Fixed the check that prevented built-in types from showing up in NPC Abilities 2026-02-17 18:31:47 -03:00
Vidal 7ed68b7efe Added dazed animation 2026-02-17 17:05:29 -03:00
Kam c07e9e7006 Create Barrier Abilities + Heavy Refactoring 2026-02-17 14:32:13 -05:00
Vidal cbc2b73625 Renamed AbstractEnergyProjectileAbility to AbilityEnergyProjectile 2026-02-17 01:49:07 -03:00
Vidal a296a533c9 Made registered animations load at once 2026-02-16 20:42:57 -03:00
Vidal dd6a27b915 Fixed wrong names being registered on Animation register and added debug to anim controller 2026-02-16 20:21:32 -03:00
Vidal d826206d31 Prevented anim controller from loading twice 2026-02-16 13:47:31 -03:00
Vidal 6506de70b8 Set Animation Controller to load on server start 2026-02-16 12:40:02 -03:00
Claude d1f2c9695c Fix panel directional check to only block incoming projectiles
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
2026-02-16 13:27:29 +00:00
Claude 0ebdfafccd Add Energy Barrier and Slicer ability system
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
2026-02-16 08:54:55 +00:00
Kam 01e18e0221 Beta 3 2026-02-16 01:49:57 -05:00
Kam 6c8e15c014 Update api 2026-02-16 01:40:53 -05:00
Kam f4ad421c2e Player Ability Checking
Enhance ability validation: add method to check if an ability can be resolved without deep copy and prune invalid unlocked abilities during load
2026-02-16 01:40:51 -05:00
Kam cd28f69a0e Enhance ability validation: add method to check if an ability can be resolved without deep copy and prune invalid unlocked abilities during load 2026-02-16 01:39:14 -05:00
Kam 21b1571868 Add flight checker to prevent abilities from affecting flying players 2026-02-16 01:15:52 -05:00
Kam e722279009 Update API hash to reflect recent changes 2026-02-16 01:03:35 -05:00
Kam 071d89cc15 Add energy projectile types and events: implement IEnergyOrb, IEnergyBeam, IEnergyDisc, and IEnergyLaser interfaces, along with their respective script handlers and event hooks 2026-02-16 01:03:05 -05:00
Kam 1ed012331b Enhance ability input handling: block movement during ability locks, ensure proper input suppression, and cancel abilities on logout, dimension change, death, and respawn 2026-02-15 23:15:50 -05:00
Kam 121563ba24 Enhance knockback mechanics: add methods for applying and forcefully applying knockback, respecting or ignoring knockback resistance 2026-02-15 23:07:57 -05:00
Kam 19e2882c4a Merge remote-tracking branch 'origin/dev' into dev 2026-02-15 22:04:55 -05:00
Kam 1fb52a4ae9 Refactor movement abilities: extract shared logic into AbilityMovement class for Charge and Dash abilities 2026-02-15 22:04:47 -05:00
Kam 248dbf66da Enhance ability animation handling: track ability animation state, clear orphaned animations on login, and ensure proper animation continuation 2026-02-15 22:03:32 -05:00
Kam 3beaf68815 Update GuiNPCAbilities.java 2026-02-15 21:44:36 -05:00
Kam eda8931b5f Refactor entity owner checks and enhance FULL_MODEL rotation support in ability entities 2026-02-15 21:29:26 -05:00
Kam ce24c0a4ff Enhance ability selection and display: add toggleable ability handling, improve ability name color coding, and update ability selection messaging 2026-02-15 19:21:30 -05:00
Kam 45d05b9157 Add trap presets & trigger-reveal visuals
Introduce client-side trap presets and a visual "trigger reveal" for traps, plus related entity/renderer changes.

- AbilityTrap: add TrapPreset enum and applyTrapPresetDefaults; wire a SubGuiTrapPresetSelector hook to apply presets from the GUI; pass visibility into created trap entities.
- EntityAbilityZone: add visible flag, TRIGGER_FLASH_STATUS state, setEntityState usage to notify clients of triggers, handleHealthUpdate to start client-side flash, and adjust construction/serialization accordingly.
- RenderAbilityZone: implement trigger-reveal visuals (revealFade, triggerReveal) that briefly show a burst when traps trigger, skip rendering for invisible traps unless revealing, and tweak flash/timing logic.
- Minor cleanup: remove/condense comment blocks and refactor noisy helpers across AbilityZone/AbilityHazard, plus language entry update and new SubGuiTrapPresetSelector GUI class.

These changes enable preset application for traps and improve client-side feedback when traps trigger.
2026-02-15 19:19:57 -05:00
Kam 89464ce6c0 Merge branch 'dev' of https://github.com/KAMKEEL/CustomNPC-Plus into dev 2026-02-15 18:16:01 -05:00
Kam 2dfdfb19d1 Client-side trade validation and stock update
Perform more complete client-side checks before predicting currency deductions in GuiNPCTrader.handleMouseClick. The method now verifies that the item can be given to the player (canGivePlayerClient), that the slot is enabled, and that stock is available, mirroring server-side checks. When a client-side purchase is accepted, availableStock is decremented if applicable. Added a private canGivePlayerClient(ItemStack) helper to check cursor-stack compatibility and max stack size. These changes prevent the UI from showing incorrect balances for trades the server would reject.
2026-02-15 18:15:56 -05:00
Kam ff9f9b9660 Enhance ability variant selection: inject a default "Base" variant when no built-in variants are available 2026-02-15 18:05:07 -05:00
Kam 8c2ef1084a Fix Burst Refire 2026-02-15 17:47:44 -05:00
KamandClaude Opus 4.6 e466ef6771 Remove Ki Cost from base Ability - DBC-specific concern
Ki Cost belongs in the DBC Addon's DBCAbilityStats system,
not in the base ability infrastructure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-15 04:47:19 -05:00
Vidal 61405add97 Added Ki Cost to Ability 2026-02-15 00:40:43 -03:00
Kam 0f774a68fc Refactor ability handling: replace damage handler with ability extenders for improved lifecycle management and damage routing 2026-02-14 21:06:12 -05:00
Kam f8c75dd79b Fix Burst Refiring 2026-02-14 20:08:56 -05:00
Vidal f03d93d6a8 Oopsie i swapped commits, last commit was changing min values on anchor offset fields 2026-02-14 19:43:34 -03:00
Vidal 3be9104ec3 Made min and max double neg/pos infinity 2026-02-14 19:43:03 -03:00
Kam a23b199e7e Refactoring for Code Cleanup and Projectile Abstract Class Handling 2026-02-14 15:21:56 -05:00