--- type: User Story title: "US-005: Use Assassin abilities" description: Give the Assassin timed stealth and a risky burst-mobility ability. status: done --- # US-005: Use Assassin abilities As the **Assassin**, I want stealth and burst mobility so that I can ambush opponents while accepting a combat penalty afterward. ## Acceptance criteria - [x] The Assassin can activate ten minutes of invisibility once per rolling hour using the named Assassin ability item. - [x] Invisibility displays no potion particles. - [x] Activation while in the same world and within the configured Tyrant range grants twenty minutes instead. - [x] Proximity is evaluated when the ability is activated and does not alter the active duration afterward. - [x] The Assassin can double-jump once every 60 seconds without requiring an item. - [x] A successful double-jump grants Speed for 15 seconds and Weakness III for 20 seconds. - [x] Grounding and supported movement reset jump availability only after the 60-second cooldown has elapsed. - [x] Ability cooldowns use unpaused elapsed time and survive death, logout, and restart. - [x] The player can inspect remaining cooldowns and receives clear feedback when an activation is unavailable. - [x] Tyrant removes only Assassin potion effects that Tyrant itself applied. - [x] Invisibility from potions, commands, or other plugins remains active for Assassins and non-Assassins. - [x] Tyrant-managed Assassin effects are still removed when abilities expire, roles change, games stop, or the plugin disables. ## Validation Automated controller tests verify that inactive Tyrant state does not alter ordinary potion effects, active Assassin invisibility is refreshed, and refresh stops at expiry so the short managed effect expires naturally. The complete `./gradlew clean check jar` lifecycle passes. ## Related - [Use class ability items](us-014-use-class-ability-items.md) - [Configure and persist game state](us-012-configure-and-persist-state.md)