import haven.Config;
import haven.Coord;
import haven.FreeSprite;
import haven.GOut;
import haven.Message;
import haven.Resource;
import haven.Sprite;
import haven.TrackingWnd;
public class DowseFx extends FreeSprite
{
double a = 0.0D;
static final int ms = 4000;
static final int r = 100;
int a1;
int a2;
public DowseFx(Sprite.Owner owner, Resource res, Message msg)
{
super(owner, res, -15, 0);
a2 = (msg.uint8() * 360 / 200);
a1 = (msg.uint8() * 360 / 200);
a1 = (-45 - a1);
a2 = (-45 - a2);
int a0 = (a1 + a2)/2;
int d = Math.max(Math.abs(a1 - a2)%360, 5);
a2 = a1 + d;
if(Config.showDirection) {
new TrackingWnd(a0+270, d, a1, a2);
}
}
public void draw(GOut g, Coord c) {
if (this.a < 0.25D) {
g.chcolor(255, 0, 0, 128);
g.fellipse(c, new Coord((int)(this.a / 0.25D * 100.0D), (int)(this.a / 0.25D * 100.0D / 2.0D)));
} else if (this.a < 0.75D) {
g.chcolor(255, 0, 0, (int)((0.75D - this.a) / 0.5D * 128.0D));
g.fellipse(c, new Coord((int)(this.a / 0.25D * 100.0D), (int)(this.a / 0.25D * 100.0D / 2.0D)));
g.chcolor(255, 0, 0, 128);
g.fellipse(c, new Coord(100, 50), this.a1, this.a2);
} else {
g.chcolor(255, 0, 0, (int)((1.0D - this.a) / 0.25D * 128.0D));
g.fellipse(c, new Coord(100, 50), this.a1, this.a2);
}
g.chcolor();
}
public boolean tick(int paramInt) {
this.a += paramInt / 2000.0D;
return this.a >= 1.0D;
}
}