Habilidades
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 en PC.
Tiempos de reutilización
Apuntado opcional (tocar/arrastrar en móvil, apuntar con el 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 los 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 principal grande
draw_ability_button(this, Dodge_Roll, 1); // botón pequeño
}
}
}Referencia de la API de habilidades
Crear una habilidad (clic básico)
Habilidades mantenidas (activas mientras se mantenga pulsado)
Para habilidades que están activas mientras se mantienen pulsadas (sprint, escudo, rayo), usa Ability_Utilities.update_holding_ability para que funcione tanto en PC como en móvil.
Habilidades con apuntado (arrastrar para apuntar en móvil)
Si quieres un comportamiento de “apuntar siempre” (apuntar con el ratón + clic para disparar en PC, pulsar-arrastrar-soltar en móvil), usa Ability_Utilities.full_update_aimed_ability:
Si quieres un comportamiento de “clic para entrar en modo apuntado” (en PC alterna el modo apuntado; clic derecho cancela), usa Ability_Utilities.full_update_targeted_aimed_ability:
Restricciones de habilidades a nivel global (opcional)
Implementa ao_can_use_ability en tu Player clase para imponer reglas globales (los jugadores muertos no pueden usar habilidades, deshabilitadas durante las cinemáticas, etc.).
Buenas prácticas
Dibuja siempre los botones en
ao_late_updatey protege conis_local_or_server()Establece
current_cooldowncuando la actives (de lo contrario se puede spamear)Usa
Ability_Utilitiesayudantes para mantener/apuntar para que móvil + PC se comporten de forma coherentePon las reglas globales en
Player.ao_can_use_ability, no duplicadas por cada habilidad
Última actualización