set g_balance_arc_bolt 1
set g_balance_arc_bolt_ammo 1
set g_balance_arc_bolt_bounce_count 0
-set g_balance_arc_bolt_bounce_damage 0
+set g_balance_arc_bolt_bounce_explode 0
set g_balance_arc_bolt_bounce_lifetime 0
set g_balance_arc_bolt_count 1
set g_balance_arc_bolt_damage 25
set g_balance_arc_bolt 0
set g_balance_arc_bolt_ammo 1
set g_balance_arc_bolt_bounce_count 0
-set g_balance_arc_bolt_bounce_damage 0
+set g_balance_arc_bolt_bounce_explode 0
set g_balance_arc_bolt_bounce_lifetime 0
set g_balance_arc_bolt_count 1
set g_balance_arc_bolt_damage 25
set g_balance_arc_bolt 0
set g_balance_arc_bolt_ammo 1
set g_balance_arc_bolt_bounce_count 0
-set g_balance_arc_bolt_bounce_damage 0
+set g_balance_arc_bolt_bounce_explode 0
set g_balance_arc_bolt_bounce_lifetime 0
set g_balance_arc_bolt_count 1
set g_balance_arc_bolt_damage 25
set g_balance_arc_bolt 1
set g_balance_arc_bolt_ammo 1
set g_balance_arc_bolt_bounce_count 0
-set g_balance_arc_bolt_bounce_damage 0
+set g_balance_arc_bolt_bounce_explode 0
set g_balance_arc_bolt_bounce_lifetime 0
set g_balance_arc_bolt_count 1
set g_balance_arc_bolt_damage 25
set g_balance_arc_bolt 1
set g_balance_arc_bolt_ammo 1
set g_balance_arc_bolt_bounce_count 0
-set g_balance_arc_bolt_bounce_damage 0
+set g_balance_arc_bolt_bounce_explode 0
set g_balance_arc_bolt_bounce_lifetime 0
set g_balance_arc_bolt_count 1
set g_balance_arc_bolt_damage 25
void W_Arc_Bolt_Touch(entity this, entity toucher)
{
PROJECTILE_TOUCH(this, toucher);
- if(this.cnt > WEP_CVAR(arc, bolt_bounce_count) || !WEP_CVAR(arc, bolt_bounce_count) || toucher.takedamage == DAMAGE_AIM) {
+ if(this.cnt >= WEP_CVAR(arc, bolt_bounce_count) || !WEP_CVAR(arc, bolt_bounce_count) || toucher.takedamage == DAMAGE_AIM) {
this.use(this, NULL, toucher);
} else {
- if(!this.cnt && WEP_CVAR(arc, bolt_bounce_lifetime))
- this.nextthink = min(this.nextthink, time + WEP_CVAR(arc, bolt_bounce_lifetime));
this.cnt++;
Send_Effect(EFFECT_BALL_SPARKS, this.origin, this.velocity, 1);
this.angles = vectoangles(this.velocity);
this.owner = NULL;
- // initial blast doesn't count as bounce damage!
- if(WEP_CVAR(arc, bolt_bounce_damage))
- RadiusDamage(this, this.realowner, WEP_CVAR(arc, bolt_damage), WEP_CVAR(arc, bolt_edgedamage), WEP_CVAR(arc, bolt_radius), NULL, NULL, WEP_CVAR(arc, bolt_force), this.projectiledeathtype, this.weaponentity_fld, toucher);
this.projectiledeathtype |= HITTYPE_BOUNCE;
+ if(WEP_CVAR(arc, bolt_bounce_explode))
+ RadiusDamage(this, this.realowner, WEP_CVAR(arc, bolt_damage), WEP_CVAR(arc, bolt_edgedamage), WEP_CVAR(arc, bolt_radius), NULL, NULL, WEP_CVAR(arc, bolt_force), this.projectiledeathtype, this.weaponentity_fld, toucher);
+ if(this.cnt == 1 && WEP_CVAR(arc, bolt_bounce_lifetime))
+ this.nextthink = time + WEP_CVAR(arc, bolt_bounce_lifetime);
}
}
P(class, prefix, bolt, float, NONE) \
P(class, prefix, bolt_ammo, float, NONE) \
P(class, prefix, bolt_bounce_count, float, NONE) \
- P(class, prefix, bolt_bounce_damage, float, NONE) \
+ P(class, prefix, bolt_bounce_explode, float, NONE) \
P(class, prefix, bolt_bounce_lifetime, float, NONE) \
P(class, prefix, bolt_count, float, NONE) \
P(class, prefix, bolt_damageforcescale, float, NONE) \
alias test_rocket_flying "settemp g_balance_devastator_remote_jump 1"
-alias test_arc_bounce "settemp g_balance_arc_bolt_bounce_count 1 ; settemp g_balance_arc_bolt_bounce_lifetime 0.5 ; settemp g_balance_arc_bolt_bounce_damage 1 ; settemp g_balance_arc_bolt_ammo 2"
-alias test_arc_bounce_burst "settemp g_balance_arc_bolt_bounce_count 1 ; settemp g_balance_arc_bolt_bounce_lifetime 0.5 ; settemp g_balance_arc_bolt_bounce_damage 1 ; settemp g_balance_arc_bolt_ammo 3 ; settemp g_balance_arc_bolt_refire2 0.33333 ; settemp g_balance_arc_bolt_count 3"
+alias test_arc_bounce "settemp g_balance_arc_bolt_bounce_count 1 ; settemp g_balance_arc_bolt_bounce_lifetime 0.5 ; settemp g_balance_arc_bolt_bounce_explode 1 ; settemp g_balance_arc_bolt_ammo 2"
+alias test_arc_bounce_burst "settemp g_balance_arc_bolt_bounce_count 1 ; settemp g_balance_arc_bolt_bounce_lifetime 0.5 ; settemp g_balance_arc_bolt_bounce_explode 1 ; settemp g_balance_arc_bolt_ammo 3 ; settemp g_balance_arc_bolt_refire2 0.33333 ; settemp g_balance_arc_bolt_count 3"
// https://forums.xonotic.org/showthread.php?tid=8192
// https://gitlab.com/xonotic/xonotic-data.pk3dir/merge_requests/736