From c0dfb652c9cb6d02df804520dfed430c34617ecb Mon Sep 17 00:00:00 2001 From: DragonAura Date: Sat, 4 Mar 2023 23:01:20 +0800 Subject: [PATCH] feat(proto): :sparkles: update with new rules --- dependency/proto/Message2Clients.proto | 59 ++++++++++++++++++++++---- dependency/proto/Message2Server.proto | 2 +- dependency/proto/MessageType.proto | 7 ++- dependency/proto/Services.proto | 8 +++- 4 files changed, 62 insertions(+), 14 deletions(-) diff --git a/dependency/proto/Message2Clients.proto b/dependency/proto/Message2Clients.proto index 5f13f80..7e4d4af 100755 --- a/dependency/proto/Message2Clients.proto +++ b/dependency/proto/Message2Clients.proto @@ -13,7 +13,7 @@ message MessageOfStudent int32 fail_num = 5; // 挂科的科目数 double time_until_skill_available = 6; PlaceType place = 7; - PropType prop = 8; + repeated PropType prop = 8; StudentType student_type = 9; int64 guid = 10; StudentState state = 11; @@ -34,7 +34,7 @@ message MessageOfTricker int32 damage = 4; // 对学生造成的心理伤害 double time_until_skill_available = 5; PlaceType place = 6; - PropType prop = 7; + repeated PropType prop = 7; TrickerType tricker_type = 8; int64 guid = 9; bool movable = 10; // 是否进入了攻击后摇 @@ -87,6 +87,37 @@ message MessageOfPickedProp //for Unity,直接继承自THUAI5 int64 mapping_id = 5; } +message MessageOfClassroom +{ + int32 x = 1; + int32 y = 2; + int32 progress = 3; +} + +message MessageOfGate +{ + int32 x = 1; + int32 y = 2; + int32 progress = 3; +} + +message MessageOfDoor +{ + int32 x = 1; + int32 y = 2; + bool is_open = 3; +} + +message MessageOfMapObj +{ + oneof message_of_map_obj + { + MessageOfClassroom classroom_message = 1; + MessageOfDoor door_message = 2; + MessageOfGate gate_message = 3; + } +} + message MessageOfMap { message Row @@ -94,17 +125,27 @@ message MessageOfMap repeated PlaceType col = 1; } repeated Row row = 2; + repeated MessageOfMapObj map_obj_message = 3; +} + +message MessageOfObj +{ + oneof message_of_obj + { + MessageOfStudent student_message = 1; + MessageOfTricker tricker_message = 2; + MessageOfProp prop_message = 3; + MessageOfBullet bullet_message = 4; + MessageOfBombedBullet bombed_bullet_message = 5; + } } message MessageToClient { - repeated MessageOfStudent student_message = 1; - repeated MessageOfTricker tricker_message = 2; // 是否真正repeated待定 - repeated MessageOfProp prop_message = 3; - repeated MessageOfBullet bullet_message = 4; - repeated MessageOfBombedBullet bombed_bullet_message = 5; - MessageOfMap map_message = 6; - GameState game_state = 7; + repeated MessageOfObj obj_message = 1; + MessageOfMap map_message = 2; + GameState game_state = 3; + int32 finished_num = 4; // 完成的科目数 } message MoveRes // 如果打算设计撞墙保留平行速度分量,且需要返回值则可用这个(大概没啥用) diff --git a/dependency/proto/Message2Server.proto b/dependency/proto/Message2Server.proto index c3fcda3..eb748ea 100755 --- a/dependency/proto/Message2Server.proto +++ b/dependency/proto/Message2Server.proto @@ -22,7 +22,7 @@ message MoveMsg int64 time_in_milliseconds = 3; } -message PickMsg +message PropMsg { int64 player_id = 1; PropType prop_type = 2; diff --git a/dependency/proto/MessageType.proto b/dependency/proto/MessageType.proto index d289639..b2ac017 100755 --- a/dependency/proto/MessageType.proto +++ b/dependency/proto/MessageType.proto @@ -23,6 +23,8 @@ enum PlaceType // 地图中的所有物件类型 CLASSROOM = 4; GATE = 5; HIDDEN_GATE = 6; + WINDOW = 7; + DOOR = 8; // 待补充有特殊效果的地形 } @@ -109,6 +111,7 @@ enum GameState { NULL_GAME_STATE = 0; GAME_START = 1; - GAME_RUNNING = 2; - GAME_END = 3; + STAGE_1 = 2; // 第一阶段:大门没有开 + STAGE_2 = 3; // 第二阶段:大门已经开了 + GAME_END = 4; } diff --git a/dependency/proto/Services.proto b/dependency/proto/Services.proto index 3b00e01..798f698 100755 --- a/dependency/proto/Services.proto +++ b/dependency/proto/Services.proto @@ -13,7 +13,7 @@ service AvailableService // 游戏过程中玩家执行操作的服务 rpc Move (MoveMsg) returns (MoveRes); - rpc PickProp (PickMsg) returns (BoolRes); + rpc PickProp (PropMsg) returns (BoolRes); rpc UseProp (IDMsg) returns (BoolRes); rpc UseSkill (IDMsg) returns (BoolRes); rpc SendMessage (SendMsg) returns (BoolRes); @@ -23,5 +23,9 @@ service AvailableService rpc StartHealMate (IDMsg) returns (BoolRes); rpc Trick (TrickMsg) returns (BoolRes); // 攻击 rpc Graduate (IDMsg) returns (BoolRes); // 相当于逃跑 - + rpc OpenDoor (IDMsg) returns (BoolRes); // 开门 + rpc CloseDoor (IDMsg) returns (BoolRes); // 关门 + rpc SkipWindow (IDMsg) returns (BoolRes); // 窗户 + rpc StartOpenGate (IDMsg) returns (BoolRes); // 开闸门 + rpc EndAllAction (IDMsg) returns (BoolRes); // 结束所有动作 } \ No newline at end of file