private IEnumerable <Disturbance> DetectTransients(VIDataGroup viDataGroup) { IEnumerable <Disturbance> vaTransients = DetectTransients(viDataGroup.VA, Phase.AN); IEnumerable <Disturbance> vbTransients = DetectTransients(viDataGroup.VB, Phase.BN); IEnumerable <Disturbance> vcTransients = DetectTransients(viDataGroup.VC, Phase.CN); IEnumerable <Disturbance> vabTransients = DetectTransients(viDataGroup.VAB, Phase.AB); IEnumerable <Disturbance> vbcTransients = DetectTransients(viDataGroup.VBC, Phase.BC); IEnumerable <Disturbance> vcaTransients = DetectTransients(viDataGroup.VCA, Phase.CA); List <Disturbance> transientList = vaTransients.Concat(vbTransients).Concat(vcTransients).Concat(vabTransients).Concat(vbcTransients).Concat(vcaTransients).ToList(); Disturbance worst = null; foreach (Disturbance transiet in transientList) { if ((object)worst == null || transiet.PerUnitMagnitude > worst.PerUnitMagnitude) { worst = transiet; } worst = worst.Clone(); worst.Phase = Phase.Worst; } if (worst != null) { transientList.Add(worst); } return(transientList); }
public void InitNewDisturbance(Disturbance disturbance, int nDifficulty) { bool bPosNeg = GetRandomPosNeg(nDifficulty); int nIntensity = GetRandomIntensity(nDifficulty); int nMeter = GetRandomMeter(); float fTimeToReachCenter = GetRandomTimeToReachCenter(nDifficulty); disturbance.Init(bPosNeg, nIntensity, nMeter, fTimeToReachCenter); }
public void SpawnDisturbance(int nDifficulty) { //Spawn an appropriate random disturbance of given difficulty Vector3 v3PositionToSpawnAt = GetRandomStartingPoint(); GameObject goNewlySpawned = GameObject.Instantiate(pfDisturbance, this.transform); goNewlySpawned.transform.localPosition = v3PositionToSpawnAt; Disturbance disturbance = goNewlySpawned.GetComponent <Disturbance>(); InitNewDisturbance(disturbance, nDifficulty); }
public void OnDisturbanceCollision(Disturbance disturbance) { //React to colliding with a disturbance with given intensity (may be positive or negative) float fImpact = Configurables.inst.arfValIncrements[disturbance.nIntensity]; if (disturbance.bPosNeg == false) { fImpact *= -1; } ChangeVelocity(fImpact); fTimeSinceLastInput = 0f; }
private void AddDisturbanceRow(EventKey eventKey, DataGroup dataGroup, Disturbance disturbance) { MeterData.DisturbanceRow row = m_disturbanceTable.NewDisturbanceRow(); row.EventTypeID = s_eventTypeLookup[disturbance.EventType]; row.PhaseID = GetPhaseID(disturbance.Phase); row.Magnitude = disturbance.Magnitude; row.PerUnitMagnitude = ToDbFloat(disturbance.PerUnitMagnitude); row.StartTime = disturbance.StartTime; row.EndTime = disturbance.EndTime; row.DurationSeconds = disturbance.DurationSeconds; row.DurationCycles = disturbance.GetDurationCycles(m_systemFrequency); row.StartIndex = disturbance.StartIndex; row.EndIndex = disturbance.EndIndex; m_disturbanceList.Add(Tuple.Create(eventKey, row)); }