syntax = "proto2";

package ActivityParallelUniversesEventResult;

option java_package = "com.miaole.live.protocol.response";
option java_outer_classname = "ActivityParallelUniversesEventResult";


// 在线人数变更事件 1、进入地图 2、游客主动离开地图
message OnlineNumChangeEvent {
  optional int64 timestamp = 1; //发送的时间戳
  optional string mapId = 2; // 地图ID
  optional int32 onlineUserNum = 3;//在线人数
}

// 地图玩家变更事件 1、玩家超时变成游客 2、玩家摇骰子位置变更 3、对他人使用道具 4、玩家离开房间 5、用户查看被操作记录
message MapPlayerEvent {
  optional int64 timestamp = 1; //发送的时间戳
  optional string mapId = 2; // 地图ID
  optional int32 mapType = 3; // 地图类型
  optional string mapFullName = 4; // 地图全称

  optional int32 onlineUserNum = 5;//在线人数
  repeated Tile tileList = 6; // 地图格子列表
  repeated Player playerList = 7; // 地图玩家列表
  repeated Tile awardList = 8; // 地图大奖列表

  optional int32 redPacketNum = 9;//红包数量
  optional int32 nextRedPacketTime = 10;//下一次投放红包时间点

  optional int64 mapRefreshCountDown = 11;//地图刷新倒计时
  optional int64 redPacketCountDown = 12;//红包倒计时（针对异次元地图）

  optional int32 mapVipType = 13;//地图VIP类型 0-普通 1-vip 2-svip

}

// 用户被踢出地图事件
message KickOutMapEvent {
  optional int64 timestamp = 1; //发送的时间戳
  optional string mapId = 2; // 地图ID
  optional int32 type = 3; //1、超时停留  2、新一期活动开始
}

// 地图格子
message Tile {
  optional string icon = 1; //礼物图片
  optional int32 position = 2; // 格子点位
  optional int32 colorType = 3; // 颜色类型
  optional int32 awardType = 4; // 奖励类型 1小奖 2大奖
  optional bool hasRedPacket = 5; // 是否有红包
}

// 地图玩家
message Player {
  optional string userId = 1; //用户id
  optional string headUrl = 2; // 头像Url
  optional string nickName = 3; // 昵称
  optional int32 position = 4; // 所在地图点位
  optional bool inWait = 5; // 是否在等待位
  optional bool isVip = 6; // 是否VIP
  optional int64 lastMoveTime = 7; // 最后一次移动时间搓
  repeated ForcedMoveRecord forcedMoveRecords = 8; // 被操作记录
  optional int32 userType = 9; // 用户身份  0、普通用户 1、VIP 2、SVIP
}

// 玩家被操作记录
message ForcedMoveRecord {
  optional int64 operateTime = 1; //操作时间
  optional string optUserId = 2; // 操作用户ID
  optional string optNickName = 3; // 操作用户昵称
  optional int32 type = 4; // 操作类型 1、使用起点卡 2、使用随机卡
  optional int32 fromPosition = 5; // 操作前点位
  optional int32 toPosition = 6; // 操作后点位
}
