109 lines
2.8 KiB
Ucode
109 lines
2.8 KiB
Ucode
|
//=============================================================================
|
||
|
// KFMutator
|
||
|
//=============================================================================
|
||
|
// Base mutator class for KF2
|
||
|
//=============================================================================
|
||
|
// Killing Floor 2
|
||
|
// Copyright (C) 2015 Tripwire Interactive LLC
|
||
|
// Jeff Robinson
|
||
|
//Enjoy modding and want to join the community?
|
||
|
//Discord: https://discord.gg/UjApa
|
||
|
//Tripwire Forums: http://forums.tripwireinteractive.com/forum/killing-floor-2/killing-floor-2-modifications/general-modding-discussion-ad
|
||
|
//=============================================================================
|
||
|
class KFMutator extends Mutator
|
||
|
abstract;
|
||
|
|
||
|
var transient KFGameInfo MyKFGI;
|
||
|
|
||
|
/**
|
||
|
* This function can be used to parse the command line parameters when a server
|
||
|
* starts up
|
||
|
*/
|
||
|
function InitMutator(string Options, out string ErrorMessage)
|
||
|
{
|
||
|
MyKFGI = KFGameInfo( WorldInfo.Game );
|
||
|
super.InitMutator( Options, ErrorMessage );
|
||
|
}
|
||
|
|
||
|
/************
|
||
|
* Trader
|
||
|
***********/
|
||
|
|
||
|
/** Allows mutator to modify which trader opens next, if any */
|
||
|
function ModifyNextTraderIndex( out byte NextTraderIndex )
|
||
|
{
|
||
|
`if(`__TW_SDK_)
|
||
|
if( NextMutator != None )
|
||
|
{
|
||
|
NextMutator.ModifyNextTraderIndex( NextTraderIndex );
|
||
|
}
|
||
|
`endif
|
||
|
}
|
||
|
|
||
|
/**********
|
||
|
* Zeds / AI
|
||
|
**********/
|
||
|
|
||
|
/** Allows mutator to modify AI pawn*/
|
||
|
function ModifyAI( Pawn AIPawn )
|
||
|
{
|
||
|
`if(`__TW_SDK_)
|
||
|
if( NextMutator != none )
|
||
|
{
|
||
|
NextMutator.ModifyAI( AIPawn );
|
||
|
}
|
||
|
`endif
|
||
|
}
|
||
|
|
||
|
/** Allows mutator to modify an AI's target enemy upon choosing one */
|
||
|
function ModifyAIEnemy( AIController AI, Pawn Enemy )
|
||
|
{
|
||
|
`if(`__TW_SDK_)
|
||
|
if( NextMutator != none )
|
||
|
{
|
||
|
NextMutator.ModifyAIEnemy( AI, Enemy );
|
||
|
}
|
||
|
`endif
|
||
|
}
|
||
|
|
||
|
/************
|
||
|
* Gameplay
|
||
|
***********/
|
||
|
|
||
|
/** Allows mutator to modify how likely, how long, and how frequently zed time occurs (zed time scalar and blend-out can be set in InitMutator) */
|
||
|
function ModifyZedTime( out float out_TimeSinceLastEvent, out float out_ZedTimeChance, out float out_Duration )
|
||
|
{
|
||
|
`if(`__TW_SDK_)
|
||
|
if( NextMutator != none )
|
||
|
{
|
||
|
NextMutator.ModifyZedTime( out_TimeSinceLastEvent, out_ZedTimeChance, out_Duration );
|
||
|
}
|
||
|
`endif
|
||
|
}
|
||
|
|
||
|
/************
|
||
|
* Pickups
|
||
|
***********/
|
||
|
|
||
|
/** Allows mutator to modify the initial state of all pickup factories */
|
||
|
function ModifyPickupFactories()
|
||
|
{
|
||
|
`if(`__TW_SDK_)
|
||
|
if( NextMutator != None )
|
||
|
{
|
||
|
NextMutator.ModifyPickupFactories();
|
||
|
}
|
||
|
`endif
|
||
|
}
|
||
|
|
||
|
/** Allows mutator to modify a newly activated pickup factory */
|
||
|
function ModifyActivatedPickupFactory( PickupFactory out_ActivatedFactory, out float out_RespawnDelay )
|
||
|
{
|
||
|
`if(`__TW_SDK_)
|
||
|
if( NextMutator != None )
|
||
|
{
|
||
|
NextMutator.ModifyActivatedPickupFactory( out_ActivatedFactory, out_RespawnDelay );
|
||
|
}
|
||
|
`endif
|
||
|
}
|