# Hovercard UGUI

## 🃏 HovercardUGUI Class

A pop-up UI object that displays skill information.

> Namespace: `Esper.SkillWeb.UI.UGUI`\
> Inherits from: `MonoBehaviour`\
> Type: `abstract class`

***

### 📦 Fields

| Access      | Field             | Type              | Description                                                                     |
| ----------- | ----------------- | ----------------- | ------------------------------------------------------------------------------- |
| `public`    | `appearanceDelay` | `float`           | The length of time the user must hover over a skill for the details to display. |
| `protected` | `content`         | `RectTransform`   | The content container.                                                          |
| `protected` | `canvas`          | `Canvas`          | The canvas component.                                                           |
| `protected` | `animator`        | `Animator`        | The animator component.                                                         |
| `protected` | `videoPlayer`     | `VideoPlayer`     | The object that runs a video.                                                   |
| `protected` | `openAnimLength`  | `float`           | The length of the opening animation.                                            |
| `protected` | `closeAnimLength` | `float`           | The length of the closing animation.                                            |
| `protected` | `openAction`      | `Action`          | The open action.                                                                |
| `protected` | `transitionState` | `TransitionState` | The current transition state.                                                   |

***

### 🔍 Properties

| Access          | Property   | Type            | Description                                 |
| --------------- | ---------- | --------------- | ------------------------------------------- |
| `public`        | `Target`   | `SkillNodeUGUI` | The SkillNodeUGUI currently being targeted. |
| `public`        | `IsOpen`   | `bool`          | If the hover details is currently open.     |
| `public static` | `Instance` | `HovercardUGUI` | The active instance.                        |

***

### 🧰 Methods

| Access              | Method                         | Returns       | Description                                                                                                             |
| ------------------- | ------------------------------ | ------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `protected virtual` | `Awake()`                      | `void`        | Initializes the hovercard as a singleton.                                                                               |
| `public virtual`    | `Refresh()`                    | `void`        | Refreshes the content.                                                                                                  |
| `public`            | `UpdatePosition()`             | `void`        | Updates the hovercard position.                                                                                         |
| `protected`         | `PrepareVideo(VideoClip)`      | `IEnumerator` | Prepares the video and plays it after it is prepared.                                                                   |
| `protected`         | `OpenCoroutine()`              | `IEnumerator` | Sets the content position on the target and forces the content inside the game viewport if it's somewhat outside of it. |
| `protected virtual` | `Resize()`                     | `void`        | Resizes the window based on its content.                                                                                |
| `protected`         | `OpenWithDelay()`              | `IEnumerator` | Opens the hover details after a delay.                                                                                  |
| `public virtual`    | `Open(SkillNodeUGUI)`          | `bool`        | Opens the hovercard.                                                                                                    |
| `protected virtual` | `CalculateSize()`              | `Vector2`     | Calculates the size.                                                                                                    |
| `public virtual`    | `Open(RectTransform)`          | `void`        | Opens the item details.                                                                                                 |
| `public virtual`    | `Close()`                      | `void`        | Closes the hover details.                                                                                               |
| `protected`         | `OpenOnCloseIfStillHovering()` | `IEnumerator` | Opens the hovercard if the user is still hovering a skill.                                                              |
| `public`            | `Opened()`                     | `void`        | Sets the transition state as opened.                                                                                    |
| `public`            | `Closed()`                     | `void`        | Sets the transition state as closed.                                                                                    |

***

### 🧩 Nested Enums

`protected enum TransitionState`

The transition state of the hover details.

| Value     | Description |
| --------- | ----------- |
| `Opened`  | Opened      |
| `Opening` | Opening     |
| `Closed`  | Closed      |
| `Closing` | Closing     |
