﻿using JLGames.RocketDriver.Games.RpgMaterial.Material;
using JLGames.RocketDriver.Games.RpgMaterial.User;

namespace JLGames.RocketDriver.Games.RpgMaterial.Service
{
    public interface IMaterialServiceOper : IMaterialService
    {
        /// <summary>
        /// Check if the nth code point is 1 in material definition
        /// 检查材料定义的第n码位是否为1
        /// </summary>
        /// <param name="mId"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        bool CheckMaterialOperability(int mId, int index);

        /// <summary>
        /// Check if the nth code point is 1 in user material data
        /// 检查用户材料定义的第n码位是否为1
        /// </summary>
        /// <param name="eId"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        bool CheckUserMaterialOperability(int eId, int index);
    }

    public interface IMaterialServiceOper<TU, TM, TCfg> : IMaterialServiceOper, IMaterialService<TU, TM, TCfg>
        where TU : IUserMaterialOper<TM, TCfg>
        where TM : IMaterialOper<TCfg>
    {
    }
}