﻿using JLGames.RocketDriver.Games.RpgMaterial.Common;

namespace JLGames.RocketDriver.Games.RpgMaterial.Service
{
    public static class Trigger
    {
        private static int m_TriigerId = 1000;

        /// <summary>
        /// Generate Trigger Id
        /// 生成触发器Id
        /// </summary>
        /// <returns></returns>
        public static int GenTriggerId()
        {
            return m_TriigerId++;
        }

        /// <summary>
        /// Check if it matches
        /// 检查是否匹配
        /// </summary>
        /// <param name="data"></param>
        public delegate bool TriggerMatch(ITriggerEntity trigger, UserNotifyData data);

        /// <summary>
        /// Invoke trigger
        /// 执行触发
        /// </summary>
        /// <param name="data"></param>
        public delegate void TriggerInvoke(ITriggerEntity trigger, UserNotifyData data);

        /// <summary>
        /// Value Compare Type
        /// 数值比较类型
        /// </summary>
        public enum CompareType
        {
            Equal,
            NotEqual,
            Greater,
            Less,
            GreaterEqual,
            LessEqual,
        }

        /// <summary>
        /// Trigger tracking type
        /// 触发器的数值跟踪类型类型
        /// </summary>
        public enum TrackingType
        {
            Offset,
            Value
        }
    }
}