예제 #1
0
        static QueenAction GetQueenAction(int frame, QueenAction previousAction, RngManipulation rngManipulation = RngManipulation.None)
        {
            var index = frame + frame - 0x2C + (int)rngManipulation;

            if (previousAction == QueenAction.Stomp)
            {
                index += 8;
            }
            else if (previousAction == QueenAction.None || previousAction == QueenAction.StepBack)
            {
                return((Numbers[index & 0xFF] & 0x01) == 0x01 ? QueenAction.Scream : QueenAction.Stomp);
            }

            var number = Numbers[index & 0xFF] & 0x07;

            if (number < 5)
            {
                return(QueenAction.StepBack);
            }
            else if (number < 7)
            {
                return(QueenAction.Scream);
            }
            else
            {
                return(QueenAction.Stomp);
            }
        }
예제 #2
0
        static int GetFrameCount(QueenAction queenAction)
        {
            switch (queenAction)
            {
            case QueenAction.Scream:
                return(97);

            case QueenAction.Stomp:
                return(73);

            case QueenAction.StepBack:
                return(151);

            default:
                return(0);
            }
        }