1
0
KF2-Dev-Scripts/KFGame/Classes/Goal_WallToEnemy.uc
2020-12-13 18:01:13 +03:00

53 lines
1.7 KiB
Ucode

//=============================================================================
// Goal_WallToEnemy
//=============================================================================
// Returns (as goal) the KFWallPathNode that's closest to enemy, as long as
// enemy will be visible from that potential goal. Used to find ambush spots
// on walls for Crawlers.
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
//=============================================================================
// Based on GOW Goal_FarthestNavInRange
// Copyright 1998-2011 Epic Games, Inc. All Rights Reserved.
//=============================================================================
class Goal_WallToEnemy extends PathGoalEvaluator
native(Waypoint);
cpptext
{
virtual UBOOL EvaluateGoal(ANavigationPoint*& PossibleGoal, APawn* Pawn);
virtual UBOOL DetermineFinalGoal(ANavigationPoint*& out_GoalNav);
}
var NavigationPoint BestNode;
var int OptimalMaxDist;
var float BestNavDist;
/** current best result */
//var NavigationPoint CurrentBest;
static function bool WallToEnemy(Pawn P, optional int InOptimalMaxDist=3000)
{
local Goal_WallToEnemy Eval;
Eval = Goal_WallToEnemy(P.CreatePathGoalEvaluator(default.class));
Eval.OptimalMaxDist = InOptimalMaxDist;
P.AddGoalEvaluator(Eval);
return true;
}
function Recycle()
{
OptimalMaxDist = default.OptimalMaxDist;
BestNode = none;
Super.Recycle();
}
defaultproperties
{
CacheIdx=18
MaxPathVisits=10000 // don't want it to fail for this reason, reduce OptimalMaxDist to improve performance instead
}