set g_start_weapon_porto -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
set g_start_weapon_hook -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
set g_start_weapon_hlac 0 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
-set g_start_weapon_sniperrifle -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
+set g_start_weapon_sniperrifle 0 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms" // UNTIL IT CAN BE REMOVED FROM CODE
set g_start_weapon_tuba -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
set g_start_weapon_fireball -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
set g_start_weapon_seeker -1 "0 = never provide the weapon, 1 = always provide the weapon, -1 = game mode default, -2 = provide the weapon in ca and lms"
set g_start_ammo_fuel 0
set g_warmup_start_health 100 "starting values when being in warmup-stage"
set g_warmup_start_armor 100 "starting values when being in warmup-stage"
-set g_warmup_start_ammo_shells 50 "starting values when being in warmup-stage"
-set g_warmup_start_ammo_nails 150 "starting values when being in warmup-stage"
-set g_warmup_start_ammo_rockets 50 "starting values when being in warmup-stage"
-set g_warmup_start_ammo_cells 50 "starting values when being in warmup-stage"
+set g_warmup_start_ammo_shells 30 "starting values when being in warmup-stage"
+set g_warmup_start_ammo_nails 160 "starting values when being in warmup-stage"
+set g_warmup_start_ammo_rockets 80 "starting values when being in warmup-stage"
+set g_warmup_start_ammo_cells 90 "starting values when being in warmup-stage"
set g_warmup_start_ammo_fuel 0 "starting values when being in warmup-stage"
set g_lms_start_health 200
set g_lms_start_armor 200
-set g_lms_start_ammo_shells 120
-set g_lms_start_ammo_nails 400
-set g_lms_start_ammo_rockets 120
-set g_lms_start_ammo_cells 200
+set g_lms_start_ammo_shells 60
+set g_lms_start_ammo_nails 320
+set g_lms_start_ammo_rockets 160
+set g_lms_start_ammo_cells 180
set g_lms_start_ammo_fuel 0
set g_balance_nix_roundtime 25
set g_balance_nix_incrtime 1.6
-set g_balance_nix_ammo_shells 120
-set g_balance_nix_ammo_nails 400
-set g_balance_nix_ammo_rockets 120
-set g_balance_nix_ammo_cells 200
+set g_balance_nix_ammo_shells 60
+set g_balance_nix_ammo_nails 320
+set g_balance_nix_ammo_rockets 160
+set g_balance_nix_ammo_cells 180
set g_balance_nix_ammo_fuel 0
-set g_balance_nix_ammoincr_shells 2
+set g_balance_nix_ammoincr_shells 2 // eh this will need figured out later I assume
set g_balance_nix_ammoincr_nails 6
set g_balance_nix_ammoincr_rockets 2
set g_balance_nix_ammoincr_cells 2
set g_pickup_armorlarge_max 200
set g_pickup_armorlarge_anyway 1
set g_pickup_healthsmall 5
-set g_pickup_healthsmall_max 250
+set g_pickup_healthsmall_max 200
set g_pickup_healthsmall_anyway 1
set g_pickup_healthmedium 25
-set g_pickup_healthmedium_max 250
+set g_pickup_healthmedium_max 200
set g_pickup_healthmedium_anyway 1
set g_pickup_healthlarge 50
-set g_pickup_healthlarge_max 250
+set g_pickup_healthlarge_max 200
set g_pickup_healthlarge_anyway 1
set g_pickup_healthmega 100
-set g_pickup_healthmega_max 250
+set g_pickup_healthmega_max 200
set g_pickup_healthmega_anyway 1
set g_pickup_respawntime_short 15
set g_pickup_respawntime_medium 20
set g_balance_health_regenlinear 5
set g_balance_pause_health_regen 5
set g_balance_pause_health_regen_spawn 0
-set g_balance_health_rot 0.05
+set g_balance_health_rot 0.04
set g_balance_health_rotlinear 2
set g_balance_pause_health_rot 0.5
set g_balance_pause_health_rot_spawn 5
set g_balance_health_regenstable 100
-set g_balance_health_rotstable 150
+set g_balance_health_rotstable 100
set g_balance_health_limit 999
set g_balance_armor_regen 0
set g_balance_armor_regenlinear 0
-set g_balance_armor_rot 0.05
+set g_balance_armor_rot 0.04
set g_balance_armor_rotlinear 2
set g_balance_pause_armor_rot 1
set g_balance_pause_armor_rot_spawn 5
// 5: forward + circle with 1-r falloff
// 6: forward + circle with 1-r^2 falloff
// 7: forward + circle with (1-r)(2-r) falloff
-set g_balance_falldamage_deadminspeed 150
-set g_balance_falldamage_minspeed 1000
+set g_balance_falldamage_deadminspeed 250
+set g_balance_falldamage_minspeed 900
set g_balance_falldamage_factor 0.20
-set g_balance_falldamage_maxdamage 15
-set g_balance_damagepush_speedfactor 0
+set g_balance_falldamage_maxdamage 40
+set g_balance_damagepush_speedfactor 2.5
// }}}
// {{{ powerups
set g_balance_seeker_missile_speed_z 0
set g_balance_seeker_missile_speed_max 2000 // LOG: 1400 -> 1300
set g_balance_seeker_missile_spread 0
-set g_balance_seeker_missile_turnrate 0.2
+set g_balance_seeker_missile_turnrate 0.15
set g_balance_seeker_reload_ammo 0 //default: 15
set g_balance_seeker_reload_time 2
// End new seeker
v_deathtilt 0 // needed for spectators (who are dead to avoid prediction)
// these settings determine how much the view is affected by movement/damage
+cl_smoothviewheight 0.05 // time of the averaging to the viewheight value so that it creates a smooth transition for crouching and such. 0 for instant transition
cl_deathfade 1 // fade screen to dark red when dead, value represents how fast the fade is (higher is faster)
cl_bobcycle 0 // how long the cycle of up/down view movement takes (only works if cl_bob is not 0), default is 0.6
cl_bob 0.01 // how much view moves up/down when moving (does not move if cl_bobcycle is 0, but still enables cl_bobmodel), default is 0.02
}
self = oldself;
-
- // TODO spawn particle effects and sounds based on w_deathtype
+ if(DEATH_ISVEHICLE(w_deathtype))
+ {
+ traceline(w_org - normalize(force) * 16, w_org + normalize(force) * 16, MOVE_NOMONSTERS, world);
+ if(trace_plane_normal != '0 0 0')
+ w_backoff = trace_plane_normal;
+ else
+ w_backoff = -1 * normalize(w_org - (w_org + normalize(force) * 16));
+
+ setorigin(self, w_org + w_backoff * 2); // for sound() calls
+
+ switch(w_deathtype)
+ {
+ case DEATH_VHCRUSH:
+ break;
+
+ case DEATH_SBMINIGUN:
+ string _snd;
+ _snd = strcat("weapons/ric", ftos(1 + rint(random() * 2)), ".waw");
+ sound(self, CHAN_PROJECTILE, _snd, VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("spiderbot_minigun_impact"), self.origin, w_backoff * 1000, 1);
+ break;
+ case DEATH_SBROCKET:
+ sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("spiderbot_rocket_explode"), self.origin, w_backoff * 1000, 1);
+ break;
+ case DEATH_SBBLOWUP:
+ sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_MIN);
+ pointparticles(particleeffectnum("explosion_big"), self.origin, w_backoff * 1000, 1);
+ break;
+
+ case DEATH_WAKIGUN:
+ sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("wakizashi_gun_impact"), self.origin, w_backoff * 1000, 1);
+ break;
+ case DEATH_WAKIROCKET:
+ sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("wakizashi_rocket_explode"), self.origin, w_backoff * 1000, 1);
+ break;
+ case DEATH_WAKIBLOWUP:
+ sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_MIN);
+ pointparticles(particleeffectnum("explosion_big"), self.origin, w_backoff * 1000, 1);
+ break;
+
+ case DEATH_RAPTOR_CANNON:
+ sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("raptor_cannon_impact"), self.origin, w_backoff * 1000, 1);
+ break;
+ case DEATH_RAPTOR_BOMB_SPLIT:
+ sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("raptor_bomb_spread"), self.origin, w_backoff * 1000, 1);
+ break;
+ case DEATH_RAPTOR_BOMB:
+ sound(self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
+ pointparticles(particleeffectnum("raptor_bomb_impact"), self.origin, w_backoff * 1000, 1);
+ break;
+ case DEATH_RAPTOR_DEATH:
+ sound(self, CHAN_PROJECTILE, "weapons/laserimpact.wav", VOL_BASE, ATTN_MIN);
+ pointparticles(particleeffectnum("explosion_big"), self.origin, w_backoff * 1000, 1);
+ break;
+ }
+ }
+
+ // TODO spawn particle effects and sounds based on w_deathtype
if(!DEATH_ISSPECIAL(w_deathtype))
{
float hitwep;
}
else if(warmup_stage && !intermission && !spectatee_status)
{
- s = strcat("^2Press ^3%s^2 to end warmup", getcommandkey("ready", "ready"));
+ s = sprintf(_("^2Press ^3%s^2 to end warmup"), getcommandkey("ready", "ready"));
drawInfoMessage(s)
}
}
if (acceleration > 0)
- HUD_Panel_DrawProgressBar(pos, eX * (vid_conwidth - pos_x) + eY * sz, "statusbar", 0, 0, acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+ HUD_Panel_DrawProgressBar(pos, eX * (vid_conwidth - pos_x) + eY * sz, "accelbar", 0, 0, acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
else
- HUD_Panel_DrawProgressBar(eY * pos_y, eX * pos_x + eY * sz, "statusbar", 0, 1, -acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
+ HUD_Panel_DrawProgressBar(eY * pos_y, eX * pos_x + eY * sz, "accelbar", 0, 1, -acceleration * scale, rgb, alpha * autocvar_hud_progressbar_alpha * panel_fg_alpha, DRAWFLAG_NORMAL);
}
void HUD_Reset (void)
{
if(count == 1)
post = _(" (1 vote)");
- else
+ else if(count >= 0)
post = sprintf(_(" (%d votes)"), count);
}
else
float sz;
sz = expandingbox_sizefactor_from_fadelerp(fadelerp);
- drawpic_skin(position + expandingbox_resize_centered_box_offset(sz, scale, 1), pic, scale * sz, rgb, alpha * (1 - fadelerp), flag);
+ drawpic_aspect_skin(position + expandingbox_resize_centered_box_offset(sz, scale, 1), pic, scale * sz, rgb, alpha * (1 - fadelerp), flag);
}
void drawpic_aspect_skin_expanding_two(vector position, string pic, vector scale, vector rgb, float alpha, float flag, float fadelerp)
#define DEATH_WAKIBLOWUP 10036
#define DEATH_RAPTOR_CANNON 10037
#define DEATH_RAPTOR_BOMB 10038
-#define DEATH_RAPTOR_DEATH 10039
-#define DEATH_VHLAST 10039
-#define DEATH_ISVEHICLE(t) ((t) >= DEATH_VHFIRST && (t) <= DEATH_VHLAST)
+#define DEATH_RAPTOR_BOMB_SPLIT 10039
+#define DEATH_RAPTOR_DEATH 10040
+#define DEATH_VHLAST 10040
+#define DEATH_ISVEHICLE(t) ((t) >= DEATH_VHFIRST && (t) <= DEATH_VHLAST)
float DEATH_GENERIC = 10050;
if(sv_gentle > 0 || autocvar_ekg) {
// remove corpse
- PlayerCorpseDamage (inflictor, attacker, 100.0, deathtype, hitloc, force);
+ PlayerCorpseDamage (inflictor, attacker, autocvar_sv_gibhealth+1.0, deathtype, hitloc, force);
}
// reset fields the weapons may use just in case
entity bolt;
v = gettaginfo(self, gettagindex(self, tagname));
- bolt = vehicles_projectile("wakizashi_gun_impact", "weapons/laserimpact.wav", "wakizashi_gun_muzzleflash", "weapons/lasergun_fire.wav",
+ bolt = vehicles_projectile("wakizashi_gun_muzzleflash", "weapons/lasergun_fire.wav",
v, normalize(v_forward + randomvec() * autocvar_g_vehicle_racer_cannon_spread) * autocvar_g_vehicle_racer_cannon_speed,
autocvar_g_vehicle_racer_cannon_damage, autocvar_g_vehicle_racer_cannon_radius, autocvar_g_vehicle_racer_cannon_force, 0,
DEATH_WAKIGUN, PROJECTILE_WAKICANNON, 0);
entity rocket;
v = gettaginfo(self, gettagindex(self, tagname));
- rocket = vehicles_projectile("wakizashi_rocket_explode", "weapons/rocket_impact.wav", "wakizashi_rocket_launch", "weapons/rocket_fire.wav",
+ rocket = vehicles_projectile("wakizashi_rocket_launch", "weapons/rocket_fire.wav",
v, v_forward * autocvar_g_vehicle_racer_rocket_speed,
autocvar_g_vehicle_racer_rocket_damage, autocvar_g_vehicle_racer_rocket_radius, autocvar_g_vehicle_racer_rocket_force, 3,
DEATH_WAKIROCKET, PROJECTILE_WAKIROCKET, 20);
void raptor_bomblet_boom()
{
- sound (self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
- pointparticles(particleeffectnum("raptor_bomb_impact"), self.origin, trace_plane_normal * 1000, 1);
RadiusDamage (self, self.realowner, autocvar_g_vehicle_raptor_bomblet_damage,
autocvar_g_vehicle_raptor_bomblet_edgedamage,
autocvar_g_vehicle_raptor_bomblet_radius, world,
- autocvar_g_vehicle_raptor_bomblet_force, DEATH_SBROCKET, world);
+ autocvar_g_vehicle_raptor_bomblet_force, DEATH_RAPTOR_BOMB, world);
remove(self);
}
entity bomblet;
float i;
- sound (self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
- pointparticles(particleeffectnum("raptor_bomb_spread"), self.origin, self.velocity, 1);
-
+ //sound (self, CHAN_PROJECTILE, "weapons/rocket_impact.wav", VOL_BASE, ATTN_NORM);
+ //pointparticles(particleeffectnum("raptor_bomb_spread"), self.origin, self.velocity, 1);
+
+ Damage_DamageInfo(self.origin, 0, 0, 0, '0 0 0', DEATH_RAPTOR_BOMB_SPLIT, self);
+
for(i = 0; i < autocvar_g_vehicle_raptor_bomblets; ++i)
{
bomblet = spawn();
entity bolt;
vector b_org;
b_org = gettaginfo(gun, gettagindex(gun, tagname));
- bolt = vehicles_projectile("raptor_cannon_impact", "weapons/laserimpact.wav", "raptor_cannon_muzzleflash", "weapons/lasergun_fire.wav",
+ bolt = vehicles_projectile("raptor_cannon_muzzleflash", "weapons/lasergun_fire.wav",
b_org, normalize(v_forward + randomvec() * autocvar_g_vehicle_raptor_cannon_spread) * autocvar_g_vehicle_raptor_cannon_speed,
autocvar_g_vehicle_raptor_cannon_damage, autocvar_g_vehicle_raptor_cannon_radius, autocvar_g_vehicle_raptor_cannon_force, 0,
- DEATH_WAKIGUN, PROJECTILE_RAPTORCANNON, 0);
+ DEATH_RAPTOR_CANNON, PROJECTILE_RAPTORCANNON, 0);
}
void raptor_think()
crosshair_trace(self.owner);
//normalize(v_forward + (v_up * 0.5) + randomvec() * 0.25) * autocvar_g_vehicle_spiderbot_rocket_speed,
v = gettaginfo(self.tur_head,gettagindex(self.tur_head,"tag_fire"));
- rocket = vehicles_projectile("spiderbot_rocket_explode", "weapons/rocket_impact.wav", "spiderbot_rocket_launch", "weapons/rocket_fire.wav",
+ rocket = vehicles_projectile("spiderbot_rocket_launch", "weapons/rocket_fire.wav",
v, normalize(v_forward) * autocvar_g_vehicle_spiderbot_rocket_speed,
autocvar_g_vehicle_spiderbot_rocket_damage, autocvar_g_vehicle_spiderbot_rocket_radius, autocvar_g_vehicle_spiderbot_rocket_force, 1,
DEATH_SBROCKET, PROJECTILE_SPIDERROCKET, autocvar_g_vehicle_spiderbot_rocket_health);
sound (gun, CHAN_WEAPON, "weapons/uzi_fire.wav", VOL_BASE, ATTN_NORM);
trailparticles(self, particleeffectnum("spiderbot_minigun_trail"), v, trace_endpos);
pointparticles(particleeffectnum("spiderbot_minigun_muzzleflash"), v, v_forward * 2500, 1);
- pointparticles(particleeffectnum("spiderbot_minigun_impact"), trace_endpos, trace_plane_normal * 2500,1);
+ //pointparticles(particleeffectnum("spiderbot_minigun_impact"), trace_endpos, trace_plane_normal * 2500,1);
}
}
}
}
-
#define VEHICLE_UPDATE_PLAYER(fld,vhname) \
self.owner.vehicle_##fld = self.vehicle_##fld / autocvar_g_vehicle_##vhname##_##fld
PROJECTILE_TOUCH;
self.event_damage = SUB_Null;
- sound (self, CHAN_PROJECTILE, self.target2, VOL_BASE, ATTN_NORM);
- pointparticles(particleeffectnum(self.target3), findbetterlocation (self.origin, 16), '0 0 0', 1);
RadiusDamage (self, self.realowner, self.shot_dmg, 0, self.shot_radius, self, self.shot_force, self.totalfrags, other);
remove (self);
}
-entity vehicles_projectile(string _impactfx, string _impactsnd, string _mzlfx, string _mzlsound,
+entity vehicles_projectile(string _mzlfx, string _mzlsound,
vector _org, vector _vel,
float _dmg, float _radi, float _force, float _size,
float _deahtype, float _projtype, float _health)
proj.shot_radius = _radi;
proj.shot_force = _force;
proj.totalfrags = _deahtype;
- proj.target2 = _impactsnd;
- proj.target3 = _impactfx;
proj.solid = SOLID_BBOX;
proj.movetype = MOVETYPE_FLYMISSILE;
proj.flags = FL_PROJECTILE;
if ((trace_fraction != 1.0) && (pointcontents (trace_endpos) != CONTENT_SKY))
{
- if (trace_ent.solid == SOLID_BSP && !(trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT))
- Damage_DamageInfo(trace_endpos, damage, 0, 0, dir * max(1, force), dtype, self);
+ if not (trace_dphitq3surfaceflags & Q3SURFACEFLAG_NOIMPACT)
+ Damage_DamageInfo(trace_endpos, damage, 0, 0, dir * max(1, force), dtype, self);
Damage (trace_ent, self, self, damage, dtype, trace_endpos, dir * force);
}
--- /dev/null
+models/items/5hp
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/5hp.tga
+ rgbgen lightingDiffuse
+ }
+}
+models/items/h25
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/h25.tga
+ rgbgen lightingDiffuse
+ }
+}
+models/items/red
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/red.tga
+ blendfunc filter
+ rgbgen lightingDiffuse
+ }
+}
+models/items/h50
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/h50.tga
+ rgbgen lightingDiffuse
+ }
+}
+models/items/h_mega
+{
+ dpreflectcube cubemaps/default/sky
+ {
+ map models/items/h_mega.tga
+ rgbgen lightingDiffuse
+ }
+}
\ No newline at end of file