siren won't scream at low hp zeds, will melee

This commit is contained in:
Shtoyan 2022-01-21 23:07:54 +04:00
parent 01882bdecf
commit 4325a34acf

View File

@ -77,13 +77,16 @@ function DiscardCurrentScreamBall(){
currScreamTiming = -1; currScreamTiming = -1;
} }
} }
function RangedAttack(Actor A) function RangedAttack(Actor A)
{ {
local int LastFireTime; local int LastFireTime;
local float Dist; local float Dist;
if (bShotAnim) if (bShotAnim)
return; return;
Dist = VSize(A.Location - Location); Dist = VSize(A.Location - Location);
if (Physics == PHYS_Swimming) if (Physics == PHYS_Swimming)
{ {
SetAnimAction('Claw'); SetAnimAction('Claw');
@ -98,7 +101,8 @@ function RangedAttack(Actor A)
Controller.bPreparingMove = true; Controller.bPreparingMove = true;
Acceleration = vect(0,0,0); Acceleration = vect(0,0,0);
} }
else if( Dist <= ScreamRadius && !bDecapitated && !bZapped ) // ok se we DO NOT want to scream at other nice zeds
else if (!bNotAHuman() && Dist <= ScreamRadius && !bDecapitated && !bZapped)
{ {
bShotAnim = true; bShotAnim = true;
SetAnimAction('Siren_Scream'); SetAnimAction('Siren_Scream');
@ -119,6 +123,16 @@ function RangedAttack(Actor A)
Acceleration.Z = FMin(Acceleration.Z, 0.0f); Acceleration.Z = FMin(Acceleration.Z, 0.0f);
} }
} }
final private function bool bNotAHuman()
{
if (Controller == none || Controller.Enemy == none)
return false;
// log("Zed enemy classname was " $ Controller.Enemy.class);
return ClassIsChildOf(Controller.Enemy.class, class'NiceMonster');
}
simulated function int DoAnimAction( name AnimName ) simulated function int DoAnimAction( name AnimName )
{ {
if( AnimName=='Siren_Scream' || AnimName=='Siren_Bite' || AnimName=='Siren_Bite2' ) if( AnimName=='Siren_Scream' || AnimName=='Siren_Bite' || AnimName=='Siren_Bite2' )