Skip to content

Commit

Permalink
重做间谍
Browse files Browse the repository at this point in the history
  • Loading branch information
liuzhaomax committed Mar 13, 2024
1 parent 9eb9ad8 commit bba4034
Show file tree
Hide file tree
Showing 7 changed files with 341 additions and 200 deletions.
75 changes: 46 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@
+ 全程不需闭眼
+ 技能施放没有顺序限制
+ 玩家面板上,玩家是围坐成一个圈的,也就是左右区域顶部两个玩家是邻座,左右区域底部两个玩家是邻座
+ 间谍(详情见1.3节)
+ 隐士(详情见1.3节)
+ 隐士一定会被认作邪恶身份,与wiki不同,说书人的意志,属于难度降低版(详情见1.3节)
+ 下毒者一定会让中毒者得到错误信息,与wiki不同,说书人的意志,属于难度降低版(详情见1.3节)
+ 守鸦人除第一夜,每晚都要点验。假设自己死亡,你要验谁(详情见1.3节)
+ 建议规则
+ 自觉,不要给别人看屏幕,私聊也不要给看,更不要发送截图,这个算作弊
Expand Down Expand Up @@ -120,12 +120,17 @@
### 1.3 技能细节
+ 洗衣妇
+ 被毒后,一定获取假信息
+ 间谍被认作村民,会被洗衣妇发现
+ 图书管理员
+ 可以看到酒鬼,看不到隐士
+ 被毒后,一定获取假信息
+ 被毒后,有极小概率获取“没有外来者”的假信息,这个概率约为2%
+ 间谍被认作外来者,会被图书管理员发现
+ 调查员
+ 被毒后,一定获取假信息
+ 如果隐士被认作某个爪牙,是可以查出来的
+ 间谍被毒,会被调查员发现
+ 如果只有一个没中毒的间谍,则会发现没有爪牙
+ 厨师
+ 一对是两恶相连,两对是三恶连座
+ 被毒后,一定获取假信息
Expand All @@ -141,9 +146,12 @@
+ 被毒后,不一定获取假信息
+ 掘墓人
+ 挖到隐士,会看到他被当作的身份,而不是隐士
+ 挖到间谍,会看到他被当作的身份,而不是间谍
+ 隐士被处决,下毒再毒,挖出来是隐士身份,而不是被当作的身份
+ 间谍被处决,下毒再毒,挖出来是间谍身份,而不是被当作的身份
+ 被毒后,一定获取假信息
+ 因为只能看处决的人的身份,所以不存在挖出中毒的隐士尸体的情况
+ 可以看到酒鬼
+ 僧侣
+ 不能守自己
+ 守护可挡刀,不可挡毒
Expand All @@ -153,17 +161,21 @@
+ 转天自己没死,则没有信息
+ 可以验死人
+ 验到隐士,会看到他被当作的身份,而不是隐士;如果隐士中毒,看到的是隐士
+ 验到间谍,会看到他被当作的身份,而不是间谍;如果间谍中毒,看到的是间谍
+ 被毒后,一定获取假信息
+ 可以看到酒鬼
+ 圣女
+ 村民提名立即触发技能,弹死后,本轮无法提名
+ 其他身份提名,会让圣女失去能力,而且进入投票环节
+ 只要被提名,技能就会被消耗
+ 村民和被注册为村民的间谍提名圣女立即被弹死,之后本轮无法提名
+ 其他人提名,会让圣女失去能力,不会被弹死
+ 被毒,也会消耗技能,但不会有人被弹死
+ 反弹属于处决,不能触发市长技能
+ 杀手
+ 白天开枪,立即结算
+ 枪毙被当作恶魔的隐士,隐士直接死亡
+ 被枪毙者不暴露身份
+ 被毒后,开枪,子弹也会清零
+ 处决发生后,不能开枪
+ 士兵
+ 可与守护叠加
+ 被毒后,可被刀死
Expand All @@ -179,12 +191,13 @@
+ 开局获取身份,自己并不知道自己是酒鬼
+ 酒鬼信息同中毒效果
+ 隐士
+ 开局被当作的邪恶身份,爪牙或恶魔
+ 开局被当作的邪恶身份,爪牙或恶魔(与wiki不同,说书人的意志)
+ 如果被当作间谍,别人看他,他将不是邪恶的
+ 被毒会变回隐士,变回隐士不会被枪毙,直到中毒效果解除
+ 圣徒
+ 被毒,当日被投,不会结束游戏
+ 下毒者
+ 中毒者不可能得到正确信息(与wiki不同,说书人的意志)
+ 毒隐士会让隐士不再邪恶,如果隐士被视作恶魔,被毒也不再被视作恶魔
+ 毒间谍会让间谍变为邪恶
+ 毒只在当晚和接下来的白天起作用
Expand All @@ -200,7 +213,11 @@
+ 间谍
+ 第一夜可获取所有身份,身份绝对正确,获取身份不受毒的影响
+ 被毒会变为邪恶
+ 恶魔可以直接知道间谍的身份,而不是只知道他是爪牙
+ 被毒,注册身份会变为爪牙
+ 被毒不能看魔典
+ 被注册为村民,提名圣女会被弹死
+ 被注册为外来者,提名圣女不会被弹死
+ 日转夜会重新注册身份,注意看魔典当夜有没有中毒,中毒会被注册成爪牙
+ 小恶魔
+ 被毒就是平安夜
+ 有一定概率直接刀死市长,市长会有概率转移弹死除恶魔外的一切活人
Expand Down Expand Up @@ -379,29 +396,29 @@

> 排除酒鬼
| 主动`` 被动`` | 下毒者 | 僧侣 | 魅魔 | 小恶魔 | 守鸦人 | 共情者 | 占卜师 | 管家 | 掘墓人 | 杀手 | 圣女 |
|:-----------:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| 下毒者 ||||||||||||
| 僧侣 ||||||||||||
| 魅魔 | 😫 |||||||||||
| 小恶魔 ||||||||||||
| 守鸦人 ||||||||||||
| 共情者 ||||||||||||
| 占卜师 ||||||||||||
| 管家 ||||||||||||
| 掘墓人 ||||||||||||
| 杀手 ||||||||||||
| 圣女 ||||||||||||
| 士兵 ||||||||||||
| 市长 ||||||||||||
| 隐士 ||||||||||||
| 圣徒 ||||||||||||
| 男爵 ||||||||||||
| 间谍 | 😫 |||||||||||
| 洗衣妇 ||||||||||||
| 图书管理员 ||||||||||||
| 调查员 ||||||||||||
| 厨师 ||||||||||||
| 主动`` 被动`` | 下毒者 | 僧侣 | 魅魔 | 小恶魔 | 守鸦人 | 共情者 | 占卜师 | 管家 | 掘墓人 | 杀手 | 圣女 | 间谍 |
|:-----------:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| 下毒者 |||||||||||||
| 僧侣 |||||||||||||
| 魅魔 | 😫 ||||| | ||||||
| 小恶魔 |||||||||||||
| 守鸦人 |||||||||||||
| 共情者 |||||||||||||
| 占卜师 |||||||||||||
| 管家 |||||||||||||
| 掘墓人 |||||||||||||
| 杀手 |||||||||||||
| 圣女 |||||||||||||
| 士兵 |||||||||||||
| 市长 |||||||||||||
| 隐士 |||||||||||||
| 圣徒 |||||||||||||
| 男爵 |||||||||||||
| 间谍 | 😫 ||||| | ||||||
| 洗衣妇 |||||||||||||
| 图书管理员 |||||||||||||
| 调查员 |||||||||||||
| 厨师 |||||||||||||

> 被动者是酒鬼
Expand Down
15 changes: 9 additions & 6 deletions client/src/pages/gaming/Gaming.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@ function Gaming() {
[/(?<=).*?(?=)|/g, "highlight highlight-number"], // 数字
[/\[([^\]]+)]/g, "highlight highlight-player"], // 玩家名字
[/\{[^}]+}/g, "highlight highlight-skill-result"], // 技能结果关键字
[/(||||||||)/g, "highlight highlight-skill"], // 技能关键字
[/(|||||||||)/g, "highlight highlight-skill"], // 技能关键字
[/(|)/g, "highlight highlight-severe"], // 重大事件关键字
[/()/g, "highlight highlight-nominate"], // 提名
[/()/g, "highlight highlight-vote"], // 投票
Expand Down Expand Up @@ -383,7 +383,7 @@ function Gaming() {
// 所有有技能的操作完,没技能的点完验证码,时间等待结束,不在投票阶段,则切换日夜,切换后首先结算前一阶段
return !game.state.votingStep
&& !castLock
&& ready // TODO 测试时,可注释
// && ready // TODO 测试时,可注释
|| game.state.stage === 0
}

Expand Down Expand Up @@ -771,6 +771,9 @@ function Gaming() {
if (game.state.night) {
return "夜晚不能开枪"
}
if (game.executed) {
return "已发生处决,不能开枪"
}
for (let i = 0; i < selectedPlayersObj.length; i++) {
if (selectedPlayersObj[i].state.dead) {
return "您不能枪毙已死的人"
Expand Down Expand Up @@ -894,9 +897,9 @@ function Gaming() {
}
}
// TODO 测试代码 开始
// const handleCaptchaCancel = () => {
// setIsCaptchaModalOpen(false)
// }
const handleCaptchaCancel = () => {
setIsCaptchaModalOpen(false)
}
// TODO 测试代码 结束

// 游戏说明
Expand Down Expand Up @@ -958,7 +961,7 @@ function Gaming() {
{contextHolder}
</Context.Provider>
<Modal title="验证码" open={isCaptchaModalOpen}
// onCancel={handleCaptchaCancel}
onCancel={handleCaptchaCancel}
footer={null}>
<div id="CaptchaModal">
{isCaptchaModalOpen ?
Expand Down
31 changes: 24 additions & 7 deletions client/src/pages/gaming/Instruction.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ const text = `
+ 全程不需闭眼
+ 技能施放没有顺序限制
+ 玩家面板上,玩家是围坐成一个圈的,也就是左右区域顶部两个玩家是邻座,左右区域底部两个玩家是邻座
+ 间谍(详情见1.3节)
+ 隐士(详情见1.3节)
+ 隐士一定会被认作邪恶身份,与wiki不同,说书人的意志,属于难度降低版(详情见1.3节)
+ 下毒者一定会让中毒者得到错误信息,与wiki不同,说书人的意志,属于难度降低版(详情见1.3节)
+ 守鸦人除第一夜,每晚都要点验。假设自己死亡,你要验谁(详情见1.3节)
+ 建议规则
+ 自觉,不要给别人看屏幕,私聊也不要给看,更不要发送截图,这个算作弊
Expand Down Expand Up @@ -71,12 +71,17 @@ const text = `
### 1.3 技能细节
+ 洗衣妇
+ 被毒后,一定获取假信息
+ 间谍被认作村民,会被洗衣妇发现
+ 图书管理员
+ 可以看到酒鬼,看不到隐士
+ 被毒后,一定获取假信息
+ 被毒后,有极小概率获取“没有外来者”的假信息,这个概率约为2%
+ 间谍被认作外来者,会被图书管理员发现
+ 调查员
+ 被毒后,一定获取假信息
+ 如果隐士被认作某个爪牙,是可以查出来的
+ 间谍被毒,会被调查员发现
+ 如果只有一个没中毒的间谍,则会发现没有爪牙
+ 厨师
+ 一对是两恶相连,两对是三恶连座
+ 被毒后,一定获取假信息
Expand All @@ -91,10 +96,13 @@ const text = `
+ 可以验死人,死人会受其他技能影响,例如死了的被当作恶魔的隐士被毒,会验不出恶魔
+ 被毒后,不一定获取假信息
+ 掘墓人
+ 挖到隐士,会看到他被当作的身份,而不是隐士;如果隐士中毒,看到的是隐士
+ 挖到隐士,会看到他被当作的身份,而不是隐士
+ 挖到间谍,会看到他被当作的身份,而不是间谍
+ 隐士被处决,下毒再毒,挖出来是隐士身份,而不是被当作的身份
+ 间谍被处决,下毒再毒,挖出来是间谍身份,而不是被当作的身份
+ 被毒后,一定获取假信息
+ 因为只能看处决的人的身份,所以不存在挖出中毒的隐士尸体的情况
+ 可以看到酒鬼
+ 僧侣
+ 不能守自己
+ 守护可挡刀,不可挡毒
Expand All @@ -104,17 +112,21 @@ const text = `
+ 转天自己没死,则没有信息
+ 可以验死人
+ 验到隐士,会看到他被当作的身份,而不是隐士;如果隐士中毒,看到的是隐士
+ 验到间谍,会看到他被当作的身份,而不是间谍;如果间谍中毒,看到的是间谍
+ 被毒后,一定获取假信息
+ 可以看到酒鬼
+ 圣女
+ 村民提名立即触发技能,弹死后,本轮无法提名
+ 其他身份提名,会让圣女失去能力,而且进入投票环节
+ 只要被提名,技能就会被消耗
+ 村民和被注册为村民的间谍提名圣女立即被弹死,之后本轮无法提名
+ 其他人提名,会让圣女失去能力,不会被弹死
+ 被毒,也会消耗技能,但不会有人被弹死
+ 反弹属于处决,不能触发市长技能
+ 杀手
+ 白天开枪,立即结算
+ 枪毙被当作恶魔的隐士,隐士直接死亡
+ 被枪毙者不暴露身份
+ 被毒后,开枪,子弹也会清零
+ 处决发生后,不能开枪
+ 士兵
+ 可与守护叠加
+ 被毒后,可被刀死
Expand All @@ -130,12 +142,13 @@ const text = `
+ 开局获取身份,自己并不知道自己是酒鬼
+ 酒鬼信息同中毒效果
+ 隐士
+ 开局被当作的邪恶身份,爪牙或恶魔
+ 开局被当作的邪恶身份,爪牙或恶魔(与wiki不同,说书人的意志)
+ 如果被当作间谍,别人看他,他将不是邪恶的
+ 被毒会变回隐士,变回隐士不会被枪毙,直到中毒效果解除
+ 圣徒
+ 被毒,当日被投,不会结束游戏
+ 下毒者
+ 中毒者不可能得到正确信息(与wiki不同,说书人的意志)
+ 毒隐士会让隐士不再邪恶,如果隐士被视作恶魔,被毒也不再被视作恶魔
+ 毒间谍会让间谍变为邪恶
+ 毒只在当晚和接下来的白天起作用
Expand All @@ -151,7 +164,11 @@ const text = `
+ 间谍
+ 第一夜可获取所有身份,身份绝对正确,获取身份不受毒的影响
+ 被毒会变为邪恶
+ 恶魔可以直接知道间谍的身份,而不是只知道他是爪牙
+ 被毒,注册身份会变为爪牙
+ 被毒不能看魔典
+ 被注册为村民,提名圣女会被弹死
+ 被注册为外来者,提名圣女不会被弹死
+ 日转夜会重新注册身份,注意看魔典当夜有没有中毒,中毒会被注册成爪牙
+ 小恶魔
+ 被毒就是平安夜
+ 有一定概率直接刀死市长,市长会有概率转移弹死除恶魔外的一切活人
Expand Down
2 changes: 1 addition & 1 deletion client/src/pages/review/Review.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ function Review() {
[/(?<=).*?(?=)||\(.*?\)/g, "highlight highlight-number"], // 数字
[/\[([^\]]+)]/g, "highlight highlight-player"], // 玩家名字
[/\{[^}]+}/g, "highlight highlight-skill-result"], // 技能结果关键字
[/(||||||||)/g, "highlight highlight-skill"], // 技能关键字
[/(|||||||||)/g, "highlight highlight-skill"], // 技能关键字
[/(|)/g, "highlight highlight-severe"], // 重大事件关键字
[/()/g, "highlight highlight-nominate"], // 提名
[/()/g, "highlight highlight-vote"], // 投票
Expand Down
2 changes: 2 additions & 0 deletions server/handler/game.go
Original file line number Diff line number Diff line change
Expand Up @@ -387,6 +387,8 @@ func initStatus(players []model.Player, replaceDrunk string) []model.Player {
break
}
}
case Spy:
players[i].State.RegisteredAsType = Minions
}
}

Expand Down
Loading

0 comments on commit bba4034

Please sign in to comment.