Saltar a contenido

Projectile System

Tipo: Exec (In → Out)
Categoría: PLAYER

Comportamiento completo del proyectil en vuelo. Se coloca en el objeto proyectil (no en el jugador). Detecta colisiones, aplica daño, gestiona la vida útil, opciones de gravedad, pool de objetos y efectos de estela.

Propiedades

Propiedad Tipo Por defecto Descripción
Damage Float 25.0 Daño entregado al objeto impactado
Lifetime Float 3.0 Segundos hasta autodestrucción
Destroy on Hit Bool True Destruye/libera el proyectil al primer impacto válido
Property Filter String "" Solo colisiona con objetos que tengan esta propiedad BGE
Gravity Bool False Aplica gravedad hacia abajo cada frame
Gravity Strength Float 9.8 Aceleración de caída (unidades/s²)
Use Object Pool Bool False Devuelve el proyectil al pool al morir en lugar de destruirlo
Ignore Owner Bool True Ignora colisiones con el objeto que lo spawneó (lee _proj_owner)
Team Filter Bool False Ignora colisiones con objetos del mismo equipo
Team Property String "team" Propiedad BGE usada para identificar equipos
Trail FX Bool False Spawnea y parentea un objeto de estela al nacer
Trail Object String "ProjectileTrail" Nombre del objeto de estela inactivo

Sockets

Socket Dirección Tipo
In Entrada Exec
Out Salida Exec

Variables publicadas (en el objeto proyectil)

Variable Tipo Descripción
projectile_hit bool True el frame del impacto
projectile_hit_object KX_GameObject Objeto impactado
projectile_hit_position mathutils.Vector Posición del impacto
projectile_hit_normal mathutils.Vector Normal de la superficie
projectile_damage float Daño configurado (modificable en runtime)

Daño

El daño se aplica a través de globalDict['_dmg_<nombre_objeto>'], igual que Hit Scan Weapon.

Integración con Object Pool

Cuando Use Object Pool = True, al morir el proyectil llama al sistema de pool en lugar de endObject(). El pool debe estar configurado en el objeto del jugador (no en el proyectil).

Grafo del objeto proyectil

[OnUpdate] → [Projectile System]
                 │
                 └── (Out) → [Explosion Damage] (si es explosivo)
                           → [Weapon FX System] (si tiene FX propios)