protected override void MovePhase() { base.MovePhase(); if (gameObject.activeSelf) { float ProgressBy100 = CurrentFrame * Speed; float ProgressBy1 = ProgressBy100 / 100; if (!IsHit && (!Mode.Equals(NoteInfo.SlideNoteStart) || (Mode.Equals(NoteInfo.SlideNoteStart) && Game.Frame < ReachFrame))) { if (Game.Mode.Equals(GameMode.Theater2P)) { float cX = NotePath.GetTheaterX(StartPos.x, EndPos.x, ProgressBy1); float cY = NotePath.GetTheaterPortY(ProgressBy100); CurrentPos = new Vector3(cX, cY, CurrentPos.z); Body.anchoredPosition3D = CurrentPos; Body.localScale = new Vector3(NotePath.GetTheaterScale(ProgressBy1), NotePath.GetTheaterScale(ProgressBy1), 1); } else { float cX = NotePath.GetTheaterX(StartPos.x, EndPos.x, ProgressBy1); float cY = NotePath.GetTheaterY(ProgressBy100); CurrentPos = new Vector3(cX, cY, CurrentPos.z); Body.anchoredPosition3D = CurrentPos; Body.localScale = new Vector3(NotePath.GetTheaterScale(ProgressBy1), NotePath.GetTheaterScale(ProgressBy1), 1); } BeforePos = CurrentPos; } else if (Mode.Equals(NoteInfo.SlideNoteStart) && !Game.Paused && (IsHit || Game.Frame >= ReachFrame)) { Body.anchoredPosition3D += new Vector3(((Game.Dispensor.Notes[NextNoteID].EndPos.x - EndPos.x) / ((SlideFrameDistance + SlideFrameCalibrator) / 60)) * Time.deltaTime, 0); if (IsHit) { FlickBorderLeft = Body.anchoredPosition3D.x - 79; FlickBorderRight = Body.anchoredPosition3D.x + 79; } } if (!Game.Paused) { if (Mode.Equals(NoteInfo.LongNoteStart) && !IsHit) { TailToNext.SetStartPos(Body.anchoredPosition3D, ProgressBy1, SizeInPixelNext * (140f / 100)); } if ((Mode.Equals(NoteInfo.SlideNoteStart) || Mode.Equals(NoteInfo.SlideNoteCheckpoint) && TailToNext != null)) { TailToNext.SetStartPos(Body.anchoredPosition3D, (Mode.Equals(NoteInfo.SlideNoteStart) && Game.Frame >= ReachFrame) ? 1 : ProgressBy1, SizeInPixelNext * (140f / 100), (Game.Frame - LastSlideReachFrame) / (Game.Dispensor.Notes[NextNoteID].ReachFrame - LastSlideReachFrame)); if (!Game.Dispensor.Notes[NextNoteID].IsAppeared) { TailToNext.SetDeltaEndPos((Game.Dispensor.Notes[NextNoteID].StartPos - StartPos) / (SlideFrameDistance + SlideFrameCalibrator), 0, SizeInPixelNext * (140f / 100), (Game.Frame - LastSlideAppearFrame) / (Game.Dispensor.Notes[NextNoteID].AppearFrame - LastSlideAppearFrame)); } } if (TailsFromPrevious.Count > 0) { for (int i = 0; i < TailsFromPrevious.Count; i++) { if (TailsFromPrevious[i] != null) { TailsFromPrevious[i].SetEndPos(Body.anchoredPosition3D, CurrentFrame * Speed > 100 ? 1 : ProgressBy1, SizeInPixelPrev * (140f / 100)); } } } } } }