rocket = spawn ();
setorigin(rocket, org);
- sound (self, CHAN_WEAPON, "weapons/hagar_fire.wav", VOL_BASE, ATTN_NORM);
+ asound (self, CH_WEAPON_A, "weapons/hagar_fire.wav", VOL_BASE, ATTN_NORM);
setsize (rocket, '-3 -3 -3', '3 3 3'); // give it some size so it can be shot
rocket.classname = "walker_rocket";
}
}
+//#define WALKER_FANCYPATHING
+
void walker_move_path()
{
+#ifdef WALKER_FANCYPATHING
// Are we close enougth to a path node to switch to the next?
if (vlen(self.origin - self.pathcurrent.origin) < 64)
if (self.pathcurrent.path_next == world)
self.steerto = steerlib_attract2(self.moveto,0.5,500,0.95);
walker_move_to(self.moveto, 0);
+#else
+ if (vlen(self.origin - self.pathcurrent.origin) < 64)
+ self.pathcurrent = self.pathcurrent.enemy;
+
+ if(!self.pathcurrent)
+ return;
+
+ self.moveto = self.pathcurrent.origin;
+ self.steerto = steerlib_attract2(self.moveto, 0.5, 500, 0.95);
+ walker_move_to(self.moveto, 0);
+#endif
}
.float idletime;
if(self.idletime < time)
{
- if(random() < 0.5)
+ if(random() < 0.5 || !(self.spawnflags & TSL_ROAM))
{
self.idletime = time + 1 + random() * 5;
self.moveto = self.origin;
void walker_attack()
{
- sound (self, CHAN_WEAPON, "weapons/uzi_fire.wav", VOL_BASE, ATTN_NORM);
+ asound (self, CH_WEAPON_A, "weapons/uzi_fire.wav", VOL_BASE, ATTN_NORM);
fireBallisticBullet (self.tur_shotorg, self.tur_shotdir_updated, self.shot_spread, self.shot_speed, 5, self.shot_dmg, 0, self.shot_force, DEATH_TURRET_WALKER_GUN, 0, 1, autocvar_g_balance_uzi_bulletconstant);
endFireBallisticBullet();
pointparticles(particleeffectnum("laser_muzzleflash"), self.tur_shotorg, self.tur_shotdir_updated * 1000, 1);
void walker_diehook()
{
+#ifdef self.pathcurrent
if (self.pathcurrent)
pathlib_deletepath(self.pathcurrent.owner);
+#endif
self.pathcurrent = world;
}
if (self.target != "")
{
- e = find(world,targetname,self.target);
+ e = find(world, targetname, self.target);
if (!e)
{
dprint("Initital waypoint for walker does NOT exsist, fix your map!\n");
dprint("Warning: not a turrret path\n");
else
{
- self.pathcurrent = WALKER_PATH(self.origin,e.origin);
+#ifdef WALKER_FANCYPATHING
+ self.pathcurrent = WALKER_PATH(self.origin, e.origin);
self.pathgoal = e;
+#else
+ self.pathcurrent = e;
+#endif
}
}
}