├── .gitignore ├── Classes ├── GT.uc ├── ScrnVest.uc ├── ScrnGameMessages.uc ├── ScrnLAWProj.uc ├── ScrnDamTypeMedic.uc ├── ScrnDamTypeZerkerBase.uc ├── ScrnUnicode.uc ├── ScrnDamTypeCommando.uc ├── ScrnDamTypeDefaultDemoBase.uc ├── ScrnM79GrenadeProjectile.uc ├── ScrnZEDMKIISecondaryProjectile.uc ├── ScrnDamTypeDefaultFirebugBase.uc ├── ScrnKSGAmmo.uc ├── ScrnUserZedInfo.uc ├── ScrnDamTypeDefaultGunslinger.uc ├── ScrnUserWaveInfo.uc ├── TSCGuardianRed.uc ├── FtgBaseGuardianRed.uc ├── ScrnDamTypeSeekerSixRocket.uc ├── ScrnDamTypeSniper.uc ├── ScrnM14EBRFire.uc ├── ToiletPaperDamType.uc ├── ScrnAA12AmmoPickup.uc ├── ScrnCustomPlayerInfo.uc ├── ScrnDamTypeChainsawAlt.uc ├── ScrnDamTypeM14EBR.uc ├── ScrnM7A3MAmmoPickup.uc ├── ScrnMP5MAltFire.uc ├── ScrnMP7MAltFire.uc ├── ScrnMP7MHealingProjectile.uc ├── ScrnPistolKillProgress.uc ├── ScrnAA12Ammo.uc ├── ScrnDamTypeHuskGun.uc ├── ScrnFlameAmmo.uc ├── ScrnHuskGunAmmoPickup.uc ├── ScrnKrissMAltFire.uc ├── ScrnMP5MHealingProjectile.uc ├── ScrnPistolDamageProgress.uc ├── ScrnSPThompsonAttachment.uc ├── ScrnShotgunBullet.uc ├── ScrnDamTypeCrossbuzzsaw.uc ├── ScrnDamTypeNailGun.uc ├── ScrnKrissMHealingProjectile.uc ├── ScrnM7A3MAmmo.uc ├── ScrnPipeBombAmmoPickup.uc ├── ScrnShotgunAttachment.uc ├── ScrnTestMapList.uc ├── ScrnThompsonDrumAttachment.uc ├── ScrnZEDMKIIAltFire.uc ├── ScrnMP5MAmmoPickup.uc ├── ScrnMP7MAmmoPickup.uc ├── ScrnBoomStickAmmo.uc ├── ScrnFakedGasCan.uc ├── ScrnFakedShell.uc ├── ScrnM32GrenadeProjectile.uc ├── ScrnAK47AmmoPickup.uc ├── ScrnAK47Fire.uc ├── ScrnCrossbowFire.uc ├── ScrnCrossbuzzsawAmmoPickup.uc ├── ScrnKrissMAmmoPickup.uc ├── ScrnM79Fire.uc ├── ScrnM7A3MAltFire.uc ├── TSCGuardianBlue.uc ├── ScrnFlareRevolverAmmoPickup.uc ├── ScrnM79MFire.uc ├── ScrnMP7MAmmo.uc ├── ScrnSeekerSixAmmoPickup.uc ├── FtgBaseGuardianBlue.uc ├── ScrnM203MFire.uc ├── ScrnM79IncFire.uc ├── ScrnMKb42AmmoPickup.uc ├── ScrnWeaponList.uc ├── ScrnFNFALAmmoPickup.uc ├── ScrnHuskGunAmmo.uc ├── ScrnWelderPickup.uc ├── ScrnBullpupAmmoPickup.uc ├── ScrnLaserAttachmentFirstPerson.uc ├── ScrnMK23AmmoPickup.uc ├── ScrnSCARMK17AmmoPickup.uc ├── ScrnLAWAmmoPickup.uc ├── ScrnMagnum44APAmmoPickup.uc ├── ScrnPipeBombAmmo.uc ├── ScrnCrossbuzzsawFire.uc ├── ScrnDeagleAmmoPickup.uc ├── ScrnAxePickup.uc ├── ScrnCrossbow.uc ├── ScrnFakedHealingGrenade.uc ├── ScrnM7A3MPickup.uc ├── ScrnMP5MAmmo.uc ├── ScrnMagnum44AmmoPickup.uc ├── ScrnSyringePickup.uc ├── ScrnDamTypeDual44APMagnum.uc ├── ScrnDamTypeSPSniper.uc ├── ScrnLAWAmmo.uc ├── ScrnM203GrenadeProjectile.uc ├── ScrnSPThompsonAmmoPickup.uc ├── ScrnSeekerSixAmmo.uc ├── ScrnDamTypeM99HeadShot.uc ├── ScrnDamTypeM99SniperRifle.uc ├── ScrnKrissMAmmo.uc ├── ScrnM7A3MFire.uc ├── ScrnM99Fire.uc ├── ScrnThompsonDrumAmmoPickup.uc ├── ScrnBalancePersistence.uc ├── ScrnBullpupFire.uc ├── ScrnCrossbuzzsawAmmo.uc ├── ScrnDamTypeHuskGunProjectileImpact.uc ├── ScrnDamTypeM4203AssaultRifle.uc ├── ScrnAK47Ammo.uc ├── ScrnM4Ammo.uc ├── ScrnM79GrenadeLauncher.uc ├── ScrnM7A3MHealingProjectile.uc ├── ScrnMK23Ammo.uc ├── ScrnTrenchgunPickup.uc ├── ScrnDeagleAmmo.uc ├── ScrnFlareRevolverAmmo.uc ├── ScrnKSGFire.uc ├── ScrnM32Pickup.uc ├── ScrnMKb42Ammo.uc ├── ScrnSPSniperFire.uc ├── ScrnWinchesterPickup.uc ├── ScrnZEDMKIIWeapon.uc ├── ScrnDualMK23LaserAttachment.uc ├── ScrnFNFALAmmo.uc ├── ScrnKatanaPickup.uc ├── ScrnM4203MBulletFire.uc ├── ScrnMagnum44Ammo.uc ├── ScrnMedicNadeDecal.uc ├── ScrnSeekerSixFire.uc ├── ScrnBullpupAmmo.uc ├── ScrnMP5MPickup.uc ├── ScrnMagnum44APAmmo.uc ├── ScrnM4AmmoPickup.uc ├── ScrnSCARMK17Ammo.uc ├── ScrnCrossbuzzsaw.uc ├── ScrnM99Pickup.uc ├── ScrnSCARMK17Pickup.uc ├── ScrnCrossbowPickup.uc ├── ScrnMP7MPickup.uc ├── ScrnPlayerWarningMessage.uc ├── ScrnPrepareToFightAvoidMarker.uc ├── ScrnKatana.uc ├── ScrnWaveRule.uc ├── DamTypeEnemyBase.uc ├── ScrnFlareRevolverFire.uc ├── ScrnShotgunPickup.uc ├── ScrnThompsonIncAmmoPickup.uc ├── ScrnM79Pickup.uc ├── ScrnPipeBombPickup.uc ├── ScrnZEDMKIIPickup.uc ├── ScrnChainsawAmmoPickup.uc ├── ScrnDual44MagnumLaserFire.uc ├── ScrnKrissMPickup.uc ├── TSCDamageType.uc ├── ScrnCrossbuzzsawPickup.uc ├── ScrnScytheFireB.uc ├── TSCTeamBase.uc ├── ScrnDualFlareRevolverPickup.uc ├── ScrnDualiesPickup.uc ├── ScrnKnifePickup.uc ├── ScrnMKb42Pickup.uc ├── ScrnSPThompsonAmmo.uc ├── ScrnM203MAmmoPickup.uc ├── ScrnM79MAmmoPickup.uc ├── ScrnBenelliAmmo.uc ├── ScrnBenelliBullet.uc ├── ScrnM79IncAmmoPickup.uc ├── ScrnProfilePage.uc ├── ScrnDamTypeScythe.uc ├── GreenWhisp.uc ├── ScrnKSGBullet.uc ├── DamTypeSudDeath.uc ├── ScrnNailGunAmmo.uc ├── ScrnSeekerSixPickup.uc ├── ScrnPerkSelectListBox.uc ├── ScrnChainsawAmmo.uc ├── ScrnDamTypeMedicGrenadeImpact.uc ├── ScrnFragPickup.uc ├── ScrnM203MGrenadeProjectile.uc ├── ScrnM79MAmmo.uc ├── ScrnPipeBombFire.uc ├── ScrnM203MAmmo.uc ├── ScrnCustomFontMsg.uc ├── ScrnM79IncAmmo.uc ├── ScrnDamTypeHuskGun_Alt.uc ├── ScrnHuskGunProjectile_Weak.uc ├── ScrnHuskGunProjectile_Strong.uc ├── ScrnInit.uc ├── ScrnM14EBRPickup.uc ├── ScrnM4Pickup.uc ├── ScrnWaitingFontMsg.uc ├── ToiletPaperAmmoPickup.uc ├── ScrnM79Inc.uc ├── ScrnAK47Pickup.uc ├── ScrnNailGunPickup.uc ├── ScrnPauser.uc ├── ScrnBuyMenuSaleListBox.uc ├── ScrnClaymoreSwordPickup.uc ├── ScrnNoVestPickup.uc ├── ScrnSPSniperPickup.uc ├── ScrnDamTypeMedicBase.uc ├── ScrnAA12Bullet.uc ├── ScrnDualDeaglePickup.uc ├── ScrnClaymoreSword.uc ├── ScrnPerkProgressListBox.uc ├── ScrnAA12Pickup.uc ├── ScrnBoomStickBullet.uc ├── ScrnBullpup.uc ├── ScrnKrissMFire.uc ├── ScrnDamTypeHeavyBase.uc ├── ScrnFireModeSwitchMessage.uc ├── ScrnFlareRevolverProjectile.uc ├── ScrnLAWPickup.uc ├── ScrnScythePickup.uc ├── ScrnBenelliPickup.uc ├── ScrnDamTypeMP5M.uc ├── ScrnDamTypeMP7M.uc ├── ScrnM79IncPickup.uc ├── ToiletPaperFire.uc ├── ScrnDamTypeM7A3M.uc ├── ScrnLightVestPickup.uc ├── ScrnUserGameLength.uc ├── ScrnDamTypeTrenchgun.uc ├── ScrnThompsonIncAmmo.uc ├── ScrnDamTypeKrissM.uc ├── ScrnChainsawPickup.uc ├── ScrnFlameThrowerPickup.uc ├── ScrnMAC10Pickup.uc ├── ScrnDual44MagnumLaserAttachment.uc ├── ScrnTypes.uc ├── ScrnAxeFireB.uc ├── ScrnKatanaFireB.uc ├── ScrnDualMK23LaserPickup.uc ├── ScrnScythe.uc ├── ScrnTraderPlayerListBox.uc ├── TurboGame.uc ├── ScrnFNFAL_ACOG_Pickup.uc ├── ScrnFlameThrower.uc ├── ScrnNailGunFireSingle.uc ├── ScrnKnifeFireB.uc ├── ScrnNailGunFireMulti.uc ├── ScrnSpeedPawn.uc ├── ScrnBullpupPickup.uc ├── ScrnBuyMenuInvListBox.uc ├── ScrnThompsonDrumAmmo.uc ├── VirusDamage.uc ├── ScrnDualMK23Pickup.uc ├── ScrnDual44MagnumPickup.uc ├── ScrnHuskGunPickup.uc ├── ScrnSPThompsonPickup.uc ├── ScrnWelder.uc ├── ScrnCombatVestPickup.uc ├── ScrnLAWAttachment.uc ├── ScrnTestGame.uc ├── ScrnAxeFire.uc ├── ScrnClaymoreSwordFireB.uc ├── ScrnHorzineVestPickup.uc ├── ScrnM4203Pickup.uc ├── ScrnM4203MPickup.uc ├── ScrnM79MPickup.uc ├── ScrnMainMessages.uc ├── ScrnSettingsPage.uc ├── ScrnM4203PrimaryPickup.uc ├── ScrnDamTypeSniperBase.uc ├── ScrnScytheFire.uc ├── ScrnAxe.uc ├── ScrnDamTypeDefaultSupportBase.uc ├── ScrnThompsonIncPickup.uc ├── ScrnGUI.uc ├── ScrnZapFunc.uc ├── ScrnLAWFire.uc ├── ScrnBoomStickPickup.uc ├── ScrnM79IncGrenadeProjectile.uc ├── ScrnDamTypeSPThompson.uc ├── ScrnDual44MagnumLaserPickup.uc ├── ScrnObjMapAchievements.uc ├── ScrnAchMutator.uc ├── ScrnDamTypeThompsonDrum.uc ├── ScrnShotgunFire.uc ├── FscGame.uc ├── ScrnDamTypeBullpup.uc ├── ScrnDamTypeM4AssaultRifle.uc ├── ScrnGUICheckBoxButton.uc ├── ScrnKatanaFire.uc ├── ScrnDamTypeAK47AssaultRifle.uc ├── ScrnMachetePickup.uc ├── ToiletPaper.uc ├── ScrnDamTypeMKb42AssaultRifle.uc ├── ScrnDamTypeFlareProjectileImpact.uc ├── ScrnDamTypeSCARMK17AssaultRifle.uc ├── ScrnClaymoreSwordFire.uc ├── ScrnDamTypeFNFALAssaultRifle.uc ├── ScrnExplosiveFunc_Burn.uc ├── ScrnPrepareToFightMsg.uc ├── ScrnDamTypeFlareRevolverImpact.uc ├── ScrnDamTypeWinchester.uc ├── ScrnAchievementsListBox.uc ├── ScrnDamTypeFlareRevolver.uc ├── ScrnThompsonDrumPickup.uc ├── ScrnDamTypeCommandoBase.uc ├── ToiletPaperPickup.uc ├── ScrnTraderRequirementsListBox.uc ├── ScrnM99SniperRifle.uc ├── ScrnSingleFire.uc ├── ScrnHealMessage.uc ├── ScrnSCARMK17Fire.uc ├── ScrnDamTypeDeagle.uc ├── ScrnDamTypeMK23Pistol.uc ├── ScrnDamTypeSingle.uc ├── ScrnDamTypeM4203M.uc ├── ScrnDamTypeDualDeagle.uc ├── ScrnMP5MFire.uc ├── ScrnDamTypeDualies.uc ├── ScrnGameRulesExt.uc ├── ScrnDamTypeMagnum44Pistol.uc ├── ScrnExplosiveFunc_Pipebomb.uc ├── ScrnGUIHorzScrollBar.uc ├── ScrnDamTypeDualMK23Pistol.uc ├── ScrnKSGPickup.uc ├── ScrnM32Fire.uc ├── ScrnDamTypeDual44Magnum.uc ├── ScrnMusicTrigger.uc ├── ToiletPaperProj_Brown.uc ├── ScrnPipebombMessage.uc ├── TSCLobbyFooter.uc ├── ToiletPaperAmmo.uc ├── ScrnHighROFFire.uc ├── DoomMusicTrigger.uc ├── ScrnFragFire.uc ├── ScrnZedInfo.uc ├── ScrnTrenchgunFire.uc ├── StringReplicationInfo.uc ├── ScrnFlameBurstFire.uc ├── ScrnLock.uc ├── ScrnWinchesterFire.uc ├── ScrnPerkProgressList.uc ├── ScrnHuskGunAltFire.uc ├── ScrnVestPickup.uc ├── SocIsoReplicationInfo.uc ├── ScrnMacheteFireB.uc ├── ScrnRandomItemSpawn.uc ├── ScrnSyringe.uc ├── ScrnMP5Mbullets.uc ├── ScrnSecondaryItem.uc ├── ScrnLAWExplosion.uc ├── ScrnChainsawAltFire.uc ├── ScrnCrossbowArrow.uc ├── ScrnZapProjectile.uc ├── ScrnFuelFlame.uc ├── ScrnTrenchgun.uc ├── ScrnPipeBombExplosive.uc ├── ScrnLAW.uc ├── ScrnKnifeFire.uc └── ScrnFlameThrowerFlameB.uc ├── Docs ├── Info │ ├── DLCLocks.ods │ ├── DLCLocks2.xlsx │ ├── Achievements.xlsx │ ├── MutateCommands.xlsx │ ├── KeyBindings.int │ ├── KeyBindingsSrv.int │ ├── kfed.txt │ └── Tourney.txt ├── img │ ├── ScrnDependency.png │ └── ScrNBalanceLogo256.jpg ├── release │ └── ScrnBalance-README.txt ├── TODO.md └── make │ └── ScrnMakeEnv.sample ├── Configs ├── ScrnVoting.ini ├── ScrnUserZeds.sample ├── ScrnUserWaves.sample └── ScrnUserGames.sample ├── LICENSE └── make.cmd /.gitignore: -------------------------------------------------------------------------------- 1 | make.log 2 | /Copyright.txt 3 | -------------------------------------------------------------------------------- /Classes/GT.uc: -------------------------------------------------------------------------------- 1 | class GT extends ScrnGameType; 2 | -------------------------------------------------------------------------------- /Classes/ScrnVest.uc: -------------------------------------------------------------------------------- 1 | class ScrnVest extends Vest 2 | placeable; 3 | -------------------------------------------------------------------------------- /Classes/ScrnGameMessages.uc: -------------------------------------------------------------------------------- 1 | class ScrnGameMessages extends TSCMessages; 2 | -------------------------------------------------------------------------------- /Classes/ScrnLAWProj.uc: -------------------------------------------------------------------------------- 1 | class ScrnLAWProj extends ScrnRocketProjectile; 2 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeMedic.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeMedic extends ScrnDamTypeMedicBase 2 | abstract; -------------------------------------------------------------------------------- /Classes/ScrnDamTypeZerkerBase.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeZerkerBase extends DamTypeMelee 2 | abstract; -------------------------------------------------------------------------------- /Classes/ScrnUnicode.uc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poosh/KF-ScrnBalance/HEAD/Classes/ScrnUnicode.uc -------------------------------------------------------------------------------- /Docs/Info/DLCLocks.ods: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poosh/KF-ScrnBalance/HEAD/Docs/Info/DLCLocks.ods -------------------------------------------------------------------------------- /Classes/ScrnDamTypeCommando.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeCommando extends ScrnDamTypeCommandoBase 2 | abstract; -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDefaultDemoBase.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDefaultDemoBase extends DamTypeLAW 2 | abstract; -------------------------------------------------------------------------------- /Classes/ScrnM79GrenadeProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79GrenadeProjectile extends ScrnGrenadeProjectile; 2 | 3 | -------------------------------------------------------------------------------- /Docs/Info/DLCLocks2.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poosh/KF-ScrnBalance/HEAD/Docs/Info/DLCLocks2.xlsx -------------------------------------------------------------------------------- /Classes/ScrnZEDMKIISecondaryProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnZEDMKIISecondaryProjectile extends ScrnZapProjectile; 2 | -------------------------------------------------------------------------------- /Docs/Info/Achievements.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poosh/KF-ScrnBalance/HEAD/Docs/Info/Achievements.xlsx -------------------------------------------------------------------------------- /Docs/img/ScrnDependency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poosh/KF-ScrnBalance/HEAD/Docs/img/ScrnDependency.png -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDefaultFirebugBase.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDefaultFirebugBase extends DamTypeBurned 2 | abstract; -------------------------------------------------------------------------------- /Docs/Info/MutateCommands.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poosh/KF-ScrnBalance/HEAD/Docs/Info/MutateCommands.xlsx -------------------------------------------------------------------------------- /Docs/img/ScrNBalanceLogo256.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/poosh/KF-ScrnBalance/HEAD/Docs/img/ScrNBalanceLogo256.jpg -------------------------------------------------------------------------------- /Classes/ScrnKSGAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnKSGAmmo extends KSGAmmo; 2 | 3 | defaultproperties 4 | { 5 | MaxAmmo=60 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnUserZedInfo.uc: -------------------------------------------------------------------------------- 1 | class ScrnUserZedInfo extends ScrnZedInfo 2 | PerObjectConfig 3 | Config(ScrnUserZeds); -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDefaultGunslinger.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDefaultGunslinger extends ScrnDamTypeDefaultGunslingerBase 2 | abstract; -------------------------------------------------------------------------------- /Classes/ScrnUserWaveInfo.uc: -------------------------------------------------------------------------------- 1 | class ScrnUserWaveInfo extends ScrnWaveInfo 2 | PerObjectConfig 3 | Config(ScrnUserWaves); 4 | -------------------------------------------------------------------------------- /Classes/TSCGuardianRed.uc: -------------------------------------------------------------------------------- 1 | class TSCGuardianRed extends TSCBaseGuardian; 2 | 3 | defaultproperties 4 | { 5 | LightHue=255 6 | } 7 | -------------------------------------------------------------------------------- /Docs/Info/KeyBindings.int: -------------------------------------------------------------------------------- 1 | [Public] 2 | Object=(Class=class,MetaClass=Xinterface.GUIUserKeyBinding,Name=ScrnBalance.ScrnKeyBinding) 3 | -------------------------------------------------------------------------------- /Classes/FtgBaseGuardianRed.uc: -------------------------------------------------------------------------------- 1 | class FtgBaseGuardianRed extends FtgBaseGuardian; 2 | 3 | defaultproperties 4 | { 5 | LightHue=255 6 | } 7 | -------------------------------------------------------------------------------- /Docs/Info/KeyBindingsSrv.int: -------------------------------------------------------------------------------- 1 | [Public] 2 | Object=(Class=class,MetaClass=Xinterface.GUIUserKeyBinding,Name=ScrnBalanceSrv.ScrnKeyBinding) 3 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeSeekerSixRocket.uc: -------------------------------------------------------------------------------- 1 | // made to avoid x1.25 damage multiplier on FP 2 | class ScrnDamTypeSeekerSixRocket extends DamTypeSeekerSixRocket; -------------------------------------------------------------------------------- /Classes/ScrnDamTypeSniper.uc: -------------------------------------------------------------------------------- 1 | //default damage type for Sharpshooter 2 | 3 | class ScrnDamTypeSniper extends ScrnDamTypeSniperBase 4 | abstract; 5 | 6 | -------------------------------------------------------------------------------- /Classes/ScrnM14EBRFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM14EBRFire extends M14EBRFire; 2 | 3 | defaultproperties 4 | { 5 | DamageType=class'ScrnDamTypeM14EBR' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ToiletPaperDamType.uc: -------------------------------------------------------------------------------- 1 | class ToiletPaperDamType extends KFWeaponDamageType; 2 | 3 | defaultproperties 4 | { 5 | HeadShotDamageMult=2.0 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnAA12AmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnAA12AmmoPickup extends AA12AmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnAA12Ammo' 6 | } -------------------------------------------------------------------------------- /Classes/ScrnCustomPlayerInfo.uc: -------------------------------------------------------------------------------- 1 | class ScrnCustomPlayerInfo extends Info 2 | abstract; 3 | 4 | var ScrnCustomPlayerInfo Next; 5 | var ScrnPlayerInfo SPI; 6 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeChainsawAlt.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeChainsawAlt extends DamTypeChainsaw; 2 | 3 | defaultproperties 4 | { 5 | HeadShotDamageMult=1.30 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeM14EBR.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeM14EBR extends DamTypeM14EBR 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | HeadShotDamageMult=2.15 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnM7A3MAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM7A3MAmmoPickup extends M7A3MAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnM7A3MAmmo' 6 | } 7 | -------------------------------------------------------------------------------- /Docs/release/ScrnBalance-README.txt: -------------------------------------------------------------------------------- 1 | Follow the link below for full README and Release Notes 2 | 3 | https://github.com/poosh/KF-ScrnBalance/blob/master/README.md 4 | -------------------------------------------------------------------------------- /Classes/ScrnMP5MAltFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP5MAltFire extends MP5MAltFire; 2 | 3 | defaultproperties 4 | { 5 | ProjectileClass=class'ScrnMP5MHealingProjectile' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnMP7MAltFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP7MAltFire extends MP7MAltFire; 2 | 3 | defaultproperties 4 | { 5 | ProjectileClass=class'ScrnMP7MHealingProjectile' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnMP7MHealingProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP7MHealingProjectile extends ScrnHealingProjectile; 2 | 3 | defaultproperties 4 | { 5 | HealBoostAmount=20 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnPistolKillProgress.uc: -------------------------------------------------------------------------------- 1 | class ScrnPistolKillProgress extends SRCustomProgressInt; 2 | 3 | defaultproperties 4 | { 5 | ProgressName="Pistol Kills" 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnAA12Ammo.uc: -------------------------------------------------------------------------------- 1 | class ScrnAA12Ammo extends AA12Ammo; 2 | 3 | defaultproperties 4 | { 5 | MaxAmmo=80 //80 6 | PickupClass=class'ScrnAA12AmmoPickup' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeHuskGun.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeHuskGun extends DamTypeHuskGun 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | WeaponClass=class'ScrnHuskGun' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnFlameAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnFlameAmmo extends FlameAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=75 6 | MaxAmmo=400 7 | InitialAmount=200 8 | } -------------------------------------------------------------------------------- /Classes/ScrnHuskGunAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnHuskGunAmmoPickup extends HuskGunAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnHuskGunAmmo' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnKrissMAltFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnKrissMAltFire extends KrissMAltFire; 2 | 3 | defaultproperties 4 | { 5 | ProjectileClass=class'ScrnKrissMHealingProjectile' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnMP5MHealingProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP5MHealingProjectile extends ScrnHealingProjectile; 2 | 3 | 4 | defaultproperties 5 | { 6 | HealBoostAmount=30 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnPistolDamageProgress.uc: -------------------------------------------------------------------------------- 1 | class ScrnPistolDamageProgress extends SRCustomProgressInt; 2 | 3 | defaultproperties 4 | { 5 | ProgressName="Pistol Damage" 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnSPThompsonAttachment.uc: -------------------------------------------------------------------------------- 1 | class ScrnSPThompsonAttachment extends SPThompsonAttachment; 2 | 3 | defaultproperties 4 | { 5 | ShellEjectBoneName="Shell_eject" 6 | } -------------------------------------------------------------------------------- /Classes/ScrnShotgunBullet.uc: -------------------------------------------------------------------------------- 1 | class ScrnShotgunBullet extends ScrnCustomShotgunBullet; 2 | 3 | defaultproperties 4 | { 5 | Damage=42 6 | HeadShotDamageMult=1.25 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeCrossbuzzsaw.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeCrossbuzzsaw extends DamTypeCrossbuzzsaw; 2 | 3 | defaultproperties 4 | { 5 | WeaponClass=class'ScrnCrossbuzzsaw' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeNailGun.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeNailGun extends DamTypeNailGun 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | WeaponClass=class'ScrnNailGun' 7 | } -------------------------------------------------------------------------------- /Classes/ScrnKrissMHealingProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnKrissMHealingProjectile extends ScrnHealingProjectile; 2 | 3 | 4 | defaultproperties 5 | { 6 | HealBoostAmount=40 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnM7A3MAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnM7A3MAmmo extends M7A3MAmmo; 2 | 3 | defaultproperties 4 | { 5 | InitialAmount=75 6 | PickupClass=class'ScrnM7A3MAmmoPickup' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnPipeBombAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnPipeBombAmmoPickup extends PipeBombAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnPipeBombAmmo' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnShotgunAttachment.uc: -------------------------------------------------------------------------------- 1 | class ScrnShotgunAttachment extends ShotgunAttachment; 2 | 3 | defaultproperties 4 | { 5 | MeshRef="KF_Weapons3rd_Trip.Shotgun_3rd" 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnTestMapList.uc: -------------------------------------------------------------------------------- 1 | class ScrnTestMapList extends MapList 2 | config; 3 | 4 | defaultproperties 5 | { 6 | Maps[0]="KFT-ScrnTestGrounds-SE" 7 | MapNum=0 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnThompsonDrumAttachment.uc: -------------------------------------------------------------------------------- 1 | class ScrnThompsonDrumAttachment extends ThompsonDrumAttachment; 2 | 3 | defaultproperties 4 | { 5 | ShellEjectBoneName="Shell_eject" 6 | } -------------------------------------------------------------------------------- /Classes/ScrnZEDMKIIAltFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnZEDMKIIAltFire extends ZEDMKIIAltFire; 2 | 3 | defaultproperties 4 | { 5 | ProjectileClass=class'ScrnZEDMKIISecondaryProjectile' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnMP5MAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP5MAmmoPickup extends MP5MAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=60 6 | InventoryType=class'ScrnMP5MAmmo' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnMP7MAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP7MAmmoPickup extends MP7MAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=40 6 | InventoryType=class'ScrnMP7MAmmo' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnBoomStickAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnBoomStickAmmo extends DBShotgunAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=6 6 | MaxAmmo=36 7 | InitialAmount=18 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnFakedGasCan.uc: -------------------------------------------------------------------------------- 1 | class ScrnFakedGasCan extends ScrnFakedProjectile; 2 | 3 | defaultproperties 4 | { 5 | StaticMesh=StaticMesh'FrightYard_SM.GasolineCan.SM_GasolineCan' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnFakedShell.uc: -------------------------------------------------------------------------------- 1 | class ScrnFakedShell extends ScrnFakedProjectile; 2 | 3 | defaultproperties 4 | { 5 | StaticMesh=StaticMesh'kf_generic_sm.Bullet_Shells.12Guage_Shell' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnM32GrenadeProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnM32GrenadeProjectile extends ScrnGrenadeProjectile; 2 | 3 | defaultproperties 4 | { 5 | MyDamageType=Class'KFMod.DamTypeM32Grenade' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnAK47AmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnAK47AmmoPickup extends AK47AmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=Class'ScrnAK47Ammo' 6 | PickupMessage="7.62x39mm" 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnAK47Fire.uc: -------------------------------------------------------------------------------- 1 | class ScrnAK47Fire extends AK47Fire; 2 | 3 | defaultproperties 4 | { 5 | DamageType=Class'ScrnDamTypeAK47AssaultRifle' 6 | AmmoClass=Class'ScrnAK47Ammo' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnCrossbowFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbowFire extends CrossbowFire; 2 | 3 | defaultproperties 4 | { 5 | ProjectileClass=class'ScrnCrossbowArrow' 6 | ProjSpawnOffset=(X=0,Y=0,Z=0) 7 | } -------------------------------------------------------------------------------- /Classes/ScrnCrossbuzzsawAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbuzzsawAmmoPickup extends CrossbuzzsawAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnCrossbuzzsawAmmo' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnKrissMAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnKrissMAmmoPickup extends KrissMAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=50 6 | InventoryType=class'ScrnKrissMAmmo' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnM79Fire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79Fire extends M79Fire; 2 | 3 | defaultproperties 4 | { 5 | ProjectileClass=class'ScrnM79GrenadeProjectile' 6 | ProjSpawnOffset=(X=5,Y=10.000000) 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnM7A3MAltFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM7A3MAltFire extends M7A3MAltFire; 2 | 3 | defaultproperties 4 | { 5 | ProjectileClass=class'ScrnM7A3MHealingProjectile' 6 | AmmoPerFire=500 7 | } 8 | -------------------------------------------------------------------------------- /Classes/TSCGuardianBlue.uc: -------------------------------------------------------------------------------- 1 | class TSCGuardianBlue extends TSCBaseGuardian; 2 | 3 | defaultproperties 4 | { 5 | StaticMesh=StaticMesh'Pier_SM.Env_Pier_Clown' 6 | 7 | LightHue=170 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnFlareRevolverAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnFlareRevolverAmmoPickup extends FlareRevolverAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnFlareRevolverAmmo' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnM79MFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79MFire extends M79Fire; 2 | 3 | defaultproperties 4 | { 5 | AmmoClass=class'ScrnM79MAmmo' 6 | ProjectileClass=class'ScrnM79MGrenadeProjectile' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnMP7MAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP7MAmmo extends MP7MAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=40 6 | InitialAmount=100 7 | PickupClass=class'ScrnMP7MAmmoPickup' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnSeekerSixAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnSeekerSixAmmoPickup extends SeekerSixAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=18 6 | InventoryType=class'ScrnSeekerSixAmmo' 7 | } -------------------------------------------------------------------------------- /Classes/FtgBaseGuardianBlue.uc: -------------------------------------------------------------------------------- 1 | class FtgBaseGuardianBlue extends FtgBaseGuardian; 2 | 3 | defaultproperties 4 | { 5 | StaticMesh=StaticMesh'Pier_SM.Env_Pier_Clown' 6 | 7 | LightHue=100 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnM203MFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM203MFire extends ScrnM203Fire; 2 | 3 | defaultproperties 4 | { 5 | AmmoClass=class'ScrnM203MAmmo' 6 | ProjectileClass=class'ScrnM203MGrenadeProjectile' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnM79IncFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79IncFire extends M79Fire; 2 | 3 | defaultproperties 4 | { 5 | AmmoClass=class'ScrnM79IncAmmo' 6 | ProjectileClass=class'ScrnM79IncGrenadeProjectile' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnMKb42AmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMKb42AmmoPickup extends MKb42AmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnMKb42Ammo' 6 | PickupMessage="7.62x33mm Kurz" 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnWeaponList.uc: -------------------------------------------------------------------------------- 1 | Class ScrnWeaponList extends Object 2 | PerObjectConfig 3 | Config(ScrnWeaponLists); 4 | 5 | var config array WeaponLists; 6 | var config array Weapons; 7 | -------------------------------------------------------------------------------- /Classes/ScrnFNFALAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnFNFALAmmoPickup extends FNFALAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnFNFALAmmo' 6 | PickupMessage="7.62x51mm NATO AP" 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnHuskGunAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnHuskGunAmmo extends HuskGunAmmo; 2 | 3 | defaultproperties 4 | { 5 | MaxAmmo=250 6 | InitialAmount=100 7 | PickupClass=class'ScrnHuskGunAmmoPickup' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnWelderPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnWelderPickup extends WelderPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=Class'ScrnWelder' 6 | ItemName="Welder SE" 7 | ItemShortName="Welder SE" 8 | } -------------------------------------------------------------------------------- /Classes/ScrnBullpupAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnBullpupAmmoPickup extends BullpupAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=Class'ScrnBullpupAmmo' 6 | PickupMessage="5.56x45mm NATO" 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnLaserAttachmentFirstPerson.uc: -------------------------------------------------------------------------------- 1 | class ScrnLaserAttachmentFirstPerson extends LaserAttachmentFirstPerson; 2 | 3 | defaultproperties 4 | { 5 | Skins(0)=Shader'ScrnTex.Laser.firstP_laser_shdr' 6 | } 7 | -------------------------------------------------------------------------------- /Classes/ScrnMK23AmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMK23AmmoPickup extends MK23AmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | PickupMessage=".45 ACP" 6 | AmmoAmount=24 7 | InventoryType=class'ScrnMK23Ammo' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnSCARMK17AmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnSCARMK17AmmoPickup extends SCARMK17AmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnSCARMK17Ammo' 6 | PickupMessage="7.62x51mm NATO" 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnLAWAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnLAWAmmoPickup extends LAWAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=3 6 | InventoryType=class'ScrnLAWAmmo' 7 | PickupMessage="L.A.W. Rockets" 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnMagnum44APAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMagnum44APAmmoPickup extends ScrnMagnum44AmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnMagnum44APAmmo' 6 | PickupMessage=".44 Magnum AP" 7 | } -------------------------------------------------------------------------------- /Classes/ScrnPipeBombAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnPipeBombAmmo extends PipeBombAmmo; 2 | 3 | defaultproperties 4 | { 5 | InitialAmount=1 6 | AmmoPickupAmount=0 7 | PickupClass=class'ScrnPipeBombAmmoPickup' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnCrossbuzzsawFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbuzzsawFire extends CrossbuzzsawFire; 2 | 3 | defaultproperties 4 | { 5 | AmmoClass=class'ScrnCrossbuzzsawAmmo' 6 | ProjectileClass=class'ScrnCrossbuzzsawBlade' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnDeagleAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDeagleAmmoPickup extends DeagleAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=16 6 | InventoryType=class'ScrnDeagleAmmo' 7 | PickupMessage=".50 AE" 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnAxePickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnAxePickup extends AxePickup; 2 | 3 | defaultproperties 4 | { 5 | cost=200 6 | ItemName="Axe SE" 7 | ItemShortName="Axe SE" 8 | InventoryType=class'ScrnAxe' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnCrossbow.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbow extends Crossbow; 2 | 3 | defaultproperties 4 | { 5 | PickupClass=class'ScrnCrossbowPickup' 6 | FireModeClass(0)=class'ScrnCrossbowFire' 7 | ItemName="Compound Crossbow SE" 8 | } -------------------------------------------------------------------------------- /Classes/ScrnFakedHealingGrenade.uc: -------------------------------------------------------------------------------- 1 | class ScrnFakedHealingGrenade extends ScrnFakedProjectile; 2 | 3 | defaultproperties 4 | { 5 | StaticMesh=StaticMesh'KF_pickups5_Trip.nades.MedicNade_Pickup' 6 | DrawScale=3.5 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnM7A3MPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM7A3MPickup extends M7A3MPickup; 2 | 3 | defaultproperties 4 | { 5 | ItemName="M7A3M Medic Gun SE" 6 | ItemShortName="M7A3M SE" 7 | InventoryType=class'ScrnM7A3MMedicGun' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnMP5MAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP5MAmmo extends MP5MAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=60 6 | MaxAmmo=480 7 | InitialAmount=120 8 | PickupClass=class'ScrnMP5MAmmoPickup' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnMagnum44AmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMagnum44AmmoPickup extends Magnum44AmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=18 6 | InventoryType=class'ScrnMagnum44Ammo' 7 | PickupMessage=".44 Magnum" 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnSyringePickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnSyringePickup extends SyringePickup; 2 | 3 | defaultproperties 4 | { 5 | ItemName="Med-Syringe SE" 6 | ItemShortName="Med-Syringe SE" 7 | InventoryType=class'ScrnSyringe' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDual44APMagnum.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDual44APMagnum extends ScrnDamTypeDual44Magnum 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | HeadShotDamageMult=1.80 7 | WeaponClass=class'ScrnDual44MagnumLaser' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeSPSniper.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeSPSniper extends DamTypeSPSniper 2 | abstract; 3 | 4 | 5 | defaultproperties 6 | { 7 | WeaponClass=class'ScrnSPSniperRifle' 8 | HeadShotDamageMult=4.0 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnLAWAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnLAWAmmo extends LAWAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=3 6 | MaxAmmo=16 7 | PickupClass=class'ScrnLAWAmmoPickup' 8 | ItemName="L.A.W. Rockets" 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnM203GrenadeProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnM203GrenadeProjectile extends ScrnGrenadeProjectile; 2 | 3 | defaultproperties 4 | { 5 | DamageRadius=450 6 | Damage=400 7 | MyDamageType=Class'KFMod.DamTypeM203Grenade' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnSPThompsonAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnSPThompsonAmmoPickup extends SPThompsonAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=40 6 | PickupMessage=".45 ACP" 7 | InventoryType=class'ScrnSPThompsonAmmo' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnSeekerSixAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnSeekerSixAmmo extends KFAmmunition; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=24 6 | MaxAmmo=192 7 | InitialAmount=72 8 | PickupClass=class'ScrnSeekerSixAmmoPickup' 9 | } -------------------------------------------------------------------------------- /Classes/ScrnDamTypeM99HeadShot.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeM99HeadShot extends DamTypeM99HeadShot 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | KDamageImpulse=10000 7 | KDeathVel=1500 8 | KDeathUpKick=250 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeM99SniperRifle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeM99SniperRifle extends DamTypeM99SniperRifle 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | KDamageImpulse=10000 7 | KDeathVel=1500 8 | KDeathUpKick=250 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnKrissMAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnKrissMAmmo extends KrissMAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=50 6 | MaxAmmo=400 7 | InitialAmount=150 8 | PickupClass=class'ScrnKrissMAmmoPickup' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnM7A3MFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM7A3MFire extends M7A3MFire; 2 | 3 | defaultproperties 4 | { 5 | FireRate=0.15 //0.166000 6 | DamageMax=80 7 | DamageType=class'ScrnDamTypeM7A3M' 8 | AmmoClass=class'ScrnM7A3MAmmo' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnM99Fire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM99Fire extends M99Fire; 2 | 3 | defaultproperties 4 | { 5 | FireAnimRate=0.850000 6 | FireRate=3.564706 7 | ProjectileClass=class'ScrnM99Bullet' 8 | ProjSpawnOffset=(X=0,Y=0,Z=0) 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnThompsonDrumAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnThompsonDrumAmmoPickup extends ThompsonDrumAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=50 6 | PickupMessage=".45 ACP" 7 | InventoryType=class'ScrnThompsonDrumAmmo' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnBalancePersistence.uc: -------------------------------------------------------------------------------- 1 | class ScrnBalancePersistence extends Object 2 | Config(ScrnInternal); 3 | 4 | var config byte Difficulty; 5 | var config byte LastEndGameType; 6 | var config bool bRandomMap; 7 | var config bool bRandomMapBonus; 8 | -------------------------------------------------------------------------------- /Classes/ScrnBullpupFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnBullpupFire extends BullpupFire; 2 | 3 | 4 | defaultproperties 5 | { 6 | DamageType=class'ScrnDamTypeBullpup' 7 | AmmoClass=class'ScrnBullpupAmmo' 8 | DamageMin=28 9 | DamageMax=28 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnCrossbuzzsawAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbuzzsawAmmo extends CrossbuzzsawAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=1 6 | MaxAmmo=20 // down from 24, vanilla - 16 7 | PickupClass=class'ScrnCrossbuzzsawPickup' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeHuskGunProjectileImpact.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeHuskGunProjectileImpact extends DamTypeHuskGunProjectileImpact; 2 | 3 | defaultproperties 4 | { 5 | HeadShotDamageMult=2.4 // up from 1.5 6 | WeaponClass=class'ScrnHuskgun' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeM4203AssaultRifle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeM4203AssaultRifle extends ScrnDamTypeM4AssaultRifle 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | HeadShotDamageMult=1.100000 7 | WeaponClass=class'ScrnM4203AssaultRifle' 8 | } 9 | -------------------------------------------------------------------------------- /Classes/ScrnAK47Ammo.uc: -------------------------------------------------------------------------------- 1 | class ScrnAK47Ammo extends AK47Ammo; 2 | 3 | defaultproperties 4 | { 5 | ItemName="7.62x39mm" 6 | MaxAmmo=450 7 | InitialAmount=150 8 | AmmoPickupAmount=30 9 | PickupClass=Class'ScrnAK47AmmoPickup' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnM4Ammo.uc: -------------------------------------------------------------------------------- 1 | class ScrnM4Ammo extends M4Ammo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=30 6 | MaxAmmo=360 7 | InitialAmount=120 8 | PickupClass=class'ScrnM4AmmoPickup' 9 | ItemName="5.56x45mm NATO AP" 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnM79GrenadeLauncher.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79GrenadeLauncher extends M79GrenadeLauncher; 2 | 3 | defaultproperties 4 | { 5 | FireModeClass(0)=class'ScrnM79Fire' 6 | PickupClass=class'ScrnM79Pickup' 7 | ItemName="M79 Grenade Launcher SE" 8 | } -------------------------------------------------------------------------------- /Classes/ScrnM7A3MHealingProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnM7A3MHealingProjectile extends ScrnHealingProjectile; 2 | 3 | 4 | defaultproperties 5 | { 6 | HealBoostAmount=50 7 | InstantHealAmount=20 8 | Speed=20000 9 | MaxSpeed=20000 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnMK23Ammo.uc: -------------------------------------------------------------------------------- 1 | class ScrnMK23Ammo extends MK23Ammo; 2 | 3 | defaultproperties 4 | { 5 | ItemName=".45 ACP" 6 | AmmoPickupAmount=24 7 | MaxAmmo=144 8 | InitialAmount=60 9 | PickupClass=class'ScrnMK23AmmoPickup' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnTrenchgunPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnTrenchgunPickup extends TrenchgunPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=5 6 | ItemName="Trenchgun SE" 7 | ItemShortName="Trenchgun SE" 8 | InventoryType=class'ScrnTrenchgun' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnDeagleAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnDeagleAmmo extends DeagleAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=14 6 | MaxAmmo=98 7 | InitialAmount=28 8 | PickupClass=class'ScrnDeagleAmmoPickup' 9 | ItemName=".50 AE" 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnFlareRevolverAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnFlareRevolverAmmo extends FlareRevolverAmmo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=6 6 | MaxAmmo=60 7 | InitialAmount=30 8 | PickupClass=class'ScrnFlareRevolverAmmoPickup' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnKSGFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnKSGFire extends KSGFire; 2 | 3 | defaultproperties 4 | { 5 | bWaitForRelease=True 6 | FireAnimRate=1.0 7 | FireRate=0.82 8 | AmmoClass=class'ScrnKSGAmmo' 9 | ProjectileClass=class'ScrnKSGBullet' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnM32Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM32Pickup extends M32Pickup; 2 | 3 | defaultproperties 4 | { 5 | Cost=4000 6 | ItemName="M32 Grenade Launcher SE" 7 | ItemShortName="M32 Launcher SE" 8 | InventoryType=class'ScrnM32GrenadeLauncher' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnMKb42Ammo.uc: -------------------------------------------------------------------------------- 1 | class ScrnMKb42Ammo extends MKb42Ammo; 2 | 3 | defaultproperties 4 | { 5 | ItemName="7.62x33mm Kurz" 6 | MaxAmmo=450 7 | InitialAmount=150 8 | AmmoPickupAmount=30 9 | PickupClass=class'ScrnMKb42AmmoPickup' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnSPSniperFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnSPSniperFire extends SPSniperFire; 2 | 3 | defaultproperties 4 | { 5 | DamageType=class'ScrnDamTypeSPSniper' 6 | 7 | DamageMin=90 //deprecated 8 | DamageMax=90 // 180 9 | ShellEjectClass=None 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnWinchesterPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnWinchesterPickup extends WinchesterPickup; 2 | 3 | defaultproperties 4 | { 5 | Cost=300 6 | ItemName="Lever Action Rifle SE" 7 | ItemShortName="LAR SE" 8 | InventoryType=class'ScrnWinchester' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnZEDMKIIWeapon.uc: -------------------------------------------------------------------------------- 1 | class ScrnZEDMKIIWeapon extends ZEDMKIIWeapon; 2 | 3 | defaultproperties 4 | { 5 | PickupClass=class'ScrnZEDMKIIPickup' 6 | FireModeClass(1)=class'ScrnZEDMKIIAltFire' 7 | 8 | ItemName="ZED GUN MKIISE" 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnDualMK23LaserAttachment.uc: -------------------------------------------------------------------------------- 1 | class ScrnDualMK23LaserAttachment extends ScrnLaserDualWeaponAttachment; 2 | 3 | defaultproperties 4 | { 5 | BrotherMesh=SkeletalMesh'KF_Weapons3rd4_Trip.MK23_3rd' 6 | Mesh=SkeletalMesh'KF_Weapons3rd4_Trip.MK23_3rd' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnFNFALAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnFNFALAmmo extends FNFALAmmo; 2 | 3 | defaultproperties 4 | { 5 | ItemName="7.62x51mm NATO AP" 6 | MaxAmmo=300 7 | InitialAmount=100 8 | AmmoPickupAmount=20 9 | PickupClass=Class'ScrnFNFALAmmoPickup' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnKatanaPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnKatanaPickup extends KatanaPickup; 2 | 3 | defaultproperties 4 | { 5 | cost=1250 6 | SpeedValue=55 7 | ItemName="Katana SE" 8 | ItemShortName="Katana SE" 9 | InventoryType=class'ScrnKatana' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnM4203MBulletFire.uc: -------------------------------------------------------------------------------- 1 | // Can't share fire mod classes with many guns, cuz destorying one of them will unload its assets 2 | class ScrnM4203MBulletFire extends ScrnM4203BulletFire; 3 | 4 | defaultproperties 5 | { 6 | DamageType=class'ScrnDamTypeM4203M' 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnMagnum44Ammo.uc: -------------------------------------------------------------------------------- 1 | class ScrnMagnum44Ammo extends Magnum44Ammo; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=18 6 | MaxAmmo=60 7 | InitialAmount=30 8 | PickupClass=class'ScrnMagnum44AmmoPickup' 9 | ItemName=".44 Magnum" 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnMedicNadeDecal.uc: -------------------------------------------------------------------------------- 1 | class ScrnMedicNadeDecal extends MedicNadeDecal; 2 | 3 | simulated function BeginPlay() 4 | { 5 | Super(ProjectedDecal).BeginPlay(); 6 | } 7 | 8 | defaultproperties 9 | { 10 | LifeSpan=6.0 11 | DrawScale=0.5 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnSeekerSixFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnSeekerSixFire extends SeekerSixFire; 2 | 3 | defaultproperties 4 | { 5 | AmmoClass=class'ScrnSeekerSixAmmo' 6 | ProjectileClass=class'ScrnS6Rocket' 7 | 8 | bWaitForRelease=False 9 | //FireRate=0.330000 10 | } -------------------------------------------------------------------------------- /Classes/ScrnBullpupAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnBullpupAmmo extends BullpupAmmo; 2 | 3 | defaultproperties 4 | { 5 | ItemName="5.56x45mm NATO" 6 | MaxAmmo=480 7 | InitialAmount=240 8 | AmmoPickupAmount=40 9 | PickupClass=Class'ScrnBullpupAmmoPickup' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnMP5MPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP5MPickup extends MP5MPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=4.000000 6 | cost=1375 7 | ItemName="MP5M Medic Gun SE" 8 | ItemShortName="MP5M SE" 9 | InventoryType=class'ScrnMP5MMedicGun' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnMagnum44APAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnMagnum44APAmmo extends KFAmmunition; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=18 6 | MaxAmmo=96 7 | InitialAmount=36 8 | PickupClass=class'ScrnMagnum44AmmoPickup' 9 | ItemName=".44 Magnum AP" 10 | } -------------------------------------------------------------------------------- /Classes/ScrnM4AmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM4AmmoPickup extends M4AmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=30 6 | InventoryType=class'ScrnM4Ammo' 7 | PickupMessage="5.56x45mm NATO AP" 8 | StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnSCARMK17Ammo.uc: -------------------------------------------------------------------------------- 1 | class ScrnSCARMK17Ammo extends SCARMK17Ammo; 2 | 3 | defaultproperties 4 | { 5 | ItemName="7.62x51mm NATO" 6 | MaxAmmo=360 7 | InitialAmount=120 8 | AmmoPickupAmount=20 9 | PickupClass=class'ScrnSCARMK17AmmoPickup' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnCrossbuzzsaw.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbuzzsaw extends Crossbuzzsaw; 2 | 3 | defaultproperties 4 | { 5 | Weight=9.000000 6 | FireModeClass(0)=class'ScrnCrossbuzzsawFire' 7 | PickupClass=class'ScrnCrossbuzzsawPickup' 8 | ItemName="Buzzsaw Bow SE" 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnM99Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM99Pickup extends M99Pickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=13 6 | AmmoCost=99 7 | BuyClipSize=1 8 | ItemName="M99 AMR SE" 9 | ItemShortName="M99 SE" 10 | InventoryType=class'ScrnM99SniperRifle' 11 | } 12 | -------------------------------------------------------------------------------- /Classes/ScrnSCARMK17Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnSCARMK17Pickup extends SCARMK17Pickup; 2 | 3 | defaultproperties 4 | { 5 | ItemName="SCAR-H SE" 6 | ItemShortName="SCAR-H SE" 7 | AmmoItemName="7.62x51mm NATO" 8 | InventoryType=class'ScrnSCARMK17AssaultRifle' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnCrossbowPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbowPickup extends CrossbowPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnCrossbow' 6 | cost=1600 7 | ItemName="Crossbow SE" 8 | ItemShortName="Crossbow SE" 9 | BuyClipSize=6 10 | AmmoCost=120 11 | } -------------------------------------------------------------------------------- /Classes/ScrnMP7MPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP7MPickup extends MP7MPickup; 2 | 3 | defaultproperties 4 | { 5 | cost=350 // no more perk discount 6 | AmmoCost=6 7 | ItemName="MP7M Medic Gun SE" 8 | ItemShortName="MP7M SE" 9 | InventoryType=class'ScrnMP7MMedicGun' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnPlayerWarningMessage.uc: -------------------------------------------------------------------------------- 1 | class ScrnPlayerWarningMessage extends BullpupSwitchMessage; 2 | 3 | defaultproperties 4 | { 5 | SwitchMessage(0)="Magazine empty! Reload." 6 | SwitchMessage(1)="Out of Ammo" 7 | DrawColor=(G=206,R=196) 8 | FontSize=2 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnPrepareToFightAvoidMarker.uc: -------------------------------------------------------------------------------- 1 | class ScrnPrepareToFightAvoidMarker extends AvoidMarker; 2 | 3 | function PostBeginPlay() 4 | { 5 | super.PostBeginPlay(); 6 | StartleBots(); 7 | } 8 | 9 | defaultproperties 10 | { 11 | CollisionRadius=400 12 | LifeSpan=8.0 13 | } -------------------------------------------------------------------------------- /Classes/ScrnKatana.uc: -------------------------------------------------------------------------------- 1 | class ScrnKatana extends Katana; 2 | 3 | defaultproperties 4 | { 5 | FireModeClass(0)=class'ScrnKatanaFire' 6 | FireModeClass(1)=Class'ScrnKatanaFireB' 7 | GroupOffset=5 8 | PickupClass=class'ScrnKatanaPickup' 9 | ItemName="Katana SE" 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnWaveRule.uc: -------------------------------------------------------------------------------- 1 | class ScrnWaveRule extends object 2 | dependson(ScrnTypes) 3 | dependson(ScrnWaveInfo) 4 | abstract; 5 | 6 | var ScrnGameLength GL; 7 | 8 | function Load(); 9 | function Run(); 10 | function WaveTimer(); 11 | function bool CheckWaveEnd() { return true; } -------------------------------------------------------------------------------- /Classes/DamTypeEnemyBase.uc: -------------------------------------------------------------------------------- 1 | class DamTypeEnemyBase extends TSCDamageType 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | DeathString="%o killed by the Guardian Gnome" 7 | FemaleSuicide="%o killed by the Guardian Gnome" 8 | MaleSuicide="%o killed by the Guardian Gnome" 9 | } -------------------------------------------------------------------------------- /Classes/ScrnFlareRevolverFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnFlareRevolverFire extends FlareRevolverFire; 2 | 3 | defaultproperties 4 | { 5 | AmmoClass=class'ScrnFlareRevolverAmmo' 6 | ProjectileClass=class'ScrnFlareRevolverProjectile' 7 | Spread=0.01 8 | ProjSpawnOffset=(X=0,Y=0,Z=0) 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnShotgunPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnShotgunPickup extends ShotgunPickup; 2 | 3 | defaultproperties 4 | { 5 | Cost=300 //discount removed for tier 1 weapons in v5.09 6 | 7 | ItemName="Shotgun SE" 8 | ItemShortName="Shotgun SE" 9 | InventoryType=class'ScrnShotgun' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnThompsonIncAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnThompsonIncAmmoPickup extends KFAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=20 6 | InventoryType=class'ScrnThompsonIncAmmo' 7 | PickupMessage="Rounds 45. ACP Inc." 8 | StaticMesh=StaticMesh'KillingFloorStatics.L85Ammo' 9 | } -------------------------------------------------------------------------------- /Classes/ScrnM79Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79Pickup extends M79Pickup; 2 | 3 | defaultproperties 4 | { 5 | Cost=1250 6 | ItemName="M79 Grenade Launcher SE" 7 | ItemShortName="M79 Launcher SE" 8 | InventoryType=class'ScrnM79GrenadeLauncher' 9 | BuyClipSize=3 10 | AmmoCost=30 11 | } 12 | -------------------------------------------------------------------------------- /Classes/ScrnPipeBombPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnPipeBombPickup extends PipeBombPickup; 2 | 3 | defaultproperties 4 | { 5 | cost=750 6 | ItemName="Pipe Bomb SE" 7 | ItemShortName="Pipe Bomb SE" 8 | AmmoItemName="Pipe Bomb SE" 9 | InventoryType=class'ScrnPipeBombExplosive' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnZEDMKIIPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnZEDMKIIPickup extends ZEDMKIIPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnZEDMKIIWeapon' 6 | 7 | Cost=1500 8 | AmmoCost=30 9 | ItemName="Zed Eradication Device MKIISE" 10 | ItemShortName="ZED GUN MKIISE" 11 | } -------------------------------------------------------------------------------- /Classes/ScrnChainsawAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnChainsawAmmoPickup extends ChainsawAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=105 6 | InventoryType=class'ScrnChainsawAmmo' 7 | PickupMessage="ML of Gasoline" 8 | StaticMesh=StaticMesh'KillingFloorStatics.FT_AmmoMesh' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnDual44MagnumLaserFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnDual44MagnumLaserFire extends ScrnDual44MagnumFire; 2 | 3 | defaultproperties 4 | { 5 | PenDmgReduction=0.75 6 | MaxPenetrations=5 7 | DamageMax=85 8 | DamageType=class'ScrnDamTypeDual44APMagnum' 9 | AmmoClass=class'ScrnMagnum44APAmmo' 10 | } -------------------------------------------------------------------------------- /Classes/ScrnKrissMPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnKrissMPickup extends KrissMPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=5.000000 6 | cost=2750 7 | AmmoCost=20 8 | ItemName="KrissM Medic Gun SE" 9 | ItemShortName="KrissM SE" 10 | InventoryType=class'ScrnKrissMMedicGun' 11 | } 12 | -------------------------------------------------------------------------------- /Classes/TSCDamageType.uc: -------------------------------------------------------------------------------- 1 | class TSCDamageType extends DamageType 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | DeathString="%o killed by a game" 7 | FemaleSuicide="%o killed by a game" 8 | MaleSuicide="%o killed by a game" 9 | bArmorStops=False 10 | bLocationalHit=False 11 | } -------------------------------------------------------------------------------- /Classes/ScrnCrossbuzzsawPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbuzzsawPickup extends CrossbuzzsawPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=9.000000 6 | cost=4000 7 | AmmoCost=80 8 | ItemName="Buzzsaw Bow SE" 9 | ItemShortName="Buzzsaw Bow SE" 10 | InventoryType=class'ScrnCrossbuzzsaw' 11 | } 12 | -------------------------------------------------------------------------------- /Classes/ScrnScytheFireB.uc: -------------------------------------------------------------------------------- 1 | class ScrnScytheFireB extends ScrnScytheFire; 2 | 3 | defaultproperties 4 | { 5 | FireAnims(0)="fire3" 6 | FireAnims(1)="fire3" 7 | FireAnims(2)="fire3" 8 | FireAnims(3)="fire3" 9 | 10 | MeleeDamage=275 11 | weaponRange=130 12 | WideDamageMinHitAngle=0.80 13 | } 14 | -------------------------------------------------------------------------------- /Classes/TSCTeamBase.uc: -------------------------------------------------------------------------------- 1 | class TSCTeamBase extends GameObject 2 | abstract; 3 | 4 | var bool bActive, bStunned; 5 | 6 | replication 7 | { 8 | reliable if (bNetDirty && Role == ROLE_Authority) 9 | bActive, bStunned; 10 | } 11 | 12 | simulated function vector GetLocation() 13 | { 14 | return Location; 15 | } -------------------------------------------------------------------------------- /Classes/ScrnDualFlareRevolverPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDualFlareRevolverPickup extends DualFlareRevolverPickup; 2 | 3 | defaultproperties 4 | { 5 | BuyClipSize=12 6 | cost=1250 7 | ItemName="Dual Flare Revolvers SE" 8 | ItemShortName="Dual Flare Rev. SE" 9 | InventoryType=class'ScrnDualFlareRevolver' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnDualiesPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDualiesPickup extends DualiesPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=2 6 | cost=200 7 | BuyClipSize=30 8 | ItemName="Dual 9mms SE" 9 | ItemShortName="Dual 9mms SE" 10 | CorrespondingPerkIndex=8 11 | InventoryType=class'ScrnDualies' 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnKnifePickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnKnifePickup extends KnifePickup; 2 | 3 | defaultproperties 4 | { 5 | Description="Military Combat Knife" 6 | ItemName="Knife SE" 7 | ItemShortName="Knife SE" 8 | CorrespondingPerkIndex=4 9 | InventoryType=class'ScrnKnife' 10 | PickupMessage="You got the Knife." 11 | } -------------------------------------------------------------------------------- /Classes/ScrnMKb42Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMKb42Pickup extends MKb42Pickup; 2 | 3 | defaultproperties 4 | { 5 | cost=900 6 | BuyClipSize=30 7 | AmmoCost=12 8 | ItemName="MKb42 SE" 9 | ItemShortName="MKb42 SE" 10 | AmmoItemName="7.62x33mm Kurz" 11 | InventoryType=class'ScrnMKb42AssaultRifle' 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnSPThompsonAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnSPThompsonAmmo extends SPThompsonAmmo; 2 | 3 | #EXEC OBJ LOAD FILE=KillingFloorHUD.utx 4 | 5 | defaultproperties 6 | { 7 | ItemName=".45 ACP" 8 | MaxAmmo=420 9 | InitialAmount=160 10 | AmmoPickupAmount=40 11 | PickupClass=class'ScrnSPThompsonAmmoPickup' 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnM203MAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM203MAmmoPickup extends KFAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=1 6 | InventoryType=class'ScrnM203MAmmo' 7 | PickupMessage="M203 Healing Grenades" 8 | StaticMesh=StaticMesh'KillingFloorStatics.FragPickup' 9 | CollisionRadius=25.000000 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnM79MAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79MAmmoPickup extends KFAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=1 6 | InventoryType=class'ScrnM79MAmmo' 7 | PickupMessage="M79 Healing Grenades" 8 | StaticMesh=StaticMesh'KillingFloorStatics.FragPickup' 9 | CollisionRadius=25.000000 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnBenelliAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnBenelliAmmo extends BenelliAmmo; 2 | 3 | //duplicated by goldenbenelliammo 4 | 5 | defaultproperties 6 | { 7 | AmmoPickupAmount=12 8 | MaxAmmo=48 9 | InitialAmount=24 10 | IconMaterial=Texture'KillingFloorHUD.Generic.HUD' 11 | IconCoords=(X1=451,Y1=445,X2=510,Y2=500) 12 | } -------------------------------------------------------------------------------- /Classes/ScrnBenelliBullet.uc: -------------------------------------------------------------------------------- 1 | class ScrnBenelliBullet extends ScrnCustomShotgunBullet; 2 | 3 | 4 | defaultproperties 5 | { 6 | MaxPenetrations=4 7 | BigZedPenDmgReduction=0.75 8 | MediumZedPenDmgReduction=0.75 9 | MyDamageType=Class'KFMod.DamTypeBenelli' 10 | Damage=42 11 | HeadShotDamageMult=1.25 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnM79IncAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79IncAmmoPickup extends KFAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=3 6 | InventoryType=class'ScrnM79IncAmmo' 7 | PickupMessage="M79 Incendiary Grenades" 8 | StaticMesh=StaticMesh'KillingFloorStatics.FragPickup' 9 | CollisionRadius=25.000000 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnProfilePage.uc: -------------------------------------------------------------------------------- 1 | class ScrnProfilePage extends SRProfilePage; 2 | 3 | defaultproperties 4 | { 5 | Begin Object Class=ScrnTab_Profile Name=Panel 6 | WinTop=0.010000 7 | WinLeft=0.010000 8 | WinWidth=0.980000 9 | WinHeight=0.960000 10 | End Object 11 | ProfilePanel=Panel 12 | } -------------------------------------------------------------------------------- /Classes/ScrnDamTypeScythe.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeScythe extends DamTypeMelee; 2 | 3 | defaultproperties 4 | { 5 | HeadShotDamageMult=1.100000 6 | WeaponClass=class'ScrnScythe' 7 | DeathString="%o was reaped by %k." 8 | PawnDamageSounds(0)=SoundGroup'KF_AxeSnd.Axe_HitFlesh' 9 | VehicleDamageScaling=0.700000 10 | } 11 | -------------------------------------------------------------------------------- /Classes/GreenWhisp.uc: -------------------------------------------------------------------------------- 1 | class GreenWhisp extends BlueWhisp; 2 | 3 | function vector GetFinalDestination() 4 | { 5 | return TSCTeamBase(PlayerController(Owner).PlayerReplicationInfo.Team.HomeBase).Location; 6 | } 7 | 8 | defaultproperties 9 | { 10 | mColorRange(0)=(R=0,G=255,B=0,A=255) 11 | mColorRange(1)=(R=0,G=255,B=0,A=255) 12 | } -------------------------------------------------------------------------------- /Classes/ScrnKSGBullet.uc: -------------------------------------------------------------------------------- 1 | class ScrnKSGBullet extends ScrnCustomShotgunBullet; 2 | 3 | defaultproperties 4 | { 5 | BigZedPenDmgReduction=0.000000 6 | MediumZedPenDmgReduction=0.250000 7 | PenDamageReduction=0.900000 8 | Damage=19 9 | HeadShotDamageMult=1.5 10 | MyDamageType=Class'KFMod.DamTypeKSGShotgun' 11 | } 12 | -------------------------------------------------------------------------------- /Classes/DamTypeSudDeath.uc: -------------------------------------------------------------------------------- 1 | class DamTypeSudDeath extends TSCDamageType 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | DeathString="%o punished by Sudden Death" 7 | FemaleSuicide="%o punished by Sudden Death" 8 | MaleSuicide="%o punished by Sudden Death" 9 | bAlwaysGibs=True 10 | GibPerterbation=1.000000 11 | } -------------------------------------------------------------------------------- /Classes/ScrnNailGunAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnNailGunAmmo extends KFAmmunition; 2 | 3 | #EXEC OBJ LOAD FILE=KillingFloorHUD.utx 4 | 5 | defaultproperties 6 | { 7 | AmmoPickupAmount=42 8 | MaxAmmo=336 9 | InitialAmount=126 10 | IconMaterial=Texture'KillingFloorHUD.Generic.HUD' 11 | IconCoords=(X1=451,Y1=445,X2=510,Y2=500) 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnSeekerSixPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnSeekerSixPickup extends SeekerSixPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnSeekerSixRocketLauncher' 6 | 7 | //Weight=7.000000 8 | cost=2500 9 | BuyClipSize=24 10 | AmmoCost=60 11 | ItemName="Seeker6 Rocket Launcher SE" 12 | ItemShortName="Seeker6 SE" 13 | } -------------------------------------------------------------------------------- /Classes/ScrnPerkSelectListBox.uc: -------------------------------------------------------------------------------- 1 | class ScrnPerkSelectListBox extends SRPerkSelectListBox; 2 | 3 | function InitComponent(GUIController MyController, GUIComponent MyOwner) 4 | { 5 | DefaultListClass = string(Class'ScrnPerkSelectList'); 6 | Super(KFPerkSelectListBox).InitComponent(MyController,MyOwner); 7 | } 8 | 9 | defaultproperties 10 | { 11 | } -------------------------------------------------------------------------------- /Classes/ScrnChainsawAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnChainsawAmmo extends ChainsawAmmo; 2 | 3 | defaultproperties 4 | { 5 | bAcceptsAmmoPickups=True 6 | AmmoPickupAmount=105 7 | MaxAmmo=1050 8 | InitialAmount=525 9 | PickupClass=class'ScrnChainsawAmmoPickup' 10 | IconCoords=(X1=336,Y1=82,X2=382,Y2=125) 11 | ItemName="Fuel Canisters" 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeMedicGrenadeImpact.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeMedicGrenadeImpact extends ScrnDamTypeMedic 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | HeadShotDamageMult=2.000000 7 | WeaponClass=class'ScrnM79M' 8 | bBulletHit=True 9 | FlashFog=(X=600.000000) 10 | KDamageImpulse=2500 11 | KDeathVel=100 12 | KDeathUpKick=25 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnFragPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnFragPickup extends FragPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=0.000000 6 | AmmoCost=40 7 | BuyClipSize=1 8 | Description="Fragmentation Grenades." 9 | ItemName="Grenades SE" 10 | ItemShortName="Grenades SE" 11 | AmmoItemName="Grenades SE" 12 | InventoryType=class'ScrnFrag' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnM203MGrenadeProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnM203MGrenadeProjectile extends ScrnM79MGrenadeProjectile; 2 | 3 | 4 | function SuccessfulHealMessage() 5 | { 6 | if ( ScrnM4203MMedicGun(InstigatorWeapon) != none ) 7 | ScrnM4203MMedicGun(InstigatorWeapon).ClientSuccessfulHeal(HealedPlayers.length, HealedHP); 8 | } 9 | 10 | defaultproperties 11 | { 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnM79MAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79MAmmo extends KFAmmunition; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=1 6 | MaxAmmo=6 7 | InitialAmount=2 8 | PickupClass=class'ScrnM79MAmmoPickup' 9 | IconMaterial=Texture'KillingFloorHUD.Generic.HUD' 10 | IconCoords=(X1=4,Y1=350,X2=110,Y2=395) 11 | ItemName="M79 Healing Grenades" 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnPipeBombFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnPipeBombFire extends PipeBombFire; 2 | 3 | function PostSpawnProjectile(Projectile P) 4 | { 5 | super.PostSpawnProjectile(P); 6 | ScrnPipeBombExplosive(Weapon).ServerSendCount(); 7 | } 8 | 9 | defaultproperties 10 | { 11 | AmmoClass=class'ScrnPipeBombAmmo' 12 | ProjectileClass=class'ScrnPipeBombProjectile' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnM203MAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnM203MAmmo extends KFAmmunition; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=1 6 | MaxAmmo=6 7 | InitialAmount=2 8 | PickupClass=class'ScrnM203MAmmoPickup' 9 | IconMaterial=Texture'KillingFloorHUD.Generic.HUD' 10 | IconCoords=(X1=4,Y1=350,X2=110,Y2=395) 11 | ItemName="M203 Healing Grenades" 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnCustomFontMsg.uc: -------------------------------------------------------------------------------- 1 | class ScrnCustomFontMsg extends CriticalEventPlus; 2 | 3 | static function Font GetFont(ScrnHUD myHUD, Canvas C, int Switch, PlayerReplicationInfo RelatedPRI1, 4 | PlayerReplicationInfo RelatedPRI2, PlayerReplicationInfo LocalPlayer ) 5 | { 6 | return myHUD.GetFontSizeIndex(C, static.GetFontSize(Switch, RelatedPRI1, RelatedPRI2, LocalPlayer)); 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ScrnM79IncAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79IncAmmo extends KFAmmunition; 2 | 3 | defaultproperties 4 | { 5 | AmmoPickupAmount=3 6 | MaxAmmo=24 7 | InitialAmount=12 8 | PickupClass=class'ScrnM79IncAmmoPickup' 9 | IconMaterial=Texture'KillingFloorHUD.Generic.HUD' 10 | IconCoords=(X1=4,Y1=350,X2=110,Y2=395) 11 | ItemName="M79 Incendiary Grenades" 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeHuskGun_Alt.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeHuskGun_Alt extends ScrnDamTypeHuskGun 2 | abstract; 3 | 4 | 5 | 6 | defaultproperties 7 | { 8 | HeadShotDamageMult=1.000000 9 | bCheckForHeadShots=False 10 | DeathString="%k burned down %o with Napalm." 11 | FemaleSuicide="%o burned her pretty butt up." 12 | MaleSuicide="%o burned his a** up." 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnHuskGunProjectile_Weak.uc: -------------------------------------------------------------------------------- 1 | class ScrnHuskGunProjectile_Weak extends ScrnHuskGunProjectile; 2 | 3 | defaultproperties 4 | { 5 | LightRadius=8.0 6 | ExplosionEmitter=Class'KFMod.FlameImpact_Weak' 7 | FlameTrailEmitterClass=Class'ScrnHuskGunTrail_Weak' 8 | ExplosionSoundVolume=1.250000 9 | ExplosionDecal=Class'KFMod.FlameThrowerBurnMark_Small' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnHuskGunProjectile_Strong.uc: -------------------------------------------------------------------------------- 1 | class ScrnHuskGunProjectile_Strong extends ScrnHuskGunProjectile; 2 | 3 | defaultproperties 4 | { 5 | LightRadius=16 6 | ExplosionEmitter=Class'KFMod.FlameImpact_Strong' 7 | FlameTrailEmitterClass=Class'ScrnHuskGunTrail_Strong' 8 | ExplosionSoundVolume=2.000000 9 | ExplosionDecal=Class'KFMod.FlameThrowerBurnMark_Large' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnInit.uc: -------------------------------------------------------------------------------- 1 | class ScrnInit extends Object 2 | abstract 3 | Config(ScrnBalanceSrv); 4 | 5 | 6 | var string DefaultVotingHandler; 7 | 8 | var globalconfig bool bVotingHandlerOverride; 9 | var globalconfig string CustomVotingHandler; 10 | 11 | 12 | defaultproperties 13 | { 14 | DefaultVotingHandler="KFMapVoteV3SE.KFVotingHandler" 15 | bVotingHandlerOverride=true 16 | } -------------------------------------------------------------------------------- /Classes/ScrnM14EBRPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM14EBRPickup extends M14EBRPickup; 2 | 3 | defaultproperties 4 | { 5 | Description="Updated M14 Enhanced Battle Rifle - Semi Auto variant. Equipped with a laser sight. A special lens allows to change laser's color on the fly." 6 | ItemName="M14EBR SE" 7 | ItemShortName="M14EBR SE" 8 | InventoryType=class'ScrnM14EBRBattleRifle' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnM4Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM4Pickup extends M4Pickup; 2 | 3 | defaultproperties 4 | { 5 | Cost=1500 6 | AmmoCost=30 7 | Description="M4 carbine with M68 CCO reflex sight. Loaded with 5.56x45mm NATO Armor-Piercing rounds." 8 | ItemName="M4 AP" 9 | ItemShortName="M4 AP" 10 | AmmoItemName="5.56x45mm NATO AP" 11 | InventoryType=class'ScrnM4AssaultRifle' 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnWaitingFontMsg.uc: -------------------------------------------------------------------------------- 1 | class ScrnWaitingFontMsg extends ScrnCustomFontMsg; 2 | 3 | static function Font GetFont(ScrnHUD myHUD, Canvas C, int Switch, PlayerReplicationInfo RelatedPRI1, 4 | PlayerReplicationInfo RelatedPRI2, PlayerReplicationInfo LocalPlayer) 5 | { 6 | return myHUD.LoadWaitingFont(clamp(static.GetFontSize(Switch, RelatedPRI1, RelatedPRI2, LocalPlayer), 0, 1)); 7 | } 8 | -------------------------------------------------------------------------------- /Classes/ToiletPaperAmmoPickup.uc: -------------------------------------------------------------------------------- 1 | class ToiletPaperAmmoPickup extends KFAmmoPickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoAmount=1 6 | InventoryType=class'ToiletPaperAmmo' 7 | RespawnTime=0.000000 8 | PickupMessage="Found some Toilet Paper" 9 | StaticMesh=StaticMesh'KillingFloorStatics.FragPickup' 10 | DrawScale=0.500000 11 | CollisionRadius=10.000000 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnM79Inc.uc: -------------------------------------------------------------------------------- 1 | // Incendiary M79 2 | class ScrnM79Inc extends GoldenM79GrenadeLauncher; 3 | 4 | defaultproperties 5 | { 6 | FireModeClass(0)=class'ScrnM79IncFire' 7 | Description="A classic Vietnam era grenade launcher. Launches incendiary grenades." 8 | PickupClass=class'ScrnM79IncPickup' 9 | ItemName="M79 Incendiary" 10 | Priority=95 11 | AppID=0 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnAK47Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnAK47Pickup extends AK47Pickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoCost=14 6 | BuyClipSize=30 7 | ItemName="AK-47 SE" 8 | ItemShortName="AK-47 SE" 9 | Description="The most popular assault rifle in the world. Chambered for the 7.62x39mm cartridge." 10 | AmmoItemName="7.62x39mm" 11 | InventoryType=Class'ScrnAK47AssaultRifle' 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnNailGunPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnNailGunPickup extends NailGunPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=6.000000 6 | cost=1000 7 | AmmoCost=20 8 | BuyClipSize=30 9 | Description="Designed for putting barns together. Or nailing Zeds to them." 10 | ItemName="Nailgun SE" 11 | ItemShortName="Nailgun SE" 12 | InventoryType=class'ScrnNailGun' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnPauser.uc: -------------------------------------------------------------------------------- 1 | class ScrnPauser extends PlayerReplicationInfo; 2 | 3 | event PostBeginPlay(); 4 | simulated event PostNetBeginPlay(); 5 | simulated event PostNetReceive(); 6 | function Timer(); 7 | function SetPlayerName(string S); 8 | 9 | defaultproperties 10 | { 11 | bNetNotify=false 12 | bBot=true 13 | bAdmin=true 14 | bSilentAdmin=true 15 | PlayerName="ScrN Pauser" 16 | } -------------------------------------------------------------------------------- /Classes/ScrnBuyMenuSaleListBox.uc: -------------------------------------------------------------------------------- 1 | class ScrnBuyMenuSaleListBox extends SRBuyMenuSaleListBox; 2 | 3 | function InitComponent(GUIController MyController, GUIComponent MyOwner) 4 | { 5 | DefaultListClass=string(Class'ScrnBuyMenuSaleList'); 6 | //bypass SRBuyMenuSaleListBox here 7 | Super(KFBuyMenuSaleListBox).InitComponent(MyController,MyOwner); 8 | } 9 | 10 | defaultproperties 11 | { 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnClaymoreSwordPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnClaymoreSwordPickup extends ClaymoreSwordPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=8 6 | cost=2500 7 | SpeedValue=45 8 | Description="ScrN version of a medieval claymore sword. Swings faster, can chain ZED times." 9 | ItemName="Claymore Sword SE" 10 | ItemShortName="Claymore SE" 11 | InventoryType=class'ScrnClaymoreSword' 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnNoVestPickup.uc: -------------------------------------------------------------------------------- 1 | // dummy class that indicates player doesn't wear armor currently 2 | class ScrnNoVestPickup extends ScrnVestPickup 3 | notplaceable abstract ; 4 | 5 | defaultproperties 6 | { 7 | Description="You have no armor. Either you have balls of steel or a brain of turd." 8 | ItemName="No Armor" 9 | ItemShortName="No Armor" 10 | PickupMessage="You lost the armor" 11 | } 12 | -------------------------------------------------------------------------------- /Classes/ScrnSPSniperPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnSPSniperPickup extends SPSniperPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnSPSniperRifle' 6 | 7 | Weight=6.000000 8 | cost=1500 9 | Description="A finely crafted long rifle from the Victorian era fitted with telescopic aiming optics." 10 | ItemName="Single Piston Longmusket SE" 11 | ItemShortName="S.P. Musket SE" 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeMedicBase.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeMedicBase extends KFProjectileWeaponDamageType 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | DeathString="%k killed %o (Medic Gun)." 7 | FemaleSuicide="%o shot herself in the foot." 8 | MaleSuicide="%o shot himself in the foot." 9 | bRagdollBullet=True 10 | KDamageImpulse=850.000000 11 | KDeathVel=115.000000 12 | KDeathUpKick=2.000000 13 | } -------------------------------------------------------------------------------- /Classes/ScrnAA12Bullet.uc: -------------------------------------------------------------------------------- 1 | class ScrnAA12Bullet extends ScrnCustomShotgunBullet; 2 | 3 | defaultproperties 4 | { 5 | MaxPenetrations=6 6 | BigZedPenDmgReduction=0.00 7 | MediumZedPenDmgReduction=0.25 8 | PenDamageReduction=0.900000 9 | Damage=30 10 | HeadShotDamageMult=1.5 11 | MomentumTransfer=60000.000000 12 | MyDamageType=Class'KFMod.DamTypeAA12Shotgun' 13 | DrawScale=1.500000 14 | } 15 | -------------------------------------------------------------------------------- /Classes/ScrnDualDeaglePickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDualDeaglePickup extends DualDeaglePickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=6 6 | cost=1500 7 | AmmoCost=15 8 | BuyClipSize=7 9 | ItemName="Dual Handcannons SE" 10 | ItemShortName="Dual HC SE" 11 | AmmoItemName=".50 AE" 12 | CorrespondingPerkIndex=8 13 | InventoryType=class'ScrnDualDeagle' 14 | MagAmmoRemaining=16 15 | } 16 | -------------------------------------------------------------------------------- /Classes/ScrnClaymoreSword.uc: -------------------------------------------------------------------------------- 1 | class ScrnClaymoreSword extends ClaymoreSword; 2 | 3 | defaultproperties 4 | { 5 | Weight=8 6 | bIsTier2Weapon=False 7 | bIsTier3Weapon=True 8 | FireModeClass(0)=class'ScrnClaymoreSwordFire' 9 | FireModeClass(1)=class'ScrnClaymoreSwordFireB' 10 | Priority=105 11 | GroupOffset=4 12 | PickupClass=class'ScrnClaymoreSwordPickup' 13 | ItemName="Claymore Sword SE" 14 | } 15 | -------------------------------------------------------------------------------- /Classes/ScrnPerkProgressListBox.uc: -------------------------------------------------------------------------------- 1 | class ScrnPerkProgressListBox extends SRPerkProgressListBox; 2 | 3 | function InitComponent(GUIController MyController, GUIComponent MyOwner) 4 | { 5 | DefaultListClass = string(Class'ScrnPerkProgressList'); 6 | Super(KFPerkProgressListBox).InitComponent(MyController,MyOwner); 7 | } 8 | 9 | defaultproperties 10 | { 11 | DefaultListClass="ScrnBalanceSrv.ScrnPerkProgressList" 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnAA12Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnAA12Pickup extends AA12Pickup; 2 | 3 | defaultproperties 4 | { 5 | Description="An advanced fully automatic shotgun. Delivers less per-bullet damage, but awesome penetration and fire rate make it the best choise to kill everything... while you have ammo remaining" 6 | ItemName="AA12 Shotgun SE" 7 | ItemShortName="AA12 Shotgun SE" 8 | InventoryType=class'ScrnAA12AutoShotgun' 9 | } 10 | -------------------------------------------------------------------------------- /Classes/ScrnBoomStickBullet.uc: -------------------------------------------------------------------------------- 1 | class ScrnBoomStickBullet extends ScrnCustomShotgunBullet; 2 | 3 | defaultproperties 4 | { 5 | BigZedPenDmgReduction=0.75 6 | MediumZedPenDmgReduction=0.75 7 | MaxPenetrations=5 8 | PenDamageReduction=0.800000 9 | Damage=60 10 | HeadShotDamageMult=1.25 11 | PlayerDamageMult=0.80 12 | MomentumTransfer=60000.000000 13 | MyDamageType=Class'KFMod.DamTypeDBShotgun' 14 | } 15 | -------------------------------------------------------------------------------- /Classes/ScrnBullpup.uc: -------------------------------------------------------------------------------- 1 | class ScrnBullpup extends Bullpup 2 | config(user); 3 | 4 | defaultproperties 5 | { 6 | Weight=4.000000 7 | FireModeClass(0)=class'ScrnBullpupFire' 8 | PickupClass=class'ScrnBullpupPickup' 9 | ItemName="Mike's Bullpup" 10 | Description="If you found Bullpup on a map, then it probably belongs to [REB]Mike1. Mike has more than 1000 gameplay hours in KF by using only a Bullpup." 11 | } 12 | -------------------------------------------------------------------------------- /Classes/ScrnKrissMFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnKrissMFire extends KrissMFire; 2 | 3 | // fixes double shot bug -- PooSH 4 | state FireLoop 5 | { 6 | function BeginState() 7 | { 8 | super.BeginState(); 9 | 10 | NextFireTime = Level.TimeSeconds - 0.000001; //fire now! 11 | } 12 | } 13 | 14 | defaultproperties 15 | { 16 | DamageType=class'ScrnDamTypeKrissM' 17 | AmmoClass=class'ScrnKrissMAmmo' 18 | } 19 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeHeavyBase.uc: -------------------------------------------------------------------------------- 1 | // Base damage type for HMG perk 2 | class ScrnDamTypeHeavyBase extends KFWeaponDamageType 3 | abstract; 4 | 5 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 6 | { 7 | } 8 | 9 | defaultproperties 10 | { 11 | bIsPowerWeapon=true // allow HMG weapons to contribute to shotgun achievements but no sup achievement progress 12 | bCheckForHeadShots=false 13 | } -------------------------------------------------------------------------------- /Classes/ScrnFireModeSwitchMessage.uc: -------------------------------------------------------------------------------- 1 | class ScrnFireModeSwitchMessage extends BullpupSwitchMessage; 2 | 3 | defaultproperties 4 | { 5 | SwitchMessage(0)="Set to Fully Automatic" 6 | SwitchMessage(1)="Set to Semi-Automatic" 7 | SwitchMessage(2)="Set to 2-bullet Burst Mode" 8 | SwitchMessage(3)="Set to 3-bullet Burst Mode" 9 | SwitchMessage(4)="Set to Single Mode" 10 | SwitchMessage(5)="Set to Multi Mode" 11 | } 12 | -------------------------------------------------------------------------------- /Classes/ScrnFlareRevolverProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnFlareRevolverProjectile extends ScrnFlareProjectile; 2 | 3 | defaultproperties 4 | { 5 | HeadShotDamageMult=1.5 // applied only on burn damage. Impact's headshot mult. is set in damage type 6 | ImpactDamage=85 // 100 7 | Damage=30.0 // initial fire damage 8 | ImpactDamageType=class'ScrnDamTypeFlareRevolverImpact' 9 | MyDamageType=class'ScrnDamTypeFlareRevolver' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnLAWPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnLAWPickup extends LAWPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=12.000000 6 | Description="Light Anti-tank Weapon. Designed to punch through armored vehicles... but can't kill even a Scrake... Maybe because he doesn't wear armor to punch through ^^" 7 | ItemName="LAW SE" 8 | ItemShortName="LAW SE" 9 | AmmoItemName="LAW Rockets" 10 | InventoryType=class'ScrnLAW' 11 | } 12 | -------------------------------------------------------------------------------- /Classes/ScrnScythePickup.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Scythe Pickup. 3 | //============================================================================= 4 | class ScrnScythePickup extends ScythePickup; 5 | 6 | defaultproperties 7 | { 8 | Weight=5 9 | cost=2000 10 | ItemName="Scythe SE" 11 | ItemShortName="Scythe SE" 12 | InventoryType=class'ScrnScythe' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnBenelliPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnBenelliPickup extends BenelliPickup; 2 | 3 | defaultproperties 4 | { 5 | cost=1500 6 | Description="A military tactical shotgun with semi automatic fire capability. Holds up to 6 shells. Special shell construction allow pellets to penetrate fat much easier." 7 | ItemName="Combat Shotgun SE" 8 | ItemShortName="Combat Shotgun SE" 9 | InventoryType=class'ScrnBenelliShotgun' 10 | } 11 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeMP5M.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeMP5M extends ScrnDamTypeMedic 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | WeaponClass=class'ScrnMP5MMedicGun' 7 | DeathString="%k killed %o (MP5M)." 8 | FemaleSuicide="%o shot herself in the foot." 9 | MaleSuicide="%o shot himself in the foot." 10 | bRagdollBullet=True 11 | KDamageImpulse=750.000000 12 | KDeathVel=100.000000 13 | KDeathUpKick=1.000000 14 | } -------------------------------------------------------------------------------- /Classes/ScrnDamTypeMP7M.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeMP7M extends ScrnDamTypeMedic 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | WeaponClass=class'ScrnMP7MMedicGun' 7 | DeathString="%k killed %o (MP7M)." 8 | FemaleSuicide="%o shot herself in the foot." 9 | MaleSuicide="%o shot himself in the foot." 10 | bRagdollBullet=True 11 | KDamageImpulse=850.000000 12 | KDeathVel=115.000000 13 | KDeathUpKick=2.000000 14 | } -------------------------------------------------------------------------------- /Classes/ScrnM79IncPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79IncPickup extends GoldenM79Pickup; 2 | 3 | defaultproperties 4 | { 5 | PowerValue=70 6 | Description="A classic Vietnam era grenade launcher. Launches incendiary grenades." 7 | ItemName="M79 Incendiary" 8 | ItemShortName="M79 Inc" 9 | CorrespondingPerkIndex=5 10 | InventoryType=class'ScrnM79Inc' 11 | PickupMessage="You got the M79 Incendiary Grenade Launcher." 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ToiletPaperFire.uc: -------------------------------------------------------------------------------- 1 | class ToiletPaperFire extends FragFire; 2 | 3 | function class GetDesiredProjectileClass() 4 | { 5 | return ProjectileClass; 6 | } 7 | 8 | state LoadNext 9 | { 10 | function BeginState() 11 | { 12 | // do not play weapon reload sound 13 | } 14 | } 15 | 16 | defaultproperties 17 | { 18 | AmmoClass=class'ToiletPaperAmmo' 19 | ProjectileClass=class'ToiletPaperProj' 20 | } 21 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeM7A3M.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeM7A3M extends ScrnDamTypeMedic 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | WeaponClass=class'ScrnM7A3MMedicGun' 7 | DeathString="%k killed %o (M7A3)." 8 | FemaleSuicide="%o shot herself in the foot." 9 | MaleSuicide="%o shot himself in the foot." 10 | bRagdollBullet=True 11 | KDamageImpulse=890.000000 12 | KDeathVel=185.000000 13 | KDeathUpKick=4.000000 14 | } -------------------------------------------------------------------------------- /Classes/ScrnLightVestPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnLightVestPickup extends ScrnVestPickup 2 | notplaceable; 3 | 4 | defaultproperties 5 | { 6 | ShieldCapacity=25 7 | cost=100 8 | PowerValue=13 9 | Description="Grants minor damage protection." 10 | LocalizedDescription="Grants minor damage protection." 11 | ItemName="Armored Jacket" 12 | ItemShortName="Armored Jacket" 13 | PickupMessage="You got an Armored Jacket" 14 | } 15 | -------------------------------------------------------------------------------- /Classes/ScrnUserGameLength.uc: -------------------------------------------------------------------------------- 1 | Class ScrnUserGameLength extends ScrnGameLength 2 | PerObjectConfig 3 | Config(ScrnUserGames); 4 | 5 | var config bool bUserWaves, bUserZeds; 6 | 7 | function LoadGame(ScrnGameType MyGame) 8 | { 9 | if (bUserWaves) { 10 | WaveInfoClass = class'ScrnUserWaveInfo'; 11 | } 12 | if (bUserZeds) { 13 | ZedInfoClass = class'ScrnUserZedInfo'; 14 | } 15 | super.LoadGame(MyGame); 16 | } 17 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeTrenchgun.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeTrenchgun extends DamTypeTrenchgun 2 | abstract; 3 | 4 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 5 | { 6 | super.AwardDamage(KFStatsAndAchievements, Amount); //count shotgun progress too 7 | 8 | KFStatsAndAchievements.AddFlameThrowerDamage(Amount); 9 | } 10 | 11 | defaultproperties 12 | { 13 | WeaponClass=class'ScrnTrenchgun' 14 | } 15 | -------------------------------------------------------------------------------- /Classes/ScrnThompsonIncAmmo.uc: -------------------------------------------------------------------------------- 1 | class ScrnThompsonIncAmmo extends KFAmmunition; 2 | 3 | #EXEC OBJ LOAD FILE=KillingFloorHUD.utx 4 | 5 | defaultproperties 6 | { 7 | AmmoPickupAmount=20 8 | MaxAmmo=240 9 | InitialAmount=150 10 | PickupClass=class'ScrnThompsonIncAmmoPickup' 11 | IconMaterial=Texture'KillingFloorHUD.Generic.HUD' 12 | IconCoords=(X1=336,Y1=82,X2=382,Y2=125) 13 | ItemName="45. ACP Incendiary bullets" 14 | } 15 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeKrissM.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeKrissM extends ScrnDamTypeMedic 2 | abstract; 3 | 4 | defaultproperties 5 | { 6 | WeaponClass=class'ScrnKrissMMedicGun' 7 | DeathString="%k killed %o (Schneidzekk)." 8 | FemaleSuicide="%o shot herself in the foot." 9 | MaleSuicide="%o shot himself in the foot." 10 | bRagdollBullet=True 11 | KDamageImpulse=5500.000000 12 | KDeathVel=175.000000 13 | KDeathUpKick=15.000000 14 | } -------------------------------------------------------------------------------- /Classes/ScrnChainsawPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnChainsawPickup extends ChainsawPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=7 6 | cost=1000 7 | BuyClipSize=100 8 | Description="This legendary chainsaw is used through the centuries to fight evil forces" 9 | ItemName="Ash's Chainsaw" 10 | ItemShortName="Ash's Chainsaw" 11 | PickupMessage="You got the Ash's Chainsaw." 12 | AmmoItemName="Gasoline" 13 | InventoryType=class'ScrnChainsaw' 14 | } 15 | -------------------------------------------------------------------------------- /Classes/ScrnFlameThrowerPickup.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // L85 Pickup. 3 | //============================================================================= 4 | class ScrnFlameThrowerPickup extends FlameThrowerPickup; 5 | 6 | defaultproperties 7 | { 8 | cost=1000 9 | ItemName="FlameThrower SE" 10 | ItemShortName="FlameThrower SE" 11 | InventoryType=class'ScrnFlameThrower' 12 | Weight=9 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnMAC10Pickup.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // MAC-10 Pickup. 3 | //============================================================================= 4 | class ScrnMAC10Pickup extends MAC10Pickup; 5 | 6 | defaultproperties 7 | { 8 | Cost=200 //discount removed for tier 1 weapons in v5.09 9 | 10 | ItemName="MAC-10 SE" 11 | ItemShortName="MAC-10 SE" 12 | InventoryType=class'ScrnMAC10MP' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnDual44MagnumLaserAttachment.uc: -------------------------------------------------------------------------------- 1 | class ScrnDual44MagnumLaserAttachment extends ScrnLaserDualWeaponAttachment; 2 | 3 | defaultproperties 4 | { 5 | Mesh=SkeletalMesh'KF_Weapons3rd3_Trip.revolver_3rd' 6 | BrotherMesh=SkeletalMesh'KF_Weapons3rd3_Trip.revolver_3rd' 7 | mTracerClass=Class'KFMod.KFLargeTracer' 8 | mShellCaseEmitterClass=None 9 | bHeavy=True 10 | SplashEffect=Class'ROEffects.BulletSplashEmitter' 11 | CullDistance=5000.000000 12 | } -------------------------------------------------------------------------------- /Classes/ScrnTypes.uc: -------------------------------------------------------------------------------- 1 | class ScrnTypes extends Object abstract; 2 | 3 | // Ensure the enum values are synced with ScrnBalance! 4 | enum EZedTimeTrigger { 5 | ZT_Default, 6 | ZT_Random, 7 | ZT_Bucket, 8 | ZT_HiddenBucket, 9 | ZT_Disabled, 10 | ZT_Custom 11 | }; 12 | 13 | struct ZVolLink { 14 | var ZombieVolume Src; 15 | var KFDoorMover Door; 16 | }; 17 | struct ZVolInfo { 18 | var array Links; 19 | var bool bBoss; // TODO 20 | }; 21 | -------------------------------------------------------------------------------- /Classes/ScrnAxeFireB.uc: -------------------------------------------------------------------------------- 1 | class ScrnAxeFireB extends ScrnMeleeFire; 2 | 3 | defaultproperties 4 | { 5 | WideDamageMinHitAngle=0.000000 6 | 7 | MeleeDamage=275 8 | ProxySize=0.150000 9 | weaponRange=90.000000 10 | DamagedelayMin=0.760000 11 | DamagedelayMax=0.760000 12 | hitDamageClass=Class'KFMod.DamTypeAxe' 13 | HitEffectClass=Class'KFMod.AxeHitEffect' 14 | FireAnim="PowerAttack" 15 | FireRate=1.333000 16 | BotRefireRate=0.850000 17 | } 18 | -------------------------------------------------------------------------------- /Classes/ScrnKatanaFireB.uc: -------------------------------------------------------------------------------- 1 | class ScrnKatanaFireB extends ScrnMeleeFire; 2 | 3 | 4 | defaultproperties 5 | { 6 | MeleeDamage=205 7 | ProxySize=0.150000 8 | weaponRange=95.000000 9 | DamagedelayMin=0.650000 10 | DamagedelayMax=0.650000 11 | hitDamageClass=Class'KFMod.DamTypeKatana' 12 | HitEffectClass=Class'KFMod.AxeHitEffect' 13 | WideDamageMinHitAngle=0.650000 14 | FireAnim="HardAttack" 15 | FireRate=1.000000 16 | BotRefireRate=0.850000 17 | } -------------------------------------------------------------------------------- /Classes/ScrnDualMK23LaserPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDualMK23LaserPickup extends ScrnDualMK23Pickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=5 6 | cost=2500 7 | Description="Yeah! One in each hand! Now with laser attachment." 8 | ItemName="Laser Dual MK23" 9 | ItemShortName="Laser Dual MK23" 10 | InventoryType=class'ScrnDualMK23Laser' 11 | PickupMessage="You found Dual MK23 with Laser Sight" 12 | UV2Texture=FadeColor'ScrnTex.Laser.PickupOverlay' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnScythe.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Scythe Inventory class 3 | //============================================================================= 4 | class ScrnScythe extends Scythe; 5 | 6 | defaultproperties 7 | { 8 | Weight=5.000000 9 | FireModeClass(0)=class'ScrnScytheFire' 10 | FireModeClass(1)=class'ScrnScytheFireB' 11 | PickupClass=class'ScrnScythePickup' 12 | ItemName="Scythe SE" 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnTraderPlayerListBox.uc: -------------------------------------------------------------------------------- 1 | class ScrnTraderPlayerListBox extends GUIListBoxBase; 2 | 3 | var ScrnTraderPlayerList List; 4 | 5 | function InitComponent(GUIController MyController, GUIComponent MyOwner) 6 | { 7 | Super.InitComponent(MyController, MyOwner); 8 | 9 | List = ScrnTraderPlayerList(AddComponent(string(class'ScrnTraderPlayerList'))); 10 | InitBaseList(List); 11 | } 12 | 13 | defaultproperties 14 | { 15 | DefaultListClass="ScrnBalanceSrv.ScrnTraderPlayerList" 16 | } -------------------------------------------------------------------------------- /Classes/TurboGame.uc: -------------------------------------------------------------------------------- 1 | class TurboGame extends ScrnGameType; 2 | 3 | State MatchInProgress 4 | { 5 | function BeginState() 6 | { 7 | super.BeginState(); 8 | SetGameSpeed(TurboScale); 9 | } 10 | } 11 | 12 | defaultproperties 13 | { 14 | GameName="Turbo Floor" 15 | Description="Same KF but faster. Much Faster. And more ZED Time." 16 | 17 | TurboScale=1.5 18 | 19 | ZEDTimeDuration=4.5 20 | ZedTimeSlomoScale=0.50 21 | ExtraZedTimeExtensions=3 22 | } 23 | -------------------------------------------------------------------------------- /Classes/ScrnFNFAL_ACOG_Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnFNFAL_ACOG_Pickup extends FNFAL_ACOG_Pickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=7 6 | Cost=4000 7 | AmmoCost=35 8 | Description="A classic NATO battle rifle. Loaded with 7.62x51mm NATO Armor-Piercing rounds. Horzine modification added 2-bullet fixed-burst mode." 9 | ItemName="FN FAL ACOG AP" 10 | ItemShortName="FN FAL ACOG AP" 11 | AmmoItemName="7.62x51mm NATO AP" 12 | InventoryType=class'ScrnFNFAL_ACOG_AssaultRifle' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnFlameThrower.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // FlameChucker 3 | //============================================================================= 4 | class ScrnFlameThrower extends FlameThrower; 5 | 6 | defaultproperties 7 | { 8 | FireModeClass(0)=class'ScrnFlameBurstFire' 9 | InventoryGroup=4 10 | PickupClass=class'ScrnFlameThrowerPickup' 11 | ItemName="FlameThrower SE" 12 | Weight=9 13 | QuickPutDownTime=0.15 14 | } 15 | -------------------------------------------------------------------------------- /Classes/ScrnNailGunFireSingle.uc: -------------------------------------------------------------------------------- 1 | class ScrnNailGunFireSingle extends ScrnNailGunFire; 2 | 3 | 4 | defaultproperties 5 | { 6 | AmmoPerFire=1 7 | FireRate=0.25 8 | FireAnimRate=2.0 9 | Spread=0.20 10 | maxVerticalRecoilAngle=250 11 | maxHorizontalRecoilAngle=150 12 | KickMomentum = vect(0,0,0); 13 | bFiringDoesntAffectMovement=true 14 | 15 | FireSoundRef="KF_NailShotgun.KF_NailShotgun_Fire_Alt_M" 16 | StereoFireSoundRef="KF_NailShotgun.KF_NailShotgun_Fire_Alt_S" 17 | } 18 | -------------------------------------------------------------------------------- /Classes/ScrnKnifeFireB.uc: -------------------------------------------------------------------------------- 1 | class ScrnKnifeFireB extends ScrnMeleeFire; 2 | 3 | defaultproperties 4 | { 5 | bWaitForRelease = false; 6 | 7 | MeleeDamage=55 8 | DamagedelayMin=0.600000 9 | DamagedelayMax=0.600000 10 | hitDamageClass=Class'KFMod.DamTypeKnife' 11 | MeleeHitSounds(0)=SoundGroup'KF_KnifeSnd.Knife_HitFlesh' 12 | HitEffectClass=Class'KFMod.KnifeHitEffect' 13 | WideDamageMinHitAngle=0.700000 14 | FireAnim="Stab" 15 | FireRate=1.100000 16 | BotRefireRate=1.100000 17 | } -------------------------------------------------------------------------------- /Classes/ScrnNailGunFireMulti.uc: -------------------------------------------------------------------------------- 1 | class ScrnNailGunFireMulti extends ScrnNailGunFire; 2 | 3 | 4 | defaultproperties 5 | { 6 | AmmoPerFire=7 7 | FireRate=0.50 8 | FireAnimRate=1.0 9 | Spread=1750 10 | maxVerticalRecoilAngle=1250 11 | maxHorizontalRecoilAngle=750 12 | KickMomentum=(X=-25.000000) 13 | bFiringDoesntAffectMovement=false` 14 | 15 | FireSoundRef="KF_NailShotgun.NailShotgun_Fire_Single_M" 16 | StereoFireSoundRef="KF_NailShotgun.NailShotgun_Fire_Single_S" 17 | 18 | } 19 | -------------------------------------------------------------------------------- /Classes/ScrnSpeedPawn.uc: -------------------------------------------------------------------------------- 1 | class ScrnSpeedPawn extends ScrnHumanPawn; 2 | 3 | 4 | defaultproperties 5 | { 6 | GroundSpeed=250 7 | WalkingPct=0.60 8 | AirSpeed=400 9 | AirControl=0.35 10 | AccelRate=15000 11 | HealthSpeedModifier=0.00 12 | BaseMeleeIncrease=0.20 13 | WeightSpeedModifier=0.20 14 | MeleeWeightSpeedReduction=5 15 | WeaponWeightSpeedReduction=0 16 | bAllowMacheteBoost=false 17 | TraderSpeedBoost=1.0 18 | MaxFallSpeed=1000 19 | FallingDamageMod=0.5 20 | } -------------------------------------------------------------------------------- /Classes/ScrnBullpupPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnBullpupPickup extends BullpupPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=4.000000 6 | Cost=200 //discount removed for tier 1 weapons in v5.09 7 | ItemName="Mike's Bullpup" 8 | ItemShortName="Mike's Bullpup" 9 | AmmoItemName="5.56x45mm NATO" 10 | Description="If you found Bullpup on a map, then it probably belongs to [REB]Mike1. Mike has more than 1000 gameplay hours in KF by using only a Bullpup." 11 | InventoryType=class'ScrnBullpup' 12 | } 13 | -------------------------------------------------------------------------------- /Classes/ScrnBuyMenuInvListBox.uc: -------------------------------------------------------------------------------- 1 | class ScrnBuyMenuInvListBox extends SRKFBuyMenuInvListBox; 2 | 3 | function InitComponent(GUIController MyController, GUIComponent MyOwner) 4 | { 5 | DefaultListClass=String(class'ScrnBuyMenuInvList'); 6 | //bypass SRBuyMenuSaleListBox here 7 | Super(KFBuyMenuInvListBox).InitComponent(MyController,MyOwner); 8 | } 9 | 10 | function GUIBuyable GetSelectedBuyable() 11 | { 12 | return ScrnBuyMenuInvList(List).GetSelectedBuyable(); 13 | } 14 | 15 | defaultproperties 16 | { 17 | } 18 | -------------------------------------------------------------------------------- /Classes/ScrnThompsonDrumAmmo.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // Thompson DrumMag Ammo. 3 | //============================================================================= 4 | class ScrnThompsonDrumAmmo extends ThompsonDrumAmmo; 5 | 6 | #EXEC OBJ LOAD FILE=KillingFloorHUD.utx 7 | 8 | defaultproperties 9 | { 10 | ItemName=".45 ACP" 11 | MaxAmmo=600 12 | InitialAmount=200 13 | AmmoPickupAmount=50 14 | PickupClass=class'ScrnThompsonDrumAmmoPickup' 15 | } 16 | -------------------------------------------------------------------------------- /Classes/VirusDamage.uc: -------------------------------------------------------------------------------- 1 | class VirusDamage extends DamTypeZombieAttack; 2 | 3 | #exec OBJ LOAD FILE=ScrnTex.utx 4 | 5 | defaultproperties 6 | { 7 | HUDDamageTex=ColorModifier'ScrnTex.HUD.VirusOverlay' 8 | HUDUberDamageTex=ColorModifier'ScrnTex.HUD.VirusOverlay' 9 | HUDTime=5.500000 10 | bArmorStops=false 11 | bLocationalHit=false 12 | bCheckForHeadShots=false 13 | DeathString="%o died from The Virus." 14 | FemaleSuicide="%o died from the Virus." 15 | MaleSuicide="%o died from the Virus." 16 | } 17 | -------------------------------------------------------------------------------- /Configs/ScrnVoting.ini: -------------------------------------------------------------------------------- 1 | [ScrnVotingHandler.ScrnVotingHandlerMut] 2 | # Max voting duration (seconds) 3 | VoteCountDown=30 4 | 5 | # Percent of players to vote "Yes" to pass the vote 6 | VotePercent=51.00 7 | # If timelimit reaches, then vote will be passes if 8 | # percent of "Yes" voters is greater than this value 9 | VotePercentCountDown=49.00 10 | 11 | # If vote fails, then vote initiator is unable to start a 12 | # new vote during this amount of seconds. 13 | # Doesn't apply, if vote failed due to countdown. 14 | VoteCoolDown=30 15 | -------------------------------------------------------------------------------- /Classes/ScrnDualMK23Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDualMK23Pickup extends DualMK23Pickup; 2 | 3 | defaultproperties 4 | { 5 | AmmoCost=14 6 | BuyClipSize=12 7 | AmmoItemName=".45 ACP" 8 | ItemName="Dual MK23 SE" 9 | ItemShortName="Dual MK23 SE" 10 | Description="Two match grade .45 ACP caliber pistols featuring a good balance between power, ammo count, and rate of fire. Damage is near to .44 Magnum but has no bullet overpenetration." 11 | CorrespondingPerkIndex=8 12 | InventoryType=class'ScrnDualMK23Pistol' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnDual44MagnumPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDual44MagnumPickup extends Dual44MagnumPickup; 2 | 3 | defaultproperties 4 | { 5 | cost=300 6 | AmmoCost=20 7 | BuyClipSize=12 8 | Description="A pair of .44 Magnum Pistols - cowboy's favorite choice to clear Wild West for Zed hordes!" 9 | ItemName="Dual .44 Magnums SE" 10 | ItemShortName="Dual .44 SE" 11 | AmmoItemName=".44 Magnum" 12 | CorrespondingPerkIndex=8 13 | InventoryType=class'ScrnDual44Magnum' 14 | Weight=4 15 | MagAmmoRemaining=12 16 | } 17 | -------------------------------------------------------------------------------- /Classes/ScrnHuskGunPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnHuskGunPickup extends HuskGunPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=9.000000 6 | PowerValue=95 7 | SpeedValue=20 8 | RangeValue=65 9 | Description="A fireball cannon ripped from the arm of a dead Husk. Does more damage when charged up. Fully-charged headshot stuns Scrake.|Alternate fire shoots Napalm, burning everything in 12m radius." 10 | ItemName="Husk Gun / Napalm Launcher" 11 | ItemShortName="Husk Gun SE " 12 | InventoryType=class'ScrnHuskGun' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnSPThompsonPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnSPThompsonPickup extends SPThompsonPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=5 6 | cost=750 7 | AmmoCost=16 8 | BuyClipSize=40 9 | Description="Thy weapon is before you. May it's drum beat a sound of terrible fear into your enemies." 10 | ItemName="Steampunk Tommy Gun SE" 11 | ItemShortName="SP Tommy Gun SE" 12 | AmmoItemName=".45 ACP" 13 | CorrespondingPerkIndex=3 14 | EquipmentCategoryID=3 15 | InventoryType=class'ScrnSPThompsonSMG' 16 | } 17 | -------------------------------------------------------------------------------- /Classes/ScrnWelder.uc: -------------------------------------------------------------------------------- 1 | class ScrnWelder extends Welder; 2 | 3 | 4 | simulated function PostBeginPlay() 5 | { 6 | super.PostBeginPlay(); 7 | 8 | bCanThrow = KF_StoryGRI(Level.GRI) != none; // throw knife on dying only in story mode 9 | } 10 | 11 | defaultproperties 12 | { 13 | PickupClass=Class'ScrnWelderPickup' 14 | TraderInfoTexture=Texture'KillingFloorHUD.WeaponSelect.Welder' 15 | ItemName="Welder SE" 16 | 17 | PutDownAnimRate=4.2222 18 | SelectAnimRate=3.5556 19 | BringUpTime=0.15 20 | PutDownTime=0.15 21 | } -------------------------------------------------------------------------------- /Classes/ScrnCombatVestPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnCombatVestPickup extends ScrnVestPickup 2 | notplaceable; 3 | 4 | defaultproperties 5 | { 6 | ShieldCapacity=100 7 | Weight=1.000000 8 | cost=300 9 | PowerValue=50 10 | Description="Kevlar vest. Affords the wearer limited protection from most forms of attack." 11 | LocalizedDescription="Kevlar vest. Affords the wearer limited protection from most forms of attack." 12 | ItemName="Combat Armor" 13 | ItemShortName="Combat Armor" 14 | PickupMessage="You got a Combat Armor" 15 | } 16 | -------------------------------------------------------------------------------- /Classes/ScrnLAWAttachment.uc: -------------------------------------------------------------------------------- 1 | class ScrnLAWattachment extends LAWAttachment; 2 | 3 | var name AttachmentFlashBoneName; 4 | 5 | simulated function DoFlashEmitter() 6 | { 7 | if (mMuzFlash3rd == None) 8 | { 9 | mMuzFlash3rd = Spawn(mMuzFlashClass); 10 | AttachToBone(mMuzFlash3rd, AttachmentFlashBoneName); 11 | } 12 | if(mMuzFlash3rd != None) 13 | mMuzFlash3rd.SpawnParticle(1); 14 | } 15 | 16 | defaultproperties 17 | { 18 | mMuzFlashClass=class'ScrnLAWBackblast' 19 | AttachmentFlashBoneName="ShellPort" 20 | } 21 | -------------------------------------------------------------------------------- /Classes/ScrnTestGame.uc: -------------------------------------------------------------------------------- 1 | class ScrnTestGame extends ScrnGameType; 2 | 3 | event InitGame( string Options, out string Error ) 4 | { 5 | super.InitGame(Options, Error); 6 | 7 | ScrnBalanceMut.SetTestMap(); 8 | } 9 | 10 | function bool IsTestMap() 11 | { 12 | return true; 13 | } 14 | 15 | defaultproperties 16 | { 17 | GameName="ScrN Test Game" 18 | Description="ScrN Floor's modification for test maps" 19 | Acronym="KFT" 20 | MapPrefix="KFT" 21 | MapListType="ScrnBalanceSrv.ScrnTestMapList" 22 | DefaultGameLength=8 23 | } 24 | -------------------------------------------------------------------------------- /Docs/Info/kfed.txt: -------------------------------------------------------------------------------- 1 | Console commands for KFEd (Unreal Editor) 2 | 3 | ZombieVolume Debug (hide lights, all other volumes but ZombieVolume) 4 | -------------------------------------------------- 5 | ACTOR SELECT OFSUBCLASS CLASS=BlockingVolume 6 | ACTOR SELECT OFSUBCLASS CLASS=PhysicsVolume 7 | ACTOR SELECT OFSUBCLASS CLASS=ShopVolume 8 | ACTOR SELECT OFSUBCLASS CLASS=Projector 9 | ACTOR SELECT OFSUBCLASS CLASS=KeyPoint 10 | ACTOR SELECT OFSUBCLASS CLASS=Emitter 11 | ACTOR SELECT OFSUBCLASS CLASS=Light 12 | ACTOR SELECT OFCLASS CLASS=Volume 13 | ACTOR HIDE SELECTED 14 | -------------------------------------------------------------------------------- /Classes/ScrnAxeFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnAxeFire extends ScrnMeleeFire; 2 | 3 | 4 | defaultproperties 5 | { 6 | WideDamageMinHitAngle=0.75 // 0.65 7 | 8 | FireAnims(0)="Fire" 9 | FireAnims(1)="Fire2" 10 | FireAnims(2)="fire3" 11 | FireAnims(3)="Fire4" 12 | MeleeDamage=175 13 | ProxySize=0.150000 14 | weaponRange=90.000000 15 | DamagedelayMin=0.600000 16 | DamagedelayMax=0.600000 17 | hitDamageClass=Class'KFMod.DamTypeAxe' 18 | HitEffectClass=Class'KFMod.AxeHitEffect' 19 | FireRate=1.100000 20 | BotRefireRate=0.850000 21 | } 22 | -------------------------------------------------------------------------------- /Classes/ScrnClaymoreSwordFireB.uc: -------------------------------------------------------------------------------- 1 | class ScrnClaymoreSwordFireB extends ScrnMeleeFire; 2 | 3 | defaultproperties 4 | { 5 | WideDamageMinHitAngle=0.60 6 | 7 | MeleeDamage=320 8 | ProxySize=0.150000 9 | weaponRange=110.000000 10 | DamagedelayMin=0.970000 11 | DamagedelayMax=0.970000 12 | hitDamageClass=Class'KFMod.DamTypeClaymoreSword' 13 | HitEffectClass=Class'KFMod.AxeHitEffect' 14 | MeleeHitSoundRefs(0)="KF_ClaymoreSnd.Claymore_Impact_Flesh" 15 | FireAnim="HardAttack" 16 | FireRate=1.250000 17 | BotRefireRate=1.100000 18 | } 19 | -------------------------------------------------------------------------------- /Classes/ScrnHorzineVestPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnHorzineVestPickup extends ScrnVestPickup 2 | notplaceable; 3 | 4 | defaultproperties 5 | { 6 | ShieldCapacity=200 7 | SpeedModifier=0.100000 8 | Weight=3.000000 9 | cost=1000 10 | PowerValue=100 11 | Description="Grants wearer superior damage protection. Slightly limits movement." 12 | LocalizedDescription="Grants wearer superior damage protection. Slightly limits movement." 13 | ItemName="Horzine Armor" 14 | ItemShortName="Horzine Armor" 15 | PickupMessage="You gots an Horzine Armor" 16 | } 17 | -------------------------------------------------------------------------------- /Classes/ScrnM4203Pickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM4203Pickup extends M4203Pickup; 2 | 3 | defaultproperties 4 | { 5 | cost=1750 6 | BuyClipSize=1 7 | AmmoCost=15 8 | Description="An assault rifle with an attached grenade launcher. Shoots in 3-bullet fixed-burst mode." 9 | ItemName="M4 203 SE" 10 | ItemShortName="M4 203 SE" 11 | AmmoItemName="5.56x45mm NATO" 12 | SecondaryAmmoShortName="-- M203 nades" 13 | PrimaryWeaponPickup=class'ScrnM4203PrimaryPickup' 14 | InventoryType=class'ScrnM4203AssaultRifle' 15 | VariantClasses(0)=none 16 | } 17 | -------------------------------------------------------------------------------- /Classes/ScrnM4203MPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM4203MPickup extends ScrnM4203Pickup; 2 | 3 | defaultproperties 4 | { 5 | cost=2500 6 | BuyClipSize=1 7 | AmmoCost=30 8 | PowerValue=30 9 | Description="An assault rifle with an attached healing grenade launcher. Shoots in 3-bullet fixed-burst mode." 10 | ItemName="M4-203M Medic Rifle" 11 | ItemShortName="M4-203M" 12 | SecondaryAmmoShortName="-- Healing nades" 13 | CorrespondingPerkIndex=0 14 | InventoryType=class'ScrnM4203MMedicGun' 15 | PickupMessage="You got the M4-203M Medic Rifle" 16 | } 17 | -------------------------------------------------------------------------------- /Classes/ScrnM79MPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79MPickup extends M79Pickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=3.000000 6 | cost=500 // no more perk discount 7 | AmmoCost=30 8 | BuyClipSize=1 9 | PowerValue=0 10 | Description="A classic Vietnam era grenade launcher. Modified to launch healing grenades." 11 | ItemName="Medic Grenade Launcher" 12 | ItemShortName="Medic GL" 13 | AmmoItemName="Healing Grenades" 14 | CorrespondingPerkIndex=0 15 | InventoryType=class'ScrnM79M' 16 | PickupMessage="You got the Medic Grenade Launcher." 17 | } 18 | -------------------------------------------------------------------------------- /Classes/ScrnMainMessages.uc: -------------------------------------------------------------------------------- 1 | class ScrnMainMessages extends KFMainMessages 2 | abstract; 3 | 4 | var(Message) localized string msgAmmoFull; 5 | 6 | static function string GetString(optional int Switch, optional PlayerReplicationInfo RelatedPRI_1, 7 | optional PlayerReplicationInfo RelatedPRI_2, optional Object OptionalObject ) 8 | { 9 | switch (Switch) { 10 | case 10: return default.msgAmmoFull; 11 | } 12 | return super.GetString(Switch, RelatedPRI_1, RelatedPRI_2, OptionalObject); 13 | } 14 | 15 | defaultproperties 16 | { 17 | msgAmmoFull="Ammo Full" 18 | } 19 | -------------------------------------------------------------------------------- /Classes/ScrnSettingsPage.uc: -------------------------------------------------------------------------------- 1 | class ScrnSettingsPage extends KFSettingsPage; 2 | 3 | var int ControlsTabIndex; 4 | 5 | function GotoScrnSettings() 6 | { 7 | local ScrnTab_Controls tabControls; 8 | 9 | tabControls = ScrnTab_Controls(c_Tabs.TabStack[ControlsTabIndex].myPanel); 10 | if (tabControls == none) 11 | return; 12 | 13 | c_Tabs.ActivateTab(c_Tabs.TabStack[ControlsTabIndex], true); 14 | tabControls.SelectScrnKeyBindings(); 15 | } 16 | 17 | 18 | defaultproperties 19 | { 20 | ControlsTabIndex = 3; 21 | PanelClass(3)="ScrnBalanceSrv.ScrnTab_Controls" 22 | } -------------------------------------------------------------------------------- /Classes/ScrnM4203PrimaryPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnM4203PrimaryPickup extends ScrnM4Pickup; 2 | 3 | defaultproperties 4 | { 5 | cost=1750 6 | BuyClipSize=30 7 | AmmoCost=15 8 | Description="An assault rifle with an attached grenade launcher. Shoots in 3-bullet fixed-burst mode." 9 | ItemName="M4 203 SE" 10 | ItemShortName="M4 203 SE" 11 | AmmoItemName="5.56x45mm NATO" 12 | SecondaryAmmoShortName="-- M203 nades" 13 | PrimaryWeaponPickup=Class'ScrnM4203PrimaryPickup' 14 | InventoryType=Class'ScrnM4203AssaultRifle' 15 | VariantClasses(0)=none 16 | } 17 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeSniperBase.uc: -------------------------------------------------------------------------------- 1 | //default damage type for Sharpshooter 2 | 3 | class ScrnDamTypeSniperBase extends KFProjectileWeaponDamageType 4 | abstract; 5 | 6 | defaultproperties 7 | { 8 | bSniperWeapon=True 9 | DeathString="%k killed %o." 10 | FemaleSuicide="%o shot herself in the foot." 11 | MaleSuicide="%o shot himself in the foot." 12 | bRagdollBullet=True 13 | bBulletHit=True 14 | FlashFog=(X=600.000000) 15 | KDamageImpulse=4500.000000 16 | KDeathVel=200.000000 17 | KDeathUpKick=20.000000 18 | VehicleDamageScaling=0.800000 19 | } 20 | -------------------------------------------------------------------------------- /Classes/ScrnScytheFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnScytheFire extends ScrnMeleeFire; 2 | 3 | defaultproperties 4 | { 5 | hitDamageClass=class'ScrnDamTypeScythe' 6 | FireAnims(0)="Fire1" 7 | FireAnims(1)="Fire2" 8 | FireAnims(2)="Fire2" 9 | FireAnims(3)="Fire4" 10 | 11 | MeleeDamage=260 12 | weaponRange=105 13 | WideDamageMinHitAngle=0.5 // 120 degree angle: cos(120/2)=0.5 14 | 15 | ProxySize=0.150000 16 | DamagedelayMin=0.650000 17 | DamagedelayMax=0.650000 18 | HitEffectClass=Class'KFMod.ScytheHitEffect' 19 | FireRate=1.200000 20 | BotRefireRate=0.850000 21 | } 22 | -------------------------------------------------------------------------------- /Classes/ScrnAxe.uc: -------------------------------------------------------------------------------- 1 | class ScrnAxe extends Axe; 2 | 3 | defaultproperties 4 | { 5 | bIsTier2Weapon=False 6 | FireModeClass(0)=class'ScrnAxeFire' 7 | FireModeClass(1)=class'ScrnAxeFireB' 8 | PickupClass=class'ScrnAxePickup' 9 | ItemName="Axe SE" 10 | 11 | HudImageRef="KillingFloorHUD.WeaponSelect.axe_unselected" 12 | SelectedHudImageRef="KillingFloorHUD.WeaponSelect.Axe" 13 | SelectSoundRef="KF_AxeSnd.Axe_Select" 14 | MeshRef="KF_Weapons_Trip.Axe_Trip" 15 | SkinRefs(0)="KF_Weapons_Trip_T.melee.axe_cmb" 16 | BloodyMaterialRef="KF_Weapons_Trip_T.melee.axe_bloody_cmb" 17 | } 18 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDefaultSupportBase.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDefaultSupportBase extends KFProjectileWeaponDamageType 2 | abstract; 3 | 4 | 5 | defaultproperties 6 | { 7 | bIsPowerWeapon=True 8 | WeaponClass=Class'KFMod.Shotgun' 9 | DeathString="%k killed %o (Shotgun)." 10 | FemaleSuicide="%o shot herself in the foot." 11 | MaleSuicide="%o shot himself in the foot." 12 | bRagdollBullet=True 13 | bBulletHit=True 14 | FlashFog=(X=600.000000) 15 | KDamageImpulse=10000.000000 16 | KDeathVel=300.000000 17 | KDeathUpKick=100.000000 18 | VehicleDamageScaling=0.700000 19 | } -------------------------------------------------------------------------------- /Classes/ScrnThompsonIncPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnThompsonIncPickup extends ThompsonPickup; 2 | 3 | defaultproperties 4 | { 5 | InventoryType=class'ScrnThompsonInc' 6 | 7 | Weight=5 8 | cost=1100 9 | AmmoCost=10 10 | BuyClipSize=20 11 | Description="The Thompson sub-machine gun. An absolute classic of design and functionality, beloved by soldiers and gangsters for decades!" 12 | ItemName="Tommy Gun Incendiary SE" 13 | ItemShortName="Tommy Gun Inc. SE" 14 | CorrespondingPerkIndex=5 15 | EquipmentCategoryID=3 16 | PickupMessage="You got the Incendiary Tommy Gun" 17 | } 18 | -------------------------------------------------------------------------------- /Classes/ScrnGUI.uc: -------------------------------------------------------------------------------- 1 | // Generic GUI Helpers 2 | class ScrnGUI extends Object abstract; 3 | 4 | 5 | static final function bool IsReady(GUIComponent Item) 6 | { 7 | return Item.bVisible && Item.MenuState != MSAT_Disabled; 8 | } 9 | 10 | static final function ButtonEnable(GUIButton Button, bool bEnable) 11 | { 12 | if (bEnable) { 13 | Button.EnableMe(); 14 | } 15 | else { 16 | Button.DisableMe(); 17 | } 18 | } 19 | 20 | static final function bool ButtonClick(GUIButton Button) 21 | { 22 | if (!IsReady(Button)) 23 | return false; 24 | 25 | return Button.OnClick(Button); 26 | } -------------------------------------------------------------------------------- /Classes/ScrnZapFunc.uc: -------------------------------------------------------------------------------- 1 | class ScrnZapFunc extends ScrnExplosiveFunc abstract; 2 | 3 | static function DealDamage(Projectile Proj, Actor Victim, int Damage, vector HitLocation, vector Momentum, 4 | class DamageType) 5 | { 6 | local KFMonster M; 7 | 8 | M = KFMonster(Victim); 9 | if (M != none) { 10 | // ignore damage scale and always apply full zap 11 | M.SetZapped(Proj.Damage * 0.01, Proj.Instigator); 12 | if (M.bZapped) { 13 | // longer stay in zapped state after the explosion 14 | M.RemainingZap *= 1.50; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Classes/ScrnLAWFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnLAWFire extends LAWFire; 2 | 3 | 4 | function bool AllowFire() 5 | { 6 | if (Weapon.Level.NetMode != NM_DedicatedServer && Instigator != none 7 | && Instigator.IsHumanControlled() && Instigator.IsLocallyControlled()) 8 | { 9 | if (!KFWeapon(Weapon).bAimingRifle || KFWeapon(Weapon).bZoomingIn) { 10 | return false; 11 | } 12 | } 13 | return Weapon.AmmoAmount(ThisModeNum) >= AmmoPerFire; 14 | } 15 | 16 | 17 | defaultproperties 18 | { 19 | AmmoClass=class'ScrnLAWAmmo' 20 | ProjectileClass=class'ScrnLAWProj' 21 | } 22 | -------------------------------------------------------------------------------- /Classes/ScrnBoomStickPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnBoomStickPickup extends BoomStickPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=8 6 | cost=1000 7 | AmmoCost=45 8 | Description="This is my BOOMstick (c) Ash, Evil Dead - Army of Darkness, 1992.|Has been used through the centuries to hunt down Demons, Aliens and Zombies. Now it's time for the ZEDs.|Can shoot from one or two barrels simultaneousely. Single shell reload is avaliable." 9 | ItemName="Ash's Boomstick" 10 | ItemShortName="Ash's Boomstick" 11 | PickupMessage="You got the Ash's Boomstick." 12 | InventoryType=class'ScrnBoomStick' 13 | } 14 | -------------------------------------------------------------------------------- /Classes/ScrnM79IncGrenadeProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnM79IncGrenadeProjectile extends ScrnM79GrenadeProjectile; 2 | 3 | simulated function ProcessExplosionFX(Emitter Explosion) 4 | { 5 | Explosion.SetRotation(rotator(vect(0,0,1))); 6 | } 7 | 8 | 9 | defaultproperties 10 | { 11 | Func=class'ScrnExplosiveFunc_Burn' 12 | SmokeTrailClass=class'ScrnFlameNadeTrail' 13 | ArmDistSquared=2500.000000 14 | ImpactDamage=50 15 | ExplosionSoundRef="KF_GrenadeSnd.FlameNade_Explode" 16 | ExplosionSoundVolume=200 17 | ExplosionClass=Class'KFIncendiaryExplosion' 18 | Damage=60 19 | MyDamageType=Class'KFMod.DamTypeFlameNade' 20 | } 21 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeSPThompson.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeSPThompson extends DamTypeSPThompson 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // Count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('ZombieStalker') || Killed.IsA('Shiver') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | } 12 | 13 | 14 | defaultproperties 15 | { 16 | WeaponClass=class'ScrnSPThompsonSMG' 17 | } -------------------------------------------------------------------------------- /Classes/ScrnDual44MagnumLaserPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDual44MagnumLaserPickup extends ScrnDual44MagnumPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=5 6 | AmmoCost=30 7 | BuyClipSize=12 8 | cost=2000 9 | Description="Yeah! One in each hand! These Magnums have Laser Sights and .44 Armor-Piercing rounds featuring great bullet overpenetration and piercing Fleshpound armor." 10 | ItemName="Laser Dual .44 AP Magnums" 11 | ItemShortName="Laser Dual .44 AP" 12 | InventoryType=class'ScrnDual44MagnumLaser' 13 | PickupMessage="You found Laser-Sighted Dual .44 AP Magnums" 14 | UV2Texture=FadeColor'ScrnTex.Laser.PickupOverlay' 15 | } 16 | -------------------------------------------------------------------------------- /Classes/ScrnObjMapAchievements.uc: -------------------------------------------------------------------------------- 1 | Class ScrnObjMapAchievements extends ScrnMapAchievements 2 | abstract; 3 | 4 | 5 | defaultproperties 6 | { 7 | UniversalDescriptions(0)="Survive on %m in Objective Mode on Normal Difficulty or above" 8 | UniversalDescriptions(1)="Survive on %m in Objective Mode on Hard Difficulty or above" 9 | UniversalDescriptions(2)="Survive on %m in Objective Mode on Suicidal Difficulty or above" 10 | UniversalDescriptions(3)="Survive on %m in Objective Mode on HoE Difficulty" 11 | 12 | UniversalFilters(0)=0 13 | UniversalFilters(1)=0 14 | UniversalFilters(2)=0 15 | UniversalFilters(3)=0 16 | } -------------------------------------------------------------------------------- /Classes/ScrnAchMutator.uc: -------------------------------------------------------------------------------- 1 | class ScrnAchMutator extends ScrnMutator 2 | abstract; 3 | 4 | var bool bKillMe; 5 | var class AchClass; 6 | var class AchHandler; 7 | 8 | 9 | function PostBeginPlay() 10 | { 11 | super.PostBeginPlay(); 12 | if ( bDeleteMe ) 13 | return; 14 | 15 | class'ScrnAchCtrl'.static.RegisterAchievements(AchClass); 16 | if ( AchHandler != none ) { 17 | Level.Game.Spawn(AchHandler); 18 | } 19 | if ( bKillMe ) { 20 | RegisterPostMortem(); 21 | } 22 | } 23 | 24 | 25 | defaultproperties 26 | { 27 | bAddToServerPackages=true 28 | bKillMe=true 29 | } 30 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeThompsonDrum.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeThompsonDrum extends DamTypeThompsonDrum 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // Count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('ZombieStalker') || Killed.IsA('Shiver') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | } 12 | 13 | 14 | defaultproperties 15 | { 16 | WeaponClass=Class'KFMod.ThompsonDrumSMG' 17 | } -------------------------------------------------------------------------------- /Classes/ScrnShotgunFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnShotgunFire extends ShotgunFire; 2 | 3 | simulated function bool AllowFire() 4 | { 5 | local KFPawn KFP; 6 | 7 | KFP = KFPawn(Instigator); 8 | 9 | if( KFWeap.bIsReloading && KFWeap.MagAmmoRemaining < AmmoPerFire) 10 | return false; 11 | 12 | if ( KFP.SecondaryItem != none || KFP.bThrowingNade ) 13 | return false; 14 | 15 | if ( Level.TimeSeconds - LastClickTime > FireRate ) 16 | LastClickTime = Level.TimeSeconds; 17 | 18 | return super(WeaponFire).AllowFire(); 19 | } 20 | 21 | defaultproperties 22 | { 23 | ProjectileClass=class'ScrnShotgunBullet' 24 | AmmoPerFire=1 25 | } 26 | -------------------------------------------------------------------------------- /Classes/FscGame.uc: -------------------------------------------------------------------------------- 1 | class FscGame extends FtgGame 2 | config; 3 | 4 | defaultproperties 5 | { 6 | GameName="FTG Survival Competition" 7 | Description="FTG+TSC: Follow The Guardian + Team Survival Competition combined into one game." 8 | ScreenShotName="TSC_T.Team.BritishLogo" 9 | 10 | DefaultGameLength=40 11 | bSingleTeamGame=false 12 | bUseEndGameBoss=false 13 | MinBaseZ=-60 14 | MaxBaseZ=200 15 | PlayerKillScore=250 16 | 17 | ScoreBoardType="ScrnBalanceSrv.TSCScoreBoard" 18 | BaseGuardianClasses(0)=class'FtgBaseGuardianRed' 19 | BaseGuardianClasses(1)=class'FtgBaseGuardianBlue' 20 | StinkyClass=class'StinkyClot' 21 | } 22 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeBullpup.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeBullpup extends DamTypeBullpup 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // v4.59 - count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('Shiver') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | else 12 | super.AwardKill(KFStatsAndAchievements, Killer, Killed); 13 | } 14 | 15 | defaultproperties 16 | { 17 | WeaponClass=class'ScrnBullpup' 18 | } 19 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeM4AssaultRifle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeM4AssaultRifle extends DamTypeM4AssaultRifle 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // v4.59 - count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('Shiver') || Killed.IsA('ZombieStalker') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | } 12 | 13 | defaultproperties 14 | { 15 | HeadShotDamageMult=1.60 16 | WeaponClass=Class'ScrnM4AssaultRifle' 17 | } 18 | -------------------------------------------------------------------------------- /Classes/ScrnGUICheckBoxButton.uc: -------------------------------------------------------------------------------- 1 | class ScrnGUICheckBoxButton extends GUICheckBoxButton; 2 | 3 | defaultproperties 4 | { 5 | CheckedOverlay(0)=Texture'KF_InterfaceArt_tex.Menu.Checkbox' // checked 6 | CheckedOverlay(1)=Texture'KF_InterfaceArt_tex.Menu.checkbox_highlight' // checked, mouse over 7 | CheckedOverlay(2)=Texture'KF_InterfaceArt_tex.Menu.checkbox_highlight' // checked, focused 8 | CheckedOverlay(3)=Texture'KF_InterfaceArt_tex.Menu.checkbox_dark' // checked, clicked 9 | CheckedOverlay(4)=Texture'KF_InterfaceArt_tex.Menu.checkbox_dark' // checked, disabled 10 | ImageIndex=0 11 | bAllOverlay=False 12 | StyleName="CheckBox" 13 | } -------------------------------------------------------------------------------- /Classes/ScrnKatanaFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnKatanaFire extends ScrnMeleeFire; 2 | 3 | defaultproperties 4 | { 5 | WideDamageMinHitAngle=0.000000 6 | bWaitForRelease=False 7 | 8 | FireAnims(0)="Fire" 9 | FireAnims(1)="Fire2" 10 | FireAnims(2)="fire3" 11 | FireAnims(3)="Fire4" 12 | FireAnims(4)="Fire5" 13 | FireAnims(5)="Fire6" 14 | MeleeDamage=135 15 | ProxySize=0.150000 16 | weaponRange=95.000000 17 | DamagedelayMin=0.320000 18 | DamagedelayMax=0.320000 19 | hitDamageClass=Class'KFMod.DamTypeKatana' 20 | HitEffectClass=Class'KFMod.AxeHitEffect' 21 | MeleeHitSoundRefs(0)="KF_KatanaSnd.Katana_HitFlesh" 22 | FireRate=0.670000 23 | BotRefireRate=0.850000 24 | } 25 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeAK47AssaultRifle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeAK47AssaultRifle extends DamTypeAK47AssaultRifle 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // v4.59 - count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('Shiver') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | else 12 | super.AwardKill(KFStatsAndAchievements, Killer, Killed); 13 | } 14 | 15 | defaultproperties 16 | { 17 | WeaponClass=class'ScrnAK47AssaultRifle' 18 | } 19 | -------------------------------------------------------------------------------- /Classes/ScrnMachetePickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnMachetePickup extends MachetePickup; 2 | 3 | // Fixed "Accessed none: Inventory" warning in KFWeaponPickup. This should be copied into all pickup classes. 4 | function Destroyed() 5 | { 6 | if ( bDropped && Inventory != none && KFGameType(Level.Game) != none ) 7 | KFGameType(Level.Game).WeaponDestroyed(class(Inventory.Class)); 8 | 9 | super(WeaponPickup).Destroyed(); 10 | } 11 | 12 | defaultproperties 13 | { 14 | cost=100 15 | ItemName="Machete SE" 16 | ItemShortName="Machete SE" 17 | InventoryType=class'ScrnMachete' 18 | CorrespondingPerkIndex=7 19 | 20 | CollisionRadius=30 21 | CollisionHeight=20 22 | PrePivot=(Z=20) 23 | } 24 | -------------------------------------------------------------------------------- /Classes/ToiletPaper.uc: -------------------------------------------------------------------------------- 1 | class ToiletPaper extends ScrnSecondaryItem; 2 | 3 | defaultproperties 4 | { 5 | TraderInfoTexture=Texture'ScrnTex.HUD.TP' 6 | HudImage=Texture'ScrnTex.HUD.TP' 7 | SelectedHudImage=Texture'ScrnTex.HUD.TP' 8 | 9 | ItemName="Toilet Paper" 10 | Description="Toilet Paper. Rumors say that it somehow helps to survive the Virus Outbreak. Who knows? At least you will die with the clean butt." 11 | 12 | PickupClass=class'ToiletPaperPickup' 13 | FireModeClass(0)=class'ToiletPaperFire' 14 | 15 | // placeholders 16 | AttachmentClass=Class'KFMod.FragAttachment' 17 | Mesh=SkeletalMesh'KF_Weapons_Trip.Frag_Trip' 18 | Skins(0)=Shader'KillingFloorWeapons.Frag_Grenade.FragShader' 19 | } 20 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeMKb42AssaultRifle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeMKb42AssaultRifle extends DamTypeMKb42AssaultRifle 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // v4.59 - count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('Shiver') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | else 12 | super.AwardKill(KFStatsAndAchievements, Killer, Killed); 13 | } 14 | 15 | defaultproperties 16 | { 17 | WeaponClass=class'ScrnMKb42AssaultRifle' 18 | } 19 | 20 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeFlareProjectileImpact.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeFlareProjectileImpact extends DamTypeFlareProjectileImpact; 2 | 3 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 4 | KFMonster Killed ) 5 | { 6 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 7 | } 8 | 9 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 10 | bool bLSM14Kill) 11 | { 12 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 13 | } 14 | 15 | defaultproperties 16 | { 17 | HeadShotDamageMult=2.0 18 | } 19 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeSCARMK17AssaultRifle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeSCARMK17AssaultRifle extends DamTypeSCARMK17AssaultRifle 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // v4.59 - count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('Shiver') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | else 12 | super.AwardKill(KFStatsAndAchievements, Killer, Killed); 13 | } 14 | 15 | defaultproperties 16 | { 17 | WeaponClass=class'ScrnSCARMK17AssaultRifle' 18 | } 19 | -------------------------------------------------------------------------------- /Classes/ScrnClaymoreSwordFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnClaymoreSwordFire extends ScrnMeleeFire; 2 | 3 | defaultproperties 4 | { 5 | MeleeDamage=210 6 | weaponRange=110.000000 7 | DamagedelayMin=0.570000 8 | DamagedelayMax=0.570000 9 | WideDamageMinHitAngle=0.833333 10 | FireAnimRate=1.105263 11 | FireRate=0.950000 12 | 13 | FireAnims(0)="Fire" 14 | FireAnims(1)="Fire2" 15 | FireAnims(2)="fire3" 16 | FireAnims(3)="Fire4" 17 | FireAnims(4)="Fire5" 18 | FireAnims(5)="Fire6" 19 | ProxySize=0.150000 20 | hitDamageClass=Class'KFMod.DamTypeClaymoreSword' 21 | HitEffectClass=Class'KFMod.AxeHitEffect' 22 | MeleeHitSoundRefs(0)="KF_ClaymoreSnd.Claymore_Impact_Flesh" 23 | BotRefireRate=1.000000 24 | } 25 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeFNFALAssaultRifle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeFNFALAssaultRifle extends DamTypeFNFALAssaultRifle 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // v4.59 - count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('Shiver') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | else 12 | super.AwardKill(KFStatsAndAchievements, Killer, Killed); 13 | } 14 | 15 | defaultproperties 16 | { 17 | HeadShotDamageMult=1.75 18 | WeaponClass=class'ScrnFNFAL_ACOG_AssaultRifle' 19 | } 20 | -------------------------------------------------------------------------------- /Classes/ScrnExplosiveFunc_Burn.uc: -------------------------------------------------------------------------------- 1 | class ScrnExplosiveFunc_Burn extends ScrnExplosiveFunc abstract; 2 | 3 | static function DealDamage(Projectile Proj, Actor Victim, int Damage, vector HitLocation, vector Momentum, 4 | class DamageType) 5 | { 6 | local KFMonster Zed; 7 | 8 | Zed = KFMonster(Victim); 9 | 10 | 11 | if ( Zed != none && class'ScrnBalance'.default.Mut.BurnMech != none) { 12 | class'ScrnBalance'.default.Mut.BurnMech.MakeBurnDamage(Zed, Damage, Proj.Instigator, Hitlocation, Momentum, 13 | DamageType); 14 | } 15 | else { 16 | super.DealDamage(Proj, Victim, Damage, Hitlocation, Momentum, DamageType); 17 | } 18 | 19 | Victim.TakeDamage(Damage, Proj.Instigator, HitLocation, Momentum, DamageType); 20 | } 21 | -------------------------------------------------------------------------------- /Classes/ScrnPrepareToFightMsg.uc: -------------------------------------------------------------------------------- 1 | class ScrnPrepareToFightMsg extends ScrnWaitingFontMsg; 2 | 3 | var(Message) array Messages; 4 | 5 | 6 | static function string GetString( 7 | optional int sw, 8 | optional PlayerReplicationInfo RelatedPRI_1, 9 | optional PlayerReplicationInfo RelatedPRI_2, 10 | optional Object OptionalObject 11 | ) 12 | { 13 | return default.Messages[sw]; 14 | } 15 | 16 | 17 | defaultproperties 18 | { 19 | DrawColor=(R=200,G=0,B=0,A=255) 20 | DrawPivot=DP_MiddleMiddle 21 | PosX=0.500000 22 | PosY=0.70 23 | FontSize=0 24 | bIsConsoleMessage=false 25 | bFadeMessage=true 26 | LifeTime=3 27 | 28 | Messages(0)="FIGHT" 29 | Messages(1)="1..." 30 | Messages(2)="2..." 31 | Messages(3)="3..." 32 | Messages(4)="PREPARE TO FIGHT..." 33 | } -------------------------------------------------------------------------------- /Docs/TODO.md: -------------------------------------------------------------------------------- 1 | # ScrN To-Do List 2 | 3 | ## Ready for testing 4 | - ScrnStoryGame use ScrnZedInfo 5 | 6 | 7 | ## Features 8 | - **ScrN SQL Server** 9 | - **A Blank Page** 10 | - bSharedAmmoPool 11 | - Check Murphy's maps why they crashing dedicated servers. 12 | 13 | ## Improvements 14 | - Custom dialogs in ScrnWaves.ini 15 | ? Healing message to patient 16 | ? Xbow / VSS scope zoom when gun switching 17 | - Suicide Timer for FTG 18 | - AssessThreatTo - target first attacker 19 | - Pat RotationRate faster when meleeing 20 | ? Fire Effects - dynamic lights 21 | - Teamwork: ARAP - decapitate FP with 2+ Armor-Piercing Assault Rifles 22 | - HMG cheevos 23 | 24 | ## QoL 25 | - Move localized string parsing client-side to use client's localization instead of server's. 26 | 27 | ## Bugs 28 | - Something is wrong with burst fire during zed time 29 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeFlareRevolverImpact.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeFlareRevolverImpact extends ScrnDamTypeFlareProjectileImpact; 2 | 3 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 4 | { 5 | local SRStatsBase stats; 6 | local KFPlayerReplicationInfo KFPRI; 7 | 8 | KFPRI = KFPlayerReplicationInfo(Killer.PlayerReplicationInfo); 9 | stats = SRStatsBase(KFStatsAndAchievements); 10 | if( stats !=None && stats.Rep!=None && KFPRI != none 11 | && ClassIsChildOf(KFPRI.ClientVeteranSkill, class'ScrnVetGunslinger') ) 12 | { 13 | // add gunslinger progress only when played as gunslinger 14 | stats.Rep.ProgressCustomValue(Class'ScrnPistolKillProgress',1); 15 | } 16 | } 17 | 18 | defaultproperties 19 | { 20 | HeadShotDamageMult=2.0 21 | } 22 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeWinchester.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeWinchester extends DamTypeWinchester 2 | abstract; 3 | 4 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 5 | { 6 | local SRStatsBase stats; 7 | local KFPlayerReplicationInfo KFPRI; 8 | 9 | KFPRI = KFPlayerReplicationInfo(Killer.PlayerReplicationInfo); 10 | stats = SRStatsBase(KFStatsAndAchievements); 11 | if( stats !=None && stats.Rep!=None && KFPRI != none 12 | && ClassIsChildOf(KFPRI.ClientVeteranSkill, class'ScrnVetGunslinger') ) 13 | { 14 | // add gunslinger progress only when played as gunslinger 15 | stats.Rep.ProgressCustomValue(Class'ScrnPistolKillProgress',1); 16 | } 17 | } 18 | 19 | defaultproperties 20 | { 21 | WeaponClass=class'ScrnWinchester' 22 | } 23 | -------------------------------------------------------------------------------- /Classes/ScrnAchievementsListBox.uc: -------------------------------------------------------------------------------- 1 | class ScrnAchievementsListBox extends GUIListBoxBase; 2 | 3 | var ScrnAchievementsList List; 4 | 5 | function InitComponent(GUIController MyController, GUIComponent MyOwner) 6 | { 7 | Super.InitComponent(MyController,MyOwner); 8 | 9 | if ( DefaultListClass != "" ) 10 | { 11 | List = ScrnAchievementsList(AddComponent(DefaultListClass)); 12 | if ( List == none ) 13 | { 14 | log(Class$".InitComponent - Could not create default list ["$DefaultListClass$"]"); 15 | return; 16 | } 17 | } 18 | 19 | if ( List == none ) 20 | { 21 | Warn("Could not initialize list!"); 22 | return; 23 | } 24 | 25 | InitBaseList(List); 26 | } 27 | 28 | defaultproperties 29 | { 30 | DefaultListClass="ScrnBalanceSrv.ScrnAchievementsList" 31 | } 32 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeFlareRevolver.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeFlareRevolver extends ScrnDamTypeFlare 2 | abstract; 3 | 4 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 5 | { 6 | local SRStatsBase stats; 7 | local KFPlayerReplicationInfo KFPRI; 8 | 9 | KFPRI = KFPlayerReplicationInfo(Killer.PlayerReplicationInfo); 10 | stats = SRStatsBase(KFStatsAndAchievements); 11 | if( stats !=None && stats.Rep!=None && KFPRI != none 12 | && ClassIsChildOf(KFPRI.ClientVeteranSkill, class'ScrnVetGunslinger') ) 13 | { 14 | // add gunslinger progress only when played as gunslinger 15 | stats.Rep.ProgressCustomValue(Class'ScrnPistolKillProgress',1); 16 | } 17 | } 18 | 19 | defaultproperties 20 | { 21 | WeaponClass=class'ScrnFlareRevolver' 22 | } 23 | -------------------------------------------------------------------------------- /Classes/ScrnThompsonDrumPickup.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // ThompsonDrum Pickup. 3 | //============================================================================= 4 | class ScrnThompsonDrumPickup extends ThompsonDrumPickup; 5 | 6 | defaultproperties 7 | { 8 | InventoryType=class'ScrnThompsonDrum' 9 | 10 | Weight=6 11 | cost=2000 12 | AmmoCost=24 13 | BuyClipSize=50 14 | PowerValue=35 15 | SpeedValue=80 16 | RangeValue=45 17 | Description="This Tommy gun with a drum magazine was used heavily during the WWII pacific battles as seen in Rising Storm." 18 | ItemName="RS Tommy Gun SE" 19 | ItemShortName="RS Tommy Gun SE" 20 | AmmoItemName=".45 ACP" 21 | EquipmentCategoryID=3 22 | PickupMessage="You got the RS Thompson with Drum Mag" 23 | } 24 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeCommandoBase.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeCommandoBase extends KFProjectileWeaponDamageType 2 | abstract; 3 | 4 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 5 | { 6 | if( Killed.IsA('ZombieStalker') || Killed.IsA('Shiver') ) 7 | KFStatsAndAchievements.AddStalkerKill(); 8 | } 9 | 10 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 11 | { 12 | KFStatsAndAchievements.AddBullpupDamage(Amount); 13 | } 14 | 15 | defaultproperties 16 | { 17 | DeathString="%k killed %o (Assault Rifle)." 18 | FemaleSuicide="%o shot herself in the foot." 19 | MaleSuicide="%o shot himself in the foot." 20 | bRagdollBullet=True 21 | KDamageImpulse=1500.000000 22 | KDeathVel=110.000000 23 | KDeathUpKick=2.000000 24 | } -------------------------------------------------------------------------------- /Classes/ToiletPaperPickup.uc: -------------------------------------------------------------------------------- 1 | class ToiletPaperPickup extends KFWeaponPickup; 2 | 3 | defaultproperties 4 | { 5 | Weight=0 6 | Cost=5 7 | AmmoCost=5 8 | BuyClipSize=1 9 | Description="Toilet Paper. Rumors say that it somehow helps to survive the Virus Outbreak. Who knows? At least you will die with the clean butt." 10 | ItemName="Toilet Paper" 11 | ItemShortName="Toilet Paper" 12 | AmmoItemName="TP Rolls" 13 | EquipmentCategoryID=4 14 | InventoryType=class'ToiletPaper' 15 | PickupMessage="You got Toilet Paper" 16 | CorrespondingPerkIndex=7 17 | 18 | // placeholder 19 | AmmoMesh=StaticMesh'KillingFloorStatics.FragPickup' 20 | PickupSound=Sound'KF_GrenadeSnd.Nade_Pickup' 21 | StaticMesh=StaticMesh'KF_pickups_Trip.explosive.Frag_pickup' 22 | CollisionRadius=10.000000 23 | CollisionHeight=10.000000 24 | } 25 | -------------------------------------------------------------------------------- /Configs/ScrnUserZeds.sample: -------------------------------------------------------------------------------- 1 | ######################################################################################################################## 2 | # A sample of user ZED definition file 3 | # ScrnUserZeds.ini is loaded if ALL requirements below are met: 4 | # 1. bUserGames=true in ScrnBalanceSrv.ini 5 | # 2. Game length is between 100 and 199 (a user game) 6 | # 3. bUserZeds=true in the respective ScrnUserGameLength object (ScrnUserGames.ini) 7 | # 8 | # NB! 9 | # - ScrnZeds.ini stores ScrnZedInfo objects 10 | # - ScrnUserZeds.ini stores ScrnUserZedInfo objects 11 | # 12 | # ScrnUserZedInfo and ScrnZedInfo objects are identical. 13 | # See ScrnZeds.ini for more info. 14 | ######################################################################################################################## 15 | 16 | [UserZeds ScrnUserZedInfo] 17 | Zeds=(Alias="CL",ZedClass="ScrnZedPack.Clot") 18 | -------------------------------------------------------------------------------- /Classes/ScrnTraderRequirementsListBox.uc: -------------------------------------------------------------------------------- 1 | class ScrnTraderRequirementsListBox extends GUIListBoxBase; 2 | 3 | var ScrnTraderRequirementsList List; 4 | 5 | function InitComponent(GUIController MyController, GUIComponent MyOwner) 6 | { 7 | Super.InitComponent(MyController,MyOwner); 8 | 9 | if ( DefaultListClass != "" ) 10 | { 11 | List = ScrnTraderRequirementsList(AddComponent(DefaultListClass)); 12 | if ( List == none ) 13 | { 14 | log(Class$".InitComponent - Could not create default list ["$DefaultListClass$"]"); 15 | return; 16 | } 17 | } 18 | 19 | if ( List == none ) 20 | { 21 | Warn("Could not initialize list!"); 22 | return; 23 | } 24 | 25 | InitBaseList(List); 26 | } 27 | 28 | 29 | 30 | defaultproperties 31 | { 32 | DefaultListClass="ScrnBalanceSrv.ScrnTraderRequirementsList" 33 | } 34 | -------------------------------------------------------------------------------- /Configs/ScrnUserWaves.sample: -------------------------------------------------------------------------------- 1 | ######################################################################################################################## 2 | # A sample of user WAVE definition file 3 | # ScrnUserWaves.ini is loaded if ALL requirements below are met: 4 | # 1. bUserGames=true in ScrnBalanceSrv.ini 5 | # 2. Game length is between 100 and 199 (a user game) 6 | # 3. bUserWaves=true in the respective ScrnUserGameLength object (ScrnUserGames.ini) 7 | # 8 | # NB! 9 | # - ScrnWaves.ini stores ScrnWaveInfo objects 10 | # - ScrnUserWaves.ini stores ScrnUserWaveInfo objects 11 | # 12 | # ScrnUserWaveInfo and ScrnWaveInfo objects are identical. 13 | # See ScrnWaves.ini for more info. 14 | ######################################################################################################################## 15 | 16 | [UserWave1 ScrnUserWaveInfo] 17 | Message=User wave example 18 | Squads=4*CL 19 | -------------------------------------------------------------------------------- /Classes/ScrnM99SniperRifle.uc: -------------------------------------------------------------------------------- 1 | class ScrnM99SniperRifle extends M99SniperRifle; 2 | 3 | //disable skipping realod animation 4 | //v4.39 - you need to reload, but can skip aiming animation 5 | simulated function bool PutDown() 6 | { 7 | if ( Level.TimeSeconds < FireMode[0].NextFireTime - FireMode[0].FireRate * (1.0 - MinReloadPct) 8 | && AmmoAmount(0) >= FireMode[0].AmmoPerFire) { 9 | Instigator.PendingWeapon = none; 10 | return false; 11 | } 12 | 13 | // remove that shit, when you need to wait some time after switching back to this weapon, 14 | // if you skipped reload 15 | FireMode[0].NextFireTime = Level.TimeSeconds - 0.01; 16 | return super.PutDown(); 17 | } 18 | 19 | 20 | defaultproperties 21 | { 22 | Weight=13 23 | FireModeClass(0)=class'ScrnM99Fire' 24 | MinReloadPct=0.800000 25 | PickupClass=class'ScrnM99Pickup' 26 | ItemName="M99AMR 'The NoobGun'" 27 | } 28 | -------------------------------------------------------------------------------- /Classes/ScrnSingleFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnSingleFire extends SingleFire; 2 | 3 | var ScrnSingle ScrnWeap; // avoid typecasting 4 | 5 | function PostBeginPlay() 6 | { 7 | super.PostBeginPlay(); 8 | ScrnWeap = ScrnSingle(Weapon); 9 | } 10 | 11 | function PlayFiring() 12 | { 13 | super.PlayFiring(); 14 | 15 | // The problem is that we MagAmmoRemaining is changed by ConsumeAmmo() on server-side only 16 | // and we cannon be sure if the replication happened at this moment or not yet 17 | if( ScrnWeap.MagAmmoRemaining == 0 || ScrnWeap.bFiringLastRound ) { 18 | //lock slide back if fired last round 19 | ScrnWeap.LockSlideBack(); 20 | } 21 | else { 22 | ScrnWeap.DoHammerDrop( GetFireSpeed() ); 23 | } 24 | } 25 | 26 | defaultproperties 27 | { 28 | DamageType=class'ScrnDamTypeSingle' 29 | bFiringDoesntAffectMovement=true 30 | RecoilVelocityScale=0 31 | } 32 | -------------------------------------------------------------------------------- /Classes/ScrnHealMessage.uc: -------------------------------------------------------------------------------- 1 | class ScrnHealMessage extends CriticalEventPlus; 2 | 3 | var localized string strHeal, strHealedBy; 4 | 5 | static function string GetString( 6 | optional int Switch, 7 | optional PlayerReplicationInfo RelatedPRI_1, 8 | optional PlayerReplicationInfo RelatedPRI_2, 9 | optional Object OptionalObject 10 | ) 11 | { 12 | local string s; 13 | 14 | switch (Switch) { 15 | case 0: s = default.strHeal; break; 16 | case 1: s = default.strHealedBy; break; 17 | } 18 | 19 | s = repl(s, "%p", class'ScrnF'.static.ColoredPlayerName(RelatedPRI_1)); 20 | return s; 21 | } 22 | 23 | defaultproperties 24 | { 25 | strHeal="You healed %p" 26 | strHealedBy="Healed by %p" 27 | DrawColor=(R=0,G=200,B=0,A=255) 28 | FontSize=0 29 | Lifetime=5 30 | 31 | DrawPivot=DP_MiddleMiddle 32 | PosX=0.50 33 | PosY=0.75 34 | } 35 | -------------------------------------------------------------------------------- /Classes/ScrnSCARMK17Fire.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | //SCARMK17 Fire 3 | //============================================================================= 4 | class ScrnSCARMK17Fire extends SCARMK17Fire; 5 | 6 | //lock charging handle after firing last shot 7 | simulated function bool AllowFire() 8 | { 9 | if (Super.AllowFire() && KFWeapon(Weapon).MagAmmoRemaining <= 1 && !ScrnSCARMK17AssaultRifle(Weapon).bBoltLockQueued ) 10 | { 11 | ScrnSCARMK17AssaultRifle(Weapon).bBoltLockQueued = true; //make sure it only gets set once 12 | ScrnSCARMK17AssaultRifle(Weapon).BoltLockTime = (Level.TimeSeconds + 0.075); //move bolt to locked position after 0.075 seconds 13 | } 14 | return Super.AllowFire(); 15 | } 16 | 17 | defaultproperties 18 | { 19 | DamageType=class'ScrnDamTypeSCARMK17AssaultRifle' 20 | AmmoClass=class'ScrnSCARMK17Ammo' 21 | } 22 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDeagle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDeagle extends DamTypeDeagle; 2 | 3 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 4 | KFMonster Killed ) 5 | { 6 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 7 | } 8 | 9 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 10 | bool bLSM14Kill) 11 | { 12 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 13 | } 14 | 15 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 16 | { 17 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardDamage(KFStatsAndAchievements, Amount); 18 | } 19 | 20 | 21 | defaultproperties 22 | { 23 | WeaponClass=class'ScrnDeagle' 24 | } 25 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeMK23Pistol.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeMK23Pistol extends DamTypeMK23Pistol; 2 | 3 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 4 | KFMonster Killed ) 5 | { 6 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 7 | } 8 | 9 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 10 | bool bLSM14Kill) 11 | { 12 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 13 | } 14 | 15 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 16 | { 17 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardDamage(KFStatsAndAchievements, Amount); 18 | } 19 | 20 | 21 | defaultproperties 22 | { 23 | WeaponClass=class'ScrnMK23Pistol' 24 | } 25 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeSingle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeSingle extends DamTypeDualies 2 | abstract; 3 | 4 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 5 | KFMonster Killed ) 6 | { 7 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 8 | } 9 | 10 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 11 | bool bLSM14Kill) 12 | { 13 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 14 | } 15 | 16 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 17 | { 18 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardDamage(KFStatsAndAchievements, Amount); 19 | } 20 | 21 | 22 | defaultproperties 23 | { 24 | WeaponClass=class'ScrnSingle' 25 | } 26 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeM4203M.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeM4203M extends ScrnDamTypeMedic 2 | abstract; 3 | 4 | // Award also Shiver kills with 2x Stalker progress 5 | // v4.59 - count only 1 kill from now on, because new version of Shiver.se calls 6 | // AwardKill() twice: for the decapitator and for the killer 7 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, KFMonster Killed ) 8 | { 9 | if( Killed.IsA('Shiver') || Killed.IsA('ZombieStalker') ) 10 | KFStatsAndAchievements.AddStalkerKill(); 11 | } 12 | 13 | defaultproperties 14 | { 15 | HeadShotDamageMult=1.100000 16 | WeaponClass=class'ScrnM4203MMedicGun' 17 | DeathString="%k killed %o (M4 203)." 18 | FemaleSuicide="%o shot herself in the foot." 19 | MaleSuicide="%o shot himself in the foot." 20 | bRagdollBullet=True 21 | KDamageImpulse=1500.000000 22 | KDeathVel=110.000000 23 | KDeathUpKick=2.000000 24 | } 25 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDualDeagle.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDualDeagle extends DamTypeDualDeagle; 2 | 3 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 4 | KFMonster Killed ) 5 | { 6 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 7 | } 8 | 9 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 10 | bool bLSM14Kill) 11 | { 12 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 13 | } 14 | 15 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 16 | { 17 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardDamage(KFStatsAndAchievements, Amount); 18 | } 19 | 20 | 21 | defaultproperties 22 | { 23 | bSniperWeapon=False 24 | WeaponClass=class'ScrnDualDeagle' 25 | } 26 | -------------------------------------------------------------------------------- /Classes/ScrnMP5MFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnMP5MFire extends MP5MFire; 2 | 3 | // fixes double shot bug -- PooSH 4 | state FireLoop 5 | { 6 | function BeginState() 7 | { 8 | super.BeginState(); 9 | 10 | NextFireTime = Level.TimeSeconds - 0.000001; //fire now! 11 | } 12 | } 13 | 14 | //rotate shell eject emitter 15 | simulated function InitEffects() 16 | { 17 | super.InitEffects(); 18 | 19 | // don't do this on server 20 | if ( (Level.NetMode == NM_DedicatedServer) || (AIController(Instigator.Controller) != None) ) 21 | return; 22 | if (ShellEjectEmitter != None) 23 | { 24 | ShellEjectEmitter.SetRelativeRotation(rot(-10000,0,0)); 25 | } 26 | } 27 | 28 | defaultproperties 29 | { 30 | DamageType=class'ScrnDamTypeMP7M' 31 | AmmoClass=class'ScrnMP5MAmmo' 32 | ShellEjectClass=class'ROEffects.KFShellEjectMP' //default KFShellEjectMP5M is missing 33 | DamageMin=32 34 | DamageMax=32 35 | } 36 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDualies.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDualies extends DamTypeDualies 2 | abstract; 3 | 4 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 5 | KFMonster Killed ) 6 | { 7 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 8 | } 9 | 10 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 11 | bool bLSM14Kill) 12 | { 13 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 14 | } 15 | 16 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 17 | { 18 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardDamage(KFStatsAndAchievements, Amount); 19 | } 20 | 21 | 22 | defaultproperties 23 | { 24 | bSniperWeapon=False 25 | WeaponClass=class'ScrnDualies' 26 | } 27 | -------------------------------------------------------------------------------- /Classes/ScrnGameRulesExt.uc: -------------------------------------------------------------------------------- 1 | // Extention class for game rules 2 | class ScrnGameRulesExt extends Info 3 | abstract; 4 | 5 | var protected ScrnGameRules GameRules; 6 | 7 | function PostBeginPlay() 8 | { 9 | FindGameRules(); 10 | } 11 | 12 | function FindGameRules() 13 | { 14 | local GameRules G; 15 | 16 | if ( GameRules != none ) 17 | return; 18 | 19 | for ( G = Level.Game.GameRulesModifiers; G != none; G = G.NextGameRules ) { 20 | GameRules = ScrnGameRules(G); 21 | if ( GameRules != none ) { 22 | ApplyGameRules(); 23 | return; 24 | } 25 | } 26 | log("Unable to find ScrnGameRules. Trying again in 5 seconds...", class.name); 27 | SetTimer(5.0, false); 28 | } 29 | 30 | function ScrnGameRules GetGameRules() 31 | { 32 | return GameRules; 33 | } 34 | 35 | function Timer() 36 | { 37 | FindGameRules(); 38 | } 39 | 40 | // gets called once GameRules is set 41 | function ApplyGameRules() { } 42 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeMagnum44Pistol.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeMagnum44Pistol extends DamTypeMagnum44Pistol; 2 | 3 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 4 | KFMonster Killed ) 5 | { 6 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 7 | } 8 | 9 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 10 | bool bLSM14Kill) 11 | { 12 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 13 | } 14 | 15 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 16 | { 17 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardDamage(KFStatsAndAchievements, Amount); 18 | } 19 | 20 | 21 | defaultproperties 22 | { 23 | WeaponClass=class'ScrnMagnum44Pistol' 24 | HeadShotDamageMult=1.3 25 | } 26 | -------------------------------------------------------------------------------- /Classes/ScrnExplosiveFunc_Pipebomb.uc: -------------------------------------------------------------------------------- 1 | class ScrnExplosiveFunc_Pipebomb extends ScrnExplosiveFunc abstract; 2 | 3 | static function ScaleHumanDamage(Projectile Proj, KFPawn Human, vector HitLocation, out float DamScale) 4 | { 5 | DamScale *= 0.5; 6 | 7 | if (Proj.Damage >= 4000) { 8 | // Limit suicide bombs to 2000 damage (200 at FF10%) against humans 9 | DamScale *= 4000.0 / Proj.Damage; 10 | } 11 | 12 | if (Human == Proj.Instigator) { 13 | ScrnPipeBombProjectile(Proj).bDamagedInstigator = true; 14 | } 15 | } 16 | 17 | static function Killed(Projectile Proj, class KilledClass) 18 | { 19 | if (ClassIsChildOf(KilledClass, class'ZombieFleshPound') 20 | || KilledClass.name == 'FemaleFP' || KilledClass.name == 'FemaleFP_MKII') { 21 | ScrnPipeBombProjectile(Proj).NumKilledFP++; 22 | } 23 | else if (ClassIsChildOf(KilledClass, class'ZombieCrawler')) { 24 | ScrnPipeBombProjectile(Proj).NumKilledCR++; 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Classes/ScrnGUIHorzScrollBar.uc: -------------------------------------------------------------------------------- 1 | // Fixed Incorrect Style 2 | class ScrnGUIHorzScrollBar extends GUIHorzScrollBar; 3 | 4 | defaultproperties 5 | { 6 | StyleName="VertGrip" 7 | 8 | Begin Object Class=GUIHorzScrollButton Name=HRightBut 9 | bIncreaseButton=True 10 | StyleName="VertGrip" 11 | OnClick=GUIHorzScrollBar.IncreaseClick 12 | OnKeyEvent=HRightBut.InternalOnKeyEvent 13 | End Object 14 | MyIncreaseButton=HRightBut 15 | 16 | Begin Object Class=GUIHorzScrollButton Name=HLeftBut 17 | StyleName="VertGrip" 18 | OnClick=GUIHorzScrollBar.DecreaseClick 19 | OnKeyEvent=HLeftBut.InternalOnKeyEvent 20 | End Object 21 | MyDecreaseButton=HLeftBut 22 | 23 | Begin Object Class=GUIHorzGripButton Name=HGrip 24 | StyleName="VertGrip" 25 | ImageIndex=-1 26 | OnMousePressed=GUIHorzScrollBar.GripPressed 27 | OnKeyEvent=HGrip.InternalOnKeyEvent 28 | End Object 29 | MyGripButton=HGrip 30 | 31 | } -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDualMK23Pistol.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDualMK23Pistol extends DamTypeDualMK23Pistol 2 | abstract; 3 | 4 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 5 | KFMonster Killed ) 6 | { 7 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 8 | } 9 | 10 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 11 | bool bLSM14Kill) 12 | { 13 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 14 | } 15 | 16 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 17 | { 18 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardDamage(KFStatsAndAchievements, Amount); 19 | } 20 | 21 | 22 | defaultproperties 23 | { 24 | bSniperWeapon=False 25 | WeaponClass=class'ScrnDualMK23Pistol' 26 | } 27 | -------------------------------------------------------------------------------- /Docs/make/ScrnMakeEnv.sample: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | set KFPACKAGE= 4 | call :GetKfPackage KFPACKAGE %~dpn1 5 | 6 | set KFDIR=C:\Games\kf 7 | set STEAMEXE=c:\Steam\steam.exe 8 | set STEAMDIR=C:\Steam\steamapps\common\KillingFloor 9 | set RELEASEDIR=C:\Games\KFOut\%KFPACKAGE% 10 | set BUNDLEDIR=C:\Games\KFOut\ScrnBundlePart2 11 | set BUNDLEUZ2=C:\Games\KFOut\ScrnBundlePartUZ2 12 | set WEBDIR=C:\Users\%USERNAME%\Dropbox\KFWeb 13 | 14 | echo ------------------------------------------------------------------------- 15 | echo KFPACKAGE=%KFPACKAGE% 16 | echo KFDIR=%KFDIR% 17 | echo STEAMDIR=%STEAMDIR% 18 | echo RELEASEDIR=%RELEASEDIR% 19 | echo BUNDLEDIR=%BUNDLEDIR% 20 | echo WEBDIR=%WEBDIR% 21 | echo ------------------------------------------------------------------------- 22 | 23 | 24 | exit /b 0 25 | 26 | :GetKfPackage 27 | set _param2=%~dp2 28 | set _param2=%_param2:~0,-1% 29 | call :GetParentDirName %1 %_param2% 30 | exit /b 0 31 | 32 | :GetParentDirName 33 | echo ExtractParentDir %1 %2 34 | set %~1=%~n2 35 | exit /b 0 36 | -------------------------------------------------------------------------------- /Classes/ScrnKSGPickup.uc: -------------------------------------------------------------------------------- 1 | //============================================================================= 2 | // KSGPickup 3 | //============================================================================= 4 | // KSG shotgun pickup class 5 | //============================================================================= 6 | // Killing Floor Source 7 | // Copyright (C) 2012 Tripwire Interactive LLC 8 | // - John "Ramm-Jaeger" Gibson and IJC 9 | //============================================================================= 10 | class ScrnKSGPickup extends KSGPickup; 11 | 12 | defaultproperties 13 | { 14 | Weight=7.000000 15 | Description="Kel-tec tactical shotgun. Features a large capacity ammo magazine and selectable tight/wide spread fire modes. Its pellets penetrate weak enemies almost without damage loss, but usually stuck inside big bodies. Has no healing attachment, but Medics like it anyway." 16 | ItemName="KSG SE" 17 | ItemShortName="KSG SE" 18 | InventoryType=class'ScrnKSGShotgun' 19 | } 20 | -------------------------------------------------------------------------------- /Classes/ScrnM32Fire.uc: -------------------------------------------------------------------------------- 1 | class ScrnM32Fire extends M32Fire; 2 | 3 | simulated function bool AllowFire() 4 | { 5 | //changed to 1 -- PooSH 6 | if( KFWeapon(Weapon).bIsReloading && KFWeapon(Weapon).MagAmmoRemaining < 1) 7 | return false; 8 | 9 | if(KFPawn(Instigator).SecondaryItem!=none) 10 | return false; 11 | if( KFPawn(Instigator).bThrowingNade ) 12 | return false; 13 | 14 | if( Level.TimeSeconds - LastClickTime>FireRate ) 15 | { 16 | LastClickTime = Level.TimeSeconds; 17 | } 18 | 19 | if( KFWeaponShotgun(Weapon).MagAmmoRemaining<1 ) 20 | { 21 | return false; 22 | } 23 | 24 | return super(WeaponFire).AllowFire(); 25 | } 26 | 27 | defaultproperties 28 | { 29 | FireAnimRate=1.10; //Speed up cylinder rotate animation so it doesn't break when firing at max rate 30 | ProjectileClass=class'ScrnM32GrenadeProjectile' 31 | ProjSpawnOffset=(X=5,Y=10.000000) 32 | } 33 | -------------------------------------------------------------------------------- /Classes/ScrnDamTypeDual44Magnum.uc: -------------------------------------------------------------------------------- 1 | class ScrnDamTypeDual44Magnum extends DamTypeDual44Magnum 2 | abstract; 3 | 4 | static function AwardKill(KFSteamStatsAndAchievements KFStatsAndAchievements, KFPlayerController Killer, 5 | KFMonster Killed ) 6 | { 7 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardKill(KFStatsAndAchievements, Killer, Killed); 8 | } 9 | 10 | static function ScoredHeadshot(KFSteamStatsAndAchievements KFStatsAndAchievements, class MonsterClass, 11 | bool bLSM14Kill) 12 | { 13 | class'ScrnDamTypeDefaultGunslingerBase'.static.ScoredHeadshot(KFStatsAndAchievements, MonsterClass, default.bSniperWeapon); 14 | } 15 | 16 | static function AwardDamage(KFSteamStatsAndAchievements KFStatsAndAchievements, int Amount) 17 | { 18 | class'ScrnDamTypeDefaultGunslingerBase'.static.AwardDamage(KFStatsAndAchievements, Amount); 19 | } 20 | 21 | 22 | defaultproperties 23 | { 24 | HeadShotDamageMult=1.30 25 | bSniperWeapon=False 26 | WeaponClass=class'ScrnDual44Magnum' 27 | } 28 | -------------------------------------------------------------------------------- /Classes/ScrnMusicTrigger.uc: -------------------------------------------------------------------------------- 1 | class ScrnMusicTrigger extends KFMusicTrigger; 2 | 3 | defaultproperties 4 | { 5 | Song="KF_TheStitches" 6 | CombatSong="KF_Pathogen" 7 | 8 | WaveBasedSongs(0)=(CombatSong="KF_Hunger",CalmSong="KF_Wading") 9 | WaveBasedSongs(1)=(CombatSong="KF_WPrevention",CalmSong="KF_Wading") 10 | WaveBasedSongs(2)=(CombatSong="DirgeDefective1",CalmSong="KF_Neurotoxin") 11 | WaveBasedSongs(3)=(CombatSong="DirgeDefective2",CalmSong="KF_Vapour") 12 | WaveBasedSongs(4)=(CombatSong="DirgeDisunion1",CalmSong="KF_Peripheral") 13 | WaveBasedSongs(5)=(CombatSong="DirgeDisunion2",CalmSong="KF_TheEdge") 14 | WaveBasedSongs(6)=(CombatSong="KF_Pathogen",CalmSong="KF_Insect") 15 | WaveBasedSongs(7)=(CombatSong="DirgeRepulse1",CalmSong="KF_SinSoma") 16 | WaveBasedSongs(8)=(CombatSong="DirgeRepulse2",CalmSong="KF_SinSoma") 17 | WaveBasedSongs(9)=(CombatSong="KF_Containment",CalmSong="KF_TheStitches") 18 | WaveBasedSongs(10)=(CombatSong="KF_Abandon",CalmSong="KF_TheStitches") 19 | } -------------------------------------------------------------------------------- /Classes/ToiletPaperProj_Brown.uc: -------------------------------------------------------------------------------- 1 | class ToiletPaperProj_Brown extends ToiletPaperProj; 2 | 3 | #exec OBJ LOAD FILE=ScrnTex.utx 4 | 5 | var localized string strBlame; 6 | 7 | function bool PickBy(Pawn Other) 8 | { 9 | local bool picked; 10 | local ScrnPlayerController OtherPC; 11 | local String reason; 12 | 13 | if ( Other == none ) 14 | return false; 15 | if ( Other != Instigator ) 16 | OtherPC = ScrnPlayerController(Other.Controller); 17 | 18 | picked = super.PickBy(Other); 19 | 20 | if ( picked && OtherPC != none && Level.TimeSeconds - OtherPC.LastBlamedTime > 60.0 ) { 21 | reason = strBlame; 22 | reason = Repl(reason, "%o", Instigator.GetHumanReadableName(), true); 23 | class'ScrnBalance'.static.Myself(Level).BlamePlayer(OtherPC, reason); 24 | } 25 | 26 | return picked; 27 | } 28 | 29 | defaultproperties 30 | { 31 | Skins[0]=Texture'ScrnTex.Weapons.TP_side_brown' 32 | Skins[1]=Texture'ScrnTex.Weapons.TP_top_brown' 33 | strBlame="%p blamed for touching %o's feces" 34 | } 35 | -------------------------------------------------------------------------------- /Classes/ScrnPipebombMessage.uc: -------------------------------------------------------------------------------- 1 | class ScrnPipebombMessage extends CriticalEventPlus; 2 | 3 | var Color WarningColor; 4 | var localized string strPipebombCount; 5 | 6 | static function string GetString( 7 | optional int Switch, 8 | optional PlayerReplicationInfo RelatedPRI_1, 9 | optional PlayerReplicationInfo RelatedPRI_2, 10 | optional Object OptionalObject 11 | ) 12 | { 13 | return repl(repl(default.strPipebombCount, "%c", string(Switch & 0xFF)), 14 | "%m", string(Switch >> 8)); 15 | } 16 | 17 | static function color GetColor( 18 | optional int Switch, 19 | optional PlayerReplicationInfo RelatedPRI_1, 20 | optional PlayerReplicationInfo RelatedPRI_2 21 | ) 22 | { 23 | if ((Switch & 0xFF) > (Switch >> 8)) { 24 | return default.WarningColor; 25 | } 26 | return default.DrawColor; 27 | } 28 | 29 | defaultproperties 30 | { 31 | strPipebombCount="Armed Pipebombs: %c (%m max)" 32 | DrawColor=(R=220,G=0,B=0,A=255) 33 | WarningColor=(R=250,G=160,B=1,A=255) 34 | FontSize=0 35 | } -------------------------------------------------------------------------------- /Classes/TSCLobbyFooter.uc: -------------------------------------------------------------------------------- 1 | class TSCLobbyFooter extends ScrnLobbyFooter; 2 | 3 | defaultproperties 4 | { 5 | // hide ready button 6 | Begin Object Class=GUIButton Name=ReadyButton 7 | bVisible=False 8 | MenuState=MSAT_Disabled 9 | Caption="Ready" 10 | Hint="Click to indicate you are ready to play" 11 | WinTop=0.966146 12 | WinLeft=0.280000 13 | WinWidth=0.120000 14 | WinHeight=0.033203 15 | RenderWeight=2.000000 16 | TabOrder=5 17 | bBoundToParent=True 18 | ToolTip=None 19 | OnClick=TSCLobbyFooter.OnFooterClick 20 | OnKeyEvent=ReadyButton.InternalOnKeyEvent 21 | End Object 22 | b_Ready=ReadyButton 23 | 24 | Begin Object Class=GUILabel Name=TimeOutCounter 25 | Caption="Game will auto-commence in: " 26 | TextAlign=TXTA_Center 27 | TextColor=(B=158,G=176,R=175) 28 | WinTop=0.96 29 | WinLeft=0.0 30 | WinWidth=1.0 31 | WinHeight=0.033203 32 | TabOrder=6 33 | End Object 34 | } 35 | -------------------------------------------------------------------------------- /Classes/ToiletPaperAmmo.uc: -------------------------------------------------------------------------------- 1 | class ToiletPaperAmmo extends KFAmmunition; 2 | 3 | 4 | function bool AddAmmo(int AmmoToAdd) 5 | { 6 | local int OldAmmo; 7 | local ScrnHumanPawn ScrnPawn; 8 | 9 | OldAmmo = AmmoAmount; 10 | if ( !super.AddAmmo(AmmoToAdd) ) 11 | return false; 12 | 13 | if ( AmmoAmount > OldAmmo ) { 14 | ScrnPawn = ScrnHumanPawn(Instigator); 15 | if ( ScrnPawn != none && ScrnPawn.bServerShopping ) { 16 | class'ScrnAchCtrl'.static.ProgressAchievementByID( 17 | class'ScrnAchCtrl'.static.PlayerLink(PlayerController(ScrnPawn.Controller)) 18 | , 'CovidiotG', AmmoAmount - OldAmmo); 19 | } 20 | } 21 | return true; 22 | } 23 | 24 | 25 | defaultproperties 26 | { 27 | bAcceptsAmmoPickups=false 28 | AmmoPickupAmount=0 29 | MaxAmmo=200 30 | InitialAmount=1 31 | PickupClass=class'ToiletPaperAmmoPickup' 32 | IconMaterial=Texture'KillingFloorHUD.Generic.HUD' 33 | IconCoords=(X1=458,Y1=82,X2=491,Y2=133) 34 | ItemName="A Toilet Paper Roll" 35 | } 36 | -------------------------------------------------------------------------------- /Classes/ScrnHighROFFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnHighROFFire extends KFHighROFFire; 2 | 3 | var transient float FireRateReminder; 4 | 5 | 6 | event ModeDoFire() 7 | { 8 | if (bWaitForRelease) { 9 | super(KFFire).ModeDoFire(); 10 | } 11 | // else must be in FireLoop state 12 | } 13 | 14 | state FireLoop 15 | { 16 | function EndState() 17 | { 18 | super.EndState(); 19 | FireRateReminder = 0; 20 | } 21 | 22 | event ModeDoFire() 23 | { 24 | if ( Level.TimeSeconds - LastFireTime > 0.1 ) 25 | FireRateReminder = 0; 26 | else 27 | FireRateReminder += fmax(Level.TimeSeconds - FireRate - LastFireTime, 0.f); // do precise fire rate 28 | 29 | super(KFFire).ModeDoFire(); 30 | 31 | if ( FireRateReminder > 0 ) { 32 | NextFireTime -= FireRateReminder; 33 | if ( NextFireTime < Level.TimeSeconds ) { 34 | FireRateReminder = Level.TimeSeconds - NextFireTime; 35 | NextFireTime = Level.TimeSeconds; 36 | } 37 | } 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Docs/Info/Tourney.txt: -------------------------------------------------------------------------------- 1 | Tourney Mode is set by "?Tourney=X", where X is is a bit mask: 2 | BIT HEX DEC FEATURE DESCRIPTION 3 | === ====== ====== ============ ==================================================================================== 4 | 1 0x0001 1 ENABLED Enable tourney. Allways must be set if any of the below flags is set. 5 | 2 0x0002 2 VANILLA Allow vanilla game weapons (KFMod.*) in the tourney 6 | 3 0x0004 4 SWP Allow ScrnWeaponPack and Horzine Armor 7 | 4 0x0008 8 ALL_WEAPONS Allow all weapons 8 | 5 0x0010 16 ALL_PERKS Allow all perks 9 | 6 0x0020 32 HMG Allow Heavy MachineGunner perk 10 | ==================================================================================================================== 11 | Horzine Technician perk is prohibited in tourneys due to potential exploits of frozen or zapped zeds. 12 | Sum values of the desired FEATURES. The result is your "X" value. 13 | For example, to run the tourney with (ENABLED + VANILLA + SWP + HMG) flags, use "?Tourney=39" (1+2+4+32) 14 | -------------------------------------------------------------------------------- /Classes/DoomMusicTrigger.uc: -------------------------------------------------------------------------------- 1 | class DoomMusicTrigger extends ScrnMusicTrigger; 2 | 3 | defaultproperties 4 | { 5 | FadeInTime=5.000000 6 | FadeOutTime=5.000000 7 | 8 | Song="EGT-ThisLove" 9 | CombatSong="EGT-Entryway" 10 | 11 | WaveBasedSongs(0)=(CombatSong="EGT-Entryway",CalmSong="EGT-ThisLove") 12 | WaveBasedSongs(1)=(CombatSong="EGT-E1M1",CalmSong="EGT-Interlevel") 13 | WaveBasedSongs(2)=(CombatSong="EGT-Demon1",CalmSong="EGT-ThisLove") 14 | WaveBasedSongs(3)=(CombatSong="EGT-Shawn",CalmSong="EGT-ThisLove") 15 | WaveBasedSongs(4)=(CombatSong="EGT-ToxinRefinery",CalmSong="EGT-Interlevel") 16 | WaveBasedSongs(5)=(CombatSong="EGT-Entryway",CalmSong="EGT-ThisLove") 17 | WaveBasedSongs(6)=(CombatSong="EGT-Demon2",CalmSong="EGT-ThisLove") 18 | WaveBasedSongs(7)=(CombatSong="EGT-PhobosLab",CalmSong="EGT-Interlevel") 19 | WaveBasedSongs(8)=(CombatSong="EGT-E1M1",CalmSong="EGT-ThisLove") 20 | WaveBasedSongs(9)=(CombatSong="EGT-Shawn",CalmSong="EGT-Interlevel") 21 | WaveBasedSongs(10)=(CombatSong="EGT-SignOfEvil",CalmSong="EGT-Interlevel") 22 | } 23 | 24 | -------------------------------------------------------------------------------- /Classes/ScrnFragFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnFragFire extends FragFire; 2 | 3 | function projectile SpawnProjectile(Vector Start, Rotator Dir) 4 | { 5 | local Grenade gProj; 6 | local ScrnFrag aFrag; 7 | 8 | gProj = Grenade(super.SpawnProjectile(Start, Dir)); 9 | aFrag = ScrnFrag(Weapon); 10 | if ( aFrag != none && aFrag.bThrowingCooked ) { 11 | gProj.ExplodeTimer = fclamp(aFrag.CookExplodeTimer - Level.TimeSeconds, 0.01, class'ScrnNade'.default.ExplodeTimer); 12 | gProj.SetTimer(gProj.ExplodeTimer, false); 13 | gProj.bTimerSet = true; //don't reset the time if hit the wall 14 | if ( ScrnNade(gProj) != none ) 15 | ScrnNade(gProj).bBlewInHands = aFrag.bBlewInHands; 16 | 17 | aFrag.bCooking = false; 18 | aFrag.bThrowingCooked = false; 19 | aFrag.bBlewInHands = false; 20 | } 21 | return gProj; 22 | } 23 | 24 | function DoFireEffect() 25 | { 26 | super.DoFireEffect(); 27 | } 28 | 29 | defaultproperties 30 | { 31 | ProjectileClass=class'ScrnNade' 32 | FireSound=SoundGroup'KF_AxeSnd.Axe_Fire' 33 | FireRate=0.3 34 | } 35 | -------------------------------------------------------------------------------- /Classes/ScrnZedInfo.uc: -------------------------------------------------------------------------------- 1 | Class ScrnZedInfo extends Object 2 | PerObjectConfig 3 | Config(ScrnZeds); 4 | 5 | struct SZedInfo { 6 | var string Alias; 7 | var string ZedClass; 8 | var string Package; 9 | var string Vote; 10 | var bool bVoteInvert; 11 | var bool bDisabled; 12 | var float Pct; 13 | }; 14 | 15 | var config byte EventNum; 16 | var config array Zeds; 17 | 18 | defaultproperties 19 | { 20 | Zeds(1)=(Alias="CL",ZedClass="KFChar.ZombieClot_STANDARD") 21 | Zeds(2)=(Alias="BL",ZedClass="KFChar.ZombieBloat_STANDARD") 22 | Zeds(3)=(Alias="GF",ZedClass="KFChar.ZombieGorefast_STANDARD") 23 | Zeds(4)=(Alias="CR",ZedClass="KFChar.ZombieCrawler_STANDARD") 24 | Zeds(5)=(Alias="ST",ZedClass="KFChar.ZombieStalker_STANDARD") 25 | Zeds(6)=(Alias="SI",ZedClass="KFChar.ZombieSiren_STANDARD") 26 | Zeds(7)=(Alias="HU",ZedClass="KFChar.ZombieHusk_STANDARD") 27 | Zeds(8)=(Alias="SC",ZedClass="KFChar.ZombieScrake_STANDARD") 28 | Zeds(9)=(Alias="FP",ZedClass="KFChar.ZombieFleshpound_STANDARD") 29 | Zeds(10)=(Alias="BOSS",ZedClass="KFChar.ZombieBoss_STANDARD") 30 | } 31 | -------------------------------------------------------------------------------- /Classes/ScrnTrenchgunFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnTrenchgunFire extends TrenchgunFire; 2 | 3 | simulated function bool AllowFire() 4 | { 5 | //changed to 1 -- PooSH 6 | if( KFWeapon(Weapon).bIsReloading && KFWeapon(Weapon).MagAmmoRemaining < 1) 7 | return false; 8 | 9 | if(KFPawn(Instigator).SecondaryItem!=none) 10 | return false; 11 | if( KFPawn(Instigator).bThrowingNade ) 12 | return false; 13 | 14 | if( Level.TimeSeconds - LastClickTime>FireRate ) 15 | { 16 | LastClickTime = Level.TimeSeconds; 17 | } 18 | 19 | if( KFWeaponShotgun(Weapon).MagAmmoRemaining<1 ) 20 | { 21 | return false; 22 | } 23 | 24 | return super(WeaponFire).AllowFire(); 25 | } 26 | 27 | event ModeDoFire() 28 | { 29 | if( KFWeapon(Weapon).MagAmmoRemaining <= 1 && !KFWeapon(Weapon).bIsReloading ) 30 | { 31 | ScrnTrenchgun(Weapon).HideBullet(); //hide bullet 32 | } 33 | Super.ModeDoFire(); 34 | } 35 | 36 | 37 | defaultproperties 38 | { 39 | ProjectileClass=class'ScrnTrenchgunBullet' 40 | } 41 | -------------------------------------------------------------------------------- /Configs/ScrnUserGames.sample: -------------------------------------------------------------------------------- 1 | ######################################################################################################################## 2 | # A sample of user GAME definition file 3 | # ScrnUserGames.ini is loaded if ALL requirements below are met: 4 | # 1. bUserGames=true in ScrnBalanceSrv.ini 5 | # 2. Game length is between 100 and 199 (a user game) 6 | # Otherwise, ScrnGameLength object is loaded from ScrnGames.ini. 7 | # 8 | # NB! 9 | # - ScrnGames.ini stores ScrnGameLength objects 10 | # - ScrnUserGames.ini stores ScrnUserGameLength objects 11 | # 12 | # ScrnUserGameLength has the following fields in addition to ScrnGameLength: 13 | # bUserWaves (default = false) - load wave definitions from ScrnUserWaves.ini instead of ScrnWaves.ini 14 | # bUserZeds (default = false) - load zed definitions from ScrnUserZeds.ini instead of ScrnZeds.ini 15 | # 16 | # See ScrnGames.ini for more info. 17 | ######################################################################################################################## 18 | 19 | [100 ScrnUserGameLength] 20 | bUserWaves=true 21 | bUserZeds=true 22 | Waves=UserWave1 23 | Zeds=UserZeds 24 | -------------------------------------------------------------------------------- /Classes/StringReplicationInfo.uc: -------------------------------------------------------------------------------- 1 | class StringReplicationInfo extends ReplicationInfo; 2 | 3 | const MaxSize = 255; 4 | 5 | var String Str; 6 | var StringReplicationInfo Next; 7 | 8 | replication 9 | { 10 | reliable if ( bNetDirty && Role == ROLE_Authority ) 11 | Str, Next; 12 | } 13 | 14 | simulated function SetString(string value) 15 | { 16 | ClearString(); 17 | 18 | if ( len(value) < MaxSize ) 19 | Str = value; 20 | else { 21 | Str = Left(value, MaxSize); 22 | Next = spawn(self.class, self); 23 | Next.SetString(Right(value, len(value) - MaxSize)); 24 | } 25 | } 26 | 27 | simulated function string GetString() 28 | { 29 | if ( Next == none ) 30 | return Str; 31 | 32 | return Str $ Next.GetString(); 33 | } 34 | 35 | simulated function ClearString() 36 | { 37 | Str = ""; 38 | if ( Next != none ) { 39 | Next.ClearString(); 40 | Next.Destroy(); 41 | Next = none; 42 | } 43 | } 44 | 45 | simulated function Destroyed() 46 | { 47 | ClearString(); 48 | super.Destroyed(); 49 | } 50 | 51 | defaultproperties 52 | { 53 | } 54 | -------------------------------------------------------------------------------- /Classes/ScrnFlameBurstFire.uc: -------------------------------------------------------------------------------- 1 | // 2 | //============================================================================= 3 | class ScrnFlameBurstFire extends FlameBurstFire; 4 | 5 | simulated function bool AllowFire() 6 | { 7 | local KFPawn KFP; 8 | 9 | if (KFWeap.bIsReloading) 10 | return false; 11 | 12 | KFP = KFPawn(Instigator); 13 | if (KFP != none && (KFP.SecondaryItem != none || KFP.bThrowingNade)) 14 | return false; 15 | 16 | if (KFWeap.MagAmmoRemaining < AmmoPerFire) { 17 | if ( Level.TimeSeconds - LastClickTime > FireRate ) { 18 | if (NoAmmoSound != none) 19 | Weapon.PlayOwnedSound(NoAmmoSound, SLOT_Interact, TransientSoundVolume,,,, false); 20 | LastClickTime = Level.TimeSeconds; 21 | if(Weapon.HasAnim(EmptyAnim)) 22 | weapon.PlayAnim(EmptyAnim, EmptyAnimRate, 0.0); 23 | } 24 | return false; 25 | } 26 | LastClickTime = Level.TimeSeconds; 27 | return super(WeaponFire).AllowFire(); 28 | } 29 | 30 | defaultproperties 31 | { 32 | ProjectileClass=class'ScrnFlameTendril' 33 | AmmoClass=class'ScrnFlameAmmo' 34 | } 35 | -------------------------------------------------------------------------------- /Classes/ScrnLock.uc: -------------------------------------------------------------------------------- 1 | class ScrnLock extends Info 2 | config(ScrnLock) 3 | dependson(ScrnBalance); 4 | 5 | var globalconfig array DLCLocks; // replicated via ScrnClientPerkRepLink 6 | var protected transient int DLCLockCount; 7 | 8 | function LoadDLCLocks(bool bUseLevelLocks) 9 | { 10 | local int i; 11 | 12 | DLCLockCount = 0; 13 | if ( DLCLocks.length == 0 ) 14 | return; 15 | 16 | for ( i=0; i(DynamicLoadObject(DLCLocks[i].Item, Class'Class')); 19 | } 20 | if ( DLCLocks[i].PickupClass != none && (bUseLevelLocks || DLCLocks[i].Type != LOCK_Level) ) { 21 | ++DLCLockCount; 22 | } 23 | } 24 | 25 | if ( DLCLockCount == DLCLocks.length ) { 26 | log("Loaded all " $ DLCLockCount $ " DLC locks", 'ScrnBalance'); 27 | } 28 | else { 29 | log("Loaded " $ DLCLockCount $ " / " $ DLCLocks.length $ " DLC locks", 'ScrnBalance'); 30 | } 31 | } 32 | 33 | function int GetDLCDLCLockCount() 34 | { 35 | return DLCLockCount; 36 | } 37 | -------------------------------------------------------------------------------- /Classes/ScrnWinchesterFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnWinchesterFire extends WinchesterFire; 2 | 3 | 4 | simulated function bool AllowFire() 5 | { 6 | //changed to 1 -- PooSH 7 | if( KFWeapon(Weapon).bIsReloading && KFWeapon(Weapon).MagAmmoRemaining < 1) 8 | return false; 9 | 10 | if(KFPawn(Instigator).SecondaryItem!=none) 11 | return false; 12 | if( KFPawn(Instigator).bThrowingNade ) 13 | return false; 14 | 15 | if( Level.TimeSeconds - LastClickTime>FireRate ) 16 | { 17 | LastClickTime = Level.TimeSeconds; 18 | } 19 | 20 | if( KFWeaponShotgun(Weapon).MagAmmoRemaining<1 ) 21 | { 22 | return false; 23 | } 24 | 25 | return super(WeaponFire).AllowFire(); 26 | } 27 | 28 | event ModeDoFire() 29 | { 30 | if( KFWeapon(Weapon).MagAmmoRemaining <= 1 && !KFWeapon(Weapon).bIsReloading ) 31 | { 32 | ScrnWinchester(Weapon).HideBullet(); //hide bullet 33 | } 34 | super(KFFire).ModeDoFire(); // skip WinchesterFire 35 | } 36 | 37 | defaultproperties 38 | { 39 | DamageType=class'ScrnDamTypeWinchester' 40 | } 41 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2012-2025 PU Developing IK, Latvia 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Classes/ScrnPerkProgressList.uc: -------------------------------------------------------------------------------- 1 | class ScrnPerkProgressList extends SRPerkProgressList; 2 | 3 | function string AddCommas(int Value) 4 | { 5 | local string R, L; 6 | 7 | L = string(Value); 8 | while ( Len(L) > 3 ) { 9 | R = UnitDelimiter $ Right(L, 3) $ R; 10 | L = Left(L, Len(L) - 3); 11 | } 12 | return L $ R; 13 | } 14 | 15 | // KF1 engine does not have operator int % (int, int), only the float version. 16 | // Hence "i1 % i2" triggers operator float(i1) % float(i2) and may cause precision errors 17 | function string FormatNumber(int Value) 18 | { 19 | local int m; 20 | 21 | if ( Value < 100000 ){ 22 | // Anything less than 100,000 needs no formatting 23 | return string(Value); 24 | } 25 | 26 | if ( Value < 1000000 ) { 27 | // Anything between 100,000 and 1 million turns into ___K 28 | return string(Value / 1000) $ OneThousandSuffix; 29 | } 30 | 31 | // Anything over 1 million turns into _._M 32 | m = Value / 1000000; 33 | Value -= m * 1000000; 34 | return string(m) $ DecimalPoint $ string(Value / 100000) $ OneMillionSuffix; 35 | } 36 | 37 | defaultproperties 38 | { 39 | } 40 | -------------------------------------------------------------------------------- /Classes/ScrnHuskGunAltFire.uc: -------------------------------------------------------------------------------- 1 | // NAPALM THROWER 2 | class ScrnHuskGunAltFire extends ScrnHuskGunFire; 3 | 4 | 5 | 6 | //instant shot, without holding 7 | function ModeHoldFire() { } 8 | function Charge() { } 9 | function PlayPreFire() { } 10 | function Timer() { } 11 | 12 | function class GetDesiredProjectileClass() 13 | { 14 | return ProjectileClass; 15 | } 16 | 17 | function PostSpawnProjectile(Projectile P) 18 | { 19 | super(KFShotgunFire).PostSpawnProjectile(P); // bypass HuskGunFire 20 | } 21 | 22 | simulated function bool AllowFire() 23 | { 24 | return (Weapon.AmmoAmount(ThisModeNum) >= MaxChargeAmmo); 25 | } 26 | 27 | function ModeDoFire() 28 | { 29 | if (!AllowFire()) 30 | return; 31 | 32 | Load = MaxChargeAmmo; // ammo to consume 33 | super(KFShotgunFire).ModeDoFire(); 34 | } 35 | 36 | function DoFireEffect() 37 | { 38 | Load = 1; // affects projectile count 39 | super.DoFireEffect(); 40 | } 41 | 42 | 43 | defaultproperties 44 | { 45 | MaxChargeAmmo=20 46 | ProjPerFire=7 47 | bFireOnRelease=False 48 | FireRate=1.500000 49 | ProjectileClass=class'ScrnHuskGunProjectile_Alt' 50 | Spread=750.000000 51 | SpreadStyle=SS_Random 52 | } 53 | -------------------------------------------------------------------------------- /Classes/ScrnVestPickup.uc: -------------------------------------------------------------------------------- 1 | class ScrnVestPickup extends KFWeaponPickup 2 | abstract notplaceable; 3 | 4 | var(Shield) int ShieldCapacity; 5 | var(Shield) float SpeedModifier; // movement speed modifier. How slower you will move while wearing this shield. In % of default ground speed. 6 | var texture TraderInfoTexture; //Image to show in Info 7 | 8 | var localized string LocalizedDescription; // because "Tripwire" 9 | 10 | defaultproperties 11 | { 12 | TraderInfoTexture=Texture'KillingFloorHUD.Trader_Weapon_Images.Trader_Vest' 13 | Weight=0.000000 14 | cost=0 15 | Description="Kevlar vest. Affords the wearer limited protection from most forms of attack." 16 | LocalizedDescription="Kevlar vest. Affords the wearer limited protection from most forms of attack." 17 | ItemName="Vest" 18 | ItemShortName="Vest" 19 | EquipmentCategoryID=5 20 | CorrespondingPerkIndex=7 21 | PickupMessage="You got a Vest" 22 | PickupSound=Sound'KF_InventorySnd.Vest_Pickup' 23 | StaticMesh=StaticMesh'KillingFloorStatics.Vest' 24 | DrawScale3D=(Z=0.400000) 25 | TransientSoundVolume=150.000000 26 | CollisionRadius=30.000000 27 | CollisionHeight=5.000000 28 | } 29 | -------------------------------------------------------------------------------- /Classes/SocIsoReplicationInfo.uc: -------------------------------------------------------------------------------- 1 | class SocIsoReplicationInfo extends ReplicationInfo; 2 | 3 | var float VirusSpreadDist; 4 | var transient int ProximityCounter; 5 | 6 | replication { 7 | reliable if ( (bNetInitial || bNetDirty) && Role == ROLE_Authority ) 8 | VirusSpreadDist; 9 | } 10 | 11 | simulated function PostBeginPlay() 12 | { 13 | if ( Level.NetMode == NM_DedicatedServer ) { 14 | return; 15 | } 16 | SetTimer(1.0, true); 17 | } 18 | 19 | simulated function Timer() 20 | { 21 | local PlayerController PC; 22 | local ScrnHumanPawn P; 23 | 24 | PC = Level.GetLocalPlayerController(); 25 | if ( PC == none || PC.Pawn == none || PC.Pawn.Health <= 0 ) 26 | return; 27 | 28 | if ( PC.IsInState('GameEnded') ) { 29 | SetTimer(0, false); 30 | Destroy(); 31 | } 32 | 33 | foreach PC.Pawn.VisibleCollidingActors( class'ScrnHumanPawn', P, VirusSpreadDist ) { 34 | if ( P != PC.Pawn && P.Health > 0 ) { 35 | PC.ReceiveLocalizedMessage(class'SocDistanceMsg', ++ProximityCounter, P.PlayerReplicationInfo); 36 | return; 37 | } 38 | } 39 | ProximityCounter = 0; 40 | } 41 | 42 | defaultproperties 43 | { 44 | VirusSpreadDist=250 // 5m 45 | } 46 | -------------------------------------------------------------------------------- /Classes/ScrnMacheteFireB.uc: -------------------------------------------------------------------------------- 1 | class ScrnMacheteFireB extends ScrnMeleeFire; 2 | 3 | function DoFireEffect() { } 4 | 5 | simulated event ModeDoFire() 6 | { 7 | local ScrnHumanPawn ScrnPawn; 8 | local float SpeedSq; 9 | 10 | ScrnPawn = ScrnHumanPawn(Instigator); 11 | MeleeDamage = default.MeleeDamage; 12 | if ( ScrnPawn != none && ScrnPawn.bMacheteDamageBoost && ScrnPawn.MacheteBoost > 0 ) { 13 | SpeedSq = VSizeSquared(ScrnPawn.Velocity); 14 | MeleeDamage += ScrnPawn.MacheteBoost * 3; 15 | if ( SpeedSq > 90000 ) { 16 | // exponentially raise damage when speed > 300 17 | MeleeDamage *= SpeedSq / 90000; 18 | } 19 | ScrnPawn.bMacheteDamageBoost = false; 20 | } 21 | super.ModeDoFire(); 22 | } 23 | 24 | defaultproperties 25 | { 26 | WideDamageMinHitAngle=0.000000 27 | MeleeDamage=130 28 | bWaitForRelease=false 29 | 30 | ProxySize=0.120000 31 | DamagedelayMin=0.710000 32 | DamagedelayMax=0.710000 33 | hitDamageClass=Class'KFMod.DamTypeMachete' 34 | MeleeHitSounds(0)=SoundGroup'KF_AxeSnd.Axe_HitFlesh' 35 | HitEffectClass=Class'KFMod.KnifeHitEffect' 36 | FireAnim="PowerAttack" 37 | FireRate=1.100000 38 | BotRefireRate=0.710000 39 | } 40 | -------------------------------------------------------------------------------- /Classes/ScrnRandomItemSpawn.uc: -------------------------------------------------------------------------------- 1 | class ScrnRandomItemSpawn extends KFRandomItemSpawn; 2 | 3 | var bool bPermanentlyDisabled; 4 | 5 | simulated function PostBeginPlay() 6 | { 7 | local ScrnGameType ScrnGT; 8 | 9 | ScrnGT = ScrnGameType(Level.Game); 10 | if (ScrnGT != none) { 11 | ScrnGT.SetupRandomItemSpawn(self); 12 | } 13 | super.PostBeginPlay(); 14 | } 15 | 16 | function EnableMe() 17 | { 18 | if (!bPermanentlyDisabled) { 19 | super.EnableMe(); 20 | } 21 | } 22 | 23 | defaultproperties 24 | { 25 | bForceDefault=false 26 | PickupClasses(0)=Class'ScrnVest' 27 | PickupClasses(1)=class'ScrnDualiesPickup' 28 | PickupClasses(2)=class'ScrnMagnum44Pickup' 29 | PickupClasses(3)=class'ScrnShotgunPickup' 30 | PickupClasses(4)=class'ScrnBullpupPickup' 31 | PickupClasses(5)=class'ScrnWinchesterPickup' 32 | PickupClasses(6)=class'ScrnMachetePickup' 33 | PickupClasses(7)=class'ScrnAxePickup' 34 | PickupClasses(8)=class'ScrnMAC10Pickup' 35 | PickupWeight(0)=8 36 | PickupWeight(1)=2 37 | PickupWeight(2)=2 38 | PickupWeight(3)=4 39 | PickupWeight(4)=4 40 | PickupWeight(5)=4 41 | PickupWeight(6)=2 42 | PickupWeight(7)=2 43 | PickupWeight(8)=4 44 | } 45 | -------------------------------------------------------------------------------- /Classes/ScrnSyringe.uc: -------------------------------------------------------------------------------- 1 | class ScrnSyringe extends Syringe; 2 | 3 | var() int SoloHealBoostAmount; 4 | 5 | simulated function PostBeginPlay() 6 | { 7 | super(KFMeleeGun).PostBeginPlay(); 8 | 9 | // allow dropping syringe in Story Mode 10 | bKFNeverThrow = KF_StoryGRI(Level.GRI) == none; 11 | bCanThrow = !bKFNeverThrow; // prevent dropping syringe on dying 12 | AmmoCharge[0]=0; // prevent dropping exploit 13 | } 14 | 15 | simulated function ClientSuccessfulHeal(String HealedName) 16 | { 17 | SyringeFire(FireMode[0]).SuccessfulHeal(); 18 | // Replaced by ScrnHealMessage 19 | // if( PlayerController(Instigator.Controller) != none ) { 20 | // PlayerController(Instigator.controller).ClientMessage(SuccessfulHealMessage$HealedName, 'CriticalEvent'); 21 | // } 22 | } 23 | 24 | 25 | defaultproperties 26 | { 27 | FireModeClass(0)=class'ScrnSyringeFire' 28 | FireModeClass(1)=class'ScrnSyringeAltFire' 29 | PickupClass=class'ScrnSyringePickup' 30 | ItemName="Med-Syringe SE" 31 | TraderInfoTexture=Texture'KillingFloorHUD.WeaponSelect.Syringe' 32 | HealBoostAmount=20 33 | SoloHealBoostAmount=50 34 | 35 | PutDownAnimRate=2.2222 36 | SelectAnimRate=2.4444 37 | BringUpTime=0.15 38 | PutDownTime=0.15 39 | } 40 | -------------------------------------------------------------------------------- /Classes/ScrnMP5Mbullets.uc: -------------------------------------------------------------------------------- 1 | //loads skeletalmesh instead of static mesh for shiny bullets 2 | class ScrnMP5MBullets extends ScrnFakedProjectile; 3 | 4 | var(Display) string MeshRef; 5 | 6 | static function PreloadAssets() 7 | { 8 | if( default.MeshRef != "" ) 9 | UpdateDefaultMesh(Mesh(DynamicLoadObject(default.MeshRef, class'Mesh', true))); 10 | } 11 | 12 | static function bool UnloadAssets() 13 | { 14 | if( default.MeshRef != "" ) 15 | UpdateDefaultMesh(none); 16 | 17 | return true; 18 | } 19 | 20 | //this doesn't seem to work but I'll leave it here anyway 21 | function HandleBulletScale(int MagAmmoRemaining) 22 | { 23 | if (MagAmmoRemaining == 1) 24 | { 25 | SetBoneScale(0, 0.0, 'bullet01'); 26 | SetBoneScale(1, 0.0, 'bullet02'); 27 | } 28 | else if (MagAmmoRemaining == 2) 29 | { 30 | SetBoneScale(0, 1.0, 'bullet01'); 31 | SetBoneScale(1, 0.0, 'bullet02'); 32 | } 33 | else if (MagAmmoRemaining > 2) 34 | { 35 | SetBoneScale(0, 1.0, 'bullet01'); 36 | SetBoneScale(1, 1.0, 'bullet02'); 37 | } 38 | } 39 | 40 | 41 | defaultproperties 42 | { 43 | Mesh=SkeletalMesh'ScrnAnims.mp5m_bullets' 44 | MeshRef="ScrnAnims.mp5m_bullets" 45 | DrawType=DT_Mesh 46 | } 47 | -------------------------------------------------------------------------------- /Classes/ScrnSecondaryItem.uc: -------------------------------------------------------------------------------- 1 | // base class for "SecondaryItem" weapons - those that cannot be directly equipped 2 | class ScrnSecondaryItem extends KFWeapon 3 | abstract; 4 | 5 | // don't select this weapon 6 | simulated function float RateSelf() 7 | { 8 | return -100; 9 | } 10 | 11 | // Never select this directly 12 | simulated function Weapon PrevWeapon(Weapon CurrentChoice, Weapon CurrentWeapon) 13 | { 14 | if ( Inventory == None ) 15 | return CurrentChoice; 16 | return Inventory.PrevWeapon(CurrentChoice,CurrentWeapon); 17 | } 18 | 19 | simulated function Weapon NextWeapon(Weapon CurrentChoice, Weapon CurrentWeapon) 20 | { 21 | if ( Inventory == None ) 22 | return CurrentChoice; 23 | return Inventory.NextWeapon(CurrentChoice,CurrentWeapon); 24 | } 25 | 26 | simulated function Weapon WeaponChange( byte F, bool bSilent ) 27 | { 28 | if ( Inventory == None ) 29 | return None; 30 | return Inventory.WeaponChange(F,bSilent); 31 | } 32 | 33 | defaultproperties 34 | { 35 | MagCapacity=1 36 | Weight=0 37 | bKFNeverThrow=True 38 | FireModeClass(0)=Class'KFMod.NoFire' 39 | FireModeClass(1)=Class'KFMod.NoFire' 40 | PutDownAnim="PutDown" 41 | AIRating=-5.0 42 | CurrentRating=-5.0 43 | InventoryGroup=0 44 | } 45 | -------------------------------------------------------------------------------- /Classes/ScrnLAWExplosion.uc: -------------------------------------------------------------------------------- 1 | class ScrnLAWExplosion extends LAWExplosion; 2 | //ScrN LAW Explosion has the light from nadelight added, but it is larger and lasts 0.5s instead of 0.25s 3 | 4 | //added nadelight 5 | simulated function PostBeginPlay() 6 | { 7 | Super.Postbeginplay(); 8 | NadeLight(); 9 | } 10 | 11 | simulated function NadeLight() 12 | { 13 | if ( !Level.bDropDetail && (Instigator != None) 14 | && ((Level.TimeSeconds - LastRenderTime < 0.2) || (PlayerController(Instigator.Controller) != None)) ) 15 | { 16 | bDynamicLight = true; 17 | SetTimer(0.5, false); //0.25 18 | } 19 | else Timer(); 20 | } 21 | 22 | simulated function Timer() 23 | { 24 | bDynamicLight = false; 25 | } 26 | 27 | defaultproperties 28 | { 29 | bUnlit=false //true 30 | 31 | //added lights 32 | LightType=LT_Steady 33 | LightBrightness=220.0 //128 34 | LightRadius=14.000000 //4.0 35 | LightHue=20 //made it a little bit more orange (old 25) 36 | LightSaturation=100 37 | LightCone=16 38 | bDynamicLight=false 39 | 40 | //copypaste from kfnadeexplosion just in case 41 | RemoteRole=ROLE_SimulatedProxy 42 | bNotOnDedServer=False 43 | bNoDelete=False 44 | AutoDestroy=True 45 | } -------------------------------------------------------------------------------- /Classes/ScrnChainsawAltFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnChainsawAltFire extends ChainsawAltFire; 2 | 3 | var() int MaxChargeAmmo; 4 | 5 | var float LastClickTime; 6 | 7 | 8 | simulated function bool AllowFire() 9 | { 10 | local KFWeapon KFWeap; 11 | local KFPawn KFP; 12 | 13 | KFWeap = KFWeapon(Weapon); 14 | KFP = KFPawn(Instigator); 15 | 16 | if ( KFWeap.bIsReloading ) 17 | return false; 18 | 19 | if ( KFP.SecondaryItem != none || KFP.bThrowingNade ) 20 | return false; 21 | 22 | if ( KFWeap.MagAmmoRemaining < MaxChargeAmmo ) { 23 | if( Level.TimeSeconds - LastClickTime > FireRate ) 24 | LastClickTime = Level.TimeSeconds; 25 | 26 | if( AIController(Instigator.Controller) != none ) 27 | KFWeap.ReloadMeNow(); 28 | return false; 29 | } 30 | 31 | return Super.AllowFire(); 32 | } 33 | 34 | function ModeDoFire() 35 | { 36 | if (!AllowFire()) 37 | return; 38 | 39 | super.ModeDoFire(); 40 | Weapon.ConsumeAmmo(ThisModeNum, MaxChargeAmmo); 41 | } 42 | 43 | defaultproperties 44 | { 45 | MaxChargeAmmo=10 46 | MeleeDamage=330 47 | weaponRange=100.000000 48 | hitDamageClass=class'ScrnDamTypeChainsawAlt' 49 | AmmoClass=class'ScrnChainsawAmmo' 50 | bWaitForRelease=True 51 | } 52 | -------------------------------------------------------------------------------- /Classes/ScrnCrossbowArrow.uc: -------------------------------------------------------------------------------- 1 | class ScrnCrossbowArrow extends CrossbowArrow; 2 | 3 | simulated state OnWall 4 | { 5 | function ProcessTouch (Actor Other, vector HitLocation) 6 | { 7 | local Pawn PawnOther; 8 | local Inventory inv; 9 | local Crossbow bow; 10 | 11 | PawnOther = Pawn(Other); 12 | if( PawnOther != none ) { 13 | for( inv=PawnOther.Inventory; inv != none; inv = inv.Inventory ) { 14 | bow = Crossbow(inv); 15 | if( bow != none ) { 16 | if ( bow.AmmoAmount(0) < bow.MaxAmmo(0) ) { 17 | bow.AddAmmo(1,0) ; 18 | PlaySound(Sound'KF_InventorySnd.Ammo_GenericPickup', SLOT_Pain,2*TransientSoundVolume,,400); 19 | if( PlayerController(PawnOther.Controller)!=none ) 20 | { 21 | PlayerController(PawnOther.Controller).ReceiveLocalizedMessage(class'KFmod.ProjectilePickupMessage',0); 22 | } 23 | Destroy(); 24 | } 25 | return; 26 | } 27 | } 28 | } 29 | } 30 | } 31 | 32 | defaultproperties 33 | { 34 | LifeSpan=60 35 | AmbientSoundRef="" 36 | DamageRadius=0 37 | } 38 | -------------------------------------------------------------------------------- /Classes/ScrnZapProjectile.uc: -------------------------------------------------------------------------------- 1 | class ScrnZapProjectile extends ScrnRocketProjectile; 2 | 3 | 4 | simulated function ProcessExplosionFX(Emitter Explosion) 5 | { 6 | ZEDMKIISecondaryProjectileExplosion(Explosion).ExplosionRadius = DamageRadius; 7 | } 8 | 9 | 10 | defaultproperties 11 | { 12 | Func=class'ScrnZapFunc' 13 | ExplosionClass=Class'KFMod.ZEDMKIISecondaryProjectileExplosion' 14 | TracerClass=Class'KFMod.ZEDMKIISecondaryProjectileTrail' 15 | ExplosionSoundVolume=1.650000 16 | ArmDistSquared=0.000000 17 | StaticMeshRef="ZED_FX_SM.Energy.ZED_FX_Energy_Card" 18 | ExplosionSoundRef="KF_FY_ZEDV2SND.WEP_ZEDV2_Secondary_Explode" 19 | AmbientSoundRef="KF_FY_ZEDV2SND.WEP_ZEDV2_Secondary_Projectile_LP" 20 | AmbientVolumeScale=2.500000 21 | Speed=1000.000000 22 | MaxSpeed=1000.000000 23 | bDoubleDamageOnImpact=false 24 | Damage=150 // ZapAmount * 100 25 | DamageRadius=300.000000 26 | ImpactDamage=0 27 | MyDamageType=Class'KFMod.DamTypeZEDGunMKII' 28 | ExplosionDecal=Class'KFMod.FlameThrowerBurnMark_Medium' 29 | LightType=LT_Steady 30 | LightHue=128 31 | LightSaturation=64 32 | LightBrightness=255.000000 33 | LightRadius=8.000000 34 | LightCone=16 35 | bDynamicLight=True 36 | DrawScale=4.000000 37 | AmbientGlow=254 38 | bUnlit=True 39 | } -------------------------------------------------------------------------------- /Classes/ScrnFuelFlame.uc: -------------------------------------------------------------------------------- 1 | class ScrnFuelFlame extends FuelFlame; 2 | 3 | simulated function PostNetBeginPlay() 4 | { 5 | local ScrnFuelFlame Other; 6 | local float DistSq, MinDistSq; 7 | 8 | Super.PostNetBeginPlay(); 9 | 10 | if (Level.NetMode == NM_DedicatedServer || !bDynamicLight) 11 | return; 12 | 13 | // Level.DetailMode = "World Detail" in the game settings 14 | if (Level.bDropDetail || Level.DetailMode == DM_Low) { 15 | bDynamicLight = false; 16 | LightType = LT_None; 17 | return; 18 | } 19 | 20 | if (Level.DetailMode == DM_SuperHigh) { 21 | MinDistSq = 2500; // 1m 22 | } 23 | else { 24 | MinDistSq = 22500; // 3m 25 | } 26 | 27 | foreach DynamicActors(class'ScrnFuelFlame', Other) { 28 | if (Other == self || !Other.bDynamicLight) 29 | continue; 30 | 31 | DistSq = VSizeSquared(Other.Location - Location); 32 | if (DistSq < 200) { 33 | // overlapping effect - destroy duplicate 34 | Other.Kill(); 35 | Other.bDynamicLight = false; 36 | Other.LightType = LT_None; 37 | } 38 | else if (Other.bDynamicLight && DistSq < MinDistSq) { 39 | Other.bDynamicLight = false; 40 | Other.LightType = LT_None; 41 | } 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /Classes/ScrnTrenchgun.uc: -------------------------------------------------------------------------------- 1 | class ScrnTrenchgun extends Trenchgun; 2 | 3 | var bool bChamberThisReload; //if full reload is uninterrupted, play chambering animation 4 | 5 | simulated function HideBullet() 6 | { 7 | SetBoneScale(1, 0.001, 'Shell'); 8 | } 9 | 10 | simulated function ShowBullet() 11 | { 12 | SetBoneScale(1, 1.0, 'Shell'); 13 | } 14 | 15 | simulated function ClientReload() 16 | { 17 | ShowBullet(); 18 | bChamberThisReload = ( MagAmmoRemaining == 0 && (AmmoAmount(0) - MagAmmoRemaining > MagCapacity) ); //for chambering animation 19 | Super.ClientReload(); 20 | } 21 | 22 | simulated function ClientFinishReloading() 23 | { 24 | bIsReloading = false; 25 | 26 | //play chambering animation if finished reloading from empty 27 | if ( !bChamberThisReload ) 28 | { 29 | PlayIdle(); 30 | } 31 | bChamberThisReload = false; 32 | 33 | if(Instigator.PendingWeapon != none && Instigator.PendingWeapon != self) 34 | Instigator.Controller.ClientSwitchToBestWeapon(); 35 | } 36 | 37 | 38 | defaultproperties 39 | { 40 | ReloadAnimRate=0.9 //synced to reloadrate 41 | FireModeClass(0)=class'ScrnTrenchgunFire' 42 | PickupClass=class'ScrnTrenchgunPickup' 43 | ItemName="Dragon's Breath Trenchgun SE" 44 | PlayerViewPivot=(Pitch=0,Roll=0,Yaw=-5) //fix to make sight centered 45 | Weight=5 46 | } 47 | -------------------------------------------------------------------------------- /Classes/ScrnPipeBombExplosive.uc: -------------------------------------------------------------------------------- 1 | class ScrnPipeBombExplosive extends PipeBombExplosive; 2 | 3 | var transient float LastCountTime; 4 | 5 | replication 6 | { 7 | reliable if(Role < ROLE_Authority) 8 | ServerSendCount; 9 | } 10 | 11 | simulated function AltFire(float F) 12 | { 13 | if (Level.TimeSeconds - LastCountTime > 1.0) { 14 | ServerSendCount(); 15 | LastCountTime = Level.TimeSeconds; 16 | } 17 | } 18 | 19 | function ServerSendCount() { 20 | local ScrnPipeBombProjectile P; 21 | local int c; 22 | 23 | if (Instigator == none || PlayerController(Instigator.Controller) == none) 24 | return; 25 | 26 | if (Level.TimeSeconds - LastCountTime < 1.0) 27 | return; 28 | LastCountTime = Level.TimeSeconds; 29 | 30 | foreach DynamicActors(Class'ScrnPipeBombProjectile', P) { 31 | if (!P.bHidden && P.Instigator == Instigator && P.bDetectEnemies) { 32 | ++c; 33 | } 34 | } 35 | PlayerController(Instigator.Controller).ReceiveLocalizedMessage(class'ScrnPipebombMessage', 36 | (MaxAmmo(0) << 8) | min(c, 255), 37 | Instigator.PlayerReplicationInfo); 38 | } 39 | 40 | defaultproperties 41 | { 42 | FireModeClass(0)=class'ScrnPipeBombFire' 43 | PickupClass=class'ScrnPipeBombPickup' 44 | ItemName="PipeBomb SE" 45 | } 46 | -------------------------------------------------------------------------------- /Classes/ScrnLAW.uc: -------------------------------------------------------------------------------- 1 | class ScrnLAW extends LAW; 2 | 3 | var(Zooming) name ZoomAnimName; 4 | var(Zooming) float ZoomAnimRate; 5 | 6 | simulated event WeaponTick(float dt) 7 | { 8 | super(KFWeapon).WeaponTick(dt); 9 | } 10 | 11 | simulated function ZoomOut(bool bAnimateTransition) 12 | { 13 | super.ZoomOut(bAnimateTransition); 14 | bZoomingIn = false; 15 | } 16 | 17 | //overwriting to increase raise animation play rate 18 | simulated function ZoomIn(bool bAnimateTransition) 19 | { 20 | if (Level.TimeSeconds < FireMode[0].NextFireTime) 21 | return; 22 | 23 | super(KFWeapon).ZoomIn(bAnimateTransition); 24 | 25 | if (bAnimateTransition) { 26 | PlayAnim(ZoomAnimName, ZoomAnimRate, 0.1); 27 | } 28 | } 29 | 30 | defaultproperties 31 | { 32 | Weight=12 33 | FireModeClass(0)=class'ScrnLAWFire' 34 | ForceZoomOutOnFireTime=0.05 35 | PlayerIronSightFOV=65 //give some zoom when aiming 36 | ZoomAnimName="Raise" 37 | ZoomAnimRate=2.0 38 | ZoomTime=0.33 39 | Description="Light Anti-tank Weapon. Designed to punch through armored vehicles... but can't kill even a Scrake! Maybe because he doesn't wear armor to punch through ^^" 40 | PickupClass=class'ScrnLAWPickup' 41 | AttachmentClass=class'ScrnLAWAttachment' 42 | ItemName="LAW SE" 43 | bHoldToReload=false // to show correct ammo amount on classic hud 44 | } 45 | -------------------------------------------------------------------------------- /Classes/ScrnKnifeFire.uc: -------------------------------------------------------------------------------- 1 | class ScrnKnifeFire extends ScrnMeleeFire; 2 | 3 | var name LastFireAnim; 4 | 5 | 6 | function PlayFiring() 7 | { 8 | Super.PlayFiring(); 9 | } 10 | 11 | event ModeDoFire() 12 | { 13 | if (FireAnims.length > 0) { 14 | LastFireAnim = FireAnim; 15 | FireAnim = FireAnims[rand(FireAnims.length)]; 16 | DamagedelayMin = default.DamagedelayMin; 17 | // 3 and 2 should never play consecutively. it looks screwey. 18 | // 3 should never repeat directly after itself. buffer with 1 19 | if ((LastFireAnim == FireAnims[1] && FireAnim == FireAnims[2]) 20 | || (LastFireAnim == FireAnims[2] && FireAnim == FireAnims[1]) 21 | || (LastFireAnim == FireAnims[2] && FireAnim == FireAnims[2])) 22 | FireAnim = FireAnims[0]; 23 | } 24 | Super(KFMeleeFire).ModeDoFire(); 25 | } 26 | 27 | defaultproperties 28 | { 29 | bWaitForRelease = false; 30 | FireAnims(0)="Fire" 31 | FireAnims(1)="Fire2" 32 | FireAnims(2)="fire3" 33 | FireAnims(3)="Fire4" 34 | MeleeDamage=19 35 | DamagedelayMin=0.450000 36 | DamagedelayMax=0.450000 37 | hitDamageClass=Class'KFMod.DamTypeKnife' 38 | MeleeHitSounds(0)=SoundGroup'KF_KnifeSnd.Knife_HitFlesh' 39 | HitEffectClass=Class'KFMod.KnifeHitEffect' 40 | WideDamageMinHitAngle=0 41 | FireRate=0.600000 42 | BotRefireRate=0.300000 43 | } -------------------------------------------------------------------------------- /Classes/ScrnFlameThrowerFlameB.uc: -------------------------------------------------------------------------------- 1 | class ScrnFlameThrowerFlameB extends FlameThrowerFlameB; 2 | 3 | simulated function PostNetBeginPlay() 4 | { 5 | local ScrnFlameThrowerFlameB Other; 6 | local float DistSq; 7 | 8 | Super.PostNetBeginPlay(); 9 | 10 | if (Level.NetMode == NM_DedicatedServer || !bDynamicLight) 11 | return; 12 | 13 | // Level.DetailMode = "World Detail" in the game settings 14 | if (Level.bDropDetail || Level.DetailMode == DM_Low) { 15 | bDynamicLight = false; 16 | LightType = LT_None; 17 | return; 18 | } 19 | 20 | if (Level.DetailMode == DM_SuperHigh) { 21 | // each second flame will have DL while holding M1 22 | DistSq = 62500; // 5m 23 | } 24 | else { 25 | // each 4th flame will have DL while holding M1 26 | DistSq = 160000; // 8m 27 | } 28 | 29 | foreach DynamicActors(class'ScrnFlameThrowerFlameB', Other) { 30 | if (Other != self && Other.bDynamicLight && VSizeSquared(Other.Location - Location) < DistSq) { 31 | bDynamicLight = false; 32 | LightType = LT_None; 33 | return; 34 | } 35 | } 36 | } 37 | 38 | defaultproperties 39 | { 40 | LightType=LT_Pulse 41 | LightHue=30 42 | LightSaturation=100 43 | LightBrightness=300.000000 44 | LightRadius=4.000000 45 | bNoDelete=False 46 | bDynamicLight=True 47 | } -------------------------------------------------------------------------------- /make.cmd: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | setlocal 4 | color 07 5 | 6 | set CURDIR=%~dp0 7 | if not exist ..\ScrnMakeEnv.cmd ( 8 | set /A ERR=101 9 | echo ..\ScrnMakeEnv.cmd not found! 10 | echo Using the sample file as a temlate... 11 | copy /-Y Docs\make\ScrnMakeEnv.sample ..\ScrnMakeEnv.cmd ^ 12 | && powershell -command "start -verb edit ..\ScrnMakeEnv.cmd" ^ 13 | || notepad ..\ScrnMakeEnv.cmd 14 | echo Change the environmental variables in ScrnMakeEnv.cmd according to your system 15 | goto end 16 | ) 17 | call ..\ScrnMakeEnv.cmd %CURDIR% 18 | 19 | cd /D %KFDIR%\System 20 | del %KFPACKAGE%.u 21 | 22 | ucc make 23 | set /A ERR=%ERRORLEVEL% 24 | if %ERR% NEQ 0 goto error 25 | 26 | color 0A 27 | del KillingFloor.log 2>nul 28 | del steam_appid.txt 2>nul 29 | 30 | del %STEAMDIR%\System\KillingFloor.log 2>nul 31 | del %STEAMDIR%\System\steam_appid.txt 2>nul 32 | 33 | xcopy /F /I /Y %KFPACKAGE%.u %STEAMDIR%\System\ 34 | xcopy /F /I /Y %KFPACKAGE%.ucl %STEAMDIR%\System\ 35 | xcopy /F /I /Y %KFPACKAGE%.int %STEAMDIR%\System\ 36 | 37 | echo -------------------------------- 38 | echo Compile successful. 39 | echo -------------------------------- 40 | goto end 41 | 42 | :error 43 | color 0C 44 | echo ################################ 45 | echo Compile ERROR! Code = %ERR%. 46 | echo ################################ 47 | 48 | :end 49 | cd /D %CURDIR% 50 | endlocal & SET _EC=%ERR% 51 | exit /b %_EC% 52 | --------------------------------------------------------------------------------