Las habilidades son la forma estándar de implementar las acciones del jugador con:
Una interfaz de botones coherente que funciona bien en móviles y PC.
Enfriamientos
Apuntado opcional (tocar/arrastrar en móviles, 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 habilidades)
Dibuja botones de habilidades en Player.ao_late_update, dentro de is_local_or_server():
Player::class:Player_Base{ao_late_update::method(dt:float){ifthis->is_local_or_server(){draw_ability_button(this,Shoot_Ability,0);// botón principal grandedraw_ability_button(this,Dodge_Roll,1);// botón pequeño}}}
Los índices de los botones se asignan a posiciones fijas en pantalla. El índice 0 es el botón principal 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 mantenidas (activas mientras se mantienen pulsadas)
Para habilidades que están activas mientras se mantienen pulsadas (sprint, escudo, haz), usa Ability_Utilities.update_holding_ability para que funcione tanto en PC como en móviles.
Habilidades apuntadas (arrastrar para apuntar en móviles)
Si quieres un comportamiento de “apuntado siempre activo” (apuntar con el ratón + clic para disparar en PC, pulsar-arrastrar-soltar en móviles), 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 aplicar reglas globales (los jugadores muertos no pueden usar habilidades, deshabilitadas durante las cinemáticas, etc).
Mejores prácticas
Dibuja siempre los botones en ao_late_update y protege con is_local_or_server()
Establece current_cooldown cuando lo actives (de lo contrario, se puede spamear)
Usa Ability_Utilities ayudas para mantener/apuntar para que móvil + PC se comporten de forma coherente
Pon las reglas globales en Player.ao_can_use_abilityy no las dupliques por habilidad