From: Jakob MG Date: Sun, 17 Jun 2012 11:25:22 +0000 (+0200) Subject: Fix bones on bumblebee model. Update vehicle balance. Give spider ballistic bullets... X-Git-Tag: xonotic-v0.7.0~312^2~22 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=b186e36be65d9d9c15f5aa496a7cff13ec487225;p=xonotic%2Fxonotic-data.pk3dir.git Fix bones on bumblebee model. Update vehicle balance. Give spider ballistic bullets. Add cvar for raptor takeoff speed. Add defines for bumblebee deaths & weapons --- diff --git a/effectinfo.txt b/effectinfo.txt index 5e06d075e..38413d3c6 100644 --- a/effectinfo.txt +++ b/effectinfo.txt @@ -7410,3 +7410,230 @@ velocityjitter 64 64 64 //lightradiusfade 50 //lightcolor 1 0.9 0.7 //lightshadow 1 + +// heal ray muzzleflash + +effect healray_muzzleflash +countabsolute 1 +type smoke +color 0x283880 0x283880 // 0x202020 0x404040 +tex 65 65 +size 20 20 +alpha 256 256 512 +originjitter 1.5 1.5 1.5 +velocityjitter 6 6 6 +sizeincrease -10 +velocitymultiplier 0.01 +lightradius 200 +lightradiusfade 2000 +lightcolor 1.5 3 6 + +effect healray_muzzleflash +count 22 +type spark +tex 71 73 +color 0xD9FDFF 0x00f0ff +size 1 15 +sizeincrease 3 +alpha 50 150 1924 +originjitter 1 1 1 +velocityjitter 150 150 150 +velocitymultiplier 0.4 +airfriction 5 +stretchfactor 3.9 + +effect healray_muzzleflash +count 4 +type spark +tex 70 70 +color 0xD9FDFF 0x00f0ff +size 1 1 +alpha 110 228 4024 +originjitter 1 1 1 +velocityjitter 650 650 650 +velocitymultiplier 1.1 +stretchfactor 0.2 + + + +//healray impact + +effect healray_impact +countabsolute 1 +type decal +tex 59 59 +size 32 32 +alpha 256 256 0 +color 0xd800ff 0xd800ff +originjitter 17 17 17 +lightradius 125 +lightradiusfade 450 +lightcolor 0 4.375 0 +// shockwave +effect healray_impact +type smoke +countabsolute 1 +tex 33 33 +size 32 32 +sizeincrease 1400 +color 0x00ff00 0x84c52f +alpha 40 40 350 +velocitymultiplier 44 +// cloud of bouncing sparks +effect healray_impact +count 30 +type spark +tex 70 70 +color 0x00ff00 0x84c52f +size 1 2 +alpha 156 300 1024 +gravity 2 +airfriction 6 +originjitter 1 1 1 +velocityjitter 1112 1112 1112 +// inner cloud of smoke +effect healray_impact +count 15 +type smoke +color 0x00ff00 0x84c52f +tex 40 40 +size 2 3 +alpha 200 456 512 +airfriction 3 +gravity -2 +velocityjitter 120 120 420 +rotate -180 180 -90 90 + + + + +// big plasma muzzle flash + +effect bigplasma_muzzleflash +countabsolute 1 +type smoke +color 0x283880 0x283880 // 0x202020 0x404040 +tex 65 65 +size 50 50 +alpha 256 256 812 +originjitter 1.5 1.5 1.5 +velocityjitter 6 6 6 +sizeincrease -10 +velocitymultiplier 0.01 +lightradius 200 +lightradiusfade 2000 +lightcolor 1.5 3 6 + +effect bigplasma_muzzleflash +countabsolute 1 +type smoke +color 0x00f0ff 0x00f0ff +tex 74 74 +size 20 20 +alpha 56 56 1112 +sizeincrease 300 + +effect bigplasma_muzzleflash +count 14 +type spark +tex 51 55 +color 0xD9FDFF 0x00f0ff +size 5 10 +sizeincrease 135 +alpha 50 150 1924 +originjitter 1 1 1 +velocityjitter 350 350 350 +velocitymultiplier 0.4 +airfriction 5 +stretchfactor 1.9 + +effect bigplasma_muzzleflash +count 4 +type spark +tex 70 70 +color 0xD9FDFF 0x00f0ff +size 20 20 +alpha 110 228 4024 +originjitter 1 1 1 +velocityjitter 650 650 650 +velocitymultiplier 1.1 +stretchfactor 0.2 + + +// big plasma impact + +effect bigplasma_impact +countabsolute 1 +type decal +tex 59 59 +size 32 32 +alpha 256 256 0 +originjitter 17 17 17 +lightradius 125 +lightradiusfade 450 +lightcolor 3.125 4.375 10 +// shockwave +effect bigplasma_impact +type smoke +countabsolute 1 +tex 33 33 +size 32 32 +sizeincrease 1400 +color 0x80C0FF 0x80C0FF +alpha 40 40 350 +velocitymultiplier 44 +// cloud of bouncing sparks +effect bigplasma_impact +count 30 +type spark +tex 70 70 +color 0x629dff 0x0018ff +size 1 2 +alpha 156 300 1024 +gravity 2 +airfriction 6 +originjitter 1 1 1 +velocityjitter 1512 1512 1512 +// inner cloud of smoke +effect bigplasma_impact +count 15 +type smoke +color 0x629dff 0x0018ff +tex 48 55 +size 20 24 +sizeincrease 555 +alpha 200 456 1512 +airfriction 30 +originjitter 20 20 20 +velocityjitter 320 320 320 +rotate -180 180 -9 9 +// smoke +effect bigplasma_impact +type smoke +count 16 +blend alpha +tex 0 7 +size 60 30 +color 0x222222 0x000000 +alpha 128 328 390 +rotate -180 180 2 -2 +velocityjitter 100 100 200 +velocityoffset 0 0 180 +originjitter 80 80 10 +sizeincrease 30 +airfriction 0.04 +gravity 0.4 +// smoke in the middle +effect bigplasma_impact +type alphastatic +count 10 +tex 0 7 +size 60 70 +color 0x222222 0x000000 +alpha 128 328 310 +rotate -180 180 20 -20 +velocityjitter 10 10 10 +originjitter 80 80 80 +sizeincrease -10 +airfriction 0.04 +gravity -0.2 \ No newline at end of file diff --git a/models/vehicles/bumblebee_body.dpm b/models/vehicles/bumblebee_body.dpm index 9962dd764..016b6343d 100644 Binary files a/models/vehicles/bumblebee_body.dpm and b/models/vehicles/bumblebee_body.dpm differ diff --git a/models/vehicles/bumblebee_plasma_left.dpm b/models/vehicles/bumblebee_plasma_left.dpm index 57df41a25..785699909 100644 Binary files a/models/vehicles/bumblebee_plasma_left.dpm and b/models/vehicles/bumblebee_plasma_left.dpm differ diff --git a/models/vehicles/bumblebee_plasma_right.dpm b/models/vehicles/bumblebee_plasma_right.dpm index 1689979fc..86cf3ddfc 100644 Binary files a/models/vehicles/bumblebee_plasma_right.dpm and b/models/vehicles/bumblebee_plasma_right.dpm differ diff --git a/models/vehicles/bumblebee_ray.dpm b/models/vehicles/bumblebee_ray.dpm index 2e36eb534..d6014b9c8 100644 Binary files a/models/vehicles/bumblebee_ray.dpm and b/models/vehicles/bumblebee_ray.dpm differ diff --git a/qcsrc/client/damage.qc b/qcsrc/client/damage.qc index fc8b83b5b..ae83d45ee 100644 --- a/qcsrc/client/damage.qc +++ b/qcsrc/client/damage.qc @@ -229,7 +229,7 @@ void Ent_DamageInfo(float isNew) sound(self, CH_SHOTS, "weapons/rocket_impact.wav", VOL_BASE, ATTN_MIN); pointparticles(particleeffectnum("explosion_big"), self.origin, w_backoff * 1000, 1); break; - + case DEATH_WAKIGUN: sound(self, CH_SHOTS, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM); pointparticles(particleeffectnum("wakizashi_gun_impact"), self.origin, w_backoff * 1000, 1); @@ -267,6 +267,10 @@ void Ent_DamageInfo(float isNew) sound(self, CH_SHOTS, "weapons/laserimpact.wav", VOL_BASE, ATTN_MIN); pointparticles(particleeffectnum("explosion_big"), self.origin, w_backoff * 1000, 1); break; + case DEATH_BUMB_GUN: + sound(self, CH_SHOTS, "weapons/fireball_impact2.wav", VOL_BASE, ATTN_NORM); + pointparticles(particleeffectnum("bigplasma_impact"), self.origin, w_backoff * 1000, 1); + break; } } diff --git a/qcsrc/client/hud.qc b/qcsrc/client/hud.qc index 8bdd76b75..6500cee56 100644 --- a/qcsrc/client/hud.qc +++ b/qcsrc/client/hud.qc @@ -1750,6 +1750,10 @@ void HUD_KillNotify(string s1, string s2, string s3, float type, float msg) // s HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); if(alsoprint) print (sprintf(_("^1%s^1 was bolted down by %s\n"), s2, s1)); + } else if(type == DEATH_BUMB_GUN) { + HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); + if(alsoprint) + print (sprintf(_("^1%s^1 saw %s's preddy lights.\n"), s2, s1)); } else if(type == DEATH_WAKIROCKET) { HUD_KillNotify_Push(s1, s2, 1, DEATH_GENERIC); if(alsoprint) diff --git a/qcsrc/client/projectile.qc b/qcsrc/client/projectile.qc index 85d5aedcb..4081bd8d1 100644 --- a/qcsrc/client/projectile.qc +++ b/qcsrc/client/projectile.qc @@ -303,6 +303,10 @@ void Ent_Projectile() case PROJECTILE_SPIDERROCKET: setmodel(self, "models/vehicles/rocket02.md3"); self.traileffect = particleeffectnum("spiderbot_rocket_thrust"); break; case PROJECTILE_WAKIROCKET: setmodel(self, "models/vehicles/rocket01.md3"); self.traileffect = particleeffectnum("wakizashi_rocket_thrust"); break; case PROJECTILE_WAKICANNON: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum(""); break; + + case PROJECTILE_BUMBLE_GUN: setmodel(self, "models/elaser.mdl");self.traileffect = particleeffectnum("TR_NEXUIZPLASMA"); break; + case PROJECTILE_BUMBLE_BEAM: setmodel(self, "models/elaser.mdl");self.traileffect = particleeffectnum("TR_NEXUIZPLASMA"); break; + default: error("Received invalid CSQC projectile, can't work with this!"); break; @@ -406,9 +410,21 @@ void Ent_Projectile() break; case PROJECTILE_WAKIROCKET: loopsound(self, CH_SHOTS_SINGLE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM); - break; + break; + /* case PROJECTILE_WAKICANNON: break; + case PROJECTILE_BUMBLE_GUN: + // only new engines support sound moving with object + loopsound(self, CH_SHOTS_SINGLE, "weapons/electro_fly.wav", VOL_BASE, ATTN_NORM); + self.mins = '0 0 -4'; + self.maxs = '0 0 -4'; + self.move_movetype = MOVETYPE_BOUNCE; + self.move_touch = SUB_Null; + self.move_bounce_factor = g_balance_electro_secondary_bouncefactor; + self.move_bounce_stopspeed = g_balance_electro_secondary_bouncestop; + break; + */ default: break; } diff --git a/qcsrc/client/vehicles/vehicles.qc b/qcsrc/client/vehicles/vehicles.qc index 6081f5a66..b7eabced2 100644 --- a/qcsrc/client/vehicles/vehicles.qc +++ b/qcsrc/client/vehicles/vehicles.qc @@ -30,6 +30,20 @@ const var void Draw_Not(); .float axh_drawflag; .float axh_scale; +#define spider_ico "gfx/vehicles/sbot.tga" +#define spider_rkt "gfx/vehicles/sbot_rpods.tga" +#define spider_mgun "gfx/vehicles/sbot_mguns.tga" +#define spider_xhair "gfx/vehicles/axh-special1.tga" + +#define waki_ico "gfx/vehicles/waki.tga" +#define waki_eng "gfx/vehicles/waki_e.tga" +#define waki_gun "gfx/vehicles/waki_guns.tga" +#define waki_rkt "gfx/vehicles/waki_rockets.tga" +#define waki_xhair "gfx/vehicles/axh-special1.tga" + +float alarm1time; +float alarm2time; + void AuxiliaryXhair_Draw2D() { vector loc, psize; @@ -168,15 +182,143 @@ void Net_VehicleSetup() void CSQC_BUMBLE_HUD() { +/* + drawpic(hudloc, waki_s, picsize, '1 1 1', shield, DRAWFLAG_NORMAL); + drawpic(hudloc, waki_b, picsize, '0 1 0' * health + '1 0 0' * (1 - health), 1, DRAWFLAG_NORMAL); + drawpic(hudloc, waki_r, picsize, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); + drawpic(hudloc, waki_e, picsize, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); +*/ + if(autocvar_r_letterbox) + return; + + vector picsize, hudloc, pic2size, picloc; + + // Fetch health & ammo stats + HUD_GETSTATS + + picsize = draw_getimagesize(hud_bg) * autocvar_cl_vehicles_hudscale; + hudloc_y = vid_conheight - picsize_y; + hudloc_x = vid_conwidth * 0.5 - picsize_x * 0.5; + + drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); + + shield *= 0.01; + vh_health *= 0.01; + energy *= 0.01; + reload1 *= 0.01; + + pic2size = draw_getimagesize(spider_ico) * (autocvar_cl_vehicles_hudscale * 0.8); + picloc = picsize * 0.5 - pic2size * 0.5; + if(vh_health < 0.25) + drawpic(hudloc + picloc, waki_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, waki_ico, pic2size, '1 1 1' * vh_health + '1 0 0' * (1 - vh_health), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, waki_eng, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, waki_gun, pic2size, '1 1 1' * energy + '1 0 0' * (1 - energy), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, waki_rkt, pic2size, '1 1 1' * reload1 + '1 0 0' * (1 - reload1), 1, DRAWFLAG_NORMAL); + drawpic(hudloc + picloc, hud_sh, pic2size, '1 1 1', shield, DRAWFLAG_NORMAL); + +// Health bar + picsize = draw_getimagesize(hud_hp_bar) * autocvar_cl_vehicles_hudscale; + picloc = '69 69 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x + (picsize_x * (1 - vh_health)), 0, vid_conwidth, vid_conheight); + drawpic(hudloc + picloc, hud_hp_bar, picsize, '1 1 1', 1 , DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picsize = draw_getimagesize(hud_hp_ico) * autocvar_cl_vehicles_hudscale; + picloc = '37 65 0' * autocvar_cl_vehicles_hudscale; + if(vh_health < 0.25) + { + if(alarm1time < time) + { + alarm1time = time + 2; + sound(self, CH_PAIN_SINGLE, "vehicles/alarm.wav", VOL_BASEVOICE, ATTN_NONE); + } + + drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + } + else + { + drawpic(hudloc + picloc, hud_hp_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + if(alarm1time) + { + sound(self, CH_PAIN_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTN_NONE); + alarm1time = 0; + } + } + + +// Shield bar + picsize = draw_getimagesize(hud_sh_bar) * autocvar_cl_vehicles_hudscale; + picloc = '69 140 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x + (picsize_x * (1 - shield)), 0, vid_conwidth, vid_conheight); + drawpic(hudloc + picloc, hud_sh_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picloc = '40 136 0' * autocvar_cl_vehicles_hudscale; + picsize = draw_getimagesize(hud_sh_ico) * autocvar_cl_vehicles_hudscale; + if(shield < 0.25) + { + if(alarm2time < time) + { + alarm2time = time + 1; + sound(self, CH_TRIGGER_SINGLE, "vehicles/alarm_shield.wav", VOL_BASEVOICE, ATTN_NONE); + } + drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + } + else + { + drawpic(hudloc + picloc, hud_sh_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + if(alarm2time) + { + sound(self, CH_TRIGGER_SINGLE, "misc/null.wav", VOL_BASEVOICE, ATTN_NONE); + alarm2time = 0; + } + } + +// Gun bar + picsize = draw_getimagesize(hud_ammo1_bar) * autocvar_cl_vehicles_hudscale; + picloc = '450 69 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x, picloc_y, picsize_x * energy, vid_conheight); + drawpic(hudloc + picloc, hud_ammo1_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + picsize = draw_getimagesize(hud_ammo1_ico) * autocvar_cl_vehicles_hudscale; + picloc = '664 60 0' * autocvar_cl_vehicles_hudscale; + if(energy < 0.2) + drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, hud_ammo1_ico, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + +// Bomb bar + picsize = draw_getimagesize(hud_ammo2_bar) * autocvar_cl_vehicles_hudscale; + picloc = '450 140 0' * autocvar_cl_vehicles_hudscale; + drawsetcliparea(hudloc_x + picloc_x, hudloc_y + picloc_y, picsize_x * reload1, vid_conheight); + drawpic(hudloc + picloc, hud_ammo2_bar, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + drawresetcliparea(); +// .. and icon + pic2size = draw_getimagesize(hud_ammo2_ico) * autocvar_cl_vehicles_hudscale; + picloc = '664 130 0' * autocvar_cl_vehicles_hudscale; + if(reload1 != 1) + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 0 0' + '0 1 1' * sin(time * 8), 1, DRAWFLAG_NORMAL); + else + drawpic(hudloc + picloc, hud_ammo2_ico, pic2size, '1 1 1', 1, DRAWFLAG_NORMAL); + + if (scoreboard_showscores) + HUD_DrawScoreboard(); + else + { + picsize = draw_getimagesize(waki_xhair); + picsize_x *= 0.5; + picsize_y *= 0.5; + + + drawpic('0.5 0 0' * (vid_conwidth - picsize_x) + '0 0.5 0' * (vid_conheight - picsize_y), waki_xhair, picsize, '1 1 1', 1, DRAWFLAG_NORMAL); + } } -#define spider_ico "gfx/vehicles/sbot.tga" -#define spider_rkt "gfx/vehicles/sbot_rpods.tga" -#define spider_mgun "gfx/vehicles/sbot_mguns.tga" -#define spider_xhair "gfx/vehicles/axh-special1.tga" -float alarm1time; -float alarm2time; + void CSQC_SPIDER_HUD() { @@ -195,11 +337,6 @@ void CSQC_SPIDER_HUD() drawpic(hudloc, hud_bg, picsize, '1 1 1', autocvar_cl_vehicles_hudalpha, DRAWFLAG_NORMAL); - //drawstring(hudloc + '145 19 0', strcat(ftos(vh_health), "%"),'15 15 0','0 1 0', 1, DRAWFLAG_NORMAL); - //drawstring(hudloc + '175 34 0', strcat(ftos(shield), "%"),'15 15 0','0 0 1', 1, DRAWFLAG_NORMAL); - //drawstring(hudloc + '136 102 0', strcat(ftos(ammo1), "%"),'14 14 0','1 1 0', 1, DRAWFLAG_NORMAL); - //drawstring(hudloc + '179 69 0', strcat(ftos(9 - ammo2), " / 8"),'14 14 0','1 1 0', 1, DRAWFLAG_NORMAL); - ammo1 *= 0.01; shield *= 0.01; vh_health *= 0.01; @@ -516,11 +653,6 @@ void CSQC_RAPTOR_HUD() } } -#define waki_ico "gfx/vehicles/waki.tga" -#define waki_eng "gfx/vehicles/waki_e.tga" -#define waki_gun "gfx/vehicles/waki_guns.tga" -#define waki_rkt "gfx/vehicles/waki_rockets.tga" -#define waki_xhair "gfx/vehicles/axh-special1.tga" void CSQC_WAKIZASHI_HUD() { /* diff --git a/qcsrc/common/constants.qh b/qcsrc/common/constants.qh index 13d31155c..076de115e 100644 --- a/qcsrc/common/constants.qh +++ b/qcsrc/common/constants.qh @@ -349,6 +349,9 @@ float PROJECTILE_SPIDERROCKET = 27; float PROJECTILE_WAKIROCKET = 28; float PROJECTILE_WAKICANNON = 29; +float PROJECTILE_BUMBLE_GUN = 30; +float PROJECTILE_BUMBLE_BEAM = 31; + float SPECIES_HUMAN = 0; float SPECIES_ROBOT_SOLID = 1; float SPECIES_ALIEN = 2; @@ -391,8 +394,12 @@ float DEATH_WAKIBLOWUP = 10036; float DEATH_RAPTOR_CANNON = 10037; float DEATH_RAPTOR_BOMB = 10038; float DEATH_RAPTOR_BOMB_SPLIT = 10039; -float DEATH_RAPTOR_DEATH = 10040; -float DEATH_VHLAST = 10040; +float DEATH_RAPTOR_DEATH = 10040; +float DEATH_BUMB_GUN = 10041; +float DEATH_BUMB_RAY = 10042; +float DEATH_BUMB_RAY_HEAL = 10043; +float DEATH_BUMB_DEATH = 10044; +float DEATH_VHLAST = 10044; #define DEATH_ISVEHICLE(t) ((t) >= DEATH_VHFIRST && (t) <= DEATH_VHLAST) float DEATH_GENERIC = 10050; diff --git a/qcsrc/server/movelib.qc b/qcsrc/server/movelib.qc index 8a6235127..60dc90b69 100644 --- a/qcsrc/server/movelib.qc +++ b/qcsrc/server/movelib.qc @@ -227,11 +227,11 @@ void movelib_groundalign4point(float spring_length, float spring_up, float blend r = self.origin; r_z = r_z; - push_angle_x = (a_z - c_z) * 45; - push_angle_x += (b_z - d_z) * 45; + push_angle_x = (a_z - c_z) * 90; + push_angle_x += (b_z - d_z) * 90; - push_angle_z = (b_z - a_z) * 45; - push_angle_z += (d_z - c_z) * 45; + push_angle_z = (b_z - a_z) * 90; + push_angle_z += (d_z - c_z) * 90; //self.angles_x += push_angle_x * 0.95; //self.angles_z += push_angle_z * 0.95; diff --git a/qcsrc/server/vehicles/raptor.qc b/qcsrc/server/vehicles/raptor.qc index 4bf674e1b..0054d5441 100644 --- a/qcsrc/server/vehicles/raptor.qc +++ b/qcsrc/server/vehicles/raptor.qc @@ -3,6 +3,7 @@ #define RAPTOR_MAX '80 80 70' float autocvar_g_vehicle_raptor_respawntime; +float autocvar_g_vehicle_raptor_takeofftime; float autocvar_g_vehicle_raptor_movestyle; float autocvar_g_vehicle_raptor_turnspeed; @@ -274,7 +275,7 @@ float raptor_takeoff() // Takeoff sequense if(raptor.frame < 25) { - raptor.frame += 0.25; + raptor.frame += 25 / (autocvar_g_vehicle_raptor_takeofftime / sys_frametime); raptor.velocity_z = min(raptor.velocity_z * 1.5, 256); self.bomb1.gun1.avelocity_y = 90 + ((raptor.frame / 25) * 25000); self.bomb1.gun2.avelocity_y = -self.bomb1.gun1.avelocity_y; @@ -311,7 +312,7 @@ float raptor_takeoff() float raptor_frame() { entity player, raptor; - float ftmp = 0, ftmp2; + float ftmp = 0; vector df; if(intermission_running) @@ -457,39 +458,14 @@ float raptor_frame() } } - // Aim the gunz - ftmp2 = autocvar_g_vehicle_raptor_cannon_turnspeed * frametime; - ftmp = -ftmp2; - - // Gun1 - df = gettaginfo(raptor.gun1, gettagindex(raptor.gun1, "fire1")); - //ad = df; - //vf = v_forward; - df = vectoangles(normalize(trace_endpos - df)); // Find the direction & angle - df = AnglesTransform_ToAngles(AnglesTransform_LeftDivide(AnglesTransform_FromAngles(raptor.angles), AnglesTransform_FromAngles(df))) - raptor.gun1.angles; - df = shortangle_vxy(df, raptor.gun1.angles); - - // Bind to aimspeed - df_x = bound(ftmp, df_x, ftmp2); - df_y = bound(ftmp, df_y, ftmp2); - // Bind to limts - raptor.gun1.angles_x = bound(-autocvar_g_vehicle_raptor_cannon_pitchlimit_down, df_x + raptor.gun1.angles_x, autocvar_g_vehicle_raptor_cannon_pitchlimit_up); - raptor.gun1.angles_y = bound(-autocvar_g_vehicle_raptor_cannon_turnlimit, df_y + raptor.gun1.angles_y, autocvar_g_vehicle_raptor_cannon_turnlimit); - - // Gun2 - df = gettaginfo(raptor.gun2, gettagindex(raptor.gun2, "fire1")); - //ad += df; - //vf += v_forward; - df = vectoangles(normalize(trace_endpos - df)); // Find the direction & angle - df = AnglesTransform_ToAngles(AnglesTransform_LeftDivide(AnglesTransform_FromAngles(raptor.angles), AnglesTransform_FromAngles(df))) - raptor.gun2.angles; - df = shortangle_vxy(df, raptor.gun2.angles); - - // Bind to aimspeed - df_x = bound(ftmp, df_x, ftmp2); - df_y = bound(ftmp, df_y, ftmp2); - // Bind to limts - raptor.gun2.angles_x = bound(-autocvar_g_vehicle_raptor_cannon_pitchlimit_down, df_x + raptor.gun2.angles_x, autocvar_g_vehicle_raptor_cannon_pitchlimit_up); - raptor.gun2.angles_y = bound(-autocvar_g_vehicle_raptor_cannon_turnlimit, df_y + raptor.gun2.angles_y, autocvar_g_vehicle_raptor_cannon_turnlimit); + + vehicle_aimturret(raptor, trace_endpos, raptor.gun1, "fire1", + autocvar_g_vehicle_raptor_cannon_pitchlimit_down * -1, autocvar_g_vehicle_raptor_cannon_pitchlimit_up, + autocvar_g_vehicle_raptor_cannon_turnlimit * -1, autocvar_g_vehicle_raptor_cannon_turnlimit, autocvar_g_vehicle_raptor_cannon_turnspeed); + + vehicle_aimturret(raptor, trace_endpos, raptor.gun2, "fire1", + autocvar_g_vehicle_raptor_cannon_pitchlimit_down * -1, autocvar_g_vehicle_raptor_cannon_pitchlimit_up, + autocvar_g_vehicle_raptor_cannon_turnlimit * -1, autocvar_g_vehicle_raptor_cannon_turnlimit, autocvar_g_vehicle_raptor_cannon_turnspeed); /* ad = ad * 0.5; @@ -680,7 +656,7 @@ void raptor_dinit() setattachment(self.tur_head, self,"root"); - // FIXME Guns mounts to angled bones + // FIXMODEL Guns mounts to angled bones self.bomb1.angles = self.angles; self.angles = '0 0 0'; // This messes up gun-aim, so work arround it. diff --git a/qcsrc/server/vehicles/spiderbot.qc b/qcsrc/server/vehicles/spiderbot.qc index eec621e47..be3e88961 100644 --- a/qcsrc/server/vehicles/spiderbot.qc +++ b/qcsrc/server/vehicles/spiderbot.qc @@ -8,15 +8,16 @@ float autocvar_g_vehicle_spiderbot_speed_stop; float autocvar_g_vehicle_spiderbot_speed_strafe; float autocvar_g_vehicle_spiderbot_speed_walk; float autocvar_g_vehicle_spiderbot_turnspeed; +float autocvar_g_vehicle_spiderbot_turnspeed_strafe; float autocvar_g_vehicle_spiderbot_movement_inertia; float autocvar_g_vehicle_spiderbot_springlength; float autocvar_g_vehicle_spiderbot_springup; float autocvar_g_vehicle_spiderbot_springblend; +float autocvar_g_vehicle_spiderbot_tiltlimit; float autocvar_g_vehicle_spiderbot_head_pitchlimit_down; float autocvar_g_vehicle_spiderbot_head_pitchlimit_up; -float autocvar_g_vehicle_spiderbot_head_pitchspeed; float autocvar_g_vehicle_spiderbot_head_turnlimit; float autocvar_g_vehicle_spiderbot_head_turnspeed; @@ -39,6 +40,9 @@ float autocvar_g_vehicle_spiderbot_minigun_ammo_cost; float autocvar_g_vehicle_spiderbot_minigun_ammo_max; float autocvar_g_vehicle_spiderbot_minigun_ammo_regen; float autocvar_g_vehicle_spiderbot_minigun_ammo_regen_pause; +float autocvar_g_vehicle_spiderbot_minigun_force; +float autocvar_g_vehicle_spiderbot_minigun_speed; +float autocvar_g_vehicle_spiderbot_minigun_bulletconstant; float autocvar_g_vehicle_spiderbot_rocket_damage; float autocvar_g_vehicle_spiderbot_rocket_force; @@ -191,6 +195,12 @@ float spiderbot_frame() player.BUTTON_CROUCH = 0; player.switchweapon = 0; + if(player.impulse == 12) + { + dprint("WOOOOOOOOOOOtotototototOOOOOOOOOOOOttt\n"); + } + + #if 1 // 0 to enable per-gun impact aux crosshairs // Avarage gun impact point's -> aux cross ad = gettaginfo(spider.tur_head, gettagindex(spider.tur_head, "tag_hardpoint01")); @@ -219,18 +229,14 @@ float spiderbot_frame() //UpdateAuxiliaryXhair(player, trace_endpos, ('1 0 0' * player.vehicle_reload2) + ('0 1 0' * (1 - player.vehicle_reload2)), 2); // Rotate head - ftmp = autocvar_g_vehicle_spiderbot_head_turnspeed * sys_frametime; + ftmp = autocvar_g_vehicle_spiderbot_head_turnspeed * sys_frametime; ad_y = bound(-ftmp, ad_y, ftmp); spider.tur_head.angles_y = bound(autocvar_g_vehicle_spiderbot_head_turnlimit * -1, spider.tur_head.angles_y + ad_y, autocvar_g_vehicle_spiderbot_head_turnlimit); // Pitch head - ftmp = autocvar_g_vehicle_spiderbot_head_pitchspeed * sys_frametime; ad_x = bound(ftmp * -1, ad_x, ftmp); spider.tur_head.angles_x = bound(autocvar_g_vehicle_spiderbot_head_pitchlimit_down, spider.tur_head.angles_x + ad_x, autocvar_g_vehicle_spiderbot_head_pitchlimit_up); - // Turn Body - ftmp = autocvar_g_vehicle_spiderbot_turnspeed * sys_frametime; - ftmp = bound(-ftmp, spider.tur_head.angles_y, ftmp); //fixedmakevectors(spider.angles); makevectors(spider.angles + '-2 0 0' * spider.angles_x); @@ -272,6 +278,13 @@ float spiderbot_frame() } else { + // Turn Body + if(player.movement_x == 0 && player.movement_y != 0) + ftmp = autocvar_g_vehicle_spiderbot_turnspeed_strafe * sys_frametime; + else + ftmp = autocvar_g_vehicle_spiderbot_turnspeed * sys_frametime; + + ftmp = bound(-ftmp, spider.tur_head.angles_y, ftmp); spider.angles_y = anglemods(spider.angles_y + ftmp); spider.tur_head.angles_y -= ftmp; @@ -323,8 +336,8 @@ float spiderbot_frame() } } - self.angles_x = bound(-45, self.angles_x, 45); - self.angles_z = bound(-45, self.angles_z, 45); + self.angles_x = bound(-autocvar_g_vehicle_spiderbot_tiltlimit, self.angles_x, autocvar_g_vehicle_spiderbot_tiltlimit); + self.angles_z = bound(-autocvar_g_vehicle_spiderbot_tiltlimit, self.angles_z, autocvar_g_vehicle_spiderbot_tiltlimit); if(player.BUTTON_ATCK) { @@ -342,11 +355,17 @@ float spiderbot_frame() v_forward = normalize(v_forward); v += v_forward * 50; - fireBullet (v, v_forward, autocvar_g_vehicle_spiderbot_minigun_spread, autocvar_g_vehicle_spiderbot_minigun_damage, - autocvar_g_vehicle_spiderbot_minigun_spread, DEATH_SBMINIGUN, 0); +//void fireBallisticBullet(vector start, vector dir, float spread, float pSpeed, float lifetime, float damage, float headshotbonus, float force, float dtype, float tracereffects, float gravityfactor, float bulletconstant) + + fireBallisticBullet(v, v_forward, autocvar_g_vehicle_spiderbot_minigun_spread, autocvar_g_vehicle_spiderbot_minigun_speed, + 5, autocvar_g_vehicle_spiderbot_minigun_damage, 0, autocvar_g_vehicle_spiderbot_minigun_force, DEATH_SBMINIGUN, 0, 1, autocvar_g_vehicle_spiderbot_minigun_bulletconstant); + endFireBallisticBullet(); + +// fireBullet (v, v_forward, autocvar_g_vehicle_spiderbot_minigun_spread, autocvar_g_vehicle_spiderbot_minigun_damage, +// autocvar_g_vehicle_spiderbot_minigun_spread, DEATH_SBMINIGUN, 0); sound (gun, CH_WEAPON_A, "weapons/uzi_fire.wav", VOL_BASE, ATTN_NORM); - trailparticles(self, particleeffectnum("spiderbot_minigun_trail"), v, trace_endpos); + //trailparticles(self, particleeffectnum("spiderbot_minigun_trail"), v, trace_endpos); pointparticles(particleeffectnum("spiderbot_minigun_muzzleflash"), v, v_forward * 2500, 1); self = spider; diff --git a/qcsrc/server/vehicles/vehicles.qc b/qcsrc/server/vehicles/vehicles.qc index 071ee74ac..675d1cf4a 100644 --- a/qcsrc/server/vehicles/vehicles.qc +++ b/qcsrc/server/vehicles/vehicles.qc @@ -1185,6 +1185,29 @@ float vehicle_initialize(string net_name, return TRUE; } +void vehicle_aimturret(entity _vehic, vector _target, entity _turrret, string _tagname, + float _pichlimit_min, float _pichlimit_max, + float _rotlimit_min, float _rotlimit_max, float _aimspeed) +{ + vector vtmp; + float ftmp; + + vtmp = vectoangles(normalize(_target - gettaginfo(_turrret, gettagindex(_turrret, _tagname)))); + vtmp = AnglesTransform_ToAngles(AnglesTransform_LeftDivide(AnglesTransform_FromAngles(_vehic.angles), AnglesTransform_FromAngles(vtmp))) - _turrret.angles; + vtmp = AnglesTransform_Normalize(vtmp, TRUE); + + ftmp = _aimspeed * sys_frametime; + vtmp_y = bound(-ftmp, vtmp_y, ftmp); + vtmp_x = bound(-ftmp, vtmp_x, ftmp); + _turrret.angles_y = bound(_rotlimit_min, _turrret.angles_y + vtmp_y, _rotlimit_max); + _turrret.angles_x = bound(_pichlimit_min, _turrret.angles_x + vtmp_x, _pichlimit_max); +} + +void vehicles_impusle(float _imp) +{ + +} + void bugmenot() { self.vehicle_exit = self.vehicle_exit; diff --git a/qcsrc/server/vehicles/vehicles_def.qh b/qcsrc/server/vehicles/vehicles_def.qh index dcb1854f3..0706a82fc 100644 --- a/qcsrc/server/vehicles/vehicles_def.qh +++ b/qcsrc/server/vehicles/vehicles_def.qh @@ -2,8 +2,6 @@ #define VEHICLES_ENABLED #ifdef VEHICLES_ENABLED -//#message "with tZork vehicles (experimental)" - .float vehicle_flags; float VHF_ISVEHICLE = 2; /// Indicates vehicle float VHF_HASSHIELD = 4; /// Vehicle has shileding @@ -20,6 +18,7 @@ float VHF_DMGHEADROLL = 4096; .entity gun1; .entity gun2; +.entity gun3; .float vehicle_health; /// If self is player this is 0..100 indicating precentage of health left on vehicle. If self is vehile, this is the real health value. .float vehicle_energy; /// If self is player this is 0..100 indicating precentage of energy left on vehicle. If self is vehile, this is the real energy value. @@ -56,6 +55,7 @@ float SVC_UPDATEENTITY = 128; // Net.Protocol 0x80 var .void() vehicle_enter; /// Vehicles custom funciton to be executed when owner exit it var .void() vehicle_die; /// Vehicles custom function to be executed when vehile die var .void() vehicle_spawn; /// Vehicles custom fucntion to be efecuted when vehicle (re)spawns +void vehicles_impusle(float _imp); #ifdef VEHICLES_USE_ODE void(entity e, float physics_enabled) physics_enable = #540; // enable or disable physics on object diff --git a/vehicle_bumblebee.cfg b/vehicle_bumblebee.cfg index 0d4feb3da..718287f2c 100644 --- a/vehicle_bumblebee.cfg +++ b/vehicle_bumblebee.cfg @@ -1,11 +1,11 @@ -set g_vehicle_bumblebee_speed_forward 400 -set g_vehicle_bumblebee_speed_strafe 200 -set g_vehicle_bumblebee_speed_up 200 -set g_vehicle_bumblebee_speed_down 200 -set g_vehicle_bumblebee_turnspeed 72 -set g_vehicle_bumblebee_pitchspeed 36 -set g_vehicle_bumblebee_pitchlimit 15 -set g_vehicle_bumblebee_friction 0.75 +set g_vehicle_bumblebee_speed_forward 300 +set g_vehicle_bumblebee_speed_strafe 300 +set g_vehicle_bumblebee_speed_up 300 +set g_vehicle_bumblebee_speed_down 300 +set g_vehicle_bumblebee_turnspeed 64 +set g_vehicle_bumblebee_pitchspeed 64 +set g_vehicle_bumblebee_pitchlimit 60 +set g_vehicle_bumblebee_friction 0.4 set g_vehicle_bumblebee_energy 500 set g_vehicle_bumblebee_energy_regen 50 @@ -20,18 +20,23 @@ set g_vehicle_bumblebee_shield_regen 100 set g_vehicle_bumblebee_shield_regen_pause 2 set g_vehicle_bumblebee_cannon_cost 10 -set g_vehicle_bumblebee_cannon_damage 75 -set g_vehicle_bumblebee_cannon_radius 150 -set g_vehicle_bumblebee_cannon_refire 1.5 -set g_vehicle_bumblebee_cannon_speed 5000 +set g_vehicle_bumblebee_cannon_damage 125 +set g_vehicle_bumblebee_cannon_radius 300 +set g_vehicle_bumblebee_cannon_refire 0.75 +set g_vehicle_bumblebee_cannon_speed 2500 set g_vehicle_bumblebee_cannon_spread 0.0125 -set g_vehicle_bumblebee_cannon_force 400 +set g_vehicle_bumblebee_cannon_force 200 set g_vehicle_bumblebee_cannon_turnspeed 90 set g_vehicle_bumblebee_cannon_pitchlimit_down 60 set g_vehicle_bumblebee_cannon_pitchlimit_up 60 -set g_vehicle_bumblebee_cannon_turnlimit_in 5 +set g_vehicle_bumblebee_cannon_turnlimit_in 15 set g_vehicle_bumblebee_cannon_turnlimit_out 45 +set g_vehicle_bumblebee_raygun_turnspeed 50 +set g_vehicle_bumblebee_raygun_pitchlimit_down 20 +set g_vehicle_bumblebee_raygun_pitchlimit_up 30 +set g_vehicle_bumblebee_raygun_turnlimit_sides 30 + set g_vehicle_bumblebee_respawntime 10 set g_vehicle_bumblebee_blowup_radius 500 diff --git a/vehicle_racer.cfg b/vehicle_racer.cfg index a3aa34de8..474daa4f0 100644 --- a/vehicle_racer.cfg +++ b/vehicle_racer.cfg @@ -1,10 +1,10 @@ set g_vehicle_racer_respawntime 25 -set g_vehicle_racer_health 190 +set g_vehicle_racer_health 200 set g_vehicle_racer_health_regen 0 set g_vehicle_racer_health_regen_pause 0 -set g_vehicle_racer_shield 70 +set g_vehicle_racer_shield 100 set g_vehicle_racer_shield_regen 30 set g_vehicle_racer_shield_regen_pause 1 @@ -13,10 +13,10 @@ set g_vehicle_racer_energy_regen 40 set g_vehicle_racer_energy_regen_pause 1 set g_vehicle_racer_speed_stop 2500 -set g_vehicle_racer_speed_forward 500 -set g_vehicle_racer_speed_strafe 500 -set g_vehicle_racer_speed_afterburn 3000 -set g_vehicle_racer_friction 0.3 +set g_vehicle_racer_speed_forward 750 +set g_vehicle_racer_speed_strafe 750 +set g_vehicle_racer_speed_afterburn 2000 +set g_vehicle_racer_friction 0.4 set g_vehicle_racer_afterburn_cost 50 // energy consumed per second set g_vehicle_racer_hovertype 0 // 0 = hover, != 0 = maglev @@ -28,34 +28,34 @@ set g_vehicle_racer_springlength 70 set g_vehicle_racer_collision_multiplier 0.05 set g_vehicle_racer_anglestabilizer 1.75 -set g_vehicle_racer_turnspeed 200 -set g_vehicle_racer_pitchspeed 100 -set g_vehicle_racer_maxpitch 20 -set g_vehicle_racer_turnroll 16 +set g_vehicle_racer_turnspeed 250 +set g_vehicle_racer_pitchspeed 125 +set g_vehicle_racer_maxpitch 35 +set g_vehicle_racer_turnroll 20 set g_vehicle_racer_cannon_speed 9000 -set g_vehicle_racer_cannon_damage 25 +set g_vehicle_racer_cannon_damage 30 set g_vehicle_racer_cannon_radius 100 -set g_vehicle_racer_cannon_refire 0.1 +set g_vehicle_racer_cannon_refire 0.15 set g_vehicle_racer_cannon_cost 10 set g_vehicle_racer_cannon_spread 0.0125 set g_vehicle_racer_cannon_force 50 set g_vehicle_racer_rocket_speed 1000 -set g_vehicle_racer_rocket_accel 1400 -set g_vehicle_racer_rocket_turnrate 0.1 +set g_vehicle_racer_rocket_accel 1500 +set g_vehicle_racer_rocket_turnrate 0.2 set g_vehicle_racer_rocket_damage 165 set g_vehicle_racer_rocket_force 350 set g_vehicle_racer_rocket_radius 125 set g_vehicle_racer_rocket_refire 6 set g_vehicle_racer_rocket_cost 0 -set g_vehicle_racer_rocket_climbspeed 1750 +set g_vehicle_racer_rocket_climbspeed 1500 set g_vehicle_racer_rocket_locktarget 1 -set g_vehicle_racer_rocket_locking_time 0.4 +set g_vehicle_racer_rocket_locking_time 0.35 set g_vehicle_racer_rocket_locking_releasetime 1.5 -set g_vehicle_racer_rocket_locked_time 5 -set g_vehicle_racer_rocket_locked_maxangle 1.75 +set g_vehicle_racer_rocket_locked_time 6 +set g_vehicle_racer_rocket_locked_maxangle 1.8 set g_vehicle_racer_blowup_radius 250 set g_vehicle_racer_blowup_coredamage 250 diff --git a/vehicle_raptor.cfg b/vehicle_raptor.cfg index 2a46dd282..9ee72446f 100644 --- a/vehicle_raptor.cfg +++ b/vehicle_raptor.cfg @@ -4,17 +4,19 @@ set g_vehicle_raptor_respawntime 35 // 1: ignore aim for up/down movement. +forward always moved forward, +jump always moves up set g_vehicle_raptor_movestyle 1 -set g_vehicle_raptor_turnroll 0.1 +set g_vehicle_raptor_turnroll 0.2 -set g_vehicle_raptor_turnspeed 80 -set g_vehicle_raptor_pitchspeed 40 -set g_vehicle_raptor_pitchlimit 35 +set g_vehicle_raptor_takeofftime 1.5 -set g_vehicle_raptor_speed_forward 900 -set g_vehicle_raptor_speed_strafe 700 -set g_vehicle_raptor_speed_up 500 -set g_vehicle_raptor_speed_down 800 -set g_vehicle_raptor_friction 0.7 +set g_vehicle_raptor_turnspeed 120 +set g_vehicle_raptor_pitchspeed 60 +set g_vehicle_raptor_pitchlimit 45 + +set g_vehicle_raptor_speed_forward 1500 +set g_vehicle_raptor_speed_strafe 1000 +set g_vehicle_raptor_speed_up 900 +set g_vehicle_raptor_speed_down 1200 +set g_vehicle_raptor_friction 0.8 set g_vehicle_raptor_bomblets 8 set g_vehicle_raptor_bomblet_alt 750 @@ -27,7 +29,7 @@ set g_vehicle_raptor_bomblet_force 150 set g_vehicle_raptor_bomblet_explode_delay 0.4 set g_vehicle_raptor_bombs_refire 5 -set g_vehicle_raptor_cannon_turnspeed 90 +set g_vehicle_raptor_cannon_turnspeed 45 set g_vehicle_raptor_cannon_turnlimit 20 set g_vehicle_raptor_cannon_pitchlimit_up 12 set g_vehicle_raptor_cannon_pitchlimit_down 32 @@ -39,22 +41,22 @@ set g_vehicle_raptor_cannon_locked_time 5 set g_vehicle_raptor_cannon_predicttarget 1 set g_vehicle_raptor_cannon_cost 1 -set g_vehicle_raptor_cannon_damage 25 +set g_vehicle_raptor_cannon_damage 20 set g_vehicle_raptor_cannon_radius 60 set g_vehicle_raptor_cannon_refire 0.05 set g_vehicle_raptor_cannon_speed 12000 set g_vehicle_raptor_cannon_spread 0.01 -set g_vehicle_raptor_cannon_force 50 +set g_vehicle_raptor_cannon_force 25 set g_vehicle_raptor_energy 30 set g_vehicle_raptor_energy_regen 15 set g_vehicle_raptor_energy_regen_pause 0.8 -set g_vehicle_raptor_health 150 +set g_vehicle_raptor_health 200 set g_vehicle_raptor_health_regen 0 set g_vehicle_raptor_health_regen_pause 0 -set g_vehicle_raptor_shield 120 +set g_vehicle_raptor_shield 150 set g_vehicle_raptor_shield_regen 25 set g_vehicle_raptor_shield_regen_pause 1.5 diff --git a/vehicle_spiderbot.cfg b/vehicle_spiderbot.cfg index bb866037a..01ce15f74 100644 --- a/vehicle_spiderbot.cfg +++ b/vehicle_spiderbot.cfg @@ -1,56 +1,59 @@ set g_vehicle_spiderbot_respawntime 45 -set g_vehicle_spiderbot_health 850 -set g_vehicle_spiderbot_health_regen 15 -set g_vehicle_spiderbot_health_regen_pause 10 +set g_vehicle_spiderbot_health 800 +set g_vehicle_spiderbot_health_regen 20 +set g_vehicle_spiderbot_health_regen_pause 5 -set g_vehicle_spiderbot_shield 150 +set g_vehicle_spiderbot_shield 250 set g_vehicle_spiderbot_shield_block 1 -set g_vehicle_spiderbot_shield_regen 25 -set g_vehicle_spiderbot_shield_regen_pause 0.2 +set g_vehicle_spiderbot_shield_regen 30 +set g_vehicle_spiderbot_shield_regen_pause 0.35 set g_vehicle_spiderbot_energy 0 set g_vehicle_spiderbot_energy_regen 0 set g_vehicle_spiderbot_energy_regen_pause 0 -set g_vehicle_spiderbot_turnspeed 180 -set g_vehicle_spiderbot_head_turnspeed 120 -set g_vehicle_spiderbot_head_turnlimit 120 -set g_vehicle_spiderbot_head_pitchspeed 70 -set g_vehicle_spiderbot_head_pitchlimit_up 24 -set g_vehicle_spiderbot_head_pitchlimit_down -16 +set g_vehicle_spiderbot_turnspeed 90 +set g_vehicle_spiderbot_turnspeed_strafe 300 +set g_vehicle_spiderbot_head_turnspeed 100 +set g_vehicle_spiderbot_head_turnlimit 90 +set g_vehicle_spiderbot_head_pitchlimit_up 30 +set g_vehicle_spiderbot_head_pitchlimit_down -20 set g_vehicle_spiderbot_speed_stop 50 set g_vehicle_spiderbot_speed_walk 400 set g_vehicle_spiderbot_speed_strafe 300 -set g_vehicle_spiderbot_movement_inertia 0.25 - -set g_vehicle_spiderbot_minigun_damage 16 -set g_vehicle_spiderbot_minigun_spread 0.015 -set g_vehicle_spiderbot_minigun_speed 50000 -set g_vehicle_spiderbot_minigun_refire 0.05 -set g_vehicle_spiderbot_minigun_ammo_cost 1 -set g_vehicle_spiderbot_minigun_ammo_max 200 -set g_vehicle_spiderbot_minigun_ammo_regen 15 +set g_vehicle_spiderbot_movement_inertia 0.15 +set g_vehicle_spiderbot_tiltlimit 90 + +set g_vehicle_spiderbot_minigun_damage 9 // 300 (x2) DPS +set g_vehicle_spiderbot_minigun_refire 0.03 +set g_vehicle_spiderbot_minigun_force 9 +set g_vehicle_spiderbot_minigun_spread 0.025 +set g_vehicle_spiderbot_minigun_speed 45000 // ~ 32QU +set g_vehicle_spiderbot_minigun_bulletconstant 110 +set g_vehicle_spiderbot_minigun_ammo_cost 1 +set g_vehicle_spiderbot_minigun_ammo_max 200 +set g_vehicle_spiderbot_minigun_ammo_regen 30 set g_vehicle_spiderbot_minigun_ammo_regen_pause 1 -set g_vehicle_spiderbot_springlength 150 -set g_vehicle_spiderbot_springup 5 -set g_vehicle_spiderbot_springblend 0.15 +set g_vehicle_spiderbot_springlength 150 +set g_vehicle_spiderbot_springup 20 +set g_vehicle_spiderbot_springblend 0.1 set g_vehicle_spiderbot_rocket_health 100 -set g_vehicle_spiderbot_rocket_damage 75 -set g_vehicle_spiderbot_rocket_edgedamage 15 +set g_vehicle_spiderbot_rocket_damage 70 +set g_vehicle_spiderbot_rocket_edgedamage 25 set g_vehicle_spiderbot_rocket_force 150 -set g_vehicle_spiderbot_rocket_radius 150 -set g_vehicle_spiderbot_rocket_reload 4 -set g_vehicle_spiderbot_rocket_refire 0.2 -set g_vehicle_spiderbot_rocket_speed 1750 -set g_vehicle_spiderbot_rocket_turnrate 0.2 -set g_vehicle_spiderbot_rocket_noise 0.3 -set g_vehicle_spiderbot_rocket_lifetime 30 - -set g_vehicle_spiderbot_crush_dmg 50 +set g_vehicle_spiderbot_rocket_radius 175 +set g_vehicle_spiderbot_rocket_reload 5 +set g_vehicle_spiderbot_rocket_refire 0.1 +set g_vehicle_spiderbot_rocket_speed 2500 +set g_vehicle_spiderbot_rocket_turnrate 0.25 +set g_vehicle_spiderbot_rocket_noise 0.35 +set g_vehicle_spiderbot_rocket_lifetime 20 + +set g_vehicle_spiderbot_crush_dmg 75 set g_vehicle_spiderbot_crush_force 50 set g_vehicle_spiderbot_mass 5000