about summary refs log tree commit diff
path: root/src/game/server
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/server')
-rw-r--r--src/game/server/game_server.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/game/server/game_server.cpp b/src/game/server/game_server.cpp
index 02e58c88..0cfcb0c8 100644
--- a/src/game/server/game_server.cpp
+++ b/src/game/server/game_server.cpp
@@ -292,6 +292,9 @@ void projectile::reset()
 void projectile::tick()
 {
 	float gravity = -400;
+	if(type != WEAPON_ROCKET)
+		gravity = -100;
+	
 	float pt = (server_tick()-start_tick-1)/(float)SERVER_TICK_SPEED;
 	float ct = (server_tick()-start_tick)/(float)SERVER_TICK_SPEED;
 	vec2 prevpos = calc_pos(pos, vel, gravity, pt);
@@ -802,14 +805,16 @@ int player::handle_weapons()
 						int shotspread = 2;
 						for(int i = -shotspread; i <= shotspread; i++)
 						{
+							float spreading[] = {-0.12f, -0.05f, 0, 0.05f, 0.12f};
 							float a = get_angle(direction);
-							a += i*0.08f;
+							float v = 1.0f-fabs(i/(float)shotspread);
+							a += spreading[i+2];
 							new projectile(WEAPON_SHOTGUN,
 								client_id,
 								pos+vec2(0,0),
-								vec2(cosf(a), sinf(a))*25.0f,
+								vec2(cosf(a), sinf(a))*(30.0f + 15.0f*v),
 								//vec2(cosf(a), sinf(a))*20.0f,
-								(int)(server_tickspeed()*0.4f),
+								(int)(server_tickspeed()*0.3f),
 								this,
 								1, 0, 0, -1, WEAPON_SHOTGUN);
 						}