public override void JudgePassive(float curTime, HitObjectView hitObjectView) { foreach (var result in hitObjectView.JudgePassive(curTime)) { RecordJudgement(result.Key, result.Value, true); AddJudgement(result.Value); } }
/// <summary> /// Starts loading hit object to resolve for specified future. /// </summary> private IEnumerator LoadHitObjects(ManualTask task) { int createCount = 0; int lastLoads = 0; foreach (var obj in GameSession.CurrentMap.HitObjects) { // If create count reached 0, determine new creation count. if (createCount <= 0) { createCount = Mathf.Max((int)((1f / Time.deltaTime) + lastLoads) / 4, 1); lastLoads = createCount; yield return(null); } createCount--; HitObjectView hitObjView = null; if (obj is HitCircle hitCircle) { var hitCircleView = hitCircleRecycler.GetNext(); hitCircleView.Depth = hitObjectViews.Count; hitCircleView.ObjectIndex = hitObjectViews.Count; hitCircleView.SetHitObject(hitCircle); hitObjectViews.Add(hitCircleView); hitObjView = hitCircleView; } else if (obj is Dragger dragger) { var draggerView = draggerRecycler.GetNext(); draggerView.Depth = hitObjectViews.Count; draggerView.ObjectIndex = hitObjectViews.Count; draggerView.SetHitObject(dragger); hitObjectViews.Add(draggerView); hitObjView = draggerView; } if (hitObjView != null) { // Apply combo color var combo = obj as IHasCombo; if (combo != null) { hitObjView.Tint = GetComboColor(combo); } } } task.SetFinished(); }
public override void JudgePassive(float curTime, HitObjectView hitObjectView) { // Nothing to do. All judgements should be simulated in Update. }
/// <summary> /// Handles passive judgement of the specified hit object view. /// </summary> public abstract void JudgePassive(float curTime, HitObjectView hitObjectView);