diff options
| author | Jakob Fries <jakob.fries@gmail.com> | 2007-08-04 01:53:26 +0000 |
|---|---|---|
| committer | Jakob Fries <jakob.fries@gmail.com> | 2007-08-04 01:53:26 +0000 |
| commit | 7bf877d252032c00404410d52ed5fd610a80589d (patch) | |
| tree | ed14c0c59377d39d902c82b569de019f4f54ed2e /src | |
| parent | e4304d5c90b3479021136b3ce4f77822a89394ae (diff) | |
| download | zcatch-7bf877d252032c00404410d52ed5fd610a80589d.tar.gz zcatch-7bf877d252032c00404410d52ed5fd610a80589d.zip | |
balance fixes
Diffstat (limited to 'src')
| -rw-r--r-- | src/game/server/game_server.cpp | 11 | ||||
| -rw-r--r-- | src/game/server/game_server.h | 1 |
2 files changed, 7 insertions, 5 deletions
diff --git a/src/game/server/game_server.cpp b/src/game/server/game_server.cpp index d5ba355f..9b270f4c 100644 --- a/src/game/server/game_server.cpp +++ b/src/game/server/game_server.cpp @@ -731,7 +731,7 @@ void player::try_respawn() weapons[WEAPON_HAMMER].ammo = -1; weapons[WEAPON_GUN].got = true; weapons[WEAPON_GUN].ammo = data->weapons[active_weapon].maxammo; - + active_weapon = WEAPON_GUN; reload_timer = 0; @@ -911,7 +911,8 @@ int player::handle_weapons() create_sound(pos, SOUND_ROCKET_FIRE); break; case WEAPON_SHOTGUN: - for(int i = -2; i <= 2; i++) + int shotspread = min(2, weapons[active_weapon].ammo); + for(int i = -shotspread; i <= shotspread; i++) { float a = get_angle(direction); a += i*0.075f; @@ -922,7 +923,7 @@ int player::handle_weapons() //vec2(cosf(a), sinf(a))*20.0f, server_tickspeed()/3, this, - 1, 0, 0, -1, WEAPON_SHOTGUN); + 2, 0, 0, -1, WEAPON_SHOTGUN); } create_sound(pos, SOUND_SHOTGUN_FIRE); break; @@ -935,7 +936,7 @@ int player::handle_weapons() break; } - weapons[active_weapon].ammo--; + weapons[active_weapon].ammo -= max(1, weapons[active_weapon].ammocost); attack_tick = server_tick(); reload_timer = data->weapons[active_weapon].firedelay * server_tickspeed() / 1000; } @@ -1631,7 +1632,7 @@ void create_explosion(vec2 p, int owner, int weapon, bool bnodamage) l = 1-clamp((l-innerradius)/(radius-innerradius), 0.0f, 1.0f); float dmg = 6 * l; if((int)dmg) - ents[i]->take_damage(forcedir*dmg*2, (int)dmg, owner, weapon); + ents[i]->take_damage(forcedir*dmg*2, (int)dmg/2, owner, weapon); } } } diff --git a/src/game/server/game_server.h b/src/game/server/game_server.h index ae3749f6..73b08794 100644 --- a/src/game/server/game_server.h +++ b/src/game/server/game_server.h @@ -208,6 +208,7 @@ public: { int ammoregenstart; int ammo; + int ammocost; bool got; } weapons[NUM_WEAPONS]; int active_weapon; |