using System;
using Server;

namespace Server.Misc
{
    class Settings
    {
		public static string ServerName()
		{
			// What is the name of your server?
			return "Avatars Conquest";
		}

		public static string PublicIP()
		{
			// The site that returns your public IP address
			// You want a page that just returns a plain white page with only the IP address
			return "http://icanhazip.com/";
		}

		public static bool DetectPublicIP()
		{
			// The server may try to detect your public IP address.
			// The console will show if it is trying to obtain one.
			// If you don't see a console message stating it is trying to 
            // find one, set this to true to force it if you want to run a public server.
			return true;
		}

		public static bool LogoutSave()
		{
			// This will save your world when your character logs out.
			// It is highly encouraged to set this to 'false' if you are running a multiplayer server.
			return true;
		}

		public static int StartGold()
		{
			// How much gold do players start with? Default 100.
			return 100;
		}

		public static int GoldCutRate() // DEFAULT IS 25% OF WHAT GOLD NORMALLY DROPS
		{
			// THIS AFFECTS MONEY ELEMENTS SUCH AS...
			// MONSTER GOLD
			// CHEST GOLD
			// QUEST REWARD GOLD

			return 25;
		}

		public static double SaveInterval()
		{
			// How many minutes does your server save its information?
			return 30.0;
		}

		public static bool CastSpellsHoldingThings()
		{
			// If true, then players can cast spells while holding items.
			return false;
		}

		public static bool CannotDrinkPotionsWhileHoldingThings()
		{
			// If true, then players can drink potions while holding items.
			return false;
		}

		public static bool CanStealWhileHoldingThings()
		{
			// If true, then players will not be blocked from stealing while holding items.
			return false;
		}

		public static bool MonstersConcentrate()
		{
			// If true, then monsters that have the Concentration skill will use it when casting spells.
			return true;
		}

		public static bool MonstersSurprise()
		{
			// If true, then monsters will not be seen until they are in line of sight of the character in dungeons or graveyards.
			return true;
		}

		public static bool MonstersSearch()
		{
			// If true, then all monsters will have some searching skill based on their level, allowing them to search for hidden creatures/players.
			return true;
		}

		public static bool AllowMacroing()
		{
			// Some skills can be macroed to have unattended gains by players. Setting this to false will mitigate that.
			return false;
		}

		public static int MaxAccountsPerIP()
		{
			// How many accounts can a player have per IP address?
			return 100;
		}

		public static bool AutoAccountCreation()
		{
			// Do you want players to have their accounts automatically created?
			// If so...their account will be created based on the username and password they enter.
			// Setting this to false will rely on your to create accounts for them.
			return true;
		}

		public static bool RestrictDeletion()
		{
			// If true, then players cannot delete a character until it is past the DeleteDelay() time frame, which is set below this setting.
			return false;
		}

		public static double DeleteDelay()
		{
			// If the RestrictDeletion() is set to true, this is the number of days a character must be before they can be deleted.
			return 7.0;
		}

		public static double BoatDelete()
		{
			// How many days before an unattended boat sinks into the sea. This timer resets when players use the boat.
			return 30.0;
		}

		public static bool HouseTimer()
		{
			// If set to true, houses will slowly deteriorate. The timer resets when a owner visits it again.
			return false;
		}

		public static double HouseDelete()
		{
			// How many days before a house starts to deteriorate. If the above setting is false, this setting has no effect. The timer resets when a owner visits it again.
			return 5.0;
		}

		public static int HousesPerAccount()
		{
			// How many houses can an account build. The original game is "1" but this game's default is "5".
			return 5;
		}

		public static bool DisplayInfo()
		{
			// If set to true, armor and weapons will display much more statistical information as opposed to only the vague information that the classic game had.
			return true;
		}

		public static bool PopulateTowns()
		{
			// If set to true, some random characters and ships will appear in your towns to make them feel more active.
			return true;
		}

		public static bool PigmentLeather()
		{
			// If set to true, players can use the pigment tubs to dye leather armor.
			return true;
		}

		public static bool PigmentMetal()
		{
			// If set to true, players can use the pigment tubs to dye metal armor.
			return true;
		}

		public static bool PigmentWood()
		{
			// If set to true, players can use the pigment tubs to dye wooden armor.
			return true;
		}

		public static double HitPoints()
		{
			// This value modifies a player character hit points, as well as the effectiveness of healing potions and spells.
			// This value should be no lower than 1.0, as that is standard hit points for a massively multiplayer environment.
			// The default is 2.0, which is a decent value for a single player experience.
			return 2.0;
		}

		public static int MonsterSpawn()
		{
			// This is the minimum amount of minutes between monsters spawns in dungeons mostly.
			// Tweak this setting based on how busy your game world is and the amount of players.
			// The maximum amount of time will be 30 minutes beyond the minimum.
			return 60;
		}

		public static int BossSpawn()
		{
			// This is the minimum amount of minutes between bosses spawns in dungeons mostly.
			// Bosses are generally the strongest monster(s) in the particular area.
			// Tweak this setting based on how busy your game world is and the amount of players.
			// The maximum amount of time will be 30 minutes beyond the minimum.
			return 90;
		}
	}
}
