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); } }
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); } }