87 lines
2.9 KiB
Ucode
87 lines
2.9 KiB
Ucode
|
//=============================================================================
|
||
|
// KFDifficulty_Husk
|
||
|
//=============================================================================
|
||
|
// Per Zed, per difficulty balance settings
|
||
|
//=============================================================================
|
||
|
// Killing Floor 2
|
||
|
// Copyright (C) 2016 Tripwire Interactive LLC
|
||
|
//=============================================================================
|
||
|
class KFDifficulty_Husk extends KFMonsterDifficultyInfo
|
||
|
dependsOn(KFPawn_ZedHusk)
|
||
|
abstract;
|
||
|
|
||
|
/** Difficulty-based fireball settings */
|
||
|
var array<sHuskFireballSettings> FireballSettings;
|
||
|
|
||
|
/** Versus AI Husk fireball settings */
|
||
|
var sHuskFireballSettings FireballSettings_Versus;
|
||
|
|
||
|
static function sHuskFireballSettings GetFireballSettings( KFPawn_ZedHusk HuskPawn, KFGameReplicationInfo KFGRI )
|
||
|
{
|
||
|
local sHuskFireballSettings DefaultFireballSettings;
|
||
|
|
||
|
// Check for versus settings first
|
||
|
if( KFGRI.bVersusGame )
|
||
|
{
|
||
|
if( !HuskPawn.bVersusZed )
|
||
|
{
|
||
|
return default.FireballSettings_Versus;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
DefaultFireballSettings.bSpawnGroundFire = true;
|
||
|
return DefaultFireballSettings;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return default.FireballSettings[Clamp(KFGRI.GetModifiedGameDifficulty(), 0, default.FireballSettings.length-1)];
|
||
|
}
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
// Normal difficulty
|
||
|
Normal={(HealthMod=0.750000,
|
||
|
HeadHealthMod=0.750000,
|
||
|
DamageMod=0.35,
|
||
|
SoloDamageMod=0.3500000,
|
||
|
RallySettings={(bCanRally=false)}
|
||
|
)}
|
||
|
|
||
|
// Hard difficulty
|
||
|
Hard={(SoloDamageMod=0.7500000,
|
||
|
RallySettings={(bCanRally=false)}
|
||
|
)}
|
||
|
|
||
|
// Suicidal difficulty
|
||
|
Suicidal={(DamagedSprintChance=0.500000,
|
||
|
SoloDamageMod=0.7500000,
|
||
|
RallySettings={(DealtDamageModifier=1.2, TakenDamageModifier=0.9)}
|
||
|
)}
|
||
|
|
||
|
// Hell On Earth difficulty
|
||
|
HellOnEarth={(HealthMod=1.300000,
|
||
|
HeadHealthMod=1.100000,
|
||
|
SprintChance=0.750000,
|
||
|
DamagedSprintChance=1.000000,
|
||
|
DamageMod=1.500000,
|
||
|
SoloDamageMod=0.7500000,
|
||
|
RallySettings={(bCauseSprint=true, DealtDamageModifier=1.2, TakenDamageModifier=0.9)}
|
||
|
)}
|
||
|
|
||
|
// Versus Rally settings
|
||
|
RallySettings_Versus={(bCauseSprint=true)}
|
||
|
RallySettings_Player_Versus={(DealtDamageModifier=1.2)}
|
||
|
|
||
|
// Evil DAR spawn chances
|
||
|
ChanceToSpawnAsSpecial(`DIFFICULTY_Normal)=0.08// 0.10
|
||
|
ChanceToSpawnAsSpecial(`DIFFICULTY_Hard)=0.1//0.12
|
||
|
ChanceToSpawnAsSpecial(`DIFFICULTY_Suicidal)=0.15// 0.18
|
||
|
ChanceToSpawnAsSpecial(`DIFFICULTY_HellOnEarth) =0.21 //0.25
|
||
|
|
||
|
// Fireball settings by difficulty
|
||
|
FireballSettings(`DIFFICULTY_Normal) ={(bSpawnGroundFire=false, ExplosionMomentum=50000.f)}
|
||
|
FireballSettings(`DIFFICULTY_Hard) ={(bSpawnGroundFire=false, ExplosionMomentum=55000.f)}
|
||
|
FireballSettings(`DIFFICULTY_Suicidal) ={(bSpawnGroundFire=true, ExplosionMomentum=60000.f)}
|
||
|
FireballSettings(`DIFFICULTY_HellOnEarth) ={(bSpawnGroundFire=true, ExplosionMomentum=65000.f)}
|
||
|
FireballSettings_Versus ={(bSpawnGroundFire=false, ExplosionMomentum=50000.f)}
|
||
|
}
|