Esempio n. 1
0
        public static string ToFriendlyString(this TopDownDirection direction)
        {
            switch (direction)
            {
            case TopDownDirection.Down:
                return(nameof(TopDownDirection.Down));

            case TopDownDirection.DownLeft:
                return(nameof(TopDownDirection.DownLeft));

            case TopDownDirection.DownRight:
                return(nameof(TopDownDirection.DownRight));

            case TopDownDirection.Left:
                return(nameof(TopDownDirection.Left));

            case TopDownDirection.Right:
                return(nameof(TopDownDirection.Right));

            case TopDownDirection.Up:
                return(nameof(TopDownDirection.Up));

            case TopDownDirection.UpLeft:
                return(nameof(TopDownDirection.UpLeft));

            case TopDownDirection.UpRight:
                return(nameof(TopDownDirection.UpRight));
            }

            return(nameof(TopDownDirection.Down));
        }
Esempio n. 2
0
        public static Microsoft.Xna.Framework.Vector3 ToVector(this TopDownDirection direction)
        {
            float diagonalLength = (float)System.Math.Cos(MathHelper.PiOver4);

            switch (direction)
            {
            case TopDownDirection.Left: return(Vector3.Left);

            case TopDownDirection.UpLeft: return(new Vector3(-diagonalLength, diagonalLength, 0));

            case TopDownDirection.Up: return(Vector3.Up);

            case TopDownDirection.UpRight: return(new Vector3(diagonalLength, diagonalLength, 0));

            case TopDownDirection.Right: return(Vector3.Right);

            case TopDownDirection.DownRight: return(new Vector3(diagonalLength, -diagonalLength, 0));

            case TopDownDirection.Down: return(Vector3.Down);

            case TopDownDirection.DownLeft: return(new Vector3(-diagonalLength, -diagonalLength, 0));
            }

            return(Vector3.Right);
        }
Esempio n. 3
0
        public void SetAnimationChainFromVelocity(TopDownDirection aimingDirection, Weapon weapon)
        {
            string weaponAnimationName = null;

            switch (weapon)
            {
            case Weapon.ShootingFire: weaponAnimationName = "Fireball"; break;

            case Weapon.ShootingSkulls: weaponAnimationName = "Skull"; break;
            }
            SpriteInstance.CurrentChainName = weaponAnimationName + "_" + aimingDirection.ToFriendlyString();
            var positionOffset = TopDownDirectionExtensions.ToVector(aimingDirection);

            Position += positionOffset * OffsetRadius;
        }
Esempio n. 4
0
        public static TopDownDirection FlipY(this TopDownDirection directionToFlip)
        {
            switch (directionToFlip)
            {
            case TopDownDirection.Left: return(TopDownDirection.Left);

            case TopDownDirection.UpLeft: return(TopDownDirection.DownLeft);

            case TopDownDirection.Up: return(TopDownDirection.Down);

            case TopDownDirection.UpRight: return(TopDownDirection.DownRight);

            case TopDownDirection.Right: return(TopDownDirection.Right);

            case TopDownDirection.DownRight: return(TopDownDirection.UpRight);

            case TopDownDirection.Down: return(TopDownDirection.Up);

            case TopDownDirection.DownLeft: return(TopDownDirection.UpLeft);
            }
            throw new System.Exception();
        }
 public static string GenerateChainName(PrimaryActions primaryAction, TopDownDirection direction)
 {
     return($"{primaryAction.ToFriendlyString()}{direction.ToFriendlyString()}");
 }