From 83092092e78b3736b5eb2de4a9fc907d6695f927 Mon Sep 17 00:00:00 2001 From: lordhavoc Date: Sun, 27 Sep 2009 04:26:55 +0000 Subject: [PATCH] major changes to havoc mode (including: electro combo is triggered by a radius check instead of damage in havoc mode, mortar altfire is an airburst, many other changes) added cvars for controlling electro combo radius (0 in non-havoc modes, since they use damage as triggers) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@7934 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/balance.cfg | 4 +- data/balance25.cfg | 4 +- data/balanceHavoc.cfg | 172 +++++++++++++++++---------------- data/balanceSamual.cfg | 4 +- data/default.cfg | 2 +- data/qcsrc/server/constants.qh | 2 +- data/qcsrc/server/w_electro.qc | 35 ++++++- 7 files changed, 132 insertions(+), 91 deletions(-) diff --git a/data/balance.cfg b/data/balance.cfg index 9824f60bf..941d1f57e 100644 --- a/data/balance.cfg +++ b/data/balance.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 59ee376a58dfcc2e2ee440c6a9508e11 +set cvar_check_balance 80b343d239a1d214d86d1ffcefef0bef // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -293,6 +293,7 @@ set g_balance_electro_primary_damage 60 set g_balance_electro_primary_edgedamage 0 set g_balance_electro_primary_force 200 set g_balance_electro_primary_radius 150 +set g_balance_electro_primary_comboradius 0 set g_balance_electro_primary_speed 2000 set g_balance_electro_primary_lifetime 30 set g_balance_electro_primary_refire 0.8 @@ -316,6 +317,7 @@ set g_balance_electro_combo_damage 80 set g_balance_electro_combo_edgedamage 0 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_speed 2000 // }}} // {{{ crylink diff --git a/data/balance25.cfg b/data/balance25.cfg index d1f975ba4..bc56ead81 100644 --- a/data/balance25.cfg +++ b/data/balance25.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 59ee376a58dfcc2e2ee440c6a9508e11 +set cvar_check_balance 80b343d239a1d214d86d1ffcefef0bef // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -293,6 +293,7 @@ set g_balance_electro_primary_damage 65 set g_balance_electro_primary_edgedamage 0 set g_balance_electro_primary_force 200 set g_balance_electro_primary_radius 150 +set g_balance_electro_primary_comboradius 0 set g_balance_electro_primary_speed 2000 set g_balance_electro_primary_lifetime 30 set g_balance_electro_primary_refire 0.6 @@ -316,6 +317,7 @@ set g_balance_electro_combo_damage 80 set g_balance_electro_combo_edgedamage 0 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_speed 2000 // }}} // {{{ crylink diff --git a/data/balanceHavoc.cfg b/data/balanceHavoc.cfg index b5067e05f..6ad7a7ae3 100644 --- a/data/balanceHavoc.cfg +++ b/data/balanceHavoc.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 59ee376a58dfcc2e2ee440c6a9508e11 +set cvar_check_balance 80b343d239a1d214d86d1ffcefef0bef // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -19,13 +19,13 @@ set g_weaponreplace_crylink "" set g_weaponreplace_nex "" set g_weaponreplace_hagar "" set g_weaponreplace_rocketlauncher "" -set g_weaponreplace_porto "" +set g_weaponreplace_porto "crylink" set g_weaponreplace_minstanex "" -set g_weaponreplace_hook "" -set g_weaponreplace_hlac "" -set g_weaponreplace_campingrifle "" +set g_weaponreplace_hook "electro" +set g_weaponreplace_hlac "crylink" +set g_weaponreplace_campingrifle "electro" set g_weaponreplace_tuba "" -set g_weaponreplace_fireball "" +set g_weaponreplace_fireball "rocketlauncher" // }}} // {{{ starting gear @@ -93,21 +93,21 @@ set g_pickup_fuel 25 set g_pickup_fuel_jetpack 50 set g_pickup_fuel_max 999 set g_pickup_armorsmall 10 -set g_pickup_armorsmall_max 200 +set g_pickup_armorsmall_max 125 set g_pickup_armormedium 25 -set g_pickup_armormedium_max 200 +set g_pickup_armormedium_max 125 set g_pickup_armorbig 50 -set g_pickup_armorbig_max 200 +set g_pickup_armorbig_max 125 set g_pickup_armorlarge 100 -set g_pickup_armorlarge_max 200 +set g_pickup_armorlarge_max 125 set g_pickup_healthsmall 10 -set g_pickup_healthsmall_max 200 +set g_pickup_healthsmall_max 125 set g_pickup_healthmedium 25 -set g_pickup_healthmedium_max 200 +set g_pickup_healthmedium_max 125 set g_pickup_healthlarge 50 -set g_pickup_healthlarge_max 200 +set g_pickup_healthlarge_max 125 set g_pickup_healthmega 100 -set g_pickup_healthmega_max 200 +set g_pickup_healthmega_max 125 set g_pickup_respawntime_short 15 set g_pickup_respawntime_medium 20 set g_pickup_respawntime_long 30 @@ -128,7 +128,7 @@ 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 -set g_balance_health_rotlinear 3 +set g_balance_health_rotlinear 0 set g_balance_pause_health_rot 1 set g_balance_pause_health_rot_spawn 1 set g_balance_health_regenstable 100 @@ -137,7 +137,7 @@ set g_balance_health_limit 999 set g_balance_armor_regen 0 set g_balance_armor_regenlinear 0 set g_balance_armor_rot 0 -set g_balance_armor_rotlinear 3 +set g_balance_armor_rotlinear 0 set g_balance_pause_armor_rot 1 set g_balance_pause_armor_rot_spawn 1 set g_balance_armor_regenstable 100 @@ -158,7 +158,7 @@ set g_balance_fuel_limit 999 // {{{ misc set g_balance_selfdamagepercent 0.6 -set g_balance_weaponswitchdelay 0 +set g_balance_weaponswitchdelay 0.05 set g_balance_firetransfer_time 0.9 set g_balance_firetransfer_damage 0.8 set g_throughfloor_damage 0 @@ -231,17 +231,17 @@ set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle -90 // }}} // {{{ shotgun -set g_balance_shotgun_primary_bullets 18 -set g_balance_shotgun_primary_damage 6 +set g_balance_shotgun_primary_bullets 15 +set g_balance_shotgun_primary_damage 5 set g_balance_shotgun_primary_force 0 set g_balance_shotgun_primary_spread 0.09 set g_balance_shotgun_primary_refire 1 -set g_balance_shotgun_primary_animtime 0.2 +set g_balance_shotgun_primary_animtime 0.5 set g_balance_shotgun_primary_ammo 3 set g_balance_shotgun_primary_speed 12000 set g_balance_shotgun_primary_bulletconstant 75 // 3.8qu -set g_balance_shotgun_secondary_bullets 6 -set g_balance_shotgun_secondary_damage 6 +set g_balance_shotgun_secondary_bullets 5 +set g_balance_shotgun_secondary_damage 5 set g_balance_shotgun_secondary_force 0 set g_balance_shotgun_secondary_spread 0.09 set g_balance_shotgun_secondary_refire 1 @@ -251,64 +251,65 @@ set g_balance_shotgun_secondary_speed 12000 set g_balance_shotgun_secondary_bulletconstant 75 // 3.8qu // }}} // {{{ uzi -set g_balance_uzi_first_damage 35 -set g_balance_uzi_first_force 50 +set g_balance_uzi_first_damage 25 +set g_balance_uzi_first_force 0 set g_balance_uzi_first_spread 0.015 set g_balance_uzi_first_refire 0.2 set g_balance_uzi_first_ammo 1 -set g_balance_uzi_sustained_damage 8 -set g_balance_uzi_sustained_force 27 -set g_balance_uzi_sustained_spread 0.05 +set g_balance_uzi_sustained_damage 7 +set g_balance_uzi_sustained_force 0 +set g_balance_uzi_sustained_spread 0.07 set g_balance_uzi_sustained_refire 0.05 set g_balance_uzi_sustained_ammo 1 set g_balance_uzi_speed 18000 set g_balance_uzi_bulletconstant 115 // 13.1qu // }}} // {{{ mortar -set g_balance_grenadelauncher_primary_damage 50 -set g_balance_grenadelauncher_primary_edgedamage 30 +set g_balance_grenadelauncher_primary_damage 40 +set g_balance_grenadelauncher_primary_edgedamage 20 set g_balance_grenadelauncher_primary_force 400 set g_balance_grenadelauncher_primary_radius 140 set g_balance_grenadelauncher_primary_speed 2000 set g_balance_grenadelauncher_primary_speed_up 200 set g_balance_grenadelauncher_primary_lifetime 30 -set g_balance_grenadelauncher_primary_refire 0.5 -set g_balance_grenadelauncher_primary_animtime 0.3 -set g_balance_grenadelauncher_primary_ammo 2 -set g_balance_grenadelauncher_secondary_damage 50 +set g_balance_grenadelauncher_primary_refire 0.8 +set g_balance_grenadelauncher_primary_animtime 0.5 +set g_balance_grenadelauncher_primary_ammo 1 +set g_balance_grenadelauncher_secondary_damage 70 set g_balance_grenadelauncher_secondary_edgedamage 30 set g_balance_grenadelauncher_secondary_force 400 set g_balance_grenadelauncher_secondary_radius 140 set g_balance_grenadelauncher_secondary_speed 1400 set g_balance_grenadelauncher_secondary_speed_up 200 -set g_balance_grenadelauncher_secondary_lifetime 2.5 -set g_balance_grenadelauncher_secondary_refire 0.5 -set g_balance_grenadelauncher_secondary_animtime 0.3 -set g_balance_grenadelauncher_secondary_ammo 2 +set g_balance_grenadelauncher_secondary_lifetime 0.3 +set g_balance_grenadelauncher_secondary_refire 1 +set g_balance_grenadelauncher_secondary_animtime 0.5 +set g_balance_grenadelauncher_secondary_ammo 3 set g_balance_grenadelauncher_secondary_health 10 set g_balance_grenadelauncher_secondary_damageforcescale 4 // }}} // {{{ electro -set g_balance_electro_primary_damage 90 -set g_balance_electro_primary_edgedamage 0 +set g_balance_electro_primary_damage 70 +set g_balance_electro_primary_edgedamage 5 set g_balance_electro_primary_force 200 -set g_balance_electro_primary_radius 200 +set g_balance_electro_primary_radius 90 +set g_balance_electro_primary_comboradius 300 set g_balance_electro_primary_speed 2000 set g_balance_electro_primary_lifetime 30 -set g_balance_electro_primary_refire 0.8 +set g_balance_electro_primary_refire 1 set g_balance_electro_primary_animtime 0.3 -set g_balance_electro_primary_ammo 4 -set g_balance_electro_secondary_damage 50 +set g_balance_electro_primary_ammo 3 +set g_balance_electro_secondary_damage 30 set g_balance_electro_secondary_spread 0.05 set g_balance_electro_secondary_edgedamage 0 set g_balance_electro_secondary_force 200 -set g_balance_electro_secondary_radius 150 +set g_balance_electro_secondary_radius 90 set g_balance_electro_secondary_speed 900 set g_balance_electro_secondary_speed_up 200 -set g_balance_electro_secondary_lifetime 5 +set g_balance_electro_secondary_lifetime 1 set g_balance_electro_secondary_refire 0.3 set g_balance_electro_secondary_animtime 0.3 -set g_balance_electro_secondary_ammo 2 +set g_balance_electro_secondary_ammo 1 set g_balance_electro_secondary_health 5 set g_balance_electro_secondary_damageforcescale 4 set g_balance_electro_secondary_count 1 @@ -316,10 +317,11 @@ set g_balance_electro_combo_damage 80 set g_balance_electro_combo_edgedamage 0 set g_balance_electro_combo_force 200 set g_balance_electro_combo_radius 250 +set g_balance_electro_combo_comboradius 300 set g_balance_electro_combo_speed 2000 // }}} // {{{ crylink -set g_balance_crylink_primary_damage 20 +set g_balance_crylink_primary_damage 25 set g_balance_crylink_primary_edgedamage 0 set g_balance_crylink_primary_force 0 set g_balance_crylink_primary_radius 80 @@ -329,7 +331,7 @@ set g_balance_crylink_primary_shots 4 set g_balance_crylink_primary_bounces 1 set g_balance_crylink_primary_refire 0.8 set g_balance_crylink_primary_animtime 0.3 -set g_balance_crylink_primary_ammo 2 +set g_balance_crylink_primary_ammo 4 set g_balance_crylink_primary_bouncedamagefactor 0.5 set g_balance_crylink_primary_middle_lifetime 5 // range: 35000 full, fades to 70000 @@ -339,7 +341,7 @@ set g_balance_crylink_primary_star_fadetime 0.25 set g_balance_crylink_primary_other_lifetime 0.1 // range: 700 full, fades to 2450 set g_balance_crylink_primary_other_fadetime 0.25 -set g_balance_crylink_secondary_damage 20 +set g_balance_crylink_secondary_damage 25 set g_balance_crylink_secondary_edgedamage 0 set g_balance_crylink_secondary_force 0 set g_balance_crylink_secondary_radius 80 @@ -347,18 +349,18 @@ set g_balance_crylink_secondary_speed 7000 set g_balance_crylink_secondary_spread 0.08 set g_balance_crylink_secondary_shots 5 set g_balance_crylink_secondary_bounces 1 -set g_balance_crylink_secondary_refire 0.8 +set g_balance_crylink_secondary_refire 1 set g_balance_crylink_secondary_animtime 0.3 set g_balance_crylink_secondary_ammo 5 set g_balance_crylink_secondary_bouncedamagefactor 0.5 set g_balance_crylink_secondary_middle_lifetime 5 // range: 35000 full, fades to 70000 set g_balance_crylink_secondary_middle_fadetime 5 -set g_balance_crylink_secondary_line_lifetime 2 // range: 35000 full, fades to 70000 -set g_balance_crylink_secondary_line_fadetime 2 +set g_balance_crylink_secondary_line_lifetime 0.1 // range: 35000 full, fades to 70000 +set g_balance_crylink_secondary_line_fadetime 0.25 // }}} // {{{ nex -set g_balance_nex_damage 80 +set g_balance_nex_damage 60 set g_balance_nex_force 0 set g_balance_nex_refire 0.7 set g_balance_nex_animtime 0.3 @@ -374,42 +376,42 @@ set g_balance_minstanex_animtime 0.3 set g_balance_minstanex_ammo 10 // }}} // {{{ hagar -set g_balance_hagar_primary_damage 40 +set g_balance_hagar_primary_damage 30 set g_balance_hagar_primary_edgedamage 0 set g_balance_hagar_primary_force 50 set g_balance_hagar_primary_radius 90 set g_balance_hagar_primary_spread 0.1 set g_balance_hagar_primary_speed 2000 set g_balance_hagar_primary_lifetime 30 -set g_balance_hagar_primary_refire 0.15 +set g_balance_hagar_primary_refire 0.1 set g_balance_hagar_primary_ammo 1 -set g_balance_hagar_secondary_damage 40 +set g_balance_hagar_secondary_damage 30 set g_balance_hagar_secondary_edgedamage 0 set g_balance_hagar_secondary_force 50 set g_balance_hagar_secondary_radius 90 set g_balance_hagar_secondary_spread 0.1 set g_balance_hagar_secondary_speed 2000 set g_balance_hagar_secondary_lifetime 30 -set g_balance_hagar_secondary_refire 0.15 +set g_balance_hagar_secondary_refire 0.1 set g_balance_hagar_secondary_ammo 1 // }}} // {{{ rocketlauncher -set g_balance_rocketlauncher_damage 100 +set g_balance_rocketlauncher_damage 80 set g_balance_rocketlauncher_edgedamage 0 set g_balance_rocketlauncher_force 400 -set g_balance_rocketlauncher_radius 110 +set g_balance_rocketlauncher_radius 100 set g_balance_rocketlauncher_speed 2200 set g_balance_rocketlauncher_speedaccel 0 set g_balance_rocketlauncher_speedstart 2200 set g_balance_rocketlauncher_lifetime 30 -set g_balance_rocketlauncher_refire 1 +set g_balance_rocketlauncher_refire 0.7 set g_balance_rocketlauncher_animtime 0.3 set g_balance_rocketlauncher_ammo 3 set g_balance_rocketlauncher_health 40 set g_balance_rocketlauncher_damageforcescale 0 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 360 // max degrees per second -set g_balance_rocketlauncher_guideratedelay 0.25 // takes a while to full guide rate +set g_balance_rocketlauncher_guideratedelay 0.05 // rapidly reaches full guide rate set g_balance_rocketlauncher_guidegoal 512 // goal distance for (non-laser) guiding (higher = less control, lower = erratic) set g_balance_rocketlauncher_guidedelay 0.15 // delay before guiding kicks in set g_balance_rocketlauncher_guidestop 0 // stop guiding when firing again @@ -447,33 +449,33 @@ 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 -set g_balance_hlac_primary_spread_min 0.01 +set g_balance_hlac_primary_spread_min 0.0 set g_balance_hlac_primary_spread_max 0.03 -set g_balance_hlac_primary_spread_add 0.002 +set g_balance_hlac_primary_spread_add 0.03 set g_balance_hlac_primary_spread_crouchmod 0.5 -set g_balance_hlac_primary_damage 24 -set g_balance_hlac_primary_edgedamage 0 -set g_balance_hlac_primary_force 50 +set g_balance_hlac_primary_damage 33 +set g_balance_hlac_primary_edgedamage 10 +set g_balance_hlac_primary_force 250 set g_balance_hlac_primary_radius 70 set g_balance_hlac_primary_speed 20000 set g_balance_hlac_primary_lifetime 5 -set g_balance_hlac_primary_refire 0.15 -set g_balance_hlac_primary_animtime 0.05 -set g_balance_hlac_primary_ammo 1 +set g_balance_hlac_primary_refire 0.3 +set g_balance_hlac_primary_animtime 0.3 +set g_balance_hlac_primary_ammo 2 -set g_balance_hlac_secondary_spread 0.06 -set g_balance_hlac_secondary_spread_crouchmod 0.5 +set g_balance_hlac_secondary_spread 0.1 +set g_balance_hlac_secondary_spread_crouchmod 1 -set g_balance_hlac_secondary_damage 15 +set g_balance_hlac_secondary_damage 33 set g_balance_hlac_secondary_edgedamage 10 -set g_balance_hlac_secondary_force 100 +set g_balance_hlac_secondary_force 250 set g_balance_hlac_secondary_radius 70 set g_balance_hlac_secondary_speed 20000 set g_balance_hlac_secondary_lifetime 5 -set g_balance_hlac_secondary_refire 1 +set g_balance_hlac_secondary_refire 1.5 set g_balance_hlac_secondary_animtime 0.3 set g_balance_hlac_secondary_ammo 10 set g_balance_hlac_secondary_shots 5 @@ -491,7 +493,7 @@ set g_balance_campingrifle_primary_speed 35000 set g_balance_campingrifle_primary_lifetime 5 set g_balance_campingrifle_primary_refire 0.7 set g_balance_campingrifle_primary_animtime 0.3 -set g_balance_campingrifle_primary_ammo 15 +set g_balance_campingrifle_primary_ammo 10 set g_balance_campingrifle_primary_bulletconstant 130 // 56.3qu set g_balance_campingrifle_primary_burstcost 0.35 // require same cooldown as secondary, note it's smaller than primary refire time set g_balance_campingrifle_secondary_damage 15 @@ -502,7 +504,7 @@ set g_balance_campingrifle_secondary_speed 20000 set g_balance_campingrifle_secondary_lifetime 5 set g_balance_campingrifle_secondary_refire 0.1 set g_balance_campingrifle_secondary_animtime 0.1 -set g_balance_campingrifle_secondary_ammo 5 +set g_balance_campingrifle_secondary_ammo 4 set g_balance_campingrifle_secondary_bulletconstant 130 // 18.3qu set g_balance_campingrifle_secondary_burstcost 0.35 // }}} @@ -519,12 +521,12 @@ set g_balance_tuba_force 200 // {{{ fireball set g_balance_fireball_primary_ammo 5 set g_balance_fireball_primary_animtime 0.3 -set g_balance_fireball_primary_damage 60 +set g_balance_fireball_primary_damage 50 set g_balance_fireball_primary_damageforcescale 4 set g_balance_fireball_primary_damagetime 5 set g_balance_fireball_primary_force 100 set g_balance_fireball_primary_laserburntime 0.5 -set g_balance_fireball_primary_laserdamage 50 +set g_balance_fireball_primary_laserdamage 30 set g_balance_fireball_primary_laseredgedamage 20 set g_balance_fireball_primary_laserradius 128 set g_balance_fireball_primary_lifetime 7 @@ -533,20 +535,20 @@ set g_balance_fireball_primary_speed 700 set g_balance_fireball_primary_speed_up 100 set g_balance_fireball_secondary_ammo 15 set g_balance_fireball_secondary_animtime 0.15 -set g_balance_fireball_secondary_bfgdamage 250 -set g_balance_fireball_secondary_bfgforce 0 -set g_balance_fireball_secondary_bfgradius 1500 -set g_balance_fireball_secondary_damage 100 +set g_balance_fireball_secondary_bfgdamage 100 +set g_balance_fireball_secondary_bfgforce 500 +set g_balance_fireball_secondary_bfgradius 750 +set g_balance_fireball_secondary_damage 150 set g_balance_fireball_secondary_damageforcescale 4 set g_balance_fireball_secondary_edgedamage 0 set g_balance_fireball_secondary_force 700 set g_balance_fireball_secondary_health 50 set g_balance_fireball_secondary_laserburntime 0.5 -set g_balance_fireball_secondary_laserdamage 50 +set g_balance_fireball_secondary_laserdamage 30 set g_balance_fireball_secondary_laseredgedamage 20 set g_balance_fireball_secondary_laserradius 256 set g_balance_fireball_secondary_lifetime 15 set g_balance_fireball_secondary_radius 200 -set g_balance_fireball_secondary_refire 3 -set g_balance_fireball_secondary_speed 600 +set g_balance_fireball_secondary_refire 2 +set g_balance_fireball_secondary_speed 650 // }}} diff --git a/data/balanceSamual.cfg b/data/balanceSamual.cfg index 3750aeae8..66552f822 100644 --- a/data/balanceSamual.cfg +++ b/data/balanceSamual.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 59ee376a58dfcc2e2ee440c6a9508e11 +set cvar_check_balance 80b343d239a1d214d86d1ffcefef0bef // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -293,6 +293,7 @@ set g_balance_electro_primary_damage 65 set g_balance_electro_primary_edgedamage 0 set g_balance_electro_primary_force 200 set g_balance_electro_primary_radius 150 +set g_balance_electro_primary_comboradius 0 set g_balance_electro_primary_speed 2000 set g_balance_electro_primary_lifetime 30 set g_balance_electro_primary_refire 0.6 @@ -316,6 +317,7 @@ set g_balance_electro_combo_damage 80 set g_balance_electro_combo_edgedamage 0 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_speed 2000 // }}} // {{{ crylink diff --git a/data/default.cfg b/data/default.cfg index a68aa92b3..a5c1b20be 100644 --- a/data/default.cfg +++ b/data/default.cfg @@ -1,4 +1,4 @@ exec defaultNexuiz.cfg // we're not nexuiz 2.6 yet -exec default25.cfg +//exec default25.cfg diff --git a/data/qcsrc/server/constants.qh b/data/qcsrc/server/constants.qh index fdde84d99..2e2773531 100644 --- a/data/qcsrc/server/constants.qh +++ b/data/qcsrc/server/constants.qh @@ -1,5 +1,5 @@ string CVAR_CHECK_DEFAULT = "4bb48bd2d43bd891aa49d542abb24bf8"; -string CVAR_CHECK_BALANCE = "59ee376a58dfcc2e2ee440c6a9508e11"; +string CVAR_CHECK_BALANCE = "80b343d239a1d214d86d1ffcefef0bef"; float FALSE = 0; float TRUE = 1; diff --git a/data/qcsrc/server/w_electro.qc b/data/qcsrc/server/w_electro.qc index ec57ef3f7..36e6e63b9 100644 --- a/data/qcsrc/server/w_electro.qc +++ b/data/qcsrc/server/w_electro.qc @@ -1,5 +1,31 @@ .float electro_count; +void W_Plasma_Explode_Combo (void); + +void W_Plasma_TriggerCombo(vector org, float rad, entity own) +{ + local entity e; + e = findradius(org, rad); + while (e) + { + if (e.classname == "plasma") + { + // see if there is line of sight to the combo ball + traceline(org, e.origin, MOVE_NOMONSTERS, e); + if (trace_fraction == 1 || trace_ent == e) + { + // change owner to whoever caused the combo explosion + e.owner = own; + e.takedamage = DAMAGE_NO; + e.classname = "plasma_chain"; + e.think = W_Plasma_Explode_Combo; + e.nextthink = time + vlen(e.origin - org) / cvar("g_balance_electro_combo_speed"); // delay combo chains, looks cooler + } + } + e = e.chain; + } +} + void W_Plasma_Explode (void) { if(other.takedamage == DAMAGE_AIM) @@ -9,6 +35,8 @@ void W_Plasma_Explode (void) if(IsFlying(other)) announce(self.owner, "announcer/male/electrobitch.wav"); + W_Plasma_TriggerCombo(self.origin, cvar("g_balance_electro_primary_comboradius"), self.owner); + self.event_damage = SUB_Null; self.takedamage = DAMAGE_NO; if (self.movetype == MOVETYPE_BOUNCE) @@ -23,7 +51,11 @@ void W_Plasma_Explode (void) remove (self); } -void W_Plasma_Explode_Combo (void) { +void W_Plasma_Explode_Combo (void) +{ + + W_Plasma_TriggerCombo(self.origin, cvar("g_balance_electro_combo_comboradius"), self.owner); + self.event_damage = SUB_Null; RadiusDamage (self, self.owner, cvar("g_balance_electro_combo_damage"), cvar("g_balance_electro_combo_edgedamage"), cvar("g_balance_electro_combo_radius"), world, cvar("g_balance_electro_combo_force"), WEP_ELECTRO | HITTYPE_BOUNCE, world); // use THIS type for a combo because primary can't bounce remove (self); @@ -50,6 +82,7 @@ void W_Plasma_Damage (entity inflictor, entity attacker, float damage, float dea { if(self.health <= 0) return; + // note: combos are usually triggered by W_Plasma_TriggerCombo, not damage self.health = self.health - damage; if (self.health <= 0) { -- 2.39.2