↓
iaen.es Diario de desarrollo Read in English

Gotic · 3 min de lectura

Una misión de recolección en Godot: las flores de brisa de Lía y su corona

La primera misión de Gotic: recoger tres flores violetas para una infusión que te hace correr un 25 % más y, a la segunda entrega, ganar una corona de flores que se ve en la cabeza.

#misiones#mods#pruebas#personajes

Una misión de recolección en Godot: las flores de brisa de Lía y su corona

En el puesto verde de Brumacosta, Lía la herborista te hace el primer encargo de la isla: «Necesito tres ramilletes para una infusión. Te marcaré dónde buscarlos». Si pulsas ACEPTAR: TRES FLORES DE BRISA, aparecen seis matas de flores violetas alrededor de la aldea, cada una con su marca en el mapa. Con tres basta. Al entregarlas, Lía te prepara una infusión que te hace correr un 25 % más rápido durante 60 segundos. A la segunda entrega te regala una corona de flores, y desde entonces puedes pedirle la infusión siempre que se te haya pasado el efecto.

Es una misión pequeña, pero fue la primera, y su patrón se repite después por toda la isla: aceptar, recoger, entregar, la marca en el mapa, la línea del diario y una recompensa que se lleva puesta.

Cómo está hecho

Las seis flores son mallas hechas por código: cinco tallos, cada uno con cinco pétalos violetas y un botón dorado, y la etiqueta «Flor de brisa» encima. Solo aparecen después de aceptar el encargo. Para recoger una hay que cumplir varias condiciones:

func pick(index: int) -> void:
	if world.is_blocked() or not accepted or completed >= 2 or picked.has(index) or index < 0 or index >= flowers.size():
		return
	if world.player.global_position.distance_to(flowers[index].global_position) > 3.0 or world.player.mover != null:
		return

Eso significa: no recoger con una ventana o el mapa abiertos, no recoger dos veces la misma flor, estar a menos de 3 m y no ir montado en nada. Esto último impide recogerlas volando con la escoba por encima. Cada condición tiene su prueba.

La velocidad no se suma a lo bruto. El jugador tiene un diccionario de factores, uno por mod (speed_factors["encargos"] = 1.25), así que la infusión se suma a las botas del rebaño sin que ningún mod pise a otro. La cuenta atrás de la infusión se para cuando hay un menú abierto.

Los encargos dependen de la aldea: si apagas Brumacosta, se apagan con ella, y si enciendes los encargos, la aldea vuelve.

Lo que salió mal

  • La corona no es del mod. Cuelga del hueso de la cabeza del jugador y la velocidad está en el propio jugador, así que al apagar los encargos liberar el nodo del mod no las quitaba. teardown tiene que retirar a mano todo lo que el mod ha dejado en otros nodos. Esto acabó siendo una de las lecciones generales del proyecto, y hoy una prueba común lo comprueba en todos los mods.
  • Partidas malformadas. Una partida guardada con flores repetidas o con más flores de las posibles podía dejar el encargo imposible de terminar. Ahora, al cargar, las flores se revisan una a una y, si el total no cuadra con las entregas, el encargo vuelve a empezar. Una prueba carga una partida así a propósito.
  • El segundo dedo. En el móvil, Godot solo emula el ratón con el primer dedo. Con el pulgar en el joystick, un botón normal no se pulsaría con el otro dedo. Una prueba pulsa USAR con el segundo dedo junto a una flor y comprueba que la recoge una sola vez.

En la captura, la ventana de Lía ya enseña los corazones de amistad del mod de vecinos, que llegó después.

Lo que falta por comprobar

En la ronda en la que nació pasaron 429 comprobaciones, pero nadie ha recogido estas flores con dedos de verdad en un móvil, y no sé si seis flores a los lados de la aldea son un paseo agradable o un trámite. Esta captura costó 480 llamadas de dibujo en el PC.

Más de Gotic →