hedgewars/uStats.pas
changeset 867 dc7901b1120e
parent 866 ac6f6c95c23f
child 869 daddcd31ef34
--- a/hedgewars/uStats.pas	Thu Apr 24 15:19:33 2008 +0000
+++ b/hedgewars/uStats.pas	Thu Apr 24 15:40:39 2008 +0000
@@ -31,7 +31,7 @@
                    end;
 
 procedure AmmoUsed(am: TAmmoType);
-procedure HedgehogDamaged(Gear: PGear; Damage: Longword);
+procedure HedgehogDamaged(Gear: PGear);
 procedure TurnReaction;
 procedure SendStats;
 
@@ -40,20 +40,29 @@
 var DamageGiven : Longword = 0;
     DamageClan  : Longword = 0;
     DamageTotal : Longword = 0;
+    KillsClan   : LongWord = 0;
+    Kills       : LongWord = 0;
+    KillsTotal  : LongWord = 0;
     AmmoUsedCount : Longword = 0;
     AmmoDamagingUsed : boolean = false;
 
-procedure HedgehogDamaged(Gear: PGear; Damage: Longword);
+procedure HedgehogDamaged(Gear: PGear);
 begin
 if Gear <> CurrentHedgehog^.Gear then
-   inc(CurrentHedgehog^.stats.StepDamageGiven, Damage);
+	inc(CurrentHedgehog^.stats.StepDamageGiven, Gear^.Damage);
 
-if CurrentHedgehog^.Team^.Clan = PHedgehog(Gear^.Hedgehog)^.Team^.Clan then inc(DamageClan, Damage);
+if CurrentHedgehog^.Team^.Clan = PHedgehog(Gear^.Hedgehog)^.Team^.Clan then inc(DamageClan, Gear^.Damage);
 
+if Gear^.Health <= Gear^.Damage then
+	begin
+	inc(Kills);
+	inc(KillsTotal);
+	if CurrentHedgehog^.Team^.Clan = PHedgehog(Gear^.Hedgehog)^.Team^.Clan then inc(KillsClan);
+	end;
 
-inc(PHedgehog(Gear^.Hedgehog)^.stats.StepDamageRecv, Damage);
-inc(DamageGiven, Damage);
-inc(DamageTotal, Damage)
+inc(PHedgehog(Gear^.Hedgehog)^.stats.StepDamageRecv, Gear^.Damage);
+inc(DamageGiven, Gear^.Damage);
+inc(DamageTotal, Gear^.Damage)
 end;
 
 procedure TurnReaction;
@@ -76,9 +85,14 @@
 		else
 			PlaySound(sndTraitor, false)
 
-else if DamageGiven <> 0 then PlaySound(sndRegret, false)
+else if DamageGiven <> 0 then
+	if Kills > 0 then
+		PlaySound(sndEnemyDown, false)
+	else
+		PlaySound(sndRegret, false)
 
-else if AmmoDamagingUsed then PlaySound(sndMissed, false);
+else if AmmoDamagingUsed then
+	PlaySound(sndMissed, false);
 
 Gear:= GearsList;
 while Gear <> nil do
@@ -96,6 +110,8 @@
   Gear:= Gear^.NextGear
   end;
 
+Kills:= 0;
+KillsClan:= 0;
 DamageGiven:= 0;
 DamageClan:= 0;
 AmmoUsedCount:= 0;