Talk:Partial invisibility

Can Revenants' tracking rockets still target a player with a blur sphere, even if the Revenant fires the rocket in the wrong direction?


 * Yes. The blur artifact only confuses the monsters to make them inaccurate. It has no effect on Revenant rockets. oTHErONE (Contribs) 23:53, 9 March 2007 (UTC)

Exact amount of accuracy reduction
p_enemy.c, A_FaceTarget

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

p_mobj.c, P_SpawnMissile // fuzzy player if (dest->flags & MF_SHADOW) an += (P_Random-P_Random)<<20;

Although I'm not very into hex calculations, my estimates are ±45° (0x20000000) for the first case (that'll be hitscan, I suppose), and ±22.5° (0x10000000) for the second (projectile attacks). Are my values correct? It might be useful to include them here or into the fuzz effect article. Also, I wonder what actual numbers will come out after the idiosyncrasies of Doom's RNG come into play.

On a side note, I haven't managed to find any exceptions for the spectre's fuzz. It appears that they are equally as hard to hit as fuzzy players (to monsters, not the player, of course). If so, the Spectre article needs a correction. --Unmaker 19:18, 1 September 2012 (UTC)


 * Can't argue with any of that (FWIW). The RNG module tells us:
 * Angle varies between -43.76° and 43.94°, or half that for projectiles
 * Mean of 0° and standard deviation of 17.84° (i.e. small shifts are uncommon in fact), or half that for projectiles
 * Angle is never zero (because no two consecutive return values are equal)
 * I'll describe this in the article if I can wring a passable histogram out of this POS spreadsheet application. :P     Ryan W (talk) 01:51, 3 August 2014 (UTC)

P_SpawnMissile function's name is misleading because it is not only used missile attacks, but for hitscan attacks as well. A_FaceTarget is a separate function that is also called during attack sequence and its role is to cause monsters to face in the direction of their target while attacking. In this context, the relevant bit of code in A_FaceTarget makes it so that monsters targeting partially invisible players face in a random direction during attack. However, the random angle offset calculations yielded by those functions are independent from each other. Load MAP32 on Doom II and give yourself the god mode and blur sphere via cheats, then observe how the direction of fired cyborg's rocket does not always match with the direction the cyborg is facing while firing said rocket. What is more, in info.c (lines 621 to 623) you can see how A_FaceTarget is called during demon's attack sequence, while P_SpawnMissile is never called because demon is exclusively melee combatant. However, if you are partially invisible, you could notice that demons standing in place while biting you are "wiggling" around, randomly switching their angle in random directions within the ±45° interval. Note that the "wiggling" is a purely visual effect and does not affect the demon's (or any other monster's) attack accuracy itself.

BTW I am not fluent with how to convert those hex values to angles so I am not sure whether this ±45° value is correct, but seems reasonable for me.

Display filter
The player's sprite (as seen by other players in multiplayer mode) will be given a filter similar to that of the spectre

Similar? How similar? Isn't it the same? --Kyano 21:24, 10 April 2014 (UTC)


 * It is exactly the same. It also isn't a "filter". --Quasar 02:11, 11 April 2014 (UTC)