35 lines
913 B
C#
35 lines
913 B
C#
using NaughtyAttributes;
|
|
using UnityEngine;
|
|
|
|
namespace EscapeRoomEngine.Engine.Runtime.Modules
|
|
{
|
|
public class CyclicStepPuzzle : StepPuzzle
|
|
{
|
|
[BoxGroup("Step Puzzle")] [Min(0)] public int cycleStep;
|
|
|
|
protected override void CheckStep(int step)
|
|
{
|
|
if (!Solved)
|
|
{
|
|
if (currentStep == 0)
|
|
{
|
|
// begin at any step
|
|
cycleStep = NextInCycle(step);
|
|
Step();
|
|
}
|
|
else if (step == cycleStep)
|
|
{
|
|
// next step in cycle
|
|
cycleStep = NextInCycle(cycleStep);
|
|
Step();
|
|
}
|
|
else
|
|
{
|
|
WrongInput();
|
|
}
|
|
}
|
|
}
|
|
|
|
private int NextInCycle(int step) => (step + 1) % totalSteps;
|
|
}
|
|
} |