2137 if Gear^.Tag = 1 then |
2137 if Gear^.Tag = 1 then |
2138 sparkles^.Tint:= $3744D7FF |
2138 sparkles^.Tint:= $3744D7FF |
2139 else sparkles^.Tint:= $FAB22CFF |
2139 else sparkles^.Tint:= $FAB22CFF |
2140 end; |
2140 end; |
2141 end; |
2141 end; |
2142 if Gear^.Timer < 1000 then exit; |
2142 if Gear^.Timer < 1000 then |
|
2143 begin |
|
2144 AllInactive:= false; |
|
2145 exit |
|
2146 end |
2143 end; |
2147 end; |
2144 |
2148 |
2145 if (Gear^.Damage > 0) or exBoom then |
2149 if (Gear^.Damage > 0) or exBoom then |
2146 begin |
2150 begin |
2147 x := hwRound(Gear^.X); |
2151 x := hwRound(Gear^.X); |
4751 end; |
4755 end; |
4752 |
4756 |
4753 //////////////////////////////////////////////////////////////////////////////// |
4757 //////////////////////////////////////////////////////////////////////////////// |
4754 procedure doStepFlamethrowerWork(Gear: PGear); |
4758 procedure doStepFlamethrowerWork(Gear: PGear); |
4755 var |
4759 var |
4756 HHGear: PGear; |
4760 HHGear, flame: PGear; |
4757 rx, ry, speed: hwFloat; |
4761 rx, ry, speed: hwFloat; |
4758 i, gX, gY: LongInt; |
4762 i, gX, gY: LongInt; |
4759 begin |
4763 begin |
4760 AllInactive := false; |
4764 AllInactive := false; |
4761 HHGear := Gear^.Hedgehog^.Gear; |
4765 HHGear := Gear^.Hedgehog^.Gear; |
4789 begin |
4793 begin |
4790 rx := rndSign(getRandomf * _0_1); |
4794 rx := rndSign(getRandomf * _0_1); |
4791 ry := rndSign(getRandomf * _0_1); |
4795 ry := rndSign(getRandomf * _0_1); |
4792 speed := _0_5 * (_10 / Gear^.Tag); |
4796 speed := _0_5 * (_10 / Gear^.Tag); |
4793 |
4797 |
4794 AddGear(gx, gy, gtFlame, gstTmpFlag, |
4798 flame:= AddGear(gx, gy, gtFlame, gstTmpFlag, |
4795 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
4799 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
4796 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
4800 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
|
4801 flame^.CollisionMask:= $FF7F; |
4797 |
4802 |
4798 if (Gear^.Health mod 30) = 0 then |
4803 if (Gear^.Health mod 30) = 0 then |
4799 AddGear(gx, gy, gtFlame, 0, |
4804 begin |
|
4805 flame:= AddGear(gx, gy, gtFlame, 0, |
4800 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
4806 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
4801 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
4807 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
|
4808 flame^.CollisionMask:= $FF7F; |
|
4809 end |
4802 end; |
4810 end; |
4803 Gear^.Timer:= Gear^.Tag |
4811 Gear^.Timer:= Gear^.Tag |
4804 end; |
4812 end; |
4805 |
4813 |
4806 if (Gear^.Health = 0) or (HHGear^.Damage <> 0) then |
4814 if (Gear^.Health = 0) or (HHGear^.Damage <> 0) then |
4832 end; |
4840 end; |
4833 |
4841 |
4834 //////////////////////////////////////////////////////////////////////////////// |
4842 //////////////////////////////////////////////////////////////////////////////// |
4835 procedure doStepLandGunWork(Gear: PGear); |
4843 procedure doStepLandGunWork(Gear: PGear); |
4836 var |
4844 var |
4837 HHGear: PGear; |
4845 HHGear, land: PGear; |
4838 rx, ry, speed: hwFloat; |
4846 rx, ry, speed: hwFloat; |
4839 i, gX, gY: LongInt; |
4847 i, gX, gY: LongInt; |
4840 begin |
4848 begin |
4841 AllInactive := false; |
4849 AllInactive := false; |
4842 HHGear := Gear^.Hedgehog^.Gear; |
4850 HHGear := Gear^.Hedgehog^.Gear; |
4869 |
4877 |
4870 rx := rndSign(getRandomf * _0_1); |
4878 rx := rndSign(getRandomf * _0_1); |
4871 ry := rndSign(getRandomf * _0_1); |
4879 ry := rndSign(getRandomf * _0_1); |
4872 speed := (_3 / Gear^.Tag); |
4880 speed := (_3 / Gear^.Tag); |
4873 |
4881 |
4874 AddGear(gx, gy, gtFlake, gstTmpFlag, |
4882 land:= AddGear(gx, gy, gtFlake, gstTmpFlag, |
4875 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
4883 SignAs(AngleSin(HHGear^.Angle) * speed, HHGear^.dX) + rx, |
4876 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
4884 AngleCos(HHGear^.Angle) * ( - speed) + ry, 0); |
|
4885 land^.CollisionMask:= $FF7F; |
4877 |
4886 |
4878 Gear^.Timer:= Gear^.Tag |
4887 Gear^.Timer:= Gear^.Tag |
4879 end; |
4888 end; |
4880 |
4889 |
4881 if (Gear^.Health = 0) or (HHGear^.Damage <> 0) or ((HHGear^.Message and gmAttack) <> 0) then |
4890 if (Gear^.Health = 0) or (HHGear^.Damage <> 0) or ((HHGear^.Message and gmAttack) <> 0) then |