Cyclyc.Framework.Challenge.Process C# (CSharp) Method

Process() public method

public Process ( float expectedGrade, float actualGrade, bool changeState ) : int
expectedGrade float
actualGrade float
changeState bool
return int
        public int Process(float expectedGrade, float actualGrade, bool changeState)
        {
            int difficultyThisTurn = 0;
            if (state == ChallengeState.NotYet && game.CurrentMeasure >= Measure)
            {
                if (expectedGrade > actualGrade)
                {
                    if (changeState)
                    {
                        state = ChallengeState.Skipped;
                    }
                }
                else
                {
                    state = ChallengeState.Active;
                }
            }
            if (state == ChallengeState.Active)
            {
                bool anyUnsent = false;
                foreach (ChallengeBeat beat in beats)
                {
                    if (beat.Unsent && (beat.Beat + (Measure * 4)) <= game.CurrentBeat)
                    {
                        beat.Unsent = false;
                        foreach (EnemyMaker em in beat.Enemies)
                        {
                            CycEnemy enemy = (CycEnemy)em(this);
                            difficultyThisTurn += enemy.Difficulty;
                        }
                    }
                    else
                    {
                        anyUnsent = true;
                    }
                }
                if (!anyUnsent && changeState)
                {
                    state = ChallengeState.Deployed;
                }
            }
            return difficultyThisTurn;
        }