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

185 lines
7.3 KiB
Ucode

//=============================================================================
// KFPawn_ZedFleshPound_Versus
//=============================================================================
// Fleshpound Versus pawn
//=============================================================================
// Killing Floor 2
// Copyright (C) 2016 Tripwire Interactive LLC
//=============================================================================
class KFPawn_ZedFleshPound_Versus extends KFPawn_ZedFleshpound;
/** Ground speed to use when sprinting and enraged */
var const protected float RageSprintSpeed;
/** Rage bump damage variables */
var const protected int RageBumpDamage;
var const protected float RageBumpRadius;
var const protected float RageBumpMomentum;
function PossessedBy( Controller C, bool bVehicleTransition )
{
Super.PossessedBy( C, bVehicleTransition );
if( WorldInfo.NetMode != NM_DedicatedServer && Mesh != None )
{
UpdateGameplayMICParams();
}
}
/** Disallow sprinting if we've been struck by an EMP */
function SetSprinting(bool bNewSprintStatus)
{
if( bEmpDisrupted )
{
bNewSprintStatus = false;
}
super(KFPawn_Monster).SetSprinting( bNewSprintStatus );
}
/** Enrage this FleshPound! */
simulated function bool SetEnraged( bool bNewEnraged )
{
local bool bSuccess;
bSuccess = super.SetEnraged( bNewEnraged );
if( bIsEnraged )
{
if( !IsTimerActive(nameOf(Timer_RageBump)) )
{
SetTimer( 0.25f, true, nameOf(Timer_RageBump) );
}
SprintSpeed = RageSprintSpeed;
}
else if( IsTimerActive(nameOf(Timer_RageBump)) )
{
ClearTimer( nameOf(Timer_RageBump) );
SprintSpeed = default.SprintSpeed;
}
return bSuccess;
}
/** Applies damage and impulse to nearby pawns and objects */
simulated protected function Timer_RageBump()
{
HurtRadius( RageBumpDamage, RageBumpRadius, RageBumpDamageType, RageBumpMomentum, Location, self, Controller );
}
/** Ends rage mode 3 seconds after melee damage is done */
function NotifyMeleeDamageDealt()
{
if( !IsTimerActive(nameOf(EndRage)) )
{
SetTimer( 3.f, false, nameOf(EndRage) );
}
}
/** Ends rage mode */
function EndRage()
{
SetEnraged( false );
}
/** Clear our rage bump timer */
simulated function PlayDying( class<DamageType> DamageType, vector HitLoc )
{
ClearTimer( nameOf(Timer_RageBump) );
super.PlayDying( DamageType, HitLoc );
}
DefaultProperties
{
bVersusZed=true
TeammateCollisionRadiusPercent=0.30
Health=2281//1725 //1983 //2181feltok
Begin Object Name=SpecialMoveHandler_0
SpecialMoveClasses(SM_PlayerZedMove_LMB)=class'KFSM_PlayerFleshpound_Melee'
SpecialMoveClasses(SM_PlayerZedMove_RMB)=class'KFSM_PlayerFleshpound_Melee2'
SpecialMoveClasses(SM_PlayerZedMove_V)=class'KFSM_PlayerFleshpound_Rage'
SpecialMoveClasses(SM_PlayerZedMove_MMB)= class'KFSM_PlayerFleshpound_Block'
End Object
MoveListGamepadScheme(ZGM_Melee_Square)=SM_PlayerZedMove_LMB
MoveListGamepadScheme(ZGM_Melee_Triangle)=SM_PlayerZedMove_RMB
MoveListGamepadScheme(ZGM_Block_R1)=SM_PlayerZedMove_MMB
MoveListGamepadScheme(ZGM_Special_R3)=SM_PlayerZedMove_V
SpecialMoveCooldowns(0)=(SMHandle=SM_PlayerZedMove_LMB, CooldownTime=0.75f, SpecialMoveIcon=Texture2D'ZED_Fleshpound_UI.ZED-VS_Icons_Fleshpound-LightAttack', NameLocalizationKey="Light")
SpecialMoveCooldowns(1)=(SMHandle=SM_PlayerZedMove_RMB, CooldownTime=1.5f, SpecialMoveIcon=Texture2D'ZED_Fleshpound_UI.ZED-VS_Icons_Fleshpound-HeavyAttack', NameLocalizationKey="Heavy")
SpecialMoveCooldowns(2)=(SMHandle=SM_Taunt, CooldownTime=0.0f, bShowOnHud=false)
SpecialMoveCooldowns(3)=(SMHandle=SM_PlayerZedMove_V, CooldownTime=10.5f, SpecialMoveIcon=Texture2D'ZED_Fleshpound_UI.ZED-VS_Icons_Fleshpound-Rage', NameLocalizationKey="Rage")
SpecialMoveCooldowns(4)=(SMHandle=SM_PlayerZedMove_MMB, CooldownTime=0.2, SpecialMoveIcon=Texture2D'ZED_Shared_UI.ZED-VS_Icons_Generic-Block', NameLocalizationKey="Block") //0.5
SpecialMoveCooldowns.Add((SMHandle=SM_Jump, CooldownTime=1.25f, SpecialMoveIcon=Texture2D'ZED_Fleshpound_UI.ZED-VS_Icons_Fleshpound-Jump', bShowOnHud=false)) // Jump always at end of array
DamageTypeModifiers.Add((DamageType=class'KFDT_Explosive', DamageScale=(0.75)))
DamageTypeModifiers.Add((DamageType=class'KFDT_Explosive_RPG7', DamageScale=(1.5)))
DamageTypeModifiers.Add((DamageType=class'KFDT_Microwave', DamageScale=(1.5))) //0.25
DamageTypeModifiers.Add((DamageType=class'KFDT_Fire', DamageScale=(0.5)))
//DamageTypeModifiers.Add((DamageType=class'KFDT_Ballistic', DamageScale=(0.7f)))
DamageTypeModifiers.Add((DamageType=class'KFDT_Ballistic_HRGTeslauncher', DamageScale=(0.5)))
DamageTypeModifiers.Add((DamageType=class'KFDT_Fire_HRGTeslauncherDoT', DamageScale=(0.5)))
IncapSettings(AF_Stun)= (Vulnerability=(0.2, 0.25, 0.2, 0.0, 0.25), Cooldown=10.0, Duration=1.5) //0.5, 0.55, 0.5, 0.0, 0.55
IncapSettings(AF_Knockdown)=(Vulnerability=(0.25, 0.25, 0.25, 0.25, 0.4), Cooldown=10.0)
IncapSettings(AF_Stumble)= (Vulnerability=(0.2, 0.25, 0.25, 0.0, 0.4), Cooldown=7.0)
IncapSettings(AF_GunHit)= (Vulnerability=(0.0, 0.0, 0.0, 0.0, 0.5), Cooldown=1.7)
IncapSettings(AF_MeleeHit)= (Vulnerability=(1.0), Cooldown=1.2)
IncapSettings(AF_Poison)= (Vulnerability=(0.6), Cooldown=20.0, Duration=1.5)
IncapSettings(AF_Microwave)=(Vulnerability=(0.5), Cooldown=17.0, Duration=2.5)
IncapSettings(AF_FirePanic)=(Vulnerability=(0.7), Cooldown=12.0, Duration=3.5)
IncapSettings(AF_EMP)= (Vulnerability=(0.3), Cooldown=10.0, Duration=2.2) //0.95
IncapSettings(AF_Freeze)= (Vulnerability=(0.5), Cooldown=1.5, Duration=0.5) //0.95
IncapSettings(AF_Snare)= (Vulnerability=(0.7, 0.7, 1.0, 0.7), Cooldown=8.5, Duration=1.5)
IncapSettings(AF_Bleed)= (Vulnerability=(0.25))
//defaults
Begin Object Name=MeleeHelper_0
BaseDamage=30
MaxHitRange=250.f
MomentumTransfer=55000.f
MyDamageType=class'KFDT_Bludgeon_Fleshpound'
MeleeImpactCamScale=0.45
PlayerDoorDamageMultiplier=5.f
End Object
MeleeAttackHelper=MeleeHelper_0
DoshValue=300.0 // 1.5x default because they are harder to hit/kill
XPValues(0)=105.0// 1.5 X 2x default because they are harder to hit/kill
// Movement speeds
SprintSpeed=550 //750
RageSprintSpeed=700
SprintStrafeSpeed=450
GroundSpeed=275 //300
// Rage
RageBumpDamage=2
RageBumpRadius=240.f
RageBumpMomentum=500.f
// Blocking higher values = less resistance
MinBlockFOV=0.f
//defaults
ThirdPersonViewOffset={(
OffsetHigh=(X=-175,Y=60,Z=60),
OffsetLow=(X=-220,Y=100,Z=50),
OffsetMid=(X=-160,Y=50,Z=30),
)}
// Health=3500
// DrawScale3D=(X=1.25,Y=1.25,Z=1.25)
// HitZones[HZI_HEAD]=(ZoneName=head, BoneName=Head, Limb=BP_Head, GoreHealth=2000, DmgScale=1.1, SkinID=1)
// HitZones[3] =(ZoneName=heart, BoneName=Spine2, Limb=BP_Special, GoreHealth=1500, DmgScale=1.1, SkinID=2)
// HitZones[5] =(ZoneName=lforearm, BoneName=LeftForearm, Limb=BP_LeftArm, GoreHealth=200, DmgScale=0.5, SkinID=3)
// HitZones[8] =(ZoneName=rforearm, BoneName=RightForearm, Limb=BP_RightArm, GoreHealth=200, DmgScale=0.5, SkinID=3)
}