using System.Collections.Generic;

namespace Project.B.Player
{
    /// <summary>
    /// 玩家键位
    /// </summary>
    public interface IPlayerKeyMap<T>:IKeyMap
    {
        /// <summary>
        /// 移动
        /// </summary>
        public T MovementKey { get; }
        /// <summary>
        /// 视角
        /// </summary>
        public T ViewKey { get;  }
        /// <summary>
        /// 跳跃
        /// </summary>
        public T JumpKey { get; }
        /// <summary>
        /// 奔跑
        /// </summary>
        public T RunKey{ get; }
        /// <summary>
        /// 蹲下
        /// </summary>
        public T CrouchKey{ get; }
        /// <summary>
        /// 切换第三人称相机
        /// </summary>
        public T ToggleCameraKey{ get; }
        /// <summary>
        /// 互动
        /// </summary>
        public T InteractiveKey { get; }
        /// <summary>
        /// 收起武器
        /// </summary>
        public T HolsterKey { get; }
        /// <summary>
        /// 主武器
        /// </summary>
        public T PrimaryWeaponKey { get; }
        /// <summary>
        /// 副武器
        /// </summary>
        public T SecondaryWeaponKey{ get; }
        /// <summary>
        /// 随身武器
        /// </summary>
        public T SidearmKey { get; }
        /// <summary>
        /// 消耗品
        /// </summary>
        public T SuppliesKey { get; }
        /// <summary>
        /// 战术道具
        /// </summary>
        public T TacticalKey { get; }
        /// <summary>
        /// 致命道具
        /// </summary>
        public T LethalKey { get; }
        /// <summary>
        /// 连杀道具
        /// </summary>
        public T KillStreakKey { get; }
        /// <summary>
        /// 滚轮缩放,在不同状态下有不同的表现
        /// </summary>
        public T ScrollKey { get; }
        /// <summary>
        /// 近战
        /// </summary>
        public T MeleeKey { get; }
        /// <summary>
        /// 重装
        /// </summary>
        public T ReloadKey { get; }
        /// <summary>
        /// 瞄准
        /// </summary>
        public T AimKey { get; }
        /// <summary>
        /// 开火
        /// </summary>
        public T FireKey { get; }
        /// <summary>
        /// 检视
        /// </summary>
        public T InspectKey { get; }
    }
}


