syntax = "proto3";
package protos;

import "userinfo.proto";
import "result.proto";

message PartyJoinRequest {
    uint64 PartyID = 1;
    int32 PartyType = 2; // 1 = 糖豆人； 2 = ** ; 3 = **
    int32 Identidy = 3; // 身份 0 = 游戏者; 1 = 观察者
}

message PartyJoinResponse {
    Result Result = 1;
    uint32 PartyID = 2;
    int32 Identidy = 3; // 身份 0 = 游戏者; 1 = 观察者
    uint32 sit = 4; // 座位号
}

message PartyJoinPush {
    UserInfo UserInfo = 1;
}

message PartyLeaveRequest {
}

message PartyLeaveResponse {
    Result Result = 1;
}

message PartyLeavePush {
    uint32 UserID = 1;
}

message PartyReadyRequest {
}

message PartyReadyResponse {
    Result Result = 1;
}

message PartyReadyPush {
    uint32 UserID = 1;
}

message PartyFullPush {
}

message PartyResetPush {
    repeated UserInfo Users = 1;
    uint64 Step = 2;
    map<string, bytes> state = 3;
    string Road = 4;
}

message PartyFinishPush {
}

message PartyStageCrossRequest { 
    uint32 StageIndex = 1; // 第几个小关
}

message PartyStageCrossResponse {
    Result Result = 1;
    uint32 CrossIndex = 2; // 第几个通关的
}

message PartyStageCrossPush {
    uint32 UserID = 1;
    uint32 StageIndex = 2; // 第几个小关
    uint32 CrossIndex = 3; // 第几个通关的
}

message PartyStageStartPush {
    uint32 StageIndex = 1; // 第几个小关
    repeated uint32 Users = 2; // 参加用户
    uint32 t = 3; // 时间限制
}

message PartyStageFinishPush {
    uint32 StageIndex = 1; // 第几个小关
    repeated uint32 Users = 2; // 过关用户
}

message PartyInfo {
    uint64 PartyID = 1;
    int32 PartyType = 2; // 1 = 糖豆人； 2 = ** ; 3 = **
    int32 GameUserCount = 3; // 游戏人数
    int32 ObUserCount = 4; // 观战人数
    int32 Status = 5; // 房间状态 0 = 已创建;1=已满员; 2=已开始; 3 = 已结束; 4 = 已解散
}

message PartyListRequest {
    int32 PartyType = 1; // 0 = 不限; 1 = 糖豆人； 2 = ** ; 3 = **
}

message PartyListResponse {
    Result Result = 1;
    repeated PartyInfo Parties = 2;
}