Patch [Version 0.3.4 "Private balance round #3"]
This commit is contained in:
parent
78b4dfeb29
commit
c536198a52
@ -44,8 +44,10 @@ State MatchInProgress{
|
||||
WaveNum = InitialWave;
|
||||
InvasionGameReplicationInfo(GameReplicationInfo).WaveNumber = WaveNum;
|
||||
|
||||
if(NicePackMutator.bInitialTrader)
|
||||
if(NicePackMutator.bInitialTrader) {
|
||||
WaveCountDown = NicePackMutator.initialTraderTime + 5;
|
||||
NicePackMutator.TraderStart();
|
||||
}
|
||||
else
|
||||
WaveCountDown = 10;
|
||||
|
||||
@ -67,6 +69,136 @@ State MatchInProgress{
|
||||
NicePackMutator.WaveStart();
|
||||
}
|
||||
}
|
||||
|
||||
function ScoreKill(Controller Killer, Controller Other)
|
||||
{
|
||||
local PlayerReplicationInfo OtherPRI;
|
||||
local float KillScore;
|
||||
local Controller C;
|
||||
|
||||
OtherPRI = Other.PlayerReplicationInfo;
|
||||
if ( OtherPRI != None )
|
||||
{
|
||||
OtherPRI.NumLives++;
|
||||
OtherPRI.Score -= (OtherPRI.Score * (GameDifficulty * 0.05)); // you Lose 35% of your current cash on Hell on Earth, 15% on normal.
|
||||
OtherPRI.Team.Score -= (OtherPRI.Score * (GameDifficulty * 0.05));
|
||||
|
||||
if (OtherPRI.Score < 0 )
|
||||
OtherPRI.Score = 0;
|
||||
if (OtherPRI.Team.Score < 0 )
|
||||
OtherPRI.Team.Score = 0;
|
||||
|
||||
OtherPRI.Team.NetUpdateTime = Level.TimeSeconds - 1;
|
||||
OtherPRI.bOutOfLives = true;
|
||||
if( Killer!=None && Killer.PlayerReplicationInfo!=None && Killer.bIsPlayer )
|
||||
BroadcastLocalizedMessage(class'KFInvasionMessage',1,OtherPRI,Killer.PlayerReplicationInfo);
|
||||
else if( Killer==None || Monster(Killer.Pawn)==None )
|
||||
BroadcastLocalizedMessage(class'KFInvasionMessage',1,OtherPRI);
|
||||
else BroadcastLocalizedMessage(class'KFInvasionMessage',1,OtherPRI,,Killer.Pawn.Class);
|
||||
CheckScore(None);
|
||||
}
|
||||
|
||||
if ( GameRulesModifiers != None )
|
||||
GameRulesModifiers.ScoreKill(Killer, Other);
|
||||
|
||||
if ( MonsterController(Killer) != None )
|
||||
return;
|
||||
|
||||
if( (killer == Other) || (killer == None) )
|
||||
{
|
||||
if ( Other.PlayerReplicationInfo != None )
|
||||
{
|
||||
Other.PlayerReplicationInfo.Score -= 1;
|
||||
Other.PlayerReplicationInfo.NetUpdateTime = Level.TimeSeconds - 1;
|
||||
ScoreEvent(Other.PlayerReplicationInfo,-1,"self_frag");
|
||||
}
|
||||
}
|
||||
|
||||
if ( Killer==None || !Killer.bIsPlayer || (Killer==Other) )
|
||||
return;
|
||||
|
||||
if ( Other.bIsPlayer )
|
||||
{
|
||||
Killer.PlayerReplicationInfo.Score -= 5;
|
||||
Killer.PlayerReplicationInfo.Team.Score -= 2;
|
||||
Killer.PlayerReplicationInfo.NetUpdateTime = Level.TimeSeconds - 1;
|
||||
Killer.PlayerReplicationInfo.Team.NetUpdateTime = Level.TimeSeconds - 1;
|
||||
ScoreEvent(Killer.PlayerReplicationInfo, -5, "team_frag");
|
||||
return;
|
||||
}
|
||||
if ( LastKilledMonsterClass == None )
|
||||
KillScore = 1;
|
||||
else if(Killer.PlayerReplicationInfo !=none)
|
||||
{
|
||||
KillScore = LastKilledMonsterClass.Default.ScoringValue;
|
||||
|
||||
// Scale killscore by difficulty
|
||||
if ( GameDifficulty >= 5.0 ) // Suicidal and Hell on Earth
|
||||
{
|
||||
KillScore *= 0.65;
|
||||
}
|
||||
else if ( GameDifficulty >= 4.0 ) // Hard
|
||||
{
|
||||
KillScore *= 0.85;
|
||||
}
|
||||
else if ( GameDifficulty >= 2.0 ) // Normal
|
||||
{
|
||||
KillScore *= 1.0;
|
||||
}
|
||||
else //if ( GameDifficulty == 1.0 ) // Beginner
|
||||
{
|
||||
KillScore *= 2.0;
|
||||
}
|
||||
|
||||
// Increase score in a short game, so the player can afford to buy cool stuff by the end
|
||||
if( KFGameLength == GL_Short )
|
||||
{
|
||||
KillScore *= 1.75;
|
||||
}
|
||||
|
||||
KillScore = Max(1,int(KillScore));
|
||||
if (NicePackMutator.bUseProgresiveCash) {
|
||||
KillScore = 0;
|
||||
}
|
||||
Killer.PlayerReplicationInfo.Kills++;
|
||||
|
||||
ScoreKillAssists(KillScore, Other, Killer);
|
||||
|
||||
Killer.PlayerReplicationInfo.Team.Score += KillScore;
|
||||
Killer.PlayerReplicationInfo.NetUpdateTime = Level.TimeSeconds - 1;
|
||||
Killer.PlayerReplicationInfo.Team.NetUpdateTime = Level.TimeSeconds - 1;
|
||||
TeamScoreEvent(Killer.PlayerReplicationInfo.Team.TeamIndex, 1, "tdm_frag");
|
||||
}
|
||||
|
||||
if (Killer.PlayerReplicationInfo !=none && Killer.PlayerReplicationInfo.Score < 0)
|
||||
Killer.PlayerReplicationInfo.Score = 0;
|
||||
|
||||
|
||||
/* Begin Marco's Kill Messages */
|
||||
|
||||
if( Class'HUDKillingFloor'.Default.MessageHealthLimit<=Other.Pawn.Default.Health ||
|
||||
Class'HUDKillingFloor'.Default.MessageMassLimit<=Other.Pawn.Default.Mass )
|
||||
{
|
||||
for( C=Level.ControllerList; C!=None; C=C.nextController )
|
||||
{
|
||||
if( C.bIsPlayer && xPlayer(C)!=None )
|
||||
{
|
||||
xPlayer(C).ReceiveLocalizedMessage(Class'KillsMessage',1,Killer.PlayerReplicationInfo,,Other.Pawn.Class);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( xPlayer(Killer)!=None )
|
||||
{
|
||||
xPlayer(Killer).ReceiveLocalizedMessage(Class'KillsMessage',,,,Other.Pawn.Class);
|
||||
}
|
||||
}
|
||||
|
||||
/* End Marco's Kill Messages */
|
||||
|
||||
}
|
||||
|
||||
function DramaticEvent(float BaseZedTimePossibility, optional float DesiredZedTimeDuration){
|
||||
local bool bWasZedTime;
|
||||
bWasZedTime = bZEDTimeActive;
|
||||
|
@ -10,9 +10,9 @@ var config bool bInitialTrader; // Use initial trader system?
|
||||
var config bool bStillDuringInitTrader; // Force players to stand still during initial trader
|
||||
var config int initialTraderTime; // How much time should be allowed for initial trade?
|
||||
// Progressive dosh config
|
||||
var config bool bUseProgresiveCash; // Use progressive dosh system?
|
||||
var config int startupCashBeg, startupCashNormal, startupCashHard, startupCashSui, startupCashHOE; // Cash given to player for joining for the first time on current map
|
||||
var config int waveCashBeg, waveCashNormal, waveCashHard, waveCashSui, waveCashHOE; // Cash that should be given to players for each wave they've skipped
|
||||
var config bool bUseProgresiveCash; // Use progressive dosh system?
|
||||
var config array<int> waveCash;
|
||||
var config float lateMultiplier;
|
||||
// Experience-conversion controlling variables
|
||||
var config bool bConvertExp; // Should we even convert old exp into a new one?
|
||||
var config float vetFieldMedicExpCost; // Amount of exp per HP healed
|
||||
@ -504,6 +504,9 @@ simulated function bool CheckReplacement(Actor Other, out byte bSuperRelevant){
|
||||
}
|
||||
niceMonster = NiceMonster(Other);
|
||||
if(niceMonster != none){
|
||||
if (bUseProgresiveCash) {
|
||||
niceMonster.ScoringValue = 0;
|
||||
}
|
||||
// Add hardcore level
|
||||
for(i = 0;i < ZedDatabase.Length;i ++){
|
||||
HLBonus = 0.0;
|
||||
@ -608,30 +611,35 @@ simulated function AddWeapProgress(class<NiceWeapon> weapClass, float progress,
|
||||
simulated function ClearWeapProgress(){
|
||||
niceWeapProgressSet.Length = 0;
|
||||
}
|
||||
// Returns cash per wave based on current difficulty
|
||||
// Returns cash per wave based on current difficulty
|
||||
function int GetWaveCash(int lastCashWave, int nextWave){
|
||||
local int i;
|
||||
local int accumulatedDosh;
|
||||
for (i = lastCashWave; i < nextWave; i += 1) {
|
||||
accumulatedDosh += waveCash[i];
|
||||
}
|
||||
if (lastCashWave + 1 < nextWave) {
|
||||
accumulatedDosh *= lateMultiplier;
|
||||
}
|
||||
return accumulatedDosh;
|
||||
}
|
||||
// Gives out appropriate (for the wave he entered) amount of dosh to the player
|
||||
function GiveProgressiveDosh(NicePlayerController nicePlayer){
|
||||
local int wavesPassed;
|
||||
local PlayerRecord record;
|
||||
local class<NiceVeterancyTypes> niceVet;
|
||||
local int nextWave;
|
||||
local PlayerRecord record;
|
||||
// Too early to give dosh
|
||||
if(!ScrnGT.IsInState('MatchInProgress'))
|
||||
return;
|
||||
// Real spectators shouldn't be affected
|
||||
if(!nicePlayer.PlayerReplicationInfo.bOnlySpectator){
|
||||
record = FindPlayerRecord(nicePlayer.steamID64);
|
||||
if(record.lastCashWave == -1){
|
||||
nicePlayer.PlayerReplicationInfo.Score += GetStartupCash();
|
||||
record.lastCashWave = 0;
|
||||
niceVet = class'NiceVeterancyTypes'.static.GetVeterancy(nicePlayer.PlayerReplicationInfo);
|
||||
if(niceVet != none && niceVet.default.bNewTypePerk)
|
||||
nicePlayer.PlayerReplicationInfo.Score += 100;
|
||||
}
|
||||
wavesPassed = ScrnGT.WaveNum; // At a trader (and that's the only time this function should be called) 'WaveNum' is already a number of the next wave, so no need for '+1' here
|
||||
if(wavesPassed > record.lastCashWave)
|
||||
nicePlayer.PlayerReplicationInfo.Score += (wavesPassed - record.lastCashWave) * GetWaveCash();
|
||||
record.lastCashWave = wavesPassed;
|
||||
UpdatePlayerRecord(record);
|
||||
}
|
||||
if(nicePlayer == none) return;
|
||||
if(nicePlayer.PlayerReplicationInfo.bIsSpectator) return;
|
||||
if(nicePlayer.PlayerReplicationInfo.bOnlySpectator) return;
|
||||
record = FindPlayerRecord(nicePlayer.steamID64);
|
||||
nextWave = ScrnGT.WaveNum + 1;
|
||||
nicePlayer.PlayerReplicationInfo.Score += GetWaveCash(record.lastCashWave, nextWave);
|
||||
record.lastCashWave = nextWave;
|
||||
UpdatePlayerRecord(record);
|
||||
}
|
||||
simulated function Mutate(string MutateString, PlayerController kfPlayer){
|
||||
local int i, readLenght;
|
||||
@ -669,6 +677,7 @@ simulated function Mutate(string MutateString, PlayerController kfPlayer){
|
||||
i ++;
|
||||
}
|
||||
nicePlayer = NicePlayerController(kfPlayer);
|
||||
Log("UMBRA" @ command);
|
||||
if(command ~= "ECHO")
|
||||
kfPlayer.ClientMessage(Mid(MutateString, 5));
|
||||
else if(command ~= "ZED" && bAlwaysAllowSkillChange)
|
||||
@ -786,7 +795,6 @@ function MatchBegan(){
|
||||
// Called when new wave begins
|
||||
function WaveStart(){
|
||||
local Controller P;
|
||||
local PlayerRecord record;
|
||||
local NiceHumanPawn nicePawn;
|
||||
local NicePlayerController nicePlayer;
|
||||
bIsPreGame = false;
|
||||
@ -794,12 +802,6 @@ function WaveStart(){
|
||||
for(P = Level.ControllerList; P != none; P = P.nextController){
|
||||
nicePlayer = NicePlayerController(P);
|
||||
if(nicePlayer != none){
|
||||
// Update records
|
||||
if(!nicePlayer.PlayerReplicationInfo.bIsSpectator && !nicePlayer.PlayerReplicationInfo.bOnlySpectator){
|
||||
record = FindPlayerRecord(nicePlayer.steamID64);
|
||||
record.lastCashWave = ScrnGT.WaveNum + 1;
|
||||
UpdatePlayerRecord(record);
|
||||
}
|
||||
// Give out armor
|
||||
nicePawn = NiceHumanPawn(nicePlayer.Pawn);
|
||||
if(nicePawn != none && nicePawn.Health > 0){
|
||||
@ -817,7 +819,7 @@ function WaveStart(){
|
||||
GameRules.RaiseHardcoreLevel(0.5 * ScrnMut.GameRules.HardcoreLevelFloat, "low player count");
|
||||
}
|
||||
}
|
||||
// Called when trader time begins (not the initial one)
|
||||
// Called when trader time begins
|
||||
simulated function TraderStart(){
|
||||
local Controller P;
|
||||
local NiceHumanPawn nicePawn;
|
||||
@ -829,6 +831,9 @@ simulated function TraderStart(){
|
||||
nicePlayer.TryActivatePendingSkills();
|
||||
nicePlayer.ClientSaveConfig();
|
||||
nicePawn = NiceHumanPawn(nicePlayer.Pawn);
|
||||
if (bUseProgresiveCash) {
|
||||
GiveProgressiveDosh(nicePlayer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -848,33 +853,6 @@ simulated function ZedTimeDeactivated(){
|
||||
Player.bJunkieExtFailed = false;
|
||||
}
|
||||
}
|
||||
// Utility functions
|
||||
// Returns startup cash based on current difficulty
|
||||
function int GetStartupCash(){
|
||||
if(Level.Game.GameDifficulty < 2.0)
|
||||
return startupCashBeg;
|
||||
else if(Level.Game.GameDifficulty < 4.0)
|
||||
return startupCashNormal;
|
||||
else if(Level.Game.GameDifficulty < 5.0)
|
||||
return startupCashHard;
|
||||
else if(Level.Game.GameDifficulty < 7.0)
|
||||
return startupCashSui;
|
||||
else
|
||||
return startupCashHOE;
|
||||
}
|
||||
// Returns cash per wave based on current difficulty
|
||||
function int GetWaveCash(){
|
||||
if(Level.Game.GameDifficulty < 2.0)
|
||||
return waveCashBeg;
|
||||
else if(Level.Game.GameDifficulty < 4.0)
|
||||
return waveCashNormal;
|
||||
else if(Level.Game.GameDifficulty < 5.0)
|
||||
return waveCashHard;
|
||||
else if(Level.Game.GameDifficulty < 7.0)
|
||||
return waveCashSui;
|
||||
else
|
||||
return waveCashHOE;
|
||||
}
|
||||
// Returns player record, corresponding to the given steam id
|
||||
function PlayerRecord FindPlayerRecord(string steamID){
|
||||
local int i;
|
||||
@ -884,7 +862,7 @@ function PlayerRecord FindPlayerRecord(string steamID){
|
||||
return PlayerDatabase[i];
|
||||
newRecord.steamID = steamID;
|
||||
newRecord.bHasSpawned = false;
|
||||
newRecord.lastCashWave = -1;
|
||||
newRecord.lastCashWave = 0;
|
||||
newRecord.kills = 0;
|
||||
newRecord.assists = 0;
|
||||
newRecord.deaths = 0;
|
||||
@ -1089,16 +1067,15 @@ defaultproperties
|
||||
bInitialTrader=True
|
||||
initialTraderTime=10
|
||||
bUseProgresiveCash=True
|
||||
startupCashBeg=500
|
||||
startupCashNormal=500
|
||||
startupCashHard=500
|
||||
startupCashSui=400
|
||||
startupCashHOE=400
|
||||
waveCashBeg=350
|
||||
waveCashNormal=300
|
||||
waveCashHard=200
|
||||
waveCashSui=150
|
||||
waveCashHOE=150
|
||||
waveCash(0)=1000
|
||||
waveCash(1)=900
|
||||
waveCash(2)=800
|
||||
waveCash(3)=650
|
||||
waveCash(4)=600
|
||||
waveCash(5)=450
|
||||
waveCash(6)=350
|
||||
waveCash(7)=250
|
||||
lateMultiplier=0.5
|
||||
bConvertExp=True
|
||||
vetFieldMedicExpCost=2.000000
|
||||
vetFieldMedicDmgExpCost=0.025000
|
||||
|
@ -44,6 +44,29 @@ static function float GetMovementSpeedModifier(KFPlayerReplicationInfo KFPRI, KF
|
||||
static function float GetReloadSpeedModifierStatic(KFPlayerReplicationInfo KFPRI, class<KFWeapon> Other){
|
||||
return 1.3;
|
||||
}
|
||||
static function float GetFireSpeedModStatic(KFPlayerReplicationInfo KFPRI, class<Weapon> other){
|
||||
local float fireSpeed;
|
||||
local NicePlayerController nicePlayer;
|
||||
local class<NiceWeaponPickup> pickupClass;
|
||||
pickupClass = GetPickupFromWeapon(other);
|
||||
if(KFPRI.Owner == none)
|
||||
return 1.0;
|
||||
if(IsPerkedPickup(pickupClass) && HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillCommandoOverclocking'))
|
||||
fireSpeed = class'NiceSkillHeavyOverclocking'.default.fireSpeedMult;
|
||||
else
|
||||
fireSpeed = 1.0;
|
||||
nicePlayer = NicePlayerController(KFPRI.Owner);
|
||||
return fireSpeed;
|
||||
}
|
||||
static function float ModifyRecoilSpread(KFPlayerReplicationInfo KFPRI, WeaponFire other, out float Recoil){
|
||||
local class<NiceWeaponPickup> pickupClass;
|
||||
pickupClass = GetPickupFromWeaponFire(other);
|
||||
if(IsPerkedPickup(pickupClass) && HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillCommandoOverclocking'))
|
||||
Recoil = class'NiceSkillCommandoOverclocking'.default.fireSpeedMult;
|
||||
else
|
||||
Recoil = 1.0;
|
||||
return Recoil;
|
||||
}
|
||||
static function int ZedTimeExtensions(KFPlayerReplicationInfo KFPRI){
|
||||
/*if(HasSkill(NicePlayerController(KFPRI.Owner), class'NiceSkillCommandoTactitian'))
|
||||
return class'NiceSkillCommandoTactitian'.default.bonusExt + 3;*/
|
||||
@ -60,9 +83,9 @@ defaultproperties
|
||||
SkillGroupA(2)=Class'NicePack.NiceSkillCommandoPerfectExecution'
|
||||
//SkillGroupA(3)=Class'NicePack.'
|
||||
SkillGroupA(4)=Class'NicePack.NiceSkillCommandoZEDProfessional'
|
||||
SkillGroupB(0)=Class'NicePack.NiceSkillCommandoAdrenalineShot'
|
||||
SkillGroupB(1)=Class'NicePack.NiceSkillCommandoRegeneration'
|
||||
SkillGroupB(2)=Class'NicePack.NiceSkillCommandoTranquilizer'
|
||||
SkillGroupB(0)=Class'NicePack.NiceSkillCommandoRegeneration'
|
||||
SkillGroupB(1)=Class'NicePack.NiceSkillCommandoQuickermags'
|
||||
SkillGroupB(2)=Class'NicePack.NiceSkillCommandoOverclocking'
|
||||
//SkillGroupB(3)=Class'NicePack.'
|
||||
SkillGroupB(4)=Class'NicePack.NiceSkillCommandoZEDHeavenCanceller'
|
||||
progressArray0(0)=100
|
||||
|
@ -3,7 +3,7 @@ class NiceSkillCommandoExplosivePower extends NiceSkill
|
||||
var float dmgMod;
|
||||
defaultproperties
|
||||
{
|
||||
dmgMod=1.200000
|
||||
dmgMod=1.000000
|
||||
SkillName="Explosive power"
|
||||
SkillEffects="Burst fire deals 20% more damage and has reduced delay between shots."
|
||||
SkillEffects="Burst fire shots one more bullet."
|
||||
}
|
||||
|
@ -0,0 +1,9 @@
|
||||
class NiceSkillCommandoOverclocking extends NiceSkill
|
||||
abstract;
|
||||
var float fireSpeedMult;
|
||||
defaultproperties
|
||||
{
|
||||
fireSpeedMult=1.300000
|
||||
SkillName="Overclocking"
|
||||
SkillEffects="+30% fire speed with perked weapons. Don't ask, it just works."
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
class NiceSkillCommandoQuickerMags extends NiceSkill
|
||||
abstract;
|
||||
var float speedBonus;
|
||||
defaultproperties
|
||||
{
|
||||
speedBonus=2.000000
|
||||
SkillName="Quicker mags"
|
||||
SkillEffects="Active reload speed is twice as fast."
|
||||
}
|
@ -4,8 +4,11 @@ class NiceVeterancyTypes extends ScrnVeterancyTypes
|
||||
// Temporarily needed variable to distinguish between new and old type perks
|
||||
var bool bNewTypePerk;
|
||||
// Skills
|
||||
var bool isDualPerk;
|
||||
var class<NiceSkill> SkillGroupA[5];
|
||||
var class<NiceSkill> SkillGroupB[5];
|
||||
var class<NiceSkill> AltSkillGroupA[4];
|
||||
var class<NiceSkill> AltSkillGroupB[4];
|
||||
// Checks if player is can use given skill
|
||||
static function bool CanUseSkill(NicePlayerController nicePlayer, class<NiceSkill> skill){
|
||||
local int i;
|
||||
|
@ -0,0 +1,13 @@
|
||||
class NiceSkillSpecialtyGunslinger extends NiceSkill
|
||||
abstract;
|
||||
|
||||
var float reloadMultiplier;
|
||||
var float movementMultiplier;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
reloadMultiplier = 1.25
|
||||
movementMultiplier = 1.15;
|
||||
SkillName="Gunslinger"
|
||||
SkillEffects="Specialization in handling your guns comes with 25% faster reload and 15% faster movement."
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
class NiceSkillSpecialtySharpshooter extends NiceSkill
|
||||
abstract;
|
||||
|
||||
var float hsMultiplier;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
hsMultiplier = 1.25;
|
||||
SkillName="Sharpshooter"
|
||||
SkillEffects="Specialization in making calculated, precision shots comes with 25% more headshot damage."
|
||||
}
|
@ -1,4 +1,5 @@
|
||||
class NiceDualies extends NiceWeapon;
|
||||
var bool startedWithFullPistol;
|
||||
var class<NiceSingle> SingleClass;
|
||||
var name altFlashBoneName;
|
||||
var name altTPAnim;
|
||||
@ -45,6 +46,22 @@ simulated function SetupDualReloadEvents(){
|
||||
record.eventFrame = rightInsert;
|
||||
relEvents[relEvents.Length] = record;
|
||||
}
|
||||
exec simulated function ClientReloadMeNow(){
|
||||
startedWithFullPistol = false;
|
||||
if ( MagAmmoRemLeftClient >= GetSingleMagCapacity()
|
||||
|| MagAmmoRemRightClient >= GetSingleMagCapacity()) {
|
||||
startedWithFullPistol = true;
|
||||
}
|
||||
super.ClientReloadMeNow();
|
||||
}
|
||||
simulated function float GetCurrentReloadMult(){
|
||||
local float normalMultiplier;
|
||||
normalMultiplier = super.GetCurrentReloadMult();
|
||||
if (startedWithFullPistol) {
|
||||
return normalMultiplier * 2;
|
||||
}
|
||||
return normalMultiplier;
|
||||
}
|
||||
// Don't use that one for dualies
|
||||
simulated function AddReloadedAmmo(){}
|
||||
// Use this one
|
||||
|
@ -50,7 +50,7 @@ function ServerSwitchToOtherSingle(){
|
||||
MagAmmoRemaining = otherMagazine;
|
||||
otherMagazine = swap;
|
||||
ClientSetMagSize(MagAmmoRemaining, bRoundInChamber);
|
||||
//nicePawn.ClientChangeWeapon(self);
|
||||
nicePawn.ClientChangeWeapon(self);
|
||||
}
|
||||
function ServerSwitchToDual(){
|
||||
local int m;
|
||||
|
@ -144,7 +144,13 @@ simulated function PostBeginPlay(){
|
||||
super.PostBeginPlay();
|
||||
}
|
||||
simulated function int GetBurstLength(){
|
||||
return currentContext.burstLength;
|
||||
local NicePlayerController nicePlayer;
|
||||
if(Instigator != none)
|
||||
nicePlayer = NicePlayerController(Instigator.Controller);
|
||||
if(nicePlayer != none && class'NiceVeterancyTypes'.static.hasSkill(nicePlayer, class'NiceSkillCommandoExplosivePower')) {
|
||||
return currentContext.burstLength + 1;
|
||||
}
|
||||
return currentContext.burstLength;
|
||||
}
|
||||
simulated function ModeTick(float delta){
|
||||
local float headLevel;
|
||||
|
@ -1122,6 +1122,7 @@ exec function ReloadMeNow(){
|
||||
}
|
||||
simulated function float GetCurrentReloadMult(){
|
||||
local float ReloadMulti;
|
||||
local float actualActiveSpeedUp;
|
||||
local float timeDilationSpeedup;
|
||||
local NiceHumanPawn nicePawn;
|
||||
local NicePlayerController nicePlayer;
|
||||
@ -1137,12 +1138,16 @@ simulated function float GetCurrentReloadMult(){
|
||||
if(bGiveObsessiveBonus)
|
||||
ReloadMulti *= class'NiceSkillSupportObsessive'.default.reloadBonus;
|
||||
// Active reload speedup
|
||||
actualActiveSpeedUp = activeSpeedup;
|
||||
if (nicePlayer != none && niceVet.static.hasSkill(nicePlayer, class'NiceSkillCommandoQuickerMags')) {
|
||||
actualActiveSpeedUp *= 2;
|
||||
}
|
||||
if(activeReloadState == ACTR_SUCCESS)
|
||||
ReloadMulti *= activeSpeedup;
|
||||
ReloadMulti *= actualActiveSpeedUp;
|
||||
else if(activeReloadState == ACTR_FAIL)
|
||||
ReloadMulti *= activeSlowdown;
|
||||
else if(bCanActiveReload && reloadType == RTYPE_SINGLE && subReloadStage == 0)
|
||||
ReloadMulti *= activeSpeedup;
|
||||
ReloadMulti *= actualActiveSpeedUp;
|
||||
if(nicePlayer != none && niceVet.static.hasSkill(nicePlayer, class'NiceSkillCommandoZEDProfessional')) {
|
||||
timeDilationSpeedup = (1.1 / Level.TimeDilation);
|
||||
}
|
||||
|
@ -9,7 +9,7 @@ defaultproperties
|
||||
reloadMagStartFrame=0.363000
|
||||
reloadChargeStartFrame=0.726000
|
||||
MagazineBone="Bone_Magazine"
|
||||
MagCapacity=30
|
||||
MagCapacity=40
|
||||
ReloadRate=3.000000
|
||||
ReloadAnim="Reload"
|
||||
ReloadAnimRate=1.000000
|
||||
|
@ -1,12 +1,13 @@
|
||||
class NiceAK12Fire extends NiceFire;
|
||||
defaultproperties
|
||||
{
|
||||
MaxBurstLength=4
|
||||
zedTimeFireSpeedUp=1.500000
|
||||
ProjectileSpeed=44000.000000
|
||||
FireAimedAnim="Fire_Iron"
|
||||
RecoilRate=0.040000
|
||||
maxVerticalRecoilAngle=240
|
||||
maxHorizontalRecoilAngle=120
|
||||
maxVerticalRecoilAngle=160
|
||||
maxHorizontalRecoilAngle=80
|
||||
ShellEjectClass=Class'ScrnWeaponPack.KFShellEjectAK12AR'
|
||||
ShellEjectBoneName="Shell_eject"
|
||||
bAccuracyBonusForSemiAuto=True
|
||||
|
@ -3,7 +3,8 @@ defaultproperties
|
||||
{
|
||||
Weight=6.000000
|
||||
cost=750
|
||||
BuyClipSize=30
|
||||
AmmoCost=19
|
||||
BuyClipSize=40
|
||||
PowerValue=55
|
||||
SpeedValue=80
|
||||
RangeValue=30
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=6.000000
|
||||
cost=750
|
||||
AmmoCost=30
|
||||
AmmoCost=19
|
||||
BuyClipSize=30
|
||||
PowerValue=40
|
||||
SpeedValue=80
|
||||
|
@ -4,6 +4,7 @@ defaultproperties
|
||||
bBackupWeapon=True
|
||||
Weight=5.000000
|
||||
cost=200
|
||||
AmmoCost=6
|
||||
BuyClipSize=30
|
||||
PowerValue=24
|
||||
SpeedValue=90
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=8.000000
|
||||
cost=1250
|
||||
AmmoCost=40
|
||||
AmmoCost=28
|
||||
BuyClipSize=20
|
||||
PowerValue=45
|
||||
SpeedValue=90
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=5.000000
|
||||
cost=250
|
||||
AmmoCost=10
|
||||
AmmoCost=7
|
||||
BuyClipSize=15
|
||||
PowerValue=45
|
||||
SpeedValue=60
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=5.000000
|
||||
cost=500
|
||||
AmmoCost=20
|
||||
AmmoCost=16
|
||||
BuyClipSize=30
|
||||
PowerValue=30
|
||||
SpeedValue=90
|
||||
|
@ -2,9 +2,9 @@ class NiceM4M203NadeAmmo extends NiceAmmo;
|
||||
defaultproperties
|
||||
{
|
||||
WeaponPickupClass=Class'NicePack.NiceM4M203Pickup'
|
||||
AmmoPickupAmount=2
|
||||
MaxAmmo=12
|
||||
InitialAmount=3
|
||||
AmmoPickupAmount=1
|
||||
MaxAmmo=15
|
||||
InitialAmount=4
|
||||
PickupClass=Class'NicePack.NiceM4M203AmmoPickup'
|
||||
IconMaterial=Texture'KillingFloorHUD.Generic.HUD'
|
||||
IconCoords=(X1=4,Y1=350,X2=110,Y2=395)
|
||||
|
@ -4,7 +4,7 @@ defaultproperties
|
||||
crossPerkIndecies(0)=3
|
||||
Weight=6.000000
|
||||
cost=750
|
||||
AmmoCost=40
|
||||
AmmoCost=4
|
||||
BuyClipSize=1
|
||||
PowerValue=30
|
||||
SpeedValue=90
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=6.000000
|
||||
cost=750
|
||||
AmmoCost=30
|
||||
AmmoCost=22
|
||||
BuyClipSize=30
|
||||
PowerValue=40
|
||||
SpeedValue=85
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=8.000000
|
||||
cost=1250
|
||||
AmmoCost=40
|
||||
AmmoCost=28
|
||||
BuyClipSize=20
|
||||
PowerValue=45
|
||||
SpeedValue=85
|
||||
|
@ -2,8 +2,8 @@ class NiceCLGLAmmo extends NiceAmmo;
|
||||
defaultproperties
|
||||
{
|
||||
AmmoPickupAmount=4
|
||||
MaxAmmo=36
|
||||
InitialAmount=9
|
||||
MaxAmmo=30
|
||||
InitialAmount=6
|
||||
PickupClass=Class'NicePack.NiceCLGLAmmoPickup'
|
||||
IconMaterial=Texture'KillingFloorHUD.Generic.HUD'
|
||||
IconCoords=(X1=4,Y1=350,X2=110,Y2=395)
|
||||
|
@ -1,7 +1,7 @@
|
||||
class NiceCLGLAmmoPickup extends NiceAmmoPickup;
|
||||
defaultproperties
|
||||
{
|
||||
AmmoAmount=6
|
||||
AmmoAmount=4
|
||||
InventoryType=Class'NicePack.NiceCLGLAmmo'
|
||||
PickupMessage="CLGL Grenades"
|
||||
StaticMesh=StaticMesh'KillingFloorStatics.FragPickup'
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=6.000000
|
||||
cost=500
|
||||
AmmoCost=28
|
||||
AmmoCost=16
|
||||
BuyClipSize=4
|
||||
PowerValue=85
|
||||
SpeedValue=65
|
||||
|
@ -4,7 +4,7 @@ defaultproperties
|
||||
{
|
||||
Weight=9.000000
|
||||
cost=1250
|
||||
AmmoCost=30
|
||||
AmmoCost=13
|
||||
BuyClipSize=1
|
||||
PowerValue=100
|
||||
SpeedValue=20
|
||||
|
@ -2,7 +2,7 @@ class NiceM32Pickup extends NiceWeaponPickup;
|
||||
defaultproperties
|
||||
{
|
||||
Weight=7.000000
|
||||
AmmoCost=60
|
||||
AmmoCost=33
|
||||
cost=1000
|
||||
BuyClipSize=6
|
||||
PowerValue=85
|
||||
|
@ -4,8 +4,8 @@ defaultproperties
|
||||
crossPerkIndecies(0)=10
|
||||
Weight=4.000000
|
||||
cost=250
|
||||
AmmoCost=10
|
||||
BuyClipSize=3
|
||||
AmmoCost=4
|
||||
BuyClipSize=1
|
||||
PowerValue=85
|
||||
SpeedValue=5
|
||||
RangeValue=75
|
||||
|
@ -1,8 +1,8 @@
|
||||
class NicePipeBombPickup extends ScrnPipeBombPickup;
|
||||
defaultproperties
|
||||
{
|
||||
cost=100
|
||||
AmmoCost=100
|
||||
cost=50
|
||||
AmmoCost=50
|
||||
ItemName="Pipe Bomb NW"
|
||||
ItemShortName="Pipe Bomb NW"
|
||||
AmmoItemName="Pipe Bomb NW"
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=6.000000
|
||||
cost=750
|
||||
AmmoCost=30
|
||||
AmmoCost=22
|
||||
BuyClipSize=3
|
||||
PowerValue=90
|
||||
SpeedValue=35
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=7.000000
|
||||
cost=1250
|
||||
AmmoCost=250
|
||||
AmmoCost=125
|
||||
BuyClipSize=80
|
||||
PowerValue=62
|
||||
SpeedValue=92
|
||||
|
@ -4,7 +4,7 @@ defaultproperties
|
||||
{
|
||||
cost=250
|
||||
Weight=8.000000
|
||||
AmmoCost=45
|
||||
AmmoCost=12
|
||||
BuyClipSize=30
|
||||
PowerValue=49
|
||||
SpeedValue=86
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
cost=200
|
||||
Weight=5.000000
|
||||
AmmoCost=30
|
||||
AmmoCost=5
|
||||
BuyClipSize=30
|
||||
PowerValue=41
|
||||
SpeedValue=60
|
||||
|
@ -8,7 +8,7 @@ defaultproperties
|
||||
{
|
||||
Weight=7.000000
|
||||
cost=1000
|
||||
AmmoCost=100
|
||||
AmmoCost=33
|
||||
BuyClipSize=80
|
||||
PowerValue=40
|
||||
SpeedValue=100
|
||||
|
@ -3,7 +3,8 @@ defaultproperties
|
||||
{
|
||||
bBackupWeapon=True
|
||||
cost=100
|
||||
AmmoCost=8
|
||||
AmmoCost=5
|
||||
BuyClipSize=15
|
||||
Description="A 9mm handgun, with a functional laser sight and flashlight. The barrel has been replaced with one that can chamber hotter ammunition loads, meaning faster bullets, meaning more damage!"
|
||||
ItemName="Beretta"
|
||||
ItemShortName="9mm"
|
||||
|
@ -3,7 +3,8 @@ defaultproperties
|
||||
{
|
||||
bBackupWeapon=True
|
||||
cost=200
|
||||
AmmoCost=16
|
||||
BuyClipSize=30
|
||||
AmmoCost=10
|
||||
Description="A pair of custom 9mm handguns. These have been improved with a laser sight and more powerful ammunition"
|
||||
ItemName="Dual Berettas"
|
||||
ItemShortName="Dual Berettas"
|
||||
|
@ -2,7 +2,7 @@ class NiceContenderPickup extends NiceWeaponPickup;
|
||||
defaultproperties
|
||||
{
|
||||
Weight=3.000000
|
||||
AmmoCost=8
|
||||
AmmoCost=5
|
||||
cost=1000
|
||||
BuyClipSize=1
|
||||
PowerValue=60
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=2.000000
|
||||
cost=250
|
||||
AmmoCost=11
|
||||
AmmoCost=14
|
||||
BuyClipSize=8
|
||||
PowerValue=65
|
||||
SpeedValue=35
|
||||
|
@ -3,8 +3,8 @@ defaultproperties
|
||||
{
|
||||
Weight=4.000000
|
||||
cost=500
|
||||
AmmoCost=22
|
||||
BuyClipSize=8
|
||||
AmmoCost=28
|
||||
BuyClipSize=16
|
||||
PowerValue=85
|
||||
SpeedValue=35
|
||||
RangeValue=60
|
||||
|
@ -3,8 +3,9 @@ defaultproperties
|
||||
{
|
||||
bBackupWeapon=True
|
||||
Weight=4.000000
|
||||
cost=250
|
||||
BuyClipSize=12
|
||||
cost=200
|
||||
AmmoCost=6
|
||||
BuyClipSize=24
|
||||
PowerValue=70
|
||||
SpeedValue=45
|
||||
RangeValue=60
|
||||
|
@ -3,7 +3,8 @@ defaultproperties
|
||||
{
|
||||
bBackupWeapon=True
|
||||
Weight=2.000000
|
||||
cost=125
|
||||
cost=100
|
||||
AmmoCost=3
|
||||
BuyClipSize=12
|
||||
PowerValue=50
|
||||
SpeedValue=45
|
||||
|
@ -9,10 +9,11 @@ defaultproperties
|
||||
StereoFireSoundRef="KF_MK23Snd.MK23_Fire_S"
|
||||
NoAmmoSoundRef="KF_HandcannonSnd.50AE_DryFire"
|
||||
DamageType=Class'NicePack.NiceDamTypeMK23Pistol'
|
||||
DamageMin=55
|
||||
DamageMax=55
|
||||
DamageMin=42
|
||||
DamageMax=42
|
||||
Momentum=18000.000000
|
||||
NoAmmoSound=None
|
||||
bWaitForRelease=False
|
||||
FireRate=0.175000
|
||||
AmmoClass=Class'NicePack.NiceDualMK23Ammo'
|
||||
ShakeRotMag=(Z=290.000000)
|
||||
|
@ -3,8 +3,8 @@ defaultproperties
|
||||
{
|
||||
Weight=4.000000
|
||||
cost=500
|
||||
AmmoCost=32
|
||||
BuyClipSize=12
|
||||
AmmoCost=20
|
||||
BuyClipSize=24
|
||||
PowerValue=70
|
||||
SpeedValue=45
|
||||
RangeValue=60
|
||||
|
@ -26,6 +26,7 @@ defaultproperties
|
||||
LaserAttachmentBone="Tip_Right"
|
||||
altLaserAttachmentBone="Tip_Left"
|
||||
MagCapacity=24
|
||||
ReloadAnimRate=1.2
|
||||
ReloadRate=4.466700
|
||||
Weight=4.000000
|
||||
StandardDisplayFOV=60.000000
|
||||
|
@ -8,12 +8,13 @@ defaultproperties
|
||||
StereoFireSoundRef="KF_MK23Snd.MK23_Fire_S"
|
||||
NoAmmoSoundRef="KF_HandcannonSnd.50AE_DryFire"
|
||||
DamageType=Class'NicePack.NiceDamTypeMK23Pistol'
|
||||
DamageMin=55
|
||||
DamageMax=55
|
||||
DamageMin=42
|
||||
DamageMax=42
|
||||
Momentum=18000.000000
|
||||
FireLoopAnim=
|
||||
FireEndAnim=
|
||||
FireRate=0.350000
|
||||
bWaitForRelease=False
|
||||
AmmoClass=Class'NicePack.NiceMK23Ammo'
|
||||
ShakeRotMag=(Z=290.000000)
|
||||
ShakeRotRate=(X=10080.000000,Y=10080.000000)
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=2.000000
|
||||
cost=250
|
||||
AmmoCost=16
|
||||
AmmoCost=10
|
||||
BuyClipSize=12
|
||||
PowerValue=50
|
||||
SpeedValue=45
|
||||
|
@ -30,6 +30,7 @@ defaultproperties
|
||||
reloadMagStartFrame=0.286000
|
||||
reloadChargeStartFrame=-1.000000
|
||||
MagCapacity=12
|
||||
ReloadAnimRate=1.2
|
||||
ReloadRate=2.600000
|
||||
Weight=2.000000
|
||||
StandardDisplayFOV=60.000000
|
||||
|
@ -1,8 +1,8 @@
|
||||
class NiceDamTypeMagnumPistol extends NiceDamageTypeVetSharpshooter;
|
||||
defaultproperties
|
||||
{
|
||||
flinchMultiplier=2.5
|
||||
stunMultiplier=6.0
|
||||
flinchMultiplier=2
|
||||
stunMultiplier=3.75
|
||||
MaxPenetrations=2
|
||||
PenDmgReduction=0.990000
|
||||
HeadShotDamageMult=1.35
|
||||
|
@ -7,7 +7,7 @@ defaultproperties
|
||||
leftInsert=0.800000
|
||||
rightInsert=0.375000
|
||||
MagCapacity=12
|
||||
Weight=2.000000
|
||||
Weight=4.000000
|
||||
ReloadRate=2.23125
|
||||
ReloadAnimRate=1.5
|
||||
WeaponReloadAnim="Reload_DualRevolver"
|
||||
|
@ -1,10 +1,10 @@
|
||||
class NiceDualMagnumPickup extends NiceDualiesPickup;
|
||||
defaultproperties
|
||||
{
|
||||
Weight=2.000000
|
||||
Weight=4.000000
|
||||
cost=250
|
||||
AmmoCost=16
|
||||
BuyClipSize=6
|
||||
AmmoCost=10
|
||||
BuyClipSize=12
|
||||
PowerValue=80
|
||||
SpeedValue=50
|
||||
RangeValue=65
|
||||
|
@ -9,9 +9,10 @@ defaultproperties
|
||||
StereoFireSoundRef="KF_RevolverSnd.Revolver_Fire_S"
|
||||
NoAmmoSoundRef="KF_HandcannonSnd.50AE_DryFire"
|
||||
DamageType=Class'NicePack.NiceDamTypeMagnumPistol'
|
||||
DamageMin=61
|
||||
DamageMax=61
|
||||
DamageMin=82
|
||||
DamageMax=82
|
||||
Momentum=15000.000000
|
||||
bWaitForRelease=False
|
||||
bPawnRapidFireAnim=False
|
||||
FireLoopAnim=
|
||||
FireEndAnim=
|
||||
|
@ -1,9 +1,9 @@
|
||||
class NiceMagnumPickup extends NiceSinglePickup;
|
||||
defaultproperties
|
||||
{
|
||||
Weight=1.000000
|
||||
Weight=2.000000
|
||||
cost=125
|
||||
AmmoCost=8
|
||||
AmmoCost=5
|
||||
BuyClipSize=6
|
||||
PowerValue=60
|
||||
SpeedValue=40
|
||||
|
@ -11,7 +11,7 @@ defaultproperties
|
||||
ReloadRate=1.2625
|
||||
ReloadAnimRate=1.5
|
||||
WeaponReloadAnim="Reload_Revolver"
|
||||
Weight=1.000000
|
||||
Weight=2.000000
|
||||
StandardDisplayFOV=60.000000
|
||||
TraderInfoTexture=Texture'KillingFloor2HUD.Trader_Weapon_Icons.Trader_Revolver'
|
||||
bIsTier2Weapon=True
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=4.000000
|
||||
cost=750
|
||||
AmmoCost=50
|
||||
AmmoCost=22
|
||||
BuyClipSize=33
|
||||
PowerValue=50
|
||||
SpeedValue=90
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=5.000000
|
||||
cost=1250
|
||||
AmmoCost=50
|
||||
AmmoCost=33
|
||||
BuyClipSize=30
|
||||
PowerValue=45
|
||||
SpeedValue=60
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=4.000000
|
||||
cost=250
|
||||
AmmoCost=20
|
||||
AmmoCost=10
|
||||
BuyClipSize=30
|
||||
PowerValue=30
|
||||
SpeedValue=85
|
||||
|
@ -4,7 +4,7 @@ defaultproperties
|
||||
bBackupWeapon=True
|
||||
Weight=3.000000
|
||||
cost=200
|
||||
AmmoCost=20
|
||||
AmmoCost=10
|
||||
BuyClipSize=40
|
||||
PowerValue=22
|
||||
SpeedValue=95
|
||||
|
@ -2,7 +2,7 @@ class NiceAA12Pickup extends NiceWeaponPickup;
|
||||
defaultproperties
|
||||
{
|
||||
cost=1250
|
||||
AmmoCost=80
|
||||
AmmoCost=50
|
||||
BuyClipSize=20
|
||||
PowerValue=85
|
||||
SpeedValue=65
|
||||
|
@ -3,6 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=8.000000
|
||||
cost=500
|
||||
AmmoCost=13
|
||||
BuyClipSize=6
|
||||
PowerValue=70
|
||||
SpeedValue=60
|
||||
|
@ -2,7 +2,8 @@ class NiceBoomStickPickup extends NiceWeaponPickup;
|
||||
var int SingleShotCount;
|
||||
defaultproperties
|
||||
{
|
||||
cost=500
|
||||
cost=750
|
||||
AmmoCost=5
|
||||
BuyClipSize=2
|
||||
PowerValue=90
|
||||
SpeedValue=30
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=8.000000
|
||||
cost=250
|
||||
AmmoCost=20
|
||||
AmmoCost=17
|
||||
BuyClipSize=28
|
||||
PowerValue=70
|
||||
SpeedValue=55
|
||||
|
@ -5,7 +5,7 @@ defaultproperties
|
||||
bBackupWeapon=True
|
||||
Weight=6.000000
|
||||
cost=200
|
||||
AmmoCost=15
|
||||
AmmoCost=12
|
||||
BuyClipSize=8
|
||||
PowerValue=70
|
||||
SpeedValue=40
|
||||
|
@ -2,7 +2,7 @@ class NiceSpasPickup extends NiceWeaponPickup;
|
||||
|
||||
defaultproperties
|
||||
{
|
||||
cost=750
|
||||
cost=500
|
||||
Weight=8.000000
|
||||
BuyClipSize=10
|
||||
PowerValue=55
|
||||
|
@ -6,7 +6,7 @@ defaultproperties
|
||||
MaxPenetrations=5
|
||||
BigZedPenDmgReduction=0.750000
|
||||
MediumZedPenDmgReduction=1.000000
|
||||
HeadShotDamageMult=1.900000
|
||||
HeadShotDamageMult=2.6
|
||||
bSniperWeapon=True
|
||||
WeaponClass=Class'NicePack.NiceHuntingRifle'
|
||||
DeathString="%k killed %o (Hunting Rifle)."
|
||||
|
@ -6,7 +6,7 @@ defaultproperties
|
||||
{
|
||||
Weight=6.000000
|
||||
cost=750
|
||||
AmmoCost=35
|
||||
AmmoCost=34
|
||||
BuyClipSize=5
|
||||
PowerValue=55
|
||||
SpeedValue=42
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=8.000000
|
||||
cost=1000
|
||||
AmmoCost=15
|
||||
AmmoCost=25
|
||||
BuyClipSize=20
|
||||
PowerValue=55
|
||||
SpeedValue=20
|
||||
|
@ -2,7 +2,7 @@ class NiceM99Pickup extends NiceWeaponPickup;
|
||||
defaultproperties
|
||||
{
|
||||
cost=1250
|
||||
AmmoCost=60
|
||||
AmmoCost=13
|
||||
BuyClipSize=1
|
||||
PowerValue=95
|
||||
SpeedValue=30
|
||||
|
@ -8,7 +8,7 @@ static function ScoredNiceHeadshot(KFSteamStatsAndAchievements KFStatsAndAchieve
|
||||
defaultproperties
|
||||
{
|
||||
stunMultiplier=1.250000
|
||||
HeadShotDamageMult=4.000000
|
||||
HeadShotDamageMult=4.75
|
||||
bSniperWeapon=True
|
||||
WeaponClass=Class'NicePack.NiceMaulerRifle'
|
||||
DeathString="%k killed %o (S.P. Mauler)."
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=6.000000
|
||||
cost=750
|
||||
AmmoCost=50
|
||||
AmmoCost=22
|
||||
BuyClipSize=10
|
||||
PowerValue=60
|
||||
SpeedValue=10
|
||||
|
@ -5,7 +5,7 @@ defaultproperties
|
||||
{
|
||||
Weight=8.000000
|
||||
cost=1250
|
||||
AmmoCost=50
|
||||
AmmoCost=42
|
||||
BuyClipSize=10
|
||||
PowerValue=90
|
||||
SpeedValue=40
|
||||
|
@ -3,7 +3,7 @@ defaultproperties
|
||||
{
|
||||
Weight=7.000000
|
||||
cost=1000
|
||||
AmmoCost=15
|
||||
AmmoCost=25
|
||||
BuyClipSize=10
|
||||
PowerValue=80
|
||||
SpeedValue=40
|
||||
|
@ -3,7 +3,8 @@ class NiceWinchesterPickup extends NiceWeaponPickup;
|
||||
defaultproperties
|
||||
{
|
||||
Weight=6.000000
|
||||
cost=200
|
||||
AmmoCost=13
|
||||
cost=250
|
||||
BuyClipSize=10
|
||||
PowerValue=50
|
||||
SpeedValue=35
|
||||
|
@ -152,7 +152,7 @@ state RunningState
|
||||
}
|
||||
defaultproperties
|
||||
{
|
||||
RageHealthPct=0.750000
|
||||
RageHealthPct=1.1
|
||||
RegenDelay=5.000000
|
||||
RegenRate=4.000000
|
||||
SawAttackLoopSound=Sound'KF_BaseGorefast.Attack.Gorefast_AttackSwish3'
|
||||
@ -160,11 +160,13 @@ defaultproperties
|
||||
StunThreshold=1.000000
|
||||
MoanVoice=None
|
||||
StunsRemaining=5
|
||||
BleedOutDuration=7.000000
|
||||
BleedOutDuration=4.000000
|
||||
MeleeDamage=25
|
||||
MeleeAttackHitSound=SoundGroup'KF_EnemiesFinalSnd.GoreFast.Gorefast_HitPlayer'
|
||||
JumpSound=None
|
||||
HeadHealth=800.000000
|
||||
HeadHealth=300.000000
|
||||
HealthMax=500.000000
|
||||
Health=500
|
||||
HitSound(0)=None
|
||||
DeathSound(0)=None
|
||||
ChallengeSound(0)=None
|
||||
|
Loading…
Reference in New Issue
Block a user