For the first: You could spawn a camera at the player's position, angle, and pitch, and put a cameratexture HUDmessage over the screen that slowly fades out. THIS WOULD NOT BE PERFECT, as the camera would still be a "live feed" and you could even potentially see yourself, but it's the only way we have of accomplishing that "afterimage" effect. Something better might be using a postprocess shader to blur or otherwise distort the player's screen while the effect is active.

For the second: You can use A_JumpIfInTargetLOS to jump to a state in the grenade only if the player is looking toward it (note this can't use the player's actual FOV because that could cause desyncs, but a generic value like 90 should be fine in most cases). You may need to do some pointer-rearrangement hackery to make sure the grenade's target pointer is actually referring to the player.

Note that this would probably be a lot easier in ZScript instead of DECORATE + ACS as more robust scripting options are available.

Caligari87 wrote:For the first: You could spawn a camera at the player's position, angle, and pitch, and put a cameratexture HUDmessage over the screen that slowly fades out. THIS WOULD NOT BE PERFECT, as the camera would still be a "live feed" and you could even potentially see yourself, but it's the only way we have of accomplishing that "afterimage" effect. Something better might be using a postprocess shader to blur or otherwise distort the player's screen while the effect is active.

For the second: You can use A_JumpIfInTargetLOS to jump to a state in the grenade only if the player is looking toward it (note this can't use the player's actual FOV because that could cause desyncs, but a generic value like 90 should be fine in most cases). You may need to do some pointer-rearrangement hackery to make sure the grenade's target pointer is actually referring to the player.

Note that this would probably be a lot easier in ZScript instead of DECORATE + ACS as more robust scripting options are available.