[nexuiz-commits] r8708 - in trunk/data/qcsrc: server warpzonelib
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sun Feb 28 14:44:07 EST 2010
Author: div0
Date: 2010-02-28 14:44:07 -0500 (Sun, 28 Feb 2010)
New Revision: 8708
Modified:
trunk/data/qcsrc/server/w_fireball.qc
trunk/data/qcsrc/warpzonelib/TODO
Log:
fix fireball
Modified: trunk/data/qcsrc/server/w_fireball.qc
===================================================================
--- trunk/data/qcsrc/server/w_fireball.qc 2010-02-28 19:44:01 UTC (rev 8707)
+++ trunk/data/qcsrc/server/w_fireball.qc 2010-02-28 19:44:07 UTC (rev 8708)
@@ -25,6 +25,7 @@
modeleffect_spawn("models/sphere/sphere.md3", 0, 0, self.origin, '0 0 0', '0 0 0', '0 0 0', 0, cvar("g_balance_fireball_secondary_bfgradius"), 0.2, 0.05, 0.25);
// 2. bfg effect
+ // NOTE: this cannot be made warpzone aware by design. So, better intentionally ignore warpzones here.
for(e = findradius(self.origin, cvar("g_balance_fireball_secondary_bfgradius")); e; e = e.chain)
if(e != self.owner) if(e.takedamage == DAMAGE_AIM) if(e.classname != "player" || !self.owner || IsDifferentTeam(e, self))
{
@@ -68,26 +69,23 @@
return;
RandomSelection_Init();
- for(e = findradius(self.origin, dist); e; e = e.chain)
+ for(e = WarpZone_FindRadius(self.origin, dist, TRUE); e; e = e.chain)
if(e != self.owner) if(e.takedamage == DAMAGE_AIM) if(e.classname != "player" || !self.owner || IsDifferentTeam(e, self))
{
p = e.origin;
p_x += e.mins_x + random() * (e.maxs_x - e.mins_x);
p_y += e.mins_y + random() * (e.maxs_y - e.mins_y);
p_z += e.mins_z + random() * (e.maxs_z - e.mins_z);
- d = vlen(self.origin - p);
+ d = vlen(WarpZone_UnTransformOrigin(e, self.origin) - p);
if(d < dist)
{
- traceline(p, self.origin, MOVE_NORMAL, e);
- if(/* trace_startsolid || */ trace_fraction != 1)
- continue;
e.fireball_impactvec = p;
RandomSelection_Add(e, 0, string_null, 1 / (1 + d), !Fire_IsBurning(e));
}
}
if(RandomSelection_chosen_ent)
{
- d = vlen(self.origin - RandomSelection_chosen_ent.fireball_impactvec);
+ d = vlen(WarpZone_UnTransformOrigin(RandomSelection_chosen_ent, self.origin) - RandomSelection_chosen_ent.fireball_impactvec);
d = damage + (edgedamage - damage) * (d / dist);
Fire_AddDamage(RandomSelection_chosen_ent, self.realowner, d * burntime, burntime, self.projectiledeathtype | HITTYPE_BOUNCE);
//trailparticles(self, particleeffectnum("fireball_laser"), self.origin, RandomSelection_chosen_ent.fireball_impactvec);
Modified: trunk/data/qcsrc/warpzonelib/TODO
===================================================================
--- trunk/data/qcsrc/warpzonelib/TODO 2010-02-28 19:44:01 UTC (rev 8707)
+++ trunk/data/qcsrc/warpzonelib/TODO 2010-02-28 19:44:07 UTC (rev 8708)
@@ -1,7 +1,4 @@
Open issues:
-- radius damage
- - make warpzone entities radiusdamage-able, and do a new radius damage on the
- opposite side
- grep for TODO and FIXME
Weapon support:
@@ -18,9 +15,8 @@
- hlac: YES
- minstanex: YES
- rifle: YES
+- fireball: YES (BFG effect cannot work through warpzones by design, so it's not available through warpzones)
-- fireball: PARTIAL (no radius damage, laser damage)
-
- rocketlauncher: NO (guiding not working, trail bug)
- hook: NO (hook beam, pull not working)
- tuba: NO (sound)
More information about the nexuiz-commits
mailing list