using System;
using EscapeRoomEngine.Engine.Runtime.Modules;

namespace EscapeRoomEngine.Engine.Runtime.Utilities
{
    public class EngineException : Exception
    {
        public EngineException(string message) : base($"<b>[EngineException]</b> {message}") {}
    }

    public class WrongTypeException : EngineException
    {
        public WrongTypeException(Type expected, Type found, Type baseType) : base($"Wrong type of {baseType} ({found} instead of {expected})") {}
        
        public WrongTypeException(DoorType expected, DoorType found) : base($"Wrong door type ({found} instead of {expected})") {}
        
        public WrongTypeException(string message) : base(message) {}
    }

    public class OptionException : Exception
    {
        public OptionException(string message) : base(message) {}
    }
}