package org.apollo.game.plugin.skills.fishing
import org.apollo.game.model.Position
import org.apollo.game.plugin.entity.spawn.spawnNpc
import org.apollo.game.plugin.skills.fishing.FishingSpot.CAGE_HARPOON
import org.apollo.game.plugin.skills.fishing.FishingSpot.NET_HARPOON
import org.apollo.game.plugin.skills.fishing.FishingSpot.NET_ROD
import org.apollo.game.plugin.skills.fishing.FishingSpot.ROD

// Al-Kharid
NET_ROD at Position(3267, 3148)
NET_ROD at Position(3268, 3147)
NET_ROD at Position(3277, 3139)
CAGE_HARPOON at Position(3350, 3817)
CAGE_HARPOON at Position(3347, 3814)
CAGE_HARPOON at Position(3363, 3816)
CAGE_HARPOON at Position(3368, 3811)

// Ardougne
ROD at Position(2561, 3374)
ROD at Position(2562, 3374)
ROD at Position(2568, 3365)

// Bandit camp
NET_ROD at Position(3047, 3703)
NET_ROD at Position(3045, 3702)

// Baxtorian falls
ROD at Position(2527, 3412)
ROD at Position(2530, 3412)
ROD at Position(2533, 3410)

// Burgh de Rott
NET_HARPOON at Position(3497, 3175)
NET_HARPOON at Position(3496, 3178)
NET_HARPOON at Position(3499, 3178)
NET_HARPOON at Position(3489, 3184)
NET_HARPOON at Position(3496, 3176)
NET_HARPOON at Position(3486, 3184)
NET_HARPOON at Position(3479, 3189)
NET_HARPOON at Position(3476, 3191)
NET_HARPOON at Position(3472, 3196)
NET_HARPOON at Position(3496, 3180)
NET_HARPOON at Position(3512, 3178)
NET_HARPOON at Position(3515, 3180)
NET_HARPOON at Position(3518, 3177)
NET_HARPOON at Position(3528, 3172)
NET_HARPOON at Position(3531, 3169)
NET_HARPOON at Position(3531, 3172)
NET_HARPOON at Position(3531, 3167)

// Camelot
ROD at Position(2726, 3524)
ROD at Position(2727, 3524)

// Castle wars
ROD at Position(2461, 3151)
ROD at Position(2461, 3150)
ROD at Position(2462, 3145)
ROD at Position(2472, 3156)

// Catherby 1
NET_ROD at Position(2838, 3431)
CAGE_HARPOON at Position(2837, 3431)
CAGE_HARPOON at Position(2836, 3431)
NET_ROD at Position(2846, 3429)
NET_ROD at Position(2844, 3429)
CAGE_HARPOON at Position(2845, 3429)
NET_HARPOON at Position(2853, 3423)
NET_HARPOON at Position(2855, 3423)
NET_HARPOON at Position(2859, 3426)

// Draynor village
NET_ROD at Position(3085, 3230)
NET_ROD at Position(3085, 3231)
NET_ROD at Position(3086, 3227)

// Elf camp
ROD at Position(2210, 3243)
ROD at Position(2216, 3236)
ROD at Position(2222, 3241)

// Entrana
NET_ROD at Position(2843, 3359)
NET_ROD at Position(2842, 3359)
NET_ROD at Position(2847, 3361)
NET_ROD at Position(2848, 3361)
NET_ROD at Position(2840, 3356)
NET_ROD at Position(2845, 3356)
NET_ROD at Position(2875, 3342)
NET_ROD at Position(2876, 3342)
NET_ROD at Position(2877, 3342)

// Fishing guild
CAGE_HARPOON at Position(2612, 3411)
CAGE_HARPOON at Position(2607, 3410)
NET_HARPOON at Position(2612, 3414)
NET_HARPOON at Position(2612, 3415)
NET_HARPOON at Position(2609, 3416)
CAGE_HARPOON at Position(2604, 3417)
NET_HARPOON at Position(2605, 3416)
NET_HARPOON at Position(2602, 3411)
NET_HARPOON at Position(2602, 3412)
CAGE_HARPOON at Position(2602, 3414)
NET_HARPOON at Position(2603, 3417)
NET_HARPOON at Position(2599, 3419)
NET_HARPOON at Position(2601, 3422)
NET_HARPOON at Position(2605, 3421)
CAGE_HARPOON at Position(2602, 3426)
NET_HARPOON at Position(2604, 3426)
CAGE_HARPOON at Position(2605, 3425)

// Fishing platform
NET_ROD at Position(2791, 3279)
NET_ROD at Position(2795, 3279)
NET_ROD at Position(2790, 3273)

// Grand Tree
ROD at Position(2393, 3419)
ROD at Position(2391, 3421)
ROD at Position(2389, 3423)
ROD at Position(2388, 3423)
ROD at Position(2385, 3422)
ROD at Position(2384, 3419)
ROD at Position(2383, 3417)

// Karamja
NET_ROD at Position(2921, 3178)
CAGE_HARPOON at Position(2923, 3179)
CAGE_HARPOON at Position(2923, 3180)
NET_ROD at Position(2924, 3181)
NET_ROD at Position(2926, 3180)
CAGE_HARPOON at Position(2926, 3179)

// Lumbridge
ROD at Position(3239, 3244)
NET_ROD at Position(3238, 3252)

// Miscellenia
CAGE_HARPOON at Position(2580, 3851)
CAGE_HARPOON at Position(2581, 3851)
CAGE_HARPOON at Position(2582, 3851)
CAGE_HARPOON at Position(2583, 3852)
CAGE_HARPOON at Position(2583, 3853)

// Rellekka
NET_ROD at Position(2633, 3691)
NET_ROD at Position(2633, 3689)
CAGE_HARPOON at Position(2639, 3698)
CAGE_HARPOON at Position(2639, 3697)
CAGE_HARPOON at Position(2639, 3695)
NET_HARPOON at Position(2642, 3694)
NET_HARPOON at Position(2642, 3697)
NET_HARPOON at Position(2644, 3709)

// Rimmington
NET_ROD at Position(2990, 3169)
NET_ROD at Position(2986, 3176)

// Shilo Village
ROD at Position(2855, 2974)
ROD at Position(2865, 2972)
ROD at Position(2860, 2972)
ROD at Position(2835, 2974)
ROD at Position(2859, 2976)

// Tirannwn
ROD at Position(2266, 3253)
ROD at Position(2265, 3258)
ROD at Position(2264, 3258)

// Tutorial island
NET_ROD at Position(3101, 3092)
NET_ROD at Position(3103, 3092)

/**
 * Registers the [FishingSpot] at the specified position.
 */
infix fun FishingSpot.at(position: Position) {
    spawnNpc("", position, id = npc)
}