-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
长连接 vs 短链接
- 出于游戏考虑,游戏过程中,后端需要不断地向前端发送通知消息,所以暂时使用长连接 (web socket)。
登录、注册、房间等功能
- 打开网页,输入昵称,直接登录到默认房间
- 暂不支持创建房间的功能,只提供唯一默认房间
- 前端直接发起建立web socket。初始化消息为昵称
游戏准备过程
- 首个连接的玩家为房主,可以在所有玩家准备就绪状态下,开始游戏
- 前端显示玩家数目以及就绪状态
- 前端提供按钮,方便玩家更改就绪状态。状态改变请求通过web socket发送。后端需要向每一个接入的玩家发送通知。各个收到通知的玩家的前端进行相应更新
游戏进行过程
- 行动开始:
- 后端在每个角色行动前,向前端对应角色发送开始消息。
- 前端接收到消息后,提示玩家,并允许该玩家进行操作。
- 行动过程:
- 看牌操作(化身幽灵看牌,狼人互相确认,独狼看底牌,爪牙确认狼人,预言家看牌,强盗看牌,失眠者看牌)
- 后端将对应身份信息以消息的形式返回给前端
- 前端将信息正确显示
- 选择操作(化身幽灵选牌,预言家选牌,强盗选牌,捣蛋鬼选牌,酒鬼选牌,猎人选牌)
- 前端提供选择界面,并将选择结果以消息方式发送给后端进行处理。
- 后端根据选择卡牌已经所处行动,队卡牌进行处理。如果需要向前端反馈,则发送消息予以通知。
- 换牌操作
- 后端默默进行
- 前端可以动画显示
- 前后端无须通信
- 看牌操作(化身幽灵看牌,狼人互相确认,独狼看底牌,爪牙确认狼人,预言家看牌,强盗看牌,失眠者看牌)
- 行动结束:
- 后端在认为前端行动结束后,向前端发送结束消息。并等待反馈。
- 前端在接收到结束消息后,弹出通知框。确认后向后端发送消息。
- 下一轮行动:
- 后端收到所有前端行动结束的消息确认后,发起下一轮行动。
- 如果是最后一轮结束,后端向前端发送行动全部完成的通知消息。
撕逼过程
- 整个过程前端提供投票界面,并随时可以进行投票。
- 前端提供投票确认按钮,一旦点击,则向后端发送投票结果。
- 所有人均投票结束,后端统计。
- 如果投死的是猎人,后端额外发起一轮行动,如上。
- 猎人通过前端确认了带走的人之后,后端再次统计投票结果,并向前端公布所有人的身份和游戏结果
- 前端显示所有人身份,并显示游戏结果
- 前端显示返回按钮,点击则返回至游戏准备过程
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels