hedgewars/GSHandlers.inc
changeset 4224 99c6d87df131
parent 4187 adb144a907aa
child 4233 b4ad20bfe310
equal deleted inserted replaced
4223:c802849e94aa 4224:99c6d87df131
  1439         if ((GameTicks and $3F) = 25) then
  1439         if ((GameTicks and $3F) = 25) then
  1440             doStepFallingGear(Gear);
  1440             doStepFallingGear(Gear);
  1441 
  1441 
  1442     if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Health <> 0) then
  1442     if ((Gear^.State and gsttmpFlag) <> 0) and (Gear^.Health <> 0) then
  1443         if ((Gear^.State and gstAttacking) = 0) then
  1443         if ((Gear^.State and gstAttacking) = 0) then
  1444         begin
  1444             begin
  1445             if ((GameTicks and $1F) = 0) then
  1445             if ((GameTicks and $1F) = 0) then
  1446                 if CheckGearNear(Gear, gtHedgehog, 46, 32) <> nil then Gear^.State := Gear^.State or
  1446                 if CheckGearNear(Gear, gtHedgehog, 46, 32) <> nil then Gear^.State := Gear^.State or
  1447                                                                                       gstAttacking
  1447                                                                                       gstAttacking
  1448         end
  1448             end
  1449     else // gstAttacking <> 0
  1449         else // gstAttacking <> 0
  1450     begin
       
  1451         AllInactive := false;
       
  1452         if (Gear^.Timer and $FF) = 0 then PlaySound(sndMineTick);
       
  1453         if Gear^.Timer = 0 then
       
  1454         begin
       
  1455             if ((Gear^.State and gstWait) <> 0) or
       
  1456                (cMineDudPercent = 0) or
       
  1457                (getRandom(100) > cMineDudPercent) then
       
  1458             begin
  1450             begin
  1459                 doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
  1451             AllInactive := false;
  1460                 DeleteGear(Gear)
  1452             if (Gear^.Timer and $FF) = 0 then PlaySound(sndMineTick);
       
  1453             if Gear^.Timer = 0 then
       
  1454                 begin
       
  1455                 if ((Gear^.State and gstWait) <> 0) or
       
  1456                    (cMineDudPercent = 0) or
       
  1457                    (getRandom(100) > cMineDudPercent) then
       
  1458                     begin
       
  1459                     doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 50, EXPLAutoSound);
       
  1460                     DeleteGear(Gear)
       
  1461                     end
       
  1462                 else
       
  1463                     begin
       
  1464                     AddVisualGear(hwRound(Gear^.X) - 4  + Random(8), hwRound(Gear^.Y) - 4 - Random(4),
       
  1465                     vgtSmoke);
       
  1466                     PlaySound(sndVaporize);
       
  1467                     Gear^.Health := 0;
       
  1468                     end;
       
  1469                 exit
       
  1470                 end;
       
  1471             dec(Gear^.Timer);
  1461             end
  1472             end
  1462             else
       
  1463             begin
       
  1464                 AddVisualGear(hwRound(Gear^.X) - 4  + Random(8), hwRound(Gear^.Y) - 4 - Random(4),
       
  1465                 vgtSmoke);
       
  1466                 PlaySound(sndVaporize);
       
  1467                 Gear^.Health := 0;
       
  1468             end;
       
  1469             exit
       
  1470         end;
       
  1471         dec(Gear^.Timer);
       
  1472     end
       
  1473     else // gsttmpFlag = 0
  1473     else // gsttmpFlag = 0
  1474         if (TurnTimeLeft = 0) or ((GameFlags and gfInfAttack) <> 0) then Gear^.State := Gear^.State or gsttmpFlag;
  1474         if (TurnTimeLeft = 0) or ((GameFlags and gfInfAttack) <> 0) then Gear^.State := Gear^.State or gsttmpFlag;
  1475 end;
  1475 end;
  1476 
  1476 
  1477 ////////////////////////////////////////////////////////////////////////////////
  1477 ////////////////////////////////////////////////////////////////////////////////