/// <summary> /// All items work /// </summary> public static void DoWork() { foreach (AbstractObject itm in m_sEverything) { //clearing variables before calculating try { itm.m_productivity = 0; itm.m_oredered = 0; itm.m_consumed = 0; itm.m_maxProduced = 0; if (itm is GameMaterial) { GameMaterial mat = (GameMaterial)itm; mat.m_maxProduced = mat.CountMaxProduction(); } } catch (Exception ex) { Debug.LogError("AbstractObject: DoWork 1:" + ex.Message); } } for (int i = 0; i < m_sEverything.Count; i++) { try { AbstractObject mat = m_sEverything[i]; mat.Working(); } catch (Exception ex) { Debug.Log("AbstractObject: DoWork 2:" + ex.Message); Camera.main.GetComponent <TimeScript>().m_timeTxt = ex.Message; } } foreach (var itm in m_sEverything) { if (itm.m_isItOpen > 0) { itm.CalcProductivity(); } } }