Skip to content

KAI_LOFProjectileCheck

inkoalawetrust edited this page Aug 7, 2023 · 4 revisions

KAI_LOFProjectileCheck

Parent class: KAI_LOFRaycast

Note

The class is actually called KAI_ProjectileLOFCheck, I misnamed while initially writing the wiki, so use KAI_ProjectileLOFCheck instead ! However there is also a renamed version of this tracer with the wrong name in case you use it (BY ACCIDENT !).

Description

This raycast is the basic projectile LOF check used by the KAI library. It should cover most use cases involving projectile attacks. Unlike the vanilla LOF checks, this one will also return false if an actor that would block the projectile is in the way. It also includes a few extra features, covered in the variables section below.

This tracer is used by KAI_TurretCheckLOF().

Variables

PropHealthThreshold

Type: Integer

If the tracer hits an actor that would otherwise block the attack the trace is for. But that actor is a prop that can be destroyed, and its' health is below this value. Then the trace will skip the actor instead of returning BadLOF. Has a default value of 400 HP.

SplashRadius

Type: Double

If the tracer misses the Other actor, but the location of the missed hit is closer to the Other's location that this value. Then the trace will stop, but not return BadLOF. This allows for an NPC to miss an explosive attack, but still fire it anyway if their target would be caught by the blast regardless. This will only do something if Other doesn't have +NORADIUSDMG.

FriendlyFire

Type: Boolean

The attack that this LOF check is for can harm and collide with NPCs and players friendly to the Shooter.

ProjInfo

Stores a LOFProjInfo pointer, that is used to get additional info about the projectile the check is for without adding new variables and parameters to the tracer.

Functions

CanRipActor()

Parameters

  • Who: The actor to check if they can be ripped.

Return type(s):

  • Returns true if Who can be ripped. Doesn't run if the tracer has an empty ProjInfo pointer.

Function:

Checks if Who can be ripped like CantRipActor() does. But also decrements the RipDepth variable in ProjInfo if RipOnce is true (Meaning the projectile that the check is for has the flag on) for every rippable actor passed through, allowing the trace to behave like KAI rippers, and by extension properly account for the more complex behavior they have compared to normal projectiles.

CaughtInTheBlast()

Return type(s):

  • Returns true if Other was caught in the SplashRadius. False otherwise.

Function:

Checks if the distance between the current hit location of the trace and Other's position are closer than the SplashRadius, the Other actor isn't immune to blast damage, and the Shooter can see the Other actor.

Clone this wiki locally