void OnEnterTramComplete(int playerIndex) { // Debug.Log("DEBUGTIME_SPAWN_ARRIVE: "+DEBUGTIME_SPAWN_ARRIVE); RequestedStop rs = stopNameManager.CharArrived(); passengerInfo[playerIndex].Show(rs.urgency * timeBetweenStops + timeBetweenStopsMargin, rs.stopName); if (_boardingCount < 4) { ++_boardingCount; //all aboard, start moving! if (_boardingCount == 4) { tramSpeed = minTramSpeed; _updateHandler = UpdateMovingTram; EventManager.StartTramEvent(); } } }
public RequestedStop CharArrived() { RequestedStop requestedStop = new RequestedStop("", UnityEngine.Random.Range(1, 4)); //A chance of 1/6 to get the same stop as another player (if there are other players with stops...) bool sameAsOther = (_requestedStops.Count > 0 && UnityEngine.Random.Range(0, 6) == 0); if (sameAsOther) { RequestedStop rsSame = _requestedStops[UnityEngine.Random.Range(0, _requestedStops.Count)]; requestedStop.stopName = rsSame.stopName; requestedStop.urgency = rsSame.urgency; } else { //increase urgency until it is unique! (no 2 stops with the same urgency) bool isUnique = false; do { isUnique = true; for (int i = 0; i < _requestedStops.Count; i++) { if (requestedStop.urgency == _requestedStops[i].urgency) { ++requestedStop.urgency; isUnique = false; } } } while (!isUnique); requestedStop.stopName = _stopNamesQueue.Dequeue(); _stopNamesQueue.Enqueue(requestedStop.stopName); _requestedStops.Add(requestedStop); } return(requestedStop); }