summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorMikko Tiusanen <ams@daug.net>2015-03-24 22:07:07 +0200
committerMikko Tiusanen <ams@daug.net>2015-03-24 22:07:07 +0200
commit216fc980dd8221198e491745a0eaa029c37f74d3 (patch)
tree2421401ab51d0bc76b74388a9e450f9b1cc2ff0f /src/game
parentd6a114274103ec2198370d636fe27b545ba651d7 (diff)
Fixed issues with credit gain scaling and changed the scaling to be non linear.
Diffstat (limited to 'src/game')
-rw-r--r--src/game/g_combat.c6
-rw-r--r--src/game/g_local.h1
-rw-r--r--src/game/g_main.c2
3 files changed, 6 insertions, 3 deletions
diff --git a/src/game/g_combat.c b/src/game/g_combat.c
index 966e595..eb7f48e 100644
--- a/src/game/g_combat.c
+++ b/src/game/g_combat.c
@@ -203,11 +203,11 @@ float G_RewardScaleFactor( gentity_t *self, gentity_t *target )
targetScore = level.alienRewardScore/level.humanRewardScore;
break;
default:
- return 0;
+ return 0.0f;
}
if ( target->client != NULL ) {
- if( self->client->ps.persistant[ PERS_SCORE ] <= 0 || target->client->ps.persistant[ PERS_SCORE ] <= 0) return targetScore;
- targetScore *= target->client->ps.persistant[ PERS_SCORE ]/self->client->ps.persistant[ PERS_SCORE ];
+ if( self->client->ps.persistant[ PERS_SCORE ] > 0 && target->client->ps.persistant[ PERS_SCORE ] > 0)
+ targetScore *= pow(target->client->ps.persistant[ PERS_SCORE ],g_RewardFactorPower.value)/pow(self->client->ps.persistant[ PERS_SCORE ],g_RewardFactorPower.value);
}
targetScore *= 1.0f-g_ConstantRewardFactor.value;
targetScore += g_ConstantRewardFactor.value;
diff --git a/src/game/g_local.h b/src/game/g_local.h
index 9cc0ff2..30a61b0 100644
--- a/src/game/g_local.h
+++ b/src/game/g_local.h
@@ -1369,6 +1369,7 @@ extern vmCvar_t g_KillRewardMultiplierH;
extern vmCvar_t g_ConstantRewardFactor;
extern vmCvar_t g_MinRewardFactor;
extern vmCvar_t g_MaxRewardFactor;
+extern vmCvar_t g_RewardFactorPower;
extern vmCvar_t g_ForceRandomTeams;
extern vmCvar_t g_AutoLevelMinTeamSize;
extern vmCvar_t g_RageQuitScorePenalty;
diff --git a/src/game/g_main.c b/src/game/g_main.c
index 2d0c788..d8003cc 100644
--- a/src/game/g_main.c
+++ b/src/game/g_main.c
@@ -193,6 +193,7 @@ vmCvar_t g_KillRewardMultiplierH;
vmCvar_t g_ConstantRewardFactor;
vmCvar_t g_MinRewardFactor;
vmCvar_t g_MaxRewardFactor;
+vmCvar_t g_RewardFactorPower;
vmCvar_t g_TimerPeriod;
vmCvar_t g_TimerCommand;
vmCvar_t g_ForceRandomTeams;
@@ -371,6 +372,7 @@ static cvarTable_t gameCvarTable[ ] =
{ &g_ConstantRewardFactor, "g_ConstantRewardFactor", "0", CVAR_ARCHIVE, 0, qfalse },
{ &g_MinRewardFactor, "g_MinRewardFactor", "0.2", CVAR_ARCHIVE, 0, qfalse },
{ &g_MaxRewardFactor, "g_MaxRewardFactor", "5.0", CVAR_ARCHIVE, 0, qfalse },
+ { &g_RewardFactorPower, "g_RewardFactorPower", "0.3025", CVAR_ARCHIVE, 0, qfalse },
{ &g_TimerPeriod, "g_TimerPeriod", "0", CVAR_ARCHIVE, 0, qfalse },
{ &g_TimerCommand, "g_TimerCommand", "", CVAR_ARCHIVE, 0, qfalse },
{ &g_ForceRandomTeams, "g_ForceRandomTeams", "0", CVAR_ARCHIVE, 0, qfalse },