public MovementMember Clone()
        {
            MovementMember clonedMember = new MovementMemberImpl();

            clonedMember.Name             = this.Name;
            clonedMember.Ability          = this.Ability;
            clonedMember.Direction        = this.Direction;
            clonedMember.AbilityReference = this.AbilityReference;

            return(clonedMember);
        }
        public void AddMovementMember(Direction direction, AnimatedAbility.AnimatedAbility ability)
        {
            MovementMember member = new MovementMemberImpl();

            member.Direction = direction;
            member.Name      = direction.ToString();
            if (ability == null)
            {
                ability      = new AnimatedAbilityImpl();
                ability.Name = GetDefaultMemberAbilityName(direction);
            }
            member.Ability = ability;
            MovementMembers.Add(member);
        }