I suggest you store monster as type record.
As well as store the color and the tolerance as an array (Integer array or a TPoint array). This way you can find the monster using more specific colors (that has small tolerance) thus giving you more accurate results.
Here is a function that finds an array of colors:
Simba Code:
Function FindManyColors( CT: TPointArray; SP, EP: TPoint): TPointArray;
Var
TI: Integer;
TTPA: TPointArray;
Begin
For TI := 0 To ( Length( CT) - 1) Do
TB := FindColorsTolerance( TTPA, CT[ TI].X, SP.X, SP.Y, EP.X, EP.Y, CT[ TI].Y)
Result:= CombineTPA( Result, TTPA);
End;
CT is a TPointArray that store colors and tolerance instead of X,Y.
So
CT[0]=(1231519,7);
CT[1]=(91238412,3);