Esempio n. 1
0
 // REVIEW: この辺の生ノーツデータを手づかみで触る処理はここじゃなくてNoteBookでやったほうが安全じゃない…?
 private void ReverseShortNotes(List <Note> noteList, LaneBook laneBook, NoteBook noteBook)
 {
     noteList.ForEach(x =>
     {
         int reverseLane      = BottomRightPosition.Lane - (x.Position.Lane - TopLeftPosition.Lane + x.Size) + 1;
         Position newPosition = new Position(reverseLane, x.Position.Tick);
         x.RelocateOnlyAndUpdate(newPosition, laneBook);
         if (x is AirableNote airable && airable.IsAirAttached)
         {
             Air newAir = null;
             if (airable.Air is AirUpL)
             {
                 newAir = new AirUpR(x);
             }
             else if (airable.Air is AirUpR)
             {
                 newAir = new AirUpL(x);
             }
             else if (airable.Air is AirDownL)
             {
                 newAir = new AirDownR(x);
             }
             else if (airable.Air is AirDownR)
             {
                 newAir = new AirDownL(x);
             }
             if (newAir != null)
             {
                 noteBook.DetachAirFromAirableNote(airable, out _);
                 noteBook.AttachAirToAirableNote(airable, newAir);
             }
         }
     });
 }