/// <summary>
        /// Method for updating secondary motivation Aspect ( != attention/satisfaction/confidence)
        /// </summary>
        ///
        /// <param name="ms"> Motivation state for storing the new values. </param>
        internal void updateSecondaryMotivationAspects(MotivationState ms)
        {
            MotivationModel mm = ms.getMotivationModel();

            foreach (MotivationAspect ma in mm.motivationAspects.motivationAspectList)
            {
                if (!primaryMotivationAspects.Contains(ma.name))
                {
                    if (ms.getMotivation().ContainsKey(ma.name))
                    {
                        try
                        {
                            double sol = FormulaInterpreter.eval(ma.rule);
                            ms.updateMotivationAspect(ma.name, sol);
                        }
                        catch (Exception e)
                        {
                            loggingMAs("Warning: Update for secondary motivation aspects not done.", Severity.Warning);
                            loggingMAs("Exception caught: " + e.Message);
                        }
                    }
                    else
                    {
                        loggingMAs("Warning: Motivation aspect not found!", Severity.Warning);
                    }
                }
            }
        }
        /// <summary>
        /// Returns the Motivation State of a player when provided with player-Id.
        /// </summary>
        ///
        /// <param name="playerId"> Identifier of the player. </param>
        ///
        /// <returns> Motivation state of the specified player. </returns>
        public Dictionary <string, double> getMotivationState()
        {
            MotivationState ms = Handler.getMotivationState();

            return(ms.getMotivation());;
        }