From 88f339845c2e2a04d044e7a91700c4f4fcfcbb35 Mon Sep 17 00:00:00 2001
From: Allanis <allanis@saracraft.net>
Date: Fri, 7 Mar 2014 20:38:48 +0000
Subject: [PATCH] [Change] Tweaked faction gain.

---
 src/faction.c | 15 +++++++++++++--
 src/pilot.c   |  4 ++--
 2 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/faction.c b/src/faction.c
index 9c6d061..ffa4414 100644
--- a/src/faction.c
+++ b/src/faction.c
@@ -156,6 +156,7 @@ static void faction_sanitizePlayer(Faction* faction) {
 void faction_modPlayer(int f, double mod) {
   int i;
   Faction* faction, *ally, *enemy;
+  double m;
 
   if(!faction_isFaction(f)) {
     WARN("%d is an invalid faction.", f);
@@ -172,7 +173,12 @@ void faction_modPlayer(int f, double mod) {
   for(i = 0; i < faction->nallies; i++) {
     ally = &faction_stack[faction->allies[i]];
 
-    ally->player += RNGF() * (mod*3/4);
+    /* Enemies are made faster. */
+    m = RNGF();
+    if(mod > 0.)
+      m *= 3./4.;
+
+    ally->player += m;
     faction_sanitizePlayer(ally);
   }
 
@@ -180,7 +186,12 @@ void faction_modPlayer(int f, double mod) {
   for(i = 0; i < faction->nenemies; i++) {
     enemy = &faction_stack[faction->enemies[i]];
 
-    enemy->player -= RNGF() * mod; /* Enemies are made faster. */
+    /* Enemies are made faster. */
+    m = RNGF();
+    if(mod < 0.)
+      m *= 3./4.;
+
+    enemy->player -= m;
     faction_sanitizePlayer(enemy);
   }
 }
diff --git a/src/pilot.c b/src/pilot.c
index 96315f1..eb40ca0 100644
--- a/src/pilot.c
+++ b/src/pilot.c
@@ -458,8 +458,8 @@ void pilot_hit(Pilot* p, const Solid* w, const unsigned int shooter,
       /* Adjust the combat rating based on pilot mass and ditto faction. */
       pshooter = pilot_get(shooter);
       if(pshooter->faction == FACTION_PLAYER) {
-        mod = pow(p->ship->mass, 1./3.);
-        player_crating += 2*mod;
+        mod = sqrt(p->ship->mass) / 5;
+        player_crating += 2*mod; /* Crating chanes faster. */
         faction_modPlayer(p->faction, -mod);
       }
     }