hedgewars/uStats.pas
changeset 15824 681db3039ad7
parent 15470 846b5f879408
equal deleted inserted replaced
15823:744f4d708963 15824:681db3039ad7
   103 begin
   103 begin
   104     Hedgehog^.stats.Sacrificed:= true
   104     Hedgehog^.stats.Sacrificed:= true
   105 end;
   105 end;
   106 
   106 
   107 procedure HedgehogDamaged(Gear: PGear; Attacker: PHedgehog; Damage: Longword; killed: boolean);
   107 procedure HedgehogDamaged(Gear: PGear; Attacker: PHedgehog; Damage: Longword; killed: boolean);
   108 begin
   108 var sameClan: Boolean;
   109 if Attacker^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then
   109 begin
       
   110 sameClan := false;
       
   111 if Attacker <> nil then
       
   112     sameClan := Attacker^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan;
       
   113 
       
   114 if sameClan then
   110     vpHurtSameClan:= Gear^.Hedgehog^.Team^.voicepack
   115     vpHurtSameClan:= Gear^.Hedgehog^.Team^.voicepack
   111 else
   116 else
   112     begin
   117     begin
   113     if not FirstBlood then
   118     if not FirstBlood then
   114         StepFirstBlood:= true;
   119         StepFirstBlood:= true;
   115     vpHurtEnemy:= Gear^.Hedgehog^.Team^.voicepack;
   120     vpHurtEnemy:= Gear^.Hedgehog^.Team^.voicepack;
   116     if (not killed) and (not bDuringWaterRise) then
   121     if (Attacker <> nil) and (not killed) and (not bDuringWaterRise) then
   117         begin
   122         begin
   118         // Check if victim got attacked by RevengeHog again
   123         // Check if victim got attacked by RevengeHog again
   119         if (Gear^.Hedgehog^.RevengeHog <> nil) and (Gear^.Hedgehog^.RevengeHog = Attacker) and (Gear^.Hedgehog^.stats.StepRevenge = false) then
   124         if (Gear^.Hedgehog^.RevengeHog <> nil) and (Gear^.Hedgehog^.RevengeHog = Attacker) and (Gear^.Hedgehog^.stats.StepRevenge = false) then
   120             LeaveMeAlone:= true;
   125             LeaveMeAlone:= true;
   121         // Check if attacker got revenge
   126         // Check if attacker got revenge
   139 
   144 
   140 //////////////////////////
   145 //////////////////////////
   141 
   146 
   142 if (not bDuringWaterRise) then
   147 if (not bDuringWaterRise) then
   143     begin
   148     begin
   144     inc(Attacker^.stats.StepDamageGiven, Damage);
   149     if Attacker <> nil then
       
   150         inc(Attacker^.stats.StepDamageGiven, Damage);
   145     inc(Gear^.Hedgehog^.stats.StepDamageRecv, Damage);
   151     inc(Gear^.Hedgehog^.stats.StepDamageRecv, Damage);
   146     end;
   152     end;
   147 
   153 
   148 if CurrentHedgehog^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then inc(DamageClan, Damage);
   154 if CurrentHedgehog^.Team^.Clan = Gear^.Hedgehog^.Team^.Clan then inc(DamageClan, Damage);
   149 if CurrentHedgehog^.Team = Gear^.Hedgehog^.Team then inc(DamageTeam, Damage);
   155 if CurrentHedgehog^.Team = Gear^.Hedgehog^.Team then inc(DamageTeam, Damage);
   155 
   161 
   156     inc(KillsTotal);
   162     inc(KillsTotal);
   157 
   163 
   158     if bDuringWaterRise then
   164     if bDuringWaterRise then
   159         inc(KillsSD)
   165         inc(KillsSD)
   160     else
   166     else if Attacker <> nil then
   161         begin
   167         begin
   162         inc(Attacker^.stats.StepKills);
   168         inc(Attacker^.stats.StepKills);
   163         inc(Attacker^.Team^.stats.Kills);
   169         inc(Attacker^.Team^.stats.Kills);
   164         if (Attacker^.Team^.TeamName = Gear^.Hedgehog^.Team^.TeamName) then
   170         if (Attacker^.Team^.TeamName = Gear^.Hedgehog^.Team^.TeamName) then
   165             begin
   171             begin