Here's my thoughts:
We can make a generic color AND reflection 'casted spell' procedure. Rough Idea below:
Simba Code:
Function IsCasting(colors: TIntegerArray; PointCount, Tol: Integer;): boolean;
ColorsFound: Integer;
Points:TPointArray;
begin
Freeze; //Freeze the client. Gives the script time to check colors, AND animations :o
if not IsAnimating then
begin
Result := False;
UnFreeze;
end else
begin
for i := 0 to high(colors) do
begin
FindColorsTolerance(Points,Colors[i],MSX1,MSY1,MSX2,MSY2,tol);
IncEx(ColorsFound,High(Points));
end;
If (colorsFound >= PointCount) Then
Result := True;
UnFreeze;
end;
end;
Probably wont compile - I just wrote it in the reply box.
My main concern is that its too slow, But I haven't tried it out.