PLUGIN: radar

ngPAWS (next generation Professional Adventure Writing System) es un sistema para crear aventuras de texto (también conocidas como ficción interactiva) que pueden jugarse en cualquier navegador actual (online u offline).

Moderador: Ejvg

Responder
Avatar de Usuario
tranqui69
Mensajes: 102
Registrado: 15 Abr 2023, 08:33
Contactar:

PLUGIN: radar

Mensaje por tranqui69 »

Este plugin aún está en desarrollo, pero os puede servir como guía.
El condacto radar busca las localidades que tienen conexión con la localidad actual y, a continuación, busca las localidades que tienen conexión con ellas.
De este modo podemos disponer de una especie de 'radar' que muestre las localidades próximas a la actual.
En mi caso lo utilizo para detectar si hay personajes cerca.
¿Y por qué no lo hago con el número de localidad? Pues porque a veces no son correlativas y/o no tienen conexiones válidas.
No sé si me he explicado, pero para eso está el foro.

Código: Seleccionar todo

function ACCradar() {
    const exits = ['', '', 'norte', 'sur', 'este', 'oeste', 'noreste', 'noroeste', 'sureste', 'suroeste', 'arriba', 'abajo', 'dentro', 'fuera'];
    const cerca = [];
    const lejos = [];

    const locno = loc_here();
    const numConnectionVerbs = NUM_CONNECTION_VERBS;

    for (let i = 0; i < numConnectionVerbs; i++) {
        const connection = getConnection(locno, i);
        if (connection !== -1) {
            const nextloc = connection;
            const exitName = exits[i];

            cerca.push({
                origen: locno,
                direccion: exitName,
                numeroLocalidad: nextloc
            });

            for (let a = 0; a < numConnectionVerbs; a++) {
                const nextConnection = getConnection(nextloc, a);
                if (nextConnection !== -1) {
                    lejos.push({
                        origen: nextloc,
                        direccion: exits[a],
                        numeroLocalidad: nextConnection
                    });
                }
            }
        }
    }

    console.log(cerca);
    console.log(lejos);
}
Responder