]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Merge remote branch 'origin/mand1nga/i18n-ES'
authorRudolf Polzer <divVerent@xonotic.org>
Thu, 31 Mar 2011 07:26:06 +0000 (09:26 +0200)
committerRudolf Polzer <divVerent@xonotic.org>
Thu, 31 Mar 2011 07:26:06 +0000 (09:26 +0200)
36 files changed:
balance25.cfg
balanceLeeStricklin.cfg
balanceSamual.cfg
balanceXonotic.cfg
balancetZork.cfg
defaultXonotic.cfg
effectinfo.txt
gfx/hud/luminos/border_small_healtharmor.tga [new file with mode: 0644]
gfx/hud/luminos/border_small_modicons.tga [new file with mode: 0644]
gfx/hud/luminos/border_small_powerups.tga [new file with mode: 0644]
gfx/hud/luminos/border_small_radar.tga [new file with mode: 0644]
gfx/hud/luminos/border_small_score.tga [new file with mode: 0644]
gfx/hud/luminos/border_small_timer.tga [new file with mode: 0644]
gfx/hud/luminos/border_small_weapons.tga [new file with mode: 0644]
hud_luminos.cfg
hud_luminos_old.cfg [new file with mode: 0644]
models/sprites/make-sprites.sh
models/sprites/tagged-target_frame0.tga [new file with mode: 0644]
models/sprites/tagged-target_frame1.tga [new file with mode: 0644]
qcsrc/client/View.qc
qcsrc/client/autocvars.qh
qcsrc/client/damage.qc
qcsrc/client/progs.src
qcsrc/client/projectile.qc
qcsrc/common/explosion_equation.qc [new file with mode: 0644]
qcsrc/common/explosion_equation.qh [new file with mode: 0644]
qcsrc/common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail [new file with mode: 0644]
qcsrc/menu/progs.src
qcsrc/server/autocvars.qh
qcsrc/server/g_damage.qc
qcsrc/server/g_world.qc
qcsrc/server/gamecommand.qc
qcsrc/server/progs.src
qcsrc/server/scores.qc
qcsrc/server/w_minstanex.qc
qcsrc/server/w_seeker.qc

index 665dda5c90682f44730e5c33a4901e2239934e28..482edc1426a19159d5719dd8262a7b859721bf48 100644 (file)
@@ -178,6 +178,7 @@ set g_balance_falldamage_deadminspeed 150
 set g_balance_falldamage_minspeed 1400
 set g_balance_falldamage_factor 0.15
 set g_balance_falldamage_maxdamage 25
+set g_balance_damagepush_speedfactor 0
 // }}}
 
 // {{{ powerups
@@ -726,6 +727,7 @@ set g_balance_fireball_reload_ammo 0 //default: 60
 set g_balance_fireball_reload_time 2
 // }}}
 // {{{ seeker
+set g_balance_seeker_type 0 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
 set g_balance_seeker_flac_ammo 0.5
 set g_balance_seeker_flac_animtime 0.1
 set g_balance_seeker_flac_damage 15
@@ -774,6 +776,7 @@ set g_balance_seeker_tag_lifetime 15
 set g_balance_seeker_tag_refire 0.7
 set g_balance_seeker_tag_speed 9000
 set g_balance_seeker_tag_spread 0
+set g_balance_seeker_tag_tracker_lifetime 10
 set g_balance_seeker_reload_ammo 0 //default: 15
 set g_balance_seeker_reload_time 2
 // End new seeker
index 77aac858a72abb42b7f3ac1b53828439df052670..7232f876ce61ee24989c7449ad54f2cb02df6dd4 100644 (file)
@@ -178,6 +178,7 @@ set g_balance_falldamage_deadminspeed 150
 set g_balance_falldamage_minspeed 1400
 set g_balance_falldamage_factor 0.15
 set g_balance_falldamage_maxdamage 25
+set g_balance_damagepush_speedfactor 0
 // }}}
 
 // {{{ powerups
@@ -726,6 +727,7 @@ set g_balance_fireball_reload_ammo 0 //default: 60
 set g_balance_fireball_reload_time 2
 // }}}
 // {{{ seeker
+set g_balance_seeker_type 0 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
 set g_balance_seeker_flac_ammo 0.5
 set g_balance_seeker_flac_animtime 0.1
 set g_balance_seeker_flac_damage 15
@@ -774,6 +776,7 @@ set g_balance_seeker_tag_lifetime 15
 set g_balance_seeker_tag_refire 0.7
 set g_balance_seeker_tag_speed 9000
 set g_balance_seeker_tag_spread 0
+set g_balance_seeker_tag_tracker_lifetime 10
 set g_balance_seeker_reload_ammo 0 //default: 15
 set g_balance_seeker_reload_time 2
 // End new seeker
index a117a44a9259546ef1b1b15794512402bde868ea..6979fb6b9e53c4265771a342e6bc50fec5b61f82 100644 (file)
@@ -178,6 +178,7 @@ set g_balance_falldamage_deadminspeed 150
 set g_balance_falldamage_minspeed 1000
 set g_balance_falldamage_factor 0.20
 set g_balance_falldamage_maxdamage 15
+set g_balance_damagepush_speedfactor 0
 // }}}
 
 // {{{ powerups
@@ -271,7 +272,7 @@ set g_balance_shotgun_reload_time 2
 // {{{ uzi
 set g_balance_uzi_mode 1                               // Activates varible spread for sustained & burst mode secondary
 set g_balance_uzi_spread_min 0.02
-set g_balance_uzi_spread_max 0.1
+set g_balance_uzi_spread_max 0.06
 set g_balance_uzi_spread_add 0.012
 
 set g_balance_uzi_burst 3                              // # of bullets in a burst (if set to 2 or more)
@@ -299,7 +300,7 @@ set g_balance_uzi_sustained_ammo 1
 set g_balance_uzi_speed 18000
 set g_balance_uzi_bulletconstant 115 // 13.1qu
 
-set g_balance_uzi_reload_ammo 40 //default: 30
+set g_balance_uzi_reload_ammo 60 //default: 30
 set g_balance_uzi_reload_time 2
 // }}}
 // {{{ mortar
@@ -358,8 +359,8 @@ set g_balance_minelayer_refire 1.5
 set g_balance_minelayer_animtime 0.4
 set g_balance_minelayer_ammo 4
 set g_balance_minelayer_health 15
-set g_balance_minelayer_limit 4 // 0 disables the limit
-set g_balance_minelayer_protection 1 // don't explode if the mine would hurt the owner or a team mate
+set g_balance_minelayer_limit 3 // 0 disables the limit
+set g_balance_minelayer_protection 0 // don't explode if the mine would hurt the owner or a team mate
 set g_balance_minelayer_damageforcescale 0
 set g_balance_minelayer_detonatedelay -1 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
 set g_balance_minelayer_time 0.5
@@ -388,8 +389,8 @@ set g_balance_electro_primary_range 0
 set g_balance_electro_primary_falloff_mindist 255 // 0.3 * radius
 set g_balance_electro_primary_falloff_maxdist 850
 set g_balance_electro_primary_falloff_halflifedist 425
-set g_balance_electro_secondary_damage 45
-set g_balance_electro_secondary_edgedamage 22.5
+set g_balance_electro_secondary_damage 40
+set g_balance_electro_secondary_edgedamage 20
 set g_balance_electro_secondary_force 200
 set g_balance_electro_secondary_radius 150
 set g_balance_electro_secondary_speed 900
@@ -408,9 +409,9 @@ set g_balance_electro_secondary_bouncefactor 0.5
 set g_balance_electro_secondary_bouncestop 0.075
 set g_balance_electro_combo_damage 40
 set g_balance_electro_combo_edgedamage 20
-set g_balance_electro_combo_force 200
-set g_balance_electro_combo_radius 250
-set g_balance_electro_combo_comboradius 0
+set g_balance_electro_combo_force 120
+set g_balance_electro_combo_radius 175
+set g_balance_electro_combo_comboradius 250
 set g_balance_electro_combo_speed 2000
 set g_balance_electro_reload_ammo 0 //default: 20
 set g_balance_electro_reload_time 2
@@ -445,9 +446,9 @@ set g_balance_crylink_primary_other_fadetime 5
 
 set g_balance_crylink_secondary 1
 set g_balance_crylink_secondary_damage 5
-set g_balance_crylink_secondary_edgedamage 5
+set g_balance_crylink_secondary_edgedamage 0
 set g_balance_crylink_secondary_force -40
-set g_balance_crylink_secondary_radius 50
+set g_balance_crylink_secondary_radius 70
 set g_balance_crylink_secondary_speed 2000
 set g_balance_crylink_secondary_spread 0.02
 set g_balance_crylink_secondary_shots 3
@@ -455,7 +456,7 @@ set g_balance_crylink_secondary_bounces 1
 set g_balance_crylink_secondary_refire 0.2
 set g_balance_crylink_secondary_animtime 0.2
 set g_balance_crylink_secondary_ammo 2
-set g_balance_crylink_secondary_bouncedamagefactor 0.25
+set g_balance_crylink_secondary_bouncedamagefactor 0.5
 set g_balance_crylink_secondary_joindelay 0
 set g_balance_crylink_secondary_joinspread 0
 set g_balance_crylink_secondary_jointime 0
@@ -526,7 +527,7 @@ set g_balance_minstanex_laser_ammo 0
 set g_balance_minstanex_reload_ammo 0 //default: 50
 set g_balance_minstanex_reload_time 2
 // }}}
-// {{{ hagar
+// {{{ hagar // TO BE REMOVED
 set g_balance_hagar_primary_damage 30
 set g_balance_hagar_primary_edgedamage 15
 set g_balance_hagar_primary_force 50
@@ -563,7 +564,7 @@ set g_balance_rocketlauncher_refire 1.1
 set g_balance_rocketlauncher_animtime 0.3
 set g_balance_rocketlauncher_ammo 4
 set g_balance_rocketlauncher_health 0 // 30 // 5 hitpoints above maximum laser value -- this way lasers can't blow it up, but grenadelauncher still can most the time.
-set g_balance_rocketlauncher_damageforcescale 1
+set g_balance_rocketlauncher_damageforcescale 1 // low damage force scale so that it can still be affected by other hits, but not so much that it does a 90 degree turn
 set g_balance_rocketlauncher_detonatedelay 0.05 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time
 set g_balance_rocketlauncher_guiderate 110 // max degrees per second
 set g_balance_rocketlauncher_guideratedelay 0.01 // immediate
@@ -605,17 +606,17 @@ set g_balance_hook_secondary_animtime 0.3 // good shoot anim
 set g_balance_hook_secondary_power 3 // effect behaves like a square function
 set g_balance_hook_secondary_duration 1.5 // effect runs for three seconds
 // }}}
-// {{{ hlac
+// {{{ hlac // TO BE REMOVED
 set g_balance_hlac_primary_spread_min 0.01
 set g_balance_hlac_primary_spread_max 0.25
 set g_balance_hlac_primary_spread_add 0.0045
 set g_balance_hlac_primary_spread_crouchmod 0.25
 
 set g_balance_hlac_primary_damage 18
-set g_balance_hlac_primary_edgedamage 10
-set g_balance_hlac_primary_force 100
+set g_balance_hlac_primary_edgedamage 9
+set g_balance_hlac_primary_force 90
 set g_balance_hlac_primary_radius 70
-set g_balance_hlac_primary_speed 12000
+set g_balance_hlac_primary_speed 9000
 set g_balance_hlac_primary_lifetime 5
 
 set g_balance_hlac_primary_refire 0.15
@@ -626,9 +627,9 @@ set g_balance_hlac_secondary 1
 set g_balance_hlac_secondary_spread 0.15
 set g_balance_hlac_secondary_spread_crouchmod 0.5
 
-set g_balance_hlac_secondary_damage 16
-set g_balance_hlac_secondary_edgedamage 10
-set g_balance_hlac_secondary_force 100
+set g_balance_hlac_secondary_damage 15
+set g_balance_hlac_secondary_edgedamage 7.5
+set g_balance_hlac_secondary_force 90
 set g_balance_hlac_secondary_radius 70
 set g_balance_hlac_secondary_speed 9000
 set g_balance_hlac_secondary_lifetime 5
@@ -644,14 +645,14 @@ set g_balance_hlac_reload_time 2
 // {{{ sniperrifle
 set g_balance_sniperrifle_bursttime 0
 set g_balance_sniperrifle_primary_tracer 1
-set g_balance_sniperrifle_primary_damage 50
+set g_balance_sniperrifle_primary_damage 60
 set g_balance_sniperrifle_primary_headshotaddeddamage 50
 set g_balance_sniperrifle_primary_spread 0
 set g_balance_sniperrifle_primary_force 100
 set g_balance_sniperrifle_primary_speed 40000
 set g_balance_sniperrifle_primary_lifetime 5
-set g_balance_sniperrifle_primary_refire 1.25
-set g_balance_sniperrifle_primary_animtime 0.5
+set g_balance_sniperrifle_primary_refire 1.5
+set g_balance_sniperrifle_primary_animtime 0.7
 set g_balance_sniperrifle_primary_ammo 10
 set g_balance_sniperrifle_primary_bulletconstant 110 // 62.2qu
 set g_balance_sniperrifle_primary_burstcost 0
@@ -685,26 +686,26 @@ set g_balance_tuba_edgedamage 0
 set g_balance_tuba_radius 200
 set g_balance_tuba_force 40
 // }}}
-// {{{ fireball
-set g_balance_fireball_primary_ammo 40
-set g_balance_fireball_primary_animtime 0.15
+// {{{ fireball // this is a superweapon -- lets make it behave as one. 
+set g_balance_fireball_primary_ammo 20
+set g_balance_fireball_primary_animtime 0.2
 set g_balance_fireball_primary_bfgdamage 100
 set g_balance_fireball_primary_bfgforce 0
 set g_balance_fireball_primary_bfgradius 1000
 set g_balance_fireball_primary_damage 200
-set g_balance_fireball_primary_damageforcescale 4
-set g_balance_fireball_primary_edgedamage 0
-set g_balance_fireball_primary_force 700
-set g_balance_fireball_primary_health 50
+set g_balance_fireball_primary_damageforcescale 0
+set g_balance_fireball_primary_edgedamage 50
+set g_balance_fireball_primary_force 600
+set g_balance_fireball_primary_health 0
 set g_balance_fireball_primary_laserburntime 0.5
 set g_balance_fireball_primary_laserdamage 80
 set g_balance_fireball_primary_laseredgedamage 20
 set g_balance_fireball_primary_laserradius 256
 set g_balance_fireball_primary_lifetime 15
 set g_balance_fireball_primary_radius 200
-set g_balance_fireball_primary_refire 5
+set g_balance_fireball_primary_refire 2
 set g_balance_fireball_primary_refire2 0
-set g_balance_fireball_primary_speed 650
+set g_balance_fireball_primary_speed 1200
 set g_balance_fireball_primary_spread 0
 set g_balance_fireball_secondary_ammo 5
 set g_balance_fireball_secondary_animtime 0.3
@@ -717,63 +718,65 @@ set g_balance_fireball_secondary_laserdamage 50
 set g_balance_fireball_secondary_laseredgedamage 20
 set g_balance_fireball_secondary_laserradius 110
 set g_balance_fireball_secondary_lifetime 7
-set g_balance_fireball_secondary_refire 2
+set g_balance_fireball_secondary_refire 1.5
 set g_balance_fireball_secondary_speed 900
 set g_balance_fireball_secondary_speed_up 100
 set g_balance_fireball_secondary_speed_z 0
 set g_balance_fireball_secondary_spread 0
-set g_balance_fireball_reload_ammo 0 //default: 60
+set g_balance_fireball_reload_ammo 0 //default: 100
 set g_balance_fireball_reload_time 2
 // }}}
 // {{{ seeker
+set g_balance_seeker_type 1 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
 set g_balance_seeker_flac_ammo 0.5
 set g_balance_seeker_flac_animtime 0.1
-set g_balance_seeker_flac_damage 16
-set g_balance_seeker_flac_edgedamage 8
+set g_balance_seeker_flac_damage 15
+set g_balance_seeker_flac_edgedamage 10
 set g_balance_seeker_flac_force 50
-set g_balance_seeker_flac_lifetime 0.05
-set g_balance_seeker_flac_lifetime_rand 0.01
-set g_balance_seeker_flac_radius 70
-set g_balance_seeker_flac_refire 0.15
+set g_balance_seeker_flac_lifetime 0.1
+set g_balance_seeker_flac_lifetime_rand 0.05
+set g_balance_seeker_flac_radius 100
+set g_balance_seeker_flac_refire 0.1
 set g_balance_seeker_flac_speed 3000
-set g_balance_seeker_flac_speed_up 0
+set g_balance_seeker_flac_speed_up 1000
 set g_balance_seeker_flac_speed_z 0
-set g_balance_seeker_flac_spread 0.05
-set g_balance_seeker_missile_accel 3000
+set g_balance_seeker_flac_spread 0.4
+set g_balance_seeker_tag_ammo 1
+set g_balance_seeker_tag_animtime 0.2
+set g_balance_seeker_tag_damageforcescale 0
+set g_balance_seeker_tag_health 0
+set g_balance_seeker_tag_lifetime 15
+set g_balance_seeker_tag_refire 0.75 // LOG: 0.7 -> 0.75
+set g_balance_seeker_tag_speed 5000
+set g_balance_seeker_tag_spread 0
+set g_balance_seeker_tag_tracker_lifetime 10
+set g_balance_seeker_missile_accel 1500
 set g_balance_seeker_missile_ammo 2
-set g_balance_seeker_missile_animtime 0.3
-set g_balance_seeker_missile_count 4
-set g_balance_seeker_missile_damage 40
+set g_balance_seeker_missile_animtime 0.2
+set g_balance_seeker_missile_count 3 // LOG: 8 -> 3
+set g_balance_seeker_missile_damage 16 // LOG: 15 -> 30
 set g_balance_seeker_missile_damageforcescale 4
 set g_balance_seeker_missile_decel 6000
 set g_balance_seeker_missile_delay 0.25
-set g_balance_seeker_missile_edgedamage 10
-set g_balance_seeker_missile_force 250
-set g_balance_seeker_missile_health 5
+set g_balance_seeker_missile_edgedamage 8
+set g_balance_seeker_missile_force 50 // LOG: 100 -> 150
+set g_balance_seeker_missile_health 1
 set g_balance_seeker_missile_lifetime 15
 set g_balance_seeker_missile_proxy 0
 set g_balance_seeker_missile_proxy_delay 0.2
 set g_balance_seeker_missile_proxy_maxrange 45
-set g_balance_seeker_missile_radius 80
-set g_balance_seeker_missile_refire 0.5
-set g_balance_seeker_missile_smart 1
+set g_balance_seeker_missile_radius 70
+set g_balance_seeker_missile_refire 0.25
+set g_balance_seeker_missile_smart 0
 set g_balance_seeker_missile_smart_mindist 800
 set g_balance_seeker_missile_smart_trace_max 2500
 set g_balance_seeker_missile_smart_trace_min 1000
-set g_balance_seeker_missile_speed 700
-set g_balance_seeker_missile_speed_up 300
+set g_balance_seeker_missile_speed 1500
+set g_balance_seeker_missile_speed_up 0
 set g_balance_seeker_missile_speed_z 0
-set g_balance_seeker_missile_speed_max 1250
+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.65
-set g_balance_seeker_tag_ammo 1
-set g_balance_seeker_tag_animtime 0.3
-set g_balance_seeker_tag_damageforcescale 4
-set g_balance_seeker_tag_health 5
-set g_balance_seeker_tag_lifetime 15
-set g_balance_seeker_tag_refire 0.7
-set g_balance_seeker_tag_speed 9000
-set g_balance_seeker_tag_spread 0
+set g_balance_seeker_missile_turnrate 0.2
 set g_balance_seeker_reload_ammo 0 //default: 15
 set g_balance_seeker_reload_time 2
 // End new seeker
index a782c6387927577d9e0b0d92a39d7d61c1deb534..55dde194b70e3fbf88d8ff2ea3621570dceb0ddc 100644 (file)
@@ -178,6 +178,7 @@ set g_balance_falldamage_deadminspeed 150
 set g_balance_falldamage_minspeed 800
 set g_balance_falldamage_factor 0.20
 set g_balance_falldamage_maxdamage 15
+set g_balance_damagepush_speedfactor 2.5
 // }}}
 
 // {{{ powerups
@@ -726,6 +727,7 @@ set g_balance_fireball_reload_ammo 0 //default: 60
 set g_balance_fireball_reload_time 2
 // }}}
 // {{{ seeker
+set g_balance_seeker_type 0 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
 set g_balance_seeker_flac_ammo 0.5
 set g_balance_seeker_flac_animtime 0.1
 set g_balance_seeker_flac_damage 15
@@ -774,6 +776,7 @@ set g_balance_seeker_tag_lifetime 15
 set g_balance_seeker_tag_refire 0.75 // LOG: 0.7 -> 0.75
 set g_balance_seeker_tag_speed 5000
 set g_balance_seeker_tag_spread 0
+set g_balance_seeker_tag_tracker_lifetime 10
 set g_balance_seeker_reload_ammo 0 //default: 15
 set g_balance_seeker_reload_time 2
 // End new seeker
index 2fb726764c7bae06ccea84a81d78af958fbd8171..72f938ba523498858ec55520caa9169f314d6c6d 100644 (file)
@@ -178,6 +178,7 @@ set g_balance_falldamage_deadminspeed 150
 set g_balance_falldamage_minspeed 800
 set g_balance_falldamage_factor 0.02 // maxspeed = minspeed + maxdamage / factor = 4550
 set g_balance_falldamage_maxdamage 75
+set g_balance_damagepush_speedfactor 0
 // }}}
 
 // {{{ powerups
@@ -725,6 +726,7 @@ set g_balance_fireball_reload_ammo 0 //default: 60
 set g_balance_fireball_reload_time 2
 // }}}
 // {{{ seeker
+set g_balance_seeker_type 0 // 0 = old seeker, 1 = new seeker. THIS IS A TEMPORARY CVAR FOR TESTING, will be removed later.
 set g_balance_seeker_flac_ammo 0.5
 set g_balance_seeker_flac_animtime 0.1
 set g_balance_seeker_flac_damage 15
@@ -773,6 +775,7 @@ set g_balance_seeker_tag_lifetime 15
 set g_balance_seeker_tag_refire 1
 set g_balance_seeker_tag_speed 9000
 set g_balance_seeker_tag_spread 0
+set g_balance_seeker_tag_tracker_lifetime 10
 set g_balance_seeker_reload_ammo 0 //default: 15
 set g_balance_seeker_reload_time 2
 // End new seeker
index a500cec9e1de073eb1ee156411b092c5ff1e0b69..0a9b30cc3a4bb3d9d34256f3cf7160bfecde05b3 100644 (file)
@@ -206,7 +206,6 @@ seta crosshair_ring_minelayer 1
 seta crosshair_ring_minelayer_alpha 0.15
 
 seta crosshair_ring_reload 1 "main cvar to enable or disable ammo crosshair rings"
-seta crosshair_ring_reload_inner 1 "allow switching to inner ring when the main ring is already used by the weapon"
 seta crosshair_ring_reload_size 2.5    "reload ring size"
 seta crosshair_ring_reload_alpha 0.2   "reload ring alpha"
 
@@ -2120,3 +2119,9 @@ exec hud_luminos.cfg
 // enable menu syncing
 alias menu_sync "menu_cmd sync"
 alias scoreboard_columns_set  "cl_cmd scoreboard_columns_set $*"
+
+// BALANCE TESTING (TEMPORARY, PLEASE REMOVE LATER)
+alias balanceSamual   "exec balanceSamual.cfg; restart"
+alias balanceFruitieX "exec balanceXonotic.cfg; restart"
+bind f7 balanceSamual
+bind f8 balanceFruitieX
index c6a63e6daba4d029949ae24e5633164458344a7e..e2b476ce8a0726bbca58256968631ad979045a17 100644 (file)
@@ -5194,3 +5194,66 @@ velocityjitter 0 0 5
 velocitymultiplier 15
 airfriction -1
 rotate 0 360 -180 180
+
+// seeker missile trail
+effect TR_SEEKER
+trailspacing 10
+type smoke
+notunderwater
+color 0x000000 0x666666
+tex 0 8
+size 2 2
+bounce 1
+sizeincrease 11
+alpha 200 300 200
+lightradius 100
+lighttime 0
+lightcolor 6 3 1
+originjitter 2 2 2
+velocityjitter 3 3 3
+velocitymultiplier -0.02
+rotate -180 180 -30 30
+//gravity -0.11
+// fire
+effect TR_SEEKER
+trailspacing 4
+type static
+color 0xffdf72 0x811200
+tex 48 55
+size 5 5
+sizeincrease -30
+alpha 100 144 588
+airfriction 8
+velocityjitter 32 32 32
+velocitymultiplier -1.5
+// bubbles
+effect TR_SEEKER
+type bubble
+underwater
+trailspacing 16
+tex 62 62
+size 1 2
+alpha 256 256 256
+gravity -0.125
+bounce 1.5
+liquidfriction 4
+velocityjitter 16 16 16
+velocitymultiplier -0.31
+rotate 0 0 0 0
+// sparks
+effect TR_SEEKER
+notunderwater
+trailspacing 20
+type spark
+tex 40 40
+color 0xFFFDD9 0xFFFDD9
+size 0.5 0.5
+alpha 444 512 1866
+stretchfactor 0.3
+//gravity 1
+bounce 1
+//velocityoffset 0 0 15
+airfriction 5
+originjitter 1 1 1
+velocityjitter 100 100 100
+velocitymultiplier -0.31
diff --git a/gfx/hud/luminos/border_small_healtharmor.tga b/gfx/hud/luminos/border_small_healtharmor.tga
new file mode 100644 (file)
index 0000000..e27f2a3
Binary files /dev/null and b/gfx/hud/luminos/border_small_healtharmor.tga differ
diff --git a/gfx/hud/luminos/border_small_modicons.tga b/gfx/hud/luminos/border_small_modicons.tga
new file mode 100644 (file)
index 0000000..64d84f0
Binary files /dev/null and b/gfx/hud/luminos/border_small_modicons.tga differ
diff --git a/gfx/hud/luminos/border_small_powerups.tga b/gfx/hud/luminos/border_small_powerups.tga
new file mode 100644 (file)
index 0000000..0737860
Binary files /dev/null and b/gfx/hud/luminos/border_small_powerups.tga differ
diff --git a/gfx/hud/luminos/border_small_radar.tga b/gfx/hud/luminos/border_small_radar.tga
new file mode 100644 (file)
index 0000000..30729f5
Binary files /dev/null and b/gfx/hud/luminos/border_small_radar.tga differ
diff --git a/gfx/hud/luminos/border_small_score.tga b/gfx/hud/luminos/border_small_score.tga
new file mode 100644 (file)
index 0000000..c8c506c
Binary files /dev/null and b/gfx/hud/luminos/border_small_score.tga differ
diff --git a/gfx/hud/luminos/border_small_timer.tga b/gfx/hud/luminos/border_small_timer.tga
new file mode 100644 (file)
index 0000000..c8c506c
Binary files /dev/null and b/gfx/hud/luminos/border_small_timer.tga differ
diff --git a/gfx/hud/luminos/border_small_weapons.tga b/gfx/hud/luminos/border_small_weapons.tga
new file mode 100644 (file)
index 0000000..d0b58a8
Binary files /dev/null and b/gfx/hud/luminos/border_small_weapons.tga differ
index ca8ea38de05476976feaf3a64b31755697d7cd44..57be0d0a7fd69fa718e1583389404ee6c8a984b5 100644 (file)
@@ -1,15 +1,15 @@
 seta hud_skin "luminos"
-seta hud_panel_bg "border_default"
-seta hud_panel_bg_color "1 0.4375 0"
-seta hud_panel_bg_color_team "0"
+seta hud_panel_bg "0"
+seta hud_panel_bg_color "0.6875 0.84375 1"
+seta hud_panel_bg_color_team "1"
 seta hud_panel_bg_alpha "1"
 seta hud_panel_bg_border "8"
 seta hud_panel_bg_padding "2"
 seta hud_panel_fg_alpha "1"
 
-seta hud_dock "dock"
-seta hud_dock_color "0 0.1875 0.40625"
-seta hud_dock_color_team "0.700000"
+seta hud_dock "0"
+seta hud_dock_color "0 0.449576 0.860796"
+seta hud_dock_color_team "1"
 seta hud_dock_alpha "1"
 
 seta hud_progressbar_alpha "0.500000"
@@ -20,7 +20,7 @@ seta hud_progressbar_armor_color "0 0.6 0"
 seta hud_progressbar_fuel_color "0.6 0.6 0"
 seta hud_progressbar_nexball_color "0.7 0.1 0"
 
-seta _hud_panelorder "10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 "
+seta _hud_panelorder "12 9 10 5 6 14 0 7 4 11 2 1 3 8 13 "
 
 seta hud_configure_grid "1"
 seta hud_configure_grid_xsize "0.010000"
@@ -29,9 +29,9 @@ seta hud_configure_grid_ysize "0.010000"
 seta scr_centerpos "0.25"
 
 seta hud_panel_weapons 1
-seta hud_panel_weapons_pos "0.920000 0.090000"
-seta hud_panel_weapons_size "0.060000 0.630000"
-seta hud_panel_weapons_bg ""
+seta hud_panel_weapons_pos "0.940000 0.180000"
+seta hud_panel_weapons_size "0.060000 0.610000"
+seta hud_panel_weapons_bg "border_small_weapons"
 seta hud_panel_weapons_bg_color ""
 seta hud_panel_weapons_bg_color_team ""
 seta hud_panel_weapons_bg_alpha ""
@@ -46,11 +46,11 @@ seta hud_panel_weapons_ammo_color "0 1 0"
 seta hud_panel_weapons_ammo_alpha "1"
 seta hud_panel_weapons_aspect "2"
 seta hud_panel_weapons_timeout "3"
-seta hud_panel_weapons_timeout_effect "1"
+seta hud_panel_weapons_timeout_effect "2"
 
 seta hud_panel_ammo 1
-seta hud_panel_ammo_pos "0.190000 0.920000"
-seta hud_panel_ammo_size "0.120000 0.070000"
+seta hud_panel_ammo_pos "0.330000 0.960000"
+seta hud_panel_ammo_size "0.350000 0.040000"
 seta hud_panel_ammo_bg ""
 seta hud_panel_ammo_bg_color ""
 seta hud_panel_ammo_bg_color_team ""
@@ -60,20 +60,20 @@ seta hud_panel_ammo_bg_padding ""
 seta hud_panel_ammo_onlycurrent "0"
 seta hud_panel_ammo_iconalign "0"
 seta hud_panel_ammo_progressbar "0"
-seta hud_panel_ammo_progressbar_xoffset "0"
 seta hud_panel_ammo_progressbar_name "progressbar"
+seta hud_panel_ammo_progressbar_xoffset "0"
 seta hud_panel_ammo_text "1"
 
 seta hud_panel_powerups 1
-seta hud_panel_powerups_pos "0.660000 0.940000"
-seta hud_panel_powerups_size "0.330000 0.060000"
-seta hud_panel_powerups_bg "0"
+seta hud_panel_powerups_pos "0.360000 0.850000"
+seta hud_panel_powerups_size "0.290000 0.030000"
+seta hud_panel_powerups_bg "border_small_powerups"
 seta hud_panel_powerups_bg_color ""
 seta hud_panel_powerups_bg_color_team ""
 seta hud_panel_powerups_bg_alpha ""
 seta hud_panel_powerups_bg_border ""
-seta hud_panel_powerups_bg_padding ""
-seta hud_panel_powerups_flip "1"
+seta hud_panel_powerups_bg_padding "0"
+seta hud_panel_powerups_flip "0"
 seta hud_panel_powerups_iconalign "4"
 seta hud_panel_powerups_baralign "4"
 seta hud_panel_powerups_progressbar "1"
@@ -82,9 +82,9 @@ seta hud_panel_powerups_progressbar_shield "progressbar"
 seta hud_panel_powerups_text "1"
 
 seta hud_panel_healtharmor 1
-seta hud_panel_healtharmor_pos "0.330000 0.920000"
-seta hud_panel_healtharmor_size "0.310000 0.070000"
-seta hud_panel_healtharmor_bg ""
+seta hud_panel_healtharmor_pos "0.320000 0.910000"
+seta hud_panel_healtharmor_size "0.370000 0.060000"
+seta hud_panel_healtharmor_bg "border_small_healtharmor"
 seta hud_panel_healtharmor_bg_color ""
 seta hud_panel_healtharmor_bg_color_team ""
 seta hud_panel_healtharmor_bg_alpha ""
@@ -99,8 +99,8 @@ seta hud_panel_healtharmor_progressbar_armor "progressbar"
 seta hud_panel_healtharmor_text "1"
 
 seta hud_panel_notify 1
-seta hud_panel_notify_pos "0.660000 0.730000"
-seta hud_panel_notify_size "0.320000 0.190000"
+seta hud_panel_notify_pos "0.710000 0.800000"
+seta hud_panel_notify_size "0.290000 0.190000"
 seta hud_panel_notify_bg "0"
 seta hud_panel_notify_bg_color ""
 seta hud_panel_notify_bg_color_team ""
@@ -112,38 +112,38 @@ seta hud_panel_notify_fontsize "0.8"
 seta hud_panel_notify_print "1"
 
 seta hud_panel_timer 1
-seta hud_panel_timer_pos "0.870000 0"
-seta hud_panel_timer_size "0.130000 0.060000"
-seta hud_panel_timer_bg "0"
+seta hud_panel_timer_pos "0.800000 0.040000"
+seta hud_panel_timer_size "0.070000 0.040000"
+seta hud_panel_timer_bg "border_small_timer"
 seta hud_panel_timer_bg_color ""
 seta hud_panel_timer_bg_color_team ""
 seta hud_panel_timer_bg_alpha ""
 seta hud_panel_timer_bg_border ""
 seta hud_panel_timer_bg_padding "0"
 
-seta hud_panel_radar 2 // enabled for keepaway and to make the HUD consistent throughout game modes
-seta hud_panel_radar_pos "0.030000 0.020000"
-seta hud_panel_radar_size "0.170000 0.220000"
-seta hud_panel_radar_bg ""
+seta hud_panel_radar 2
+seta hud_panel_radar_pos "0 0"
+seta hud_panel_radar_size "0.200000 0.240000"
+seta hud_panel_radar_bg "border_small_radar"
 seta hud_panel_radar_bg_color ""
 seta hud_panel_radar_bg_color_team ""
-seta hud_panel_radar_bg_alpha ""
+seta hud_panel_radar_bg_alpha "0.800000"
 seta hud_panel_radar_bg_border ""
-seta hud_panel_radar_bg_padding "-3"
+seta hud_panel_radar_bg_padding "-1"
 seta hud_panel_radar_foreground_alpha "0.800000"
 
 seta hud_panel_score 1
-seta hud_panel_score_pos "0.020000 0.920000"
-seta hud_panel_score_size "0.150000 0.070000"
-seta hud_panel_score_bg ""
+seta hud_panel_score_pos "0.890000 0.030000"
+seta hud_panel_score_size "0.100000 0.050000"
+seta hud_panel_score_bg "border_small_score"
 seta hud_panel_score_bg_color ""
 seta hud_panel_score_bg_color_team ""
 seta hud_panel_score_bg_alpha ""
 seta hud_panel_score_bg_border ""
-seta hud_panel_score_bg_padding ""
+seta hud_panel_score_bg_padding "0"
 
 seta hud_panel_racetimer 1
-seta hud_panel_racetimer_pos "0.360000 0.090000"
+seta hud_panel_racetimer_pos "0.360000 0.110000"
 seta hud_panel_racetimer_size "0.280000 0.090000"
 seta hud_panel_racetimer_bg "0"
 seta hud_panel_racetimer_bg_color ""
@@ -153,29 +153,29 @@ seta hud_panel_racetimer_bg_border ""
 seta hud_panel_racetimer_bg_padding ""
 
 seta hud_panel_vote 1
-seta hud_panel_vote_pos "0.020000 0.650000"
-seta hud_panel_vote_size "0.230000 0.110000"
-seta hud_panel_vote_bg ""
+seta hud_panel_vote_pos "0.710000 0.660000"
+seta hud_panel_vote_size "0.210000 0.100000"
+seta hud_panel_vote_bg "border_vote"
 seta hud_panel_vote_bg_color ""
 seta hud_panel_vote_bg_color_team ""
 seta hud_panel_vote_bg_alpha ""
 seta hud_panel_vote_bg_border ""
 seta hud_panel_vote_bg_padding ""
-seta hud_panel_vote_alreadyvoted_alpha "0.800000"
+seta hud_panel_vote_alreadyvoted_alpha "0.500000"
 
 seta hud_panel_modicons 1
-seta hud_panel_modicons_pos "0.040000 0.270000"
-seta hud_panel_modicons_size "0.080000 0.200000"
-seta hud_panel_modicons_bg ""
+seta hud_panel_modicons_pos "0.410000 0"
+seta hud_panel_modicons_size "0.180000 0.080000"
+seta hud_panel_modicons_bg "border_small_modicons"
 seta hud_panel_modicons_bg_color ""
 seta hud_panel_modicons_bg_color_team ""
 seta hud_panel_modicons_bg_alpha ""
 seta hud_panel_modicons_bg_border ""
-seta hud_panel_modicons_bg_padding ""
+seta hud_panel_modicons_bg_padding "0"
 
 seta hud_panel_pressedkeys 1
-seta hud_panel_pressedkeys_pos "0.410000 0.710000"
-seta hud_panel_pressedkeys_size "0.180000 0.130000"
+seta hud_panel_pressedkeys_pos "0.450000 0.720000"
+seta hud_panel_pressedkeys_size "0.110000 0.090000"
 seta hud_panel_pressedkeys_bg "0"
 seta hud_panel_pressedkeys_bg_color ""
 seta hud_panel_pressedkeys_bg_color_team ""
@@ -185,8 +185,8 @@ seta hud_panel_pressedkeys_bg_padding ""
 seta hud_panel_pressedkeys_aspect "1.600000"
 
 seta hud_panel_chat 1
-seta hud_panel_chat_pos "0.020000 0.780000"
-seta hud_panel_chat_size "0.630000 0.110000"
+seta hud_panel_chat_pos "0.010000 0.700000"
+seta hud_panel_chat_size "0.460000 0.190000"
 seta hud_panel_chat_bg "0"
 seta hud_panel_chat_bg_color ""
 seta hud_panel_chat_bg_color_team ""
@@ -195,8 +195,8 @@ seta hud_panel_chat_bg_border ""
 seta hud_panel_chat_bg_padding ""
 
 seta hud_panel_engineinfo 0
-seta hud_panel_engineinfo_pos "0.910000 0.970000"
-seta hud_panel_engineinfo_size "0.090000 0.030000"
+seta hud_panel_engineinfo_pos "0.930000 0.970000"
+seta hud_panel_engineinfo_size "0.070000 0.030000"
 seta hud_panel_engineinfo_bg "0"
 seta hud_panel_engineinfo_bg_color ""
 seta hud_panel_engineinfo_bg_color_team ""
@@ -205,8 +205,8 @@ seta hud_panel_engineinfo_bg_border ""
 seta hud_panel_engineinfo_bg_padding ""
 
 seta hud_panel_infomessages 1
-seta hud_panel_infomessages_pos "0.510000 0"
-seta hud_panel_infomessages_size "0.340000 0.090000"
+seta hud_panel_infomessages_pos "0.720000 0.100000"
+seta hud_panel_infomessages_size "0.280000 0.080000"
 seta hud_panel_infomessages_bg "0"
 seta hud_panel_infomessages_bg_color ""
 seta hud_panel_infomessages_bg_color_team ""
diff --git a/hud_luminos_old.cfg b/hud_luminos_old.cfg
new file mode 100644 (file)
index 0000000..ca8ea38
--- /dev/null
@@ -0,0 +1,218 @@
+seta hud_skin "luminos"
+seta hud_panel_bg "border_default"
+seta hud_panel_bg_color "1 0.4375 0"
+seta hud_panel_bg_color_team "0"
+seta hud_panel_bg_alpha "1"
+seta hud_panel_bg_border "8"
+seta hud_panel_bg_padding "2"
+seta hud_panel_fg_alpha "1"
+
+seta hud_dock "dock"
+seta hud_dock_color "0 0.1875 0.40625"
+seta hud_dock_color_team "0.700000"
+seta hud_dock_alpha "1"
+
+seta hud_progressbar_alpha "0.500000"
+seta hud_progressbar_strength_color "0 0 0.6"
+seta hud_progressbar_shield_color "0.6 0 0.6"
+seta hud_progressbar_health_color "0.6 0 0"
+seta hud_progressbar_armor_color "0 0.6 0"
+seta hud_progressbar_fuel_color "0.6 0.6 0"
+seta hud_progressbar_nexball_color "0.7 0.1 0"
+
+seta _hud_panelorder "10 9 6 8 14 5 0 4 13 2 7 1 3 11 12 "
+
+seta hud_configure_grid "1"
+seta hud_configure_grid_xsize "0.010000"
+seta hud_configure_grid_ysize "0.010000"
+
+seta scr_centerpos "0.25"
+
+seta hud_panel_weapons 1
+seta hud_panel_weapons_pos "0.920000 0.090000"
+seta hud_panel_weapons_size "0.060000 0.630000"
+seta hud_panel_weapons_bg ""
+seta hud_panel_weapons_bg_color ""
+seta hud_panel_weapons_bg_color_team ""
+seta hud_panel_weapons_bg_alpha ""
+seta hud_panel_weapons_bg_border ""
+seta hud_panel_weapons_bg_padding ""
+seta hud_panel_weapons_complainbubble "1"
+seta hud_panel_weapons_complainbubble_padding "-10"
+seta hud_panel_weapons_complainbubble_color_outofammo "0.8 0 0"
+seta hud_panel_weapons_complainbubble_color_donthave "0.8 0.5 0"
+seta hud_panel_weapons_complainbubble_color_unavailable "0 0.3 0.8"
+seta hud_panel_weapons_ammo_color "0 1 0"
+seta hud_panel_weapons_ammo_alpha "1"
+seta hud_panel_weapons_aspect "2"
+seta hud_panel_weapons_timeout "3"
+seta hud_panel_weapons_timeout_effect "1"
+
+seta hud_panel_ammo 1
+seta hud_panel_ammo_pos "0.190000 0.920000"
+seta hud_panel_ammo_size "0.120000 0.070000"
+seta hud_panel_ammo_bg ""
+seta hud_panel_ammo_bg_color ""
+seta hud_panel_ammo_bg_color_team ""
+seta hud_panel_ammo_bg_alpha ""
+seta hud_panel_ammo_bg_border ""
+seta hud_panel_ammo_bg_padding ""
+seta hud_panel_ammo_onlycurrent "0"
+seta hud_panel_ammo_iconalign "0"
+seta hud_panel_ammo_progressbar "0"
+seta hud_panel_ammo_progressbar_xoffset "0"
+seta hud_panel_ammo_progressbar_name "progressbar"
+seta hud_panel_ammo_text "1"
+
+seta hud_panel_powerups 1
+seta hud_panel_powerups_pos "0.660000 0.940000"
+seta hud_panel_powerups_size "0.330000 0.060000"
+seta hud_panel_powerups_bg "0"
+seta hud_panel_powerups_bg_color ""
+seta hud_panel_powerups_bg_color_team ""
+seta hud_panel_powerups_bg_alpha ""
+seta hud_panel_powerups_bg_border ""
+seta hud_panel_powerups_bg_padding ""
+seta hud_panel_powerups_flip "1"
+seta hud_panel_powerups_iconalign "4"
+seta hud_panel_powerups_baralign "4"
+seta hud_panel_powerups_progressbar "1"
+seta hud_panel_powerups_progressbar_strength "progressbar"
+seta hud_panel_powerups_progressbar_shield "progressbar"
+seta hud_panel_powerups_text "1"
+
+seta hud_panel_healtharmor 1
+seta hud_panel_healtharmor_pos "0.330000 0.920000"
+seta hud_panel_healtharmor_size "0.310000 0.070000"
+seta hud_panel_healtharmor_bg ""
+seta hud_panel_healtharmor_bg_color ""
+seta hud_panel_healtharmor_bg_color_team ""
+seta hud_panel_healtharmor_bg_alpha ""
+seta hud_panel_healtharmor_bg_border ""
+seta hud_panel_healtharmor_bg_padding ""
+seta hud_panel_healtharmor_flip "0"
+seta hud_panel_healtharmor_iconalign "4"
+seta hud_panel_healtharmor_baralign "4"
+seta hud_panel_healtharmor_progressbar "1"
+seta hud_panel_healtharmor_progressbar_health "progressbar"
+seta hud_panel_healtharmor_progressbar_armor "progressbar"
+seta hud_panel_healtharmor_text "1"
+
+seta hud_panel_notify 1
+seta hud_panel_notify_pos "0.660000 0.730000"
+seta hud_panel_notify_size "0.320000 0.190000"
+seta hud_panel_notify_bg "0"
+seta hud_panel_notify_bg_color ""
+seta hud_panel_notify_bg_color_team ""
+seta hud_panel_notify_bg_alpha ""
+seta hud_panel_notify_bg_border ""
+seta hud_panel_notify_bg_padding ""
+seta hud_panel_notify_flip "0"
+seta hud_panel_notify_fontsize "0.8"
+seta hud_panel_notify_print "1"
+
+seta hud_panel_timer 1
+seta hud_panel_timer_pos "0.870000 0"
+seta hud_panel_timer_size "0.130000 0.060000"
+seta hud_panel_timer_bg "0"
+seta hud_panel_timer_bg_color ""
+seta hud_panel_timer_bg_color_team ""
+seta hud_panel_timer_bg_alpha ""
+seta hud_panel_timer_bg_border ""
+seta hud_panel_timer_bg_padding "0"
+
+seta hud_panel_radar 2 // enabled for keepaway and to make the HUD consistent throughout game modes
+seta hud_panel_radar_pos "0.030000 0.020000"
+seta hud_panel_radar_size "0.170000 0.220000"
+seta hud_panel_radar_bg ""
+seta hud_panel_radar_bg_color ""
+seta hud_panel_radar_bg_color_team ""
+seta hud_panel_radar_bg_alpha ""
+seta hud_panel_radar_bg_border ""
+seta hud_panel_radar_bg_padding "-3"
+seta hud_panel_radar_foreground_alpha "0.800000"
+
+seta hud_panel_score 1
+seta hud_panel_score_pos "0.020000 0.920000"
+seta hud_panel_score_size "0.150000 0.070000"
+seta hud_panel_score_bg ""
+seta hud_panel_score_bg_color ""
+seta hud_panel_score_bg_color_team ""
+seta hud_panel_score_bg_alpha ""
+seta hud_panel_score_bg_border ""
+seta hud_panel_score_bg_padding ""
+
+seta hud_panel_racetimer 1
+seta hud_panel_racetimer_pos "0.360000 0.090000"
+seta hud_panel_racetimer_size "0.280000 0.090000"
+seta hud_panel_racetimer_bg "0"
+seta hud_panel_racetimer_bg_color ""
+seta hud_panel_racetimer_bg_color_team ""
+seta hud_panel_racetimer_bg_alpha ""
+seta hud_panel_racetimer_bg_border ""
+seta hud_panel_racetimer_bg_padding ""
+
+seta hud_panel_vote 1
+seta hud_panel_vote_pos "0.020000 0.650000"
+seta hud_panel_vote_size "0.230000 0.110000"
+seta hud_panel_vote_bg ""
+seta hud_panel_vote_bg_color ""
+seta hud_panel_vote_bg_color_team ""
+seta hud_panel_vote_bg_alpha ""
+seta hud_panel_vote_bg_border ""
+seta hud_panel_vote_bg_padding ""
+seta hud_panel_vote_alreadyvoted_alpha "0.800000"
+
+seta hud_panel_modicons 1
+seta hud_panel_modicons_pos "0.040000 0.270000"
+seta hud_panel_modicons_size "0.080000 0.200000"
+seta hud_panel_modicons_bg ""
+seta hud_panel_modicons_bg_color ""
+seta hud_panel_modicons_bg_color_team ""
+seta hud_panel_modicons_bg_alpha ""
+seta hud_panel_modicons_bg_border ""
+seta hud_panel_modicons_bg_padding ""
+
+seta hud_panel_pressedkeys 1
+seta hud_panel_pressedkeys_pos "0.410000 0.710000"
+seta hud_panel_pressedkeys_size "0.180000 0.130000"
+seta hud_panel_pressedkeys_bg "0"
+seta hud_panel_pressedkeys_bg_color ""
+seta hud_panel_pressedkeys_bg_color_team ""
+seta hud_panel_pressedkeys_bg_alpha ""
+seta hud_panel_pressedkeys_bg_border ""
+seta hud_panel_pressedkeys_bg_padding ""
+seta hud_panel_pressedkeys_aspect "1.600000"
+
+seta hud_panel_chat 1
+seta hud_panel_chat_pos "0.020000 0.780000"
+seta hud_panel_chat_size "0.630000 0.110000"
+seta hud_panel_chat_bg "0"
+seta hud_panel_chat_bg_color ""
+seta hud_panel_chat_bg_color_team ""
+seta hud_panel_chat_bg_alpha ""
+seta hud_panel_chat_bg_border ""
+seta hud_panel_chat_bg_padding ""
+
+seta hud_panel_engineinfo 0
+seta hud_panel_engineinfo_pos "0.910000 0.970000"
+seta hud_panel_engineinfo_size "0.090000 0.030000"
+seta hud_panel_engineinfo_bg "0"
+seta hud_panel_engineinfo_bg_color ""
+seta hud_panel_engineinfo_bg_color_team ""
+seta hud_panel_engineinfo_bg_alpha ""
+seta hud_panel_engineinfo_bg_border ""
+seta hud_panel_engineinfo_bg_padding ""
+
+seta hud_panel_infomessages 1
+seta hud_panel_infomessages_pos "0.510000 0"
+seta hud_panel_infomessages_size "0.340000 0.090000"
+seta hud_panel_infomessages_bg "0"
+seta hud_panel_infomessages_bg_color ""
+seta hud_panel_infomessages_bg_color_team ""
+seta hud_panel_infomessages_bg_alpha ""
+seta hud_panel_infomessages_bg_border ""
+seta hud_panel_infomessages_bg_padding "0"
+seta hud_panel_infomessages_flip "1"
+
+menu_sync
index 87f24a6d0b49fed6eb041a421f8b080d1e99002e..9f08c21f9ba13bf30c4540a194507a1ce508e8c0 100644 (file)
@@ -206,3 +206,5 @@ sprite item-fuelregen     "Fuel regen"    ff8000 000000 0.5 ff8000 ffff00 0.5
 sprite item-jetpack       "Jet Pack"      808080 000000 0.5 808080 ffff00 0.5
 
 sprite freezetag_frozen   "Frozen!"       40e6ff 000000 0.0 # bright cyan
+
+sprite tagged-target                   "Tagged"                                80ff0f 000000 0.25 80ff0f ffff80 0.25
diff --git a/models/sprites/tagged-target_frame0.tga b/models/sprites/tagged-target_frame0.tga
new file mode 100644 (file)
index 0000000..3ff6c2f
Binary files /dev/null and b/models/sprites/tagged-target_frame0.tga differ
diff --git a/models/sprites/tagged-target_frame1.tga b/models/sprites/tagged-target_frame1.tga
new file mode 100644 (file)
index 0000000..60881fc
Binary files /dev/null and b/models/sprites/tagged-target_frame1.tga differ
index f994645873866646bed118fc93235cb14a1a9d8a..09ec96eabaaa9ece2608496c64c551d646d1b695 100644 (file)
@@ -1074,7 +1074,7 @@ void CSQC_UpdateView(float w, float h)
                        wcross_size = drawgetimagesize(wcross_name) * wcross_scale;
 
                        // crosshair rings for weapon stats
-                       if ((autocvar_crosshair_ring) || (autocvar_crosshair_ring_reload))
+                       if (autocvar_crosshair_ring || autocvar_crosshair_ring_reload)
                        {
                                // declarations and stats
                                float ring_value, ring_scale, ring_alpha, ring_inner_value, ring_inner_alpha;
@@ -1106,56 +1106,44 @@ void CSQC_UpdateView(float w, float h)
                                                ring_inner_value = bound(0, autocvar_crosshair_ring_nex_currentcharge_scale * (nex_charge - nex_charge_movingavg), 1); 
                                        }
                                                
-                                       ring_inner_alpha = wcross_alpha * autocvar_crosshair_ring_nex_inner_alpha;
+                                       ring_inner_alpha = autocvar_crosshair_ring_nex_inner_alpha;
                                        ring_inner_rgb = eX * autocvar_crosshair_ring_nex_inner_color_red + eY * autocvar_crosshair_ring_nex_inner_color_green + eZ * autocvar_crosshair_ring_nex_inner_color_blue;
                                        ring_inner_image = "gfx/crosshair_ring_inner.tga";
                                        
                                        // draw the outer ring to show the current charge of the weapon
                                        ring_value = nex_charge;
-                                       ring_alpha = wcross_alpha * autocvar_crosshair_ring_nex_alpha;
+                                       ring_alpha = autocvar_crosshair_ring_nex_alpha;
                                        ring_rgb = wcross_color;
                                        ring_image = "gfx/crosshair_ring_nexgun.tga";
                                }
                                else if (activeweapon == WEP_MINE_LAYER && minelayer_maxmines && autocvar_crosshair_ring_minelayer) 
                                {
                                        ring_value = bound(0, getstati(STAT_LAYED_MINES) / minelayer_maxmines, 1); // if you later need to use the count of bullets in another place, then add a float for it. For now, no need to.
-                                       ring_alpha = wcross_alpha * autocvar_crosshair_ring_minelayer_alpha;
+                                       ring_alpha = autocvar_crosshair_ring_minelayer_alpha;
                                        ring_rgb = wcross_color;
                                        ring_image = "gfx/crosshair_ring.tga";
                                }
 
                                if(autocvar_crosshair_ring_reload && weapon_clipsize) // forces there to be only an ammo ring 
                                {
-                                       // if the main ring is already used by another weapon, instead use the inner one for ammo.
-                                       // inner ring is secondary anyway and doesn't matter as much as main ring, so overriding it is no issue.
-                                       if(ring_value && autocvar_crosshair_ring_reload_inner)
-                                       {
-                                               ring_inner_value = bound(0, weapon_clipload / weapon_clipsize, 1);
-                                               ring_inner_alpha = autocvar_crosshair_ring_reload_alpha;
-                                               ring_inner_rgb = wcross_color;
-                                               ring_inner_image = "gfx/crosshair_ring_inner.tga";
-                                       }
-                                       else
-                                       {
-                                               ring_value = bound(0, weapon_clipload / weapon_clipsize, 1);
-                                               ring_scale = autocvar_crosshair_ring_reload_size;
-                                               ring_alpha = autocvar_crosshair_ring_reload_alpha;
-                                               ring_rgb = wcross_color;
+                                       ring_value = bound(0, weapon_clipload / weapon_clipsize, 1);
+                                       ring_scale = autocvar_crosshair_ring_reload_size;
+                                       ring_alpha = autocvar_crosshair_ring_reload_alpha;
+                                       ring_rgb = wcross_color;
                                        
-                                               // Note: This is to stop Taoki from complaining that the image doesn't match all potential balances.
-                                               // if a new image for another weapon is added, add the code (and its respective file/value) here
-                                               if ((activeweapon == WEP_SNIPERRIFLE) && (weapon_clipsize == 80))
-                                                       ring_image = "gfx/crosshair_ring_sniperrifle.tga";
-                                               else
-                                                       ring_image = "gfx/crosshair_ring.tga";
-                                       }
+                                       // Note: This is to stop Taoki from complaining that the image doesn't match all potential balances.
+                                       // if a new image for another weapon is added, add the code (and its respective file/value) here
+                                       if ((activeweapon == WEP_SNIPERRIFLE) && (weapon_clipsize == 80))
+                                               ring_image = "gfx/crosshair_ring_sniperrifle.tga";
+                                       else
+                                               ring_image = "gfx/crosshair_ring.tga";
                                }
 
-                               if ((autocvar_crosshair_ring_inner || autocvar_crosshair_ring_reload_inner) && ring_inner_value) // lets draw a ring inside a ring so you can ring while you ring
-                                       DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_inner_image, ring_inner_value, ring_inner_rgb, ring_inner_alpha, DRAWFLAG_ADDITIVE);
+                               if (autocvar_crosshair_ring_inner && ring_inner_value) // lets draw a ring inside a ring so you can ring while you ring
+                                       DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_inner_image, ring_inner_value, ring_inner_rgb, wcross_alpha * ring_inner_alpha, DRAWFLAG_ADDITIVE);
 
                                if (ring_value)
-                                       DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_image, ring_value, ring_rgb, ring_alpha, DRAWFLAG_ADDITIVE);
+                                       DrawCircleClippedPic(wcross_origin, wcross_size_x * ring_scale, ring_image, ring_value, ring_rgb, wcross_alpha * ring_alpha, DRAWFLAG_ADDITIVE);
                        }
 
 #define CROSSHAIR_DO_BLUR(M,sz,wcross_name,wcross_alpha) \
index d380c7fc30902052883a2bc6449cb87cc2fb49b0..e11266ce0223324944413047fc647a5d95314ea2 100644 (file)
@@ -123,11 +123,11 @@ float autocvar_crosshair_ring_nex_inner_color_red;
 float autocvar_crosshair_ring_size;
 float autocvar_crosshair_ring_reload;
 float autocvar_crosshair_ring_reload_alpha;
-float autocvar_crosshair_ring_reload_inner;
 float autocvar_crosshair_ring_reload_size;
 float autocvar_crosshair_size;
 float autocvar_ekg;
 float autocvar_fov;
+float autocvar_g_balance_damagepush_speedfactor;
 float autocvar_g_balance_tuba_attenuation;
 float autocvar_g_balance_tuba_fadetime;
 float autocvar_g_balance_tuba_volume;
index 13c8e462e3d5d800cdafe161cca952e81bb246d2..783f66759b50b3881d533b083e732db2866d7d55 100644 (file)
@@ -57,7 +57,7 @@ void Ent_DamageInfo(float isNew)
                if(self.damageforcescale)
                        if(vlen(thisforce))
                        {
-                               self.move_velocity = self.move_velocity + self.damageforcescale * thisforce;
+                               self.move_velocity = self.move_velocity + damage_explosion_calcpush(self.damageforcescale * thisforce, self.move_velocity, autocvar_g_balance_damagepush_speedfactor);
                                self.move_flags &~= FL_ONGROUND;
                        }
 
index 1334d7d3c7b6251f25651ee280d418fffdf0a592..e296a477bfbaef96accbd9074f052e6b06a01412 100644 (file)
@@ -14,6 +14,7 @@ csqc_builtins.qc
 
 ../common/util.qh
 ../common/items.qh
+../common/explosion_equation.qh
 
 ../common/mapinfo.qh
 
@@ -71,8 +72,11 @@ noise.qc
 ../common/mapinfo.qc
 ../common/items.qc
 ../server/w_all.qc
+../common/explosion_equation.qc
 
 ../warpzonelib/anglestransform.qc
 ../warpzonelib/mathlib.qc
 ../warpzonelib/common.qc
 ../warpzonelib/client.qc
+
+../common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail
index cede03c5a082c3e756cb9378b09885212d843781..092cdc21a6f60e94a2939a5df1e955f9c027ed66 100644 (file)
@@ -292,8 +292,8 @@ void Ent_Projectile()
                        case PROJECTILE_FIREBALL: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("fireball"); break; // particle effect is good enough
                        case PROJECTILE_FIREMINE: self.model = ""; self.modelindex = 0; self.traileffect = particleeffectnum("firemine"); break; // particle effect is good enough
                        case PROJECTILE_TAG: setmodel(self, "models/laser.mdl"); self.traileffect = particleeffectnum("TR_ROCKET"); break;
-                       case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.mdl"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_ROCKET"); break;
-                       case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.scale = 2; self.traileffect = particleeffectnum("TR_ROCKET"); break;
+                       case PROJECTILE_FLAC: setmodel(self, "models/hagarmissile.mdl"); self.scale = 0.4; self.traileffect = particleeffectnum("TR_SEEKER"); break;
+                       case PROJECTILE_SEEKER: setmodel(self, "models/tagrocket.md3"); self.traileffect = particleeffectnum("TR_SEEKER"); break;
                        default:
                                error("Received invalid CSQC projectile, can't work with this!");
                                break;
@@ -372,7 +372,6 @@ void Ent_Projectile()
                                self.maxs = '4 4 4';
                                break;
                        case PROJECTILE_TAG:
-                               loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM);
                                self.mins = '-2 -2 -2';
                                self.maxs = '2 2 2';
                                break;
@@ -381,6 +380,7 @@ void Ent_Projectile()
                                self.maxs = '2 2 2';
                                break;
                        case PROJECTILE_SEEKER:
+                               loopsound(self, CHAN_PROJECTILE, "weapons/tag_rocket_fly.wav", VOL_BASE, ATTN_NORM);
                                self.mins = '-4 -4 -4';
                                self.maxs = '4 4 4';
                                break;
diff --git a/qcsrc/common/explosion_equation.qc b/qcsrc/common/explosion_equation.qc
new file mode 100644 (file)
index 0000000..df71154
--- /dev/null
@@ -0,0 +1,62 @@
+float explosion_calcpush_getmultiplier(vector explosion_v, vector target_v)
+{
+       float a;
+       a  = explosion_v * (explosion_v - target_v);
+
+       if(a <= 0)
+               // target is too fast to be hittable by this
+               return 0;
+
+       a /= (explosion_v * explosion_v);
+               // we know we can divide by this, or above a would be == 0
+
+       return a;
+}
+
+#if 0
+vector explosion_calcpush(vector explosion_v, float explosion_m, vector target_v, float target_m, float elasticity)
+{
+       // solution of the equations:
+       //    v'                = v + a vp             // central hit
+       //    m*v'   + mp*vp'   = m*v + mp*vp          // conservation of momentum
+       //    m*v'^2 + mp*vp'^2 = m*v^2 + mp*vp^2      // conservation of energy (ELASTIC hit)
+       // -> a = 0                                    // case 1: did not hit
+       // -> a = 2*mp*(vp^2 - vp.v) / ((m+mp) * vp^2) // case 2: did hit
+       //                                             // non-elastic hits are somewhere between these two
+
+       // this would be physically correct, but we don't do that
+       return explosion_v * explosion_calcpush_getmultiplier(explosion_v, target_v) * (
+               (1 + elasticity) * (
+                       explosion_m
+               ) / (
+                       target_m + explosion_m
+               )
+       ); // note: this factor is at least 0, at most 2
+}
+#endif
+
+// simplified formula, tuned so that if the target has velocity 0, we get exactly the original force
+vector damage_explosion_calcpush(vector explosion_f, vector target_v, float speedfactor)
+{
+       // if below 1, the formulas make no sense (and would cause superjumps)
+       if(speedfactor < 1)
+               return explosion_f;
+
+#if 0
+       float m;
+       // find m so that
+       //   speedfactor * (1 + e) * m / (1 + m) == 1
+       m = 1 / ((1 + 0) * speedfactor - 1);
+       vector v;
+       v = explosion_calcpush(explosion_f * speedfactor, m, target_v, 1, 0);
+       // the factor we then get is:
+       //   1
+       print(sprintf("MASS: %f\nv: %v -> %v\nENERGY BEFORE == %f + %f = %f\nENERGY AFTER >= %f\n",
+               m,
+               target_v, target_v + v,
+               target_v * target_v, m * explosion_f * speedfactor * explosion_f * speedfactor, target_v * target_v + m * explosion_f * speedfactor * explosion_f * speedfactor,
+               (target_v + v) * (target_v + v)));
+       return v;
+#endif
+       return explosion_f * explosion_calcpush_getmultiplier(explosion_f * speedfactor, target_v);
+}
diff --git a/qcsrc/common/explosion_equation.qh b/qcsrc/common/explosion_equation.qh
new file mode 100644 (file)
index 0000000..c8630cd
--- /dev/null
@@ -0,0 +1 @@
+vector damage_explosion_calcpush(vector explosion_f, vector target_v, float speedfactor);
diff --git a/qcsrc/common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail b/qcsrc/common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail
new file mode 100644 (file)
index 0000000..e69de29
index 254a9238bb490b7efb60c4d1c43d131c41ea03e2..34eb5db888fa3836ff627284646eef94d1088866 100644 (file)
@@ -41,3 +41,5 @@ xonotic/util.qc
 ../common/items.qc
 
 ../warpzonelib/mathlib.qc
+
+../common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail
index c78460c17391b4cebfdd0cce5f6b8e55a57d5db3..66a0cf2bcfc98dd5dcc2e73b4c9f5d2435024438 100644 (file)
@@ -179,6 +179,7 @@ float autocvar_g_balance_curse_venom_rotrate;
 float autocvar_g_balance_curse_vulner_takedamage;
 float autocvar_g_balance_curse_weak_damage;
 float autocvar_g_balance_curse_weak_force;
+float autocvar_g_balance_damagepush_speedfactor;
 float autocvar_g_balance_electro_combo_comboradius;
 float autocvar_g_balance_electro_combo_damage;
 float autocvar_g_balance_electro_combo_edgedamage;
@@ -579,6 +580,7 @@ float autocvar_g_balance_rune_strength_force;
 float autocvar_g_balance_rune_vampire_absorb;
 float autocvar_g_balance_rune_vampire_combo_absorb;
 float autocvar_g_balance_rune_vampire_maxhealth;
+float autocvar_g_balance_seeker_type;
 float autocvar_g_balance_seeker_flac_ammo;
 float autocvar_g_balance_seeker_flac_animtime;
 float autocvar_g_balance_seeker_flac_damage;
@@ -590,6 +592,7 @@ float autocvar_g_balance_seeker_flac_radius;
 float autocvar_g_balance_seeker_flac_refire;
 float autocvar_g_balance_seeker_missile_accel;
 float autocvar_g_balance_seeker_missile_ammo;
+float autocvar_g_balance_seeker_missile_animtime;
 float autocvar_g_balance_seeker_missile_count;
 float autocvar_g_balance_seeker_missile_damage;
 float autocvar_g_balance_seeker_missile_damageforcescale;
@@ -603,6 +606,7 @@ float autocvar_g_balance_seeker_missile_proxy;
 float autocvar_g_balance_seeker_missile_proxy_delay;
 float autocvar_g_balance_seeker_missile_proxy_maxrange;
 float autocvar_g_balance_seeker_missile_radius;
+float autocvar_g_balance_seeker_missile_refire;
 float autocvar_g_balance_seeker_missile_smart;
 float autocvar_g_balance_seeker_missile_smart_mindist;
 float autocvar_g_balance_seeker_missile_smart_trace_max;
@@ -616,6 +620,7 @@ float autocvar_g_balance_seeker_tag_health;
 float autocvar_g_balance_seeker_tag_lifetime;
 float autocvar_g_balance_seeker_tag_refire;
 float autocvar_g_balance_seeker_tag_speed;
+float autocvar_g_balance_seeker_tag_tracker_lifetime;
 float autocvar_g_balance_seeker_reload_ammo;
 float autocvar_g_balance_seeker_reload_time;
 float autocvar_g_balance_selfdamagepercent;
index 22497c99d978eb9ba4cc74511d5d6c96cc793b7b..29fc297d5ef8c92e6dbfe822d6fb4aa37f280102 100644 (file)
@@ -494,7 +494,6 @@ void Obituary (entity attacker, entity inflictor, entity targ, float deathtype)
 entity damage_targ;
 entity damage_inflictor;
 entity damage_attacker;
-.float prevhitsound;
 
 void Damage (entity targ, entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force)
 {
@@ -840,7 +839,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float
        if (vlen(force))
        if (self.classname != "player" || time >= self.spawnshieldtime || g_midair)
        {
-               self.velocity = self.velocity + self.damageforcescale * force;
+               self.velocity = self.velocity + damage_explosion_calcpush(self.damageforcescale * force, self.velocity, autocvar_g_balance_damagepush_speedfactor);
                self.flags &~= FL_ONGROUND;
                UpdateCSQCProjectile(self);
        }
index 4c41852ebba66057b10d7d906c5b199a55994005..c45ad96e298d3a379dbd5b7c6bf4ec0a2253435b 100644 (file)
@@ -1437,7 +1437,6 @@ void DumpStats(float final)
        float to_eventlog;
        float to_file;
        float i;
-       entity e;
 
        to_console = autocvar_sv_logscores_console;
        to_eventlog = autocvar_sv_eventlog;
index b15e6988f4d9c0392673e2246ed68a5fca8d4096..e1d7cb15df518149d7665ef07918f80dd8ade1e9 100644 (file)
@@ -590,6 +590,7 @@ void EffectIndexDump()
        db_put(d, "TR_NEHAHRASMOKE", "1"); print("effect TR_NEHAHRASMOKE is ", ftos(particleeffectnum("TR_NEHAHRASMOKE")), "\n");
        db_put(d, "TR_NEXUIZPLASMA", "1"); print("effect TR_NEXUIZPLASMA is ", ftos(particleeffectnum("TR_NEXUIZPLASMA")), "\n");
        db_put(d, "TR_GLOWTRAIL", "1"); print("effect TR_GLOWTRAIL is ", ftos(particleeffectnum("TR_GLOWTRAIL")), "\n");
+       db_put(d, "TR_SEEKER", "1"); print("effect TR_SEEKER is ", ftos(particleeffectnum("TR_SEEKER")), "\n");
        db_put(d, "SVC_PARTICLE", "1"); print("effect SVC_PARTICLE is ", ftos(particleeffectnum("SVC_PARTICLE")), "\n");
 
        fh = fopen("effectinfo.txt", FILE_READ);
index c76395fdbc27df7bdd26371a491fe1da65064276..d55c803148e6b0d598c392fed11dac8cd4276d61 100644 (file)
@@ -17,6 +17,7 @@ post-builtins.qh
 ../common/constants.qh
 ../common/util.qh
 ../common/items.qh
+../common/explosion_equation.qh
 
 autocvars.qh
 constants.qh
@@ -179,6 +180,8 @@ anticheat.qc
 cheats.qc
 playerstats.qc
 
+../common/explosion_equation.qc
+
 mutators/base.qc
 mutators/gamemode_keyhunt.qc
 mutators/gamemode_freezetag.qc
@@ -193,3 +196,5 @@ mutators/mutator_vampire.qc
 ../warpzonelib/common.qc
 ../warpzonelib/util_server.qc
 ../warpzonelib/server.qc
+
+../common/if-this-file-errors-scroll-up-and-fix-the-warnings.fteqccfail
index 6c7a7dbc3350208546216979e4df167e2a1bf004..8d5fa100c92eec6bdc2f34a793ed917ccd7e5a92 100644 (file)
@@ -375,7 +375,6 @@ void WinningConditionHelper()
        entity winnerscorekeeper;
        entity secondscorekeeper;
        entity sk;
-       float slots;
 
        // format:
        // gametype:P<pure>:S<slots>::plabel,plabel:tlabel,tlabel:teamid:tscore,tscore:teamid:tscore,tscore
index 8efda9b07f279cea118cf0fd330f6455474d4d52..4481178de19b4b3b07a276dae2e6b3f6099058e0 100644 (file)
@@ -94,6 +94,7 @@ void minstagib_ammocheck (void)
                return;
 
        if (self.ammo_cells <= 0)
+       if not(self.items & IT_UNLIMITED_WEAPON_AMMO)
        {
                if (self.health == 5)
                {
@@ -168,10 +169,17 @@ void minstagib_ammocheck (void)
 
 void spawnfunc_weapon_minstanex (void); // defined in t_items.qc
 
-float minstanex_ammo;
 float w_minstanex(float req)
 {
        float ammo_amount;
+       float minstanex_ammo;
+
+       // now multiple WR_s use this
+       if(g_minstagib)
+               minstanex_ammo = 1;
+       else
+               minstanex_ammo = autocvar_g_balance_minstanex_ammo;
+
        if (req == WR_AIM)
        {
                if(self.ammo_cells > 0)
@@ -181,11 +189,6 @@ float w_minstanex(float req)
        }
        else if (req == WR_THINK)
        {
-               if(g_minstagib)
-                       minstanex_ammo = 1;
-               else
-                       minstanex_ammo = autocvar_g_balance_minstanex_ammo;
-
                // if the laser uses load, we also consider its ammo for reloading
                if(autocvar_g_balance_minstanex_reload_ammo && autocvar_g_balance_minstanex_laser_ammo && self.clip_load < min(minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo)) // forced reload
                        weapon_action(self.weapon, WR_RELOAD);
@@ -239,8 +242,8 @@ float w_minstanex(float req)
        }
        else if (req == WR_CHECKAMMO1)
        {
-               ammo_amount = self.ammo_cells >= autocvar_g_balance_minstanex_ammo;
-               ammo_amount += self.weapon_load[WEP_MINSTANEX] >= autocvar_g_balance_minstanex_ammo;
+               ammo_amount = self.ammo_cells >= minstanex_ammo;
+               ammo_amount += self.weapon_load[WEP_MINSTANEX] >= minstanex_ammo;
                return ammo_amount;
        }
        else if (req == WR_CHECKAMMO2)
@@ -259,9 +262,9 @@ float w_minstanex(float req)
        {
                float used_ammo;
                if(autocvar_g_balance_minstanex_laser_ammo)
-                       used_ammo = min(autocvar_g_balance_minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo);
+                       used_ammo = min(minstanex_ammo, autocvar_g_balance_minstanex_laser_ammo);
                else
-                       used_ammo = autocvar_g_balance_minstanex_ammo;
+                       used_ammo = minstanex_ammo;
 
                W_Reload(used_ammo, autocvar_g_balance_minstanex_reload_ammo, autocvar_g_balance_minstanex_reload_time, "weapons/reload.wav");
        }
index 9084cc04da2027affd8b8af43cac58de6d4b984d..e4b14adf7070d22bf73c878470642bb49c3ca1a6 100644 (file)
@@ -4,7 +4,12 @@ REGISTER_WEAPON(SEEKER, w_seeker, IT_ROCKETS, 8, WEP_FLAG_NORMAL | WEP_FLAG_RELO
 #ifdef SVQC
 //.float proxytime; = autoswitch
 //.float tl; = wait
+.entity tag_target, wps_tag_tracker;
+.float tag_time;
 
+// ============================
+// Begin: Missile functions, these are general functions to be manipulated by other code
+// ============================
 void Seeker_Missile_Explode ()
 {
        self.event_damage = SUB_Null;
@@ -154,7 +159,7 @@ void Seeker_Missile_Animate()
 }
 */
 
-void Seeker_Fire_Missile(vector f_diff)
+void Seeker_Fire_Missile(vector f_diff, entity m_target)
 {
        local entity missile;
 
@@ -178,14 +183,18 @@ void Seeker_Fire_Missile(vector f_diff)
        missile.event_damage    = Seeker_Missile_Damage;
        missile.nextthink       = time;// + 0.2;// + cvar("g_balance_seeker_missile_activate_delay");
        missile.cnt             = time + autocvar_g_balance_seeker_missile_lifetime;
-       missile.enemy           = self.enemy;
+       missile.enemy           = m_target;
        missile.solid           = SOLID_BBOX;
        missile.scale           = 2;
        missile.takedamage      = DAMAGE_YES;
        missile.health          = autocvar_g_balance_seeker_missile_health;
        missile.damageforcescale = autocvar_g_balance_seeker_missile_damageforcescale;
-       missile.projectiledeathtype = WEP_SEEKER;
        //missile.think           = Seeker_Missile_Animate; // csqc projectiles.
+       
+       if (missile.enemy != world)
+               missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
+       else 
+               missile.projectiledeathtype = WEP_SEEKER;
 
 
        setorigin (missile, w_shotorg);
@@ -201,7 +210,119 @@ void Seeker_Fire_Missile(vector f_diff)
        other = missile; MUTATOR_CALLHOOK(EditProjectile);
 }
 
-void Seeker_Vollycontroler_Think()
+// ============================
+// Begin: FLAC, close range attack meant for defeating rockets which are coming at you. 
+// ============================
+void Seeker_Flac_Explode ()
+{
+       self.event_damage = SUB_Null;
+
+       RadiusDamage (self, self.owner, autocvar_g_balance_seeker_flac_damage, autocvar_g_balance_seeker_flac_edgedamage, autocvar_g_balance_seeker_flac_radius, world, autocvar_g_balance_seeker_flac_force, self.projectiledeathtype, other);
+
+       remove (self);
+}
+
+void Seeker_Flac_Touch()
+{
+       PROJECTILE_TOUCH;
+
+       Seeker_Flac_Explode();
+}
+
+void Seeker_Fire_Flac()
+{
+       local entity missile;
+       vector f_diff;
+       float c;
+
+       W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_seeker_flac_ammo, autocvar_g_balance_seeker_reload_ammo);
+
+       c = mod(self.bulletcounter, 4);
+       switch(c)
+       {
+               case 0:
+                       f_diff = '-1.25 -3.75 0';
+                       break;
+               case 1:
+                       f_diff = '+1.25 -3.75 0';
+                       break;
+               case 2:
+                       f_diff = '-1.25 +3.75 0';
+                       break;
+               case 3:
+               default:
+                       f_diff = '+1.25 +3.75 0';
+                       break;
+       }
+       W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav", CHAN_WEAPON, autocvar_g_balance_seeker_flac_damage);
+       w_shotorg += f_diff;
+
+       pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
+
+       missile                                 = spawn ();
+       missile.owner                   = missile.realowner = self;
+       missile.classname               = "missile";
+       missile.bot_dodge               = TRUE;
+       missile.bot_dodgerating = autocvar_g_balance_seeker_flac_damage;
+       missile.touch                   = Seeker_Flac_Explode;
+       missile.use                     = Seeker_Flac_Explode; 
+       missile.think                   = adaptor_think2use_hittype_splash;
+       missile.nextthink               = time + autocvar_g_balance_seeker_flac_lifetime + autocvar_g_balance_seeker_flac_lifetime_rand;
+       missile.solid                   = SOLID_BBOX;
+       missile.movetype                = MOVETYPE_FLY; 
+       missile.projectiledeathtype = WEP_SEEKER;
+       missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
+       missile.flags                           = FL_PROJECTILE;
+       
+       // csqc projectiles
+       //missile.angles                                = vectoangles (missile.velocity);       
+       //missile.scale = 0.4; // BUG: the model is too big 
+       
+       setorigin (missile, w_shotorg);
+       setsize (missile, '-2 -2 -2', '2 2 2');
+               
+       W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_flac);
+       CSQCProjectile(missile, TRUE, PROJECTILE_FLAC, TRUE);
+
+       other = missile; MUTATOR_CALLHOOK(EditProjectile);
+}
+
+// ============================
+// Begin: Tag and rocket controllers 
+// ============================
+entity Seeker_Tagged_Info(entity isowner, entity istarget)
+{
+       entity tag;
+       for(tag = world; (tag = find(tag, classname, "tag_tracker")); ) 
+               if ((tag.owner == isowner) && (tag.tag_target == istarget))
+                       return tag;
+               
+       return world;
+}
+
+void Seeker_Attack()
+{
+       entity tracker, closest_target;
+       
+       for(tracker = world; (tracker = find(tracker, classname, "tag_tracker")); ) if (tracker.owner == self)
+       {
+               if (closest_target)
+               {
+                       if (vlen(self.origin - tracker.tag_target.origin) < vlen(self.origin - closest_target.origin))
+                               closest_target = tracker.tag_target;
+               }
+               else 
+                       closest_target = tracker.tag_target;
+       }
+               
+       traceline(self.origin + self.view_ofs, closest_target.origin, MOVE_NOMONSTERS, self);
+       if ((!closest_target) || ((trace_fraction < 1) && (trace_ent != closest_target)))
+               closest_target = world;
+       
+       Seeker_Fire_Missile('0 0 0', closest_target);
+}
+
+void Seeker_Vollycontroller_Think() // TODO: Merge this with Seeker_Attack
 {
        float c;
        entity oldself,oldenemy;
@@ -214,28 +335,28 @@ void Seeker_Vollycontroler_Think()
        }
 
        self.nextthink = time + autocvar_g_balance_seeker_missile_delay;
-
+       
        oldself = self;
        self = self.owner;
-
+       
        oldenemy = self.enemy;
        self.enemy = oldself.enemy;
-
-       c = mod(oldself.cnt, 4);
+       
+       c = mod(self.cnt, 4);
        switch(c)
        {
                case 0:
-                       Seeker_Fire_Missile('-1.25 -3.75 0');
+                       Seeker_Fire_Missile('-1.25 -3.75 0', self.enemy);
                        break;
                case 1:
-                       Seeker_Fire_Missile('+1.25 -3.75 0');
+                       Seeker_Fire_Missile('+1.25 -3.75 0', self.enemy);
                        break;
                case 2:
-                       Seeker_Fire_Missile('-1.25 +3.75 0');
+                       Seeker_Fire_Missile('-1.25 +3.75 0', self.enemy);
                        break;
                case 3:
                default:
-                       Seeker_Fire_Missile('+1.25 +3.75 0');
+                       Seeker_Fire_Missile('+1.25 +3.75 0', self.enemy);
                        break;
        }
 
@@ -243,6 +364,27 @@ void Seeker_Vollycontroler_Think()
        self = oldself;
 }
 
+void Seeker_Tracker_Think() 
+{
+       // commit suicide if: You die OR target dies OR you switch away from the seeker OR commit suicide if lifetime is up
+       if ((self.owner.deadflag != DEAD_NO) || (self.tag_target.deadflag != DEAD_NO) || (self.owner.switchweapon != WEP_SEEKER)
+       || (time > self.tag_time + autocvar_g_balance_seeker_tag_tracker_lifetime))
+       {
+               if (self)
+               {
+                       WaypointSprite_Kill(self.tag_target.wps_tag_tracker);
+                       remove(self);
+               }
+               return;
+       }
+       
+       // Update the think method information
+       self.nextthink = time;
+}
+
+// ============================
+// Begin: Tag projectile 
+// ============================
 void Seeker_Tag_Explode ()
 {
        //if(other==self.owner)
@@ -261,7 +403,6 @@ void Seeker_Tag_Damage (entity inflictor, entity attacker, float damage, float d
                Seeker_Tag_Explode();
 }
 
-
 void Seeker_Tag_Touch()
 {
        vector dir;
@@ -277,13 +418,45 @@ void Seeker_Tag_Touch()
        Damage_DamageInfo(self.origin, 0, 0, 0, self.velocity, WEP_SEEKER | HITTYPE_HEADSHOT, self);
 
        if (other.takedamage == DAMAGE_AIM && other.deadflag == DEAD_NO)
-       {               
-               e           = spawn();
-               e.cnt       = autocvar_g_balance_seeker_missile_count;
-               e.owner     = self.owner;
-               e.enemy     = other;
-               e.think     = Seeker_Vollycontroler_Think;
-               e.nextthink = time;
+       {
+               // check to see if this person is already tagged by me
+               entity tag = Seeker_Tagged_Info(self.owner, other);
+               
+               if (tag != world)
+               {
+                       if (other.wps_tag_tracker && (autocvar_g_balance_seeker_type == 1)) // don't attach another waypointsprite without killing the old one first
+                               WaypointSprite_Kill(other.wps_tag_tracker);
+                               
+                       tag.tag_time = time;
+               }
+               else
+               {               
+                       //sprint(self.owner, strcat("You just tagged ^2", other.netname, "^7 with a tracking device!\n"));
+                       e             = spawn();
+                       e.cnt         = autocvar_g_balance_seeker_missile_count;
+                       e.classname   = "tag_tracker";
+                       e.owner       = self.owner;
+                       
+                       if      (autocvar_g_balance_seeker_type == 1)
+                       {
+                               e.tag_target  = other;
+                               e.tag_time    = time;
+                               e.think       = Seeker_Tracker_Think;
+                       }
+                       else 
+                       {
+                               e.enemy     = other;
+                               e.think     = Seeker_Vollycontroller_Think;
+                       }
+                       
+                       e.nextthink   = time;
+               }
+               
+               if      (autocvar_g_balance_seeker_type == 1)
+               {
+                       WaypointSprite_Spawn("tagged-target", autocvar_g_balance_seeker_tag_tracker_lifetime, 0, other, '0 0 64', self.owner, 0, other, wps_tag_tracker, TRUE);
+                       WaypointSprite_UpdateRule(other.wps_tag_tracker, 0, SPRITERULE_DEFAULT);
+               }
        }
 
        remove(self);
@@ -328,81 +501,9 @@ void Seeker_Fire_Tag()
        other = missile; MUTATOR_CALLHOOK(EditProjectile);
 }
 
-
-void Seeker_Flac_Explode ()
-{
-       self.event_damage = SUB_Null;
-
-       RadiusDamage (self, self.owner, autocvar_g_balance_seeker_flac_damage, autocvar_g_balance_seeker_flac_edgedamage, autocvar_g_balance_seeker_flac_radius, world, autocvar_g_balance_seeker_flac_force, self.projectiledeathtype, other);
-
-       remove (self);
-}
-
-void Seeker_Flac_Touch()
-{
-       PROJECTILE_TOUCH;
-
-       Seeker_Flac_Explode();
-}
-
-void Seeker_Fire_Flac()
-{
-       local entity missile;
-       vector f_diff;
-       float c;
-
-       W_DecreaseAmmo(ammo_rockets, autocvar_g_balance_seeker_flac_ammo, autocvar_g_balance_seeker_reload_ammo);
-
-       c = mod(self.bulletcounter, 4);
-       switch(c)
-       {
-               case 0:
-                       f_diff = '-1.25 -3.75 0';
-                       break;
-               case 1:
-                       f_diff = '+1.25 -3.75 0';
-                       break;
-               case 2:
-                       f_diff = '-1.25 +3.75 0';
-                       break;
-               case 3:
-               default:
-                       f_diff = '+1.25 +3.75 0';
-                       break;
-       }
-       W_SetupShot_ProjectileSize (self, '-2 -2 -2', '2 2 2', FALSE, 2, "weapons/flac_fire.wav", CHAN_WEAPON, autocvar_g_balance_seeker_flac_damage);
-       w_shotorg += f_diff;
-
-       pointparticles(particleeffectnum("hagar_muzzleflash"), w_shotorg, w_shotdir * 1000, 1);
-
-       missile                                 = spawn ();
-       missile.owner                   = missile.realowner = self;
-       missile.classname               = "missile";
-       missile.bot_dodge               = TRUE;
-       missile.bot_dodgerating = autocvar_g_balance_seeker_flac_damage;
-       missile.touch                   = Seeker_Flac_Explode;
-       missile.use                     = Seeker_Flac_Explode; 
-       missile.think                   = adaptor_think2use_hittype_splash;
-       missile.nextthink               = time + autocvar_g_balance_seeker_flac_lifetime + autocvar_g_balance_seeker_flac_lifetime_rand;
-       missile.solid                   = SOLID_BBOX;
-       missile.movetype                = MOVETYPE_FLY; 
-       missile.projectiledeathtype = WEP_SEEKER;
-       missile.projectiledeathtype = WEP_SEEKER | HITTYPE_SECONDARY;
-       missile.flags                           = FL_PROJECTILE;
-       
-       // csqc projectiles
-       //missile.angles                                = vectoangles (missile.velocity);       
-       //missile.scale = 0.4; // BUG: the model is too big 
-       
-       setorigin (missile, w_shotorg);
-       setsize (missile, '-2 -2 -2', '2 2 2');
-               
-       W_SETUPPROJECTILEVELOCITY_UP(missile, g_balance_seeker_flac);
-       CSQCProjectile(missile, TRUE, PROJECTILE_FLAC, TRUE);
-
-       other = missile; MUTATOR_CALLHOOK(EditProjectile);
-}
-
+// ============================
+// Begin: Genereal weapon functions
+// ============================
 void spawnfunc_weapon_seeker (void)
 {
        weapon_defaultspawnfunc(WEP_SEEKER);
@@ -413,28 +514,57 @@ float w_seeker(float req)
        float ammo_amount;
 
        if (req == WR_AIM)
-               self.BUTTON_ATCK = bot_aim(autocvar_g_balance_seeker_tag_speed, 0, 20, FALSE);
-
+       {
+               if (autocvar_g_balance_seeker_type == 1) 
+                       if (Seeker_Tagged_Info(self, self.enemy) != world)
+                               self.BUTTON_ATCK = bot_aim(autocvar_g_balance_seeker_missile_speed_max, 0, autocvar_g_balance_seeker_missile_lifetime, FALSE);
+                       else
+                               self.BUTTON_ATCK2 = bot_aim(autocvar_g_balance_seeker_tag_speed, 0, autocvar_g_balance_seeker_tag_lifetime, FALSE);
+               else
+                       self.BUTTON_ATCK = bot_aim(autocvar_g_balance_seeker_tag_speed, 0, autocvar_g_balance_seeker_tag_lifetime, FALSE);
+       }
        else if (req == WR_THINK)
        {
                if(autocvar_g_balance_seeker_reload_ammo && self.clip_load < min(autocvar_g_balance_seeker_missile_ammo, autocvar_g_balance_seeker_tag_ammo)) // forced reload
                        weapon_action(self.weapon, WR_RELOAD);
-
+                       
                else if (self.BUTTON_ATCK)
                {
-                       if (weapon_prepareattack(0, autocvar_g_balance_seeker_tag_refire))
+                       if (autocvar_g_balance_seeker_type == 1) 
                        {
-                               Seeker_Fire_Tag();
-                               weapon_thinkf(WFRAME_FIRE1, autocvar_g_balance_seeker_tag_animtime, w_ready);
+                               if (weapon_prepareattack(0, autocvar_g_balance_seeker_missile_refire))
+                               {
+                                       Seeker_Attack();
+                                       weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_missile_animtime, w_ready);
+                               }
+                       }
+                       else 
+                       {
+                               if (weapon_prepareattack(0, autocvar_g_balance_seeker_tag_refire))
+                               {
+                                       Seeker_Fire_Tag();
+                                       weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_tag_animtime, w_ready);
+                               }
                        }
                }
 
                else if (self.BUTTON_ATCK2)
                {
-                       if (weapon_prepareattack(1, autocvar_g_balance_seeker_flac_refire))
+                       if (autocvar_g_balance_seeker_type == 1) 
+                       {
+                               if (weapon_prepareattack(0, autocvar_g_balance_seeker_tag_refire))
+                               {
+                                       Seeker_Fire_Tag();
+                                       weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_tag_animtime, w_ready);
+                               }
+                       }
+                       else 
                        {
-                               Seeker_Fire_Flac();
-                               weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_flac_animtime, w_ready);
+                               if (weapon_prepareattack(0, autocvar_g_balance_seeker_flac_refire))
+                               {
+                                       Seeker_Fire_Flac();
+                                       weapon_thinkf(WFRAME_FIRE2, autocvar_g_balance_seeker_flac_animtime, w_ready);
+                               }
                        }
                }
        }
@@ -455,14 +585,14 @@ float w_seeker(float req)
        }
        else if (req == WR_CHECKAMMO1)
        {
-               ammo_amount = self.ammo_cells >= autocvar_g_balance_seeker_missile_ammo;
+               ammo_amount = self.ammo_rockets >= autocvar_g_balance_seeker_missile_ammo;
                ammo_amount += self.weapon_load[WEP_SEEKER] >= autocvar_g_balance_seeker_missile_ammo;
                return ammo_amount;
        }
        else if (req == WR_CHECKAMMO2)
        {
-               ammo_amount = self.ammo_cells >= autocvar_g_balance_seeker_flac_ammo;
-               ammo_amount += self.weapon_load[WEP_SEEKER] >= autocvar_g_balance_seeker_flac_ammo;
+               ammo_amount = self.ammo_rockets >= autocvar_g_balance_seeker_tag_ammo;
+               ammo_amount += self.weapon_load[WEP_SEEKER] >= autocvar_g_balance_seeker_tag_ammo;
                return ammo_amount;
        }
        else if (req == WR_RELOAD)
@@ -479,59 +609,40 @@ float w_seeker(float req)
        {
                vector org2;
                org2 = w_org + w_backoff * 6;
-               if(w_deathtype & HITTYPE_SECONDARY)
+               if(w_deathtype & HITTYPE_BOUNCE)
                {
-                       pointparticles(particleeffectnum("flac_explode"), org2, '0 0 0', 1);
+                       pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
                        if(!w_issilent)
                        {
                                if (w_random<0.15)
-                                       sound(self, CHAN_PROJECTILE, "weapons/flacexp1.wav", 1, ATTN_NORM);
+                                       sound(self, CHAN_PROJECTILE, "weapons/tagexp1.wav", 1, ATTN_NORM);
                                else if (w_random<0.7)
-                                       sound(self, CHAN_PROJECTILE, "weapons/flacexp2.wav", 1, ATTN_NORM);
+                                       sound(self, CHAN_PROJECTILE, "weapons/tagexp2.wav", 1, ATTN_NORM);
                                else
-                                       sound(self, CHAN_PROJECTILE, "weapons/flacexp3.wav", 1, ATTN_NORM);
+                                       sound(self, CHAN_PROJECTILE, "weapons/tagexp3.wav", 1, ATTN_NORM);
                        }
                }
+               else if(w_deathtype & HITTYPE_HEADSHOT)
+               {
+                       if(!w_issilent)
+                               sound(self, CHAN_PROJECTILE, "weapons/tag_impact.wav", 1, ATTN_NORM);
+               }
                else
                {
-                       if(w_deathtype & HITTYPE_BOUNCE)
-                       {
-                               pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
-                               if(!w_issilent)
-                               {
-                                       if (w_random<0.15)
-                                               sound(self, CHAN_PROJECTILE, "weapons/tagexp1.wav", 1, ATTN_NORM);
-                                       else if (w_random<0.7)
-                                               sound(self, CHAN_PROJECTILE, "weapons/tagexp2.wav", 1, ATTN_NORM);
-                                       else
-                                               sound(self, CHAN_PROJECTILE, "weapons/tagexp3.wav", 1, ATTN_NORM);
-                               }
-                       }
-                       else if(w_deathtype & HITTYPE_HEADSHOT)
-                       {
-                               if(!w_issilent)
-                                       sound(self, CHAN_PROJECTILE, "weapons/tag_impact.wav", 1, ATTN_NORM);
-                       }
-                       else
+                       pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
+                       if(!w_issilent)
                        {
-                               pointparticles(particleeffectnum("hagar_explode"), org2, '0 0 0', 1);
-                               if(!w_issilent)
-                               {
-                                       if (w_random<0.15)
-                                               sound(self, CHAN_PROJECTILE, "weapons/seekerexp1.wav", 1, ATTN_NORM);
-                                       else if (w_random<0.7)
-                                               sound(self, CHAN_PROJECTILE, "weapons/seekerexp2.wav", 1, ATTN_NORM);
-                                       else
-                                               sound(self, CHAN_PROJECTILE, "weapons/seekerexp3.wav", 1, ATTN_NORM);
-                               }
+                               if (w_random<0.15)
+                                       sound(self, CHAN_PROJECTILE, "weapons/seekerexp1.wav", 1, ATTN_NORM);
+                               else if (w_random<0.7)
+                                       sound(self, CHAN_PROJECTILE, "weapons/seekerexp2.wav", 1, ATTN_NORM);
+                               else
+                                       sound(self, CHAN_PROJECTILE, "weapons/seekerexp3.wav", 1, ATTN_NORM);
                        }
                }
        }
        else if(req == WR_PRECACHE)
        {
-               precache_sound("weapons/flacexp1.wav");
-               precache_sound("weapons/flacexp2.wav");
-               precache_sound("weapons/flacexp3.wav");
                precache_sound("weapons/seekerexp1.wav");
                precache_sound("weapons/seekerexp2.wav");
                precache_sound("weapons/seekerexp3.wav");
@@ -545,9 +656,9 @@ float w_seeker(float req)
        else if (req == WR_KILLMESSAGE)
        {
                if(w_deathtype & HITTYPE_SECONDARY)
-                       w_deathtypestring = _("%s ran into %s's flac");
-               else
                        w_deathtypestring = _("%s was tagged by %s");
+               else
+                       w_deathtypestring = _("%s was pummeled by %s");
        }
        return TRUE;
 }