Los proyectiles en Warman estan por todas partes. Bolas de fuego, flechas, rayos en cadena, rafagas de viento, ataques a distancia enemigos, dardos de trampas. Todos pasan por el mismo sistema: un ProjectileManager con pool que gestiona spawning, movimiento, colision y limpieza.

El Ciclo de Vida del Proyectil

Cada tipo de proyectil esta registrado en un array global, indexado por un enum ProjectileID. Cuando el juego necesita una bola de fuego, le pide al manager un proyectil de ese ID. El manager comprueba primero su pool por tipo. Si hay una instancia inactiva, se reactiva. Si no, se instancia una nueva. En cualquier caso, el proyectil entra en la lista activa y empieza a hacer tick.

Manipuladores de Trayectoria

Los manipuladores integrados incluyen DirectionPathManipulator (linea recta, escalada por el stat de velocidad de proyectil del propietario), SinePathManipulator (movimiento hacia adelante combinado con oscilacion sinusoidal lateral) y CirclePathManipulator (movimiento orbital alrededor de un punto central que opcionalmente puede seguir al propietario).

Direction Sine Wave Spiral speed × stat forward + oscillation orbit + expand
Manipuladores de trayectoria: patrones de movimiento intercambiables

Dano y Colision

Cada proyectil lleva un asset ProjectileCreateData que define su grupo de dano, cantidad de perforacion, tiempo de despawn y efectos opcionales de impacto. La colision usa los checks de radio WarmanPhysics personalizados. Sin fisica de Unity involucrada.

La perforacion es simple: cada proyectil rastrea cuantos objetivos ha golpeado. Si el conteo alcanza el limite de perforacion, el proyectil termina. Un valor de perforacion de 255 (maximo de byte) significa perforacion infinita. El proyectil atraviesa todo hasta que su timer expira.

Grupos de Proyectiles

Habilidades al Despawn

Un truco util: los proyectiles pueden lanzar una habilidad al hacer despawn. Una referencia SkillOnDespawn en los datos de creacion se dispara cuando el proyectil expira o golpea una pared. Esto crea flechas explosivas, rayos que se dividen o efectos persistentes. La habilidad de despawn fluye a traves del sistema normal de lanzamiento de habilidades, asi que obtiene todas las interacciones de modificadores y oportunidades de cadena de proc.