hedgewars/GSHandlers.inc
changeset 1849 2a989e5abda6
parent 1830 b3e9ab82c364
child 1861 98de5dc5fda7
equal deleted inserted replaced
1848:1eb88d41ccc6 1849:2a989e5abda6
    38 end;
    38 end;
    39 
    39 
    40 procedure CheckHHDamage(Gear: PGear);
    40 procedure CheckHHDamage(Gear: PGear);
    41 var dmg: Longword;
    41 var dmg: Longword;
    42 begin
    42 begin
       
    43 if(Gear^.Invulnerable) then exit;
    43 if _0_4 < Gear^.dY then
    44 if _0_4 < Gear^.dY then
    44 	begin
    45 	begin
    45 	if _0_6 < Gear^.dY then
    46 	if _0_6 < Gear^.dY then
    46 		PlaySound(sndOw4, false, PHedgehog(Gear^.Hedgehog)^.Team^.voicepack)
    47 		PlaySound(sndOw4, false, PHedgehog(Gear^.Hedgehog)^.Team^.voicepack)
    47 	else
    48 	else
  1702 	begin
  1703 	begin
  1703 	gi:= GearsList;
  1704 	gi:= GearsList;
  1704 	while gi <> nil do
  1705 	while gi <> nil do
  1705 		begin
  1706 		begin
  1706 		dmg:= cakeDmg * 2 - hwRound(Distance(gi^.X - Gear^.X, gi^.Y - Gear^.Y));
  1707 		dmg:= cakeDmg * 2 - hwRound(Distance(gi^.X - Gear^.X, gi^.Y - Gear^.Y));
  1707 		if (dmg > 1) and (gi^.Kind = gtHedgehog) then
  1708 		if (dmg > 1) and (gi^.Kind = gtHedgehog) and (not gi^.Invulnerable) then
  1708 			gi^.State:= gi^.State or gstWinner;
  1709 			gi^.State:= gi^.State or gstWinner;
  1709 		gi:= gi^.NextGear
  1710 		gi:= gi^.NextGear
  1710 		end;
  1711 		end;
  1711 	Gear^.doStep:= @doStepCakeExpl;
  1712 	Gear^.doStep:= @doStepCakeExpl;
  1712 	PlaySound(sndCake, false, nil)
  1713 	PlaySound(sndCake, false, nil)