upload
This commit is contained in:
parent
90e235396c
commit
9a5bfed23e
@ -13,6 +13,8 @@ var name SoundCueName;
|
|||||||
var float LastProgress;
|
var float LastProgress;
|
||||||
var bool bLastMissionCritical;
|
var bool bLastMissionCritical;
|
||||||
|
|
||||||
|
var bool bPrevCompleted;
|
||||||
|
|
||||||
function InitializeHUD()
|
function InitializeHUD()
|
||||||
{
|
{
|
||||||
KFPC = KFPlayerController(GetPC());
|
KFPC = KFPlayerController(GetPC());
|
||||||
@ -77,10 +79,16 @@ function SetCompleted(bool bComplete)
|
|||||||
DataObject.SetString("completeString", bComplete ? Localize("Objectives", "SuccessString", "KFGame") : "");
|
DataObject.SetString("completeString", bComplete ? Localize("Objectives", "SuccessString", "KFGame") : "");
|
||||||
SetObject("completeStatus", DataObject);
|
SetObject("completeStatus", DataObject);
|
||||||
|
|
||||||
|
if (!bComplete)
|
||||||
|
{
|
||||||
|
bPrevCompleted = false;
|
||||||
|
}
|
||||||
|
|
||||||
//play sound queue
|
//play sound queue
|
||||||
if (KFPC != none && KFPC.MyGFxHUD != none && bComplete)
|
if (KFPC != none && KFPC.MyGFxHUD != none && bComplete && bComplete != bPrevCompleted)
|
||||||
{
|
{
|
||||||
KFPC.MyGFxHUD.PlaySoundFromTheme(SoundCueName, SoundThemeName);
|
KFPC.MyGFxHUD.PlaySoundFromTheme(SoundCueName, SoundThemeName);
|
||||||
|
bPrevCompleted = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -192,7 +200,7 @@ DefaultProperties
|
|||||||
{
|
{
|
||||||
LastProgress=-0.0f
|
LastProgress=-0.0f
|
||||||
UpdateRate=0.1f
|
UpdateRate=0.1f
|
||||||
|
bPrevCompleted=false
|
||||||
SoundThemeName=UI
|
SoundThemeName=UI
|
||||||
SoundCueName=TraderTime_Countdown
|
SoundCueName=TraderTime_Countdown
|
||||||
}
|
}
|
@ -177,17 +177,18 @@ function UpdatePlayerData()
|
|||||||
local GFxObject DataProvider,TempData, PerkIconObject;
|
local GFxObject DataProvider,TempData, PerkIconObject;
|
||||||
local int i;
|
local int i;
|
||||||
local KFPlayerReplicationinfo KFPRI;
|
local KFPlayerReplicationinfo KFPRI;
|
||||||
|
local KFGameReplicationInfo KFGRI;
|
||||||
local KFPlayerController KFPC;
|
local KFPlayerController KFPC;
|
||||||
local int PlayerIndex;
|
local int PlayerIndex;
|
||||||
|
|
||||||
KFPC = KFPlayerController(GetPC());
|
KFPC = KFPlayerController(GetPC());
|
||||||
|
KFGRI = KFGameReplicationInfo(GetPC().Worldinfo.GRI);
|
||||||
PlayerIndex=0;
|
PlayerIndex=0;
|
||||||
DataProvider = CreateArray();
|
DataProvider = CreateArray();
|
||||||
for(i = 0 ; i < CurrentPlayerList.length; i ++)
|
for(i = 0 ; i < CurrentPlayerList.length; i ++)
|
||||||
{
|
{
|
||||||
KFPRI = CurrentPlayerList[i];
|
KFPRI = CurrentPlayerList[i];
|
||||||
if(KFPRI.GetTeamNum() != 255 && KFPRI.bHasSpawnedIn)
|
if(KFPRI.GetTeamNum() != 255 && (KFPRI.bHasSpawnedIn || (KFGRI != none && KFGRI.bVersusGame)))
|
||||||
{
|
{
|
||||||
TempData = CreateObject("Object");
|
TempData = CreateObject("Object");
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ function SetMapOptions()
|
|||||||
if(KFGRI != none && KFGRI.VoteCollector != none)
|
if(KFGRI != none && KFGRI.VoteCollector != none)
|
||||||
{
|
{
|
||||||
ServerMapList = KFGRI.VoteCollector.MapList;
|
ServerMapList = KFGRI.VoteCollector.MapList;
|
||||||
IsBrokenTrader = class'KFGameEngine'.static.GetWeeklyEventIndex() == 11;
|
IsBrokenTrader = KFGRI.IsA('KFGameReplicationInfo_WeeklySurvival') && class'KFGameEngine'.static.GetWeeklyEventIndexMod() == 11;
|
||||||
|
|
||||||
//gfx
|
//gfx
|
||||||
MapList = CreateArray();
|
MapList = CreateArray();
|
||||||
|
@ -270,7 +270,7 @@ function FilterWeeklyMaps(out array<string> List)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Scavenger index = 11
|
// Scavenger index = 11
|
||||||
if (class'KFGameEngine'.static.GetWeeklyEventIndex() == 11)
|
if (class'KFGameEngine'.static.GetWeeklyEventIndexMod() == 11)
|
||||||
{
|
{
|
||||||
List.RemoveItem("KF-Biolapse");
|
List.RemoveItem("KF-Biolapse");
|
||||||
List.RemoveItem("KF-Nightmare");
|
List.RemoveItem("KF-Nightmare");
|
||||||
|
@ -470,6 +470,7 @@ function ClearOnlineDelegates()
|
|||||||
/** Static because these are both called on default object */
|
/** Static because these are both called on default object */
|
||||||
native static function int GetSeasonalEventID();
|
native static function int GetSeasonalEventID();
|
||||||
native static function int GetWeeklyEventIndex();
|
native static function int GetWeeklyEventIndex();
|
||||||
|
native static function int GetWeeklyEventIndexMod();
|
||||||
native static function bool IsSalesEventActive();
|
native static function bool IsSalesEventActive();
|
||||||
native static function bool IsSalesEventChecked();
|
native static function bool IsSalesEventChecked();
|
||||||
/***********************************************************************************
|
/***********************************************************************************
|
||||||
|
@ -436,6 +436,11 @@ enum EMonsterProperties
|
|||||||
|
|
||||||
var int SpawnedMonsterProperties[EMonsterProperties];
|
var int SpawnedMonsterProperties[EMonsterProperties];
|
||||||
|
|
||||||
|
/************************************************************************************
|
||||||
|
* @name Force to sort maps by name
|
||||||
|
***********************************************************************************/
|
||||||
|
var bool bForceMapSorting;
|
||||||
|
|
||||||
/************************************************************************************
|
/************************************************************************************
|
||||||
* @name Native
|
* @name Native
|
||||||
***********************************************************************************/
|
***********************************************************************************/
|
||||||
@ -2890,6 +2895,21 @@ function string GetNextMap()
|
|||||||
for (i = 0; i < GameMapCycles[ActiveMapCycle].Maps.length; ++i)
|
for (i = 0; i < GameMapCycles[ActiveMapCycle].Maps.length; ++i)
|
||||||
{
|
{
|
||||||
MapCycleIndex = MapCycleIndex + 1 < GameMapCycles[ActiveMapCycle].Maps.length ? (MapCycleIndex + 1) : 0;
|
MapCycleIndex = MapCycleIndex + 1 < GameMapCycles[ActiveMapCycle].Maps.length ? (MapCycleIndex + 1) : 0;
|
||||||
|
|
||||||
|
if (class'KFGameEngine'.static.GetWeeklyEventIndexMod() == 11)
|
||||||
|
{
|
||||||
|
if (MyKFGRI.IsA('KFGameReplicationInfo_WeeklySurvival') &&
|
||||||
|
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-Biolapse" ||
|
||||||
|
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-Nightmare" ||
|
||||||
|
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-PowerCore_Holdout" ||
|
||||||
|
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-TheDescent" ||
|
||||||
|
GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex] == "KF-KrampusLair")
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ( IsMapAllowedInCycle(GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex]) )
|
if ( IsMapAllowedInCycle(GameMapCycles[ActiveMapCycle].Maps[MapCycleIndex]) )
|
||||||
{
|
{
|
||||||
SaveConfig();
|
SaveConfig();
|
||||||
@ -3875,4 +3895,6 @@ defaultproperties
|
|||||||
|
|
||||||
DebugForcedOutbreakIdx=INDEX_NONE
|
DebugForcedOutbreakIdx=INDEX_NONE
|
||||||
DebugForceSpecialWaveZedType=INDEX_NONE
|
DebugForceSpecialWaveZedType=INDEX_NONE
|
||||||
|
|
||||||
|
bForceMapSorting=True
|
||||||
}
|
}
|
||||||
|
@ -802,7 +802,7 @@ exec reliable client function ShowPreGameServerWelcomeScreen()
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
simulated function GetKFPRIArray(out array<KFPlayerReplicationInfo> KFPRIArray, optional bool bGetSpectators, optional bool bGetZedPlayers)
|
simulated function GetKFPRIArray(out array<KFPlayerReplicationInfo> KFPRIArray, optional bool bGetSpectators, optional bool bGetZedPlayers = true)
|
||||||
{
|
{
|
||||||
local int i;
|
local int i;
|
||||||
local int Num;
|
local int Num;
|
||||||
|
@ -973,7 +973,7 @@ static function PrepareExplosive( Pawn ProjOwner, KFProjectile Proj, optional fl
|
|||||||
|
|
||||||
DefaultProperties
|
DefaultProperties
|
||||||
{
|
{
|
||||||
ParryDuration=6.f //10.f
|
ParryDuration=8.f //6.f //10.f
|
||||||
ParrySpeed=0.05
|
ParrySpeed=0.05
|
||||||
FurySpeed=0.05
|
FurySpeed=0.05
|
||||||
NinjaSprintModifer=0.25
|
NinjaSprintModifer=0.25
|
||||||
@ -982,7 +982,7 @@ DefaultProperties
|
|||||||
SpeedDamageModifier=0.2
|
SpeedDamageModifier=0.2
|
||||||
SmashHeadDamageModifier=0.25
|
SmashHeadDamageModifier=0.25
|
||||||
VampireAttackSpeedModifier=0.2f
|
VampireAttackSpeedModifier=0.2f
|
||||||
ParryDamageReduction=0.25f //0.4f //0.75
|
ParryDamageReduction=0.3f //0.25f //0.4f //0.75
|
||||||
RageRadius=1000 //300
|
RageRadius=1000 //300
|
||||||
RageFleeDuration=5.f //3
|
RageFleeDuration=5.f //3
|
||||||
RageFleeDistance=2500 //5000
|
RageFleeDistance=2500 //5000
|
||||||
|
@ -465,7 +465,7 @@ function ServerStartVoteSkipTrader(PlayerReplicationInfo PRI)
|
|||||||
|
|
||||||
CurrentVoteTime = min(VoteTime, TraderTimeRemaining - SkipTraderVoteLimit);
|
CurrentVoteTime = min(VoteTime, TraderTimeRemaining - SkipTraderVoteLimit);
|
||||||
|
|
||||||
GetKFPRIArray(PRIs);
|
GetKFPRIArray(PRIs, , false);
|
||||||
for (i = 0; i < PRIs.Length; i++)
|
for (i = 0; i < PRIs.Length; i++)
|
||||||
{
|
{
|
||||||
PRIs[i].ShowSkipTraderVote(PRI, CurrentVoteTime, !(PRIs[i] == PRI) && PRI.GetTeamNum() != 255);
|
PRIs[i].ShowSkipTraderVote(PRI, CurrentVoteTime, !(PRIs[i] == PRI) && PRI.GetTeamNum() != 255);
|
||||||
@ -491,7 +491,7 @@ reliable server function UpdateTimer()
|
|||||||
local int i;
|
local int i;
|
||||||
|
|
||||||
CurrentVoteTime -= 1;
|
CurrentVoteTime -= 1;
|
||||||
GetKFPRIArray(PRIs);
|
GetKFPRIArray(PRIs, , false);
|
||||||
for (i = 0; i < PRIs.Length; i++)
|
for (i = 0; i < PRIs.Length; i++)
|
||||||
{
|
{
|
||||||
PRIs[i].UpdateSkipTraderTime(CurrentVoteTime);
|
PRIs[i].UpdateSkipTraderTime(CurrentVoteTime);
|
||||||
@ -586,7 +586,7 @@ function bool ShouldConcludeSkipTraderVote()
|
|||||||
local array<KFPlayerReplicationInfo> PRIs;
|
local array<KFPlayerReplicationInfo> PRIs;
|
||||||
local int NumPRIs;
|
local int NumPRIs;
|
||||||
|
|
||||||
GetKFPRIArray(PRIs);
|
GetKFPRIArray(PRIs, , false);
|
||||||
NumPRIs = PRIs.Length;
|
NumPRIs = PRIs.Length;
|
||||||
|
|
||||||
if( YesVotes + NoVotes >= NumPRIs || NoVotes > 0 )
|
if( YesVotes + NoVotes >= NumPRIs || NoVotes > 0 )
|
||||||
@ -607,7 +607,7 @@ reliable server function ConcludeVoteSkipTrader()
|
|||||||
|
|
||||||
if(bIsSkipTraderVoteInProgress)
|
if(bIsSkipTraderVoteInProgress)
|
||||||
{
|
{
|
||||||
GetKFPRIArray(PRIs);
|
GetKFPRIArray(PRIs, , false);
|
||||||
|
|
||||||
for (i = 0; i < PRIs.Length; i++)
|
for (i = 0; i < PRIs.Length; i++)
|
||||||
{
|
{
|
||||||
@ -680,7 +680,7 @@ function ResetSkipTraderBeforeWaveStarts()
|
|||||||
local array<KFPlayerReplicationInfo> PRIs;
|
local array<KFPlayerReplicationInfo> PRIs;
|
||||||
local int i;
|
local int i;
|
||||||
|
|
||||||
GetKFPRIArray(PRIs);
|
GetKFPRIArray(PRIs, , false);
|
||||||
for (i = 0; i < PRIs.Length; i++)
|
for (i = 0; i < PRIs.Length; i++)
|
||||||
{
|
{
|
||||||
PRIs[i].bAlreadyStartedASkipTraderVote = false;
|
PRIs[i].bAlreadyStartedASkipTraderVote = false;
|
||||||
|
@ -24,9 +24,12 @@ var localized array<string> DescriptionStrings;
|
|||||||
//List of any modifer information we need specific to the mode
|
//List of any modifer information we need specific to the mode
|
||||||
var localized array<string> ModifierDescriptions;
|
var localized array<string> ModifierDescriptions;
|
||||||
|
|
||||||
|
cpptext
|
||||||
|
{
|
||||||
|
/** Num of Weekly events available */
|
||||||
|
static const int NumWeeklyEvents = 12;
|
||||||
|
}
|
||||||
DefaultProperties
|
DefaultProperties
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
@ -16,7 +16,7 @@ var() ParticleSystem LoopingParticleEffectWall;
|
|||||||
DefaultProperties
|
DefaultProperties
|
||||||
{
|
{
|
||||||
Interval=0.5
|
Interval=0.5
|
||||||
MaxTime=10
|
MaxTime=7 //10
|
||||||
|
|
||||||
bDoFullDamage=true
|
bDoFullDamage=true
|
||||||
|
|
||||||
|
@ -475,7 +475,7 @@ defaultproperties
|
|||||||
TraderWeaponList=KFGFxObject_TraderItems'GP_Trader_ARCH.BrokenTraderWeeklyTraderList',
|
TraderWeaponList=KFGFxObject_TraderItems'GP_Trader_ARCH.BrokenTraderWeeklyTraderList',
|
||||||
PickupResetTime=PRS_Wave,
|
PickupResetTime=PRS_Wave,
|
||||||
bDisableTraders=false,
|
bDisableTraders=false,
|
||||||
DroppedItemLifespan=10.0f, // 300 default
|
DroppedItemLifespan=20.0f, //10.0f, // 300 default
|
||||||
DoshOnKillGlobalModifier=0.2,
|
DoshOnKillGlobalModifier=0.2,
|
||||||
//Pickup Notes for when you're modifying:
|
//Pickup Notes for when you're modifying:
|
||||||
// NumPickups = Actors * OverridePickupModifer * WavePickupModifier
|
// NumPickups = Actors * OverridePickupModifer * WavePickupModifier
|
||||||
|
@ -65,8 +65,6 @@ simulated event PostBeginPlay()
|
|||||||
{
|
{
|
||||||
SetTimer(FuseTime, false, 'Timer_Detonate');
|
SetTimer(FuseTime, false, 'Timer_Detonate');
|
||||||
}
|
}
|
||||||
|
|
||||||
AdjustCanDisintigrate();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -181,14 +179,6 @@ simulated function Disintegrate( rotator InDisintegrateEffectRotation )
|
|||||||
super.Disintegrate(InDisintegrateEffectRotation);
|
super.Disintegrate(InDisintegrateEffectRotation);
|
||||||
}
|
}
|
||||||
|
|
||||||
// for nukes && concussive force
|
|
||||||
simulated protected function PrepareExplosionTemplate()
|
|
||||||
{
|
|
||||||
class'KFPerk_Demolitionist'.static.PrepareExplosive(Instigator, self);
|
|
||||||
|
|
||||||
super.PrepareExplosionTemplate();
|
|
||||||
}
|
|
||||||
|
|
||||||
simulated function SyncOriginalLocation()
|
simulated function SyncOriginalLocation()
|
||||||
{
|
{
|
||||||
// IMPORTANT NOTE: We aren't actually syncing to the original location (or calling the super).
|
// IMPORTANT NOTE: We aren't actually syncing to the original location (or calling the super).
|
||||||
|
@ -419,7 +419,7 @@ simulated state AltReloading extends Reloading
|
|||||||
/** Make sure we can inturrupt secondary reload with anything. */
|
/** Make sure we can inturrupt secondary reload with anything. */
|
||||||
simulated function bool CanOverrideMagReload(byte FireModeNum)
|
simulated function bool CanOverrideMagReload(byte FireModeNum)
|
||||||
{
|
{
|
||||||
return false;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns animation to play based on reload type and status */
|
/** Returns animation to play based on reload type and status */
|
||||||
@ -553,6 +553,23 @@ simulated function ModifyRecoil( out float CurrentRecoilModifier )
|
|||||||
super.ModifyRecoil( CurrentRecoilModifier );
|
super.ModifyRecoil( CurrentRecoilModifier );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Spawn projectile is called once for each shot pellet fired */
|
||||||
|
simulated function KFProjectile SpawnAllProjectiles(class<KFProjectile> KFProjClass, vector RealStartLoc, vector AimDir)
|
||||||
|
{
|
||||||
|
local KFPerk InstigatorPerk;
|
||||||
|
|
||||||
|
if (CurrentFireMode == ALTFIRE_FIREMODE)
|
||||||
|
{
|
||||||
|
InstigatorPerk = GetPerk();
|
||||||
|
if (InstigatorPerk != none)
|
||||||
|
{
|
||||||
|
Spread[CurrentFireMode] = default.Spread[CurrentFireMode] * InstigatorPerk.GetTightChokeModifier();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.SpawnAllProjectiles(KFProjClass, RealStartLoc, AimDir);
|
||||||
|
}
|
||||||
|
|
||||||
defaultproperties
|
defaultproperties
|
||||||
{
|
{
|
||||||
bCanRefillSecondaryAmmo = true;
|
bCanRefillSecondaryAmmo = true;
|
||||||
@ -592,7 +609,7 @@ defaultproperties
|
|||||||
IronSightPosition=(X=0,Y=0,Z=0)
|
IronSightPosition=(X=0,Y=0,Z=0)
|
||||||
|
|
||||||
// Ammo
|
// Ammo
|
||||||
MagazineCapacity[0]=24
|
MagazineCapacity[0]=30 //24
|
||||||
SpareAmmoCapacity[0]=240
|
SpareAmmoCapacity[0]=240
|
||||||
InitialSpareMags[0]=3
|
InitialSpareMags[0]=3
|
||||||
bCanBeReloaded=true
|
bCanBeReloaded=true
|
||||||
@ -632,6 +649,7 @@ defaultproperties
|
|||||||
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_InstantHit
|
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_InstantHit
|
||||||
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_AssaultRifle'
|
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_AssaultRifle'
|
||||||
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_FAMAS_Rifle'
|
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_FAMAS_Rifle'
|
||||||
|
PenetrationPower(DEFAULT_FIREMODE)=1.0
|
||||||
FireInterval(DEFAULT_FIREMODE)=+0.0667 // 900 RPM
|
FireInterval(DEFAULT_FIREMODE)=+0.0667 // 900 RPM
|
||||||
InstantHitDamage(DEFAULT_FIREMODE)=35.0
|
InstantHitDamage(DEFAULT_FIREMODE)=35.0
|
||||||
Spread(DEFAULT_FIREMODE)=0.005 //0.0085
|
Spread(DEFAULT_FIREMODE)=0.005 //0.0085
|
||||||
@ -649,11 +667,11 @@ defaultproperties
|
|||||||
WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_Projectile
|
WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_Projectile
|
||||||
WeaponProjectiles(ALTFIRE_FIREMODE)=class'KFProj_Bullet_Pellet'
|
WeaponProjectiles(ALTFIRE_FIREMODE)=class'KFProj_Bullet_Pellet'
|
||||||
InstantHitDamageTypes(ALTFIRE_FIREMODE)=class'KFDT_Ballistic_FAMAS_Shotgun'
|
InstantHitDamageTypes(ALTFIRE_FIREMODE)=class'KFDT_Ballistic_FAMAS_Shotgun'
|
||||||
InstantHitDamage(ALTFIRE_FIREMODE)=25.0
|
InstantHitDamage(ALTFIRE_FIREMODE)=30.0 //25.0
|
||||||
PenetrationPower(DEFAULT_FIREMODE)=2.0
|
PenetrationPower(ALTFIRE_FIREMODE)=2.0
|
||||||
FireInterval(ALTFIRE_FIREMODE)=+1.2 //0.5 //0.7 //85 RPM
|
FireInterval(ALTFIRE_FIREMODE)=+1.2 //50 RPM
|
||||||
NumPellets(ALTFIRE_FIREMODE)=6
|
NumPellets(ALTFIRE_FIREMODE)=7 //6
|
||||||
Spread(ALTFIRE_FIREMODE)=0.12 //0.07
|
Spread(ALTFIRE_FIREMODE)=0.10 //0.12
|
||||||
SecondaryAmmoTexture=Texture2D'ui_firemodes_tex.UI_FireModeSelect_ShotgunSingle'
|
SecondaryAmmoTexture=Texture2D'ui_firemodes_tex.UI_FireModeSelect_ShotgunSingle'
|
||||||
|
|
||||||
// BASH_FIREMODE
|
// BASH_FIREMODE
|
||||||
|
@ -80,7 +80,7 @@ var protected transient float OverlayDelta;
|
|||||||
|
|
||||||
var WeaponFireSndInfo ShieldActivateSound;
|
var WeaponFireSndInfo ShieldActivateSound;
|
||||||
var WeaponFireSndInfo ShieldDeactivateSound;
|
var WeaponFireSndInfo ShieldDeactivateSound;
|
||||||
var (Shield) AkBaseSoundObject ShieldEndSound;
|
var WeaponFireSndInfo ShieldEndSound;
|
||||||
|
|
||||||
var repnotify byte ShieldAmmo;
|
var repnotify byte ShieldAmmo;
|
||||||
|
|
||||||
@ -170,7 +170,7 @@ simulated function CustomFire()
|
|||||||
|
|
||||||
simulated function ActivateShield()
|
simulated function ActivateShield()
|
||||||
{
|
{
|
||||||
PlaySoundBase(ShieldActivateSound.FirstPersonCue);
|
WeaponPlayFireSound(ShieldActivateSound.DefaultCue, ShieldActivateSound.FirstPersonCue);
|
||||||
bActivatingShield = true;
|
bActivatingShield = true;
|
||||||
bDeactivatingShield = false;
|
bDeactivatingShield = false;
|
||||||
bNetDirty = true;
|
bNetDirty = true;
|
||||||
@ -180,7 +180,7 @@ simulated function ActivateShield()
|
|||||||
|
|
||||||
simulated function DeactivateShield()
|
simulated function DeactivateShield()
|
||||||
{
|
{
|
||||||
PlaySoundBase(ShieldDeactivateSound.FirstPersonCue);
|
WeaponPlayFireSound(ShieldDeactivateSound.DefaultCue, ShieldDeactivateSound.FirstPersonCue);
|
||||||
bDeactivatingShield = true;
|
bDeactivatingShield = true;
|
||||||
bActivatingShield = false;
|
bActivatingShield = false;
|
||||||
bCanRechargeShield = false;
|
bCanRechargeShield = false;
|
||||||
@ -304,7 +304,7 @@ simulated function OnShieldDepleted()
|
|||||||
ShieldAmmo = 0;
|
ShieldAmmo = 0;
|
||||||
bNetDirty = true;
|
bNetDirty = true;
|
||||||
NotifyShieldActive(false);
|
NotifyShieldActive(false);
|
||||||
PlaySoundBase(ShieldEndSound);
|
WeaponPlayFireSound(ShieldEndSound.DefaultCue, ShieldEndSound.FirstPersonCue);
|
||||||
SetTimer(CooldownAfterShieldDepleted, false, nameof(ShieldRepletedTimerCompleted));
|
SetTimer(CooldownAfterShieldDepleted, false, nameof(ShieldRepletedTimerCompleted));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -325,7 +325,7 @@ simulated function OnShieldDestroyed()
|
|||||||
ShieldAmmo = 0;
|
ShieldAmmo = 0;
|
||||||
bNetDirty = true;
|
bNetDirty = true;
|
||||||
NotifyShieldActive(false);
|
NotifyShieldActive(false);
|
||||||
PlaySoundBase(ShieldEndSound);
|
WeaponPlayFireSound(ShieldEndSound.DefaultCue, ShieldEndSound.FirstPersonCue);
|
||||||
SetTimer(CooldownAfterShieldDestroyed, false, nameof(ShieldDestroyedTimerCompleted));
|
SetTimer(CooldownAfterShieldDestroyed, false, nameof(ShieldDestroyedTimerCompleted));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -519,6 +519,8 @@ simulated state WeaponEquipping
|
|||||||
{
|
{
|
||||||
simulated function BeginState(Name PreviousStateName)
|
simulated function BeginState(Name PreviousStateName)
|
||||||
{
|
{
|
||||||
|
UpdateShieldFXValue(0.0f);
|
||||||
|
FXDelta = 0.0f;
|
||||||
bShieldActionAvailable = true;
|
bShieldActionAvailable = true;
|
||||||
super.BeginState(PreviousStateName);
|
super.BeginState(PreviousStateName);
|
||||||
}
|
}
|
||||||
@ -689,9 +691,9 @@ defaultproperties
|
|||||||
CooldownAfterShieldDepleted=3.0f //3.0f
|
CooldownAfterShieldDepleted=3.0f //3.0f
|
||||||
CooldownAfterShieldDestroyed=3.0f //5.0f
|
CooldownAfterShieldDestroyed=3.0f //5.0f
|
||||||
|
|
||||||
ShieldActivateSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_On', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_On')
|
ShieldActivateSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_3P_Shield_On', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_On')
|
||||||
ShieldDeactivateSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Off', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Off')
|
ShieldDeactivateSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_3P_Shield_Off', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Off')
|
||||||
ShieldEndSound=AKEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_End';
|
ShieldEndSound=(DefaultCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_3P_Shield_End', FirstPersonCue=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_End')
|
||||||
|
|
||||||
BlockSound=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Impact'
|
BlockSound=AkEvent'WW_WEP_HRG_BarrierRifle.Play_WEP_HRG_BarrierRifle_1P_Shield_Impact'
|
||||||
BlockParticleSystem=ParticleSystem'FX_Impacts_EMIT.FX_Block_melee_01'
|
BlockParticleSystem=ParticleSystem'FX_Impacts_EMIT.FX_Block_melee_01'
|
||||||
|
@ -416,7 +416,7 @@ defaultproperties
|
|||||||
|
|
||||||
// Shotgun Ammo
|
// Shotgun Ammo
|
||||||
MagazineCapacity[0]=4 //3
|
MagazineCapacity[0]=4 //3
|
||||||
SpareAmmoCapacity[0]=36 //28
|
SpareAmmoCapacity[0]=40 //36 //28
|
||||||
InitialSpareMags[0]=2
|
InitialSpareMags[0]=2
|
||||||
AmmoPickupScale[0]=1.5 //2.0
|
AmmoPickupScale[0]=1.5 //2.0
|
||||||
|
|
||||||
@ -438,12 +438,13 @@ defaultproperties
|
|||||||
WeaponProjectiles(CUSTOM_FIREMODE)=class'KFProj_Bullet_BlastBrawlers'
|
WeaponProjectiles(CUSTOM_FIREMODE)=class'KFProj_Bullet_BlastBrawlers'
|
||||||
FireInterval(CUSTOM_FIREMODE)=0.1f
|
FireInterval(CUSTOM_FIREMODE)=0.1f
|
||||||
InstantHitDamageTypes(CUSTOM_FIREMODE)=class'KFDT_Ballistic_BlastBrawlersShotgun'
|
InstantHitDamageTypes(CUSTOM_FIREMODE)=class'KFDT_Ballistic_BlastBrawlersShotgun'
|
||||||
InstantHitDamage(CUSTOM_FIREMODE)=36.0 //30.0
|
InstantHitDamage(CUSTOM_FIREMODE)=39.0 //36.0 //30.0
|
||||||
AmmoCost(CUSTOM_FIREMODE)=0
|
AmmoCost(CUSTOM_FIREMODE)=0
|
||||||
NumPellets(CUSTOM_FIREMODE)=5
|
NumPellets(CUSTOM_FIREMODE)=5
|
||||||
Spread(CUSTOM_FIREMODE)=0.1 //0.15
|
Spread(CUSTOM_FIREMODE)=0.12 //0.1 //0.15
|
||||||
WeaponFireSnd(CUSTOM_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_HRG_BlastBrawlers.Play_WEP_HRG_BlastBrawlers_Shoot_3P', FirstPersonCue=AkEvent'WW_WEP_HRG_BlastBrawlers.Play_WEP_HRG_BlastBrawlers_Shoot_1P')
|
WeaponFireSnd(CUSTOM_FIREMODE)=(DefaultCue=AkEvent'WW_WEP_HRG_BlastBrawlers.Play_WEP_HRG_BlastBrawlers_Shoot_3P', FirstPersonCue=AkEvent'WW_WEP_HRG_BlastBrawlers.Play_WEP_HRG_BlastBrawlers_Shoot_1P')
|
||||||
InstantHitMomentum(CUSTOM_FIREMODE)=1.0
|
InstantHitMomentum(CUSTOM_FIREMODE)=1.0
|
||||||
|
PenetrationPower(CUSTOM_FIREMODE)=2.0
|
||||||
PenetrationDamageReductionCurve(CUSTOM_FIREMODE)=(Points=((InVal=0.f,OutVal=0.f),(InVal=1.f, OutVal=1.f)))
|
PenetrationDamageReductionCurve(CUSTOM_FIREMODE)=(Points=((InVal=0.f,OutVal=0.f),(InVal=1.f, OutVal=1.f)))
|
||||||
|
|
||||||
FireModeIconPaths(DEFAULT_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_ShotgunSingle'
|
FireModeIconPaths(DEFAULT_FIREMODE)=Texture2D'ui_firemodes_tex.UI_FireModeSelect_ShotgunSingle'
|
||||||
@ -467,7 +468,7 @@ defaultproperties
|
|||||||
|
|
||||||
ParryStrength=5
|
ParryStrength=5
|
||||||
ParryDamageMitigationPercent=0.40
|
ParryDamageMitigationPercent=0.40
|
||||||
BlockDamageMitigation=0.40
|
BlockDamageMitigation=0.50 //0.40
|
||||||
|
|
||||||
bWaitingForSecondShot = false
|
bWaitingForSecondShot = false
|
||||||
NumAttacks = 0
|
NumAttacks = 0
|
||||||
|
@ -252,7 +252,7 @@ defaultproperties
|
|||||||
|
|
||||||
// Zooming/Position
|
// Zooming/Position
|
||||||
PlayerViewOffset=(X=11.0,Y=8,Z=-2)
|
PlayerViewOffset=(X=11.0,Y=8,Z=-2)
|
||||||
IronSightPosition=(X=10,Y=0,Z=0)
|
IronSightPosition=(X=10,Y=-0.15,Z=0.7)
|
||||||
|
|
||||||
// AI warning system
|
// AI warning system
|
||||||
bWarnAIWhenAiming=true
|
bWarnAIWhenAiming=true
|
||||||
|
Loading…
Reference in New Issue
Block a user