# SurvivalCrisis 类among us小游戏
- 作者: GUZZ07, Cobalt-27(洞穴地形生成)和不愿被透露的最初策划者
- 这是一个用于TShock服务端的小游戏插件
- 需要搭配专门的地图和预设建筑用,也可以自行制作地图
- 开一盘小游戏需要至少四名玩家和游戏内一昼夜的时间
- 虽然能运行,但这个小游戏依旧是最初设想时的状态,很多地方缺少调整,因此实际可玩性并不太行

## 用法
- 需要配置地图和预设建筑,建议直接将Presets文件夹的内容复制到目录下
- 启动服务器后,需要至少四名玩家进入准备区域(对于预设地图,可通过出生点左侧不远处传送器进入准备区域),等待30s倒计时后开始一盘游戏
- 开始游戏后会进入夜晚,全员死亡或者一昼夜过后自动结束游戏并结算

## 指令

| 名称      | 别名 |      权限       |     说明     |
|---------|:--:|:-------------:|:----------:|
| /hotreload    | 无  | sc.hotreload | 热重载插件 |
| /scd    | 无  | sc.debug |   几个用于debug的命令   |
| /sc | 无  | sc.player |   玩家用得到的命令   |
| /sc pch <聊天内容> | 无  | sc.player |   背板者玩家私聊   |
| /sc task | 无  | sc.player |   查看生存者任务(可选完成)   |
| /sc st <数字> | 无  | sc.player |   背板者商店(游戏中使用)   |
| /sc rank | 无  | sc.player |  查看分数排名   |
| /sc score | 无  | sc.player |  查看战绩   |
| /sc nt | 无  | sc.player |  更换称号(下一个)   |
| /sc np | 无  | sc.player |  更换前缀(下一个)   |

# 游戏玩法
## 背景故事  
```
SurvivalCrisis——生存危机
你和你的同伴们不幸遭遇了一场空难
当你们苏醒时,发现自己正身处一块未知的大陆
所幸,营救的信号已经发出,接下来你们只需要等待
但要小心……在那黑暗之中,潜伏着某种可怖的存在
亦要小心,在你们尚处昏迷之时,你们中的一些人就已经被掉包了。
```
## 游戏规则
- 游戏中有两种身份:“生存者”和“背板者”,玩家将在游戏开始时被随机分配身份  
- 游戏至少需要4人才能进行,"背板者"数量占总人数的1/4(向下取整)  
- 游戏开始时,时间将被调至19:30,并在一段时间后强制开启PVP;第二天16:30时,所有玩家将被传送回出生岛并强制关闭PVP,在19:30时,将自动召唤弱化机械骷髅王并强制开启PVP  
- 游戏开始时,玩家将自动获取身份。“生存者”需要击败弱化机械骷髅王才能获得胜利;若所有"生存者"死亡,或是在第三天黎明带来之前未能击败骷髅王,则"背板者"获胜  
- 在23min的游戏进程中,将会发生三次"特殊事件",其名称和到来倒计时将会显示在屏幕右侧  
- 屏幕右侧会显示当前生存者任务,将所需物品放入飞猪即可提交(不需要一次性全部提交)  
- 装备”打折卡“时右侧会显示背板者商店,将所需物品一次性放入飞猪即可购买  
- 在开启强制PVP前可自由组队,每队至多两人;boss战斗开启后则可以任意组队  
- 在决战前死于非pvp手段可复活,但在决战中死亡则无法复活,被其他玩家击杀也无法复活  
## 生存者
- 收集资源并尽量活下去
- 提交资源完成可选的集体任务,解锁更多功能
- 在探索途中,注意观察队友的行为,寻找背板者
- 在决战前做好战斗准备击败小boss
- 在天亮前击败boss获得胜利
## 背板者
- 伪装成生存者,混入他们之中
- 开局装备更优
- 找机会用pvp手段消灭落单的生存者
- 阻挠生存者击败boss
- 有单独的商店,可以购买特殊装备和道具
## 注
- 聊天存在距离限制,距离过远玩家无法交流  
- 背板者装备幽灵眼镜后会进入专门的聊天频道,只有背板者可以看到
- 距离决战3分钟前,所有玩家会被传送回出生点,暂时强制关闭pvp    
- 决战前有投票环节,用类似虫洞药水传送方式可投票淘汰一名玩家  
- 决战前死于非玩家因素可复活,决战中死亡则无法复活  
- 决战开始,所有人暴露身份  
- 装备袖珍镜时攻击他人可揭露身份  
- 死亡玩家可观战  
# 地图
游戏场地内,地图按高度分为7层(可在配置文件调节具体高度),内容不固定,每次都是随机生成
## 天空
- 位于出生点上方,有若干生成的空岛,内有会刷新装备的宝箱
## 地表
- 游戏开始时的出生点,出生地头上会生成一栋小楼,右侧会生成5栋房屋并附带5名固定的npc  
- 地表会生成湖泊、树木和小山包,每个小山包一侧生成一条向下蔓延的通道  
- 地表之下会生成些许宝箱和矿物  
## 洞穴
- 位于地表下方,地形与原版地下类似,但不含遗迹
- 同样会生成宝箱和矿物(包括生命水晶),但质量比地表层更高
- 存在少数上锁宝箱,需要从地狱层获得金钥匙方能开启,内含足以逆转战局的装备
## 空洞层
- 铺满了背景墙,但是依然会刷新特定怪物
- 需要依靠火箭靴、钩爪以地图中刷新的大量灯笼状结构四处行动
- 矿物和箱子生成于大大小小的“资源球”中
- 小资源球位置随机,大资源球位置固定但种类不固定
- 建筑岛不刷新资源
## 迷宫层
- 上下边界处有等距分布的固定数量出入口
- 迷宫通路不唯一
- 不生成矿物,但会生成大量宝箱,品质比上层更高
- 会生成固定数目个大房间,大房间中心有晶塔,使用镐子敲击可随机传送至另一大房间晶塔处
- 尽管铺满背景墙,但依然会刷怪
## 迷幻洞穴
- 地形同浅层洞穴,但宝箱和矿物等级更高、数量更多
- 会刷新特殊怪物美杜莎,击杀概率掉落关键道具袖珍镜
## 地狱层
- 大部分区域被灰烬块填充,随机刷新岩浆空洞,空洞中含被神庙砖包裹的宝箱
- 需要排掉岩浆或者装备抗岩浆道具以开启宝箱
- 宝箱概率开出金钥匙,用于开启洞穴层上锁宝箱

# 配置说明
## 目录说明
在`TShock.Server.exe`所在目录下应当存在以下内容   
```
.  
├── SurvivalCrisis/  
│   ├── CrisisConfig.json  地图配置文件  
│   ├── Islands/  
│   │   └── (天空岛的预设和部分建筑的预设)  
│   └── Spheres/  
│       └── (空洞层资源球的预设)  
```
## 配置文件项
文件中包含固定个区域的上下左右边界,通过TShock自带的命令/pos获取
- Hall 开始一轮游戏时的出生地
- Lobby 进入服务器后的大厅区域
- WaitingZone 准备开始游戏的等待区域,4名义上玩家进入后开始倒计时
- GamingZone 游戏开始后的区域,包含以下共7层
- Islands 天空层
- Surface 地表层
- Cave 洞穴层
- Spheres 空洞层
- Maze 迷宫层
- CaseEx 迷幻洞穴
- Hell 地狱层  

还有一个条目`SpheresLarge`,用于配置空洞层的大资源球位置(以左上角为基准),格式如下
```
  "SpheresLarge": 
  [
    { "X": 456, "Y": 1060 },
    { "X": 801, "Y": 1353 },
    { "X": 1156, "Y": 1111 },
    { "X": 1503, "Y": 1037 },
    { "X": 1794, "Y": 1367 },
    { "X": 2133, "Y": 1107 },
    { "X": 2491, "Y": 1303 },
    { "X": 2882, "Y": 1123 }
  ]
```
## 预设建筑
位于SurvivalCrisis下的Islands和Spheres文件夹内,包含了建筑、资源球和天空岛的预设  
## islands
- `Hall.sec` 出生点小楼
- `NPCHouse.sec` 出生点旁NPC小屋
- `Pylon.sec` 迷宫层的晶塔
- `SkyIslandαV5.sec` 天空岛的预设,α为编号,生成时随机选择,V5在此处没有实际含义
- `SkyLakeX.sec` 未使用的天空湖泊预设
## Spheres
- `XXXXLarge.sec` 大号资源球的预设,Large后缀是必须的,前面的随意
- `Huneger*.sec` 建筑岛的预设,Hunger前缀是必须的,*为编号,生成时随机选择
- `Light.sec` 灯笼预设,会在空洞层大量分布以辅助玩家移动
- 除此之外的均为小号资源球的预设,`Vx`后缀是必须的,x为箱子等级,可以叠加多种等级的箱子
# 反馈
- 优先发issued -> 共同维护的插件库:https://github.com/UnrealMultiple/TShockPlugin
- 次优先:TShock官方群:816771079
- 该插件年代久远,并且未经太多测试,实际可玩性并不太行,并且存在许多问题