public Tram removeTram() { Tram tram = null; for (int i = 0; i < reserved.Count; i++) { if (reserved[i].working) { tram = reserved[i]; reserved.RemoveAt(i); break; } } if (tram == null) { for (int i = 0; i < trams.list.Count; i++) { if (trams.list[i].working) { tram = trams.list[i]; tram.resetRoute(); break; } } } if (tram != null) { trams.remove(tram); tram.removed = true; } return(tram); }
// Создает трамвай и добавляет его в резерв // Создает и передает радио трамваю public Tram addTram() { var tram = new Tram(tramIndex++ + 1, new Radio(repairStation)); trams.add(tram); reserved.Add(tram); return(tram); }
// Помещает трамвай в список на починку, говорит депо снять его с линии public void repair(Tram tram) { if (tram.removed) { throw new Exception("Can't repair removed"); } repair(tram, Rnd.Next(5) + 10, tramsInRepair); //depot.moveToReserved(tram); }
// Перемещает трамвай в резерв public void moveToReserved(Tram tram) { if (!reserved.Contains(tram)) { reserved.Add(tram); } tram.resetRoute(); }
// Сообщает в диспетчерскую о поломке пути public void brokeNotify(Route route, Tram tram) { repairStation.repair(route, tram); }
// Сообщает в диспетчерскую о поломке трамвая public void brokeNotify(Tram tram) { repairStation.repair(tram); }
// Конструктор создает водителя, сохраняет ссылку на трамвай и радио public Driver(Tram tram, Radio radio) { this.radio = radio; this.tram = tram; }
// Помещает маршрут в список на починку public void repair(Route route, Tram tram) { repair(route, Rnd.Next(9) + 10, routesInRepair); }