public class BackgroudEffect
{
	public const int TYPE_SAO = 4;

	public static MyVector vBgEffect = new MyVector();

	private int[] x;

	private int[] y;

	private int[] vx;

	private int[] vy;

	public static int[] wP;

	private int num;

	private int xShip;

	private int yShip;

	private int way;

	private int trans;

	private int frameFire;

	private int tFire;

	private int tStart;

	private int speed;

	private bool isFly;

	public static Image imgSao;

	private int[] type;

	private int sum;

	public int typeEff;

	public int xx;

	public int waterY;

	private bool[] isRainEffect;

	private int[] frame;

	private int[] t;

	private bool[] activeEff;

	private int yWater;

	private int colorWater;

	public Image imgChamTron1;

	public Image imgChamTron2;

	private int[] dem = new int[6] { 0, 1, 2, 1, 0, 0 };

	private int[] tick;

	public BackgroudEffect(int typeS)
	{
		typeEff = typeS;
		int num = typeEff;
		if (num != 4)
		{
			return;
		}
		sum = CRes.random(5, 10);
		if (imgSao == null)
		{
			imgSao = CCanvas.loadImageRMS("/eff/sao.png");
		}
		x = new int[sum];
		y = new int[sum];
		frame = new int[sum];
		t = new int[sum];
		tick = new int[sum];
		for (int i = 0; i < sum; i++)
		{
			x[i] = CRes.random(0, CCanvas.w);
			y[i] = CRes.random(0, 50);
			if (i % 2 == 0)
			{
				tick[i] = 0;
			}
			else if (i % 3 == 0)
			{
				tick[i] = 1;
			}
			else if (i % 4 == 0)
			{
				tick[i] = 2;
			}
			else
			{
				tick[i] = 3;
			}
			t[i] = CRes.random(0, 10);
		}
	}

	public static void clearImage()
	{
	}

	public static void keyValueAction(string key, string value)
	{
	}

	private void reloadShip()
	{
		int num = Camera.x;
		int num2 = Camera.y;
		way = CRes.random(1, 3);
		isFly = false;
		speed = CRes.random(3, 5);
		if (way == 1)
		{
			xShip = -50;
			yShip = CRes.random(num2, CCanvas.h - 100 + num2);
			trans = 0;
		}
		else if (way == 2)
		{
			xShip = MM.mapWidth + 50;
			yShip = CRes.random(num2, CCanvas.h - 100 + num2);
			trans = 2;
		}
		else if (way == 3)
		{
			xShip = CRes.random(50 + num, CCanvas.w - 50 + num);
			yShip = -50;
			int num3 = CRes.random(0, 2);
			trans = ((num3 != 0) ? 2 : 0);
		}
		else if (way == 4)
		{
			xShip = CRes.random(50 + num, CCanvas.w - 50 + num);
			yShip = MM.mapHeight + 50;
			int num4 = CRes.random(0, 2);
			trans = ((num4 != 0) ? 2 : 0);
		}
	}

	public void paintFar(mGraphics g)
	{
		g.translate(-g.getTranslateX(), -g.getTranslateY());
		if (typeEff == 4)
		{
			for (int i = 0; i < sum; i++)
			{
				g.drawRegion(imgSao, 0, 16 * frame[i], 16, 16, 0, x[i], y[i], 0, false);
			}
		}
	}

	public void update()
	{
		int num = typeEff;
		if (num != 4)
		{
			return;
		}
		for (int i = 0; i < sum; i++)
		{
			t[i]++;
			if (t[i] > 10)
			{
				tick[i]++;
				t[i] = 0;
				if (tick[i] > 5)
				{
					tick[i] = 0;
				}
				frame[i] = dem[tick[i]];
			}
		}
	}

	public void paintFront(mGraphics g)
	{
		int num = typeEff;
	}

	public void paintBack(mGraphics g)
	{
		int num = typeEff;
	}

	public static void addEffect(int id)
	{
		if (!BackgroundNew.lowGraphic)
		{
			BackgroudEffect o = new BackgroudEffect(id);
			vBgEffect.addElement(o);
		}
	}

	public static void paintFrontAll(mGraphics g)
	{
		for (int i = 0; i < vBgEffect.size(); i++)
		{
			((BackgroudEffect)vBgEffect.elementAt(i)).paintFront(g);
		}
	}

	public static void paintFarAll(mGraphics g)
	{
		for (int i = 0; i < vBgEffect.size(); i++)
		{
			((BackgroudEffect)vBgEffect.elementAt(i)).paintFar(g);
		}
	}

	public static void paintBackAll(mGraphics g)
	{
		for (int i = 0; i < vBgEffect.size(); i++)
		{
			((BackgroudEffect)vBgEffect.elementAt(i)).paintBack(g);
		}
	}

	public static void updateEff()
	{
		for (int i = 0; i < vBgEffect.size(); i++)
		{
			((BackgroudEffect)vBgEffect.elementAt(i)).update();
		}
	}
}
