--- deliantra/server/server/spell_attack.C 2008/05/17 00:17:02 1.55 +++ deliantra/server/server/spell_attack.C 2008/05/17 01:05:57 1.56 @@ -1761,7 +1761,7 @@ int basedir = op->direction; if (!basedir) /* spray in all directions! 8) */ - basedir = rndm (1, 8); + basedir = 1 + (op->facing += op->state) % 8; #if 0 // this is bogus: it causes wrong places to be checked below @@ -1868,6 +1868,8 @@ tmp->direction = dir; tmp->invisible = 1; + tmp->facing = rndm (8); // initial firing direction + tmp->state = rndm (4) * 2 + 1; // direction increment op->insert (tmp);