upload
This commit is contained in:
@ -49,6 +49,8 @@ defaultproperties
|
||||
|
||||
BurnDamageType=class'KFDT_Fire_ThermiteImpactDoT'
|
||||
|
||||
SelfDamageReductionValue=0.05f //0.25f
|
||||
|
||||
ModifierPerkList(0)=class'KFPerk_FireBug'
|
||||
|
||||
WeaponDef=class'KFWeapDef_ThermiteBore'
|
||||
|
@ -24,6 +24,8 @@ defaultproperties
|
||||
|
||||
KnockdownPower=150
|
||||
StumblePower=400
|
||||
|
||||
SelfDamageReductionValue=0.5f //0.75f
|
||||
|
||||
//Perk
|
||||
ModifierPerkList(0)=class'KFPerk_Demolitionist'
|
||||
|
@ -27,6 +27,8 @@ defaultproperties
|
||||
KDeathVel=200
|
||||
StumblePower=200
|
||||
|
||||
SelfDamageReductionValue=0.075f
|
||||
|
||||
ModifierPerkList(0)=class'KFPerk_Demolitionist'
|
||||
|
||||
WeaponDef=class'KFWeapDef_GravityImploder'
|
||||
|
@ -23,6 +23,7 @@ defaultproperties
|
||||
|
||||
KnockdownPower=400
|
||||
|
||||
SelfDamageReductionValue=0.075f
|
||||
//Perk
|
||||
ModifierPerkList(0)=class'KFPerk_Demolitionist'
|
||||
WeaponDef=class'KFWeapDef_GravityImploder'
|
||||
|
@ -24,6 +24,8 @@ defaultproperties
|
||||
KnockdownPower = 100
|
||||
StumblePower = 200
|
||||
|
||||
SelfDamageReductionValue = 0.25f;
|
||||
|
||||
//Perk
|
||||
ModifierPerkList(0) = class'KFPerk_Demolitionist'
|
||||
|
||||
|
@ -37,4 +37,7 @@ defaultproperties
|
||||
|
||||
bCausesFracture=false
|
||||
bCanPlayDeadHitEffects=false
|
||||
|
||||
SelfDamageReductionValue = 0f;
|
||||
|
||||
}
|
||||
|
@ -20,8 +20,8 @@ defaultproperties
|
||||
KDeathUpKick=1000
|
||||
KDeathVel=300
|
||||
|
||||
StunPower=160
|
||||
StumblePower=40
|
||||
StunPower=200
|
||||
StumblePower=100
|
||||
|
||||
//Perk
|
||||
ModifierPerkList(0)=class'KFPerk_SWAT'
|
||||
|
@ -50,7 +50,8 @@ defaultproperties
|
||||
ModifierPerkList(0) = class'KFPerk_Firebug'
|
||||
ModifierPerkList(1)=class'KFPerk_Demolitionist'
|
||||
|
||||
|
||||
SelfDamageReductionValue=0.1f
|
||||
|
||||
WeaponDef=class'KFWeapDef_HuskCannon'
|
||||
BurnDamageType = class'KFDT_HuskCannonDot'
|
||||
|
||||
|
@ -24,6 +24,8 @@ defaultproperties
|
||||
KnockdownPower = 150
|
||||
StumblePower = 400
|
||||
|
||||
SelfDamageReductionValue = 0.25f
|
||||
|
||||
//Perk
|
||||
ModifierPerkList(0) = class'KFPerk_Demolitionist'
|
||||
|
||||
|
@ -35,6 +35,8 @@ defaultproperties
|
||||
DoT_Interval=0.5
|
||||
DoT_DamageScale=0.2
|
||||
|
||||
SelfDamageReductionValue=0.05f //0.25f
|
||||
|
||||
BurnPower=10
|
||||
}
|
||||
|
||||
|
@ -22,4 +22,6 @@ defaultproperties
|
||||
WeaponDef=class'KFWeapDef_ChiappaRhino'
|
||||
|
||||
ModifierPerkList(0)=class'KFPerk_Gunslinger'
|
||||
|
||||
bAnyPerk = true
|
||||
}
|
||||
|
@ -21,6 +21,8 @@ defaultproperties
|
||||
DoT_Duration=2.0 //1.0
|
||||
DoT_Interval=0.5 //1.0
|
||||
DoT_DamageScale=0.1
|
||||
|
||||
SelfDamageReductionValue=0.1f
|
||||
|
||||
ModifierPerkList(0)=class'KFPerk_FieldMedic'
|
||||
WeaponDef=class'KFWeapDef_HRG_Vampire'
|
||||
|
@ -36,6 +36,8 @@ defaultproperties
|
||||
DoT_Duration=4.0 //5.0 //1.7
|
||||
DoT_Interval=1.0 //1.0 //0.4
|
||||
DoT_DamageScale=0.1 //1.5
|
||||
|
||||
SelfDamageReductionValue=0.1f
|
||||
|
||||
ModifierPerkList(0)=class'KFPerk_FieldMedic'
|
||||
WeaponDef=class'KFWeapDef_Mine_Reconstructor'
|
||||
|
@ -1087,6 +1087,12 @@ function WaveStarted()
|
||||
}
|
||||
|
||||
`QALog("Player Name:" @ KFPC.PlayerReplicationInfo.PlayerName @ "Dosh" @ KFPC.PlayerReplicationInfo.Score, bLogScoring);
|
||||
|
||||
if (KFPC.IsInState('Spectating') == false
|
||||
&& KFPC.PlayerReplicationInfo.bOnlySpectator == false)
|
||||
{
|
||||
KFPC.GetPerk().SetWaveDefaults();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -22,7 +22,6 @@ enum ETurretState
|
||||
};
|
||||
|
||||
var SkeletalMeshComponent TurretMesh;
|
||||
var Controller InstigatorController;
|
||||
|
||||
/** Speed to rise the drone in Z axis after thrown */
|
||||
var const float DeployZSpeed;
|
||||
@ -164,6 +163,8 @@ simulated event PreBeginPlay()
|
||||
|
||||
if (Role == ROLE_Authority)
|
||||
{
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
|
||||
Weapon = Spawn(WeaponClass, self);
|
||||
TurretWeapon = KFWeap_AutoTurretWeapon(Weapon);
|
||||
MyKFWeapon = TurretWeapon;
|
||||
@ -390,6 +391,7 @@ simulated state Deploy
|
||||
{
|
||||
local float CurrentHeight;
|
||||
local vector LocationNext;
|
||||
local bool bTraceOk;
|
||||
|
||||
super.Tick(DeltaTime);
|
||||
|
||||
@ -404,7 +406,12 @@ simulated state Deploy
|
||||
LocationNext.z += Velocity.z * DeltaTime;
|
||||
|
||||
// If we are going to collide stop
|
||||
if (!FastTrace(LocationNext, Location, vect(25,25,25)))
|
||||
|
||||
SetCollisionType(COLLIDE_CustomDefault);
|
||||
bTraceOk = FastTrace(LocationNext, Location, vect(25,25,25));
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
|
||||
if (!bTraceOk)
|
||||
{
|
||||
SetTurretState(ETS_TargetSearch);
|
||||
return;
|
||||
@ -507,7 +514,9 @@ simulated function bool TargetValidWithGeometry(Actor Target, vector MuzzleLoc,
|
||||
local bool bTraderFound;
|
||||
local int IteratorTrader;
|
||||
|
||||
SetCollisionType(COLLIDE_CustomDefault);
|
||||
HitActor = Trace(HitLocation, HitNormal, ReferencePosition, MuzzleLoc,,,,TRACEFLAG_Bullet);
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
|
||||
if (HitActor == none || KFPawn_Monster(HitActor) == none)
|
||||
{
|
||||
@ -804,6 +813,8 @@ function CheckForTargets()
|
||||
|
||||
TurretWeapon.GetMuzzleLocAndRot(MuzzleLoc, MuzzleRot);
|
||||
|
||||
SetCollisionType(COLLIDE_CustomDefault);
|
||||
|
||||
foreach CollidingActors(class'KFPawn_Monster', CurrentTarget, EffectiveRadius, Location, true,, HitInfo)
|
||||
{
|
||||
// Visible by local player or team
|
||||
@ -834,6 +845,8 @@ function CheckForTargets()
|
||||
}
|
||||
}
|
||||
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
|
||||
if (EnemyTarget != none)
|
||||
{
|
||||
SetTurretState(ETS_Combat);
|
||||
@ -882,14 +895,18 @@ simulated function CheckEnemiesWithinExplosionRadius()
|
||||
|
||||
//DrawDebugSphere(CheckExplosionLocation, ExplosiveRadius, 10, 255, 255, 0 );
|
||||
|
||||
SetCollisionType(COLLIDE_CustomDefault);
|
||||
|
||||
foreach CollidingActors(class'KFPawn_Monster', KFPM, ExplosiveRadius, CheckExplosionLocation, true,,)
|
||||
{
|
||||
if(KFPM != none && KFPM.IsAliveAndWell())
|
||||
{
|
||||
SetTurretState(ETS_Detonate);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
}
|
||||
|
||||
simulated function StartIdleAnim()
|
||||
@ -996,6 +1013,12 @@ simulated function UpdateRotation(float DeltaTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NewRotation = Rotation;
|
||||
NewRotation.Roll = 0.0f;
|
||||
SetRotation(NewRotation);
|
||||
}
|
||||
}
|
||||
|
||||
simulated function RotateByTime(rotator NewRotation, float Time)
|
||||
@ -1074,11 +1097,6 @@ simulated function bool CanInteractWithPawnGrapple()
|
||||
return false;
|
||||
}
|
||||
|
||||
simulated function bool CanInteractWithZoneVelocity()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
function bool CanBeGrabbed(KFPawn GrabbingPawn, optional bool bIgnoreFalling, optional bool bAllowSameTeamGrab)
|
||||
{
|
||||
return false;
|
||||
|
@ -22,7 +22,6 @@ enum ETurretState
|
||||
};
|
||||
|
||||
var SkeletalMeshComponent TurretMesh;
|
||||
var Controller InstigatorController;
|
||||
|
||||
/** Speed to rise the drone in Z axis after thrown */
|
||||
var const float DeployZSpeed;
|
||||
@ -170,6 +169,8 @@ simulated event PreBeginPlay()
|
||||
|
||||
if (Role == ROLE_Authority)
|
||||
{
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
|
||||
Weapon = Spawn(WeaponClass, self);
|
||||
TurretWeapon = KFWeap_HRG_WarthogWeapon(Weapon);
|
||||
MyKFWeapon = TurretWeapon;
|
||||
@ -396,6 +397,7 @@ simulated state Deploy
|
||||
{
|
||||
local float CurrentHeight;
|
||||
local vector LocationNext;
|
||||
local bool bTraceOk;
|
||||
|
||||
super.Tick(DeltaTime);
|
||||
|
||||
@ -410,7 +412,11 @@ simulated state Deploy
|
||||
LocationNext.z += Velocity.z * DeltaTime;
|
||||
|
||||
// If we are going to collide stop
|
||||
if (!FastTrace(LocationNext, Location, vect(25,25,25)))
|
||||
SetCollisionType(COLLIDE_CustomDefault);
|
||||
bTraceOk = FastTrace(LocationNext, Location, vect(25,25,25));
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
|
||||
if (!bTraceOk)
|
||||
{
|
||||
SetTurretState(ETS_TargetSearch);
|
||||
return;
|
||||
@ -511,7 +517,9 @@ simulated function bool TargetValidWithGeometry(Actor Target, vector MuzzleLoc,
|
||||
local bool bTraderFound;
|
||||
local int IteratorTrader;
|
||||
|
||||
SetCollisionType(COLLIDE_CustomDefault);
|
||||
HitActor = Trace(HitLocation, HitNormal, ReferencePosition, MuzzleLoc,,,,TRACEFLAG_Bullet);
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
|
||||
if (HitActor == none || KFPawn_Monster(HitActor) == none)
|
||||
{
|
||||
@ -909,6 +917,8 @@ function CheckForTargets()
|
||||
|
||||
TurretWeapon.GetMuzzleLocAndRot(MuzzleLoc, MuzzleRot);
|
||||
|
||||
SetCollisionType(COLLIDE_CustomDefault);
|
||||
|
||||
foreach CollidingActors(class'KFPawn_Monster', CurrentTarget, EffectiveRadius, Location, true,, HitInfo)
|
||||
{
|
||||
// Visible by local player or team
|
||||
@ -939,6 +949,8 @@ function CheckForTargets()
|
||||
}
|
||||
}
|
||||
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
|
||||
if (EnemyTarget != none)
|
||||
{
|
||||
SetTurretState(ETS_Combat);
|
||||
@ -987,14 +999,18 @@ simulated function CheckEnemiesWithinExplosionRadius()
|
||||
|
||||
//DrawDebugSphere(CheckExplosionLocation, ExplosiveRadius, 10, 255, 255, 0 );
|
||||
|
||||
SetCollisionType(COLLIDE_CustomDefault);
|
||||
|
||||
foreach CollidingActors(class'KFPawn_Monster', KFPM, ExplosiveRadius, CheckExplosionLocation, true,,)
|
||||
{
|
||||
if(KFPM != none && KFPM.IsAliveAndWell())
|
||||
{
|
||||
SetTurretState(ETS_Detonate);
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SetCollisionType(COLLIDE_NoCollision);
|
||||
}
|
||||
|
||||
simulated function StartIdleAnim()
|
||||
@ -1101,6 +1117,12 @@ simulated function UpdateRotation(float DeltaTime)
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NewRotation = Rotation;
|
||||
NewRotation.Roll = 0.0f;
|
||||
SetRotation(NewRotation);
|
||||
}
|
||||
}
|
||||
|
||||
simulated function RotateByTime(rotator NewRotation, float Time)
|
||||
@ -1179,11 +1201,6 @@ simulated function bool CanInteractWithPawnGrapple()
|
||||
return false;
|
||||
}
|
||||
|
||||
simulated function bool CanInteractWithZoneVelocity()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
function bool CanBeGrabbed(KFPawn GrabbingPawn, optional bool bIgnoreFalling, optional bool bAllowSameTeamGrab)
|
||||
{
|
||||
return false;
|
||||
|
@ -580,6 +580,17 @@ simulated function string GetIconPath()
|
||||
return "ZED_Patriarch_UI.ZED-VS_Icon_Boss";
|
||||
}
|
||||
|
||||
simulated event EndSpecialMove(optional ESpecialMove SpecialMoveToEnd, optional bool bForceNetSync)
|
||||
{
|
||||
// Wait for the anim to finish
|
||||
if ( SpecialMove == SM_RecoverFromRagdoll && SpecialMoveToEnd != SM_RecoverFromRagdoll)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Super.EndSpecialMove(SpecialMoveToEnd, bForceNetSync);
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
LocalizationKey=KFPawn_ZedBloatKing
|
||||
|
@ -230,4 +230,6 @@ defaultproperties
|
||||
|
||||
bCanRage=true
|
||||
EnragedSoundEvent=AkEvent'WW_ZED_Clot_Alpha.Play_Alpha_Clot_Special_Enrage'
|
||||
|
||||
ElitePawnClass.Empty
|
||||
}
|
||||
|
@ -126,4 +126,6 @@ defaultproperties
|
||||
MonsterArchPath="ZED_ARCH.ZED_CrawlerKing_Archetype"
|
||||
ControllerClass=class'KFAIController_ZedCrawlerKing'
|
||||
DifficultySettings=class'KFDifficulty_CrawlerKing'
|
||||
|
||||
ElitePawnClass.Empty
|
||||
}
|
@ -8,6 +8,27 @@
|
||||
//=============================================================================
|
||||
class KFPawn_ZedGorefastDualBlade extends KFPawn_ZedGorefast;
|
||||
|
||||
var protected AKEvent StopWhirlwindEvent;
|
||||
|
||||
/**
|
||||
Whirlwind attack can be parried but the initial sfx is not stopped.
|
||||
As we don't have an event to stop it, it has been assigned to the
|
||||
'hips' bone so it can be stopped.
|
||||
*/
|
||||
function bool NotifyAttackParried(Pawn InstigatedBy, byte InParryStrength)
|
||||
{
|
||||
local bool Result;
|
||||
|
||||
Result = Super.NotifyAttackParried(InstigatedBy, InParryStrength);
|
||||
|
||||
if (StopWhirlwindEvent != none)
|
||||
{
|
||||
PlayAkEvent( StopWhirlwindEvent );
|
||||
}
|
||||
|
||||
return Result;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
LocalizationKey=KFPawn_ZedGorefastDualBlade
|
||||
@ -106,6 +127,7 @@ defaultproperties
|
||||
// Block Settings
|
||||
MinBlockFOV=0.1f
|
||||
|
||||
StopWhirlwindEvent = AkEvent'WW_ZED_GoreFast_2.Stop_Gorefast_2_Whirl';
|
||||
|
||||
|
||||
ElitePawnClass.Empty
|
||||
}
|
@ -1079,7 +1079,7 @@ function CallOutCloakingExpired()
|
||||
/** Handle cloaking materials */
|
||||
simulated function UpdateGameplayMICParams()
|
||||
{
|
||||
local int i;
|
||||
local int i, NumRepeats;
|
||||
local bool bIsSpotted;
|
||||
local bool bWasCloaked;
|
||||
local KFCharacterInfo_Monster MonsterInfo;
|
||||
@ -1096,7 +1096,8 @@ simulated function UpdateGameplayMICParams()
|
||||
bIsSpotted = (bIsCloakingSpottedByLP || bIsCloakingSpottedByTeam);
|
||||
if ((!bIsCloaking || IsImpaired()) && CharacterMICs[0].Parent != MonsterInfo.Skins[0])
|
||||
{
|
||||
for (i = 0; i < MonsterInfo.Skins.Length; ++i)
|
||||
NumRepeats = Min(CharacterMICs.Length, MonsterInfo.Skins.Length);
|
||||
for (i = 0; i < NumRepeats; ++i)
|
||||
{
|
||||
bWasCloaked = bWasCloaked ||
|
||||
(CharacterMICs[i].Parent == MonsterInfo.CloakedSkins[i]) ||
|
||||
@ -1126,6 +1127,8 @@ simulated function UpdateGameplayMICParams()
|
||||
}
|
||||
else if (bIsCloaking && bIsSpotted && CharacterMICs[0].Parent != MonsterInfo.SpottedSkins[0])
|
||||
{
|
||||
NumRepeats = Min(CharacterMICs.Length, MonsterInfo.SpottedSkins.Length);
|
||||
|
||||
for (i = 0; i < MonsterInfo.SpottedSkins.Length; ++i)
|
||||
{
|
||||
CharacterMICs[i].SetParent(MonsterInfo.SpottedSkins[i]);
|
||||
@ -1148,6 +1151,8 @@ simulated function UpdateGameplayMICParams()
|
||||
}
|
||||
else if (bIsCloaking && !bIsSpotted && CharacterMICs[0].Parent != MonsterInfo.CloakedSkins[0])
|
||||
{
|
||||
NumRepeats = Min(CharacterMICs.Length, MonsterInfo.CloakedSkins.Length);
|
||||
|
||||
for (i = 0; i < MonsterInfo.CloakedSkins.Length; ++i)
|
||||
{
|
||||
CharacterMICs[i].SetParent(MonsterInfo.CloakedSkins[i]);
|
||||
|
@ -35,23 +35,10 @@ function CausePainTo(Actor Other)
|
||||
}
|
||||
}
|
||||
|
||||
simulated event Touch( Actor Other, PrimitiveComponent OtherComp, vector HitLocation, vector HitNormal )
|
||||
{
|
||||
local KFPawn KFP;
|
||||
|
||||
KFP = KFPawn(Other);
|
||||
|
||||
if (KFP != none && KFP.CanInteractWithZoneVelocity() == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Super.Touch(Other, OtherComp, HitLocation, HitNormal);
|
||||
}
|
||||
|
||||
simulated event UnTouch(Actor Other)
|
||||
{
|
||||
local int RecentHitIdx;
|
||||
|
||||
super.UnTouch(Other);
|
||||
|
||||
RecentHitIdx = RecentUntouchEvents.Find('HitActor', Other);
|
||||
|
89
KFGameContent/Classes/KFPickupFactory_Cash.uc
Normal file
89
KFGameContent/Classes/KFPickupFactory_Cash.uc
Normal file
@ -0,0 +1,89 @@
|
||||
//=============================================================================
|
||||
// KFPickupFactory_Cash
|
||||
//=============================================================================
|
||||
// Pickup that gives some ammo for all weapons in inventory
|
||||
//=============================================================================
|
||||
// Killing Floor 2
|
||||
// Copyright (C) 2023 Tripwire Interactive LLC
|
||||
//=============================================================================
|
||||
|
||||
class KFPickupFactory_Cash extends KFPickupFactory;
|
||||
|
||||
/** Sound to play when picºng up cash */
|
||||
var() AkEvent CashPickupSound;
|
||||
var() int CashAmount;
|
||||
var() StaticMeshComponent CashMeshComponent;
|
||||
|
||||
simulated function InitializePickup()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/** Bypass PickupFactory implementation. This class doesn't use InventoryType. */
|
||||
simulated event SetInitialState()
|
||||
{
|
||||
super.SetInitialState();
|
||||
|
||||
bScriptInitialized = true;
|
||||
}
|
||||
|
||||
/** give pickup to player */
|
||||
function GiveTo( Pawn P )
|
||||
{
|
||||
local KFPawn_Human KFPH;
|
||||
local KFPlayerReplicationInfo KFPRI;
|
||||
|
||||
if ( P.PlayerReplicationInfo != none )
|
||||
{
|
||||
KFPH = KFPawn_Human(P);
|
||||
KFPRI = KFPlayerReplicationInfo(P.PlayerReplicationInfo);
|
||||
|
||||
// @todo (?): for now, play "catch dosh" dialog whenever you pick some up
|
||||
if( KFPRI != none && KFPH != none )
|
||||
{
|
||||
KFPH.UpdateDoshCaught( CashAmount, none );
|
||||
}
|
||||
|
||||
if( KFPRI != none )
|
||||
{
|
||||
KFPRI.AddDosh( CashAmount );
|
||||
`AnalyticsLog(("dosh_picked_up", KFPRI, "#"$CashAmount));
|
||||
}
|
||||
|
||||
bForceNetUpdate = true;
|
||||
P.PlaySoundBase(CashPickupSound);
|
||||
}
|
||||
|
||||
SetPickupHidden();
|
||||
GotoState('Disabled');
|
||||
SetCollision(false, false);
|
||||
}
|
||||
|
||||
function bool CurrentPickupIsCash()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
CashPickupSound=AkEvent'WW_UI_PlayerCharacter.Play_UI_Pickup_Ammo'
|
||||
|
||||
Begin Object Class=StaticMeshComponent Name=MyStaticMeshComponent
|
||||
StaticMesh=StaticMesh'ENV_Horzine_MESH.crates.ENV_Horzine_Equiptment_Crate_02'
|
||||
bCastDynamicShadow=FALSE
|
||||
CollideActors=FALSE
|
||||
End Object
|
||||
|
||||
CashMeshComponent=MyStaticMeshComponent
|
||||
PickupMesh=MyStaticMeshComponent
|
||||
Components.Add(MyStaticMeshComponent)
|
||||
|
||||
Begin Object NAME=CollisionCylinder
|
||||
CollisionRadius=100.f
|
||||
CollisionHeight=50.f
|
||||
End Object
|
||||
|
||||
bNotBased=TRUE
|
||||
bEnabledAtStart=true
|
||||
bKismetDriven=true
|
||||
}
|
@ -317,6 +317,28 @@ simulated event Touch( Actor Other, PrimitiveComponent OtherComp, vector HitLoca
|
||||
{
|
||||
local Pawn P;
|
||||
|
||||
// If touched by ballistic bouncer, explode
|
||||
if (KFProj_HRG_BallisticBouncer(Other) != none)
|
||||
{
|
||||
// Make sure not touching through wall
|
||||
if (`TimeSince(CreationTime) >= 0.1f && FastTrace( Other.Location, Location,, true ))
|
||||
{
|
||||
TriggerExplosion( Location, vect(0,0,1), KFProj_HRG_BallisticBouncer(Other) );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// If touched by mine reconstructor, explode
|
||||
if (KFProj_Mine_Reconstructor(Other) != none)
|
||||
{
|
||||
// Make sure not touching through wall
|
||||
if (`TimeSince(CreationTime) >= 0.1f && FastTrace( Other.Location, Location,, true ))
|
||||
{
|
||||
TriggerExplosion( Location, vect(0,0,1), KFProj_Mine_Reconstructor(Other) );
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// If touched by an enemy pawn, explode
|
||||
P = Pawn( Other );
|
||||
if( P != None )
|
||||
|
@ -36,7 +36,7 @@ defaultproperties
|
||||
ProjFlightTemplate=ParticleSystem'WEP_Frost_Shotgun_Axe_EMIT.FX_FrostFang_Tracer_01'
|
||||
ProjFlightTemplateZedTime=ParticleSystem'WEP_Frost_Shotgun_Axe_EMIT.FX_FrostFang_Tracer_Zedtime_01'
|
||||
ImpactEffects=KFImpactEffectInfo'WEP_Frost_Shotgun_Axe_ARCH.WEP_FrostFang_Projectile_Impact'
|
||||
oFrozenSound=AkEvent'WW_WEP_SA_CompoundBow.Play_Arrow_Impact_Cryo'
|
||||
oFrozenSound=AkEvent'WW_WEP_FrostFang.Play_FrostFang_Frozen_Impact'
|
||||
AssociatedPerkClass=class'KFPerk_Support'
|
||||
}
|
||||
|
||||
|
@ -45,4 +45,13 @@ defaultproperties
|
||||
|
||||
AmbientSoundPlayEvent=none
|
||||
AmbientSoundStopEvent=none
|
||||
|
||||
|
||||
bWaitForEffects=false
|
||||
ProjEffectsFadeOutDuration=0.25
|
||||
bSyncToOriginalLocation=true
|
||||
bSyncToThirdPersonMuzzleLocation=true
|
||||
bRotationFollowsVelocity=true
|
||||
bNoReplicationToInstigator=false
|
||||
bUseClientSideHitDetection=true
|
||||
}
|
@ -398,6 +398,13 @@ defaultproperties
|
||||
DampenFactorParallel=0
|
||||
WallHitDampenFactor=0.5
|
||||
WallHitDampenFactorParallel=0.5
|
||||
|
||||
ExtraLineCollisionOffsets.Add((Y=-30))
|
||||
ExtraLineCollisionOffsets.Add((Y=30))
|
||||
ExtraLineCollisionOffsets.Add((Z=-30))
|
||||
ExtraLineCollisionOffsets.Add((Z=30))
|
||||
// Since we're still using an extent cylinder, we need a line at 0
|
||||
ExtraLineCollisionOffsets.Add(())
|
||||
|
||||
bNetTemporary=False
|
||||
NetPriority=5
|
||||
|
@ -10,6 +10,36 @@
|
||||
|
||||
class KFProj_CaulkNBurn_GroundFire extends KFProj_GroundFire;
|
||||
|
||||
simulated protected function PrepareExplosionActor(GameExplosionActor GEA)
|
||||
{
|
||||
local KFExplosionActorLingering KFE_GroundFire;
|
||||
local KFPlayerController KFPC;
|
||||
local KFPerk InstigatorPerk;
|
||||
|
||||
super.PrepareExplosionActor(GEA);
|
||||
|
||||
KFE_GroundFire = KFExplosionActorLingering( GEA );
|
||||
if( KFE_GroundFire != none )
|
||||
{
|
||||
if (Instigator != none && Instigator.Controller != none)
|
||||
{
|
||||
KFPC = KFPlayerController(Instigator.Controller);
|
||||
if (KFPC != none)
|
||||
{
|
||||
InstigatorPerk = KFPC.GetPerk();
|
||||
if (InstigatorPerk != none && InstigatorPerk.IsRangeActive())
|
||||
{
|
||||
KFE_GroundFire.MaxTime = KFE_GroundFire.default.MaxTime * InstigatorPerk.GetRangeGroundFireDurationMod();
|
||||
KFE_GroundFire.FadeOutTime = KFE_GroundFire.MaxTime * 0.25f;
|
||||
|
||||
KFE_GroundFire.LoopingParticleEffect=ParticleSystem'WEP_3P_Molotov_EMIT.FX_Molotov_ground_fire_01';
|
||||
//KFE_GroundFire.LoopingParticleEffect=ParticleSystem'WEP_Flamethrower_EMIT.FX_Ground_fire_Splash_01';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
bWarnAIWhenFired=true
|
||||
|
@ -10,6 +10,36 @@
|
||||
|
||||
class KFProj_FlameThrower_GroundFire extends KFProj_GroundFire;
|
||||
|
||||
simulated protected function PrepareExplosionActor(GameExplosionActor GEA)
|
||||
{
|
||||
local KFExplosionActorLingering KFE_GroundFire;
|
||||
local KFPlayerController KFPC;
|
||||
local KFPerk InstigatorPerk;
|
||||
|
||||
super.PrepareExplosionActor(GEA);
|
||||
|
||||
KFE_GroundFire = KFExplosionActorLingering( GEA );
|
||||
if( KFE_GroundFire != none )
|
||||
{
|
||||
if (Instigator != none && Instigator.Controller != none)
|
||||
{
|
||||
KFPC = KFPlayerController(Instigator.Controller);
|
||||
if (KFPC != none)
|
||||
{
|
||||
InstigatorPerk = KFPC.GetPerk();
|
||||
if (InstigatorPerk != none && InstigatorPerk.IsRangeActive())
|
||||
{
|
||||
KFE_GroundFire.MaxTime = KFE_GroundFire.default.MaxTime * InstigatorPerk.GetRangeGroundFireDurationMod();
|
||||
KFE_GroundFire.FadeOutTime = KFE_GroundFire.MaxTime * 0.25f;
|
||||
|
||||
KFE_GroundFire.LoopingParticleEffect=ParticleSystem'WEP_3P_Molotov_EMIT.FX_Molotov_ground_fire_01';
|
||||
//KFE_GroundFire.LoopingParticleEffect=ParticleSystem'WEP_Flamethrower_EMIT.FX_Ground_fire_Splash_01';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
bWarnAIWhenFired=true
|
||||
|
@ -54,7 +54,12 @@ simulated state VortexState
|
||||
{
|
||||
foreach CollidingActors(class'Actor', Victim, VortexRadius, Location, true,, HitInfo)
|
||||
{
|
||||
if (KFPawn_Human(Victim) == none && Victim.CollisionComponent != none && !Victim.bWorldGeometry)
|
||||
if (KFPawn_Human(Victim) == none
|
||||
&& Victim.CollisionComponent != none
|
||||
&& !Victim.bWorldGeometry
|
||||
&& KFPawn_Scripted(Victim) == none
|
||||
&& KFPawn_AutoTurret(Victim) == none
|
||||
&& KFPawn_HRG_Warthog(Victim) == none)
|
||||
{
|
||||
Victim.CollisionComponent.AddRadialImpulse(Location, VortexRadius, VortexImpulseStrength, RIF_Constant, true);
|
||||
}
|
||||
|
@ -316,6 +316,9 @@ simulated state ImplodingState
|
||||
&& Victim != Instigator
|
||||
&& KFP != None
|
||||
&& KFPawn_Human(Victim) == none // No player's character
|
||||
&& KFPawn_Scripted(Victim) == none
|
||||
&& KFPawn_AutoTurret(Victim) == none
|
||||
&& KFPawn_HRG_Warthog(Victim) == none
|
||||
&& (KFPM == none || VortexTime < VortexDuration*KFPM.GetVortexAttractionModifier()) )
|
||||
{
|
||||
KFP.GetBoundingCylinder(ColRadius, ColHeight);
|
||||
|
@ -8,6 +8,36 @@
|
||||
//=============================================================================
|
||||
class KFProj_MicrowaveGun_GroundFire extends KFProj_GroundFire;
|
||||
|
||||
simulated protected function PrepareExplosionActor(GameExplosionActor GEA)
|
||||
{
|
||||
local KFExplosionActorLingering KFE_GroundFire;
|
||||
local KFPlayerController KFPC;
|
||||
local KFPerk InstigatorPerk;
|
||||
|
||||
super.PrepareExplosionActor(GEA);
|
||||
|
||||
KFE_GroundFire = KFExplosionActorLingering( GEA );
|
||||
if( KFE_GroundFire != none )
|
||||
{
|
||||
if (Instigator != none && Instigator.Controller != none)
|
||||
{
|
||||
KFPC = KFPlayerController(Instigator.Controller);
|
||||
if (KFPC != none)
|
||||
{
|
||||
InstigatorPerk = KFPC.GetPerk();
|
||||
if (InstigatorPerk != none && InstigatorPerk.IsRangeActive())
|
||||
{
|
||||
KFE_GroundFire.MaxTime = KFE_GroundFire.default.MaxTime * InstigatorPerk.GetRangeGroundFireDurationMod();
|
||||
KFE_GroundFire.FadeOutTime = KFE_GroundFire.MaxTime * 0.25f;
|
||||
|
||||
KFE_GroundFire.LoopingParticleEffect=ParticleSystem'WEP_3P_Molotov_EMIT.FX_Molotov_ground_fire_01';
|
||||
//KFE_GroundFire.LoopingParticleEffect=ParticleSystem'WEP_Flamethrower_EMIT.FX_Ground_fire_Splash_01';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
bWarnAIWhenFired=true
|
||||
|
@ -337,11 +337,18 @@ simulated function Stick( vector StuckLocation, vector StuckNormal )
|
||||
local KFProj_Mine_Reconstructor PukeMine;
|
||||
local rotator RandRot;
|
||||
|
||||
if( Role != ROLE_Authority ) return;
|
||||
if( Role != ROLE_Authority )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
//we added a scapegoat that fixes the problem of hitwall not calling always in client, so we need to check it in case it comes
|
||||
//to not call it twice
|
||||
if(bSticked == true) return;
|
||||
if(bSticked == true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RotationRate = rot(0,0,0);
|
||||
|
||||
// Modify the collision so it can be detonated by the player
|
||||
@ -351,7 +358,6 @@ simulated function Stick( vector StuckLocation, vector StuckNormal )
|
||||
bCollideComplex = false;
|
||||
bBounce = false;
|
||||
SetPhysics( PHYS_None );
|
||||
SetOwner( none );
|
||||
|
||||
// Optimize for network
|
||||
NetUpdateFrequency = 10;
|
||||
@ -410,7 +416,11 @@ reliable client function StickInClient(vector StuckLocation, vector StuckNormal)
|
||||
|
||||
//we added a scapegoat that fixes the problem of hitwall not calling always in client, so we need to check it in case it comes
|
||||
//to not call it twice
|
||||
if(bSticked == true) return;
|
||||
if(bSticked == true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
RotationRate = rot(0,0,0);
|
||||
SetLocation(StuckLocation);
|
||||
// Modify the collision so it can be detonated by the player
|
||||
@ -419,7 +429,6 @@ reliable client function StickInClient(vector StuckLocation, vector StuckNormal)
|
||||
CylinderComponent.SetActorCollision( true, false );
|
||||
bCollideComplex = false;
|
||||
bBounce = false;
|
||||
SetOwner( none );
|
||||
|
||||
// Optimize for network
|
||||
NetUpdateFrequency = 0.25f;
|
||||
@ -541,7 +550,6 @@ simulated function bool ValidTouch( Pawn Other )
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if(bCantDetonateOnFullHP)
|
||||
{
|
||||
if(Other.GetTeamNum() == TeamNum && Other.Health >= Other.HealthMax )
|
||||
@ -558,6 +566,7 @@ simulated function bool ValidTouch( Pawn Other )
|
||||
// Make sure not touching through wall
|
||||
return FastTrace( Other.Location, Location,, true );
|
||||
}
|
||||
|
||||
return FastTrace( Other.Location, Location,, true );
|
||||
}
|
||||
|
||||
@ -566,6 +575,35 @@ simulated event Touch( Actor Other, PrimitiveComponent OtherComp, vector HitLoca
|
||||
{
|
||||
local Pawn P;
|
||||
|
||||
// If touched by ballistic bouncer, explode
|
||||
if (KFProj_HRG_BallisticBouncer(Other) != none
|
||||
|| KFProj_BloatPukeMine(Other) != none)
|
||||
{
|
||||
if (KFProj_BloatPukeMine(Other) != none)
|
||||
{
|
||||
// Force Touch, as by itself doesn't detect the Mine..
|
||||
KFProj_BloatPukeMine(Other).Touch(self, none, HitLocation, HitNormal);
|
||||
}
|
||||
|
||||
if (`TimeSince(CreationTime) >= 0.1f)
|
||||
{
|
||||
if ( WorldInfo.NetMode != NM_DedicatedServer )
|
||||
{
|
||||
// Use ImpactEffectManager to handle material based impacts
|
||||
`ImpactEffectManager.PlayImpactEffects(HitLocation, Instigator,, ImpactEffects);
|
||||
}
|
||||
|
||||
if (ExplosionTemplate != None && Role == ROLE_Authority)
|
||||
{
|
||||
TriggerExplosion(HitLocation, HitNormal, Other);
|
||||
}
|
||||
|
||||
Shutdown(); // cleanup/destroy projectile
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// If touched by an enemy pawn, explode
|
||||
P = Pawn( Other );
|
||||
if( P != None )
|
||||
@ -886,9 +924,9 @@ defaultproperties
|
||||
|
||||
// Camera Shake
|
||||
CamShake=CameraShake'WEP_Mine_Reconstructor_Arch.Camera_Shake'
|
||||
CamShakeInnerRadius=0
|
||||
CamShakeOuterRadius=0
|
||||
CamShakeFalloff=1.f
|
||||
CamShakeInnerRadius=100
|
||||
CamShakeOuterRadius=450
|
||||
CamShakeFalloff=1.5f
|
||||
bOrientCameraShakeTowardsEpicenter=true
|
||||
End Object
|
||||
ExplosionTemplate=ExploTemplate0
|
||||
|
@ -137,4 +137,4 @@ defaultproperties
|
||||
RateLimiter=0.1
|
||||
bKnockdownZeds=true
|
||||
bExcludeAnyBoss=true
|
||||
}
|
||||
}
|
||||
|
@ -17,7 +17,7 @@ simulated state WeaponSingleFiring
|
||||
|
||||
if (WorldInfo.NetMode == NM_Client && bAllowClientAmmoTracking && FireInterval[CurrentFireMode] <= MinFireIntervalToTriggerSync)
|
||||
{
|
||||
SyncCurrentAmmoCount(CurrentFireMode, AmmoCount[CurrentFireMode]);
|
||||
SyncCurrentAmmoCount(CurrentFireMode, AmmoCount[GetAmmoType(CurrentFireMode)]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -270,18 +270,6 @@ function SetOriginalValuesFromPickup( KFWeapon PickedUpWeapon )
|
||||
// charge alerts (beep, light) need current instigator
|
||||
WeaponPawn.Instigator = Instigator;
|
||||
WeaponPawn.SetOwner(self);
|
||||
|
||||
if (Instigator.Controller != none)
|
||||
{
|
||||
if (KFPawn_HRG_Warthog(KFPC.DeployedTurrets[i]) != none)
|
||||
{
|
||||
KFPawn_HRG_Warthog(KFPC.DeployedTurrets[i]).InstigatorController = Instigator.Controller;
|
||||
}
|
||||
else if (KFPawn_Autoturret(KFPC.DeployedTurrets[i]) != none)
|
||||
{
|
||||
KFPawn_Autoturret(KFPC.DeployedTurrets[i]).InstigatorController = Instigator.Controller;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -427,8 +427,8 @@ defaultproperties
|
||||
|
||||
DistortTrailParticle = none
|
||||
WhiteTrailParticle = none
|
||||
BlueTrailParticle = none
|
||||
RedTrailParticle = none
|
||||
// BlueTrailParticle = none
|
||||
// RedTrailParticle = none
|
||||
|
||||
FoldedTrailParticleSystem=ParticleSystem'WEP_Scythe_EMIT.FX_Scythe_Custom_R_01'
|
||||
UnfoldedTrailParticleSystem=ParticleSystem'WEP_Scythe_EMIT.FX_Scythe_Custom_Unfold_01';
|
||||
|
@ -11,9 +11,6 @@ class KFWeap_GravityImploder extends KFWeapon;
|
||||
|
||||
`define GRAVITYIMPLODER_MIC_LED_INDEX 1
|
||||
|
||||
/** Reduction for the amount of damage dealt to the weapon owner (including damage by the explosion) */
|
||||
var float SelfDamageReductionValue;
|
||||
|
||||
/** Weapons material colors for each fire mode. */
|
||||
var LinearColor DefaultFireMaterialColor;
|
||||
var LinearColor AltFireMaterialColor;
|
||||
@ -70,17 +67,6 @@ simulated function AltFireMode()
|
||||
StartFire(ALTFIRE_FIREMODE);
|
||||
}
|
||||
|
||||
// Reduce damage to self
|
||||
function AdjustDamage(out int InDamage, class<DamageType> DamageType, Actor DamageCauser)
|
||||
{
|
||||
super.AdjustDamage(InDamage, DamageType, DamageCauser);
|
||||
|
||||
if (Instigator != none && DamageCauser != none && DamageCauser.Instigator == Instigator)
|
||||
{
|
||||
InDamage *= SelfDamageReductionValue;
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
// Content
|
||||
@ -179,9 +165,7 @@ defaultproperties
|
||||
bHasFlashlight=false
|
||||
|
||||
WeaponFireWaveForm=ForceFeedbackWaveform'FX_ForceFeedback_ARCH.Gunfire.Medium_Recoil'
|
||||
|
||||
SelfDamageReductionValue=0.075f //0.f
|
||||
|
||||
|
||||
bLastFireWasAlt=false
|
||||
DefaultFireMaterialColor = (R = 0.965f,G = 0.2972f, B = 0.0f)
|
||||
AltFireMaterialColor = (R = 0.0f, G = 0.9631f, B = 0.96581f)
|
||||
|
@ -9,8 +9,6 @@
|
||||
|
||||
class KFWeap_HRG_Crossboom extends KFWeap_ScopedBase;
|
||||
|
||||
/** Reduction for the amount of damage dealt to the weapon owner (including damage by the explosion) */
|
||||
var() float SelfDamageReductionValue;
|
||||
|
||||
/** Return true if this weapon should play the fire last animation for this shoot animation */
|
||||
simulated function bool ShouldPlayFireLast(byte FireModeNum)
|
||||
@ -49,19 +47,6 @@ simulated function AltFireMode()
|
||||
StartFire(ALTFIRE_FIREMODE);
|
||||
}
|
||||
|
||||
/**
|
||||
Reduce the damage received and apply it to the shield
|
||||
*/
|
||||
function AdjustDamage(out int InDamage, class<DamageType> DamageType, Actor DamageCauser)
|
||||
{
|
||||
super.AdjustDamage(InDamage, DamageType, DamageCauser);
|
||||
|
||||
if (Instigator != none && DamageCauser.Instigator == Instigator)
|
||||
{
|
||||
InDamage *= SelfDamageReductionValue;
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
// Inventory
|
||||
@ -186,6 +171,4 @@ defaultproperties
|
||||
|
||||
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.15f), (Stat=EWUS_Damage1, Scale=1.15f), (Stat=EWUS_Weight, Add=1)))
|
||||
WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.3f), (Stat=EWUS_Damage1, Scale=1.3f), (Stat=EWUS_Weight, Add=2)))
|
||||
|
||||
SelfDamageReductionValue = 0.25f;
|
||||
}
|
@ -48,9 +48,6 @@ var AkComponent IronsightsComponent;
|
||||
var AkEvent IronsightsZoomInSound;
|
||||
var AkEvent IronsightsZoomOutSound;
|
||||
|
||||
/** Reduction for the amount of damage dealt to the weapon owner (including damage by the explosion) */
|
||||
var() float SelfDamageReductionValue;
|
||||
|
||||
/**
|
||||
* Toggle between DEFAULT and ALTFIRE
|
||||
*/
|
||||
@ -527,19 +524,6 @@ simulated state WeaponBurstFiring
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
Reduce the damage received and apply it to the shield
|
||||
*/
|
||||
function AdjustDamage(out int InDamage, class<DamageType> DamageType, Actor DamageCauser)
|
||||
{
|
||||
super.AdjustDamage(InDamage, DamageType, DamageCauser);
|
||||
|
||||
if (Instigator != none && DamageCauser.Instigator == Instigator)
|
||||
{
|
||||
InDamage *= SelfDamageReductionValue;
|
||||
}
|
||||
}
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
ForceReloadTime=0.4f
|
||||
@ -680,5 +664,4 @@ defaultproperties
|
||||
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.15f), (Stat=EWUS_Damage1, Scale=1.15f), (Stat=EWUS_Weight, Add=1)))
|
||||
WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.3f), (Stat=EWUS_Damage1, Scale=1.3f), (Stat=EWUS_Weight, Add=2)))
|
||||
|
||||
SelfDamageReductionValue = 0f;
|
||||
}
|
||||
|
@ -123,7 +123,7 @@ defaultproperties
|
||||
PenetrationPower(ALTFIRE_FIREMODE)=0
|
||||
FireInterval(ALTFIRE_FIREMODE)=0.5
|
||||
Spread(ALTFIRE_FIREMODE)=0.025
|
||||
AmmoCost(ALTFIRE_FIREMODE)=5 //3
|
||||
AmmoCost(ALTFIRE_FIREMODE)=3 //3
|
||||
|
||||
// Shotgun
|
||||
NumPellets(ALTFIRE_FIREMODE)=1
|
||||
|
@ -71,8 +71,6 @@ var const WeaponFireSndInfo BloodSuctionLoopNoAmmoAndBloodBallChargedSound;
|
||||
|
||||
var bool bIsSprayDisabled;
|
||||
|
||||
var float SelfDamageReductionValue;
|
||||
|
||||
var float FullChargedTimerInterval;
|
||||
var float ChargePercentage;
|
||||
|
||||
@ -1339,7 +1337,6 @@ defaultproperties
|
||||
//BLOOD BALL
|
||||
ChargingSound=(DefaultCue = AkEvent'WW_WEP_HRG_Vampire.Play_WEP_HRG_Vampire_SuckBlood_Loop_3P', FirstPersonCue=AkEvent'WW_WEP_HRG_Vampire.Play_WEP_HRG_Vampire_SuckBlood_Loop_1P')
|
||||
ChargedSound=(DefaultCue = AkEvent'WW_WEP_HRG_Vampire.Play_WEP_HRG_Vampire_SuckBlood_Charged_3P', FirstPersonCue=AkEvent'WW_WEP_HRG_Vampire.Play_WEP_HRG_Vampire_SuckBlood_Charged_1P')
|
||||
SelfDamageReductionValue=0.1f
|
||||
|
||||
//MaxChargeTime=0.6 //0.8
|
||||
MinDamageWhileChargingThreshold=0.12 //10% of MaxChargeTime
|
||||
|
@ -275,18 +275,6 @@ function SetOriginalValuesFromPickup( KFWeapon PickedUpWeapon )
|
||||
// charge alerts (beep, light) need current instigator
|
||||
WeaponPawn.Instigator = Instigator;
|
||||
WeaponPawn.SetOwner(self);
|
||||
|
||||
if (Instigator.Controller != none)
|
||||
{
|
||||
if (KFPawn_HRG_Warthog(KFPC.DeployedTurrets[i]) != none)
|
||||
{
|
||||
KFPawn_HRG_Warthog(KFPC.DeployedTurrets[i]).InstigatorController = Instigator.Controller;
|
||||
}
|
||||
else if (KFPawn_Autoturret(KFPC.DeployedTurrets[i]) != none)
|
||||
{
|
||||
KFPawn_Autoturret(KFPC.DeployedTurrets[i]).InstigatorController = Instigator.Controller;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -32,7 +32,6 @@ var transient bool bIsFullyCharged;
|
||||
|
||||
var const WeaponFireSndInfo FullyChargedSound;
|
||||
|
||||
var float SelfDamageReductionValue;
|
||||
|
||||
var float FullChargedTimerInterval;
|
||||
|
||||
@ -377,16 +376,6 @@ simulated function int GetChargeFXLevel()
|
||||
}
|
||||
}
|
||||
|
||||
function AdjustDamage(out int InDamage, class<DamageType> DamageType, Actor DamageCauser)
|
||||
{
|
||||
super.AdjustDamage(InDamage, DamageType, DamageCauser);
|
||||
|
||||
if (Instigator != none && DamageCauser != none && DamageCauser.Instigator == Instigator ) //self
|
||||
{
|
||||
InDamage *= SelfDamageReductionValue;
|
||||
}
|
||||
}
|
||||
|
||||
// increase the instant hit damage based on the charge level
|
||||
simulated function int GetModifiedDamage(byte FireModeNum, optional vector RayDir)
|
||||
{
|
||||
@ -403,7 +392,6 @@ simulated function int GetModifiedDamage(byte FireModeNum, optional vector RayDi
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
SelfDamageReductionValue=0.1f
|
||||
//Gameplay Props
|
||||
MaxChargeTime=1.0
|
||||
ValueIncreaseTime=0.2
|
||||
|
@ -32,8 +32,6 @@ var transient bool bIsFullyCharged;
|
||||
|
||||
var const WeaponFireSndInfo FullyChargedSound;
|
||||
|
||||
var float SelfDamageReductionValue;
|
||||
|
||||
var float FullChargedTimerInterval;
|
||||
var float FXScalingFactorByCharge, ChargePercentage;
|
||||
var float MinScale, MaxScale;
|
||||
@ -289,7 +287,7 @@ simulated function BeginFire(Byte FireModeNum)
|
||||
|
||||
simulated function StartFire(byte FiremodeNum)
|
||||
{
|
||||
if (IsTimerActive('RefireCheckTimer') || bBlocked)
|
||||
if (bBlocked)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@ -308,8 +306,6 @@ simulated function StartFire(byte FiremodeNum)
|
||||
{
|
||||
bBlocked = false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
simulated function RefireCheckTimer()
|
||||
@ -513,6 +509,7 @@ simulated state MineReconstructorCharge extends WeaponFiring
|
||||
global.Tick(DeltaTime);
|
||||
|
||||
if(bIsFullyCharged) return;
|
||||
if(PendingFire(ALTFIRE_FIREMODE)) return;
|
||||
|
||||
// Don't charge unless we're holding down the button
|
||||
if (PendingFire(CurrentFireMode))
|
||||
@ -803,6 +800,11 @@ simulated function AltFireMode()
|
||||
return;
|
||||
}
|
||||
|
||||
if (PendingFire(DEFAULT_FIREMODE))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
StartFire(ALTFIRE_FIREMODE);
|
||||
}
|
||||
|
||||
@ -831,11 +833,8 @@ state WeaponSingleFiring
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
SelfDamageReductionValue=0.1f
|
||||
//Gameplay Props
|
||||
MaxChargeTime=1.2
|
||||
AmmoIncreasePerCharge=1
|
||||
@ -906,6 +905,7 @@ defaultproperties
|
||||
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_Projectile
|
||||
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Mine_Reconstructor'
|
||||
FireInterval(DEFAULT_FIREMODE)=+0.2 //+0.33
|
||||
Spread(DEFAULT_FIREMODE)=0.0
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=120
|
||||
PenetrationPower(DEFAULT_FIREMODE)=0.0;
|
||||
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Toxic_MineReconstructorImpact'
|
||||
@ -915,6 +915,7 @@ defaultproperties
|
||||
FiringStatesArray(ALTFIRE_FIREMODE)=WeaponSingleFiring
|
||||
WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_Custom
|
||||
FireInterval(ALTFIRE_FIREMODE)=+0.15 //+0.25
|
||||
Spread(ALTFIRE_FIREMODE)=0.0
|
||||
AmmoCost(ALTFIRE_FIREMODE)=0
|
||||
|
||||
// BASH_FIREMODE
|
||||
|
@ -138,6 +138,7 @@ defaultproperties
|
||||
// Fire Effects
|
||||
MuzzleFlashTemplate=KFMuzzleFlash'WEP_L85A2_ARCH.Wep_L85A2_MuzzleFlash'
|
||||
WeaponFireSnd(DEFAULT_FIREMODE)=(DefaultCue=AkEvent'WW_ZED_Patriarch.Play_Mini_Gun_LP', FirstPersonCue=AkEvent'WW_ZED_Patriarch.Play_Mini_Gun_LP')
|
||||
WeaponFireSnd(ALTFIRE_FIREMODE) = (DefaultCue=AkEvent'WW_WEP_Stoner.Play_WEP_Stoner_Fire_3P_Single', FirstPersonCue=AkEvent'WW_WEP_Stoner.Play_WEP_Stoner_Fire_3P_Single')
|
||||
WeaponDryFireSnd(DEFAULT_FIREMODE)=AkEvent'WW_WEP_SA_AK12.Play_WEP_SA_AK12_Handling_DryFire'
|
||||
WeaponDryFireSnd(ALTFIRE_FIREMODE)=AkEvent'WW_WEP_SA_AK12.Play_WEP_SA_AK12_Handling_DryFire'
|
||||
|
||||
|
@ -28,9 +28,6 @@ var bool bCannonballConvertedToTimeBomb;
|
||||
/** flag indicating that the player released the button and the cannonbal can't be configured as a timed bomb **/
|
||||
var bool bForceStandardCannonbal;
|
||||
|
||||
/** Reduction for the amount of damage dealt to the weapon owner (including damage by the explosion) */
|
||||
var float SelfDamageReductionValue;
|
||||
|
||||
/** Amount of time we hold the fire button on this fire state, used in BlunderbussDeployAndDetonate **/
|
||||
var transient float FireHoldTime;
|
||||
|
||||
@ -369,16 +366,6 @@ simulated function HandleProjectileImpact(byte ProjectileFireMode, ImpactInfo Im
|
||||
}
|
||||
}
|
||||
|
||||
function AdjustDamage(out int InDamage, class<DamageType> DamageType, Actor DamageCauser)
|
||||
{
|
||||
super.AdjustDamage(InDamage, DamageType, DamageCauser);
|
||||
|
||||
if (Instigator != none && DamageCauser != none && DamageCauser.Instigator == Instigator)
|
||||
{
|
||||
InDamage *= SelfDamageReductionValue;
|
||||
}
|
||||
}
|
||||
|
||||
simulated function KFProjectile SpawnAllProjectiles(class<KFProjectile> KFProjClass, vector RealStartLoc, vector AimDir)
|
||||
{
|
||||
local KFPerk InstigatorPerk;
|
||||
@ -467,7 +454,6 @@ defaultproperties
|
||||
bIsBackupWeapon=false
|
||||
|
||||
// Gameplay
|
||||
SelfDamageReductionValue=0.5f //0.75f
|
||||
TimedDetonationThresholdTime=0.01f
|
||||
|
||||
// FOV
|
||||
|
@ -19,9 +19,6 @@ var array<KFProj_Rocket_SealSqueal> DeployedHarpoons;
|
||||
/** Same as DeployedHarpoons.Length, but replicated because harpoons are only tracked on server */
|
||||
var int NumDeployedHarpoons;
|
||||
|
||||
/** Reduction for the amount of damage dealt to the weapon owner (including damage by the explosion) */
|
||||
var float SelfDamageReductionValue;
|
||||
|
||||
/** Camera shake when detonating the harpoons */
|
||||
var CameraAnim DetonateCameraAnim;
|
||||
var float DetonateCameraAnimPlayRate;
|
||||
@ -81,15 +78,6 @@ simulated function name GetReloadAnimName(bool bTacticalReload)
|
||||
}
|
||||
}
|
||||
|
||||
function AdjustDamage(out int InDamage, class<DamageType> DamageType, Actor DamageCauser)
|
||||
{
|
||||
super.AdjustDamage(InDamage, DamageType, DamageCauser);
|
||||
|
||||
if (Instigator != none && DamageCauser != none && DamageCauser.Instigator == Instigator)
|
||||
{
|
||||
InDamage *= SelfDamageReductionValue;
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************************************
|
||||
* State WeaponDetonating
|
||||
@ -338,8 +326,6 @@ defaultproperties
|
||||
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.15f), (Stat=EWUS_Weight, Add=1)))
|
||||
WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.3f), (Stat=EWUS_Weight, Add=2)))
|
||||
|
||||
SelfDamageReductionValue=0.25f
|
||||
|
||||
DetonateCameraAnim=CameraAnim'WEP_1P_Seal_Squeal_ANIM.Shoot_MB500'
|
||||
DetonateCameraAnimPlayRate=2.0f
|
||||
DetonateCameraAnimScale=0.4f
|
||||
|
@ -15,9 +15,6 @@ var array<KFProj_Rocket_ThermiteBore> DeployedHarpoons;
|
||||
/** Same as DeployedHarpoons.Length, but replicated because harpoons are only tracked on server */
|
||||
var int NumDeployedHarpoons;
|
||||
|
||||
/** Reduction for the amount of damage dealt to the weapon owner (including damage by the explosion) */
|
||||
var float SelfDamageReductionValue;
|
||||
|
||||
var(Animations) const editconst name DetonateAnim;
|
||||
var(Animations) const editconst name DetonateAnimLast;
|
||||
var(Animations) const editconst name DetonateAnimIron;
|
||||
@ -77,16 +74,6 @@ simulated function name GetReloadAnimName(bool bTacticalReload)
|
||||
}
|
||||
}
|
||||
|
||||
function AdjustDamage(out int InDamage, class<DamageType> DamageType, Actor DamageCauser)
|
||||
{
|
||||
super.AdjustDamage(InDamage, DamageType, DamageCauser);
|
||||
|
||||
if (Instigator != none && DamageCauser != none && DamageCauser.Instigator == Instigator)
|
||||
{
|
||||
InDamage *= SelfDamageReductionValue;
|
||||
}
|
||||
}
|
||||
|
||||
/*********************************************************************************************
|
||||
* State WeaponDetonating
|
||||
* The weapon is in this state while detonating a charge
|
||||
@ -315,8 +302,6 @@ defaultproperties
|
||||
|
||||
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.125f), (Stat=EWUS_Weight, Add=1)))
|
||||
|
||||
SelfDamageReductionValue=0.05f //0.25f
|
||||
|
||||
DetonateAnim=Alt_Fire
|
||||
DetonateAnimLast=Alt_Fire_Last
|
||||
DetonateAnimIron=Alt_Fire_Iron
|
||||
|
@ -168,7 +168,7 @@ defaultproperties
|
||||
FireInterval(ALTFIRE_FIREMODE)=0.25 // 240 RPM
|
||||
NumPellets(ALTFIRE_FIREMODE)=24
|
||||
Spread(ALTFIRE_FIREMODE)=0.19
|
||||
AmmoCost(ALTFIRE_FIREMODE)=4
|
||||
AmmoCost(ALTFIRE_FIREMODE)=1
|
||||
DoubleBarrelKickMomentum=1000
|
||||
FallingMomentumReduction=0.5
|
||||
|
||||
|
Reference in New Issue
Block a user