-
Notifications
You must be signed in to change notification settings - Fork 0
/
game.proto
65 lines (55 loc) · 1.28 KB
/
game.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
syntax = "proto3";
package game;
import "google/protobuf/timestamp.proto";
import "template.proto";
import "token.proto";
// 游戏类型
enum GameType {
g2048 = 0;
wordle = 1;
compose_sit = 2;
tetris = 3;
}
// 排名中的单项
message RankingItem {
// 名次
int32 ranking = 1;
// 用户描述。昵称或用户自定义描述
string user_description = 2;
// 游戏类型
GameType _type = 3;
// 得分
int32 score = 4;
}
// 单条游戏记录
message GameRecord {
// 产生记录的时间戳
google.protobuf.Timestamp ts = 1;
// 游戏类型
GameType _type = 2;
// 得分值
int32 score = 3;
// 游戏用时
optional int32 time_cost = 4;
}
message RecordListRequest {
// 用户凭据
token.UserToken token = 1;
// 请求分页信息
template.PageOption page = 2;
}
message RecordListResponse {
repeated GameRecord game_record_list = 1;
}
message PublicRankingRequest {
GameType _type = 1;
template.PageOption page = 2;
}
service GameService {
// 保存用户游戏记录
rpc SaveScore(GameRecord) returns (template.Empty);
// 获取公共游戏排名列表
rpc GetPublicRanking(PublicRankingRequest) returns (RecordListResponse);
// 获取个人游戏记录
rpc GetMyRecordList(RecordListRequest) returns (RecordListResponse);
}