Talk:Spectre

Infighting and invisibility
In the code, does a spectre's partial invisibility actually randomize ranged attacks by other monsters, like a blur artifact does, or does it only affect rendering? Ryan W 20:01, 31 December 2007 (UTC)


 * A spectre's invisibility affects ranged attacks against it the same way as when the player is invisible. This is because a check is performed against the target's flags for MF_SHADOW, which is assigned to spectres and to an invisible player:


 * in function A_FaceTarget:

 if (actor->target->flags & MF_SHADOW) actor->angle += (P_Random-P_Random)<<21; 


 * in function P_SpawnMissile:

 // fuzzy player if (dest->flags & MF_SHADOW) an += (P_Random-P_Random)<<20; 


 * This might not be easy to witness during gameplay since a spectre only has a melee attack and thus has to be REALLY close in order to piss off another enemy. At that range, attacks are more likely to hit.


 * Interestingly, on a side note, it seems projectile attacks are designed to be twice as accurate as "bullet" attacks as angles are left-shifted one extra bit for the latter. Zack 00:55, 2 January 2008 (UTC)


 * Wow, that's excellent! Many thanks.    Ryan W 01:17, 2 January 2008 (UTC)