hedgewars/uStats.pas
changeset 815 82ff416301bd
parent 814 7fb4417b7bc1
child 829 1209eb768acf
equal deleted inserted replaced
814:7fb4417b7bc1 815:82ff416301bd
    25                    DamageGiven: Longword;
    25                    DamageGiven: Longword;
    26                    StepDamageRecv,
    26                    StepDamageRecv,
    27                    StepDamageGiven: Longword;
    27                    StepDamageGiven: Longword;
    28                    MaxStepDamageRecv,
    28                    MaxStepDamageRecv,
    29                    MaxStepDamageGiven: Longword;
    29                    MaxStepDamageGiven: Longword;
    30                    Turns: Longword;
    30                    FinishedTurns: Longword;
    31                    end;
    31                    end;
    32 
    32 
    33 procedure HedgehogDamaged(Gear: PGear; Damage: Longword);
    33 procedure HedgehogDamaged(Gear: PGear; Damage: Longword);
    34 procedure TurnReaction;
    34 procedure TurnReaction;
    35 procedure SendStats;
    35 procedure SendStats;
    36 
    36 
    37 implementation
    37 implementation
    38 uses uTeams, uSound, uConsts;
    38 uses uTeams, uSound, uConsts;
       
    39 var DamageGiven : Longword = 0;
       
    40     DamageClan  : Longword = 0;
    39 
    41 
    40 procedure HedgehogDamaged(Gear: PGear; Damage: Longword);
    42 procedure HedgehogDamaged(Gear: PGear; Damage: Longword);
    41 begin
    43 begin
    42 if Gear <> CurrentHedgehog^.Gear then
    44 if Gear <> CurrentHedgehog^.Gear then
    43    inc(CurrentHedgehog^.stats.StepDamageGiven, Damage);
    45    inc(CurrentHedgehog^.stats.StepDamageGiven, Damage);
    44 inc(PHedgehog(Gear^.Hedgehog)^.stats.StepDamageRecv, Damage)
    46 
       
    47 if CurrentHedgehog^.Team^.Clan = PHedgehog(Gear^.Hedgehog)^.Team^.Clan then inc(DamageClan, Damage);
       
    48 
       
    49 
       
    50 inc(PHedgehog(Gear^.Hedgehog)^.stats.StepDamageRecv, Damage);
       
    51 inc(DamageGiven, Damage)
    45 end;
    52 end;
    46 
    53 
    47 procedure TurnReaction;
    54 procedure TurnReaction;
       
    55 var Gear: PGear;
    48 begin
    56 begin
       
    57 inc(CurrentHedgehog^.stats.FinishedTurns);
       
    58 
       
    59 if CurrentHedgehog^.stats.StepDamageRecv > 0 then PlaySound(sndStupid, false)
       
    60 else if DamageClan <> 0 then
       
    61 else if DamageGiven <> 0 then
       
    62 else PlaySound(sndMissed, false);
       
    63 
       
    64 Gear:= GearsList;
       
    65 while Gear <> nil do
       
    66   begin
       
    67   if Gear^.Kind = gtHedgehog then
       
    68     with PHedgehog(Gear^.Hedgehog)^.stats do
       
    69       begin
       
    70       inc(DamageRecv, StepDamageRecv);
       
    71       inc(DamageGiven, StepDamageGiven);
       
    72       if StepDamageRecv > MaxStepDamageRecv then MaxStepDamageRecv:= StepDamageRecv;
       
    73       if StepDamageGiven > MaxStepDamageGiven then MaxStepDamageGiven:= StepDamageGiven;
       
    74       StepDamageRecv:= 0;
       
    75       StepDamageGiven:= 0
       
    76       end;
       
    77   Gear:= Gear^.NextGear
       
    78   end;
       
    79 
       
    80 DamageGiven:= 0;
       
    81 DamageClan:= 0
    49 end;
    82 end;
    50 
    83 
    51 procedure SendStats;
    84 procedure SendStats;
    52 //var i, t: LongInt;
    85 //var i, t: LongInt;
    53 //    msd: Longword; msdhh: PHedgehog;
    86 //    msd: Longword; msdhh: PHedgehog;