From 23cdae6feb5870b375043f52adca7107d9b95037 Mon Sep 17 00:00:00 2001 From: jsalmon3 <> Date: Mon, 21 Apr 2003 05:36:07 +0000 Subject: [PATCH] Damage is more random now --- src/stratagus/missile.cpp | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/stratagus/missile.cpp b/src/stratagus/missile.cpp index 530beec78..847d4811a 100644 --- a/src/stratagus/missile.cpp +++ b/src/stratagus/missile.cpp @@ -422,7 +422,7 @@ local void FreeMissile(Missile* missile) ** (BasicDamage-Armor)+PiercingDamage ** damage =---------------------------------- ** 2 -** damage is multiplied by random 1 or 2. +** damage is multiplied by random between 1 and 2. ** ** @todo NOTE: different targets (big are hit by some missiles better) ** @todo NOTE: hidden targets are hit worser. @@ -450,14 +450,18 @@ local int CalculateDamageStats(const UnitStats* attacker_stats, DebugLevel0Fn("bloodlust\n"); } - damage = -goal_stats->Armor; - damage += basic_damage; + damage = basic_damage - goal_stats->Armor; if (damage < 0) { - damage = 0; + // Use minimum damage + if (piercing_damage < 30 && basic_damage < 30) { + damage = (piercing_damage + 1) / 2; + } else { + damage = (piercing_damage + basic_damage - 30) / 2; + } + } else { + damage += piercing_damage; + damage -= SyncRand() % ((damage + 2) / 2); } - damage += piercing_damage + 1; // round up - damage /= 2; - damage *= ((SyncRand() >> 15) & 1) + 1; DebugLevel3Fn("\nDamage done [%d] %d %d ->%d\n" _C_ goal_stats->Armor _C_ basic_damage _C_ piercing_damage _C_ damage);