hedgewars/uGearsUtils.pas
changeset 7754 e81dc9bef8b8
parent 7721 2b1ad418ba39
child 7767 d1ea9b3f543e
equal deleted inserted replaced
7753:dda33caa609d 7754:e81dc9bef8b8
   103             //    gtCluster, too game breaking I think
   103             //    gtCluster, too game breaking I think
   104                 gtSMine,
   104                 gtSMine,
   105                 gtCase,
   105                 gtCase,
   106                 gtTarget,
   106                 gtTarget,
   107                 gtFlame,
   107                 gtFlame,
       
   108                 gtKnife,
   108                 gtExplosives,
   109                 gtExplosives,
   109                 gtStructure: begin
   110                 gtStructure: begin
   110 // Run the calcs only once we know we have a type that will need damage
   111 // Run the calcs only once we know we have a type that will need damage
   111                         tdX:= Gear^.X-fX;
   112                         tdX:= Gear^.X-fX;
   112                         tdY:= Gear^.Y-fY;
   113                         tdY:= Gear^.Y-fY;
   128                                 DeleteCI(Gear);
   129                                 DeleteCI(Gear);
   129                                 Gear^.dX:= Gear^.dX + SignAs(_0_005 * dmg + cHHKick, tdX)/(Gear^.Density/_3);
   130                                 Gear^.dX:= Gear^.dX + SignAs(_0_005 * dmg + cHHKick, tdX)/(Gear^.Density/_3);
   130                                 Gear^.dY:= Gear^.dY + SignAs(_0_005 * dmg + cHHKick, tdY)/(Gear^.Density/_3);
   131                                 Gear^.dY:= Gear^.dY + SignAs(_0_005 * dmg + cHHKick, tdY)/(Gear^.Density/_3);
   131 
   132 
   132                                 Gear^.State:= (Gear^.State or gstMoving) and (not gstLoser);
   133                                 Gear^.State:= (Gear^.State or gstMoving) and (not gstLoser);
       
   134                                 if Gear^.Kind = gtKnife then Gear^.State:= Gear^.State and not gstCollision;
   133                                 if not Gear^.Invulnerable then
   135                                 if not Gear^.Invulnerable then
   134                                     Gear^.State:= (Gear^.State or gstMoving) and (not gstWinner);
   136                                     Gear^.State:= (Gear^.State or gstMoving) and (not gstWinner);
   135                                 Gear^.Active:= true;
   137                                 Gear^.Active:= true;
   136                                 if Gear^.Kind <> gtFlame then FollowGear:= Gear
   138                                 if Gear^.Kind <> gtFlame then FollowGear:= Gear
   137                                 end;
   139                                 end;