Me acerqué a esto y sigo sin saber cómo resolverlo.
Mi idea es:
// Frame 1: La IA recibe una carta, el humano también.
// F2: Un objeto repite TurnoDeHumano hasta que se presione A.
// F3: Un objeto repite CartaOpcional hasta que se elija una opción.
// F4: Pequeña pausa.
// F5: Turno de la IA.
// F6: Nada, sólo para mostrar victoria o derrota.
El problema es CartaOpcional.
Variables relevantes:
MarioDKAt = 2;
MarioDKDescription = "Mario de Donkey Kong. Poder: "+MarioDKAt+"\nElige:\n<- Mario ataca con su poder normal.\n-> Pierdes 1HP, Mario ataca con su poder +1.";
Función normal, hay una para cada carta:
function MarioDK (ataque, objetivo) {
if (objetivo == "IA") {
// Esta carta tiene opciones:
// Option1 = "Normal";
Ataque1 = ataque;
Mensaje1 = "¡Rival dañado!";
// Option2 = "Hammer";
Ataque2 = ataque+1;
Mensaje2 = "¡Rival dañado y perdiste 1HP!";
// Va a un frame hasta que se elige una:
gotoAndStop (3);
} else {
// ESTO NECESITA IA
Mensaje = Mensaje+"\n¡DKMario rival te dañó!";
TipicoAtaqueDeIA(ataque);
}
}
Que necesita IA no es el problema, eso lo debo hacer luego.
Función problemática:
function CartaOpcional () {
// Si se presiona izquierda:
if (Key.isDown(37)) {
// Usa la carta elegida aplicando la opción 1:
Mensaje = Mensaje1;
TipicoAtaqueHumano (Ataque1);
play();
// sino si se presiona derecha:
} else if (Key.isDown(39)) {
Mensaje = Mensaje2;
// ACÁ DEBE PERDER 1HP, NO ES TÍPICO
TipicoAtaqueHumano (Ataque2);
play();
}
}
El problema es que esa función debe ejecutarse repetidamente en el frame 3, hasta que el humano elija una opción. Sea cual sea la carta que usó. Pero las opciones y efectos dependen de la carta. En la función que ejecuta los efectos de DKMario intenté crear lo que servirían de parámetros. Pero no parece suficiente. Paso el mensaje que debe dar y el daño que debe causar al rival, pero no los efectos atípicos como daño al usuario, paralizar al rival, etc. ¿Debería crear una función para cada efecto y pasar el parámetro de qué efectos se deben llamar en cada opción?
Otra opción sería crear una función extra para este tipo de cartas, y con una variable indicar cual de ellas debe ejecutarse cuando se elija una opción.
Supongo que lo de función para cada efecto es mejor, aunque al principio parezca una tarea más pesada.
¿Está bien? ¿alternativas mejores?