예제 #1
0
    private void EliminarEventosDesactualizados(int IDInteractuable, InfoInteractuable infoInteractuable)
    {
        for (int i = infoInteractuable.DevolverNumeroEventos() - 1; i >= 0; i--)
        {
            if (!infoInteractuable.DevuelveEventoActualizado(i))
            {
                int IDEvento = infoInteractuable.DevuelveIDEvento(i);
                infoInteractuable.EliminarEvento(i);

                EventoLista eventoLista;

                //Si existe
                if (listaEventos.TryGetValue(IDEvento, out eventoLista))
                {
                    int pos = eventoLista.PosicionInteractuable(IDInteractuable);

                    if (pos != -1)
                    {
                        eventoLista.BorrarInteractuable(pos);
                        if (eventoLista.IsInterEmpty())
                        {
                            listaEventos.Remove(IDEvento);
                        }
                    }
                }
            }
        }
    }
예제 #2
0
    private void AddLugaresSiguientes(int IDInteractuable, InfoInteractuable infoInteractuable, List <PosicionLugarSiguiente> posLugarSiguiente, bool autorutina, int IDRutina)
    {
        DateTime fechaRutina = DateTime.UtcNow;

        infoInteractuable.SetFechaCambioRutina(fechaRutina);

        for (int i = 0; i < posLugarSiguiente.Count; i++)
        {
            Contenedor contenedor;

            if (!contenedores.TryGetValue(posLugarSiguiente[i].hora, out contenedor))
            {
                contenedor = new Contenedor();
                contenedores.Add(posLugarSiguiente[i].hora, contenedor);
            }

            posLugarSiguiente[i].lugarSiguiente.setFechaRutina(fechaRutina);
            contenedor.AddLugarSig(posLugarSiguiente[i].lugarSiguiente);
        }

        if (autorutina)
        {
            CargarAutorutina(IDRutina, fechaRutina);
        }
    }
예제 #3
0
 private void MarcarEventosDesactualizados(InfoInteractuable infoInteractuable)
 {
     for (int i = 0; i < infoInteractuable.DevolverNumeroEventos(); i++)
     {
         infoInteractuable.DesactualizarEvento(i);
     }
 }
예제 #4
0
	//Carga el interactuable en el diccionario al iniciar el juego
	public void CargarInteractuable(DatosInteractuable datosInteractuable)
	{
		InfoInteractuable infoInteractuable = new InfoInteractuable();
		infoInteractuable.SetTipoInter(datosInteractuable.tipoInter);
		infoInteractuable.SetIDRutina(datosInteractuable.IDRutinaActual);

		infoInteractuables[datosInteractuable.IDInteractuable] = infoInteractuable;

		//Si el interactuable tiene rutina, cargamos la rutina
		if(datosInteractuable.IDRutinaActual != -1)
			CargarRutina(datosInteractuable.IDRutinaActual, true, false);
	}
예제 #5
0
    /*private void SetEscenaActual(int escenaActual)
     * {
     *      this.escenaActual = escenaActual;
     * }*/

    //Carga el interactuable en el diccionario al iniciar el juego
    public void CargarInteractuable(DatosInteractuable datosInteractuable)
    {
        InfoInteractuable infoInteractuable = new InfoInteractuable();

        infoInteractuable.SetTipoInter(datosInteractuable.tipoInter);
        infoInteractuable.SetIDRutina(datosInteractuable.IDRutinaActual);

        infoInteractuables[datosInteractuable.IDInteractuable] = infoInteractuable;

        //Si el id de rutina es positivo, significa que el interactuable tiene rutina, la cargamos
        if (datosInteractuable.IDRutinaActual >= 0)
        {
            CargarRutina(datosInteractuable.IDRutinaActual, true, false);
            numeroInteractuablesConRutina++;
        }
        //Si es negativo, el id indica el número de la escena/nivel con el signo cambiado
        else
        {
            infoInteractuable.SetIDEscena(-datosInteractuable.IDRutinaActual);
        }
    }
예제 #6
0
	private void EliminarEventosDesactualizados(int IDInteractuable, InfoInteractuable infoInteractuable)
	{
		for(int i = infoInteractuable.DevolverNumeroEventos() - 1; i >= 0; i--)
		{
			if(!infoInteractuable.DevuelveEventoActualizado(i))
			{
				int IDEvento = infoInteractuable.DevuelveIDEvento(i);
				infoInteractuable.EliminarEvento(i);

				EventoLista eventoLista;

				//Si existe
				if (listaEventos.TryGetValue(IDEvento, out eventoLista))
				{
					int pos = eventoLista.PosicionInteractuable(IDInteractuable);

					if(pos != -1)
					{
						eventoLista.BorrarInteractuable(pos);
						if(eventoLista.IsInterEmpty())
						{
							listaEventos.Remove(IDEvento);
						}
					}
				}
			}
		}
	}
예제 #7
0
	private void AddEventoAInteractuable(InfoInteractuable infoInteractuable, int IDEvento)
	{
		infoInteractuable.AddEvento(IDEvento);
	}
예제 #8
0
	private void AddLugaresSiguientes(int IDInteractuable, InfoInteractuable infoInteractuable, List<PosicionLugarSiguiente> posLugarSiguiente, bool autorutina, int IDRutina)
	{
		DateTime fechaRutina = DateTime.UtcNow;
		infoInteractuable.SetFechaCambioRutina(fechaRutina);
	
		for(int i = 0; i < posLugarSiguiente.Count; i++)
		{
			Contenedor contenedor;

			if (!contenedores.TryGetValue(posLugarSiguiente[i].hora, out contenedor))
			{
				contenedor = new Contenedor();
				contenedores.Add(posLugarSiguiente[i].hora, contenedor);
			}
				
			posLugarSiguiente[i].lugarSiguiente.setFechaRutina(fechaRutina);
			contenedor.AddLugarSig(posLugarSiguiente[i].lugarSiguiente);
		}

		if(autorutina)
			CargarAutorutina(IDRutina, fechaRutina);
	}
예제 #9
0
	private void MarcarEventosDesactualizados(InfoInteractuable infoInteractuable)
	{
		for(int i = 0; i < infoInteractuable.DevolverNumeroEventos(); i ++)
		{
			infoInteractuable.DesactualizarEvento(i);
		}
	}
예제 #10
0
 private void AddEventoAInteractuable(InfoInteractuable infoInteractuable, int IDEvento)
 {
     infoInteractuable.AddEvento(IDEvento);
 }