# OnMoveAsync(int)

Il s'agit de la méthode principale, elle sera appelée lorsque votre personnage entre sur une carte. Typiquement c'est avec cette méthode qu'il sera possible d'effectuer les actions de déplacement, récolter ou lancer des combats.

```csharp
[Handler]
public async Task OnMoveAsync(int count)
{
    var move = new Dictionary<(short, short), List<Func<Task>>>
    {
        [(20, -26)] =
        [
            async () =>
            {
                await Map.GatherAsync([111]);
                await Map.ChangeToAsync(ChangeMapSide.Left);
            }
        ],
        [(19, -26)] =
        [
            async () =>
            {
                await Map.FightAsync(new FightOptionsBuilder().WithMinMonsters(1).WithMaxMonsters(4).Build()));
                await Map.ChangeToAsync(ChangeMapSide.Down);
            }
        ],
        [(19, -25)] =
        [
            async () =>
            {
                await Map.GatherAsync([38]);
                await Map.ChangeToAsync(ChangeMapSide.Left);
            },
            async () =>
            {
                await Map.GatherAsync([45]);
                await Map.ChangeToAsync(ChangeMapSide.Down);
            }
        ]
    };

    if (move.TryGetValue(Map.Coords, out var actions))
    {
        await actions[(count - 1) % actions.Count]();
        return;
    }

    Common.Log("On s'est perdu !");
}
```
