hedgewars/GSHandlers.inc
changeset 1297 78670b0c4a23
parent 1295 27bec661581c
child 1298 18fdc25fe65d
equal deleted inserted replaced
1296:d7fffad44b7e 1297:78670b0c4a23
  1081 procedure doStepFlame(Gear: PGear);
  1081 procedure doStepFlame(Gear: PGear);
  1082 begin
  1082 begin
  1083 AllInactive:= false;
  1083 AllInactive:= false;
  1084 if not TestCollisionYwithGear(Gear, 1) then
  1084 if not TestCollisionYwithGear(Gear, 1) then
  1085 	begin
  1085 	begin
  1086 	Gear^.dX:= Gear^.dX + cWindSpeed;
  1086 	if hwAbs(Gear^.dX - cWindSpeed) > _0_1 then
       
  1087 		Gear^.dX:= (Gear^.dX - cWindSpeed) * _0_5 + cWindSpeed;
       
  1088 
  1087 	Gear^.dY:= Gear^.dY + cGravity;
  1089 	Gear^.dY:= Gear^.dY + cGravity;
  1088 	if hwAbs(Gear^.dX) > _0_1 then Gear^.dX:= Gear^.dX * _0_5;
       
  1089 	if Gear^.dY > _0_1 then Gear^.dY:= Gear^.dY * _0_995;
  1090 	if Gear^.dY > _0_1 then Gear^.dY:= Gear^.dY * _0_995;
       
  1091 	
  1090 	Gear^.X:= Gear^.X + Gear^.dX;
  1092 	Gear^.X:= Gear^.X + Gear^.dX;
  1091 	Gear^.Y:= Gear^.Y + Gear^.dY;
  1093 	Gear^.Y:= Gear^.Y + Gear^.dY;
       
  1094 	
  1092 	if not (Gear^.Y < _1024) then
  1095 	if not (Gear^.Y < _1024) then
  1093 		begin
  1096 		begin
  1094 		DeleteGear(Gear);
  1097 		DeleteGear(Gear);
  1095 		exit
  1098 		exit
  1096 		end
  1099 		end
  1097 	end else begin
  1100 	end else begin
  1098 	if Gear^.Timer > 0 then dec(Gear^.Timer)
  1101 	if Gear^.Timer > 0 then dec(Gear^.Timer)
  1099 		else begin
  1102 		else begin
  1100 		AmmoShove(Gear, 5, 5);
  1103 		Gear^.Radius:= 5;
  1101 		doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 3, 0);
  1104 		AmmoShove(Gear, 3, 100);
       
  1105 		Gear^.Radius:= 1;
       
  1106 		doMakeExplosion(hwRound(Gear^.X), hwRound(Gear^.Y), 4, EXPLNoDamage);
  1102 		dec(Gear^.Health);
  1107 		dec(Gear^.Health);
  1103 		Gear^.Timer:= 1250 - Gear^.Angle * 12
  1108 		Gear^.Timer:= 1250 - Gear^.Tag * 12
  1104 		end
  1109 		end
  1105 	end;
  1110 	end;
  1106 
  1111 
  1107 //if (((GameTicks div 8) mod 64) = Gear^.Tag) then
  1112 //if (((GameTicks div 8) mod 64) = Gear^.Tag) then
  1108 //	AmmoFlameWork(Gear);
  1113 //	AmmoFlameWork(Gear);