# 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为箱子等级，可以叠加多种等级的箱子

## 更新日志

### v1.0.0
- 添加插件

# 反馈
- 优先发issued -> 共同维护的插件库：https://github.com/UnrealMultiple/TShockPlugin
- 次优先：TShock官方群：816771079
- 该插件年代久远，并且未经太多测试，实际可玩性并不太行，并且存在许多问题  