1
0
This commit is contained in:
2022-03-29 20:30:25 +03:00
parent 0fe0ac1920
commit 5b3b3e758d
11 changed files with 112 additions and 30 deletions

View File

@ -438,7 +438,14 @@ function ActivateShield()
KFGI.DifficultyInfo.GetAIHealthModifier(self, KFGI.GetModifiedGameDifficulty(), KFGI.GetLivingPlayerCount(), HealthMod, HeadHealthMod);
ShieldHealth = ShieldHealthMaxDefaults[KFGI.GetModifiedGameDifficulty()] * HealthMod * ShieldHealthScale;
ShieldHealthMax = ShieldHealth;
if (KFGI.OutbreakEvent != none && KFGi.OutbreakEvent.ActiveEvent.bBossRushMode)
{
ShieldHealth = ShieldHealth * ArmorInfo.ArmorScale;
}
ShieldHealthMax = ShieldHealth;
ShieldHealthPctByte = FloatToByte( fClamp(ShieldHealth / ShieldHealthMax, 0.f, 1.f) );
UpdateShield();

View File

@ -22,6 +22,7 @@ var() float DampenFactorParallel;
var transient Vector PreviousLocations [`KFPROJ_DOSH_CACHED_LOCATION];
var transient rotator PreviousRotations [`KFPROJ_DOSH_CACHED_LOCATION];
var transient Vector Ceiling;
// Make sure that last location always exists.
simulated event PostBeginPlay()
@ -91,25 +92,43 @@ function SpawnDosh(Actor BouncedOff)
{
local KFDroppedPickup_Cash P;
local int i;
local Vector Pos;
local rotator Rot;
if ( WorldInfo.NetMode == NM_Client )
return;
if (Pawn(BouncedOff) == none)
{
P = Spawn(class'KFDroppedPickup_Cash',,, Location, Rotation,, false);
Pos = Location;
Rot = Rotation;
P = Spawn(class'KFDroppedPickup_Cash',,, Pos, Rot,, false);
if (P == none)
{
for (i = 0; i < `KFPROJ_DOSH_CACHED_LOCATION; ++i)
{
P = Spawn(class'KFDroppedPickup_Cash',,, PreviousLocations[i], PreviousRotations[i],, false);
Pos = PreviousLocations[i];
Rot = PreviousRotations[i];
P = Spawn(class'KFDroppedPickup_Cash',,, Pos, Rot,, false);
if (P != none)
{
break;
}
}
}
// DrawDebugSphere( Pos, 20, 8, 0, 255, 255, true );
if (P != none && RelocateFromCeiling(Pos))
{
P.Destroy();
if(Ceiling.Z > -10000)
{
// DrawDebugSphere( Ceiling, 22, 8, 255, 255, 0, true );
P = Spawn(class'KFDroppedPickup_Cash',,, Ceiling, Rot,, false);
Velocity = vect(0,0,0);
}
}
}
else
{
@ -198,6 +217,36 @@ simulated function SyncOriginalLocation()
Super.SyncOriginalLocation();
}
simulated function bool RelocateFromCeiling(Vector Pos)
{
local Actor HitActorVolume, HitActorWorld, HitActorVolumeBack;
local Vector HitLocationVolume, HitLocationWorld;
local Vector HitNormalUnused;
HitActorWorld = Owner.Trace(HitLocationWorld, HitNormalUnused, Pos - vect(0,0,10000), Pos, false,,,TRACEFLAG_Bullet);
if(HitActorWorld != none)
{
HitActorVolume = KFWeapon(Owner).DoTraceNative(HitLocationVolume, Pos, Pos - vect(0,0,10000));
if (HitActorVolume == none || (HitLocationWorld.Z + 80) > HitLocationVolume.Z || IsZero(HitLocationVolume-Pos))
{
return false;
}
// DrawDebugSphere( HitLocationWorld , 32, 8, 0, 255, 0, true );
// DrawDebugSphere( HitLocationVolume, 30, 8, 255, 0, 0, true );
HitLocationWorld += vect(0,0,1);
HitActorVolumeBack = KFWeapon(Owner).DoTraceNative(HitLocationVolume, HitLocationWorld, HitLocationWorld + vect(0,0,10000));
if (HitActorVolumeBack != none && !IsZero(HitLocationVolume-HitLocationWorld))
{
// DrawDebugSphere( HitLocationVolume, 28, 8, 255, 255, 0, true );
Ceiling = HitLocationVolume - vect(0,0,10);
return true;
}
}
Ceiling = Vect(0,0,-10000);
return true;
}
defaultproperties

View File

@ -12,19 +12,16 @@ var() int WeeklyIndex;
function Activated()
{
local KFGameInfo KFGI;
KFGI = KFGameInfo(GetWorldInfo().Game);
local KFGameReplicationInfo KFGRI;
KFGRI = KFGameReplicationInfo(GetWorldInfo().GRI);
if (KFGI != none)
if (KFGRI != none && KFGRI.bIsWeeklyMode && KFGRI.CurrentWeeklyIndex == WeeklyIndex)
{
if (KFGI.MyKFGRI != none && KFGI.MyKFGRI.bIsWeeklyMode && class'KFGameEngine'.static.GetWeeklyEventIndexMod() == WeeklyIndex)
{
OutputLinks[0].bHasImpulse = true;
}
else
{
OutputLinks[1].bHasImpulse = true;
}
OutputLinks[0].bHasImpulse = true;
}
else
{
OutputLinks[1].bHasImpulse = true;
}
}

View File

@ -235,9 +235,9 @@ defaultproperties
//WeaponUpgrades[2]=(IncrementDamage=1.65f,IncrementWeight=2)
//WeaponUpgrades[3]=(IncrementDamage=1.85f,IncrementWeight=3)
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.23f), (Stat=EWUS_Damage1, Scale=1.2f), (Stat=EWUS_Weight, Add=1)))
WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.47f), (Stat=EWUS_Damage1, Scale=1.4f), (Stat=EWUS_Weight, Add=2)))
WeaponUpgrades[3]=(Stats=((Stat=EWUS_Damage0, Scale=1.70f), (Stat=EWUS_Damage1, Scale=1.6f), (Stat=EWUS_Weight, Add=3)))
WeaponUpgrades[1]=(Stats=((Stat=EWUS_Damage0, Scale=1.23f), (Stat=EWUS_Damage1, Scale=1.23f), (Stat=EWUS_Weight, Add=1)))
WeaponUpgrades[2]=(Stats=((Stat=EWUS_Damage0, Scale=1.47f), (Stat=EWUS_Damage1, Scale=1.47f), (Stat=EWUS_Weight, Add=2)))
WeaponUpgrades[3]=(Stats=((Stat=EWUS_Damage0, Scale=1.70f), (Stat=EWUS_Damage1, Scale=1.70f), (Stat=EWUS_Weight, Add=3)))
DoshCost = 20; //25;
bUsesSecondaryAmmoAltHUD=true