55import net .runelite .api .gameval .NpcID ;
66
77import java .security .InvalidParameterException ;
8+ import java .util .Arrays ;
9+ import java .util .List ;
810
911public enum Customer {
1012
@@ -32,16 +34,16 @@ public enum Customer {
3234 // Hard NPCs
3335 HAZELMERE (101 , "Hazelmere" , CustomerLocation .fixed (NpcID .GRANDTREE_HAZELMERE_MULTI , 2678 , 3086 )),
3436 GNORMADIUM_AVLAFRIM (102 , "Gnormadium Avlafrim" , CustomerLocation .fixed (NpcID .GNORMADIUM_AVLAFRIM_GLIDER , 2544 , 2973 )),
35- CAPTAIN_NINTO (103 , "Captain Ninto" , CustomerLocation .fixed (NpcID .ALUFT_PILOT_NINTO , 2869 , 9877 )),
36- CAPTAIN_DAERKIN (104 , "Captain Daerkin" , CustomerLocation .fixed (NpcID .ALUFT_PILOT_DAERKIN , 3355 , 3210 )),
37- BRAMBICKLE (105 , "Brambickle" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_EXPLORER_MOUNTAIN , 2786 , 3862 )),
38- WINGSTONE (106 , "Wingstone" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_EXPLORER_SAFARI , 3380 , 2893 )),
39- PENWIE (107 , "Penwie" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_EXPLORER_JUNGLE , 2932 , 2972 )),
37+ CAPTAIN_NINTO (103 , "Captain Ninto" , CustomerLocation .fixed (NpcID .ALUFT_PILOT_NINTO , 2869 , 9877 ), Arrays . asList ( Reward . GOGGLES , Reward . SCARF ) ),
38+ CAPTAIN_DAERKIN (104 , "Captain Daerkin" , CustomerLocation .fixed (NpcID .ALUFT_PILOT_DAERKIN , 3355 , 3210 ), Arrays . asList ( Reward . GOGGLES , Reward . SCARF ) ),
39+ BRAMBICKLE (105 , "Brambickle" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_EXPLORER_MOUNTAIN , 2786 , 3862 ), Arrays . asList ( Reward . SEED_PODS , Reward . MINT_CAKE ) ),
40+ WINGSTONE (106 , "Wingstone" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_EXPLORER_SAFARI , 3380 , 2893 ), Arrays . asList ( Reward . SEED_PODS , Reward . MINT_CAKE ) ),
41+ PENWIE (107 , "Penwie" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_EXPLORER_JUNGLE , 2932 , 2972 ), Arrays . asList ( Reward . SEED_PODS , Reward . MINT_CAKE ) ),
4042 AMBASSADOR_GIMBLEWAP (108 , "Ambassador Gimblewap" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_DIPLOMAT_ARDOUGNE , 2572 , 3299 )),
4143 AMBASSADOR_SPANFIPPLE (109 , "Ambassador Spanfipple" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_DIPLOMAT_FALADOR , 2984 , 3342 , 1 )),
4244 AMBASSADOR_FERRNOOK (110 , "Ambassador Ferrnook" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_DIPLOMAT_VARROCK , 3209 , 3474 )),
4345 PROFESSOR_IMBLEWYN (111 , "Professor Imblewyn" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_MAGE_2 , 2590 , 3092 )),
44- PROFESSOR_MANGLETHORP (112 , "Professor Manglethorp" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_INVENTOR , 2868 , 10198 )),
46+ PROFESSOR_MANGLETHORP (112 , "Professor Manglethorp" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_INVENTOR , 2868 , 10198 ), Arrays . asList ( Reward . SEED_PODS ) ),
4547 PROFESSOR_ONGLEWIP (113 , "Professor Onglewip" , CustomerLocation .fixed (NpcID .ALUFT_GNOME_MAGE , 3115 , 3160 )),
4648 GARKOR (114 , "Garkor" , new GarkorLocation ()),
4749 KING_BOLREN (115 , "King Bolren" , CustomerLocation .fixed (NpcID .KING_BOLREN , 2542 , 3169 )),
@@ -54,6 +56,7 @@ public enum Customer {
5456 private final int id ;
5557 private final String name ;
5658 private final CustomerLocation location ;
59+ private final List <Reward > uniqueRewards ;
5760
5861 public static Customer forId (int id ) {
5962 for (var recipient : values ()) {
@@ -64,10 +67,17 @@ public static Customer forId(int id) {
6467 throw new InvalidParameterException ("No customer found with the id " + id );
6568 }
6669
70+ Customer (int id , String name , CustomerLocation location , List <Reward > uniqueRewards ) {
71+ this .id = id ;
72+ this .name = name ;
73+ this .location = location ;
74+ this .uniqueRewards = uniqueRewards ;
75+ }
6776 Customer (int id , String name , CustomerLocation location ) {
6877 this .id = id ;
6978 this .name = name ;
7079 this .location = location ;
80+ this .uniqueRewards = Arrays .asList ();
7181 }
7282
7383 public String getName () {
@@ -85,4 +95,8 @@ public int getNpcTypeId(Client client) {
8595 public WorldPoint getLocation (Client client ) {
8696 return this .location .resolve (client );
8797 }
98+
99+ public List <Reward > getUniqueRewards () {
100+ return this .uniqueRewards ;
101+ }
88102}
0 commit comments