//changes the current order void NewOrder() { bool foundOrder = false; int orderIndex = 0; while (!foundOrder) { //pick a random index int random = Random.Range(0, orders.Length); //check if that index is used if (!usedOrders.Contains(random)) { //if its not used, you found an order foundOrder = true; orderIndex = random; usedOrders.Add(random); } //if you have used all the possible indexes if (usedOrders.Count == orders.Length) { //reset list usedOrders = new List <int>(); foundOrder = true; orderIndex = random; usedOrders.Add(random); } } //set current order currentOrder = orders[orderIndex]; DisplayOrder(orderIndex); orderActive = true; }
public void setCraft(GameObject verstack, CraftOrder slot) { this.verstack = verstack; this.slot = slot; iswall = true; }
protected void DefineTender(float volume, AllProduction requirement) { CraftOrder tender; if (!CheckTenderExists(volume, requirement)) { // Item2 - цена продажи на глобальный рынок, она всегда ниже. // Разумеется, потребитель хочет получить товар по этой цене или даже ниже. tender = new CraftOrder(Economic.Id, requirement, volume, GlobalPriceTable.PriceOf[requirement].Item2 * volume); } }
public void StartCraft(GameObject verstak, CraftOrder slotCraft) { //Debug.Log("Start Craft " + verstak.name); bool isfind = false; foreach (var item in cityWorkers) { if (!isfind) { if (!item.GetComponent <WorkerController>().isbusy) { item.GetComponent <WorkerController>().isbusy = true; item.GetComponent <WorkerController>().setCraft(verstak, slotCraft); isfind = true; } } } if (!isfind) { Debuglog("Нет свободных рабочих"); } }