package net.phatcode.rel;

import net.phatcode.rel.math.Vector2D;


public class BulletPattern
{
	
	protected class BulletInfo
	{
		Vector2D gravity = new Vector2D();		 	// This makes the bullets sway to a direction
		Vector2D target = new Vector2D();			// Default bullet target
		float angle = 0; 							
		float speed = 0; 
		float acceleration = 0.08f; 				// for accelerated bullets
		int stopCounter = 1;						// ticks when bullets should stop
		int goCounter = 1;							// ticks(relative to stopCounter) when bullets move again after stopping 
		boolean aim = false;						// changes direction to target after stopping
		boolean seekPlayer = true;					// seeks the player after stopping
		Animator animator = new Animator(); 	
		Behavior behavior = new BehaviorAccelerated();		// default behavior
		Behavior nextBehavior = new BehaviorAccelerated();	// behavior after stopping
		int aabbSize = 1;									// collision box size
		
		public void setGravity( float x, float y )
		{
			gravity.set(x,y);
		}
		public void setTarget(  float x, float y )
		{
			target.set(x,y);
		}
		
	}
	
	protected class WaveInfo
	{
	    public int numBullets = 1; 
	    public float xRadius = 0;
	    public float yRadius = 0;
	    public float speedDelta = 0;
	    public float sectorLength = 0;
	    public boolean symmetrical = true;
	    public int shotsPerWave = 1;
	    public int delayPerSpawn = 4; 
	    public int delayPerWave = 4; 
	    public int waveOffset = 0; 
	}
	
    public BulletInfo bulletInfo = new BulletInfo();
    public WaveInfo waveInfo = new WaveInfo();
	
    public BulletPattern()
    {
    }
    
    
    
}
