//============================================================================= // 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 }