package mahjong_common;

message Card
{
	optional int32 card = 1;//牌
	optional int32 status = 2;//牌是否被碰杠吃走了，如果为1则是被碰杠吃走了，不应该显示在自己的牌堆里。
}

//定时器信息
message TimerInfo
{
	optional int32 timerId = 1; //定时器id
	optional int32 timeout = 2; //定时器时长
}

//吃碰杠信息
message ChiPengGangGroup
{
	optional int64 opCode = 1;//是吃、碰、杠
	repeated int32 cards = 2;//牌列表
	optional string extern = 3;//预留字段
}

//结算钱数
message SettleMoney
{
	optional string name = 1;//类型，名字
	optional int64 totalMoney = 2;//钱数
	repeated int64 p2pMoney = 3;//跟各个玩家之间的结算
	optional int32 isShow = 4;//是否显示该结算(0，1)
}

//番信息
message FanInfo
{
	optional int32 type = 1;//番类型(code)
	optional int32 fan = 2;//番数
	optional int32 bei = 3;//倍数
}

//结算信息
message SettleInfo
{
	optional int32 fan = 1;//总番数
	optional int32 bei = 2;//总倍数
	optional int32 bWin = 3;//是否是胡牌的人(0，1)
	repeated FanInfo fanInfo = 4;//番信息
	optional int64 turnExp = 5;//本局获得经验
	optional int64 winMoney = 6;//本局获得钱(未扣台费)
	optional int64 turnMoney = 7;//本局获得钱(已扣台费)
	repeated SettleMoney moneyItemList = 8;//各种类型结算的钱
	optional int32 isBroked = 9;//是否破产(0，1)
	optional int32 isLessWin = 10;//是否触发以小博大(0，1)
}

//玩家
message PlayerInfo
{
	optional int32 seatId = 1;//座位号
	optional int64 userId = 2;//userId
	optional int32 isReady = 3;//是否准备(0，1)
	optional int32 isAi = 4;//是否托管(0，1)
	optional int32 tingOpcode = 5;//听牌操作码(0表示未听牌)
	optional int32 tryTingOpcode = 6;//点击了哪种听的按钮(0表示未点击)
	optional int32 isOnline = 7;//是否在线(0，1)
	optional string userInfo = 8;//信息
	optional int64 money = 9;//钱
	optional int32 cardCount = 10;//手牌数量
	repeated int32 handCards = 11;//手牌
	repeated ChiPengGangGroup groups = 12;// 吃碰杠牌的信息(有序)
	repeated Card  outCards = 13;//所出的牌
	optional SettleInfo settle = 14;//结算信息
	optional int64 exp = 15;//当前总经验
	optional int32 status = 16;//玩家状态(0:未胡牌，1:已胡牌，2:已认输)
	optional int32 totalFan = 17;//已胡玩家胡的番数
	optional int32 totalBei = 18;//已胡玩家胡的倍数
	optional int32 outLaizi = 19;//玩家打出的赖子数
	optional int32 hadLaizi = 20;//玩家拥有的赖子数
}