74 lines
2.4 KiB
Ucode
74 lines
2.4 KiB
Ucode
class stub_Z_Husk extends ZombieHusk_HALLOWEEN;
|
|
|
|
|
|
function SpawnTwoShots()
|
|
{
|
|
local vector X,Y,Z, FireStart;
|
|
local rotator FireRotation;
|
|
local KFMonsterController KFMonstControl;
|
|
|
|
if (Controller == none || IsInState('ZombieDying') || IsInState('GettingOutOfTheWayOfShot') || Physics == PHYS_Falling)
|
|
return;
|
|
|
|
if (KFDoorMover(Controller.Target) != none)
|
|
{
|
|
Controller.Target.TakeDamage(22, Self, Location,vect(0,0,0), Class'DamTypeVomit');
|
|
return;
|
|
}
|
|
|
|
GetAxes(Rotation,X,Y,Z);
|
|
FireStart = GetBoneCoords('Barrel').Origin;
|
|
|
|
// detect outer and change projectile class
|
|
// since we use this function for all husk classes
|
|
if (ClassIsChildOf(self.class, class'ZombieHusk_HALLOWEEN'))
|
|
HuskFireProjClass = class'KFChar.HuskFireProjectile_HALLOWEEN';
|
|
else
|
|
HuskFireProjClass = class'KFChar.HuskFireProjectile';
|
|
|
|
// if (self.class.name == 'ZombieHusk_HALLOWEEN')
|
|
// HuskFireProjClass = class'KFChar.HuskFireProjectile_HALLOWEEN';
|
|
// else
|
|
// HuskFireProjClass = class'KFChar.HuskFireProjectile';
|
|
|
|
if (!SavedFireProperties.bInitialized)
|
|
{
|
|
SavedFireProperties.AmmoClass = class'SkaarjAmmo';
|
|
SavedFireProperties.ProjectileClass = HuskFireProjClass;
|
|
SavedFireProperties.WarnTargetPct = 1;
|
|
SavedFireProperties.MaxRange = 65535;
|
|
SavedFireProperties.bTossed = false;
|
|
SavedFireProperties.bTrySplash = true;
|
|
SavedFireProperties.bLeadTarget = true;
|
|
SavedFireProperties.bInstantHit = false;
|
|
SavedFireProperties.bInitialized = true;
|
|
}
|
|
|
|
// Turn off extra collision before spawning projectile, otherwise spawn fails
|
|
ToggleAuxCollision(false);
|
|
|
|
FireRotation = Controller.AdjustAim(SavedFireProperties, FireStart, 600);
|
|
|
|
// do not move fleshpounds !
|
|
foreach DynamicActors(class'KFMonsterController', KFMonstControl)
|
|
{
|
|
// I gotta love this one, Jaby
|
|
// ignore zeds that the husk can't see...
|
|
if (KFMonstControl== none || !LineOfSightTo(KFMonstControl))
|
|
continue;
|
|
|
|
if (KFMonstControl != Controller && !ClassIsChildOf(KFMonstControl, class'FleshpoundZombieController'))
|
|
{
|
|
if (PointDistToLine(KFMonstControl.Pawn.Location, vector(FireRotation), FireStart) < 75 )
|
|
{
|
|
KFMonstControl.GetOutOfTheWayOfShot(vector(FireRotation),FireStart);
|
|
}
|
|
}
|
|
}
|
|
|
|
// added projectile owner...
|
|
Spawn(HuskFireProjClass,self,,FireStart,FireRotation);
|
|
|
|
// Turn extra collision back on
|
|
ToggleAuxCollision(true);
|
|
} |