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)); }
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); }
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; }
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()}"); }