upload
This commit is contained in:
@ -506,7 +506,7 @@ function ReduceDamage(out int Damage, Pawn Injured, Controller InstigatedBy, vec
|
||||
|
||||
function StartOutbreakRound(int OutbreakIdx)
|
||||
{
|
||||
OutbreakEvent.SetActiveEvent(OutbreakIdx, self);
|
||||
OutbreakEvent.SetActiveEvent(OutbreakIdx);
|
||||
OutbreakEvent.UpdateGRI();
|
||||
OutbreakEvent.SetWorldInfoOverrides();
|
||||
|
||||
|
@ -51,7 +51,9 @@ var protected bool bGunGamePlayerOnLastGun;
|
||||
var transient array<KFBarmwichBonfireVolume> BonfireVolumes;
|
||||
|
||||
// Trader Time modifier for Castle Volter map in the last round
|
||||
var float CastleVolterTraderLastWaveModifier;
|
||||
var float CastleVolterTraderModifier;
|
||||
var bool bIsCastleVolterMap;
|
||||
|
||||
/** Whether this game mode should play music from the get-go (lobby) */
|
||||
static function bool ShouldPlayMusicAtStart()
|
||||
@ -77,6 +79,8 @@ event PostBeginPlay()
|
||||
{
|
||||
super.PostBeginPlay();
|
||||
|
||||
bIsCastleVolterMap = Caps(WorldInfo.GetMapName(true)) == "KF-CASTLEVOLTER";
|
||||
|
||||
TimeBetweenWaves = GetTraderTime();
|
||||
|
||||
bGunGamePlayerOnLastGun = false;
|
||||
@ -1130,6 +1134,11 @@ function WaveStarted()
|
||||
UpdateGameSettings();
|
||||
|
||||
bWaveStarted = true;
|
||||
|
||||
if (bIsCastleVolterMap)
|
||||
{
|
||||
TimeBetweenWaves = GetTraderTime();
|
||||
}
|
||||
}
|
||||
|
||||
/** Do something when there are no AIs left */
|
||||
@ -1473,17 +1482,7 @@ function DoTraderTimeCleanup();
|
||||
/** Handle functionality for opening trader */
|
||||
function OpenTrader()
|
||||
{
|
||||
local int UpdatedTimeBetweenWaves;
|
||||
|
||||
UpdatedTimeBetweenWaves = TimeBetweenWaves;
|
||||
|
||||
// In castle volter the trader needs to have a special time
|
||||
if (WorldInfo.GetMapName(true) == "KF-CastleVolter" && WaveNum == (WaveMax - 1) )
|
||||
{
|
||||
UpdatedTimeBetweenWaves = UpdatedTimeBetweenWaves * CastleVolterTraderModifier;
|
||||
}
|
||||
|
||||
MyKFGRI.OpenTrader(UpdatedTimeBetweenWaves);
|
||||
MyKFGRI.OpenTrader(TimeBetweenWaves);
|
||||
NotifyTraderOpened();
|
||||
}
|
||||
|
||||
@ -1929,6 +1928,27 @@ function ClearActorFromBonfire(Actor Other)
|
||||
}
|
||||
}
|
||||
|
||||
function float GetTraderTime()
|
||||
{
|
||||
local float TraderTime;
|
||||
TraderTime = Super.GetTraderTime();
|
||||
|
||||
// In castle volter the trader needs to have a special time
|
||||
if (bIsCastleVolterMap)
|
||||
{
|
||||
if ( WaveNum == (WaveMax - 1) && !bIsEndlessGame )
|
||||
{
|
||||
TraderTime *= CastleVolterTraderLastWaveModifier;
|
||||
}
|
||||
else
|
||||
{
|
||||
TraderTime *= CastleVolterTraderModifier;
|
||||
}
|
||||
}
|
||||
|
||||
return TraderTime;
|
||||
}
|
||||
|
||||
DefaultProperties
|
||||
{
|
||||
TimeBetweenWaves=60 //This is going to be a difficulty setting later
|
||||
@ -1938,7 +1958,10 @@ DefaultProperties
|
||||
MaxGameDifficulty=3
|
||||
bWaveStarted=false
|
||||
bGunGamePlayerOnLastGun=false
|
||||
CastleVolterTraderModifier = 1.0f;
|
||||
|
||||
CastleVolterTraderLastWaveModifier = 2.5f
|
||||
CastleVolterTraderModifier = 1.17f
|
||||
bIsCastleVolterMap = false;
|
||||
|
||||
ObjectiveSpawnDelay=5
|
||||
|
||||
|
@ -78,8 +78,13 @@ simulated event OnGameWon(class<GameInfo> GameClass, int Difficulty, int GameLen
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// kill 1500 zeds on asylum
|
||||
if (bObjectiveIsValidForMap[3] != 0)
|
||||
{
|
||||
@ -107,4 +112,4 @@ defaultproperties
|
||||
{
|
||||
EndlessWaveRequired=15
|
||||
ZedKillsRequired=1500
|
||||
}
|
||||
}
|
||||
|
@ -44,10 +44,15 @@ private event GrantEventItems()
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
local int ObjIdx;
|
||||
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Kill 2000 zeds on any map
|
||||
ObjIdx = 0;
|
||||
if (bObjectiveIsValidForMap[ObjIdx] != 0)
|
||||
@ -129,4 +134,4 @@ defaultproperties
|
||||
EndlessWaveRequired=15
|
||||
PowerUpsRequired=10
|
||||
FallEventIndex=SEI_Fall
|
||||
}
|
||||
}
|
||||
|
@ -116,23 +116,20 @@ simulated function OnTryCompleteObjective(int ObjectiveIndex, int EventIndex)
|
||||
}
|
||||
|
||||
// Kill Hans Volter in 5 different maps
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
local int ObjIdx;
|
||||
local KFProfileSettings Profile;
|
||||
|
||||
ObjIdx = 0;
|
||||
|
||||
if (Outer.IsEventObjectiveComplete(ObjIdx))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (bObjectiveIsValidForMap[ObjIdx] != 0)
|
||||
{
|
||||
if (MonsterClass == class'KFPawn_ZedHansBase'
|
||||
|| MonsterClass == class'KFPawn_ZedHans')
|
||||
{
|
||||
// This event can be heard no matter is bKiller true | false, we count for every player on the objective
|
||||
|
||||
if (Outer.GetSeasonalEventStatValue(ObjIdx) < HansVolterKillsRequired) // If we still didn't reach the limit..
|
||||
{
|
||||
Profile = KFProfileSettings(Outer.MyKFPC.OnlineSub.PlayerInterface.GetProfileSettings(Outer.MyKFPC.StoredLocalUserNum));
|
||||
|
@ -44,8 +44,13 @@ private event GrantEventItems()
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (bObjectiveIsValidForMap[2] != 0)
|
||||
{
|
||||
IncrementSeasonalEventStat(2, 1);
|
||||
@ -102,4 +107,4 @@ defaultproperties
|
||||
ZedKillsRequired=1500
|
||||
BossDeathsRequired=15
|
||||
EndlessWaveRequired=15
|
||||
}
|
||||
}
|
||||
|
@ -69,10 +69,15 @@ simulated event OnGameWon(class<GameInfo> GameClass, int Difficulty, int GameLen
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
local int ObjIdx;
|
||||
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ObjIdx = 0;
|
||||
if (bObjectiveIsValidForMap[ObjIdx] != 0)
|
||||
{
|
||||
@ -115,4 +120,4 @@ defaultproperties
|
||||
ZedKillsRequired=1500
|
||||
BloodBlenderKillsRequired=20
|
||||
TrapDoorKillsRequired=20
|
||||
}
|
||||
}
|
||||
|
@ -75,10 +75,15 @@ simulated function OnBossDied()
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
local int ObjIdx;
|
||||
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// E.D.A.R kills
|
||||
ObjIdx = 2;
|
||||
if (bObjectiveIsValidForMap[ObjIdx] != 0)
|
||||
|
@ -58,12 +58,17 @@ simulated event OnGameWon(class<GameInfo> GameClass, int Difficulty, int GameLen
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
local int ObjIdx;
|
||||
local KFPlayerController KFPC;
|
||||
local KFPawn_Human KFP;
|
||||
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Laser Kills
|
||||
ObjIdx = 2;
|
||||
if (bObjectiveIsValidForMap[ObjIdx] != 0)
|
||||
|
@ -61,10 +61,15 @@ simulated event OnGameWon(class<GameInfo> GameClass, int Difficulty, int GameLen
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
local int ObjIdx;
|
||||
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Kill 1500 Zeds on any map or mode
|
||||
ObjIdx = 0;
|
||||
if (bObjectiveIsValidForMap[ObjIdx] != 0)
|
||||
@ -149,4 +154,4 @@ defaultproperties
|
||||
ZedsThrowSeaRequired=50
|
||||
EndlessWaveRequired=15
|
||||
LastWaveFinished=-1
|
||||
}
|
||||
}
|
||||
|
@ -137,10 +137,15 @@ simulated function OnAfflictionCaused(EAfflictionType Type)
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
local int ObjIdx;
|
||||
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Kill 1500 Zeds with HRG Bombardier
|
||||
ObjIdx = 0;
|
||||
if (bObjectiveIsValidForMap[ObjIdx] != 0)
|
||||
@ -167,4 +172,4 @@ defaultproperties
|
||||
StandYourGroundRequired=25
|
||||
EndlessWaveRequired=15
|
||||
SummerEventIndex=SEI_Summer
|
||||
}
|
||||
}
|
||||
|
@ -76,8 +76,13 @@ simulated function OnMapObjectiveDeactivated(Actor ObjectiveInterfaceActor)
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (bObjectiveIsValidForMap[2] != 0)
|
||||
{
|
||||
IncrementSeasonalEventStat(2, 1);
|
||||
@ -123,4 +128,4 @@ defaultproperties
|
||||
PerfectEscortsRequired=3
|
||||
ZedKillsRequired=2500
|
||||
BossDeathsRequired=25
|
||||
}
|
||||
}
|
||||
|
@ -68,8 +68,13 @@ simulated event OnGameWon(class<GameInfo> GameClass, int Difficulty, int GameLen
|
||||
}
|
||||
}
|
||||
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT)
|
||||
simulated function OnZedKilled(class<KFPawn_Monster> MonsterClass, int Difficulty, class<DamageType> DT, bool bKiller)
|
||||
{
|
||||
if (bKiller == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (bObjectiveIsValidForMap[1] != 0)
|
||||
{
|
||||
if (DT == class'KFDT_Trap_SanitariumTentacle')
|
||||
@ -110,4 +115,4 @@ defaultproperties
|
||||
TentacleTrapKillsRequired=20
|
||||
SuctionTrapKillsRequired=20
|
||||
MatriarchKillsRequired=10
|
||||
}
|
||||
}
|
||||
|
@ -972,7 +972,7 @@ defaultproperties
|
||||
FlameSprayArchetype = SprayActor_Flame'WEP_Laser_Cutter_ARCH.WEP_Laser_Cutter_Flame'
|
||||
|
||||
ChargeTimePerLevel = 0.7f;
|
||||
ChargeConsumeTime = 0.082f; //Consumes 25 on full charge
|
||||
ChargeConsumeTime = 0.084f; //Consumes 25 on full charge
|
||||
OverchargeConsumeTime = 0; //Setting to 0 or below deactivates ammo consumption while holding a charge
|
||||
|
||||
// Shooting Animations
|
||||
|
@ -166,7 +166,8 @@ function StartHealRecharge()
|
||||
if (Role == ROLE_Authority)
|
||||
{
|
||||
InstigatorPerk = GetPerk();
|
||||
UsedHealRechargeTime = HealFullRechargeSeconds * static.GetUpgradeHealRechargeMod(CurrentWeaponUpgradeIndex);
|
||||
UsedHealRechargeTime = HealFullRechargeSeconds;
|
||||
UsedHealRechargeTime *= static.GetUpgradeHealRechargeMod(CurrentWeaponUpgradeIndex);
|
||||
|
||||
InstigatorPerk.ModifyHealerRechargeTime(UsedHealRechargeTime);
|
||||
// Set the healing recharge rate whenever we start charging
|
||||
|
@ -42,10 +42,10 @@ defaultproperties
|
||||
bReloadFromMagazine=true
|
||||
|
||||
// Recoil
|
||||
maxRecoilPitch=250
|
||||
minRecoilPitch=200
|
||||
maxRecoilYaw=100
|
||||
minRecoilYaw=-100
|
||||
maxRecoilPitch=160
|
||||
minRecoilPitch=140
|
||||
maxRecoilYaw=60
|
||||
minRecoilYaw=-60
|
||||
RecoilRate=0.01
|
||||
RecoilMaxYawLimit=500
|
||||
RecoilMinYawLimit=65035
|
||||
@ -61,7 +61,7 @@ defaultproperties
|
||||
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_InstantHit
|
||||
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_Pistol9mm'
|
||||
FireInterval(DEFAULT_FIREMODE)=+0.08 //0.175
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=12.f //15
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=15.f //15
|
||||
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_HRG_93R'
|
||||
Spread(DEFAULT_FIREMODE)=0.015
|
||||
FireOffset=(X=20,Y=4.0,Z=-3)
|
||||
|
@ -58,10 +58,10 @@ defaultproperties
|
||||
bReloadFromMagazine=true
|
||||
|
||||
// Recoil
|
||||
maxRecoilPitch=250
|
||||
minRecoilPitch=200
|
||||
maxRecoilYaw=100
|
||||
minRecoilYaw=-100
|
||||
maxRecoilPitch=160
|
||||
minRecoilPitch=140
|
||||
maxRecoilYaw=60
|
||||
minRecoilYaw=-60
|
||||
RecoilRate=0.01
|
||||
RecoilMaxYawLimit=500
|
||||
RecoilMinYawLimit=65035
|
||||
@ -77,7 +77,7 @@ defaultproperties
|
||||
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_InstantHit
|
||||
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_Pistol9mm'
|
||||
FireInterval(DEFAULT_FIREMODE)=+0.08
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=12.0 //15
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=15.0 //15
|
||||
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_HRG_93R'
|
||||
Spread(DEFAULT_FIREMODE)=0.015
|
||||
BurstAmount=3
|
||||
@ -89,7 +89,7 @@ defaultproperties
|
||||
WeaponFireTypes(ALTFIRE_FIREMODE)=EWFT_InstantHit
|
||||
WeaponProjectiles(ALTFIRE_FIREMODE)=class'KFProj_Bullet_Pistol9mm'
|
||||
FireInterval(ALTFIRE_FIREMODE)=+0.08 // about twice as fast as single
|
||||
InstantHitDamage(ALTFIRE_FIREMODE)=12.0 //15
|
||||
InstantHitDamage(ALTFIRE_FIREMODE)=15.0 //15
|
||||
InstantHitDamageTypes(ALTFIRE_FIREMODE)=class'KFDT_Ballistic_HRG_93R'
|
||||
Spread(ALTFIRE_FIREMODE)=0.015
|
||||
|
||||
|
@ -417,7 +417,6 @@ function StartHealRecharge()
|
||||
|
||||
UsedHealRechargeTime = HealFullRechargeSeconds;
|
||||
UsedHealRechargeTime *= static.GetUpgradeHealRechargeMod(CurrentWeaponUpgradeIndex);
|
||||
UsedHealRechargeTime *= InstigatorPerk.GetHealRechargeMod();
|
||||
|
||||
InstigatorPerk.ModifyHealerRechargeTime(UsedHealRechargeTime);
|
||||
// Set the healing recharge rate whenever we start charging
|
||||
|
@ -104,7 +104,7 @@ defaultproperties
|
||||
FiringStatesArray(DEFAULT_FIREMODE)=WeaponFiring
|
||||
WeaponFireTypes(DEFAULT_FIREMODE)=EWFT_Projectile
|
||||
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_HRG_Stunner'
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=60.0 //65.0
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=80.0 //65.0
|
||||
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_HRG_Stunner'
|
||||
PenetrationPower(DEFAULT_FIREMODE)=2.0
|
||||
FireInterval(DEFAULT_FIREMODE)=0.15
|
||||
|
@ -485,7 +485,7 @@ defaultproperties
|
||||
LastAmmoCount=-1
|
||||
|
||||
NumAltBullets=5
|
||||
SpreadWidthDegrees=30
|
||||
SpreadWidthDegrees=20
|
||||
StartingAltBulletPosition=0.0f
|
||||
SpreadMaxOffset=(X=1.2f, Y=1.5f)
|
||||
}
|
||||
|
@ -376,7 +376,7 @@ defaultproperties
|
||||
WeaponProjectiles(DEFAULT_FIREMODE)=class'KFProj_Bullet_G18'
|
||||
InstantHitDamageTypes(DEFAULT_FIREMODE)=class'KFDT_Ballistic_G18'
|
||||
FireInterval(DEFAULT_FIREMODE)=+.05455 // 1100 RPM
|
||||
Spread(DEFAULT_FIREMODE)=0.06
|
||||
Spread(DEFAULT_FIREMODE)=0.045
|
||||
InstantHitDamage(DEFAULT_FIREMODE)=28
|
||||
FireOffset=(X=30,Y=6.5,Z=-4)
|
||||
|
||||
|
Reference in New Issue
Block a user