PartyScenario:

En el siguiente escenario se tiene tres tipos de agente

	HostAgent: Agente anfitrión de la fiesta. Su tarea consiste en dar comienzo a la fiesta
		y atender a los invitados cuando llegan y se marchan. Además durante la fiesta beberá 
		y comerá como un participante más.
		Para realizar estas tareas nada más crearse se identifica como host y de tipo attendant en el DF y manda
		un mensaje a todos los camareros para que comiencen a trabajar.
		Para atender a los invitados se le ha añadido un ciclic behaviour que si es un saludo
		da la bienvenida y si es un adios se despide.
		Para atender el ofrecimiento de los camareros tiene un comportamiento Proposeresponder
		que aleatoriamente (y si no está lleno) acepta el ofrecimiento.
		Finalmente posee un ticker behaviour que cada cierto tiempo mira en el DF si aún quedan
		invitados. En caso contrario acaba la fiesta y en el take down se elimina del DF y despide
		a los camareros con un kill.
		Solo podrá haber un único agente de tipo HostAgent.
		
	GuestAgent: Puede haber múltiples guest agents (tantos como se desee). Estos agentes recibirán
		como parámetro el momento de llegar a la fiesta (el tiempo de comenzar un waker behaviour en milis).
		La tarea de estos agentes es saludar a los presentes en la fiesta, comer y beber y cuando tengan demasiado
		de alguna de estas cosas marcharse.
		Para saludar a todos los presentes poseen un comportamineto waker que cuando se despiertan buscan aquellos agentes
		que ofrezcan un servicio de tipo attendant e iran saludando aleatoriamente uno a uno a todos los de esta lista,
		guardando en una lista interna a quien han saludado ya. Una vez han terminado se registran el el DF con un servicio de
		tipo attendant y nombre guest.
		Siempre el último en llegar saluda a todos los demás y estos responderan a su saludo. Para esta respuesta se tiene un
		comportamiento cíclico que si recive un saludo contesta.
		De manera similar al host tambien poseen un comportamiento Proposeresponder y un ticker que mira si ha cubierto con su
		capacidad máxima de comoida o bebida. De ser así se marcha de la fiesta y en su take down se despide del host y se desregistra
		del DF
	
	WaiterAgent: Puede haber múltiples agentes de este tipo pero su nombre debe comenzar por WAITER para que funcione correctamente
		Este agente recibe como parámetros tanto que sirve (dos posibles valores: comida o bebida y ademas debe ser el primero) como
		cada cúanto sirve (tiempo en milis y segundo parámetro).
		Al comenzar la fiesta en su setup() se registran en el DF con un servicio de nombre waiter y de tipo lo que sirvan.
		Posee un ticker behaviour que busca a todos los presentes de servicio tipo attendan e inicia un comportamento proposeiniciator
		tras escoger a uno de los invitados aleatoriamente para ofrecerle comida.
		Cuando son eliminados simplemente se desregistran del DF
		