Beispiel #1
0
        public void UpdateFrame()
        {
            charFrameType  = AnimFrameType;
            determineFrame = FrameMethod;
            drawOffset     = new Loc();
            dirOffset      = Dir8.Down;
            opacity        = 255;
            LocHeight      = 0;

            UpdateFrameInternal();
        }
Beispiel #2
0
        public void UpdateDrawEffects(HashSet <DrawEffect> drawEffects)
        {
            if (AllowFrameTypeDrawEffects())
            {
                if (drawEffects.Contains(DrawEffect.Hurt))
                {
                    charFrameType  = GraphicsManager.HurtAction;
                    determineFrame = totalFrameTickFrame;
                }
                else if (drawEffects.Contains(DrawEffect.Sleeping))
                {
                    charFrameType  = GraphicsManager.SleepAction;
                    determineFrame = totalFrameTickFrame;
                }
                else if (drawEffects.Contains(DrawEffect.Charging))
                {
                    charFrameType  = GraphicsManager.ChargeAction;
                    determineFrame = totalFrameTickFrame;
                }
            }

            if (drawEffects.Contains(DrawEffect.Absent))
            {
                opacity = 0;
            }

            if (drawEffects.Contains(DrawEffect.Shaking))
            {
                int sway = (int)(GraphicsManager.TotalFrameTick / (ulong)FrameTick.FrameToTick(1) % 8);
                drawOffset.X += (sway > 4) ? (6 - sway) : (sway - 2);
            }
            if (drawEffects.Contains(DrawEffect.Spinning))
            {
                dirOffset = (Dir8)(GraphicsManager.TotalFrameTick / (ulong)FrameTick.FrameToTick(2) % 8);
            }

            if (drawEffects.Contains(DrawEffect.Stopped))
            {
                determineFrame = zeroFrame;
            }
        }