hedgewars/uGearsHandlersMess.pas
changeset 11042 d29a05a55bbc
parent 11040 3ab93d702fb1
child 11044 c3d76daae637
equal deleted inserted replaced
11041:598fa14a3a1a 11042:d29a05a55bbc
  5223     dec(i);
  5223     dec(i);
  5224     tmp:= t^.ar[i];
  5224     tmp:= t^.ar[i];
  5225     if (tmp^.State and gstNoDamage) = 0 then
  5225     if (tmp^.State and gstNoDamage) = 0 then
  5226         if (tmp^.Kind = gtHedgehog) or (tmp^.Kind = gtMine) or (tmp^.Kind = gtExplosives) then
  5226         if (tmp^.Kind = gtHedgehog) or (tmp^.Kind = gtMine) or (tmp^.Kind = gtExplosives) then
  5227             begin
  5227             begin
       
  5228             dmg:= 0;
  5228             //tmp^.State:= tmp^.State or gstFlatened;
  5229             //tmp^.State:= tmp^.State or gstFlatened;
  5229             if (tmp^.Kind <> gtHedgehog) or (tmp^.Hedgehog^.Effects[heInvulnerable] = 0) then
  5230             if (tmp^.Kind <> gtHedgehog) or (tmp^.Hedgehog^.Effects[heInvulnerable] = 0) then
  5230                 begin
  5231                 begin
  5231                 // base damage on remaining health
  5232                 // base damage on remaining health
  5232                 dmg:= (tmp^.Health - tmp^.Damage);
  5233                 dmg:= (tmp^.Health - tmp^.Damage);
  5243                     else
  5244                     else
  5244                         dmg:= dmg div d;
  5245                         dmg:= dmg div d;
  5245 
  5246 
  5246                     ApplyDamage(tmp, CurrentHedgehog, dmg, dsUnknown);
  5247                     ApplyDamage(tmp, CurrentHedgehog, dmg, dsUnknown);
  5247                     end;
  5248                     end;
  5248             end;
  5249                 end;
  5249             //DrawTunnel(tmp^.X, tmp^.Y - _1, _0, _0_5, cHHRadius * 6, cHHRadius * 3);
  5250 
  5250             tmp2:= AddGear(hwRound(tmp^.X), hwRound(tmp^.Y), gtHammerHit, 0, _0, _0, 0);
  5251             if (tmp^.Kind <> gtHedgehog) or (dmg > 0) or (tmp^.Health > tmp^.Damage) then
  5251             tmp2^.LinkedGear:= tmp;
  5252                 begin
  5252             SetAllToActive
  5253                 //DrawTunnel(tmp^.X, tmp^.Y - _1, _0, _0_5, cHHRadius * 6, cHHRadius * 3);
  5253             end
  5254                 tmp2:= AddGear(hwRound(tmp^.X), hwRound(tmp^.Y), gtHammerHit, 0, _0, _0, 0);
  5254         else
  5255                 tmp2^.LinkedGear:= tmp;
  5255             begin
  5256                 SetAllToActive
  5256             end
  5257                 end;
       
  5258             end;
  5257     end;
  5259     end;
  5258 
  5260 
  5259 HHGear^.State:= HHGear^.State and (not gstNoDamage);
  5261 HHGear^.State:= HHGear^.State and (not gstNoDamage);
  5260 Gear^.Timer:= 250;
  5262 Gear^.Timer:= 250;
  5261 Gear^.doStep:= @doStepIdle
  5263 Gear^.doStep:= @doStepIdle