Skip to content

Etapa 1: API para pintar el piso del mapa #7

Description

@leocagli

Parte de #2 (modo construcción). Depende de la persistencia y del registro de gráficos.

Cierra el objetivo mínimo: con esta issue, un PNG subido ya se ve en el piso del juego.

Alcance

API para modificar los tiles de un mapa:

  1. Pintar un tile: (mapa, x, y) pasa a usar una entrada de paleta.
  2. Pintar un rectángulo o una selección de tiles en una sola operación (pintar de a uno 10.000 veces no es viable desde un editor).
  3. Cambiar el flag de bloqueado de un tile o de un rango.
  4. Consultar el estado actual de una región del mapa.

Toda mutación pasa por la capa de persistencia y queda registrada.

Validaciones necesarias

  • Coordenadas dentro de la grilla (los mapas son 100x100, x e y empiezan en 1)
  • La entrada de paleta referenciada existe en ese mapa
  • La operación es atómica: si falla a mitad de un rectángulo, no queda el mapa a medio pintar
  • Límite de tamaño por operación, para que una sola request no pinte el mapa entero por accidente

Criterios de aceptación

  • Pintar un tile cambia lo que ve el jugador tras recargar el mapa
  • Pintar un rectángulo de 20x20 es una sola operación atómica
  • Coordenadas fuera de rango devuelven 400, no corrompen nada
  • Un tile marcado como bloqueado impide caminar por ahí (verificar contra el server de juego, que valida movimiento del lado servidor)
  • Una operación fallida deja el mapa exactamente como estaba
  • Tests de integración

Nota sobre el bloqueo

El flag blocked no es cosmético: el server del juego valida el movimiento del lado servidor. Un tile mal marcado puede dejar jugadores encerrados o permitir caminar sobre agua. Vale la pena un chequeo que detecte regiones caminables que quedaron aisladas después de una edición.

Archivos relevantes

  • terrain.json de los mapas en api/src/mapas_source/
  • La validación de movimiento vive en el server de juego (server/), no en esta API

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardThird CampaignCampaign: Third CampaignbountyIssue con recompensa asignadaenhancementNew feature or requestetapa-1-pisoEtapa 1 - pintar el piso del mapa con PNG propiosgrantfoxPublicada en la campana de GrantFoxmodo-construccionModo construccion in-game: editor de mapas en el navegadorreward-50-usdRecompensa 50 USD - complejidad media

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions