equal
deleted
inserted
replaced
146 for i:= max(maxDrops div 3, min(32, Random(maxDrops))) downto 0 do |
146 for i:= max(maxDrops div 3, min(32, Random(maxDrops))) downto 0 do |
147 begin |
147 begin |
148 particle := AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), cWaterLine, vgtDroplet); |
148 particle := AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), cWaterLine, vgtDroplet); |
149 if particle <> nil then |
149 if particle <> nil then |
150 begin |
150 begin |
151 particle^.dX := particle^.dX - (Gear^.dX / 10); |
151 particle^.dX := particle^.dX - (Gear^.dX.QWordValue / 42949672960); |
152 particle^.dY := particle^.dY - (Gear^.dY / 5) |
152 particle^.dY := particle^.dY - (Gear^.dY.QWordValue / 21474836480) |
153 end |
153 end |
154 end |
154 end |
155 end; |
155 end; |
156 end |
156 end |
157 else |
157 else |
179 |
179 |
180 for i:= min(12, (3 + dmg div 10)) downto 0 do |
180 for i:= min(12, (3 + dmg div 10)) downto 0 do |
181 begin |
181 begin |
182 particle := AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12, |
182 particle := AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12, |
183 vgtDust); |
183 vgtDust); |
184 if particle <> nil then particle^.dX := particle^.dX + (Gear^.dX / 5); |
184 if particle <> nil then particle^.dX := particle^.dX + (Gear^.dX.QWordValue / 21474836480); |
185 end; |
185 end; |
186 |
186 |
187 if (Gear^.Invulnerable) then exit; |
187 if (Gear^.Invulnerable) then exit; |
188 |
188 |
189 if _0_6 < Gear^.dY then |
189 if _0_6 < Gear^.dY then |
634 begin |
634 begin |
635 PlaySound(sndShotgunFire); |
635 PlaySound(sndShotgunFire); |
636 shell := AddVisualGear(hwRound(Gear^.x), hwRound(Gear^.y), vgtShell); |
636 shell := AddVisualGear(hwRound(Gear^.x), hwRound(Gear^.y), vgtShell); |
637 if shell <> nil then |
637 if shell <> nil then |
638 begin |
638 begin |
639 shell^.dX := gear^.dX / -4; |
639 shell^.dX := gear^.dX.QWordValue / -17179869184; |
640 shell^.dY := gear^.dY / -4; |
640 shell^.dY := gear^.dY.QWordValue / -17179869184; |
641 shell^.Frame := 0 |
641 shell^.Frame := 0 |
642 end; |
642 end; |
643 Gear^.State := Gear^.State or gstAnimation |
643 Gear^.State := Gear^.State or gstAnimation |
644 end; |
644 end; |
645 exit |
645 exit |
754 if (HHGear^.Message and gm_Attack) <> 0 then |
754 if (HHGear^.Message and gm_Attack) <> 0 then |
755 begin |
755 begin |
756 shell := AddVisualGear(hwRound(Gear^.x), hwRound(Gear^.y), vgtShell); |
756 shell := AddVisualGear(hwRound(Gear^.x), hwRound(Gear^.y), vgtShell); |
757 if shell <> nil then |
757 if shell <> nil then |
758 begin |
758 begin |
759 shell^.dX := gear^.dX / -2; |
759 shell^.dX := gear^.dX.QWordValue / -8589934592; |
760 shell^.dY := gear^.dY / -2; |
760 shell^.dY := gear^.dY.QWordValue / -8589934592; |
761 shell^.Frame := 1 |
761 shell^.Frame := 1 |
762 end; |
762 end; |
763 Gear^.State := Gear^.State or gstAnimation; |
763 Gear^.State := Gear^.State or gstAnimation; |
764 Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5; |
764 Gear^.dX := SignAs(AngleSin(HHGear^.Angle), HHGear^.dX) * _0_5; |
765 Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5; |
765 Gear^.dY := -AngleCos(HHGear^.Angle) * _0_5; |
1479 inc(Gear^.Damage, hwRound(Gear^.dY * _70)); |
1479 inc(Gear^.Damage, hwRound(Gear^.dY * _70)); |
1480 for i:= min(12, hwRound(Gear^.dY*_10)) downto 0 do |
1480 for i:= min(12, hwRound(Gear^.dY*_10)) downto 0 do |
1481 begin |
1481 begin |
1482 particle := AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12, |
1482 particle := AddVisualGear(hwRound(Gear^.X) - 5 + Random(10), hwRound(Gear^.Y) + 12, |
1483 vgtDust); |
1483 vgtDust); |
1484 if particle <> nil then particle^.dX := particle^.dX + (Gear^.dX / 5) |
1484 if particle <> nil then particle^.dX := particle^.dX + (Gear^.dX.QWordValue / 21474836480) |
1485 end |
1485 end |
1486 end |
1486 end |
1487 else if not Gear^.dX.isNegative and (Gear^.dX > _0_2) and TestCollisionXwithGear(Gear, 1) |
1487 else if not Gear^.dX.isNegative and (Gear^.dX > _0_2) and TestCollisionXwithGear(Gear, 1) |
1488 then |
1488 then |
1489 inc(Gear^.Damage, hwRound(Gear^.dX * _70)) |
1489 inc(Gear^.Damage, hwRound(Gear^.dX * _70)) |
3183 |
3183 |
3184 for i:= 10 downto 0 do |
3184 for i:= 10 downto 0 do |
3185 begin |
3185 begin |
3186 vg := AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), hwRound(Gear^.Y) - 3 + Random(6), |
3186 vg := AddVisualGear(hwRound(Gear^.X) - 3 + Random(6), hwRound(Gear^.Y) - 3 + Random(6), |
3187 vgtDust); |
3187 vgtDust); |
3188 if vg <> nil then vg^.dX := vg^.dX + (Gear^.dX / 5); |
3188 if vg <> nil then vg^.dX := vg^.dX + (Gear^.dX.QWordValue / 21474836480); |
3189 end; |
3189 end; |
3190 |
3190 |
3191 DeleteGear(Gear); |
3191 DeleteGear(Gear); |
3192 exit |
3192 exit |
3193 end; |
3193 end; |