// it is something we could override for a different behaviour of a demand point protected virtual void GenerateDemand() { AResource resource = m_ResourcesCollection.GetRandom(); if (resource == null) { Debug.LogError("No resources are set up! Look at resources collection."); return; } Vector2 demandRange = resource.ResourceBlueprint.DemandRange; // I just wanted int for better UI visibility, no better reason for that int demandValue = Random.Range((int)demandRange.x, (int)demandRange.y + 1); Demand demand = new Demand(resource, demandValue); m_Demands.AddLast(demand); OnDemandGenerated.Invoke(demand); }