private Orbital SwitchToNextOrbital() { HoldingOrbital = Orbitals[OrbitalIndex = NextOrbitalIndex]; NextOrbital.MakeImportant(); HoldingOrbital.RevokeImportant(); return(HoldingOrbital); }
public void Swap(TilePoint hit) { Target = hit; if (EndTime >= Clock.CurrentTime) { NextOrbital.AnimateEarly(Math.Min(140, hit.Duration)); } else { NextOrbital.AnimateLate(Math.Min(140, hit.Duration)); } Snap(); Swap(); TilePosition = hit.TilePosition; RotateTo(hit.OutAngle, hit.HitTime, hit.HitTime + hit.Duration); lastDistance = HitokoriTile.SPACING * (hit.Next?.Distance ?? 1); AnimateDistance(duration: hit.StartTime + hit.Duration - TransformStartTime, distance: lastDistance, easing: Easing.None); }