using System;

namespace GameData {
    /// <summary>
    /// 桌上玩家数据包
    /// </summary>
    public class DeskPlayerData<T>  where T : playerData {
        /// <summary>
        /// 类型 0添加 1移除 2所有玩家数据
        /// </summary>
        public int style;

        /// <summary>
        /// 添加移除时有效
        /// </summary>
        public int index;

        /// <summary>
        /// 玩家数据 当style = 2 所有值有效 当style = 1 全部无效 当 style = 0 第一个datas[0] 有效
        /// </summary>
        public playerData[] datas;

        /// <summary>
        /// json序列化使用
        /// </summary>
        public DeskPlayerData() {}

        

    }

    /// <summary>
    /// 玩家状态信息变化包
    /// </summary>
    public class PlayerStateChangePack {
        /// <summary>
        /// 变化的玩家座位
        /// </summary>
        public int seat;

        /// <summary>
        /// 玩家状态__DeskPlayerState
        /// </summary>
        public int state;

        /// <summary>
        /// 
        /// </summary>
        public PlayerStateChangePack() { }

        /// <summary>
        /// 
        /// </summary>
        /// <param name="seat">座位</param>
        /// <param name="state">状态</param>
        public PlayerStateChangePack(int seat,int state) {
            this.seat = seat;
            this.state = state;
        }
    }

    /// <summary>
    /// 托管变化包
    /// </summary>
    public class PlayerDePositChange
    {
        public int seat;

        public bool isDePosit;
        
        /// <summary>
        /// 
        /// </summary>
        /// <param name="seat">座位</param>
        /// <param name="isDePosit">托管状态</param>
        public PlayerDePositChange(int seat,bool isDePosit) {
            this.seat = seat;
            this.isDePosit = isDePosit;
        }
    }

    /// <summary>
    /// 离线变化包
    /// </summary>
    public class OutLineChangePack
    {
        public int seat;

        public int state;

        public OutLineChangePack(int seat, int state)
        {
            this.seat = seat;
            this.state = state;
        }

        public OutLineChangePack()
        {
        }
    }
}
