- 后端: Scala
- 前端: React + TypeScript
- 数据库: PostgreSQL
- 实时通信: WebSocket
- 使用 PgAdmin4 管理数据库
- 使用 IntelliJ IDEA 打开后端五个Service文件夹并启动所有的
Server.scala
- 进入
frontend文件夹 - 运行以下命令:
npm install
npm start- 浏览器访问
127.0.0.1:3000/login进入游戏页面
💡 如需使用其它地址,请修改 ServiceConfig.ts 文件中的API地址
首先注册并登录账号
登录后进入游戏大厅
- 前往祈愿界面进行抽卡
- 在管理卡组页面设置好出战的三张卡牌
- 进入开始对战创建房间,发送房间ID给好友进行联机匹配对战
- 双人对战模式
- 起始状态:每人6血、0能量
- 每回合结算制
每回合玩家可选择以下两种行动类型之一:
| 类型 | 效果 | 说明 |
|---|---|---|
| 饼类 | 获得能量 + 伤害倍率 | |
| └ 饼 | 获得1能量,伤害倍率×1 | |
| └ 馕 | 获得2能量,伤害倍率×3 | |
| 弹 | 消耗所有能量 | |
| 防类 | 不消耗能量 | |
| └ 防[attacktype] | 免疫指定类型 | |
| 攻击 | ||
| └ 防[class] | 免疫指定class的攻击值 | |
| └ 防[action] | 免疫指定action的攻击 |
| 攻击类型 | 攻击值 | 防御值 | 消耗能量 | 攻击类型 |
|---|---|---|---|---|
| 撒 | [普通]1 | 5 | 1 | 基础攻击 |
| tin | [普通]3 | 1 | 1 | 基础攻击 |
| 南蛮 | [穿透]3 | 5 | 3 | 穿透类攻击 |
| 大闪 | [穿透]4 | 5 | 4 | 穿透类攻击 |
| 万箭 | [防弹]2 | 5 | 3 | 防弹类攻击 |
| 核爆 | [核爆]5 | 6 | 5 | 核爆攻击 |
-
单一行动: 基础类型的叠加(n次)
- 攻击值:n × 基础攻击值
- 防御值:n × 基础防御值
- 消耗能量:n × 基础消耗
-
复合行动: 多种单一行动的组合
- 攻击值:各单一行动攻击值之和
- 防御值:各单一行动防御值之和
- 消耗能量:各单一行动消耗能量之和
- 如果任一方能量不足以支付消耗,该方"爆点"
- 爆点惩罚:-3血,回合结束
- 双方血量不变
- 存在复合行动时: 双方均扣血 = 对方攻击总和 - 己方防御总和
- 均为单一行动时:
- 同类型:按叠加次数抵消,剩余方造成攻击伤害,satin有特殊效果
- 不同类型:按复合类型结算
| 被动方类型 | 受到伤害 | 主动方受到伤害 |
|---|---|---|
| 饼 | (攻击[普通]+攻击[穿透]+攻击[防弹]) × 伤害倍率 | 0 |
| 防(防[attacktype]) | 攻击[核爆]+攻击[穿透] | 0 |
| 弹 | 攻击[核爆]+攻击[防弹] | 攻击[普通]+攻击[穿透] |
| 防[class] | 除该class外的所有攻击 | 攻击[普通]+攻击[穿透]+攻击[防弹]+攻击[核爆] |
| 防[action] | 若攻击方为该action则免疫,否则受到所有攻击 | 0 |
- 一方血量>0,另一方<0:血量>0的一方获胜
- 双方血量均<0:血量较高的一方获胜
- 双方血量相同且均<0:平局
- 若有人受到伤害,双方能量清零
- 进入下一回合




