# Fishing Rod

A specialized melee weapon that acts as your fishing rod. Handles casting, cooldowns, state activation, and integrates with hand-swapping for two-handed animations.

> ✅ **Requires**: A `FishingCaster` on the same `MAnimal`, and a `Fishing` state in your Malbers state machine.

***

#### 🔧 Inspector Settings

* **Cooldown**\
  Minimum time (in seconds) between casts. Prevents rapid spamming.
* **Middle Rod Offset**\
  Adjusts position, rotation, and scale when the rod is held with both hands (e.g., during reeling or idle poses).

***

#### 📈 Key Behavior

* **Casting**\
  Triggered via the **Main Attack** input. On cast:
  * Checks for valid water using `FishingCaster.TryCastToWater()`.
  * If successful, activates the `Fishing` state (ID `16` by default).
  * Passes the hit water object to the fishing state for fish spawning.
* **Unequipping**\
  Automatically blocked while in the fishing state. When forced (e.g., via inventory), it gracefully exits the fishing state.
* **Hand Swapping**\
  Implements `IHandSwapper`—supports switching between one-handed and two-handed grips. Use `ApplyMiddleRodOffset()` or animation events to apply the middle grip pose.
* **Rod Bending Feedback**\
  If a `FishingRodBendController` is attached, it receives hit/miss feedback to drive visual bending.

***

#### 💡 Notes

* Casting respects the **cooldown** even if it fails to find water.
* Auto-assigns its `FishingCaster` on equip by searching the animal’s children.
