# treasure

### isHunting

**🎮Méthode**

```lua
treasure:isHunting()
```

Vérifie si une chasse au trésor est en cours.

Retourne: `boolean` - true si une chasse est active

Exemple:

```lua
-- Verifier si on fait une chasse
if treasure:isHunting() then
    global:printMessage("Chasse en cours!")
end
```

***

### isReadyToDig

**🎮Méthode**

```lua
treasure:isReadyToDig()
```

Vérifie si on peut creuser (toutes les étapes sont validées ou étape de combat).

Retourne: `boolean` - true si prêt à creuser

Exemple:

```lua
-- Verifier si on peut creuser
if treasure:isReadyToDig() then
    treasure:huntDig()
end
```

***

### isFightStep

**🎮Méthode**

```lua
treasure:isFightStep()
```

Vérifie si l'étape actuelle est un combat.

Retourne: `boolean` - true si c'est une étape de combat

Exemple:

```lua
if treasure:isFightStep() then
    global:printMessage("Preparez-vous au combat!")
end
```

***

### isHintStep

**🎮Méthode**

```lua
treasure:isHintStep()
```

Vérifie si l'étape actuelle est une recherche d'indice (POI).

Retourne: `boolean` - true si c'est une étape d'indice

Exemple:

```lua
if treasure:isHintStep() then
    local hint = treasure:GetNextFlagName()
    global:printMessage("Indice a trouver: " .. hint)
end
```

***

### isPhorreurStep

**🎮Méthode**

```lua
treasure:isPhorreurStep()
```

Vérifie si l'étape actuelle est une recherche de Phorreur.

Retourne: `boolean` - true si c'est une étape Phorreur

Exemple:

```lua
if treasure:isPhorreurStep() then
    global:printMessage("Recherche d'un Phorreur...")
end
```

***

### isPhorreurInMap

**🎮Méthode**

```lua
treasure:isPhorreurInMap()
```

Vérifie si le Phorreur ou l'indice se trouve sur la carte actuelle.

Retourne: `boolean` - true si l'objectif est sur cette carte

Exemple:

```lua
if treasure:isPhorreurInMap() then
    global:printSuccess("Objectif trouve sur cette carte!")
    treasure:huntFlag()
end
```

***

### isGivingUp

**🎮Méthode**

```lua
treasure:isGivingUp()
```

Vérifie si la chasse est en cours d'abandon.

Retourne: `boolean` - true si abandon en cours

Exemple:

```lua
if treasure:isGivingUp() then
    global:printMessage("Abandon de la chasse...")
end
```

***

### huntFlag

**🎮Méthode**

```lua
treasure:huntFlag()
```

Valide l'étape actuelle de la chasse (indice trouvé).

Retourne: `boolean` - true si validation réussie

Exemple:

```lua
-- Valider un indice trouve
if treasure:isPhorreurInMap() then
    if treasure:huntFlag() then
        global:printSuccess("Indice valide!")
    end
end
```

***

### huntDig

**🎮Méthode**

```lua
treasure:huntDig()
```

Creuse pour trouver le trésor (dernière étape).

Retourne: `boolean` - true si le tresor est trouve

Exemple:

```lua
-- Creuser quand pret
if treasure:isReadyToDig() then
    if treasure:huntDig() then
        global:printSuccess("Tresor trouve!")
    else
        global:printError("Echec du creusement...")
    end
end
```

***

### huntDigTry

**🎮Méthode**

```lua
treasure:huntDigTry()
```

Tente de creuser et vérifie le résultat.

Retourne: `boolean` - true si reussi ou deja valide

Exemple:

```lua
if treasure:huntDigTry() then
    global:printSuccess("Creusement reussi!")
end
```

***

### huntClear

**🎮Méthode**

```lua
treasure:huntClear()
```

Supprime le premier flag de la chasse.

Retourne: `boolean` - true si suppression reussie

Exemple:

```lua
-- Reinitialiser la chasse
treasure:huntClear()
```

***

### startHunt

**🎮Méthode**

```lua
treasure:startHunt(level)
```

Démarre une nouvelle chasse au trésor du niveau spécifié.

Paramètres:

| Nom   | Type   | Description                                        |
| ----- | ------ | -------------------------------------------------- |
| level | number | Niveau de la chasse (0 = niveau max du personnage) |

Retourne: `number` - Code résultat (1 = succes, 5 = deja en cours, 0 = echec, negatif = temps d'attente)

Exemple:

```lua
-- Demarrer une chasse niveau 200
local result = treasure:startHunt(200)

if result == 1 then
    global:printSuccess("Chasse demarree!")
elseif result == 5 then
    global:printMessage("Chasse deja en cours")
elseif result < 0 then
    global:printMessage("Attendre " .. math.abs(result) .. " minutes")
else
    global:printError("Impossible de demarrer la chasse")
end

-- Chasse au niveau du personnage
treasure:startHunt(0)
```

> Note: Doit etre utilise pres d'un tableau de chasse au tresor.

***

### quit

**🎮Méthode**

```lua
treasure:quit()
```

Abandonne la chasse au trésor en cours (avec temps d'attente).

Retourne: `void`

Exemple:

```lua
-- Abandonner la chasse si bloque
if someCondition then
    treasure:quit()
end
```

> Note: Peut necessiter un temps d'attente avant de pouvoir reprendre une nouvelle chasse.

***

### quitNow

**🎮Méthode**

```lua
treasure:quitNow()
```

Abandonne immediatement la chasse sans attendre.

Retourne: `void`

Exemple:

```lua
-- Abandon immediat
treasure:quitNow()
```

***

### getStartMapId

**🎮Méthode**

```lua
treasure:getStartMapId()
```

Retourne l'ID de la carte de depart de la chasse.

Retourne: `number` - ID de la carte de depart

Exemple:

```lua
local startMap = treasure:getStartMapId()
global:printMessage("Carte de depart: " .. startMap)
```

***

### getStepCount

**🎮Méthode**

```lua
treasure:getStepCount()
```

Retourne le nombre total d'étapes de la chasse.

Retourne: `number` - Nombre d'étapes

Exemple:

```lua
local steps = treasure:getStepCount()
global:printMessage("Nombre d'etapes: " .. steps)
```

***

### getNextFlagDirection

**🎮Méthode**

```lua
treasure:getNextFlagDirection(index)
```

Retourne la direction de la prochaine étape.

Paramètres:

| Nom   | Type   | Description                            |
| ----- | ------ | -------------------------------------- |
| index | number | Index de l'etape (-1 pour la derniere) |

Retourne: `string` - Direction (top, bottom, left, right)

Exemple:

```lua
local direction = treasure:getNextFlagDirection(-1)
global:printMessage("Direction: " .. direction)

-- Utiliser dans move()
if direction == "top" then
    return {{ map = currentMap, path = "top" }}
end
```

***

### GetNextFlagName

**🎮Méthode**

```lua
treasure:GetNextFlagName(index
```

Retourne le nom de l'indice à trouver.

Paramètres:

| Nom   | Type   | Description                            |
| ----- | ------ | -------------------------------------- |
| index | number | Index de l'etape (-1 pour la derniere) |

Retourne: `string` - Nom de l'indice (ex: "Tas de feuilles", "Phorreur")

Exemple:

```lua
local hintName = treasure:GetNextFlagName(-1)
global:printMessage("Rechercher: " .. hintName)
```

***

### getNextFlagId

**🎮Méthode**

```lua
treasure:getNextFlagId(index)
```

Retourne l'ID de l'indice à trouver.

Paramètres:

| Nom   | Type   | Description                            |
| ----- | ------ | -------------------------------------- |
| index | number | Index de l'etape (-1 pour la derniere) |

Retourne: `number` - ID du POI ou du PNJ

Exemple:

```lua
local hintId = treasure:getNextFlagId(-1)
global:printMessage("ID de l'indice: " .. hintId)
```

***

### getPos

**🎮Méthode**

```lua
treasure:getPos(mapId)
```

Retourne les coordonnées d'une carte au format \[x,y].

Paramètres:

| Nom   | Type   | Description    |
| ----- | ------ | -------------- |
| mapId | number | ID de la carte |

Retourne: `string` - Coordonnees au format "\[x,y]"

Exemple:

```lua
local startMap = treasure:getStartMapId()
local coords = treasure:getPos(startMap)
global:printMessage("Position de depart: " .. coords)
```

***
