Ejemplo n.º 1
0
        private Orbital SwitchToNextOrbital()
        {
            HoldingOrbital = Orbitals[OrbitalIndex = NextOrbitalIndex];

            NextOrbital.MakeImportant();
            HoldingOrbital.RevokeImportant();

            return(HoldingOrbital);
        }
Ejemplo n.º 2
0
        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);
        }