dnd 5e – Do the smaller Black Puddings have their reactions in the same round as the original Black Pudding split?

The Split reaction available for the Black Pudding monster goes as follows:

Split. When a pudding that is Medium or larger is subjected to lightning or slashing damage, it splits into two new puddings if it has at least 10 hit points. Each new pudding has hit points equal to half the original pudding’s, rounded down. New puddings are one size smaller than the original pudding.

Now let’s say that after triggering this reaction, the attacker steps away from the two new puddings without taking the Disengage action. I see two options here:

  • The new smaller puddings still have their reaction available because they are considered new creatures, and thus can make their attacks of opportunity.
  • The smaller puddings don’t have their reactions because the original pudding already used its reaction.

I was trying to find some information on their place in the initiative order, hoping that it can help me out, but no luck with that either.

Thank you in advance!

screen – Thick black bar appeared below keyboard : One Plus 7

On my wife’s phone One Plus 7 running Android 11 with latest updates, a thick bar appeared for no rhyme or reason (sorry, forgot to take screen shot):

  • No, it isn’t the Android 10 bar under keyboard , which could be tackled by wm overscan. Anyway, that is depreciated in Android 11. Decreasing the screen size per this answer using adb shell wm size worked but the bar remains and so does flickering.

  • Device has a fixed display rate of 60 Hz so higher rate of 90 Hz ruled out.

  • Changed Keyboard from GBoard to Swiftkey and others but no luck.

  • Fiddled with all navigation bar settings, no luck.

  • Android 11 doesn’t have DC dimming option which was known to cause flickering in Android 9.

  • Downloaded bunch of nav bar display apps but didn’t work.

  • Internet is full of buggy reports of Android 11 on One Plus but this problem wasn’t mentioned.

  • Screen damage ruled out, no accidental drops

  • Shows up in safe-mode too, so app related issues ruled out.

  • Shutting down the phone, re-start etc didn’t help.

  • Changing launcher from stock to Nova or other launchers didn’t help

  • Changed display type including advanced settings etc but again no luck.

  • All these took better part of three hours and I don’t want to do a factory-reset.

    stylesheet – Cursor (prompt) color using black background

    I am dealing with a prompt (blinking cursor) color problem in Mathematica 12.3.0. I am using a black theme (my input cells have black background) and, during the cell editing, the prompt turn from gray (visible) to black (invisible), and this is horrible!

    I’ve tried to work around with “Styles for Mathematica System-specific Elements” in the stylesheet and some “Option Inspector” stuff, but they only change the color of the cursor as it appears when the cell is not being edited (as saved or as executed), as soon I start to edit the cell, the cursor turn black again.

    This is not a “mouse pointer” problem!!!!

    Can any one please help?

    How can I stop the Unity Video Player on WebGL from starting each video with a frame of all black?

    I’m working on a system to seamlessly reconstruct and play numerous segments of a continuous video stream by playing one segment on the active Video Player while loading the next on the hidden, waiting Video Player—and swapping between them when the active segment is done playing.

    Although it’s not necessary to see the code for this, I included it below just in case:

    public class VideoController : MonoBehaviour
    {
        (SerializeField) private VideoPlayer activePlayer;
        (SerializeField) private VideoPlayer waitingPlayer;
        // The waiting player starts off invisible.
    
        private Queue<string> _segmentUrls;
        private bool _videoIsPlaying;
    
        private bool NextSegmentExists => _segmentUrls.Count >= 1;
    
        private void Awake()
        {
            // Initialize fields.
            _segmentUrls = new Queue<string>();
    
            // Subscribe to events.
            // VideoPlayer.Prepare() doesn't seem to work in WebGL. The workaround is to call
            // Play() instead and set the players to pause once the track is finished preparing.
            activePlayer.prepareCompleted += source =>
            {
                source.Pause();
            };
            waitingPlayer.prepareCompleted += source =>
            {
                source.Pause();
            };
            
            activePlayer.loopPointReached += SwitchVideoPlayer;
            waitingPlayer.loopPointReached += SwitchVideoPlayer;
        }
    
        public void EnqueueSegment(string segmentUrl)
        {
            _segmentUrls.Enqueue(segmentUrl);
    
            if (!_videoIsPlaying)
                StartCoroutine(StartPlayback());
            else if (!waitingPlayer.isPrepared)
                PrepareNextSegmentOnWaitingPlayer();
        }
    
        private IEnumerator StartPlayback()
        {
            PrepareNextSegmentOnWaitingPlayer();
            
            // Give the Video Player a second to finish preparing the segment for playback.
            yield return new WaitForSeconds(1f);
    
            SwitchVideoPlayer(lastPlayer: activePlayer);
            _videoIsPlaying = true;
        }
    
        private void PrepareNextSegmentOnWaitingPlayer()
        {
            var segmentUrl = _segmentUrls.Dequeue();
            waitingPlayer.url = segmentUrl;
            waitingPlayer.Play();
        }
    
        private void SwitchVideoPlayer(VideoPlayer lastPlayer)
        {
            activePlayer = waitingPlayer;
            TransparencyController.ShowGameObject(activePlayer.gameObject);
    
            waitingPlayer = lastPlayer;
            TransparencyController.HideGameObject(waitingPlayer.gameObject);
            waitingPlayer.Stop();
            
            if (activePlayer.isPrepared)
                activePlayer.Play();
            else
            {
                activePlayer.Stop();
                _videoIsPlaying = false;
                return;
            }
    
            if (NextSegmentExists)
                PrepareNextSegmentOnWaitingPlayer();
        }
    }
    

    When a Video Player begins playing, the first frame or two is just a black screen. As a result, when a segment finishes playing and it’s time to swap the active and waiting players, there’s a momentary black “blink” on the screen.

    Demonstration

    Below is a GIF of the issue:

    Blinking Demo

    Each blink corresponds to swapping Video Players.

    (Not to be confused, the video player is showing a recording of a Unity project.)

    When a Video Player is done preparing the new segment for playback, I have it advance two frames, so it picks off right where the old segment ended and transitions perfectly smoothly.

    This is done by changing the callback for VideoPlayer.prepareCompleted as follows:

    activePlayer.prepareCompleted += source =>
    {
        source.StepForward();
        source.StepForward();
        source.Pause();
    };
    waitingPlayer.prepareCompleted += source =>
    {
        source.StepForward();
        source.StepForward();
        source.Pause();
    };
    // Experimentation found that two calls to StepForward() are necessary.
    

    Why It Doesn’t Work

    It works on Windows, but testing it on the WebGL build—my primary build target—throws an exception telling me VideoPlayer.StepForward() is not supported on WebGL.

    I tried the equivalent of calling StepForward() by setting the current time of the Video Player to a value equal to 2 / framerate, where the “2” stands for two frames.

    Why It Doesn’t Work

    It works on Windows, and it seems adjusting the time value works on WebGL, too—at least for values equal to or less than 0.5 seconds. However, on WebGL, the black blink persists despite the time-skip.

    I tried the same approach as in #2, but by directly adjusting the current frame of the Video Player when preparing the segment for the waiting player.

    Why It Doesn’t Work

    For the same exact reason as in #2. 😫

    Why does the Video Player start off with black frames on WebGL no matter what, and how can I avoid that?

    OpenGL 2D texture lookup returns zero (black)

    I am trying to use a 2D texture as a lookup table for pre-computed values. In each case I set all values of the texture to 0.5 for testing.

    When I use a 1D texture, it works and I get 0.5:

    uniform sampler1D dens;
    ...
      return texture(dens, height01).r;
    ...
    

    When I use a 2D texture however, I get 0.0:

    uniform sampler2D dep;
    ...
      return texture(dep, vec2(height01, cos_angle01)).r;
    ...
    

    I have tried setting cos_angle01 to 0.5. I also tried visualising height01.

    Here are the initialisations of the textures (implemented in Clojure):

    (def size 8)
    (def dens (float-array (repeat size 0.5)))
    (def dep (float-array (repeat (* size size) 0.5)) )
    
    (def dens-texture (GL11/glGenTextures))
    (GL13/glActiveTexture GL13/GL_TEXTURE0)
    (GL11/glBindTexture GL11/GL_TEXTURE_1D dens-texture)
    (GL20/glUniform1i (GL20/glGetUniformLocation program "dens") 0)
    (GL11/glTexImage1D GL11/GL_TEXTURE_1D 0 GL30/GL_R32F size 0 GL11/GL_RED GL11/GL_FLOAT (make-float-buffer dens))
    (GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_WRAP_S GL12/GL_CLAMP_TO_EDGE)
    (GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_MIN_FILTER GL11/GL_NEAREST)
    (GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_MAG_FILTER GL11/GL_NEAREST)
    
    (def dep-texture (GL11/glGenTextures))
    (GL13/glActiveTexture GL13/GL_TEXTURE1)
    (GL11/glBindTexture GL11/GL_TEXTURE_2D dep-texture)
    (GL20/glUniform1i (GL20/glGetUniformLocation program "dep") 1)
    (GL11/glTexImage2D GL11/GL_TEXTURE_2D 0 GL30/GL_R32F size size 0 GL11/GL_RED GL11/GL_FLOAT (make-float-buffer dep))
    (GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_WRAP_S GL12/GL_CLAMP_TO_EDGE)
    (GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_WRAP_T GL12/GL_CLAMP_TO_EDGE)
    (GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_MIN_FILTER GL11/GL_NEAREST)
    (GL11/glTexParameteri GL11/GL_TEXTURE_1D GL11/GL_TEXTURE_MAG_FILTER GL11/GL_NEAREST)
    ```
    

    plotting – Is the default color for axis label black in `RegionPlot`?

    I had no suspect that the default color for axis label and ticks would be black. However, after exporting an image to pdf, it seems that these colors are not black for me. Indeed, by checking the color with mspaint, the RGB value is (102,102,102).

    The following is the code used to generate a plot:

    cm = 72/2.54;
    r = RegionPlot(x^2 + y^2 < 1, {x, -1, 1}, {y, -1, 1}, Frame -> True, 
      PlotRange -> {{-1, 1}, {-1, 1}}, FrameLabel -> {x, y})
    Export("test1.pdf", Show(r, ImageSize -> 7 cm))
    

    The following is the part of the resulting plot that I magnified:

    enter image description here

    It does not seem as the real black. Is it the expected behavior? How can I make the color “true” black, with RGB (255,255,255)?