# HG changeset patch # User nemo # Date 1346029632 14400 # Node ID 5013e11e13e544f0c848ccd1236ef6c983a41187 # Parent 682e21112867fadb2f27eee465ff0d11aa9e16d0 Nerf X component a bit, allow knocks of nearby targets and upward kicks of overlapping diff -r 682e21112867 -r 5013e11e13e5 hedgewars/uGearsHandlersRope.pas --- a/hedgewars/uGearsHandlersRope.pas Sun Aug 26 20:20:16 2012 -0400 +++ b/hedgewars/uGearsHandlersRope.pas Sun Aug 26 21:07:12 2012 -0400 @@ -87,12 +87,14 @@ if stuck then HHGear^.Y:= HHGear^.Y-_1 end until (i = 8) or not stuck; + HHGear^.Y:= HHGear^.Y+_1; // experiment in simulating something the shoppa players apparently expect if Gear^.Message and gmDown <> 0 then begin //HHGear^.dY:= HHGear^.dY / 16; - HHGear^.dY:= _0; - HHGear^.dX:= HHGear^.dX * 2 + //HHGear^.dY.QWordValue:= 0; + HHGear^.dY:= -_0_1; + HHGear^.dX:= HHGear^.dX * _1_5; end; if Gear^.Message and gmRight <> 0 then HHGear^.dX.isNegative:= false @@ -109,11 +111,13 @@ if stuck then HHGear^.Y:= HHGear^.Y+_1 end until (i = 8) or not stuck; + HHGear^.Y:= HHGear^.Y-_1; if Gear^.Message and gmDown <> 0 then begin //HHGear^.dY:= HHGear^.dY / 16; - HHGear^.dY.QWordValue:= 0; - HHGear^.dX:= HHGear^.dX * 2 + //HHGear^.dY.QWordValue:= 0; + HHGear^.dY:= _0_1; + HHGear^.dX:= HHGear^.dX * _1_5; end; if Gear^.Message and gmRight <> 0 then HHGear^.dX.isNegative:= true @@ -130,11 +134,13 @@ if stuck then HHGear^.X:= HHGear^.X-_1 end until (i = 8) or not stuck; + HHGear^.X:= HHGear^.X+_1; if Gear^.Message and gmDown <> 0 then begin //HHGear^.dX:= HHGear^.dX / 16; - HHGear^.dX.QWordValue:= 0; - HHGear^.dY:= HHGear^.dY * 2 + //HHGear^.dX.QWordValue:= 0; + HHGear^.dX:= -_0_1; + HHGear^.dY:= HHGear^.dY * _1_5; end; if Gear^.Message and gmRight <> 0 then HHGear^.dY.isNegative:= true @@ -151,11 +157,13 @@ if stuck then HHGear^.X:= HHGear^.X+_1 end until (i = 8) or not stuck; + HHGear^.X:= HHGear^.X-_1; if Gear^.Message and gmDown <> 0 then begin //HHGear^.dX:= HHGear^.dX / 16; - HHGear^.dX.QWordValue:= 0; - HHGear^.dY:= HHGear^.dY * 2 + //HHGear^.dX.QWordValue:= 0; + HHGear^.dX:= _0_1; + HHGear^.dY:= HHGear^.dY * _1_5; end; if Gear^.Message and gmRight <> 0 then HHGear^.dY.isNegative:= false