 	DT_TOKEN_DRONE
 }
 
+//Bullet Type Enum
+enum BulletObjectType
+{
+	BOT_LOW,
+	BOT_NORMAL,
+	BOT_POWERFUL
+}
 
 ///Player Object
 

}


///Drone Object
class LowLevelDrone : DroneObjectBase
{
	int killPoint_;

}


///Bullet Base Class
abstract class BulletObjectBase : ScriptObject
{
	float termTime_;
	float termTimeCounter_;
	BulletObjectType bulletObjectType_;
	float damagePoint_;
	
	
	void Start()
	{
		SubscribeToEvent(node, "NodeCollision", "HandleNodeCollision");
	}
	
	
	void FixedUpdate(float timestep)
	{
		termTimeCounter_ += timestep;
		
		if(termTimeCounter_ >= termTime_)
		{
			Destroy();
		}
	}
	
	
	void HandleNodeCollision(StringHash eventType, VariantMap& eventData)
	{
		Node@ otherNode = eventData["OtherNode"].GetPtr();
		DroneObjectBase@ droneObj = cast<DroneObjectBase>(otherNode.scriptObject);
		
		
		if(droneObj !is null)
		{
			droneObj.OnHit(damagePoint_);
		}
		
		Destroy();
	}
	
	void Destroy()
	{
		node.Remove();
	}
	
}

///Low Level Bullet Object
class LowLevelBullet : BulletObjectBase
{
	LowLevelBullet()
	{
		bulletObjectType_ = BOT_LOW;
		termTime_ = 1;
		termTimeCounter_ = 0;
		damagePoint_ = 1;
	}

}


