Nerf X component a bit, allow knocks of nearby targets and upward kicks of overlapping
authornemo
Sun, 26 Aug 2012 21:07:12 -0400
changeset 7611 5013e11e13e5
parent 7610 682e21112867
child 7612 047c6692a2e7
Nerf X component a bit, allow knocks of nearby targets and upward kicks of overlapping
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