Compare commits

...
Author SHA1 Message Date
miniduikboot df65330e0b Allow players to send RPC SnapTo when spawning in
Starting from the Fungle updates clients have started doing this on some
maps:
- Skeld works properly on this map
- Mira fails on the spawn position check
- Polus doesn't have this change yet
- Airship doesn't snap out of bounds anymore???
2023-11-21 16:43:35 +01:00
js6pak 4de7c26880 Source generate map data and enums 2023-11-19 20:02:58 +01:00
115 changed files with 8374 additions and 1430 deletions

No files matched your search

+2
View File
@@ -10,6 +10,7 @@ WORKDIR /source
# Copy csproj and restore.
COPY src/Impostor.Server/Impostor.Server.csproj ./src/Impostor.Server/Impostor.Server.csproj
COPY src/Impostor.Api.Innersloth.Generator/Impostor.Api.Innersloth.Generator.csproj ./src/Impostor.Api.Innersloth.Generator/Impostor.Api.Innersloth.Generator.csproj
COPY src/Impostor.Api/Impostor.Api.csproj ./src/Impostor.Api/Impostor.Api.csproj
COPY src/Directory.Build.props ./src/Directory.Build.props
@@ -20,6 +21,7 @@ RUN case "$TARGETARCH" in \
*) echo "unsupported architecture"; exit 1 ;; \
esac && \
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Server/Impostor.Server.csproj && \
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Api.Innersloth.Generator/Impostor.Api.Innersloth.Generator.csproj && \
dotnet restore -r "$NETCORE_PLATFORM" ./src/Impostor.Api/Impostor.Api.csproj
# Copy everything else.
@@ -0,0 +1,11 @@
using System.Numerics;
namespace Impostor.Api.Innersloth.Generator;
internal static class Extensions
{
public static string ToCSharpString(this Vector2 value)
{
return $"new Vector2({value.X}f, {value.Y}f)";
}
}
@@ -0,0 +1,22 @@
using System.Collections.Immutable;
using System.Linq;
using Microsoft.CodeAnalysis;
namespace Impostor.Api.Innersloth.Generator.Generators;
public abstract class BaseGenerator
{
protected SourceProductionContext _sourceProductionContext;
protected ImmutableArray<(string RelativePath, string Content)> _files;
protected BaseGenerator(SourceProductionContext sourceProductionContext, ImmutableArray<(string RelativePath, string Content)> files)
{
_sourceProductionContext = sourceProductionContext;
_files = files;
}
protected string GetFileContent(string path)
{
return _files.Single(x => x.RelativePath == path).Content;
}
}
@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Text.Json;
using CSharpPoet;
using Microsoft.CodeAnalysis;
namespace Impostor.Api.Innersloth.Generator.Generators;
public sealed class EnumGenerator : BaseGenerator
{
public EnumGenerator(SourceProductionContext sourceProductionContext, ImmutableArray<(string RelativePath, string Content)> files) : base(sourceProductionContext, files)
{
}
public void Generate(string name, string? @namespace = null, string? sourceName = null, bool flags = false, CSharpEnumUnderlyingType underlyingType = CSharpEnumUnderlyingType.Int)
{
var dictionary = JsonSerializer.Deserialize<Dictionary<string, long>>(GetFileContent($"enums/{sourceName ?? name}.json"))!;
var @enum = new CSharpEnum(name, underlyingType);
foreach (var pair in dictionary)
{
var value = flags && pair.Value > 0
? $"1 << {Math.Log(pair.Value, 2)}"
: pair.Value.ToString();
@enum.Members.Add(new CSharpEnum.Member(pair.Key, value));
}
if (flags)
{
@enum.Attributes.Add(new CSharpAttribute("System.FlagsAttribute"));
}
var source = new CSharpFile(@namespace ?? "Impostor.Api.Innersloth") { @enum }.ToString();
_sourceProductionContext.AddSource(name, source);
}
}
@@ -0,0 +1,210 @@
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Numerics;
using System.Text.Json;
using CSharpPoet;
using Microsoft.CodeAnalysis;
namespace Impostor.Api.Innersloth.Generator.Generators;
public sealed class MapDataGenerator : BaseGenerator
{
public MapDataGenerator(SourceProductionContext sourceProductionContext, ImmutableArray<(string RelativePath, string Content)> files) : base(sourceProductionContext, files)
{
}
private T? Deserialize<T>(string name, string fileName)
{
return JsonSerializer.Deserialize<T>(
GetFileContent($"maps/{name}/{fileName}.json"),
new JsonSerializerOptions
{
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
Converters =
{
new Vector2Converter(),
},
}
);
}
public void Generate(string name)
{
var className = name + "Data";
var spawnInfo = Deserialize<SpawnInfo>(name, "spawn")!;
var tasks = Deserialize<Dictionary<int, TaskInfo>>(name, "tasks")!;
var vents = Deserialize<Dictionary<int, VentInfo>>(name, "vents")!;
var doors = Deserialize<Dictionary<int, DoorInfo>>(name, "doors")!;
var ventsData = new DictionaryData("VentData", "Vents", writer =>
{
foreach (var pair in vents)
{
var id = pair.Key;
var vent = pair.Value;
var connections = "";
if (vent.Left != null) connections += ", left: " + vent.Left.Value;
if (vent.Center != null) connections += ", center: " + vent.Center.Value;
if (vent.Right != null) connections += ", right: " + vent.Right.Value;
writer.WriteLine($"[{id}] = new(this, {id}, \"{vent.Name}\", {vent.Position.ToCSharpString()}{connections}),");
}
});
var tasksData = new DictionaryData("TaskData", "Tasks", writer =>
{
foreach (var pair in tasks)
{
var id = pair.Key;
var task = pair.Value;
writer.WriteLine($"[{id}] = new({id}, TaskTypes.{task.TaskType}, TaskCategories.{task.Length}Task),");
}
});
var doorsData = new DictionaryData("DoorData", "Doors", writer =>
{
foreach (var pair in doors)
{
var id = pair.Key;
var door = pair.Value;
writer.WriteLine($"[{id}] = new({id}, SystemTypes.{door.Room}, {door.Position.ToCSharpString()}),");
}
});
var constructor = new CSharpMethod(Visibility.Internal, className, ".ctor")
{
Body = writer =>
{
ventsData.WriteInitializer(writer);
writer.WriteLine();
tasksData.WriteInitializer(writer);
writer.WriteLine();
doorsData.WriteInitializer(writer);
},
};
var @class = new CSharpClass(className)
{
IsSealed = true,
Extends = { "MapData" },
Members =
{
constructor,
ventsData.CreateProperty(),
tasksData.CreateProperty(),
doorsData.CreateProperty(),
new CSharpBlankLine(),
CreateSimpleProperty("float", "SpawnRadius", spawnInfo.SpawnRadius + "f"),
CreateSimpleProperty("Vector2", "InitialSpawnCenter", spawnInfo.InitialSpawnCenter.ToCSharpString()),
CreateSimpleProperty("Vector2", "MeetingSpawnCenter", spawnInfo.MeetingSpawnCenter.ToCSharpString()),
CreateSimpleProperty("Vector2", "MeetingSpawnCenter2", spawnInfo.MeetingSpawnCenter2.ToCSharpString()),
},
};
var source = new CSharpFile("Impostor.Api.Innersloth.Maps")
{
Usings = { "System.Collections.Generic", "System.Numerics" },
Members = { @class },
}.ToString();
_sourceProductionContext.AddSource(className, source);
}
private static CSharpProperty CreateSimpleProperty(string type, string name, string value)
{
return new CSharpProperty(type, name)
{
Getter = new CSharpProperty.Accessor { Body = writer => writer.Write(value + ";") },
IsOverride = true,
};
}
private sealed class DictionaryData
{
private readonly string _keyType;
private readonly string _valueType;
private readonly string _name;
private readonly Action<CodeWriter> _body;
public DictionaryData(string keyType, string valueType, string name, Action<CodeWriter> body)
{
_keyType = keyType;
_valueType = valueType;
_name = name;
_body = body;
}
public DictionaryData(string valueType, string name, Action<CodeWriter> body) : this("int", valueType, name, body)
{
}
public void WriteInitializer(CodeWriter writer)
{
writer.WriteLine($"{_name} = new Dictionary<{_keyType}, {_valueType}>");
writer.WriteLine("{");
using (writer.Indent())
{
_body(writer);
}
writer.WriteLine("}.AsReadOnly();");
}
public CSharpProperty CreateProperty()
{
return new CSharpProperty($"IReadOnlyDictionary<{_keyType}, {_valueType}>", _name)
{
Getter = new CSharpProperty.Accessor(),
IsOverride = true,
};
}
}
public sealed class SpawnInfo
{
public required Vector2 InitialSpawnCenter { get; init; }
public required Vector2 MeetingSpawnCenter { get; init; }
public required Vector2 MeetingSpawnCenter2 { get; init; }
public required float SpawnRadius { get; init; }
}
public sealed class TaskInfo
{
public required string Type { get; init; }
public required string TaskType { get; init; }
public required string HudText { get; init; }
public required string Length { get; init; }
public required TaskConsole[] Consoles { get; init; }
}
public sealed class TaskConsole
{
public required int Id { get; init; }
public required string Room { get; init; }
public required Vector2 Position { get; init; }
public required float UsableDistance { get; init; }
}
public sealed class VentInfo
{
public required string Name { get; init; }
public required Vector2 Position { get; init; }
public required int? Left { get; init; }
public required int? Center { get; init; }
public required int? Right { get; init; }
}
public sealed class DoorInfo
{
public required string Room { get; init; }
public required Vector2 Position { get; init; }
}
}
@@ -0,0 +1,31 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>latest</LangVersion>
<DebugType>embedded</DebugType>
<Nullable>enable</Nullable>
<EnforceExtendedAnalyzerRules>true</EnforceExtendedAnalyzerRules>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.7.0" PrivateAssets="all" />
<PackageReference Include="Microsoft.CodeAnalysis.Analyzers" Version="3.3.4" PrivateAssets="all" />
<PackageReference Include="PolySharp" Version="1.13.2" PrivateAssets="all" />
<PackageReference Include="System.Text.Json" Version="7.0.3" Private="true" GeneratePathProperty="true" />
<PackageReference Include="CSharpPoet" Version="0.3.0" Private="true" GeneratePathProperty="true" />
</ItemGroup>
<PropertyGroup>
<GetTargetPathDependsOn>$(GetTargetPathDependsOn);GetDependencyTargetPaths</GetTargetPathDependsOn>
</PropertyGroup>
<Target Name="GetDependencyTargetPaths">
<ItemGroup>
<TargetPathWithTargetPlatformMoniker Include="$(PkgSystem_Text_Json)\lib\netstandard2.0\System.Text.Json.dll" IncludeRuntimeDependency="false" />
<TargetPathWithTargetPlatformMoniker Include="$(PkgCSharpPoet)\lib\netstandard2.0\CSharpPoet.dll" IncludeRuntimeDependency="false" />
</ItemGroup>
</Target>
</Project>
@@ -0,0 +1,9 @@
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"Generator": {
"commandName": "DebugRoslynComponent",
"targetProject": "../Impostor.Api/Impostor.Api.csproj"
}
}
}
@@ -0,0 +1,71 @@
using System;
using CSharpPoet;
using Impostor.Api.Innersloth.Generator.Generators;
using Microsoft.CodeAnalysis;
namespace Impostor.Api.Innersloth.Generator;
[Generator(LanguageNames.CSharp)]
public sealed class SourceGenerator : IIncrementalGenerator
{
private record struct Options(string ProjectDirectory);
public void Initialize(IncrementalGeneratorInitializationContext context)
{
var optionsProvider = context.AnalyzerConfigOptionsProvider
.Select((analyzerConfigOptions, _) =>
{
if (!analyzerConfigOptions.GlobalOptions.TryGetValue("build_property.projectdir", out var projectDirectory))
{
throw new Exception("Couldn't get project directory");
}
return new Options(projectDirectory);
});
var filesProvider = context.AdditionalTextsProvider.Combine(optionsProvider)
.Where(static pair =>
{
var (file, options) = pair;
return file.Path.StartsWith(options.ProjectDirectory) &&
file.Path[options.ProjectDirectory.Length..].StartsWith("Innersloth/Data/") &&
file.Path.EndsWith(".json");
})
.Select(static (pair, cancellationToken) =>
{
var (file, options) = pair;
return (
RelativePath: file.Path[(options.ProjectDirectory.Length + "Innersloth/Data/".Length)..],
Content: file.GetText(cancellationToken)!.ToString()
);
})
.Collect();
context.RegisterSourceOutput(filesProvider, (spc, files) =>
{
var enumGenerator = new EnumGenerator(spc, files);
enumGenerator.Generate("ColorType", "Impostor.Api.Innersloth.Customization");
enumGenerator.Generate("DisconnectReason", sourceName: "DisconnectReasons");
enumGenerator.Generate("GameKeywords", flags: true, underlyingType: CSharpEnumUnderlyingType.UnsignedInt);
enumGenerator.Generate("GameOverReason", underlyingType: CSharpEnumUnderlyingType.Byte);
enumGenerator.Generate("Platforms");
enumGenerator.Generate("RoleTypes", underlyingType: CSharpEnumUnderlyingType.UnsignedShort);
enumGenerator.Generate("StringNames");
enumGenerator.Generate("SystemTypes", underlyingType: CSharpEnumUnderlyingType.Byte);
enumGenerator.Generate("Language", sourceName: "SupportedLangs");
enumGenerator.Generate("TaskTypes");
enumGenerator.Generate("RpcCalls", "Impostor.Api.Net.Inner", underlyingType: CSharpEnumUnderlyingType.Byte);
var mapDataGenerator = new MapDataGenerator(spc, files);
var mapNames = new[] { "Skeld", "Mira", "April", "Polus", "Airship", "Fungle" };
foreach (var mapName in mapNames)
{
mapDataGenerator.Generate(mapName);
}
});
}
}
@@ -0,0 +1,42 @@
using System;
using System.Numerics;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Impostor.Api.Innersloth.Generator;
public class Vector2Converter : JsonConverter<Vector2>
{
public override Vector2 Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType != JsonTokenType.StartObject) throw new JsonException();
float x = 0;
float y = 0;
while (reader.Read())
{
if (reader.TokenType == JsonTokenType.EndObject) break;
switch (reader.GetString())
{
case "x":
reader.Read();
x = reader.GetSingle();
break;
case "y":
reader.Read();
y = reader.GetSingle();
break;
}
}
return new Vector2(x, y);
}
public override void Write(Utf8JsonWriter writer, Vector2 value, JsonSerializerOptions options)
{
throw new NotSupportedException();
}
}
@@ -0,0 +1,155 @@
{
"version": 1,
"dependencies": {
".NETStandard,Version=v2.0": {
"CSharpPoet": {
"type": "Direct",
"requested": "[0.3.0, )",
"resolved": "0.3.0",
"contentHash": "3QDh9rMuiNhMtNWOLj0FItiZruON7lj3zD0CXC9IHq4JWpF5OjbaZ2s1X0u6gftE73KCoTezXIgKvxacps78Fw=="
},
"Microsoft.CodeAnalysis.Analyzers": {
"type": "Direct",
"requested": "[3.3.4, )",
"resolved": "3.3.4",
"contentHash": "AxkxcPR+rheX0SmvpLVIGLhOUXAKG56a64kV9VQZ4y9gR9ZmPXnqZvHJnmwLSwzrEP6junUF11vuc+aqo5r68g=="
},
"Microsoft.CodeAnalysis.CSharp": {
"type": "Direct",
"requested": "[4.7.0, )",
"resolved": "4.7.0",
"contentHash": "JHCP2L6lB0oJ3tQoHkC67SFZxW+KbJVOnAo+6L01K5r/NlBlSUhTk5nUAldWhTVwGdzqNeHqGtnEqpsCmGSwQA==",
"dependencies": {
"Microsoft.CodeAnalysis.Common": "[4.7.0]"
}
},
"NETStandard.Library": {
"type": "Direct",
"requested": "[2.0.3, )",
"resolved": "2.0.3",
"contentHash": "st47PosZSHrjECdjeIzZQbzivYBJFv6P2nv4cj2ypdI204DO+vZ7l5raGMiX4eXMJ53RfOIg+/s4DHVZ54Nu2A==",
"dependencies": {
"Microsoft.NETCore.Platforms": "1.1.0"
}
},
"PolySharp": {
"type": "Direct",
"requested": "[1.13.2, )",
"resolved": "1.13.2",
"contentHash": "XwNhfkr7IeUiH8AE4pzob8YioxfL6nxgAx+fHEeWCObY/NZuBMfWLh39FznXbneKvagiqeeI7quIvZ6P1eVaEA=="
},
"System.Text.Json": {
"type": "Direct",
"requested": "[7.0.3, )",
"resolved": "7.0.3",
"contentHash": "AyjhwXN1zTFeIibHimfJn6eAsZ7rTBib79JQpzg8WAuR/HKDu9JGNHTuu3nbbXQ/bgI+U4z6HtZmCHNXB1QXrQ==",
"dependencies": {
"Microsoft.Bcl.AsyncInterfaces": "7.0.0",
"System.Buffers": "4.5.1",
"System.Memory": "4.5.5",
"System.Numerics.Vectors": "4.5.0",
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
"System.Text.Encodings.Web": "7.0.0",
"System.Threading.Tasks.Extensions": "4.5.4"
}
},
"Microsoft.Bcl.AsyncInterfaces": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "3aeMZ1N0lJoSyzqiP03hqemtb1BijhsJADdobn/4nsMJ8V1H+CrpuduUe4hlRdx+ikBQju1VGjMD1GJ3Sk05Eg==",
"dependencies": {
"System.Threading.Tasks.Extensions": "4.5.4"
}
},
"Microsoft.CodeAnalysis.Common": {
"type": "Transitive",
"resolved": "4.7.0",
"contentHash": "pD5S14xMUebSGYe75kt0q/aaS/ftvktSo/pEv7aX7hNPHfdZS+SZeXvkvcffGxWkunYOyRF9m1oN7zzSdYj9dQ==",
"dependencies": {
"Microsoft.CodeAnalysis.Analyzers": "3.3.4",
"System.Collections.Immutable": "7.0.0",
"System.Memory": "4.5.5",
"System.Reflection.Metadata": "7.0.0",
"System.Runtime.CompilerServices.Unsafe": "6.0.0",
"System.Text.Encoding.CodePages": "7.0.0",
"System.Threading.Tasks.Extensions": "4.5.4"
}
},
"Microsoft.NETCore.Platforms": {
"type": "Transitive",
"resolved": "1.1.0",
"contentHash": "kz0PEW2lhqygehI/d6XsPCQzD7ff7gUJaVGPVETX611eadGsA3A877GdSlU0LRVMCTH/+P3o2iDTak+S08V2+A=="
},
"System.Buffers": {
"type": "Transitive",
"resolved": "4.5.1",
"contentHash": "Rw7ijyl1qqRS0YQD/WycNst8hUUMgrMH4FCn1nNm27M4VxchZ1js3fVjQaANHO5f3sN4isvP4a+Met9Y4YomAg=="
},
"System.Collections.Immutable": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "dQPcs0U1IKnBdRDBkrCTi1FoajSTBzLcVTpjO4MBCMC7f4pDOIPzgBoX8JjG7X6uZRJ8EBxsi8+DR1JuwjnzOQ==",
"dependencies": {
"System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
}
},
"System.Memory": {
"type": "Transitive",
"resolved": "4.5.5",
"contentHash": "XIWiDvKPXaTveaB7HVganDlOCRoj03l+jrwNvcge/t8vhGYKvqV+dMv6G4SAX2NoNmN0wZfVPTAlFwZcZvVOUw==",
"dependencies": {
"System.Buffers": "4.5.1",
"System.Numerics.Vectors": "4.4.0",
"System.Runtime.CompilerServices.Unsafe": "4.5.3"
}
},
"System.Numerics.Vectors": {
"type": "Transitive",
"resolved": "4.5.0",
"contentHash": "QQTlPTl06J/iiDbJCiepZ4H//BVraReU4O4EoRw1U02H5TLUIT7xn3GnDp9AXPSlJUDyFs4uWjWafNX6WrAojQ=="
},
"System.Reflection.Metadata": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "MclTG61lsD9sYdpNz9xsKBzjsmsfCtcMZYXz/IUr2zlhaTaABonlr1ESeompTgM+Xk+IwtGYU7/voh3YWB/fWw==",
"dependencies": {
"System.Collections.Immutable": "7.0.0",
"System.Memory": "4.5.5"
}
},
"System.Runtime.CompilerServices.Unsafe": {
"type": "Transitive",
"resolved": "6.0.0",
"contentHash": "/iUeP3tq1S0XdNNoMz5C9twLSrM/TH+qElHkXWaPvuNOt+99G75NrV0OS2EqHx5wMN7popYjpc8oTjC1y16DLg=="
},
"System.Text.Encoding.CodePages": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "LSyCblMpvOe0N3E+8e0skHcrIhgV2huaNcjUUEa8hRtgEAm36aGkRoC8Jxlb6Ra6GSfF29ftduPNywin8XolzQ==",
"dependencies": {
"System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
}
},
"System.Text.Encodings.Web": {
"type": "Transitive",
"resolved": "7.0.0",
"contentHash": "OP6umVGxc0Z0MvZQBVigj4/U31Pw72ITihDWP9WiWDm+q5aoe0GaJivsfYGq53o6dxH7DcXWiCTl7+0o2CGdmg==",
"dependencies": {
"System.Buffers": "4.5.1",
"System.Memory": "4.5.5",
"System.Runtime.CompilerServices.Unsafe": "6.0.0"
}
},
"System.Threading.Tasks.Extensions": {
"type": "Transitive",
"resolved": "4.5.4",
"contentHash": "zteT+G8xuGu6mS+mzDzYXbzS7rd3K6Fjb9RiZlYlJPam2/hU7JCBZBVEcywNuR+oZ1ncTvc/cq0faRr3P01OVg==",
"dependencies": {
"System.Runtime.CompilerServices.Unsafe": "4.5.3"
}
}
}
}
}
@@ -1,4 +1,4 @@
using Impostor.Api.Innersloth;
using Impostor.Api.Innersloth.Maps;
namespace Impostor.Api.Events.Player
{
@@ -10,6 +10,6 @@ namespace Impostor.Api.Events.Player
/// <summary>
/// Gets the entered vent.
/// </summary>
public IVent Vent { get; }
public VentData Vent { get; }
}
}
@@ -1,4 +1,4 @@
using Impostor.Api.Innersloth;
using Impostor.Api.Innersloth.Maps;
namespace Impostor.Api.Events.Player
{
@@ -10,6 +10,6 @@ namespace Impostor.Api.Events.Player
/// <summary>
/// Gets the exited vent.
/// </summary>
public IVent Vent { get; }
public VentData Vent { get; }
}
}
@@ -1,4 +1,4 @@
using Impostor.Api.Innersloth;
using Impostor.Api.Innersloth.Maps;
namespace Impostor.Api.Events.Player
{
@@ -10,6 +10,6 @@ namespace Impostor.Api.Events.Player
/// <summary>
/// Gets the vent player moved to.
/// </summary>
public IVent NewVent { get; }
public VentData NewVent { get; }
}
}
+3
View File
@@ -29,6 +29,9 @@
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="7.0.0" />
<PackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.435" PrivateAssets="all" />
<PackageReference Include="Impostor.Hazel.Abstractions" Version="1.0.0" />
<ProjectReference Include="..\Impostor.Api.Innersloth.Generator\Impostor.Api.Innersloth.Generator.csproj" ReferenceOutputAssembly="false" OutputItemType="Analyzer" />
<AdditionalFiles Include="Innersloth/Data/**/*.json" />
</ItemGroup>
</Project>
@@ -1,24 +0,0 @@
namespace Impostor.Api.Innersloth.Customization
{
public enum ColorType
{
Red = 0,
Blue = 1,
Green = 2,
Pink = 3,
Orange = 4,
Yellow = 5,
Black = 6,
White = 7,
Purple = 8,
Brown = 9,
Cyan = 10,
Lime = 11,
Maroon = 12,
Rose = 13,
Banana = 14,
Gray = 15,
Tan = 16,
Coral = 17,
}
}
@@ -0,0 +1,14 @@
{
"0": "SkeldShipStatus",
"1": "MeetingHud",
"2": "LobbyBehaviour",
"3": "GameData",
"4": "PlayerControl",
"5": "MiraShipStatus",
"6": "PolusShipStatus",
"7": "ShipStatus",
"8": "AirshipStatus",
"9": "HideAndSeekManager",
"10": "NormalGameManager",
"13": "FungleShipStatus"
}
@@ -0,0 +1,20 @@
{
"Red": 0,
"Blue": 1,
"Green": 2,
"Pink": 3,
"Orange": 4,
"Yellow": 5,
"Black": 6,
"White": 7,
"Purple": 8,
"Brown": 9,
"Cyan": 10,
"Lime": 11,
"Maroon": 12,
"Rose": 13,
"Banana": 14,
"Gray": 15,
"Tan": 16,
"Coral": 17
}
@@ -0,0 +1,46 @@
{
"ExitGame": 0,
"GameFull": 1,
"GameStarted": 2,
"GameNotFound": 3,
"IncorrectVersion": 5,
"Banned": 6,
"Kicked": 7,
"Custom": 8,
"InvalidName": 9,
"Hacking": 10,
"NotAuthorized": 11,
"ConnectionLimit": 12,
"Destroy": 16,
"Error": 17,
"IncorrectGame": 18,
"ServerRequest": 19,
"ServerFull": 20,
"InternalPlayerMissing": 100,
"InternalNonceFailure": 101,
"InternalConnectionToken": 102,
"PlatformLock": 103,
"LobbyInactivity": 104,
"MatchmakerInactivity": 105,
"InvalidGameOptions": 106,
"NoServersAvailable": 107,
"QuickmatchDisabled": 108,
"TooManyGames": 109,
"QuickchatLock": 110,
"MatchmakerFull": 111,
"Sanctions": 112,
"ServerError": 113,
"SelfPlatformLock": 114,
"DuplicateConnectionDetected": 115,
"TooManyRequests": 116,
"FocusLostBackground": 207,
"IntentionalLeaving": 208,
"FocusLost": 209,
"NewConnection": 210,
"PlatformParentalControlsBlock": 211,
"PlatformUserBlock": 212,
"PlatformFailedToGetUserBlock": 213,
"ServerNotFound": 214,
"ClientTimeout": 215,
"Unknown": 255
}
@@ -0,0 +1,22 @@
{
"All": 0,
"Other": 1,
"SpanishLA": 2,
"Korean": 4,
"Russian": 8,
"Portuguese": 16,
"Arabic": 32,
"Filipino": 64,
"Polish": 128,
"English": 256,
"Japanese": 512,
"SpanishEU": 1024,
"Brazilian": 2048,
"Dutch": 4096,
"French": 8192,
"German": 16384,
"Italian": 32768,
"SChinese": 65536,
"TChinese": 131072,
"Irish": 262144
}
@@ -0,0 +1,11 @@
{
"HumansByVote": 0,
"HumansByTask": 1,
"ImpostorByVote": 2,
"ImpostorByKill": 3,
"ImpostorBySabotage": 4,
"ImpostorDisconnect": 5,
"HumansDisconnect": 6,
"HideAndSeek_ByTimer": 7,
"HideAndSeek_ByKills": 8
}
@@ -0,0 +1,13 @@
{
"Unknown": 0,
"StandaloneEpicPC": 1,
"StandaloneSteamPC": 2,
"StandaloneMac": 3,
"StandaloneWin10": 4,
"StandaloneItch": 5,
"IPhone": 6,
"Android": 7,
"Switch": 8,
"Xbox": 9,
"Playstation": 10
}
@@ -0,0 +1,10 @@
{
"Crewmate": 0,
"Impostor": 1,
"Scientist": 2,
"Engineer": 3,
"GuardianAngel": 4,
"Shapeshifter": 5,
"CrewmateGhost": 6,
"ImpostorGhost": 7
}
@@ -0,0 +1,59 @@
{
"PlayAnimation": 0,
"CompleteTask": 1,
"SyncSettings": 2,
"SetInfected": 3,
"Exiled": 4,
"CheckName": 5,
"SetName": 6,
"CheckColor": 7,
"SetColor": 8,
"SetHat": 9,
"SetSkin": 10,
"ReportDeadBody": 11,
"MurderPlayer": 12,
"SendChat": 13,
"StartMeeting": 14,
"SetScanner": 15,
"SendChatNote": 16,
"SetPet": 17,
"SetStartCounter": 18,
"EnterVent": 19,
"ExitVent": 20,
"SnapTo": 21,
"CloseMeeting": 22,
"VotingComplete": 23,
"CastVote": 24,
"ClearVote": 25,
"AddVote": 26,
"CloseDoorsOfType": 27,
"SetTasks": 29,
"ClimbLadder": 31,
"UsePlatform": 32,
"SendQuickChat": 33,
"BootFromVent": 34,
"UpdateSystem": 35,
"SetVisor": 36,
"SetNamePlate": 37,
"SetLevel": 38,
"SetHatStr": 39,
"SetSkinStr": 40,
"SetPetStr": 41,
"SetVisorStr": 42,
"SetNamePlateStr": 43,
"SetRole": 44,
"ProtectPlayer": 45,
"Shapeshift": 46,
"CheckMurder": 47,
"CheckProtect": 48,
"Pet": 49,
"CancelPet": 50,
"CheckZipline": 51,
"UseZipline": 52,
"TriggerSpores": 53,
"CheckSpore": 54,
"CheckShapeshift": 55,
"RejectShapeshift": 56,
"LobbyTimeExpiring": 60,
"ExtendLobbyTimer": 61
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,18 @@
{
"English": 0,
"Latam": 1,
"Brazilian": 2,
"Portuguese": 3,
"Korean": 4,
"Russian": 5,
"Dutch": 6,
"Filipino": 7,
"French": 8,
"German": 9,
"Italian": 10,
"Japanese": 11,
"Spanish": 12,
"SChinese": 13,
"TChinese": 14,
"Irish": 15
}
@@ -0,0 +1,61 @@
{
"Hallway": 0,
"Storage": 1,
"Cafeteria": 2,
"Reactor": 3,
"UpperEngine": 4,
"Nav": 5,
"Admin": 6,
"Electrical": 7,
"LifeSupp": 8,
"Shields": 9,
"MedBay": 10,
"Security": 11,
"Weapons": 12,
"LowerEngine": 13,
"Comms": 14,
"ShipTasks": 15,
"Doors": 16,
"Sabotage": 17,
"Decontamination": 18,
"Launchpad": 19,
"LockerRoom": 20,
"Laboratory": 21,
"Balcony": 22,
"Office": 23,
"Greenhouse": 24,
"Dropship": 25,
"Decontamination2": 26,
"Outside": 27,
"Specimens": 28,
"BoilerRoom": 29,
"VaultRoom": 30,
"Cockpit": 31,
"Armory": 32,
"Kitchen": 33,
"ViewingDeck": 34,
"HallOfPortraits": 35,
"CargoBay": 36,
"Ventilation": 37,
"Showers": 38,
"Engine": 39,
"Brig": 40,
"MeetingRoom": 41,
"Records": 42,
"Lounge": 43,
"GapRoom": 44,
"MainHall": 45,
"Medical": 46,
"Decontamination3": 47,
"Zipline": 48,
"MiningPit": 49,
"FishingDock": 50,
"RecRoom": 51,
"Lookout": 52,
"Beach": 53,
"Highlands": 54,
"Jungle": 55,
"SleepingQuarters": 56,
"MushroomMixupSabotage": 57,
"HeliSabotage": 58
}
@@ -0,0 +1,84 @@
{
"SubmitScan": 0,
"PrimeShields": 1,
"FuelEngines": 2,
"ChartCourse": 3,
"StartReactor": 4,
"SwipeCard": 5,
"ClearAsteroids": 6,
"UploadData": 7,
"InspectSample": 8,
"EmptyChute": 9,
"EmptyGarbage": 10,
"AlignEngineOutput": 11,
"FixWiring": 12,
"CalibrateDistributor": 13,
"DivertPower": 14,
"UnlockManifolds": 15,
"ResetReactor": 16,
"FixLights": 17,
"CleanO2Filter": 18,
"FixComms": 19,
"RestoreOxy": 20,
"StabilizeSteering": 21,
"AssembleArtifact": 22,
"SortSamples": 23,
"MeasureWeather": 24,
"EnterIdCode": 25,
"BuyBeverage": 26,
"ProcessData": 27,
"RunDiagnostics": 28,
"WaterPlants": 29,
"MonitorOxygen": 30,
"StoreArtifacts": 31,
"FillCanisters": 32,
"FixWeatherNode": 33,
"InsertKeys": 34,
"ResetSeismic": 35,
"ScanBoardingPass": 36,
"OpenWaterways": 37,
"ReplaceWaterJug": 38,
"RepairDrill": 39,
"AlignTelescope": 40,
"RecordTemperature": 41,
"RebootWifi": 42,
"PolishRuby": 43,
"ResetBreakers": 44,
"Decontaminate": 45,
"MakeBurger": 46,
"UnlockSafe": 47,
"SortRecords": 48,
"PutAwayPistols": 49,
"FixShower": 50,
"CleanToilet": 51,
"DressMannequin": 52,
"PickUpTowels": 53,
"RewindTapes": 54,
"StartFans": 55,
"DevelopPhotos": 56,
"GetBiggolSword": 57,
"PutAwayRifles": 58,
"StopCharles": 59,
"VentCleaning": 60,
"None": 61,
"BuildSandcastle": 62,
"CatchFish": 63,
"CollectShells": 64,
"LiftWeights": 65,
"RoastMarshmallow": 66,
"TestFrisbee": 67,
"CollectSamples": 68,
"CollectVegetables": 69,
"HoistSupplies": 70,
"MineOres": 71,
"PolishGem": 72,
"ReplaceParts": 73,
"HelpCritter": 74,
"CrankGenerator": 75,
"FixAntenna": 76,
"TuneRadio": 77,
"MushroomMixupSabotage": 78,
"ExtractFuel": 79,
"MonitorMushroom": 80,
"PlayVideogame": 81
}
@@ -0,0 +1,5 @@
{
"dumpostorVersion": "1.0.0",
"gameVersion": "2023.10.24",
"platformType": "StandaloneSteamPC"
}
@@ -0,0 +1,149 @@
{
"0": {
"room": "Comms",
"position": {
"x": -16.191698,
"y": -0.90999997
}
},
"1": {
"room": "Comms",
"position": {
"x": -8.663198,
"y": -0.9099996
}
},
"2": {
"room": "Comms",
"position": {
"x": -13.362299,
"y": -0.015400052
}
},
"3": {
"room": "Comms",
"position": {
"x": -10.975999,
"y": -2.3309999
}
},
"4": {
"room": "Brig",
"position": {
"x": -0.9260999,
"y": 7.100799
}
},
"5": {
"room": "Brig",
"position": {
"x": -3.6364996,
"y": 8.784999
}
},
"6": {
"room": "Brig",
"position": {
"x": 2.7145998,
"y": 8.850798
}
},
"7": {
"room": "Kitchen",
"position": {
"x": -8.764699,
"y": -7.2687993
}
},
"8": {
"room": "Kitchen",
"position": {
"x": -8.764699,
"y": -11.976298
}
},
"9": {
"room": "Kitchen",
"position": {
"x": -1.4979999,
"y": -12.040699
}
},
"10": {
"room": "MainHall",
"position": {
"x": 4.2496986,
"y": 0.042
}
},
"11": {
"room": "MainHall",
"position": {
"x": 17.490198,
"y": 0.04619999
}
},
"12": {
"room": "Records",
"position": {
"x": 16.382797,
"y": 9.368099
}
},
"13": {
"room": "Records",
"position": {
"x": 23.97472,
"y": 9.368099
}
},
"14": {
"room": "Records",
"position": {
"x": 19.858297,
"y": 5.601399
}
},
"15": {
"room": "Lounge",
"position": {
"x": 29.2544,
"y": 6.6990004
}
},
"16": {
"room": "Lounge",
"position": {
"x": 30.7944,
"y": 6.6990004
}
},
"17": {
"room": "Lounge",
"position": {
"x": 32.2924,
"y": 6.6990004
}
},
"18": {
"room": "Lounge",
"position": {
"x": 33.7771,
"y": 6.6990004
}
},
"19": {
"room": "Medical",
"position": {
"x": 21.314297,
"y": -8.416099
}
},
"20": {
"room": "Medical",
"position": {
"x": 32.540195,
"y": -4.694899
}
}
}
@@ -0,0 +1,15 @@
{
"initialSpawnCenter": {
"x": -25,
"y": 40
},
"meetingSpawnCenter": {
"x": 20,
"y": 9
},
"meetingSpawnCenter2": {
"x": 20,
"y": 9
},
"spawnRadius": 1.55
}
@@ -0,0 +1,13 @@
{
"Electrical": "SwitchSystem",
"MedBay": "MedScanSystem",
"Doors": "DoorsSystemType",
"Comms": "HudOverrideSystemType",
"GapRoom": "MovingPlatformBehaviour",
"HeliSabotage": "HeliSabotageSystem",
"Decontamination": "ElectricalDoors",
"Decontamination2": "AutoDoorsSystemType",
"Security": "SecurityCameraSystemType",
"Ventilation": "VentilationSystem",
"Sabotage": "SabotageSystemType"
}
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,122 @@
{
"0": {
"name": "VaultVent",
"position": {
"x": -12.632198,
"y": 8.4735
},
"left": 1,
"center": null,
"right": null
},
"1": {
"name": "CockpitVent",
"position": {
"x": -22.098999,
"y": -1.5120001
},
"left": 0,
"center": null,
"right": 2
},
"2": {
"name": "EjectionVent",
"position": {
"x": -15.658999,
"y": -11.6991005
},
"left": 1,
"center": null,
"right": null
},
"3": {
"name": "EngineVent",
"position": {
"x": 0.20299996,
"y": -2.5361004
},
"left": 4,
"center": null,
"right": 5
},
"4": {
"name": "KitchenVent",
"position": {
"x": -2.6018999,
"y": -9.338
},
"left": 3,
"center": null,
"right": 5
},
"5": {
"name": "HallwayVent1",
"position": {
"x": 7.0210004,
"y": -3.7309995
},
"left": 3,
"center": null,
"right": 4
},
"6": {
"name": "HallwayVent2",
"position": {
"x": 9.814,
"y": 3.2060003
},
"left": 8,
"center": null,
"right": 7
},
"7": {
"name": "GaproomVent2",
"position": {
"x": 12.663,
"y": 5.922
},
"left": 8,
"center": null,
"right": 6
},
"8": {
"name": "GaproomVent1",
"position": {
"x": 3.6049998,
"y": 6.9230003
},
"left": 7,
"center": null,
"right": 6
},
"9": {
"name": "ShowersVent",
"position": {
"x": 23.9869,
"y": -1.386
},
"left": 10,
"center": null,
"right": 11
},
"10": {
"name": "RecordsVent",
"position": {
"x": 23.279898,
"y": 8.259998
},
"left": 9,
"center": null,
"right": 11
},
"11": {
"name": "StorageVent",
"position": {
"x": 30.440897,
"y": -3.5770001
},
"left": 9,
"center": null,
"right": 10
}
}
@@ -0,0 +1,93 @@
{
"0": {
"room": "Cafeteria",
"position": {
"x": 6.3936,
"y": 1.33848
}
},
"1": {
"room": "Storage",
"position": {
"x": 5.268,
"y": -14.2884
}
},
"2": {
"room": "UpperEngine",
"position": {
"x": 16.930801,
"y": -2.1276002
}
},
"3": {
"room": "Cafeteria",
"position": {
"x": 0.708,
"y": -4.992
}
},
"4": {
"room": "LowerEngine",
"position": {
"x": 14.6808,
"y": -11.472
}
},
"5": {
"room": "UpperEngine",
"position": {
"x": 14.676002,
"y": 1.3406401
}
},
"6": {
"room": "Security",
"position": {
"x": 14.734801,
"y": -5.1417603
}
},
"7": {
"room": "Storage",
"position": {
"x": -1.1316001,
"y": -11.98128
}
},
"8": {
"room": "Cafeteria",
"position": {
"x": -5.1432004,
"y": 1.3355999
}
},
"9": {
"room": "Electrical",
"position": {
"x": 9.53616,
"y": -13.416001
}
},
"10": {
"room": "MedBay",
"position": {
"x": 9.1452,
"y": -0.4439999
}
},
"11": {
"room": "LowerEngine",
"position": {
"x": 16.930801,
"y": -8.9664
}
},
"12": {
"room": "Storage",
"position": {
"x": 0.70919997,
"y": -8.560801
}
}
}
@@ -0,0 +1,15 @@
{
"initialSpawnCenter": {
"x": -0.72,
"y": 0.62
},
"meetingSpawnCenter": {
"x": -0.72,
"y": 0.62
},
"meetingSpawnCenter2": {
"x": 0,
"y": 0
},
"spawnRadius": 1.6
}
@@ -0,0 +1,11 @@
{
"Electrical": "SwitchSystem",
"MedBay": "MedScanSystem",
"Doors": "AutoDoorsSystemType",
"Comms": "HudOverrideSystemType",
"Security": "SecurityCameraSystemType",
"Reactor": "ReactorSystemType",
"LifeSupp": "LifeSuppSystemType",
"Ventilation": "VentilationSystem",
"Sabotage": "SabotageSystemType"
}
@@ -0,0 +1,509 @@
{
"0": {
"type": "NormalPlayerTask",
"taskType": "SwipeCard",
"hudText": "Admin: Swipe Card",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": -5.6352005,
"y": -8.632801
},
"usableDistance": 1
}
]
},
"1": {
"type": "NormalPlayerTask",
"taskType": "FixWiring",
"hudText": "Electrical: Fix Wiring (0/3)",
"length": "Common",
"consoles": [
{
"id": 2,
"room": "Admin",
"position": {
"x": -1.392,
"y": -6.4092
},
"usableDistance": 1
},
{
"id": 4,
"room": "Cafeteria",
"position": {
"x": 5.2811995,
"y": 5.2464
},
"usableDistance": 1
},
{
"id": 3,
"room": "Nav",
"position": {
"x": -14.5199995,
"y": -3.7740002
},
"usableDistance": 1
},
{
"id": 0,
"room": "Electrical",
"position": {
"x": 7.7279997,
"y": -7.6668
},
"usableDistance": 1
},
{
"id": 1,
"room": "Storage",
"position": {
"x": 1.932,
"y": -8.7204
},
"usableDistance": 1
},
{
"id": 5,
"room": "Security",
"position": {
"x": 15.5592,
"y": -4.5923996
},
"usableDistance": 1
}
]
},
"2": {
"type": "NormalPlayerTask",
"taskType": "ClearAsteroids",
"hudText": "Weapons: Clear Asteroids (0/20)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Weapons",
"position": {
"x": -9.087601,
"y": 1.812
},
"usableDistance": 1.2
}
]
},
"3": {
"type": "NormalPlayerTask",
"taskType": "AlignEngineOutput",
"hudText": "Upper Engine: Align Engine Output (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "LowerEngine",
"position": {
"x": 19.150799,
"y": -12.618
},
"usableDistance": 1
},
{
"id": 1,
"room": "UpperEngine",
"position": {
"x": 19.176,
"y": -0.41442212
},
"usableDistance": 1
}
]
},
"4": {
"type": "NormalPlayerTask",
"taskType": "SubmitScan",
"hudText": "MedBay: Submit Scan",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "MedBay",
"position": {
"x": 7.3284,
"y": -5.2476006
},
"usableDistance": 1
}
]
},
"5": {
"type": "NormalPlayerTask",
"taskType": "InspectSample",
"hudText": "MedBay: Inspect Sample",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "MedBay",
"position": {
"x": 6.144,
"y": -4.2599998
},
"usableDistance": 1
}
]
},
"6": {
"type": "NormalPlayerTask",
"taskType": "FuelEngines",
"hudText": "Storage: Fuel Engines (0/2)",
"length": "Long",
"consoles": []
},
"7": {
"type": "NormalPlayerTask",
"taskType": "StartReactor",
"hudText": "Reactor: Start Reactor",
"length": "Long",
"consoles": [
{
"id": 2,
"room": "Reactor",
"position": {
"x": 21.792,
"y": -5.5728
},
"usableDistance": 1
}
]
},
"8": {
"type": "NormalPlayerTask",
"taskType": "EmptyChute",
"hudText": "O2: Empty Chute (0/2)",
"length": "Long",
"consoles": []
},
"9": {
"type": "NormalPlayerTask",
"taskType": "EmptyGarbage",
"hudText": "Cafeteria: Empty Garbage (0/2)",
"length": "Long",
"consoles": []
},
"10": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Communications: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": -2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"11": {
"type": "NormalPlayerTask",
"taskType": "CalibrateDistributor",
"hudText": "Electrical: Calibrate Distributor",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 5.8644004,
"y": -7.4772
},
"usableDistance": 1
}
]
},
"12": {
"type": "NormalPlayerTask",
"taskType": "ChartCourse",
"hudText": "Navigation: Chart Course",
"length": "Short",
"consoles": []
},
"13": {
"type": "NormalPlayerTask",
"taskType": "CleanO2Filter",
"hudText": "O2: Clean O2 Filter",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "LifeSupp",
"position": {
"x": -5.7432,
"y": -2.9772
},
"usableDistance": 0.8
}
]
},
"14": {
"type": "NormalPlayerTask",
"taskType": "UnlockManifolds",
"hudText": "Reactor: Unlock Manifolds",
"length": "Short",
"consoles": [
{
"id": 2,
"room": "Reactor",
"position": {
"x": 22.536001,
"y": -2.4996
},
"usableDistance": 1
}
]
},
"15": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Electrical: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": -2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"16": {
"type": "NormalPlayerTask",
"taskType": "StabilizeSteering",
"hudText": "Navigation: Stabilize Steering",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Nav",
"position": {
"x": -18.732,
"y": -4.728
},
"usableDistance": 1.25
}
]
},
"17": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Weapons: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": -2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"18": {
"type": "NormalPlayerTask",
"taskType": "PrimeShields",
"hudText": "Shields: Prime Shields",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Shields",
"position": {
"x": -7.526399,
"y": -13.981199
},
"usableDistance": 1
}
]
},
"19": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Cafeteria: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": -2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"20": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Navigation: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": -2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"21": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Shields (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"22": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Weapons (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"23": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Communications (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"24": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Upper Engine (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"25": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to O2 (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"26": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Navigation (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"27": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Lower Engine (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"28": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Security (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 9,
"y": -7.2936006
},
"usableDistance": 1
}
]
}
}
@@ -0,0 +1,142 @@
{
"0": {
"name": "AdminVent",
"position": {
"x": -2.544,
"y": -9.955201
},
"left": 2,
"center": null,
"right": 1
},
"1": {
"name": "BigYVent",
"position": {
"x": -9.384,
"y": -6.438
},
"left": 0,
"center": null,
"right": 2
},
"2": {
"name": "CafeVent",
"position": {
"x": -4.2588,
"y": -0.27600002
},
"left": 0,
"center": null,
"right": 1
},
"3": {
"name": "ElecVent",
"position": {
"x": 9.7764,
"y": -8.034
},
"left": 5,
"center": null,
"right": 6
},
"4": {
"name": "LEngineVent",
"position": {
"x": 15.288,
"y": 2.52
},
"left": 11,
"center": null,
"right": null
},
"5": {
"name": "LifeSuppVent",
"position": {
"x": 12.534,
"y": -6.9492
},
"left": 6,
"center": null,
"right": 3
},
"6": {
"name": "MedVent",
"position": {
"x": 10.608001,
"y": -4.176
},
"left": 5,
"center": null,
"right": 3
},
"7": {
"name": "WeaponsVent",
"position": {
"x": -8.820001,
"y": 3.3240001
},
"left": null,
"center": null,
"right": 12
},
"8": {
"name": "ReactorVent",
"position": {
"x": 20.796001,
"y": -6.9528003
},
"left": 9,
"center": null,
"right": null
},
"9": {
"name": "REngineVent",
"position": {
"x": 15.2508,
"y": -13.656001
},
"left": 8,
"center": null,
"right": null
},
"10": {
"name": "ShieldsVent",
"position": {
"x": -9.5232,
"y": -14.337601
},
"left": 13,
"center": null,
"right": null
},
"11": {
"name": "UpperReactorVent",
"position": {
"x": 21.876,
"y": -3.0516002
},
"left": 4,
"center": null,
"right": null
},
"12": {
"name": "NavVentNorth",
"position": {
"x": -16.008001,
"y": -3.1680002
},
"left": null,
"center": null,
"right": 7
},
"13": {
"name": "NavVentSouth",
"position": {
"x": -16.008001,
"y": -6.3840003
},
"left": null,
"center": null,
"right": 10
}
}
@@ -0,0 +1,58 @@
{
"0": {
"room": "Comms",
"position": {
"x": 24.067001,
"y": 11.974
}
},
"1": {
"room": "Comms",
"position": {
"x": 18.48,
"y": 13.298
}
},
"2": {
"room": "Kitchen",
"position": {
"x": -15.509,
"y": -5.913
}
},
"3": {
"room": "Laboratory",
"position": {
"x": -4.3,
"y": -7.759
}
},
"4": {
"room": "Lookout",
"position": {
"x": 11.063,
"y": 3.1330001
}
},
"5": {
"room": "MiningPit",
"position": {
"x": 12.733,
"y": 6.4160004
}
},
"6": {
"room": "Reactor",
"position": {
"x": 19.43,
"y": -6.59
}
},
"7": {
"room": "Storage",
"position": {
"x": -1.6159999,
"y": 4.6280003
}
}
}
@@ -0,0 +1,15 @@
{
"initialSpawnCenter": {
"x": -9.81,
"y": 1
},
"meetingSpawnCenter": {
"x": -3,
"y": -2.1
},
"meetingSpawnCenter2": {
"x": 0,
"y": 0
},
"spawnRadius": 1.5
}
@@ -0,0 +1,8 @@
{
"Ventilation": "VentilationSystem",
"Comms": "HqHudSystemType",
"Reactor": "ReactorSystemType",
"Doors": "DoorsSystemType",
"MushroomMixupSabotage": "MushroomMixupSabotageSystem",
"Sabotage": "SabotageSystemType"
}
@@ -0,0 +1,549 @@
{
"0": {
"type": "NormalPlayerTask",
"taskType": "CollectSamples",
"hudText": "Jungle: Collect Samples (0/2)",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Laboratory",
"position": {
"x": -6.373,
"y": -8.884999
},
"usableDistance": 1
}
]
},
"1": {
"type": "NormalPlayerTask",
"taskType": "EnterIdCode",
"hudText": "Lookout: Enter Id Code",
"length": "Common",
"consoles": [
{
"id": 1,
"room": "Lookout",
"position": {
"x": 8.446,
"y": 5.27
},
"usableDistance": 1
}
]
},
"2": {
"type": "NormalPlayerTask",
"taskType": "ReplaceParts",
"hudText": "Reactor: Replace Parts (0/2)",
"length": "Common",
"consoles": []
},
"3": {
"type": "NormalPlayerTask",
"taskType": "RoastMarshmallow",
"hudText": "Beach: Collect Stick (0/2)",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Beach",
"position": {
"x": -9.788,
"y": 1.641
},
"usableDistance": 1.35
},
{
"id": 1,
"room": "Beach",
"position": {
"x": -18.372,
"y": -3.849
},
"usableDistance": 1
},
{
"id": 2,
"room": "Beach",
"position": {
"x": -20.07,
"y": 3.303
},
"usableDistance": 1
},
{
"id": 3,
"room": "Beach",
"position": {
"x": -11.333,
"y": 7.898
},
"usableDistance": 1
},
{
"id": 4,
"room": "Beach",
"position": {
"x": -9.309,
"y": -3.507
},
"usableDistance": 1
}
]
},
"4": {
"type": "NormalPlayerTask",
"taskType": "CatchFish",
"hudText": "Dock: Catch Fish (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "FishingDock",
"position": {
"x": -24.359001,
"y": -6.8320003
},
"usableDistance": 1.28
},
{
"id": 1,
"room": "Kitchen",
"position": {
"x": -12.645,
"y": -9.364001
},
"usableDistance": 1
}
]
},
"5": {
"type": "NormalPlayerTask",
"taskType": "CollectVegetables",
"hudText": "Greenhouse: Collect Vegetables (0/2)",
"length": "Long",
"consoles": []
},
"6": {
"type": "NormalPlayerTask",
"taskType": "ExtractFuel",
"hudText": "Upper Engine: Extract Fuel (0/2)",
"length": "Long",
"consoles": []
},
"7": {
"type": "NormalPlayerTask",
"taskType": "HelpCritter",
"hudText": "Jungle: Help Critter (0/2)",
"length": "Long",
"consoles": []
},
"8": {
"type": "NormalPlayerTask",
"taskType": "HoistSupplies",
"hudText": "Jungle: Hoist Supplies",
"length": "Long",
"consoles": []
},
"9": {
"type": "NormalPlayerTask",
"taskType": "PolishGem",
"hudText": "Mining Pit: Polish Gem",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "MiningPit",
"position": {
"x": 14.353,
"y": 10.241
},
"usableDistance": 1
}
]
},
"10": {
"type": "NormalPlayerTask",
"taskType": "MineOres",
"hudText": "Mining Pit: Mine Ores",
"length": "Long",
"consoles": [
{
"id": 1,
"room": "MiningPit",
"position": {
"x": 11.076,
"y": 10.651
},
"usableDistance": 1
}
]
},
"11": {
"type": "NormalPlayerTask",
"taskType": "ReplaceWaterJug",
"hudText": "Storage: Replace Water Jug (0/2)",
"length": "Long",
"consoles": []
},
"12": {
"type": "NormalPlayerTask",
"taskType": "WaterPlants",
"hudText": "Storage: Water Plants (0/2)",
"length": "Long",
"consoles": []
},
"13": {
"type": "NormalPlayerTask",
"taskType": "AssembleArtifact",
"hudText": "Laboratory: Assemble Artifact",
"length": "Short",
"consoles": [
{
"id": 1,
"room": "Laboratory",
"position": {
"x": -6.2650003,
"y": -9.592999
},
"usableDistance": 1
}
]
},
"14": {
"type": "NormalPlayerTask",
"taskType": "BuildSandcastle",
"hudText": "Splash Zone: Build Sandcastle",
"length": "Short",
"consoles": [
{
"id": 1,
"room": "RecRoom",
"position": {
"x": -21.474998,
"y": 0.36600006
},
"usableDistance": 1
}
]
},
"15": {
"type": "NormalPlayerTask",
"taskType": "CollectShells",
"hudText": "Splash Zone: Collect Shells",
"length": "Short",
"consoles": [
{
"id": 2,
"room": "RecRoom",
"position": {
"x": -20.28,
"y": -2.4299998
},
"usableDistance": 1
},
{
"id": 0,
"room": "Beach",
"position": {
"x": 3.16,
"y": 1.51
},
"usableDistance": 1
},
{
"id": 1,
"room": "Beach",
"position": {
"x": -7.95,
"y": -1.9399999
},
"usableDistance": 1
},
{
"id": 3,
"room": "Beach",
"position": {
"x": -3.178,
"y": 8.14
},
"usableDistance": 1
}
]
},
"16": {
"type": "NormalPlayerTask",
"taskType": "CrankGenerator",
"hudText": "Kitchen: Crank Generator",
"length": "Short",
"consoles": [
{
"id": 1,
"room": "Comms",
"position": {
"x": 20.751,
"y": 14.603
},
"usableDistance": 1
},
{
"id": 0,
"room": "Kitchen",
"position": {
"x": -12.999001,
"y": -6.3429995
},
"usableDistance": 1.25
}
]
},
"17": {
"type": "NormalPlayerTask",
"taskType": "EmptyGarbage",
"hudText": "Cafeteria: Empty Garbage",
"length": "Short",
"consoles": []
},
"18": {
"type": "NormalPlayerTask",
"taskType": "EmptyGarbage",
"hudText": "Splash Zone: Empty Garbage",
"length": "Short",
"consoles": []
},
"19": {
"type": "NormalPlayerTask",
"taskType": "FixAntenna",
"hudText": "Communications: Fix Antenna",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Comms",
"position": {
"x": 23.389,
"y": 14.826
},
"usableDistance": 1
}
]
},
"20": {
"type": "NormalPlayerTask",
"taskType": "FixWiring",
"hudText": "Dropship: Fix Wiring",
"length": "Short",
"consoles": [
{
"id": 4,
"room": "Comms",
"position": {
"x": 19.373001,
"y": 14.288
},
"usableDistance": 1
},
{
"id": 2,
"room": "Dropship",
"position": {
"x": -11.108,
"y": 13.398
},
"usableDistance": 1
}
]
},
"21": {
"type": "NormalPlayerTask",
"taskType": "LiftWeights",
"hudText": "Splash Zone: Lift Weights",
"length": "Short",
"consoles": [
{
"id": 1,
"room": "RecRoom",
"position": {
"x": -19.151,
"y": 0.88100004
},
"usableDistance": 1
}
]
},
"22": {
"type": "NormalPlayerTask",
"taskType": "MonitorMushroom",
"hudText": "Jungle: Monitor Mushroom",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Jungle",
"position": {
"x": 12.791,
"y": -15.567999
},
"usableDistance": 1
}
]
},
"23": {
"type": "NormalPlayerTask",
"taskType": "PlayVideogame",
"hudText": "The Dorm: Play Video Game (0/20)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "SleepingQuarters",
"position": {
"x": 3.251,
"y": -1.0879999
},
"usableDistance": 1
}
]
},
"24": {
"type": "NormalPlayerTask",
"taskType": "RecordTemperature",
"hudText": "Laboratory: Record Temperature",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Greenhouse",
"position": {
"x": 8.677,
"y": -11.279
},
"usableDistance": 1
},
{
"id": 1,
"room": "Laboratory",
"position": {
"x": -2.8840003,
"y": -7.8939996
},
"usableDistance": 1
},
{
"id": 0,
"room": "Reactor",
"position": {
"x": 23.401001,
"y": -6.928
},
"usableDistance": 1
}
]
},
"25": {
"type": "NormalPlayerTask",
"taskType": "RecordTemperature",
"hudText": "Greenhouse: Record Temperature",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Greenhouse",
"position": {
"x": 8.677,
"y": -11.279
},
"usableDistance": 1
},
{
"id": 1,
"room": "Laboratory",
"position": {
"x": -2.8840003,
"y": -7.8939996
},
"usableDistance": 1
},
{
"id": 0,
"room": "Reactor",
"position": {
"x": 23.401001,
"y": -6.928
},
"usableDistance": 1
}
]
},
"26": {
"type": "NormalPlayerTask",
"taskType": "RecordTemperature",
"hudText": "Reactor: Record Temperature",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Greenhouse",
"position": {
"x": 8.677,
"y": -11.279
},
"usableDistance": 1
},
{
"id": 1,
"room": "Laboratory",
"position": {
"x": -2.8840003,
"y": -7.8939996
},
"usableDistance": 1
},
{
"id": 0,
"room": "Reactor",
"position": {
"x": 23.401001,
"y": -6.928
},
"usableDistance": 1
}
]
},
"27": {
"type": "NormalPlayerTask",
"taskType": "TestFrisbee",
"hudText": "Splash Zone: Throw Frisbee",
"length": "Short",
"consoles": [
{
"id": 1,
"room": "RecRoom",
"position": {
"x": -18.647,
"y": -0.88699996
},
"usableDistance": 1
}
]
},
"28": {
"type": "NormalPlayerTask",
"taskType": "TuneRadio",
"hudText": "Communications: Find Signal (0/1)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Comms",
"position": {
"x": 19.62,
"y": 12.764
},
"usableDistance": 1
}
]
}
}
@@ -0,0 +1,102 @@
{
"0": {
"name": "CommunicationsVent",
"position": {
"x": 25.220001,
"y": 10.965
},
"left": 2,
"center": null,
"right": 5
},
"1": {
"name": "KitchenVent",
"position": {
"x": -15.359,
"y": -9.783001
},
"left": 6,
"center": null,
"right": null
},
"2": {
"name": "LookoutVent",
"position": {
"x": 9.366,
"y": 0.63
},
"left": 0,
"center": null,
"right": 5
},
"3": {
"name": "StorageVent",
"position": {
"x": 2.864,
"y": 0.9180002
},
"left": 9,
"center": null,
"right": 4
},
"4": {
"name": "NorthWestJungleVent",
"position": {
"x": -2.518,
"y": -8.986
},
"left": 8,
"center": null,
"right": 3
},
"5": {
"name": "NorthEastJungleVent",
"position": {
"x": 22.677,
"y": -8.497
},
"left": 2,
"center": null,
"right": 0
},
"6": {
"name": "SouthWestJungleVent",
"position": {
"x": 1.3000002,
"y": -10.515
},
"left": 1,
"center": null,
"right": 7
},
"7": {
"name": "SouthEastJungleVent",
"position": {
"x": 15.150001,
"y": -16.42
},
"left": 6,
"center": null,
"right": null
},
"8": {
"name": "RecRoomVent",
"position": {
"x": -16.9,
"y": -2.571
},
"left": 9,
"center": null,
"right": 4
},
"9": {
"name": "MeetingRoomVent",
"position": {
"x": -12.233,
"y": 8.061
},
"left": 8,
"center": null,
"right": 3
}
}
@@ -0,0 +1 @@
{}
@@ -0,0 +1,15 @@
{
"initialSpawnCenter": {
"x": -4.4,
"y": 2.2
},
"meetingSpawnCenter": {
"x": 24.043,
"y": 1.72
},
"meetingSpawnCenter2": {
"x": 0,
"y": 0
},
"spawnRadius": 1.55
}
@@ -0,0 +1,9 @@
{
"Electrical": "SwitchSystem",
"MedBay": "MedScanSystem",
"Comms": "HqHudSystemType",
"Reactor": "ReactorSystemType",
"LifeSupp": "LifeSuppSystemType",
"Ventilation": "VentilationSystem",
"Sabotage": "SabotageSystemType"
}
@@ -0,0 +1,547 @@
{
"0": {
"type": "NormalPlayerTask",
"taskType": "FixWiring",
"hudText": "Storage: Fix Wiring (0/3)",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Storage",
"position": {
"x": 18.39,
"y": 1.2
},
"usableDistance": 1
},
{
"id": 1,
"room": "Hallway",
"position": {
"x": 12.096,
"y": 8.04
},
"usableDistance": 1
},
{
"id": 4,
"room": "Laboratory",
"position": {
"x": 6.125,
"y": 14.958
},
"usableDistance": 1
},
{
"id": 2,
"room": "LockerRoom",
"position": {
"x": 4.3559995,
"y": 2.5340002
},
"usableDistance": 1
},
{
"id": 3,
"room": "Greenhouse",
"position": {
"x": 16.980001,
"y": 21.394
},
"usableDistance": 1
}
]
},
"1": {
"type": "NormalPlayerTask",
"taskType": "EnterIdCode",
"hudText": "Admin: Enter Id Code",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 19.894001,
"y": 19.024
},
"usableDistance": 1
}
]
},
"2": {
"type": "NormalPlayerTask",
"taskType": "SubmitScan",
"hudText": "MedBay: Submit Scan",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "MedBay",
"position": {
"x": 16.233,
"y": 0.262
},
"usableDistance": 1
}
]
},
"3": {
"type": "NormalPlayerTask",
"taskType": "ClearAsteroids",
"hudText": "Balcony: Clear Asteroids (0/20)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Weapons",
"position": {
"x": 19.213,
"y": -2.414
},
"usableDistance": 1.8
}
]
},
"4": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Reactor: Divert Power to Admin (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 0.77700007,
"y": 11.484
},
"usableDistance": 1
}
]
},
"5": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Reactor: Divert Power to Cafeteria (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 0.77700007,
"y": 11.484
},
"usableDistance": 1
}
]
},
"6": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Reactor: Divert Power to Communications (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 0.77700007,
"y": 11.484
},
"usableDistance": 1
}
]
},
"7": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Reactor: Divert Power to Launchpad (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 0.77700007,
"y": 11.484
},
"usableDistance": 1
}
]
},
"8": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Reactor: Divert Power to MedBay (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 0.77700007,
"y": 11.484
},
"usableDistance": 1
}
]
},
"9": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Reactor: Divert Power to Office (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 0.77700007,
"y": 11.484
},
"usableDistance": 1
}
]
},
"10": {
"type": "NormalPlayerTask",
"taskType": "WaterPlants",
"hudText": "Storage: Water Plants (0/2)",
"length": "Long",
"consoles": []
},
"11": {
"type": "NormalPlayerTask",
"taskType": "StartReactor",
"hudText": "Reactor: Start Reactor",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 2.549,
"y": 12.407001
},
"usableDistance": 1
}
]
},
"12": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Reactor: Divert Power to Greenhouse (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 0.77700007,
"y": 11.484
},
"usableDistance": 1
}
]
},
"13": {
"type": "NormalPlayerTask",
"taskType": "ChartCourse",
"hudText": "Admin: Chart Course",
"length": "Short",
"consoles": []
},
"14": {
"type": "NormalPlayerTask",
"taskType": "CleanO2Filter",
"hudText": "Greenhouse: Clean O2 Filter",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Greenhouse",
"position": {
"x": 17.221,
"y": 24.505001
},
"usableDistance": 2
}
]
},
"15": {
"type": "NormalPlayerTask",
"taskType": "FuelEngines",
"hudText": "Launchpad: Fuel Engines",
"length": "Short",
"consoles": []
},
"16": {
"type": "NormalPlayerTask",
"taskType": "AssembleArtifact",
"hudText": "Laboratory: Assemble Artifact",
"length": "Short",
"consoles": [
{
"id": 1,
"room": "Laboratory",
"position": {
"x": 9.402,
"y": 14.568001
},
"usableDistance": 1
}
]
},
"17": {
"type": "NormalPlayerTask",
"taskType": "SortSamples",
"hudText": "Laboratory: Sort Samples",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Laboratory",
"position": {
"x": 9.660001,
"y": 11.115001
},
"usableDistance": 1
}
]
},
"18": {
"type": "NormalPlayerTask",
"taskType": "PrimeShields",
"hudText": "Admin: Prime Shields",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 21.169,
"y": 17.945
},
"usableDistance": 1
}
]
},
"19": {
"type": "NormalPlayerTask",
"taskType": "EmptyGarbage",
"hudText": "Cafeteria: Empty Garbage",
"length": "Short",
"consoles": []
},
"20": {
"type": "NormalPlayerTask",
"taskType": "MeasureWeather",
"hudText": "Balcony: Measure Weather",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Balcony",
"position": {
"x": 28.911999,
"y": -1.701
},
"usableDistance": 1
}
]
},
"21": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Reactor: Divert Power to Laboratory (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Reactor",
"position": {
"x": 0.77700007,
"y": 11.484
},
"usableDistance": 1
}
]
},
"22": {
"type": "NormalPlayerTask",
"taskType": "BuyBeverage",
"hudText": "Cafeteria: Buy Beverage",
"length": "Short",
"consoles": [
{
"id": 2,
"room": "Cafeteria",
"position": {
"x": 27.49,
"y": 5.665
},
"usableDistance": 1
}
]
},
"23": {
"type": "NormalPlayerTask",
"taskType": "ProcessData",
"hudText": "Office: Process Data",
"length": "Short",
"consoles": [
{
"id": 2,
"room": "Office",
"position": {
"x": 15.776001,
"y": 21.403
},
"usableDistance": 1
}
]
},
"24": {
"type": "NormalPlayerTask",
"taskType": "RunDiagnostics",
"hudText": "Launchpad: Run Diagnostics",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Launchpad",
"position": {
"x": -2.499,
"y": 1.8730001
},
"usableDistance": 1.5
}
]
},
"25": {
"type": "NormalPlayerTask",
"taskType": "UnlockManifolds",
"hudText": "Reactor: Unlock Manifolds",
"length": "Short",
"consoles": [
{
"id": 2,
"room": "Reactor",
"position": {
"x": 0.44200015,
"y": 13.2560005
},
"usableDistance": 1
}
]
},
"26": {
"type": "NormalPlayerTask",
"taskType": "VentCleaning",
"hudText": "Admin: Clean Vent",
"length": "Short",
"consoles": [
{
"id": 11,
"room": "Launchpad",
"position": {
"x": -6.1800003,
"y": 3.5600002
},
"usableDistance": 1
},
{
"id": 1,
"room": "Balcony",
"position": {
"x": 23.769999,
"y": -1.9399999
},
"usableDistance": 1
},
{
"id": 2,
"room": "Hallway",
"position": {
"x": 23.9,
"y": 7.1800003
},
"usableDistance": 1
},
{
"id": 3,
"room": "Reactor",
"position": {
"x": 0.48000014,
"y": 10.6970005
},
"usableDistance": 1
},
{
"id": 4,
"room": "Laboratory",
"position": {
"x": 11.606001,
"y": 13.816
},
"usableDistance": 1
},
{
"id": 10,
"room": "LockerRoom",
"position": {
"x": 4.29,
"y": 0.52999973
},
"usableDistance": 1
},
{
"id": 6,
"room": "Admin",
"position": {
"x": 22.390001,
"y": 17.23
},
"usableDistance": 1
},
{
"id": 5,
"room": "Office",
"position": {
"x": 13.280001,
"y": 20.13
},
"usableDistance": 1
},
{
"id": 7,
"room": "Greenhouse",
"position": {
"x": 17.85,
"y": 25.23
},
"usableDistance": 1
},
{
"id": 8,
"room": "MedBay",
"position": {
"x": 15.41,
"y": -1.8199997
},
"usableDistance": 1
},
{
"id": 9,
"room": "Decontamination",
"position": {
"x": 6.83,
"y": 3.145
},
"usableDistance": 1
}
]
}
}
@@ -0,0 +1,112 @@
{
"1": {
"name": "BalconyVent",
"position": {
"x": 23.769999,
"y": -1.9399999
},
"left": 8,
"center": null,
"right": 2
},
"2": {
"name": "YHallRightVent",
"position": {
"x": 23.9,
"y": 7.1800003
},
"left": 6,
"center": null,
"right": 1
},
"3": {
"name": "ReactorVent",
"position": {
"x": 0.48000014,
"y": 10.6970005
},
"left": 4,
"center": 9,
"right": 11
},
"4": {
"name": "LabVent",
"position": {
"x": 11.606001,
"y": 13.816
},
"left": 3,
"center": 9,
"right": 5
},
"5": {
"name": "OfficeVent",
"position": {
"x": 13.280001,
"y": 20.13
},
"left": 4,
"center": 6,
"right": 7
},
"6": {
"name": "AdminVent",
"position": {
"x": 22.390001,
"y": 17.23
},
"left": 7,
"center": 2,
"right": 5
},
"7": {
"name": "AgriVent",
"position": {
"x": 17.85,
"y": 25.23
},
"left": 6,
"center": null,
"right": 5
},
"8": {
"name": "MedVent",
"position": {
"x": 15.41,
"y": -1.8199997
},
"left": 1,
"center": null,
"right": 10
},
"9": {
"name": "DeconVent",
"position": {
"x": 6.83,
"y": 3.145
},
"left": 3,
"center": 10,
"right": 4
},
"10": {
"name": "LockerVent",
"position": {
"x": 4.29,
"y": 0.52999973
},
"left": 8,
"center": 11,
"right": 9
},
"11": {
"name": "LaunchVent",
"position": {
"x": -6.1800003,
"y": 3.5600002
},
"left": 3,
"center": null,
"right": 10
}
}
@@ -0,0 +1,114 @@
{
"0": {
"room": "Electrical",
"position": {
"x": 11.255,
"y": -9.4473
}
},
"1": {
"room": "Electrical",
"position": {
"x": 7.4827003,
"y": -10.922001
}
},
"2": {
"room": "Electrical",
"position": {
"x": 5.4228,
"y": -13.496
}
},
"3": {
"room": "LifeSupp",
"position": {
"x": 5.492,
"y": -18.301
}
},
"4": {
"room": "LifeSupp",
"position": {
"x": 5.9068003,
"y": -22.348
}
},
"5": {
"room": "Weapons",
"position": {
"x": 13.0322,
"y": -20.701
}
},
"6": {
"room": "Comms",
"position": {
"x": 10.8987,
"y": -19.159
}
},
"7": {
"room": "Office",
"position": {
"x": 28.757002,
"y": -17.0636
}
},
"8": {
"room": "Office",
"position": {
"x": 17.417002,
"y": -21.7231
}
},
"9": {
"room": "Laboratory",
"position": {
"x": 26.608002,
"y": -8.808
}
},
"10": {
"room": "Laboratory",
"position": {
"x": 24.780003,
"y": -9.5651
}
},
"11": {
"room": "Storage",
"position": {
"x": 17.293001,
"y": -10.882
}
},
"12": {
"room": "Decontamination",
"position": {
"x": 25.512001,
"y": -24.559002
}
},
"13": {
"room": "Decontamination",
"position": {
"x": 23.897001,
"y": -23.512001
}
},
"14": {
"room": "Decontamination",
"position": {
"x": 37.992004,
"y": -9.6214
}
},
"15": {
"room": "Decontamination",
"position": {
"x": 39.067,
"y": -11.361
}
}
}
@@ -0,0 +1,15 @@
{
"initialSpawnCenter": {
"x": 16.64,
"y": -2.46
},
"meetingSpawnCenter": {
"x": 17.4,
"y": -16.286
},
"meetingSpawnCenter2": {
"x": 17.4,
"y": -17.515
},
"spawnRadius": 1
}
@@ -0,0 +1,10 @@
{
"Electrical": "SwitchSystem",
"MedBay": "MedScanSystem",
"Doors": "DoorsSystemType",
"Comms": "HudOverrideSystemType",
"Security": "SecurityCameraSystemType",
"Ventilation": "VentilationSystem",
"Laboratory": "ReactorSystemType",
"Sabotage": "SabotageSystemType"
}
@@ -0,0 +1,884 @@
{
"0": {
"type": "NormalPlayerTask",
"taskType": "SwipeCard",
"hudText": "Office: Swipe Card",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Office",
"position": {
"x": 24.816444,
"y": -16.217522
},
"usableDistance": 1
}
]
},
"1": {
"type": "NormalPlayerTask",
"taskType": "InsertKeys",
"hudText": "Dropship: Insert Keys",
"length": "Common",
"consoles": [
{
"id": 2,
"room": "Dropship",
"position": {
"x": 17.38076,
"y": 0.08402014
},
"usableDistance": 1
}
]
},
"2": {
"type": "NormalPlayerTask",
"taskType": "ScanBoardingPass",
"hudText": "Office: Scan Boarding Pass",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Office",
"position": {
"x": 25.75001,
"y": -16.03081
},
"usableDistance": 1
}
]
},
"3": {
"type": "NormalPlayerTask",
"taskType": "FixWiring",
"hudText": "O2: Fix Wiring (0/3)",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": 3.0672798,
"y": -8.691476
},
"usableDistance": 1
},
{
"id": 1,
"room": "LifeSupp",
"position": {
"x": 6.499,
"y": -18.458
},
"usableDistance": 0.77
},
{
"id": 2,
"room": "Office",
"position": {
"x": 16.373749,
"y": -18.505589
},
"usableDistance": 0.8
},
{
"id": 3,
"room": "Decontamination",
"position": {
"x": 40.61,
"y": -8.96
},
"usableDistance": 1
},
{
"id": 4,
"room": "Laboratory",
"position": {
"x": 37.321003,
"y": -8.944
},
"usableDistance": 1
},
{
"id": 5,
"room": "Laboratory",
"position": {
"x": 32.975002,
"y": -9.031365
},
"usableDistance": 1
}
]
},
"4": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Weapons: Download Data (0/2) ",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Comms",
"position": {
"x": 11.71978,
"y": -15.145192
},
"usableDistance": 1
}
]
},
"5": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Office: Download Data (0/2) ",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Comms",
"position": {
"x": 11.71978,
"y": -15.145192
},
"usableDistance": 1
}
]
},
"6": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Electrical: Download Data (0/2) ",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Comms",
"position": {
"x": 11.71978,
"y": -15.145192
},
"usableDistance": 1
}
]
},
"7": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Specimen Room: Download Data (0/2) ",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Comms",
"position": {
"x": 11.71978,
"y": -15.145192
},
"usableDistance": 1
}
]
},
"8": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "O2: Download Data (0/2) ",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Comms",
"position": {
"x": 11.71978,
"y": -15.145192
},
"usableDistance": 1
}
]
},
"9": {
"type": "NormalPlayerTask",
"taskType": "StartReactor",
"hudText": "Specimen Room: Start Reactor",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Specimens",
"position": {
"x": 34.757774,
"y": -18.878536
},
"usableDistance": 1
}
]
},
"10": {
"type": "NormalPlayerTask",
"taskType": "FuelEngines",
"hudText": "Storage: Fuel Engines (0/2)",
"length": "Long",
"consoles": []
},
"11": {
"type": "WaterWayTask",
"taskType": "OpenWaterways",
"hudText": "Boiler Room: Open Waterways (0/3)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "BoilerRoom",
"position": {
"x": 3.669,
"y": -24.15
},
"usableDistance": 1
},
{
"id": 1,
"room": "BoilerRoom",
"position": {
"x": 0.9430001,
"y": -24.15
},
"usableDistance": 1
},
{
"id": 2,
"room": "BoilerRoom",
"position": {
"x": 18.417002,
"y": -23.72
},
"usableDistance": 1
}
]
},
"12": {
"type": "NormalPlayerTask",
"taskType": "InspectSample",
"hudText": "MedBay: Inspect Sample",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Hallway",
"position": {
"x": 36.52848,
"y": -5.5693474
},
"usableDistance": 1
}
]
},
"13": {
"type": "NormalPlayerTask",
"taskType": "ReplaceWaterJug",
"hudText": "Boiler Room: Replace Water Jug (0/2)",
"length": "Long",
"consoles": []
},
"14": {
"type": "WeatherNodeTask",
"taskType": "FixWeatherNode",
"hudText": "Node_GI: Fix Weather Node (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Hallway",
"position": {
"x": 23.04,
"y": -6.94
},
"usableDistance": 1
},
{
"id": 1,
"room": "Hallway",
"position": {
"x": 8.37,
"y": -15.46
},
"usableDistance": 1
},
{
"id": 2,
"room": "Hallway",
"position": {
"x": 7.16,
"y": -25.36
},
"usableDistance": 1
},
{
"id": 3,
"room": "Hallway",
"position": {
"x": 14.96,
"y": -25.44
},
"usableDistance": 1
},
{
"id": 4,
"room": "Hallway",
"position": {
"x": 14.48,
"y": -12.17
},
"usableDistance": 1
},
{
"id": 5,
"room": "Hallway",
"position": {
"x": 30.86,
"y": -12.23
},
"usableDistance": 1
}
]
},
"15": {
"type": "WeatherNodeTask",
"taskType": "FixWeatherNode",
"hudText": "Node_IRO: Fix Weather Node (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Hallway",
"position": {
"x": 23.04,
"y": -6.94
},
"usableDistance": 1
},
{
"id": 1,
"room": "Hallway",
"position": {
"x": 8.37,
"y": -15.46
},
"usableDistance": 1
},
{
"id": 2,
"room": "Hallway",
"position": {
"x": 7.16,
"y": -25.36
},
"usableDistance": 1
},
{
"id": 3,
"room": "Hallway",
"position": {
"x": 14.96,
"y": -25.44
},
"usableDistance": 1
},
{
"id": 4,
"room": "Hallway",
"position": {
"x": 14.48,
"y": -12.17
},
"usableDistance": 1
},
{
"id": 5,
"room": "Hallway",
"position": {
"x": 30.86,
"y": -12.23
},
"usableDistance": 1
}
]
},
"16": {
"type": "WeatherNodeTask",
"taskType": "FixWeatherNode",
"hudText": "Node_PD: Fix Weather Node (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Hallway",
"position": {
"x": 23.04,
"y": -6.94
},
"usableDistance": 1
},
{
"id": 1,
"room": "Hallway",
"position": {
"x": 8.37,
"y": -15.46
},
"usableDistance": 1
},
{
"id": 2,
"room": "Hallway",
"position": {
"x": 7.16,
"y": -25.36
},
"usableDistance": 1
},
{
"id": 3,
"room": "Hallway",
"position": {
"x": 14.96,
"y": -25.44
},
"usableDistance": 1
},
{
"id": 4,
"room": "Hallway",
"position": {
"x": 14.48,
"y": -12.17
},
"usableDistance": 1
},
{
"id": 5,
"room": "Hallway",
"position": {
"x": 30.86,
"y": -12.23
},
"usableDistance": 1
}
]
},
"17": {
"type": "WeatherNodeTask",
"taskType": "FixWeatherNode",
"hudText": "Node_TB: Fix Weather Node (0/2)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Hallway",
"position": {
"x": 23.04,
"y": -6.94
},
"usableDistance": 1
},
{
"id": 1,
"room": "Hallway",
"position": {
"x": 8.37,
"y": -15.46
},
"usableDistance": 1
},
{
"id": 2,
"room": "Hallway",
"position": {
"x": 7.16,
"y": -25.36
},
"usableDistance": 1
},
{
"id": 3,
"room": "Hallway",
"position": {
"x": 14.96,
"y": -25.44
},
"usableDistance": 1
},
{
"id": 4,
"room": "Hallway",
"position": {
"x": 14.48,
"y": -12.17
},
"usableDistance": 1
},
{
"id": 5,
"room": "Hallway",
"position": {
"x": 30.86,
"y": -12.23
},
"usableDistance": 1
}
]
},
"18": {
"type": "NormalPlayerTask",
"taskType": "RebootWifi",
"hudText": "Communications: Reboot Wifi",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Comms",
"position": {
"x": 11.047999,
"y": -15.297912
},
"usableDistance": 1
}
]
},
"19": {
"type": "NormalPlayerTask",
"taskType": "MonitorOxygen",
"hudText": "O2: Monitor Tree",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Hallway",
"position": {
"x": 1.654,
"y": -16.012001
},
"usableDistance": 1
}
]
},
"20": {
"type": "NormalPlayerTask",
"taskType": "UnlockManifolds",
"hudText": "Specimen Room: Unlock Manifolds",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Specimens",
"position": {
"x": 34.381306,
"y": -19.486675
},
"usableDistance": 1
}
]
},
"21": {
"type": "NormalPlayerTask",
"taskType": "StoreArtifacts",
"hudText": "Specimen Room: Store Artifacts",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Specimens",
"position": {
"x": 36.481117,
"y": -18.82867
},
"usableDistance": 1
}
]
},
"22": {
"type": "NormalPlayerTask",
"taskType": "FillCanisters",
"hudText": "O2: Fill Canisters",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "LifeSupp",
"position": {
"x": 1.1431961,
"y": -19.525873
},
"usableDistance": 0.6
}
]
},
"23": {
"type": "NormalPlayerTask",
"taskType": "EmptyGarbage",
"hudText": "O2: Empty Garbage",
"length": "Short",
"consoles": []
},
"24": {
"type": "NormalPlayerTask",
"taskType": "ChartCourse",
"hudText": "Dropship: Chart Course",
"length": "Short",
"consoles": [
{
"id": 2,
"room": "Dropship",
"position": {
"x": 15.974811,
"y": 0.08402014
},
"usableDistance": 1
}
]
},
"25": {
"type": "NormalPlayerTask",
"taskType": "SubmitScan",
"hudText": "MedBay: Submit Scan",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "MedBay",
"position": {
"x": 40.327003,
"y": -7.082
},
"usableDistance": 1
}
]
},
"26": {
"type": "NormalPlayerTask",
"taskType": "ClearAsteroids",
"hudText": "Weapons: Clear Asteroids (0/20)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Weapons",
"position": {
"x": 9.929073,
"y": -22.390993
},
"usableDistance": 1
}
]
},
"27": {
"type": "WeatherNodeTask",
"taskType": "FixWeatherNode",
"hudText": "Node_CA: Fix Weather Node (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Hallway",
"position": {
"x": 23.04,
"y": -6.94
},
"usableDistance": 1
},
{
"id": 1,
"room": "Hallway",
"position": {
"x": 8.37,
"y": -15.46
},
"usableDistance": 1
},
{
"id": 2,
"room": "Hallway",
"position": {
"x": 7.16,
"y": -25.36
},
"usableDistance": 1
},
{
"id": 3,
"room": "Hallway",
"position": {
"x": 14.96,
"y": -25.44
},
"usableDistance": 1
},
{
"id": 4,
"room": "Hallway",
"position": {
"x": 14.48,
"y": -12.17
},
"usableDistance": 1
},
{
"id": 5,
"room": "Hallway",
"position": {
"x": 30.86,
"y": -12.23
},
"usableDistance": 1
}
]
},
"28": {
"type": "WeatherNodeTask",
"taskType": "FixWeatherNode",
"hudText": "Node_MLG: Fix Weather Node (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Hallway",
"position": {
"x": 23.04,
"y": -6.94
},
"usableDistance": 1
},
{
"id": 1,
"room": "Hallway",
"position": {
"x": 8.37,
"y": -15.46
},
"usableDistance": 1
},
{
"id": 2,
"room": "Hallway",
"position": {
"x": 7.16,
"y": -25.36
},
"usableDistance": 1
},
{
"id": 3,
"room": "Hallway",
"position": {
"x": 14.96,
"y": -25.44
},
"usableDistance": 1
},
{
"id": 4,
"room": "Hallway",
"position": {
"x": 14.48,
"y": -12.17
},
"usableDistance": 1
},
{
"id": 5,
"room": "Hallway",
"position": {
"x": 30.86,
"y": -12.23
},
"usableDistance": 1
}
]
},
"29": {
"type": "NormalPlayerTask",
"taskType": "AlignTelescope",
"hudText": "Laboratory: Align Telescope",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Laboratory",
"position": {
"x": 33.868427,
"y": -5.4712653
},
"usableDistance": 1
}
]
},
"30": {
"type": "NormalPlayerTask",
"taskType": "RepairDrill",
"hudText": "Laboratory: Repair Drill",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Laboratory",
"position": {
"x": 27.42095,
"y": -6.982279
},
"usableDistance": 1
}
]
},
"31": {
"type": "NormalPlayerTask",
"taskType": "RecordTemperature",
"hudText": "Laboratory: Record Temperature",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Laboratory",
"position": {
"x": 31.34464,
"y": -6.67142
},
"usableDistance": 1
},
{
"id": 0,
"room": "Outside",
"position": {
"x": 30.93255,
"y": -15.324791
},
"usableDistance": 1
}
]
},
"32": {
"type": "NormalPlayerTask",
"taskType": "RecordTemperature",
"hudText": "Outside: Record Temperature",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Laboratory",
"position": {
"x": 31.34464,
"y": -6.67142
},
"usableDistance": 1
},
{
"id": 0,
"room": "Outside",
"position": {
"x": 30.93255,
"y": -15.324791
},
"usableDistance": 1
}
]
}
}
@@ -0,0 +1,122 @@
{
"0": {
"name": "ElectricalVent",
"position": {
"x": 1.9289999,
"y": -9.558001
},
"left": 2,
"center": null,
"right": 1
},
"1": {
"name": "ElecFenceVent",
"position": {
"x": 6.9,
"y": -14.41
},
"left": 2,
"center": null,
"right": 0
},
"2": {
"name": "LifeSuppVent",
"position": {
"x": 3.51,
"y": -16.58
},
"left": 1,
"center": null,
"right": 0
},
"3": {
"name": "CommsVent",
"position": {
"x": 12.304,
"y": -18.897999
},
"left": 8,
"center": null,
"right": 4
},
"4": {
"name": "OfficeVent",
"position": {
"x": 16.379,
"y": -19.599
},
"left": 3,
"center": null,
"right": 8
},
"5": {
"name": "AdminVent",
"position": {
"x": 20.089003,
"y": -25.517
},
"left": 11,
"center": null,
"right": 7
},
"6": {
"name": "BathroomVent",
"position": {
"x": 32.963,
"y": -9.526
},
"left": null,
"center": null,
"right": 7
},
"7": {
"name": "SubBathroomVent",
"position": {
"x": 30.907003,
"y": -11.860001
},
"left": 6,
"center": null,
"right": 5
},
"8": {
"name": "StorageVent",
"position": {
"x": 22,
"y": -12.190001
},
"left": 3,
"center": null,
"right": 4
},
"9": {
"name": "ScienceBuildingVent",
"position": {
"x": 23.72,
"y": -7.82
},
"left": 10,
"center": null,
"right": null
},
"10": {
"name": "ElectricBuildingVent",
"position": {
"x": 9.64,
"y": -7.72
},
"left": 9,
"center": null,
"right": null
},
"11": {
"name": "SouthVent",
"position": {
"x": 18.93,
"y": -24.85
},
"left": null,
"center": null,
"right": 5
}
}
@@ -0,0 +1,93 @@
{
"0": {
"room": "Cafeteria",
"position": {
"x": -6.3936,
"y": 1.33848
}
},
"1": {
"room": "Storage",
"position": {
"x": -5.268,
"y": -14.2884
}
},
"2": {
"room": "UpperEngine",
"position": {
"x": -16.930801,
"y": -2.1276002
}
},
"3": {
"room": "Cafeteria",
"position": {
"x": -0.708,
"y": -4.992
}
},
"4": {
"room": "LowerEngine",
"position": {
"x": -14.6808,
"y": -11.472
}
},
"5": {
"room": "UpperEngine",
"position": {
"x": -14.676002,
"y": 1.3406401
}
},
"6": {
"room": "Security",
"position": {
"x": -14.734801,
"y": -5.1417603
}
},
"7": {
"room": "Storage",
"position": {
"x": 1.1316001,
"y": -11.98128
}
},
"8": {
"room": "Cafeteria",
"position": {
"x": 5.1432004,
"y": 1.3355999
}
},
"9": {
"room": "Electrical",
"position": {
"x": -9.53616,
"y": -13.416001
}
},
"10": {
"room": "MedBay",
"position": {
"x": -9.1452,
"y": -0.4439999
}
},
"11": {
"room": "LowerEngine",
"position": {
"x": -16.930801,
"y": -8.9664
}
},
"12": {
"room": "Storage",
"position": {
"x": -0.70919997,
"y": -8.560801
}
}
}
@@ -0,0 +1,15 @@
{
"initialSpawnCenter": {
"x": -0.72,
"y": 0.62
},
"meetingSpawnCenter": {
"x": -0.72,
"y": 0.62
},
"meetingSpawnCenter2": {
"x": 0,
"y": 0
},
"spawnRadius": 1.6
}
@@ -0,0 +1,11 @@
{
"Electrical": "SwitchSystem",
"MedBay": "MedScanSystem",
"Doors": "AutoDoorsSystemType",
"Comms": "HudOverrideSystemType",
"Security": "SecurityCameraSystemType",
"Reactor": "ReactorSystemType",
"LifeSupp": "LifeSuppSystemType",
"Ventilation": "VentilationSystem",
"Sabotage": "SabotageSystemType"
}
@@ -0,0 +1,643 @@
{
"0": {
"type": "NormalPlayerTask",
"taskType": "SwipeCard",
"hudText": "Admin: Swipe Card",
"length": "Common",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 5.6352005,
"y": -8.632801
},
"usableDistance": 1
}
]
},
"1": {
"type": "NormalPlayerTask",
"taskType": "FixWiring",
"hudText": "Storage: Fix Wiring (0/3)",
"length": "Common",
"consoles": [
{
"id": 2,
"room": "Admin",
"position": {
"x": 1.392,
"y": -6.4092
},
"usableDistance": 1
},
{
"id": 4,
"room": "Cafeteria",
"position": {
"x": -5.2811995,
"y": 5.2464
},
"usableDistance": 1
},
{
"id": 3,
"room": "Nav",
"position": {
"x": 14.5199995,
"y": -3.7740002
},
"usableDistance": 1
},
{
"id": 0,
"room": "Electrical",
"position": {
"x": -7.7279997,
"y": -7.6668
},
"usableDistance": 1
},
{
"id": 1,
"room": "Storage",
"position": {
"x": -1.932,
"y": -8.7204
},
"usableDistance": 1
},
{
"id": 5,
"room": "Security",
"position": {
"x": -15.5592,
"y": -4.5923996
},
"usableDistance": 1
}
]
},
"2": {
"type": "NormalPlayerTask",
"taskType": "ClearAsteroids",
"hudText": "Weapons: Clear Asteroids (0/20)",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "Weapons",
"position": {
"x": 9.087601,
"y": 1.812
},
"usableDistance": 1.2
}
]
},
"3": {
"type": "NormalPlayerTask",
"taskType": "AlignEngineOutput",
"hudText": "Upper Engine: Align Engine Output (0/2)",
"length": "Long",
"consoles": [
{
"id": 1,
"room": "LowerEngine",
"position": {
"x": -19.150799,
"y": -12.618
},
"usableDistance": 1
},
{
"id": 0,
"room": "UpperEngine",
"position": {
"x": -19.176,
"y": -0.41442212
},
"usableDistance": 1
}
]
},
"4": {
"type": "NormalPlayerTask",
"taskType": "SubmitScan",
"hudText": "MedBay: Submit Scan",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "MedBay",
"position": {
"x": -7.3284,
"y": -5.2476006
},
"usableDistance": 1
}
]
},
"5": {
"type": "NormalPlayerTask",
"taskType": "InspectSample",
"hudText": "MedBay: Inspect Sample",
"length": "Long",
"consoles": [
{
"id": 0,
"room": "MedBay",
"position": {
"x": -6.144,
"y": -4.2599998
},
"usableDistance": 1
}
]
},
"6": {
"type": "NormalPlayerTask",
"taskType": "FuelEngines",
"hudText": "Storage: Fuel Engines (0/2)",
"length": "Long",
"consoles": []
},
"7": {
"type": "NormalPlayerTask",
"taskType": "StartReactor",
"hudText": "Reactor: Start Reactor",
"length": "Long",
"consoles": [
{
"id": 2,
"room": "Reactor",
"position": {
"x": -21.792,
"y": -5.5728
},
"usableDistance": 1
}
]
},
"8": {
"type": "NormalPlayerTask",
"taskType": "EmptyChute",
"hudText": "O2: Empty Chute (0/2)",
"length": "Long",
"consoles": []
},
"9": {
"type": "NormalPlayerTask",
"taskType": "EmptyGarbage",
"hudText": "Cafeteria: Empty Garbage (0/2)",
"length": "Long",
"consoles": []
},
"10": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Communications: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"11": {
"type": "NormalPlayerTask",
"taskType": "CalibrateDistributor",
"hudText": "Electrical: Calibrate Distributor",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -5.8644004,
"y": -7.4772
},
"usableDistance": 1
}
]
},
"12": {
"type": "NormalPlayerTask",
"taskType": "ChartCourse",
"hudText": "Navigation: Chart Course",
"length": "Short",
"consoles": []
},
"13": {
"type": "NormalPlayerTask",
"taskType": "CleanO2Filter",
"hudText": "O2: Clean O2 Filter",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "LifeSupp",
"position": {
"x": 5.7432,
"y": -2.9772
},
"usableDistance": 0.8
}
]
},
"14": {
"type": "NormalPlayerTask",
"taskType": "UnlockManifolds",
"hudText": "Reactor: Unlock Manifolds",
"length": "Short",
"consoles": [
{
"id": 2,
"room": "Reactor",
"position": {
"x": -22.536001,
"y": -2.4996
},
"usableDistance": 1
}
]
},
"15": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Electrical: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"16": {
"type": "NormalPlayerTask",
"taskType": "StabilizeSteering",
"hudText": "Navigation: Stabilize Steering",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Nav",
"position": {
"x": 18.732,
"y": -4.728
},
"usableDistance": 1.25
}
]
},
"17": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Weapons: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"18": {
"type": "NormalPlayerTask",
"taskType": "PrimeShields",
"hudText": "Shields: Prime Shields",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Shields",
"position": {
"x": 7.526399,
"y": -13.981199
},
"usableDistance": 1
}
]
},
"19": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Cafeteria: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"20": {
"type": "UploadDataTask",
"taskType": "UploadData",
"hudText": "Navigation: Download Data (0/2) ",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 2.5079997,
"y": -6.2652006
},
"usableDistance": 1
}
]
},
"21": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Shields (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"22": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Weapons (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"23": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Communications (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"24": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Upper Engine (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"25": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to O2 (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"26": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Navigation (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"27": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Lower Engine (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"28": {
"type": "DivertPowerTask",
"taskType": "DivertPower",
"hudText": "Electrical: Divert Power to Security (0/2)",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Electrical",
"position": {
"x": -9,
"y": -7.2936006
},
"usableDistance": 1
}
]
},
"29": {
"type": "NormalPlayerTask",
"taskType": "VentCleaning",
"hudText": "Electrical: Clean Vent",
"length": "Short",
"consoles": [
{
"id": 0,
"room": "Admin",
"position": {
"x": 2.544,
"y": -9.955201
},
"usableDistance": 1
},
{
"id": 2,
"room": "Cafeteria",
"position": {
"x": 4.2588,
"y": -0.27600002
},
"usableDistance": 1
},
{
"id": 13,
"room": "Nav",
"position": {
"x": 16.008001,
"y": -6.3840003
},
"usableDistance": 1
},
{
"id": 12,
"room": "Nav",
"position": {
"x": 16.008001,
"y": -3.1680002
},
"usableDistance": 1
},
{
"id": 7,
"room": "Weapons",
"position": {
"x": 8.820001,
"y": 3.3240001
},
"usableDistance": 1
},
{
"id": 10,
"room": "Shields",
"position": {
"x": 9.5232,
"y": -14.337601
},
"usableDistance": 1
},
{
"id": 1,
"room": "Hallway",
"position": {
"x": 9.384,
"y": -6.438
},
"usableDistance": 1
},
{
"id": 3,
"room": "Electrical",
"position": {
"x": -9.7764,
"y": -8.034
},
"usableDistance": 1
},
{
"id": 8,
"room": "Reactor",
"position": {
"x": -20.796001,
"y": -6.9528003
},
"usableDistance": 1
},
{
"id": 11,
"room": "Reactor",
"position": {
"x": -21.876,
"y": -3.0516002
},
"usableDistance": 1
},
{
"id": 9,
"room": "LowerEngine",
"position": {
"x": -15.2508,
"y": -13.656001
},
"usableDistance": 1
},
{
"id": 4,
"room": "UpperEngine",
"position": {
"x": -15.288,
"y": 2.52
},
"usableDistance": 1
},
{
"id": 5,
"room": "Security",
"position": {
"x": -12.534,
"y": -6.9492
},
"usableDistance": 1
},
{
"id": 6,
"room": "MedBay",
"position": {
"x": -10.608001,
"y": -4.176
},
"usableDistance": 1
}
]
}
}
@@ -0,0 +1,142 @@
{
"0": {
"name": "AdminVent",
"position": {
"x": 2.544,
"y": -9.955201
},
"left": 2,
"center": null,
"right": 1
},
"1": {
"name": "BigYVent",
"position": {
"x": 9.384,
"y": -6.438
},
"left": 0,
"center": null,
"right": 2
},
"2": {
"name": "CafeVent",
"position": {
"x": 4.2588,
"y": -0.27600002
},
"left": 0,
"center": null,
"right": 1
},
"3": {
"name": "ElecVent",
"position": {
"x": -9.7764,
"y": -8.034
},
"left": 5,
"center": null,
"right": 6
},
"4": {
"name": "LEngineVent",
"position": {
"x": -15.288,
"y": 2.52
},
"left": 11,
"center": null,
"right": null
},
"5": {
"name": "SecurityVent",
"position": {
"x": -12.534,
"y": -6.9492
},
"left": 6,
"center": null,
"right": 3
},
"6": {
"name": "MedVent",
"position": {
"x": -10.608001,
"y": -4.176
},
"left": 3,
"center": null,
"right": 5
},
"7": {
"name": "WeaponsVent",
"position": {
"x": 8.820001,
"y": 3.3240001
},
"left": null,
"center": null,
"right": 12
},
"8": {
"name": "ReactorVent",
"position": {
"x": -20.796001,
"y": -6.9528003
},
"left": null,
"center": null,
"right": 9
},
"9": {
"name": "REngineVent",
"position": {
"x": -15.2508,
"y": -13.656001
},
"left": 8,
"center": null,
"right": null
},
"10": {
"name": "ShieldsVent",
"position": {
"x": 9.5232,
"y": -14.337601
},
"left": null,
"center": null,
"right": 13
},
"11": {
"name": "UpperReactorVent",
"position": {
"x": -21.876,
"y": -3.0516002
},
"left": null,
"center": null,
"right": 4
},
"12": {
"name": "NavVentNorth",
"position": {
"x": 16.008001,
"y": -3.1680002
},
"left": 7,
"center": null,
"right": null
},
"13": {
"name": "NavVentSouth",
"position": {
"x": 16.008001,
"y": -6.3840003
},
"left": 10,
"center": null,
"right": null
}
}
@@ -1,68 +0,0 @@
namespace Impostor.Api.Innersloth
{
public enum DisconnectReason
{
ExitGame = 0,
Destroy = 16,
// The game you tried to join is full.
// Check with the host to see if you can join next round.
GameFull = 1,
// The game you tried to join already started.
// Check with the host to see if you can join next round.
GameStarted = 2,
// Could not find the game you're looking for..
GameMissing = 3,
IncorrectGame = 18,
// For this a message can be given, specifying an empty message shows
// "An unknown error disconnected you from the server."
// 4, 12, 13, 14, 15 also count as Custom
Custom = 8,
// You are running an older version of the game.
// Please update to play with others.
IncorrectVersion = 5,
// You were banned from { GameCode ?? "the room" }
// You cannot rejoin that room.
Banned = 6,
// You were kicked from { GameCode ?? "the room" }
// You can rejoin if the room hasn't started.
Kicked = 7,
// You were banned for hacking.
// Please stop.
Hacking = 10,
// GameModes.LocalGame:
// You disconnected from the host.
// If this happens often, check your WiFi strength.
//
// GameModes.OnlineGame:
// You disconnected from the server.
// If this happens often, check your network strength.
// This may also be a server issue.
Error = 17,
// The server stopped this game. Possibly due to inactivity.
ServerRequest = 19,
// The Among Us servers are overloaded.
// Sorry! Please try again later!
ServerFull = 20,
FocusLostBackground = 207,
// You may not join another game for another { BanMinutesLeft } minutes after intentionally disconnecting.
IntentionalLeaving = 208,
// You were disconnected because Among Us was suspended by another app.
FocusLost = 209,
NewConnection = 210,
}
}
@@ -1,29 +0,0 @@
using System;
namespace Impostor.Api.Innersloth
{
[Flags]
public enum GameKeywords : uint
{
All = 0,
English = 256,
SpanishLA = 2,
Brazilian = 2048,
Portuguese = 16,
Korean = 4,
Russian = 8,
Dutch = 4096,
Filipino = 64,
French = 8192,
German = 16384,
Italian = 32768,
Japanese = 512,
SpanishEU = 1024,
Arabic = 32,
Polish = 128,
SChinese = 65536,
TChinese = 131072,
Irish = 262144,
Other = 1,
}
}
@@ -1,13 +0,0 @@
namespace Impostor.Api.Innersloth
{
public enum GameOverReason : byte
{
HumansByVote = 0,
HumansByTask = 1,
ImpostorByVote = 2,
ImpostorByKill = 3,
ImpostorBySabotage = 4,
ImpostorDisconnect = 5,
HumansDisconnect = 6,
}
}
-15
View File
@@ -1,15 +0,0 @@
namespace Impostor.Api.Innersloth
{
public interface ITask
{
int Id { get; }
string Name { get; }
TaskTypes Type { get; }
TaskCategories Category { get; }
bool IsVisual { get; }
}
}
-19
View File
@@ -1,19 +0,0 @@
using System.Numerics;
namespace Impostor.Api.Innersloth
{
public interface IVent
{
int Id { get; }
string Name { get; }
Vector2 Position { get; }
IVent? Left { get; }
IVent? Center { get; }
IVent? Right { get; }
}
}
-19
View File
@@ -1,19 +0,0 @@
namespace Impostor.Api.Innersloth
{
public enum Language
{
English,
SpanishLA,
Brazilian,
Portuguese,
Korean,
Russian,
Dutch,
Filipino,
French,
German,
Italian,
Japanese,
SpanishEU,
}
}
+6 -6
View File
@@ -5,11 +5,11 @@ namespace Impostor.Api.Innersloth
[Flags]
public enum MapFlags
{
Skeld = 1,
MiraHQ = 2,
Polus = 4,
Airship = 16,
// 8 is taken by Dleks
Skeld = 1 << 0,
MiraHQ = 1 << 1,
Polus = 1 << 2,
Dleks = 1 << 3,
Airship = 1 << 4,
Fungle = 1 << 5,
}
}
+2
View File
@@ -5,6 +5,8 @@
Skeld = 0,
MiraHQ = 1,
Polus = 2,
Dleks = 3,
Airship = 4,
Fungle = 5,
}
}
@@ -1,94 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using Impostor.Api.Innersloth.Maps.Tasks;
using Impostor.Api.Innersloth.Maps.Vents;
namespace Impostor.Api.Innersloth.Maps
{
public class AirshipData : IMapData
{
private readonly IReadOnlyDictionary<int, IVent> _vents;
private readonly IReadOnlyDictionary<int, ITask> _tasks;
internal AirshipData()
{
var vents = new[]
{
new AirshipVent(this, AirshipVent.Ids.Vault, new Vector2(-12.6322f, 8.4735f), left: AirshipVent.Ids.Cockpit),
new AirshipVent(this, AirshipVent.Ids.Cockpit, new Vector2(-22.099f, -1.512f), left: AirshipVent.Ids.Vault, right: AirshipVent.Ids.ViewingDeck),
new AirshipVent(this, AirshipVent.Ids.ViewingDeck, new Vector2(-15.659f, -11.6991f), left: AirshipVent.Ids.Cockpit),
new AirshipVent(this, AirshipVent.Ids.EngineRoom, new Vector2(0.203f, -2.5361f), left: AirshipVent.Ids.Kitchen, right: AirshipVent.Ids.MainHallBottom),
new AirshipVent(this, AirshipVent.Ids.Kitchen, new Vector2(-2.6019f, -9.338f), left: AirshipVent.Ids.EngineRoom, right: AirshipVent.Ids.MainHallBottom),
new AirshipVent(this, AirshipVent.Ids.MainHallBottom, new Vector2(7.021f, -3.730999f), left: AirshipVent.Ids.EngineRoom, right: AirshipVent.Ids.Kitchen),
new AirshipVent(this, AirshipVent.Ids.GapRight, new Vector2(9.814f, 3.206f), left: AirshipVent.Ids.MainHallTop, right: AirshipVent.Ids.GapLeft),
new AirshipVent(this, AirshipVent.Ids.GapLeft, new Vector2(12.663f, 5.922f), left: AirshipVent.Ids.MainHallTop, right: AirshipVent.Ids.GapRight),
new AirshipVent(this, AirshipVent.Ids.MainHallTop, new Vector2(3.605f, 6.923f), left: AirshipVent.Ids.GapLeft, right: AirshipVent.Ids.GapRight),
new AirshipVent(this, AirshipVent.Ids.Showers, new Vector2(23.9869f, -1.386f), left: AirshipVent.Ids.Records, right: AirshipVent.Ids.CargoBay),
new AirshipVent(this, AirshipVent.Ids.Records, new Vector2(23.2799f, 8.259998f), left: AirshipVent.Ids.Showers, right: AirshipVent.Ids.CargoBay),
new AirshipVent(this, AirshipVent.Ids.CargoBay, new Vector2(30.4409f, -3.577f), left: AirshipVent.Ids.Showers, right: AirshipVent.Ids.Records),
};
Vents = vents.ToDictionary(x => x.Id, x => x).AsReadOnly();
_vents = vents.ToDictionary(x => (int)x.Id, x => (IVent)x).AsReadOnly();
var tasks = new[]
{
new AirshipTask(AirshipTask.Ids.ElectricalFixWiring, TaskTypes.FixWiring, TaskCategories.CommonTask),
new AirshipTask(AirshipTask.Ids.MeetingRoomEnterIDCode, TaskTypes.EnterIdCode, TaskCategories.CommonTask),
new AirshipTask(AirshipTask.Ids.ElectricalCalibrateDistributor, TaskTypes.CalibrateDistributor, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.ElectricalResetBreakers, TaskTypes.ResetBreakers, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.VaultRoomDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.BrigDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.CargoBayDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.GapRoomDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.RecordsDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.CargoBayUnlockSafe, TaskTypes.UnlockSafe, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.VentilationStartFans, TaskTypes.StartFans, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.MainHallEmptyGarbage, TaskTypes.EmptyGarbage, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.MedicalEmptyGarbage, TaskTypes.EmptyGarbage, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.KitchenEmptyGarbage, TaskTypes.EmptyGarbage, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.MainHallDevelopPhotos, TaskTypes.DevelopPhotos, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.CargoBayFuelEngines, TaskTypes.FuelEngines, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.SecurityRewindTapes, TaskTypes.RewindTapes, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.LoungeEmptyGarbage, TaskTypes.EmptyGarbage, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.ShowersEmptyGarbage, TaskTypes.EmptyGarbage, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.VaultRoomPolishRuby, TaskTypes.PolishRuby, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.CockpitStabilizeSteering, TaskTypes.StabilizeSteering, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ArmoryDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.CockpitDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.CommsDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.MedicalDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.ViewingDeckDownloadData, TaskTypes.UploadData, TaskCategories.LongTask),
new AirshipTask(AirshipTask.Ids.ElectricalDivertPowerToArmory, TaskTypes.DivertPower, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ElectricalDivertPowerToCockpit, TaskTypes.DivertPower, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ElectricalDivertPowerToGapRoom, TaskTypes.DivertPower, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ElectricalDivertPowerToMainHall, TaskTypes.DivertPower, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ElectricalDivertPowerToMeetingRoom, TaskTypes.DivertPower, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ElectricalDivertPowerToShowers, TaskTypes.DivertPower, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ElectricalDivertPowerToEngine, TaskTypes.DivertPower, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ShowersPickUpTowels, TaskTypes.PickUpTowels, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.LoungeCleanToilet, TaskTypes.CleanToilet, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.VaultRoomDressMannequin, TaskTypes.DressMannequin, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.RecordsSortRecords, TaskTypes.SortRecords, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ArmoryPutAwayPistols, TaskTypes.PutAwayPistols, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ArmoryPutAwayRifles, TaskTypes.PutAwayRifles, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.MainHallDecontaminate, TaskTypes.Decontaminate, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.KitchenMakeBurger, TaskTypes.MakeBurger, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.ShowersFixShower, TaskTypes.FixShower, TaskCategories.ShortTask),
new AirshipTask(AirshipTask.Ids.CleanVent, TaskTypes.VentCleaning, TaskCategories.ShortTask),
};
Tasks = tasks.ToDictionary(x => x.Id, x => x).AsReadOnly();
_tasks = tasks.ToDictionary(x => (int)x.Id, x => (ITask)x).AsReadOnly();
}
public IReadOnlyDictionary<AirshipVent.Ids, AirshipVent> Vents { get; }
IReadOnlyDictionary<int, IVent> IMapData.Vents => _vents;
public IReadOnlyDictionary<AirshipTask.Ids, AirshipTask> Tasks { get; }
IReadOnlyDictionary<int, ITask> IMapData.Tasks => _tasks;
}
}
@@ -0,0 +1,19 @@
using System.Numerics;
namespace Impostor.Api.Innersloth.Maps;
public sealed class DoorData
{
internal DoorData(int id, SystemTypes room, Vector2 position)
{
Id = id;
Room = room;
Position = position;
}
public int Id { get; }
public SystemTypes Room { get; }
public Vector2 Position { get; }
}
@@ -1,19 +0,0 @@
using System.Collections.Generic;
namespace Impostor.Api.Innersloth.Maps
{
public interface IMapData
{
public static IReadOnlyDictionary<MapTypes, IMapData> Maps { get; } = new Dictionary<MapTypes, IMapData>
{
[MapTypes.Skeld] = new SkeldData(),
[MapTypes.MiraHQ] = new MiraData(),
[MapTypes.Polus] = new PolusData(),
[MapTypes.Airship] = new AirshipData(),
}.AsReadOnly();
IReadOnlyDictionary<int, IVent> Vents { get; }
IReadOnlyDictionary<int, ITask> Tasks { get; }
}
}
@@ -0,0 +1,34 @@
using System.Collections.Generic;
using System.Numerics;
namespace Impostor.Api.Innersloth.Maps;
public abstract class MapData
{
protected internal MapData()
{
}
public static IReadOnlyDictionary<MapTypes, MapData> Maps { get; } = new Dictionary<MapTypes, MapData>
{
[MapTypes.Skeld] = new SkeldData(),
[MapTypes.MiraHQ] = new MiraData(),
[MapTypes.Polus] = new PolusData(),
[MapTypes.Airship] = new AirshipData(),
[MapTypes.Fungle] = new FungleData(),
}.AsReadOnly();
public abstract IReadOnlyDictionary<int, VentData> Vents { get; }
public abstract IReadOnlyDictionary<int, TaskData> Tasks { get; }
public abstract IReadOnlyDictionary<int, DoorData> Doors { get; }
public abstract float SpawnRadius { get; }
public abstract Vector2 InitialSpawnCenter { get; }
public abstract Vector2 MeetingSpawnCenter { get; }
public abstract Vector2 MeetingSpawnCenter2 { get; }
}
@@ -1,77 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using Impostor.Api.Innersloth.Maps.Tasks;
using Impostor.Api.Innersloth.Maps.Vents;
namespace Impostor.Api.Innersloth.Maps
{
public class MiraData : IMapData
{
private readonly IReadOnlyDictionary<int, IVent> _vents;
private readonly IReadOnlyDictionary<int, ITask> _tasks;
internal MiraData()
{
var vents = new[]
{
new MiraVent(this, MiraVent.Ids.Balcony, new Vector2(23.77f, -1.94f), left: MiraVent.Ids.Medbay, right: MiraVent.Ids.Cafeteria),
new MiraVent(this, MiraVent.Ids.Cafeteria, new Vector2(23.9f, 7.18f), left: MiraVent.Ids.Admin, right: MiraVent.Ids.Balcony),
new MiraVent(this, MiraVent.Ids.Reactor, new Vector2(0.4800001f, 10.697f), left: MiraVent.Ids.Laboratory, center: MiraVent.Ids.Decontamination, right: MiraVent.Ids.Launchpad),
new MiraVent(this, MiraVent.Ids.Laboratory, new Vector2(11.606f, 13.816f), left: MiraVent.Ids.Reactor, center: MiraVent.Ids.Decontamination, right: MiraVent.Ids.Office),
new MiraVent(this, MiraVent.Ids.Office, new Vector2(13.28f, 20.13f), left: MiraVent.Ids.Laboratory, center: MiraVent.Ids.Admin, right: MiraVent.Ids.Greenhouse),
new MiraVent(this, MiraVent.Ids.Admin, new Vector2(22.39f, 17.23f), left: MiraVent.Ids.Greenhouse, center: MiraVent.Ids.Cafeteria, right: MiraVent.Ids.Office),
new MiraVent(this, MiraVent.Ids.Greenhouse, new Vector2(17.85f, 25.23f), left: MiraVent.Ids.Admin, right: MiraVent.Ids.Office),
new MiraVent(this, MiraVent.Ids.Medbay, new Vector2(15.41f, -1.82f), left: MiraVent.Ids.Balcony, right: MiraVent.Ids.LockerRoom),
new MiraVent(this, MiraVent.Ids.Decontamination, new Vector2(6.83f, 3.145f), left: MiraVent.Ids.Reactor, center: MiraVent.Ids.LockerRoom, right: MiraVent.Ids.Laboratory),
new MiraVent(this, MiraVent.Ids.LockerRoom, new Vector2(4.29f, 0.5299997f), left: MiraVent.Ids.Medbay, center: MiraVent.Ids.Launchpad, right: MiraVent.Ids.Decontamination),
new MiraVent(this, MiraVent.Ids.Launchpad, new Vector2(-6.18f, 3.56f), left: MiraVent.Ids.Reactor, right: MiraVent.Ids.LockerRoom),
};
Vents = vents.ToDictionary(x => x.Id, x => x).AsReadOnly();
_vents = vents.ToDictionary(x => (int)x.Id, x => (IVent)x).AsReadOnly();
var tasks = new[]
{
new MiraTask(MiraTask.Ids.HallwayFixWiring, TaskTypes.FixWiring, TaskCategories.CommonTask),
new MiraTask(MiraTask.Ids.AdminEnterIDCode, TaskTypes.EnterIdCode, TaskCategories.CommonTask),
new MiraTask(MiraTask.Ids.MedbaySubmitScan, TaskTypes.SubmitScan, TaskCategories.LongTask, true),
new MiraTask(MiraTask.Ids.BalconyClearAsteroids, TaskTypes.ClearAsteroids, TaskCategories.LongTask),
new MiraTask(MiraTask.Ids.ElectricalDivertPowerToAdmin, TaskTypes.DivertPower, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.ElectricalDivertPowerToCafeteria, TaskTypes.DivertPower, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.ElectricalDivertPowerToCommunications, TaskTypes.DivertPower, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.ElectricalDivertPowerToLaunchpad, TaskTypes.DivertPower, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.ElectricalDivertPowerToMedbay, TaskTypes.DivertPower, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.ElectricalDivertPowerToOffice, TaskTypes.DivertPower, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.StorageWaterPlants, TaskTypes.WaterPlants, TaskCategories.LongTask),
new MiraTask(MiraTask.Ids.ReactorStartReactor, TaskTypes.StartReactor, TaskCategories.LongTask),
new MiraTask(MiraTask.Ids.ElectricalDivertPowerToGreenhouse, TaskTypes.DivertPower, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.AdminChartCourse, TaskTypes.ChartCourse, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.GreenhouseCleanO2Filter, TaskTypes.Filter, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.LaunchpadFuelEngines, TaskTypes.FuelEngines, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.LaboratoryAssembleArtifact, TaskTypes.AssembleArtifact, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.LaboratorySortSamples, TaskTypes.SortSamples, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.AdminPrimeShields, TaskTypes.PrimeShields, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.CafeteriaEmptyGarbage, TaskTypes.EmptyGarbage, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.BalconyMeasureWeather, TaskTypes.MeasureWeather, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.ElectricalDivertPowerToLaboratory, TaskTypes.DivertPower, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.CafeteriaBuyBeverage, TaskTypes.BuyBeverage, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.OfficeProcessData, TaskTypes.ProcessData, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.LaunchpadRunDiagnostics, TaskTypes.RunDiagnostics, TaskCategories.LongTask),
new MiraTask(MiraTask.Ids.ReactorUnlockManifolds, TaskTypes.UnlockManifolds, TaskCategories.ShortTask),
new MiraTask(MiraTask.Ids.CleanVent, TaskTypes.VentCleaning, TaskCategories.ShortTask),
};
Tasks = tasks.ToDictionary(x => x.Id, x => x).AsReadOnly();
_tasks = tasks.ToDictionary(x => (int)x.Id, x => (ITask)x).AsReadOnly();
}
public IReadOnlyDictionary<MiraVent.Ids, MiraVent> Vents { get; }
IReadOnlyDictionary<int, IVent> IMapData.Vents => _vents;
public IReadOnlyDictionary<MiraTask.Ids, MiraTask> Tasks { get; }
IReadOnlyDictionary<int, ITask> IMapData.Tasks => _tasks;
}
}
@@ -1,84 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using Impostor.Api.Innersloth.Maps.Tasks;
using Impostor.Api.Innersloth.Maps.Vents;
namespace Impostor.Api.Innersloth.Maps
{
public class PolusData : IMapData
{
private readonly IReadOnlyDictionary<int, IVent> _vents;
private readonly IReadOnlyDictionary<int, ITask> _tasks;
internal PolusData()
{
var vents = new[]
{
new PolusVent(this, PolusVent.Ids.Security, new Vector2(1.929f, -9.558001f), left: PolusVent.Ids.O2, right: PolusVent.Ids.Electrical),
new PolusVent(this, PolusVent.Ids.Electrical, new Vector2(6.9f, -14.41f), left: PolusVent.Ids.O2, right: PolusVent.Ids.Security),
new PolusVent(this, PolusVent.Ids.O2, new Vector2(3.51f, -16.58f), left: PolusVent.Ids.Electrical, right: PolusVent.Ids.Security),
new PolusVent(this, PolusVent.Ids.Communications, new Vector2(12.304f, -18.898f), left: PolusVent.Ids.Storage, right: PolusVent.Ids.Office),
new PolusVent(this, PolusVent.Ids.Office, new Vector2(16.379f, -19.599f), left: PolusVent.Ids.Communications, right: PolusVent.Ids.Storage),
new PolusVent(this, PolusVent.Ids.Admin, new Vector2(20.089f, -25.517f), left: PolusVent.Ids.OutsideAdmin, right: PolusVent.Ids.Lava),
new PolusVent(this, PolusVent.Ids.Laboratory, new Vector2(32.963f, -9.526f), right: PolusVent.Ids.Lava),
new PolusVent(this, PolusVent.Ids.Lava, new Vector2(30.907f, -11.86f), left: PolusVent.Ids.Laboratory, right: PolusVent.Ids.Admin),
new PolusVent(this, PolusVent.Ids.Storage, new Vector2(22f, -12.19f), left: PolusVent.Ids.Communications, right: PolusVent.Ids.Office),
new PolusVent(this, PolusVent.Ids.RightStabilizer, new Vector2(23.72f, -7.82f), left: PolusVent.Ids.LeftStabilizer),
new PolusVent(this, PolusVent.Ids.LeftStabilizer, new Vector2(9.64f, -7.72f), left: PolusVent.Ids.RightStabilizer),
new PolusVent(this, PolusVent.Ids.OutsideAdmin, new Vector2(18.93f, -24.85f), right: PolusVent.Ids.Admin),
};
Vents = vents.ToDictionary(x => x.Id, x => x).AsReadOnly();
_vents = vents.ToDictionary(x => (int)x.Id, x => (IVent)x).AsReadOnly();
var tasks = new[]
{
new PolusTask(PolusTask.Ids.OfficeSwipeCard, TaskTypes.SwipeCard, TaskCategories.CommonTask),
new PolusTask(PolusTask.Ids.DropshipInsertKeys, TaskTypes.InsertKeys, TaskCategories.CommonTask),
new PolusTask(PolusTask.Ids.OfficeScanBoardingPass, TaskTypes.ScanBoardingPass, TaskCategories.CommonTask),
new PolusTask(PolusTask.Ids.ElectricalFixWiring, TaskTypes.FixWiring, TaskCategories.CommonTask),
new PolusTask(PolusTask.Ids.WeaponsDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.OfficeDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.ElectricalDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.SpecimenRoomDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.O2DownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.SpecimenRoomStartReactor, TaskTypes.StartReactor, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.StorageFuelEngines, TaskTypes.FuelEngines, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.BoilerRoomOpenWaterways, TaskTypes.OpenWaterways, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.MedbayInspectSample, TaskTypes.InspectSample, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.BoilerRoomReplaceWaterJug, TaskTypes.ReplaceWaterJug, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.OutsideFixWeatherNodeNode_GI, TaskTypes.ActivateWeatherNodes, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.OutsideFixWeatherNodeNode_IRO, TaskTypes.ActivateWeatherNodes, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.OutsideFixWeatherNodeNode_PD, TaskTypes.ActivateWeatherNodes, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.OutsideFixWeatherNodeNode_TB, TaskTypes.ActivateWeatherNodes, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.CommunicationsRebootWiFi, TaskTypes.RebootWifi, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.O2MonitorTree, TaskTypes.MonitorOxygen, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.SpecimenRoomUnlockManifolds, TaskTypes.UnlockManifolds, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.SpecimenRoomStoreArtifacts, TaskTypes.StoreArtifact, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.O2FillCanisters, TaskTypes.FillCanisters, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.O2EmptyGarbage, TaskTypes.EmptyGarbage, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.DropshipChartCourse, TaskTypes.ChartCourse, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.MedbaySubmitScan, TaskTypes.SubmitScan, TaskCategories.ShortTask, true),
new PolusTask(PolusTask.Ids.WeaponsClearAsteroids, TaskTypes.ClearAsteroids, TaskCategories.ShortTask, true),
new PolusTask(PolusTask.Ids.OutsideFixWeatherNodeNode_CA, TaskTypes.ActivateWeatherNodes, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.OutsideFixWeatherNodeNode_MLG, TaskTypes.ActivateWeatherNodes, TaskCategories.LongTask),
new PolusTask(PolusTask.Ids.LaboratoryAlignTelescope, TaskTypes.AlignTelescope, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.LaboratoryRepairDrill, TaskTypes.RepairDrill, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.LaboratoryRecordTemperature, TaskTypes.RecordTemperature, TaskCategories.ShortTask),
new PolusTask(PolusTask.Ids.OutsideRecordTemperature, TaskTypes.RecordTemperature, TaskCategories.ShortTask),
};
Tasks = tasks.ToDictionary(x => x.Id, x => x).AsReadOnly();
_tasks = tasks.ToDictionary(x => (int)x.Id, x => (ITask)x).AsReadOnly();
}
public IReadOnlyDictionary<PolusVent.Ids, PolusVent> Vents { get; }
IReadOnlyDictionary<int, IVent> IMapData.Vents => _vents;
public IReadOnlyDictionary<PolusTask.Ids, PolusTask> Tasks { get; }
IReadOnlyDictionary<int, ITask> IMapData.Tasks => _tasks;
}
}
@@ -1,83 +0,0 @@
using System.Collections.Generic;
using System.Linq;
using System.Numerics;
using Impostor.Api.Innersloth.Maps.Tasks;
using Impostor.Api.Innersloth.Maps.Vents;
namespace Impostor.Api.Innersloth.Maps
{
public class SkeldData : IMapData
{
private readonly IReadOnlyDictionary<int, IVent> _vents;
private readonly IReadOnlyDictionary<int, ITask> _tasks;
internal SkeldData()
{
var vents = new[]
{
new SkeldVent(this, SkeldVent.Ids.Admin, new Vector2(2.544f, -9.955201f), left: SkeldVent.Ids.Cafeteria, right: SkeldVent.Ids.RightHallway),
new SkeldVent(this, SkeldVent.Ids.RightHallway, new Vector2(9.384f, -6.438f), left: SkeldVent.Ids.Admin, right: SkeldVent.Ids.Cafeteria),
new SkeldVent(this, SkeldVent.Ids.Cafeteria, new Vector2(4.2588f, -0.276f), left: SkeldVent.Ids.Admin, right: SkeldVent.Ids.RightHallway),
new SkeldVent(this, SkeldVent.Ids.Electrical, new Vector2(-9.7764f, -8.034f), left: SkeldVent.Ids.Security, right: SkeldVent.Ids.Medbay),
new SkeldVent(this, SkeldVent.Ids.UpperEngine, new Vector2(-15.288f, 2.52f), left: SkeldVent.Ids.UpperReactor),
new SkeldVent(this, SkeldVent.Ids.Security, new Vector2(-12.534f, -6.9492f), left: SkeldVent.Ids.Medbay, right: SkeldVent.Ids.Electrical),
new SkeldVent(this, SkeldVent.Ids.Medbay, new Vector2(-10.608f, -4.176f), left: SkeldVent.Ids.Security, right: SkeldVent.Ids.Electrical),
new SkeldVent(this, SkeldVent.Ids.Weapons, new Vector2(8.820001f, 3.324f), right: SkeldVent.Ids.UpperNavigation),
new SkeldVent(this, SkeldVent.Ids.LowerReactor, new Vector2(-20.796f, -6.9528f), left: SkeldVent.Ids.LowerEngine),
new SkeldVent(this, SkeldVent.Ids.LowerEngine, new Vector2(-15.2508f, -13.656f), left: SkeldVent.Ids.LowerReactor),
new SkeldVent(this, SkeldVent.Ids.Shields, new Vector2(9.5232f, -14.3376f), left: SkeldVent.Ids.LowerNavigation),
new SkeldVent(this, SkeldVent.Ids.UpperReactor, new Vector2(-21.876f, -3.0516f), left: SkeldVent.Ids.UpperEngine),
new SkeldVent(this, SkeldVent.Ids.UpperNavigation, new Vector2(16.008f, -3.168f), right: SkeldVent.Ids.Weapons),
new SkeldVent(this, SkeldVent.Ids.LowerNavigation, new Vector2(16.008f, -6.384f), right: SkeldVent.Ids.Shields),
};
Vents = vents.ToDictionary(x => x.Id, x => x).AsReadOnly();
_vents = vents.ToDictionary(x => (int)x.Id, x => (IVent)x).AsReadOnly();
var tasks = new[]
{
new SkeldTask(SkeldTask.Ids.AdminSwipeCard, TaskTypes.SwipeCard, TaskCategories.CommonTask),
new SkeldTask(SkeldTask.Ids.ElectricalFixWiring, TaskTypes.FixWiring, TaskCategories.CommonTask),
new SkeldTask(SkeldTask.Ids.WeaponsClearAsteroids, TaskTypes.ClearAsteroids, TaskCategories.LongTask, true),
new SkeldTask(SkeldTask.Ids.EnginesAlignEngineOutput, TaskTypes.AlignEngineOutput, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.MedbaySubmitScan, TaskTypes.SubmitScan, TaskCategories.LongTask, true),
new SkeldTask(SkeldTask.Ids.MedbayInspectSample, TaskTypes.InspectSample, TaskCategories.LongTask),
new SkeldTask(SkeldTask.Ids.StorageFuelEngines, TaskTypes.FuelEngines, TaskCategories.LongTask),
new SkeldTask(SkeldTask.Ids.ReactorStartReactor, TaskTypes.StartReactor, TaskCategories.LongTask),
new SkeldTask(SkeldTask.Ids.O2EmptyChute, TaskTypes.EmptyChute, TaskCategories.LongTask, true),
new SkeldTask(SkeldTask.Ids.CafeteriaEmptyGarbage, TaskTypes.EmptyGarbage, TaskCategories.LongTask, true),
new SkeldTask(SkeldTask.Ids.CommunicationsDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalCalibrateDistributor, TaskTypes.CalibrateDistributor, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.NavigationChartCourse, TaskTypes.ChartCourse, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.O2CleanO2Filter, TaskTypes.Filter, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ReactorUnlockManifolds, TaskTypes.UnlockManifolds, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.NavigationStabilizeSteering, TaskTypes.StabilizeSteering, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.WeaponsDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ShieldsPrimeShields, TaskTypes.PrimeShields, TaskCategories.ShortTask, true),
new SkeldTask(SkeldTask.Ids.CafeteriaDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.NavigationDownloadData, TaskTypes.UploadData, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDivertPowerToShields, TaskTypes.DivertPower, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDivertPowerToWeapons, TaskTypes.DivertPower, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDivertPowerToCommunications, TaskTypes.DivertPower, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDivertPowerToUpperEngine, TaskTypes.DivertPower, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDivertPowerToO2, TaskTypes.DivertPower, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDivertPowerToNavigation, TaskTypes.DivertPower, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDivertPowerToLowerEngine, TaskTypes.DivertPower, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.ElectricalDivertPowerToSecurity, TaskTypes.DivertPower, TaskCategories.ShortTask),
new SkeldTask(SkeldTask.Ids.CleanVent, TaskTypes.VentCleaning, TaskCategories.ShortTask),
};
Tasks = tasks.ToDictionary(x => x.Id, x => x).AsReadOnly();
_tasks = tasks.ToDictionary(x => (int)x.Id, x => (ITask)x).AsReadOnly();
}
public IReadOnlyDictionary<SkeldVent.Ids, SkeldVent> Vents { get; }
IReadOnlyDictionary<int, IVent> IMapData.Vents => _vents;
public IReadOnlyDictionary<SkeldTask.Ids, SkeldTask> Tasks { get; }
IReadOnlyDictionary<int, ITask> IMapData.Tasks => _tasks;
}
}
@@ -0,0 +1,23 @@
namespace Impostor.Api.Innersloth.Maps;
public sealed class TaskData
{
internal TaskData(int id, TaskTypes type, TaskCategories category, bool isVisual = false)
{
Id = id;
Name = id.ToString();
Type = type;
Category = category;
IsVisual = isVisual;
}
public int Id { get; }
public string Name { get; }
public TaskTypes Type { get; }
public TaskCategories Category { get; }
public bool IsVisual { get; }
}
@@ -1,73 +0,0 @@
namespace Impostor.Api.Innersloth.Maps.Tasks
{
public class AirshipTask : ITask
{
internal AirshipTask(Ids id, TaskTypes type, TaskCategories category, bool isVisual = false)
{
Id = id;
Name = id.ToString();
Type = type;
Category = category;
IsVisual = isVisual;
}
public enum Ids
{
ElectricalFixWiring = 0,
MeetingRoomEnterIDCode = 1,
ElectricalCalibrateDistributor = 2,
ElectricalResetBreakers = 3,
VaultRoomDownloadData = 4,
BrigDownloadData = 5,
CargoBayDownloadData = 6,
GapRoomDownloadData = 7,
RecordsDownloadData = 8,
CargoBayUnlockSafe = 9,
VentilationStartFans = 10,
MainHallEmptyGarbage = 11,
MedicalEmptyGarbage = 12,
KitchenEmptyGarbage = 13,
MainHallDevelopPhotos = 14,
CargoBayFuelEngines = 15,
SecurityRewindTapes = 16,
LoungeEmptyGarbage = 17,
ShowersEmptyGarbage = 18,
VaultRoomPolishRuby = 19,
CockpitStabilizeSteering = 20,
ArmoryDownloadData = 21,
CockpitDownloadData = 22,
CommsDownloadData = 23,
MedicalDownloadData = 24,
ViewingDeckDownloadData = 25,
ElectricalDivertPowerToArmory = 26,
ElectricalDivertPowerToCockpit = 27,
ElectricalDivertPowerToGapRoom = 28,
ElectricalDivertPowerToMainHall = 29,
ElectricalDivertPowerToMeetingRoom = 30,
ElectricalDivertPowerToShowers = 31,
ElectricalDivertPowerToEngine = 32,
ShowersPickUpTowels = 33,
LoungeCleanToilet = 34,
VaultRoomDressMannequin = 35,
RecordsSortRecords = 36,
ArmoryPutAwayPistols = 37,
ArmoryPutAwayRifles = 38,
MainHallDecontaminate = 39,
KitchenMakeBurger = 40,
ShowersFixShower = 41,
CleanVent = 42,
}
public Ids Id { get; }
int ITask.Id => (int)Id;
public string Name { get; }
public TaskTypes Type { get; }
public TaskCategories Category { get; }
public bool IsVisual { get; }
}
}
@@ -1,57 +0,0 @@
namespace Impostor.Api.Innersloth.Maps.Tasks
{
public class MiraTask : ITask
{
internal MiraTask(Ids id, TaskTypes type, TaskCategories category, bool isVisual = false)
{
Id = id;
Name = id.ToString();
Type = type;
Category = category;
IsVisual = isVisual;
}
public enum Ids
{
HallwayFixWiring = 0,
AdminEnterIDCode = 1,
MedbaySubmitScan = 2,
BalconyClearAsteroids = 3,
ElectricalDivertPowerToAdmin = 4,
ElectricalDivertPowerToCafeteria = 5,
ElectricalDivertPowerToCommunications = 6,
ElectricalDivertPowerToLaunchpad = 7,
ElectricalDivertPowerToMedbay = 8,
ElectricalDivertPowerToOffice = 9,
StorageWaterPlants = 10,
ReactorStartReactor = 11,
ElectricalDivertPowerToGreenhouse = 12,
AdminChartCourse = 13,
GreenhouseCleanO2Filter = 14,
LaunchpadFuelEngines = 15,
LaboratoryAssembleArtifact = 16,
LaboratorySortSamples = 17,
AdminPrimeShields = 18,
CafeteriaEmptyGarbage = 19,
BalconyMeasureWeather = 20,
ElectricalDivertPowerToLaboratory = 21,
CafeteriaBuyBeverage = 22,
OfficeProcessData = 23,
LaunchpadRunDiagnostics = 24,
ReactorUnlockManifolds = 25,
CleanVent = 26,
}
public Ids Id { get; }
int ITask.Id => (int)Id;
public string Name { get; }
public TaskTypes Type { get; }
public TaskCategories Category { get; }
public bool IsVisual { get; }
}
}
@@ -1,63 +0,0 @@
namespace Impostor.Api.Innersloth.Maps.Tasks
{
public class PolusTask : ITask
{
internal PolusTask(Ids id, TaskTypes type, TaskCategories category, bool isVisual = false)
{
Id = id;
Name = id.ToString();
Type = type;
Category = category;
IsVisual = isVisual;
}
public enum Ids
{
OfficeSwipeCard = 0,
DropshipInsertKeys = 1,
OfficeScanBoardingPass = 2,
ElectricalFixWiring = 3,
WeaponsDownloadData = 4,
OfficeDownloadData = 5,
ElectricalDownloadData = 6,
SpecimenRoomDownloadData = 7,
O2DownloadData = 8,
SpecimenRoomStartReactor = 9,
StorageFuelEngines = 10,
BoilerRoomOpenWaterways = 11,
MedbayInspectSample = 12,
BoilerRoomReplaceWaterJug = 13,
OutsideFixWeatherNodeNode_GI = 14,
OutsideFixWeatherNodeNode_IRO = 15,
OutsideFixWeatherNodeNode_PD = 16,
OutsideFixWeatherNodeNode_TB = 17,
CommunicationsRebootWiFi = 18,
O2MonitorTree = 19,
SpecimenRoomUnlockManifolds = 20,
SpecimenRoomStoreArtifacts = 21,
O2FillCanisters = 22,
O2EmptyGarbage = 23,
DropshipChartCourse = 24,
MedbaySubmitScan = 25,
WeaponsClearAsteroids = 26,
OutsideFixWeatherNodeNode_CA = 27,
OutsideFixWeatherNodeNode_MLG = 28,
LaboratoryAlignTelescope = 29,
LaboratoryRepairDrill = 30,
LaboratoryRecordTemperature = 31,
OutsideRecordTemperature = 32,
}
public Ids Id { get; }
int ITask.Id => (int)Id;
public string Name { get; }
public TaskTypes Type { get; }
public TaskCategories Category { get; }
public bool IsVisual { get; }
}
}
@@ -1,60 +0,0 @@
namespace Impostor.Api.Innersloth.Maps.Tasks
{
public class SkeldTask : ITask
{
internal SkeldTask(Ids id, TaskTypes type, TaskCategories category, bool isVisual = false)
{
Id = id;
Name = id.ToString();
Type = type;
Category = category;
IsVisual = isVisual;
}
public enum Ids
{
AdminSwipeCard = 0,
ElectricalFixWiring = 1,
WeaponsClearAsteroids = 2,
EnginesAlignEngineOutput = 3,
MedbaySubmitScan = 4,
MedbayInspectSample = 5,
StorageFuelEngines = 6,
ReactorStartReactor = 7,
O2EmptyChute = 8,
CafeteriaEmptyGarbage = 9,
CommunicationsDownloadData = 10,
ElectricalCalibrateDistributor = 11,
NavigationChartCourse = 12,
O2CleanO2Filter = 13,
ReactorUnlockManifolds = 14,
ElectricalDownloadData = 15,
NavigationStabilizeSteering = 16,
WeaponsDownloadData = 17,
ShieldsPrimeShields = 18,
CafeteriaDownloadData = 19,
NavigationDownloadData = 20,
ElectricalDivertPowerToShields = 21,
ElectricalDivertPowerToWeapons = 22,
ElectricalDivertPowerToCommunications = 23,
ElectricalDivertPowerToUpperEngine = 24,
ElectricalDivertPowerToO2 = 25,
ElectricalDivertPowerToNavigation = 26,
ElectricalDivertPowerToLowerEngine = 27,
ElectricalDivertPowerToSecurity = 28,
CleanVent = 29,
}
public Ids Id { get; }
int ITask.Id => (int)Id;
public string Name { get; }
public TaskTypes Type { get; }
public TaskCategories Category { get; }
public bool IsVisual { get; }
}
}
@@ -0,0 +1,36 @@
using System;
using System.Numerics;
namespace Impostor.Api.Innersloth.Maps;
public class VentData
{
private readonly Lazy<VentData>? _left;
private readonly Lazy<VentData>? _center;
private readonly Lazy<VentData>? _right;
internal VentData(MapData data, int id, string name, Vector2 position, int? left = null, int? center = null, int? right = null)
{
Id = id;
Name = name;
Position = position;
_left = left == null ? null : new Lazy<VentData>(() => data.Vents[left.Value]);
_center = center == null ? null : new Lazy<VentData>(() => data.Vents[center.Value]);
_right = right == null ? null : new Lazy<VentData>(() => data.Vents[right.Value]);
}
public int Id { get; }
public string Name { get; }
public Vector2 Position { get; }
public VentData? Left => _left?.Value;
public VentData? Center => _center?.Value;
public VentData? Right => _right?.Value;
}
@@ -1,61 +0,0 @@
using System;
using System.Numerics;
namespace Impostor.Api.Innersloth.Maps.Vents
{
public class AirshipVent : IVent
{
private readonly Lazy<AirshipVent>? _left;
private readonly Lazy<AirshipVent>? _center;
private readonly Lazy<AirshipVent>? _right;
internal AirshipVent(AirshipData data, Ids id, Vector2 position, Ids? left = null, Ids? center = null, Ids? right = null)
{
Id = id;
Name = id.ToString();
Position = position;
_left = left == null ? null : new Lazy<AirshipVent>(() => data.Vents[left.Value]);
_center = center == null ? null : new Lazy<AirshipVent>(() => data.Vents[center.Value]);
_right = right == null ? null : new Lazy<AirshipVent>(() => data.Vents[right.Value]);
}
public enum Ids
{
Vault = 0,
Cockpit = 1,
ViewingDeck = 2,
EngineRoom = 3,
Kitchen = 4,
MainHallBottom = 5,
GapRight = 6,
GapLeft = 7,
MainHallTop = 8,
Showers = 9,
Records = 10,
CargoBay = 11,
}
public Ids Id { get; }
int IVent.Id => (int)Id;
public string Name { get; }
public Vector2 Position { get; }
public AirshipVent? Left => _left?.Value;
IVent? IVent.Left => Left;
public AirshipVent? Center => _center?.Value;
IVent? IVent.Center => Center;
public AirshipVent? Right => _right?.Value;
IVent? IVent.Right => Right;
}
}
@@ -1,60 +0,0 @@
using System;
using System.Numerics;
namespace Impostor.Api.Innersloth.Maps.Vents
{
public class MiraVent : IVent
{
private readonly Lazy<MiraVent>? _left;
private readonly Lazy<MiraVent>? _center;
private readonly Lazy<MiraVent>? _right;
internal MiraVent(MiraData data, Ids id, Vector2 position, Ids? left = null, Ids? center = null, Ids? right = null)
{
Id = id;
Name = id.ToString();
Position = position;
_left = left == null ? null : new Lazy<MiraVent>(() => data.Vents[left.Value]);
_center = center == null ? null : new Lazy<MiraVent>(() => data.Vents[center.Value]);
_right = right == null ? null : new Lazy<MiraVent>(() => data.Vents[right.Value]);
}
public enum Ids
{
Balcony = 1,
Cafeteria = 2,
Reactor = 3,
Laboratory = 4,
Office = 5,
Admin = 6,
Greenhouse = 7,
Medbay = 8,
Decontamination = 9,
LockerRoom = 10,
Launchpad = 11,
}
public Ids Id { get; }
int IVent.Id => (int)Id;
public string Name { get; }
public Vector2 Position { get; }
public MiraVent? Left => _left?.Value;
IVent? IVent.Left => Left;
public MiraVent? Center => _center?.Value;
IVent? IVent.Center => Center;
public MiraVent? Right => _right?.Value;
IVent? IVent.Right => Right;
}
}
@@ -1,61 +0,0 @@
using System;
using System.Numerics;
namespace Impostor.Api.Innersloth.Maps.Vents
{
public class PolusVent : IVent
{
private readonly Lazy<PolusVent>? _left;
private readonly Lazy<PolusVent>? _center;
private readonly Lazy<PolusVent>? _right;
internal PolusVent(PolusData data, Ids id, Vector2 position, Ids? left = null, Ids? center = null, Ids? right = null)
{
Id = id;
Name = id.ToString();
Position = position;
_left = left == null ? null : new Lazy<PolusVent>(() => data.Vents[left.Value]);
_center = center == null ? null : new Lazy<PolusVent>(() => data.Vents[center.Value]);
_right = right == null ? null : new Lazy<PolusVent>(() => data.Vents[right.Value]);
}
public enum Ids
{
Security = 0,
Electrical = 1,
O2 = 2,
Communications = 3,
Office = 4,
Admin = 5,
Laboratory = 6,
Lava = 7,
Storage = 8,
RightStabilizer = 9,
LeftStabilizer = 10,
OutsideAdmin = 11,
}
public Ids Id { get; }
int IVent.Id => (int)Id;
public string Name { get; }
public Vector2 Position { get; }
public PolusVent? Left => _left?.Value;
IVent? IVent.Left => Left;
public PolusVent? Center => _center?.Value;
IVent? IVent.Center => Center;
public PolusVent? Right => _right?.Value;
IVent? IVent.Right => Right;
}
}
@@ -1,63 +0,0 @@
using System;
using System.Numerics;
namespace Impostor.Api.Innersloth.Maps.Vents
{
public class SkeldVent : IVent
{
private readonly Lazy<SkeldVent>? _left;
private readonly Lazy<SkeldVent>? _center;
private readonly Lazy<SkeldVent>? _right;
internal SkeldVent(SkeldData data, Ids id, Vector2 position, Ids? left = null, Ids? center = null, Ids? right = null)
{
Id = id;
Name = id.ToString();
Position = position;
_left = left == null ? null : new Lazy<SkeldVent>(() => data.Vents[left.Value]);
_center = center == null ? null : new Lazy<SkeldVent>(() => data.Vents[center.Value]);
_right = right == null ? null : new Lazy<SkeldVent>(() => data.Vents[right.Value]);
}
public enum Ids
{
Admin = 0,
RightHallway = 1,
Cafeteria = 2,
Electrical = 3,
UpperEngine = 4,
Security = 5,
Medbay = 6,
Weapons = 7,
LowerReactor = 8,
LowerEngine = 9,
Shields = 10,
UpperReactor = 11,
UpperNavigation = 12,
LowerNavigation = 13,
}
public Ids Id { get; }
int IVent.Id => (int)Id;
public string Name { get; }
public Vector2 Position { get; }
public SkeldVent? Left => _left?.Value;
IVent? IVent.Left => Left;
public SkeldVent? Center => _center?.Value;
IVent? IVent.Center => Center;
public SkeldVent? Right => _right?.Value;
IVent? IVent.Right => Right;
}
}
-17
View File
@@ -1,17 +0,0 @@
namespace Impostor.Api.Innersloth
{
public enum Platforms
{
Unknown = 0,
StandaloneEpicPC = 1,
StandaloneSteamPC = 2,
StandaloneMac = 3,
StandaloneWin10 = 4,
StandaloneItch = 5,
IPhone = 6,
Android = 7,
Switch = 8,
Xbox = 9,
Playstation = 10,
}
}
-14
View File
@@ -1,14 +0,0 @@
namespace Impostor.Api.Innersloth
{
public enum RoleTypes : ushort
{
Crewmate,
Impostor,
Scientist,
Engineer,
GuardianAngel,
Shapeshifter,
CrewmateGhost,
ImpostorGhost,
}
}
-101
View File
@@ -1,101 +0,0 @@
namespace Impostor.Api.Innersloth
{
public enum SystemTypes : byte
{
Hallway = 0,
Storage = 1,
Cafeteria = 2,
Reactor = 3,
UpperEngine = 4,
Nav = 5,
Admin = 6,
Electrical = 7,
LifeSupp = 8,
Shields = 9,
MedBay = 10,
Security = 11,
Weapons = 12,
LowerEngine = 13,
Comms = 14,
ShipTasks = 15,
Doors = 16,
Sabotage = 17,
/// <remarks>The only decontamination on Mira and bottom decontamination on Polus.</remarks>
Decontamination = 18,
Launchpad = 19,
LockerRoom = 20,
Laboratory = 21,
Balcony = 22,
Office = 23,
Greenhouse = 24,
Dropship = 25,
/// <remarks>Top decontamination on Polus.</remarks>
Decontamination2 = 26,
Outside = 27,
Specimens = 28,
BoilerRoom = 29,
VaultRoom = 30,
Cockpit = 31,
Armory = 32,
Kitchen = 33,
ViewingDeck = 34,
HallOfPortraits = 35,
CargoBay = 36,
Ventilation = 37,
Showers = 38,
Engine = 39,
Brig = 40,
MeetingRoom = 41,
Records = 42,
Lounge = 43,
GapRoom = 44,
MainHall = 45,
Medical = 46,
}
}
-67
View File
@@ -1,67 +0,0 @@
namespace Impostor.Api.Innersloth
{
public enum TaskTypes : uint
{
SubmitScan = 0,
PrimeShields = 1,
FuelEngines = 2,
ChartCourse = 3,
StartReactor = 4,
SwipeCard = 5,
ClearAsteroids = 6,
UploadData = 7,
InspectSample = 8,
EmptyChute = 9,
EmptyGarbage = 10,
AlignEngineOutput = 11,
FixWiring = 12,
CalibrateDistributor = 13,
DivertPower = 14,
UnlockManifolds = 15,
ResetReactor = 16,
FixLights = 17,
Filter = 18,
FixComms = 19,
RestoreOxy = 20,
StabilizeSteering = 21,
AssembleArtifact = 22,
SortSamples = 23,
MeasureWeather = 24,
EnterIdCode = 25,
BuyBeverage = 26,
ProcessData = 27,
RunDiagnostics = 28,
WaterPlants = 29,
MonitorOxygen = 30,
StoreArtifact = 31,
FillCanisters = 32,
ActivateWeatherNodes = 33,
InsertKeys = 34,
ResetSeismic = 35,
ScanBoardingPass = 36,
OpenWaterways = 37,
ReplaceWaterJug = 38,
RepairDrill = 39,
AlignTelescope = 40,
RecordTemperature = 41,
RebootWifi = 42,
PolishRuby = 43,
ResetBreakers = 44,
Decontaminate = 45,
MakeBurger = 46,
UnlockSafe = 47,
SortRecords = 48,
PutAwayPistols = 49,
FixShower = 50,
CleanToilet = 51,
DressMannequin = 52,
PickUpTowels = 53,
RewindTapes = 54,
StartFans = 55,
DevelopPhotos = 56,
GetBiggolSword = 57,
PutAwayRifles = 58,
StopCharles = 59,
VentCleaning = 60,
}
}
@@ -1,5 +1,5 @@
using System.Threading.Tasks;
using Impostor.Api.Innersloth;
using Impostor.Api.Innersloth.Maps;
namespace Impostor.Api.Net.Inner.Objects
{
@@ -7,7 +7,7 @@ namespace Impostor.Api.Net.Inner.Objects
{
uint Id { get; }
ITask? Task { get; }
TaskData? Task { get; }
bool Complete { get; }
-51
View File
@@ -1,51 +0,0 @@
namespace Impostor.Api.Net.Inner
{
public enum RpcCalls : byte
{
PlayAnimation = 0,
CompleteTask = 1,
SyncSettings = 2,
SetInfected = 3,
Exiled = 4,
CheckName = 5,
SetName = 6,
CheckColor = 7,
SetColor = 8,
ReportDeadBody = 11,
MurderPlayer = 12,
SendChat = 13,
StartMeeting = 14,
SetScanner = 15,
SendChatNote = 16,
SetStartCounter = 18,
EnterVent = 19,
ExitVent = 20,
SnapTo = 21,
Close = 22,
VotingComplete = 23,
CastVote = 24,
ClearVote = 25,
AddVote = 26,
CloseDoorsOfType = 27,
RepairSystem = 28,
SetTasks = 29,
ClimbLadder = 31,
UsePlatform = 32,
SendQuickChat = 33,
BootFromVent = 34,
UpdateSystem = 35,
SetLevel = 38,
SetHat = 39,
SetSkin = 40,
SetPet = 41,
SetVisor = 42,
SetNamePlate = 43,
SetRole = 44,
ProtectPlayer = 45,
Shapeshift = 46,
CheckMurder = 47,
CheckProtect = 48,
Pet = 49,
CancelPet = 50,
}
}
@@ -0,0 +1,15 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc38SetLevel
{
public static void Serialize(IMessageWriter writer, uint level)
{
writer.WritePacked(level);
}
public static void Deserialize(IMessageReader reader, out uint level)
{
level = reader.ReadPackedUInt32();
}
}
}
@@ -1,6 +1,6 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc39SetHat
public static class Rpc39SetHatStr
{
public static void Serialize(IMessageWriter writer, string hat)
{
@@ -1,6 +1,6 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc40SetSkin
public static class Rpc40SetSkinStr
{
public static void Serialize(IMessageWriter writer, string skin)
{
@@ -1,6 +1,6 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc41SetPet
public static class Rpc41SetPetStr
{
public static void Serialize(IMessageWriter writer, string pet)
{
@@ -0,0 +1,15 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc42SetVisorStr
{
public static void Serialize(IMessageWriter writer, string visor)
{
writer.Write(visor);
}
public static void Deserialize(IMessageReader reader, out string visor)
{
visor = reader.ReadString();
}
}
}
@@ -0,0 +1,15 @@
namespace Impostor.Api.Net.Messages.Rpcs
{
public static class Rpc43SetNamePlateStr
{
public static void Serialize(IMessageWriter writer, string namePlate)
{
writer.Write(namePlate);
}
public static void Deserialize(IMessageReader reader, out string namePlate)
{
namePlate = reader.ReadString();
}
}
}
@@ -1,6 +1,4 @@
using Impostor.Api.Events;
using Impostor.Api.Games;
using Impostor.Api.Innersloth;
using Microsoft.Extensions.Logging;
namespace Impostor.Plugins.Example.Handlers
@@ -111,19 +111,19 @@ namespace Impostor.Plugins.Example.Handlers
[EventListener]
public void OnPlayerEnterVentEvent(IPlayerEnterVentEvent e)
{
_logger.LogInformation("Player {player} entered the vent in {vent}", e.PlayerControl.PlayerInfo.PlayerName, e.Vent.Name);
_logger.LogInformation("Player {player} entered the vent in {vent} ({ventId})", e.PlayerControl.PlayerInfo.PlayerName, e.Vent.Name, e.Vent.Id);
}
[EventListener]
public void OnPlayerExitVentEvent(IPlayerExitVentEvent e)
{
_logger.LogInformation("Player {player} exited the vent in {vent}", e.PlayerControl.PlayerInfo.PlayerName, e.Vent.Name);
_logger.LogInformation("Player {player} exited the vent in {vent} ({ventId})", e.PlayerControl.PlayerInfo.PlayerName, e.Vent.Name, e.Vent.Id);
}
[EventListener]
public void OnPlayerVentEvent(IPlayerVentEvent e)
{
_logger.LogInformation("Player {player} vented to {vent}", e.PlayerControl.PlayerInfo.PlayerName, e.NewVent.Name);
_logger.LogInformation("Player {player} vented to {vent} ({ventId})", e.PlayerControl.PlayerInfo.PlayerName, e.NewVent.Name, e.NewVent.Id);
}
[EventListener]
@@ -1,6 +1,6 @@
using Impostor.Api.Events.Player;
using Impostor.Api.Games;
using Impostor.Api.Innersloth;
using Impostor.Api.Innersloth.Maps;
using Impostor.Api.Net;
using Impostor.Api.Net.Inner.Objects;
@@ -8,7 +8,7 @@ namespace Impostor.Server.Events.Player
{
public class PlayerEnterVentEvent : IPlayerEnterVentEvent
{
public PlayerEnterVentEvent(IGame game, IClientPlayer sender, IInnerPlayerControl innerPlayerPhysics, IVent vent)
public PlayerEnterVentEvent(IGame game, IClientPlayer sender, IInnerPlayerControl innerPlayerPhysics, VentData vent)
{
Game = game;
ClientPlayer = sender;
@@ -22,6 +22,6 @@ namespace Impostor.Server.Events.Player
public IInnerPlayerControl PlayerControl { get; }
public IVent Vent { get; }
public VentData Vent { get; }
}
}
@@ -1,6 +1,6 @@
using Impostor.Api.Events.Player;
using Impostor.Api.Games;
using Impostor.Api.Innersloth;
using Impostor.Api.Innersloth.Maps;
using Impostor.Api.Net;
using Impostor.Api.Net.Inner.Objects;
@@ -8,7 +8,7 @@ namespace Impostor.Server.Events.Player
{
public class PlayerExitVentEvent : IPlayerExitVentEvent
{
public PlayerExitVentEvent(IGame game, IClientPlayer sender, IInnerPlayerControl innerPlayerPhysics, IVent vent)
public PlayerExitVentEvent(IGame game, IClientPlayer sender, IInnerPlayerControl innerPlayerPhysics, VentData vent)
{
Game = game;
ClientPlayer = sender;
@@ -22,6 +22,6 @@ namespace Impostor.Server.Events.Player
public IInnerPlayerControl PlayerControl { get; }
public IVent Vent { get; }
public VentData Vent { get; }
}
}
@@ -1,6 +1,6 @@
using Impostor.Api.Events.Player;
using Impostor.Api.Games;
using Impostor.Api.Innersloth;
using Impostor.Api.Innersloth.Maps;
using Impostor.Api.Net;
using Impostor.Api.Net.Inner.Objects;
@@ -8,7 +8,7 @@ namespace Impostor.Server.Events.Player
{
public class PlayerVentEvent : IPlayerVentEvent
{
public PlayerVentEvent(IGame game, IClientPlayer sender, IInnerPlayerControl innerPlayerPhysics, IVent vent)
public PlayerVentEvent(IGame game, IClientPlayer sender, IInnerPlayerControl innerPlayerPhysics, VentData vent)
{
Game = game;
ClientPlayer = sender;
@@ -22,6 +22,6 @@ namespace Impostor.Server.Events.Player
public IInnerPlayerControl PlayerControl { get; }
public IVent NewVent { get; }
public VentData NewVent { get; }
}
}
Loaded 100 of 115 files, more files were not shown because too many files have changed in this diff. Show more