hedgewars/uTeams.pas
changeset 9720 453a1c29b7e4
parent 9685 7d925e82e572
child 9749 443d233316e5
equal deleted inserted replaced
9719:cbdef918d087 9720:453a1c29b7e4
    39 procedure RestoreTeamsFromSave;
    39 procedure RestoreTeamsFromSave;
    40 function  CheckForWin: boolean;
    40 function  CheckForWin: boolean;
    41 procedure TeamGoneEffect(var Team: TTeam);
    41 procedure TeamGoneEffect(var Team: TTeam);
    42 procedure SwitchCurrentHedgehog(newHog: PHedgehog);
    42 procedure SwitchCurrentHedgehog(newHog: PHedgehog);
    43 
    43 
       
    44 var MaxTeamHealth: LongInt;
       
    45 
    44 implementation
    46 implementation
    45 uses uLocale, uAmmos, uChat, uVariables, uUtils, uIO, uCaptions, uCommands, uDebug,
    47 uses uLocale, uAmmos, uChat, uVariables, uUtils, uIO, uCaptions, uCommands, uDebug,
    46     uGearsUtils, uGearsList, uVisualGearsList, uTextures
    48     uGearsUtils, uGearsList, uVisualGearsList, uTextures
    47     {$IFDEF USE_TOUCH_INTERFACE}, uTouch{$ENDIF};
    49     {$IFDEF USE_TOUCH_INTERFACE}, uTouch{$ENDIF};
    48 
    50 
    49 var MaxTeamHealth: LongInt;
    51 var GameOver: boolean;
    50     GameOver: boolean;
       
    51     NextClan: boolean;
    52     NextClan: boolean;
    52 
    53 
    53 function CheckForWin: boolean;
    54 function CheckForWin: boolean;
    54 var AliveClan: PClan;
    55 var AliveClan: PClan;
    55     s: shortstring;
    56     s: shortstring;
   478         if Hedgehogs[i].Gear <> nil then
   479         if Hedgehogs[i].Gear <> nil then
   479             inc(TeamHealth, Hedgehogs[i].Gear^.Health)
   480             inc(TeamHealth, Hedgehogs[i].Gear^.Health)
   480         else if Hedgehogs[i].GearHidden <> nil then
   481         else if Hedgehogs[i].GearHidden <> nil then
   481             inc(TeamHealth, Hedgehogs[i].GearHidden^.Health);
   482             inc(TeamHealth, Hedgehogs[i].GearHidden^.Health);
   482 
   483 
   483     if not hasGone then
   484     if TeamHealth > MaxTeamHealth then
   484         NewTeamHealthBarWidth:= TeamHealth
   485         begin
   485         else
   486         MaxTeamHealth:= TeamHealth;
   486         NewTeamHealthBarWidth:= 0;
       
   487 
       
   488     if NewTeamHealthBarWidth > MaxTeamHealth then
       
   489         begin
       
   490         MaxTeamHealth:= NewTeamHealthBarWidth;
       
   491         RecountAllTeamsHealth;
   487         RecountAllTeamsHealth;
   492         end else if NewTeamHealthBarWidth > 0 then
   488         end
   493             NewTeamHealthBarWidth:= (NewTeamHealthBarWidth * cTeamHealthWidth) div MaxTeamHealth
       
   494     end;
   489     end;
   495 
   490 
   496 RecountClanHealth(team^.Clan);
   491 RecountClanHealth(team^.Clan);
   497 
   492 
   498 AddVisualGear(0, 0, vgtTeamHealthSorter)
   493 AddVisualGear(0, 0, vgtTeamHealthSorter)