Compare commits

...

6 Commits
master ... dev

8 changed files with 99 additions and 16 deletions

View File

@ -69,7 +69,7 @@ function ReplaceRequiredEquipment()
RequiredEquipment[0] = string(class'NiceMachete');
RequiredEquipment[1] = string(class'Nice9mmPlus');
RequiredEquipment[2] = string(class'ScrnFrag');
RequiredEquipment[3] = string(class'ScrnSyringe');
RequiredEquipment[3] = string(class'NiceSyringe');
RequiredEquipment[4] = string(class'KFMod.Welder');
}

View File

@ -212,6 +212,20 @@ simulated function ClientPostLogin(){
// Change HUD parameters
class'ScrnHUD'.default.EnemyHealthBarHeight = 4.0;
}
// fix crooked camera after you die with active `ViewShake`
function StopViewShaking() {
ShakeRotMax = vect(0, 0, 0);
ShakeRotRate = vect(0, 0, 0);
ShakeRotTime = vect(0, 0, 0);
ShakeOffsetMax = vect(0, 0, 0);
ShakeOffsetRate = vect(0, 0, 0);
ShakeOffsetTime = vect(0, 0, 0);
// add missing variables
ShakeOffset = vect(0, 0, 0);
ShakeRot = Rot(0, 0, 0);
}
function ShowLobbyMenu(){
Super.ShowLobbyMenu();
}

View File

@ -0,0 +1,8 @@
class NiceSyringe extends ScrnSyringe;
defaultproperties {
ItemName="Nice Med-Syringe"
FireModeClass(0)=class'NiceSyringeFire'
FireModeClass(1)=class'NiceSyringeAltFire'
PickupClass=class'NiceSyringePickup'
}

View File

@ -0,0 +1 @@
class NiceSyringeAltFire extends ScrnSyringeAltFire;

View File

@ -0,0 +1,23 @@
class NiceSyringeFire extends ScrnSyringeFire;
// default == 80
const SEARCH_RADIUS=120.0;
function KFHumanPawn GetHealee() {
local KFHumanPawn KFHP, BestKFHP;
local vector Dir;
local float TempDot, BestDot;
Dir = vector(Instigator.GetViewRotation());
foreach Instigator.VisibleCollidingActors(class'KFHumanPawn', KFHP, SEARCH_RADIUS) {
if (KFHP.Health < KFHP.HealthMax && KFHP.Health > 0) {
TempDot = Dir dot (KFHP.Location - Instigator.Location);
if (TempDot > 0.7 && TempDot > BestDot) {
BestKFHP = KFHP;
BestDot = TempDot;
}
}
}
return BestKFHP;
}

View File

@ -0,0 +1,6 @@
class NiceSyringePickup extends ScrnSyringePickup;
defaultproperties {
ItemName="Nice Med-Syringe"
InventoryType=class'NiceSyringe'
}

View File

@ -0,0 +1,30 @@
class NiceBloatVomit extends KFBloatVomit;
// limit how much you can damage zeds
const DAMAGECOUNT=10;
var private transient int DamageTicked;
auto state Flying {
simulated function ProcessTouch(Actor Other, Vector HitLocation) {
// add damage limit
if (DamageTicked >= DAMAGECOUNT) {
BlowUp(HitLocation);
return;
}
if (ExtendedZCollision(Other) != none) {
return;
}
if (
Other != Instigator &&
(Other.IsA('Pawn') || Other.IsA('DestroyableObjective') || Other.bProjTarget)
) {
DamageTicked += 1;
// warn("DamageTicked: " $ DamageTicked);
// use server DelayedHurtRadius() instead?
HurtRadius(Damage, DamageRadius, MyDamageType, MomentumTransfer, HitLocation);
}
else if (Other != Instigator && Other.bBlockActors) {
HitWall(Normal(HitLocation - Location), Other);
}
}
}

View File

@ -173,7 +173,8 @@ function SpawnTwoShots()
if ( !SavedFireProperties.bInitialized )
{
SavedFireProperties.AmmoClass = Class'SkaarjAmmo';
SavedFireProperties.ProjectileClass = Class'KFBloatVomit';
// use fixed bile class, to prevent super high damage to zeds
SavedFireProperties.ProjectileClass = Class'NiceBloatVomit';
SavedFireProperties.WarnTargetPct = 1;
SavedFireProperties.MaxRange = 500;
SavedFireProperties.bTossed = False;
@ -185,13 +186,13 @@ function SpawnTwoShots()
// Turn off extra collision before spawning vomit, otherwise spawn fails
ToggleAuxCollision(false);
FireRotation = Controller.AdjustAim(SavedFireProperties,FireStart,600);
Spawn(Class'KFBloatVomit',,,FireStart,FireRotation);
Spawn(SavedFireProperties.ProjectileClass,,,FireStart,FireRotation);
FireStart-=(0.5*CollisionRadius*Y);
FireRotation.Yaw -= 1200;
spawn(Class'KFBloatVomit',,,FireStart, FireRotation);
spawn(SavedFireProperties.ProjectileClass,,,FireStart, FireRotation);
FireStart+=(CollisionRadius*Y);
FireRotation.Yaw += 2400;
spawn(Class'KFBloatVomit',,,FireStart, FireRotation);
spawn(SavedFireProperties.ProjectileClass,,,FireStart, FireRotation);
// Turn extra collision back on
ToggleAuxCollision(true);
}