# HG changeset patch
# User Wuzzy <Wuzzy2@mail.ru>
# Date 1557068257 -7200
# Node ID 0ec83cc2365e8a332acd73e411620a06416e4764
# Parent  1f0e8a144bade5b3767f4543ebd35a0558f7e2b9
Don't play "LeaveMeAlone" taunt if attacker hits same hog multiple times in same turn

Because weapons like cluster bomb could trigger it in a single turn otherwise.
The idea is the same hog must be hit across multiple turns.

diff -r 1f0e8a144bad -r 0ec83cc2365e hedgewars/uStats.pas
--- a/hedgewars/uStats.pas	Sun May 05 15:24:19 2019 +0200
+++ b/hedgewars/uStats.pas	Sun May 05 16:57:37 2019 +0200
@@ -110,7 +110,7 @@
     if (not killed) and (not bDuringWaterRise) then
         begin
         // Check if victim got attacked by RevengeHog again
-        if (Gear^.Hedgehog^.RevengeHog <> nil) and (Gear^.Hedgehog^.RevengeHog = Attacker) then
+        if (Gear^.Hedgehog^.RevengeHog <> nil) and (Gear^.Hedgehog^.RevengeHog = Attacker) and (Gear^.Hedgehog^.stats.StepRevenge = false) then
             LeaveMeAlone:= true;
         // Check if attacker got revenge
         if (Attacker^.RevengeHog <> nil) and (Attacker^.RevengeHog = Gear^.Hedgehog) then
@@ -122,7 +122,12 @@
             end
         // If not, victim remembers their attacker to plan *their* revenge
         else
+            begin
             Gear^.Hedgehog^.RevengeHog:= Attacker;
+            // To prevent "LeaveMeAlone" being activated if same hog is hit by attacker
+            // multiple times in the same turn.
+            Gear^.Hedgehog^.stats.StepRevenge:= true;
+            end;
         end
     end;
 
@@ -395,6 +400,7 @@
                 StepPoisoned:= false;
                 StepDied:= false;
                 GotRevenge:= false;
+                StepRevenge:= false;
                 end;
 
 Kills:= 0;
diff -r 1f0e8a144bad -r 0ec83cc2365e hedgewars/uTypes.pas
--- a/hedgewars/uTypes.pas	Sun May 05 15:24:19 2019 +0200
+++ b/hedgewars/uTypes.pas	Sun May 05 16:57:37 2019 +0200
@@ -345,6 +345,7 @@
         StepDied,                // whether hog died this turn
         Sacrificed,              // whether hog was sacrificed in suicide attack (kamikaze, piano)
         GotRevenge: boolean;     // whether hog got revenge in this turn
+        StepRevenge: boolean;    // whether hog's revenge mode was activated in this turn
         MaxStepDamageRecv,       // most damage received in one turn
         MaxStepDamageGiven,      // most damage dealt in one turn
         MaxStepKills: Longword;  // most kills in one turn