using System;

namespace Icarus.Logic.GameEngine
{
	/// <summary>
	/// I contain the Vital information necessary for a great game.
	/// 
	/// I, personally, love value types.
	/// </summary>
	public class GameProperties
	{
		private float fHealth;
        private float fCollisionDamage;

        /// <summary>
        /// This should hold the health of the current Game Object.
        /// </summary>
        public float Health {
            get { return this.fHealth; }
            set { this.fHealth = value;}
        }

        /// <summary>
        /// This should contain the damage inflicted by the object
        /// upon unfriendly objects during a collision
        /// </summary>
        public float CollisionDamage {
            get { return this.fCollisionDamage; }
            set { this.fCollisionDamage = value;}
		}

        /// <summary>
        /// Print the properties of the object
        /// </summary>
        public void PrintGameProperties() {
            Console.WriteLine(this.ToString());
        }
        
        /// <summary>
        /// Convert the GameProperties into a string Representation
        /// </summary>
        /// <returns>GameProperties string representation</returns>
        public override string ToString() {
            return ("GameProperties:\n" +
                    " Health: " + fHealth +
                    " CollisionDamage: " + fCollisionDamage);
        }
	}
}
