private void Move(bool players) { ushort[] keys = movables.Keys.ToArray(); for (int i = 0, l = keys.Length; i < l; i++) { if (levelDidReset) { break; } ushort key = keys[i]; Movable m = movables[key]; if ((m.agentType == AgentType.PLAYER) == players && m.WantsToMove) { if (Enact(m, key)) { SetMovable(key, m.Enact()); } else { SetMovable(key, m.Reset()); } } } }