anchor.diff:                 fOpponent.IsDead; //unlikely, since unit is already performed TTaskDie
     end;
   
  -var Cycle,Step:byte; DirectionModifier:byte; IsHit: boolean; Damage: word;
  +var Cycle,Step:byte; IsHit: boolean; Damage: word; ut,ot:byte;
   begin
     DoEnd := CheckDoEnd;
     if DoEnd then
  
positive.code:   //Only hit unit on step 5
    if Step = 5 then
    begin
      DirectionModifier := GetDirModifier(KMUnit.Direction,fOpponent.Direction);
      Damage := ((UnitStat[byte(KMUnit.GetUnitType)].Attack+(UnitStat[byte(KMUnit.GetUnitType)].AttackHorseBonus)*byte(UnitGroups[byte(fOpponent.GetUnitType)] = gt_Mounted)) * DirectionModifier)
                div max(UnitStat[byte(fOpponent.GetUnitType)].Defence,1); //Not needed, but animals have 0 defence
  
      IsHit := (Damage >= Random(101)); //0..100
  
  
negative.code: 
  
  implementation
  uses KM_PlayersCollection, KM_Terrain, KM_Sound, KM_Units_Warrior;
  
  
  { TUnitActionFight }
  