// OT-MMO: misiones. Ventana de misión (al saludar a un NPC con «!» o «?»), diario (L) y seguimiento en pantalla. // Lo pinta game_misiones.lua con lo que manda el servidor (server/scripts/misiones/misiones.lua, opcode 111). // Texto, rótulos y filas: clases comunes de data/styles/50-otmmo.otui (fase 4). // Una línea de objetivo: casilla (llena si está hecho), texto y cuenta. MiObjetivo < Panel height: 20 UIWidget id: casilla anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter size: 8 8 border-width: 1 border-color: $otmmo-border phantom: true GameText id: texto anchors.left: casilla.right anchors.right: cuenta.left anchors.verticalCenter: parent.verticalCenter margin-left: 8 text-auto-resize: false GameNumber id: cuenta anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter width: 44 text-auto-resize: false color: $otmmo-text-2 text-align: right // Objeto de recompensa: casilla con el ícono y el nombre al lado. MiPremio < Panel height: 40 GameCell id: marco anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter phantom: true UIItem id: item anchors.centerIn: parent size: 32 32 virtual: true phantom: true GameText id: nombre anchors.left: marco.right anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter margin-left: 12 height: 32 text-auto-resize: false text-wrap: true // Fila del diario (lista de la izquierda). MiFila < GameRow height: 40 GameLabelStrong id: nombre anchors.top: parent.top anchors.left: parent.left anchors.right: parent.right margin-top: 4 text-auto-resize: false height: 16 phantom: true GameTextSmall id: meta anchors.top: nombre.bottom anchors.left: parent.left anchors.right: parent.right margin-top: 2 text-auto-resize: false height: 14 phantom: true // Seguimiento (23-oct, «muy notorio»): cabecera con la cuenta, un bloque por misión (nombre con el color de dificultad, // objetivos en text con su cuenta en Geist Mono) y la de la ruta marcada con fondo surface y borde de acento. // Un clic en el bloque marca o quita la ruta. MiSegCabecera < UIWidget height: 18 phantom: false focusable: false @onClick: modules.game_misiones.plegar() GameLabelStrong id: titulo anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter color: $otmmo-text-2 phantom: true GameNumber id: cuenta anchors.right: parent.right anchors.verticalCenter: parent.verticalCenter color: $otmmo-text-2 phantom: true MiSegMision < UIWidget phantom: false focusable: false margin-top: 6 padding: 6 8 7 8 border-width: 1 border-color: #00000000 layout: type: verticalBox fit-children: true spacing: 3 $hover: background-color: $otmmo-surface-hover $on: background-color: $otmmo-surface border-color: $otmmo-accent MiSegNombre < Label ttf-font: $otmmo-font-strong ttf-font-size: $otmmo-size-md color: $otmmo-text text-wrap: true text-auto-resize: true phantom: true // Línea de objetivo: casilla, cuenta en Geist Mono («3/8», si hay cuenta) y el texto con ajuste de línea. OTClient pinta // el texto desde el borde del widget (no respeta el padding): el hueco para casilla y cuenta es el text-offset, que // game_misiones.lua fija según haya cuenta o no. MiSegObjetivo < Label ttf-font: $otmmo-font ttf-font-size: $otmmo-size-sm color: $otmmo-text text-wrap: true text-auto-resize: true text-offset: 14 0 phantom: true UIWidget id: casilla anchors.left: parent.left anchors.top: parent.top margin-top: 5 size: 7 7 border-width: 1 border-color: $otmmo-text-2 phantom: true Label id: cuenta anchors.left: parent.left anchors.top: parent.top margin-left: 14 ttf-font: $otmmo-font-num ttf-font-size: $otmmo-size-sm color: $otmmo-text text-auto-resize: true phantom: true // Estado de la ruta dentro del bloque marcado («Ruta marcada», «Ruta: sube 1 piso»). MiSegRuta < Label ttf-font: $otmmo-font-strong ttf-font-size: $otmmo-size-xs color: $otmmo-accent text-auto-resize: true phantom: true // Ruta sobre el minimapa y el mapa (M): línea de acento con sombra bg, flecha en el borde y aviso de piso. MiRutaSombra < UIWidget height: 5 background-color: #10161CCC phantom: true focusable: false MiRutaLinea < UIWidget height: 3 background-color: $otmmo-accent phantom: true focusable: false MiRutaFlecha < UIWidget size: 16 16 image-source: /modules/game_misiones/images/ruta-flecha phantom: true focusable: false MiRutaPiso < UIWidget size: 13 13 phantom: true focusable: false // Marca de objetivo en el minimapa y el mapa (M). Clic: marcar la ruta de esa misión. MiMarcaObjetivo < UIWidget size: 19 19 focusable: false // Lista de misiones de un NPC o tablón (pestaña Misiones del diálogo, ventana del tablón): fila GameRow con la marca // «!» / «?» (apagada en curso), el nombre y el estado debajo («Disponible», «Lista para entregar» en acento, «En curso»). MiFilaNpc < GameRow height: 40 focusable: false change-cursor-image: true cursor: pointer UIWidget id: marca anchors.left: parent.left anchors.verticalCenter: parent.verticalCenter size: 12 19 phantom: true GameLabelStrong id: nombre anchors.top: parent.top anchors.left: marca.right anchors.right: parent.right margin-top: 4 margin-left: 12 text-auto-resize: false height: 16 phantom: true GameTextSmall id: estado anchors.top: nombre.bottom anchors.left: nombre.left anchors.right: parent.right margin-top: 2 text-auto-resize: false height: 14 phantom: true