From: Mario Date: Wed, 14 Sep 2022 04:25:38 +0000 (+1000) Subject: Merge branch 'master' into Mario/electro_combo_over_time X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=f28ed0cd80db4e43a6b47ad4d942e298d45f9467;p=xonotic%2Fxonotic-data.pk3dir.git Merge branch 'master' into Mario/electro_combo_over_time --- f28ed0cd80db4e43a6b47ad4d942e298d45f9467 diff --cc qcsrc/common/weapons/weapon/electro.qc index fa25513f1,3a70920e0..a68ad35bd --- a/qcsrc/common/weapons/weapon/electro.qc +++ b/qcsrc/common/weapons/weapon/electro.qc @@@ -73,30 -56,8 +75,31 @@@ void W_Electro_ExplodeCombo(entity this W_Electro_TriggerCombo(this.origin, WEP_CVAR(electro, combo_comboradius), this.realowner); this.event_damage = func_null; + this.velocity = this.movedir; // particle fx and decals need .velocity + if(WEP_CVAR(electro, combo_duration)) + { + this.projectiledeathtype = WEP_ELECTRO.m_id | HITTYPE_SPLASH; + this.event_damage = func_null; + settouch(this, func_null); + this.effects |= EF_NODRAW; + + setthink(this, W_Electro_ExplodeComboThink); + this.nextthink = time; + this.dmg = WEP_CVAR(electro, combo_damage); + this.dmg_edge = WEP_CVAR(electro, combo_edgedamage); + this.dmg_radius = WEP_CVAR(electro, combo_radius); + this.dmg_force = WEP_CVAR(electro, combo_force); + this.dmg_power = WEP_CVAR(electro, combo_power); + this.dmg_duration = WEP_CVAR(electro, combo_duration); + this.dmg_interval = WEP_CVAR(electro, combo_damage_interval); + this.dmg_linear = WEP_CVAR(electro, combo_damage_linear); + this.teleport_time = time; + this.dmg_last = 1; + set_movetype(this, MOVETYPE_NONE); + return; + } + RadiusDamage( this, this.realowner, diff --cc qcsrc/common/weapons/weapon/electro.qh index eb697c3ef,e4263403b..721d34889 --- a/qcsrc/common/weapons/weapon/electro.qh +++ b/qcsrc/common/weapons/weapon/electro.qh @@@ -2,9 -2,9 +2,9 @@@ CLASS(Electro, Weapon) /* spawnfunc */ ATTRIB(Electro, m_canonical_spawnfunc, string, "weapon_electro"); - /* ammotype */ ATTRIB(Electro, ammo_type, int, RES_CELLS); + /* ammotype */ ATTRIB(Electro, ammo_type, Resource, RES_CELLS); /* impulse */ ATTRIB(Electro, impulse, int, 5); -/* flags */ ATTRIB(Electro, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_FLAG_CANCLIMB | WEP_TYPE_SPLASH); +/* flags */ ATTRIB(Electro, spawnflags, int, WEP_FLAG_NORMAL | WEP_FLAG_RELOADABLE | WEP_TYPE_SPLASH); /* rating */ ATTRIB(Electro, bot_pickupbasevalue, float, 5000); /* color */ ATTRIB(Electro, wpcolor, vector, '0 0.5 1'); /* modelname */ ATTRIB(Electro, mdl, string, "electro"); @@@ -80,16 -78,7 +82,17 @@@ REGISTER_WEAPON(ELECTRO, electro, NEW(E SPAWNFUNC_WEAPON(weapon_electro, WEP_ELECTRO) #ifdef SVQC +.float dmg; +.float dmg_edge; +.float dmg_radius; +.float dmg_force; +.float dmg_power; +.float dmg_duration; +.float dmg_last; +.float dmg_interval; +.float dmg_linear; + + IntrusiveList LimitedElectroBallRubbleList; .float electro_count; .float electro_secondarytime; void W_Electro_ExplodeCombo(entity this);