boltHabilidades

Las habilidades son la forma estándar de implementar las acciones del jugador con:

  • Una interfaz de botones coherente que funciona bien en móvil y PC.

  • Tiempos de reutilización

  • Apuntamiento opcional (toque/arrastre en móvil, apuntar con ratón en PC)

Las habilidades son por jugador. Cuando un jugador se une, All Out crea una instancia de cada tipo de habilidad y la almacena en player.abilities.

Inicio rápido (dibujar botones de habilidad)

Dibuja botones de habilidad en Player.ao_late_update, dentro de is_local_or_server():

Player :: class : Player_Base {
    ao_late_update :: method(dt: float) {
        if this->is_local_or_server() {
            draw_ability_button(this, Shoot_Ability, 0);  // botón primario grande
            draw_ability_button(this, Dodge_Roll, 1);     // botón pequeño
        }
    }
}
circle-info

Los índices de los botones se asignan a posiciones fijas en la pantalla. El índice 0 es el botón primario grande; los índices 1-5 son botones más pequeños alrededor de él.

Referencia de la API de habilidades

Crear una habilidad (clic básico)

Habilidades de mantenimiento (activas mientras se mantienen)

Para habilidades que están activas mientras se mantienen (esprint, escudo, rayo), usa Ability_Utilities.update_holding_ability para que funcione tanto en PC como en móvil.

Habilidades con apuntado (arrastra para apuntar en móvil)

Si quieres un comportamiento de “apuntar siempre” (apuntar con el ratón + clic para disparar en PC, presionar-arrastrar-soltar en móvil), usa Ability_Utilities.full_update_aimed_ability:

Si quieres “clic para entrar en modo de apuntado” (PC alterna modo de apuntado; clic derecho cancela), usa Ability_Utilities.full_update_targeted_aimed_ability:

Restricciones de habilidades a nivel de juego (opcional)

Implementa ao_can_use_ability en tu Player clase para aplicar reglas globales (los jugadores muertos no pueden usar habilidades, deshabilitado durante escenas, etc.).

Mejores prácticas

  • Siempre dibuja botones en ao_late_update y protégelos con is_local_or_server()

  • Establece current_cooldown cuando lo actives (de lo contrario se puede spammear)

  • Usa Ability_Utilities ayudantes para mantener/apuntar para que móvil + PC se comporten de forma coherente

  • Pon las reglas globales en Player.ao_can_use_ability, no duplicadas por cada habilidad

Última actualización