//============================================================================= // KFScout //============================================================================= // KF2 scout class used when generating AI paths //============================================================================= // Killing Floor 2 // Copyright (C) 2012-2013 Tripwire Interactive LLC //============================================================================= class KFScout extends Scout native(AI); var config bool bReplacePathNodesWithKFPathNodes; var config bool bDebugReplacePathNodes; var array< class > PrototypePawnClasses; var int PrototypeIndex; var transient array KFDoorMarkerList; var float TestSprintSpeed; var float TestHiddenGroundSpeed; var float DefaultMaxFallSpeed; var float DefaultJumpZ; cpptext { virtual void SetBase(AActor *NewBase, FVector NewFloor = FVector(0,0,1), INT bNotifyActor=1, USkeletalMeshComponent* SkelComp=NULL, FName BoneName=NAME_None ); virtual void SetPrototype(); virtual void InitForPathing( ANavigationPoint* Start, ANavigationPoint* End ); virtual UClass* GetDefaultReachSpecClass(); // To be overridden virtual FVector GetDefaultForcedPathSize(UReachSpec* Spec) { return Super::GetDefaultForcedPathSize(Spec); } virtual void SetPathColor(UReachSpec* ReachSpec); #if WITH_EDITOR /** Long range reachspecs are evil and pointless, so we won't use them */ virtual void AddLongReachSpecs( INT NumPaths ); /** Good riddance to you, horribly annoying godawful senseless long-range-reachspecs! */ virtual void Exec( const TCHAR* Str ); UBOOL CreateLeapPath( ANavigationPoint* Nav, ANavigationPoint* DestNav, FCheckResult Hit, UBOOL bOnlyChanged ); void AddSpecialPaths( INT NumPaths, UBOOL bOnlyChanged ); virtual void UndefinePaths(); virtual void DefinePaths( UBOOL bReviewPaths, UBOOL bShowMapCheck, UBOOL bUndefinePaths ); #endif } DefaultProperties { PathSizes.Empty NavMeshGen_MaxPolyHeight=200.0 //NavMeshGen_MaxPolyHeight=90.0 PrototypePawnClasses(0)=class'KFGame.KFPawn_Monster' // Note: Human size is also clot size. "Human" is hardcoded all over the engine, so we'll stick with that name PathSizes(0)=(Desc=ClotsAllSirenStalker,Radius=36,Height=90) PathSizes(1)=(Desc=Human,Radius=40,Height=90) PathSizes(2)=(Desc=Crawler,Radius=48,Height=48) PathSizes(3)=(Desc=GoreFastHusk,Radius=48,Height=90) PathSizes(4)=(Desc=BloatScrakeFleshPoundHans,Radius=55,Height=90) PathSizes(5)=(Desc=Max,Radius=120,Height=120) EdgePathColors(0)=(R=0,G=0,B=255,A=255) // ClotsAllSirenStalkerBlue, blue EdgePathColors(1)=(R=173,G=255,B=47,A=255) // Human, green yellow (173,255,47) EdgePathColors(2)=(R=0,G=128,B=0,A=255) // Crawler green (0,255,0) EdgePathColors(3)=(R=0,G=255,B=0,A=255) // GoreFastHusk lime (0,128,0) EdgePathColors(4)=(R=255,G=255,B=255) // BloatScrakeFleshPoundHans White (255,255,255) EdgePathColors(5)=(R=255,G=105,B=180,A=255) // Max (255,105,180); // hot pink bHightlightOneWayReachSpecs=true // Epic's spelling error! //TestFallSpeed=600 TestMaxFallSpeed=500 TestGroundSpeed=500.000 TestJumpZ=650.f // __TW_AIJUMPDEBUG_ MaxStepHeight=70.0 MaxJumpHeight=128.0 //TestFallSpeed=1200 bCanJumpOverWalls=true DefaultMaxFallSpeed=500.f DefaultJumpZ=650.f DefaultReachSpecClass=class'KFGame.KFReachSpec' NavMeshGen_StepSize=30.0 NavMeshGen_MaxGroundCheckSize=30.0f NavMeshGen_EntityHalfHeight=72.0 //NavMeshGen_EntityHalfHeight=24.0 NavMeshGen_StartingHeightOffset=65.0 NavMeshGen_MaxDropHeight=250.0 NavMeshGen_MaxStepHeight=40.0 NavMeshGen_VertZDeltaSnapThresh=20.0 NavMeshGen_MinPolyArea=25 NavMeshGen_BorderBackfill_CheckDist=70.0 NavMeshGen_MinMergeDotAreaThreshold=2.0 NavMeshGen_MinMergeDotSmallArea=0.0 NavMeshGen_MinMergeDotLargeArea=0.95 //NavMeshGen_MaxPolyHeight=160.0 NavMeshGen_HeightMergeThreshold=10 NavMeshGen_EdgeMaxDelta=2.0 NavMeshGen_MinEdgeLength=7.0 NavMeshGen_ExpansionDoObstacleMeshSimplification=TRUE }