c # – How to make a mix effect like yomawari did?

I would like to know how to make that effect, I've seen it in the game called Yomawari. The girl has a lamp and her cone revives the dark spirits that surround her. But only if they are in the light. I think it's like the additive mixture, but I can not get it to work. I use monogame and c #.

Here is an example: https://youtu.be/kPLRXP7ovB0?t=1241

All ideas are welcome (I prefer the source code;))

regards
Kai

My current test code: (DL: https://www.dropbox.com/s/twfqa4kcjzdw1xa/TestEyeGame.zip?dl=0)

                annular protected annular draw (GameTime gameTime)
{
var blend = new BlendState
{
ColorBlendFunction = BlendFunction.Add,
ColorSourceBlend = Blend.DestinationColor,
ColorDestinationBlend = Blend.Zero
};

var lightBlendState = new BlendState
{
ColorSourceBlend = Blend.Zero,
ColorDestinationBlend = Blend.SourceColor
};

var mousePosition = Mouse.GetState (). Position;

// draw lights
this.GraphicsDevice.SetRenderTarget (this.blackpixel);
this.GraphicsDevice.Clear (Color.DarkGray);
this.spriteBatch.Begin (SpriteSortMode.Deferred, BlendState.Additive);
this.spriteBatch.Draw (this.lichtRund, new Vector2 (mousePosition.X, mousePosition.Y), null, Color.White, 0f, new Vector2 (this.lichtRund.Width * 0.5f, this.lichtRund.Height * 0.5f ), 1f, SpriteEffects.None, 0);
this.spriteBatch.End ();
this.GraphicsDevice.SetRenderTarget (null);

// draw hidden
this.GraphicsDevice.SetRenderTarget (this.renderTarget);
this.GraphicsDevice.Clear (Color.White);
this.spriteBatch.Begin (SpriteSortMode.Deferred, mix);
this.spriteBatch.Draw (this.testeye, new Vector2 (this.GraphicsDevice.Viewport.Width / 2f, this.GraphicsDevice.Viewport.Height / 2f), null, Color.White, 0f, new Vector2 (this.testeye.Width * 0.5f, this.testeye.Height * 0.5f), 1f, SpriteEffects.None, 0);
this.spriteBatch.Draw (this.blackpixel, Vector2.Zero, Color.White);
this.spriteBatch.End ();
this.GraphicsDevice.SetRenderTarget (null);

// Combine everything
this.GraphicsDevice.Clear (Color.Black);

this.spriteBatch.Begin (SpriteSortMode.Deferred, BlendState.AlphaBlend);
this.spriteBatch.Draw (this.background, Vector2.Zero, Color.White);
this.spriteBatch.End ();

this.spriteBatch.Begin (SpriteSortMode.Deferred, BlendState.AlphaBlend);
this.spriteBatch.Draw (this.renderTarget, Vector2.Zero, Color.White);
this.spriteBatch.End ();

this.spriteBatch.Begin (SpriteSortMode.Deferred, lightBlendState);
this.spriteBatch.Draw (this.blackpixel, Vector2.Zero, Color.White);
this.spriteBatch.End ();

base.Draw (gameTime);
}

it results in that: https://www.dropbox.com/s/x1qd8ru669gfyy5/25-11-_2018_00-03-36.png?dl=0 but it should look like https://www.dropbox.com/s/ss4jrtp8ygez0k /fixed.png?dl=0