public void scoreAndPeformActions(){ float maxScore = 0f; IAction maxScoringAction = null; foreach (var action in actions) { action.scoreAction(); if (maxScoringAction == null || action.score > maxScore) { maxScore = action.score; maxScoringAction = action; } } if (curAction != null && curAction != maxScoringAction) { curAction.endAction(); } if (curAction != maxScoringAction) { if (curAction != null) curAction.endAction(); curAction = maxScoringAction; if (curAction != null) curAction.startAction(); } curAction.performAction(); }