Compare commits

..
5 Commits
Author SHA1 Message Date
miniduikboot a00b9e63d8 Merge pull request #702 from Impostor/feature/17.0.0
Add support for 17.0.0
2025-09-26 20:22:43 +02:00
miniduikboot d7e5594cf6 Run Dumposter on 17.0.0 2025-09-22 21:06:05 +02:00
miniduikboot 8ba89d9844 Add GameOptions V10
Manually added roles to RoleTypes, will clean up later
2025-09-09 20:40:07 +02:00
miniduikboot ebd7f99438 Bump to 1.10.4
No breaking changes expected
2025-09-09 20:39:31 +02:00
miniduikboot 2197434bdc Add version block for 17.0.0 2025-09-09 20:16:31 +02:00
17 changed files with 435 additions and 105 deletions

No files matched your search

+1 -1
View File
@@ -2,7 +2,7 @@
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>11</LangVersion>
<VersionPrefix>1.10.3</VersionPrefix>
<VersionPrefix>1.10.4</VersionPrefix>
<VersionSuffix>dev</VersionSuffix>
<EnforceCodeStyleInBuild Condition="$(MSBuildProjectName)!='Hazel'">true</EnforceCodeStyleInBuild>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
@@ -5,7 +5,7 @@
"4": "PlayerControl",
"5": "MiraShipStatus",
"6": "PolusShipStatus",
"7": "ShipStatus",
"7": "SkeldShipStatus",
"8": "AirshipStatus",
"9": "HideAndSeekManager",
"10": "NormalGameManager",
@@ -1,11 +1,11 @@
{
"HumansByVote": 0,
"HumansByTask": 1,
"ImpostorByVote": 2,
"ImpostorByKill": 3,
"ImpostorBySabotage": 4,
"CrewmatesByVote": 0,
"CrewmatesByTask": 1,
"ImpostorsByVote": 2,
"ImpostorsByKill": 3,
"ImpostorsBySabotage": 4,
"ImpostorDisconnect": 5,
"HumansDisconnect": 6,
"HideAndSeek_ByTimer": 7,
"HideAndSeek_ByKills": 8
"CrewmateDisconnect": 6,
"HideAndSeek_CrewmatesByTimer": 7,
"HideAndSeek_ImpostorsByKills": 8
}
@@ -9,5 +9,7 @@
"ImpostorGhost": 7,
"Noisemaker": 8,
"Phantom": 9,
"Tracker": 10
"Tracker": 10,
"Detective": 12,
"Viper": 18
}
@@ -8,15 +8,15 @@
"SetName": 6,
"CheckColor": 7,
"SetColor": 8,
"SetHat": 9,
"SetSkin": 10,
"SetHat_Deprecated": 9,
"SetSkin_Deprecated": 10,
"ReportDeadBody": 11,
"MurderPlayer": 12,
"SendChat": 13,
"StartMeeting": 14,
"SetScanner": 15,
"SendChatNote": 16,
"SetPet": 17,
"SetPet_Deprecated": 17,
"SetStartCounter": 18,
"EnterVent": 19,
"ExitVent": 20,
@@ -33,8 +33,8 @@
"SendQuickChat": 33,
"BootFromVent": 34,
"UpdateSystem": 35,
"SetVisor": 36,
"SetNamePlate": 37,
"SetVisor_Deprecated": 36,
"SetNamePlate_Deprecated": 37,
"SetLevel": 38,
"SetHatStr": 39,
"SetSkinStr": 40,
@@ -1379,6 +1379,9 @@
"MissingGuardianEmailText": 3325,
"AprilFoolsModeToggle": 3326,
"LobbyChangeSettingNotification": 3327,
"LoadingBarLoading": 3328,
"LoadingBarGameStart": 3329,
"LoadingBarGameStartWaitingPlayers": 3330,
"ImpostorsCategory": 3350,
"RolesCategory": 3351,
"MeetingsCategory": 3352,
@@ -1405,6 +1408,10 @@
"StandardRulesPresetDescriptionHideAndSeek": 3373,
"GameModeStandardSeek": 3374,
"HostYouLabel": 3375,
"GamePresetsPopupTitle": 3376,
"GamePresetsPopupText": 3377,
"GamePresetsPopupContinue": 3378,
"GamePresetsPopupBack": 3379,
"MiningPit": 3400,
"Jungle": 3401,
"BuildSandcastle": 3402,
@@ -1492,5 +1499,129 @@
"QCLobbyClosing": 3547,
"QCChangeCosmetics": 3548,
"QCWaitingPlayers": 3549,
"QCLetsWaitPlayers": 3550
"QCLetsWaitPlayers": 3550,
"ServerLabel": 3551,
"JoinLobby": 3552,
"ChatLabel": 3553,
"ToolTipDefault": 3554,
"LevelLabel": 3555,
"NoneLowercaseLabel": 3556,
"ToolTipClassic": 3557,
"ToolTipHide": 3558,
"ToolTipMap": 3559,
"ToolTipCapacity": 3560,
"ToolTipLevel": 3561,
"ToolTipServer": 3562,
"ToolTipCrossplay": 3563,
"ToolTipNoCrossplay": 3564,
"ToolTipLanguage": 3565,
"ConfirmSettings": 3566,
"ConfirmSettingsTooltip": 3567,
"EnterCodeElipsis": 3568,
"ToolTipChatTab": 3569,
"DropshipsLabel": 3570,
"FiltersActive": 3571,
"ClearFilters": 3572,
"MoreLabel": 3573,
"HostNounEmpty": 3574,
"ToolTipSkeld": 3575,
"ToolTipMIRA": 3576,
"ToolTipPolus": 3577,
"ToolTipAirship": 3578,
"ToolTipFungle": 3579,
"FilterLow": 3580,
"FilterMed": 3581,
"FilterHigh": 3582,
"FilterVeryHigh": 3583,
"FilterLong": 3584,
"FilterNone": 3585,
"FilterPlayerLevel": 3586,
"RefreshLabel": 3587,
"JoinGameLabel": 3588,
"FilterClearText": 3589,
"MatchesFoundLabel": 3590,
"FilterGameTooltip": 3591,
"FilterMapTooltip": 3592,
"FilterImpostorTooltip": 3593,
"FilterRoleTooltip": 3594,
"FilterSpeedTooltip": 3595,
"FilterKillCDTooltip": 3596,
"FilterVotingTooltip": 3597,
"FilterVisualTaskTooltip": 3598,
"FilterAnonVotesTooltip": 3599,
"FilterConfirmEjectTooltip": 3600,
"FilterLevelTooltip": 3601,
"FilterCrossplayTooltip": 3602,
"FilterDefaultTooltip": 3603,
"FilterFlashlightTooltip": 3604,
"FilterHidingTimeTooltip": 3605,
"FilterFinalTimeTooltip": 3606,
"FilterMaxVentTooltip": 3607,
"FilterBeginner": 3608,
"FilterIntermediate": 3609,
"FilterExpert": 3610,
"FilterTag": 3611,
"FilterTagTooltip": 3612,
"TooltipTag": 3613,
"SelectedLabel": 3614,
"TooltipSpeedInfo": 3615,
"TooltipKillCDInfo": 3616,
"TooltipVotingInfo": 3617,
"TooptipHidingTimeInfo": 3618,
"TooltipFinalTimeInfo": 3619,
"FilterNoMaps": 3620,
"MaxFilters": 3621,
"XboxCommsMultiplayerError": 3700,
"XboxCommsUGError": 3701,
"XboxCommsCreateGameError": 3702,
"XboxCommsSearchError": 3703,
"XboxCommsJoinError": 3704,
"DetectiveRole": 4000,
"DetectiveAbility": 4001,
"DetectiveAbilityNotes": 4002,
"DetectiveBlurb": 4003,
"DetectiveBlurbMed": 4004,
"DetectiveBlurbLong": 4005,
"DetectiveNotesEmpty": 4006,
"DetectiveNotesFoundDead": 4007,
"DetectiveNotesSuspectInfo": 4008,
"DetectiveNearLocation": 4009,
"DetectiveNotesKiller": 4010,
"StatsDetectiveQuestioned": 4011,
"StatsDetectiveCasesFilled": 4012,
"DetectiveSuspectLimit": 4013,
"RolesHelp_Detective_01": 4014,
"RolesHelp_Detective_02": 4015,
"ViperRole": 4037,
"ViperBlurb": 4038,
"ViperBlurbMed": 4039,
"ViperBlurbLong": 4040,
"ViperDissolveTime": 4041,
"ViperAbility": 4042,
"StatsViperBodiesDissolved": 4043,
"RolesHelp_Viper_01": 4044,
"RolesHelp_Viper_02": 4045,
"QCWhereWasDead": 4060,
"QCInterrogateCrew": 4061,
"QCInterrogated": 4062,
"QCBodyDissolved": 4063,
"QCBodyVeryDissolved": 4064,
"QCBodyAlmostDissolved": 4065,
"QCDetectives": 4066,
"QCVipers": 4067,
"DetectiveNotesTitleVictim": 4068,
"DetectiveNotesTitleFoundDead": 4069,
"DetectiveNotesTitleKiller": 4070,
"DetectiveNotesTitleSuspects": 4071,
"DetectiveNotesTitleLocationsAtTimeOfDeath": 4072,
"DetectiveNotesPromptPreposition": 4073,
"DetectiveNotesPromptLocation": 4074,
"DetectiveNotesPromptImpostor": 4075,
"DetectiveNotesPromptSuspect": 4076,
"DetectiveNotesPrepositionIn": 4077,
"DetectiveNotesPrepositionBy": 4078,
"DetectiveNotesPrepositionMaybe": 4079,
"DetectiveNotesTitlePostIt": 4080,
"DetectiveNotesPostIt": 4081,
"DetectiveNotesSuspectNumber": 4082
}
+2 -2
View File
@@ -1,5 +1,5 @@
{
"dumpostorVersion": "1.0.1",
"gameVersion": "2024.10.29",
"dumpostorVersion": "1.0.1-dev",
"gameVersion": "2025.9.9",
"platformType": "StandaloneItch"
}
@@ -1,93 +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": {
"1": {
"room": "Cafeteria",
"position": {
"x": 0.708,
"y": -4.992
}
},
"2": {
"room": "Cafeteria",
"position": {
"x": 6.3936,
"y": 1.33848
}
},
"3": {
"room": "Electrical",
"position": {
"x": 9.53616,
"y": -13.416001
}
},
"10": {
"room": "MedBay",
"4": {
"room": "Storage",
"position": {
"x": 9.1452,
"y": -0.4439999
"x": -1.1316001,
"y": -11.98128
}
},
"11": {
"5": {
"room": "Storage",
"position": {
"x": 0.70919997,
"y": -8.560801
}
},
"6": {
"room": "Storage",
"position": {
"x": 5.268,
"y": -14.2884
}
},
"7": {
"room": "LowerEngine",
"position": {
"x": 14.6808,
"y": -11.472
}
},
"8": {
"room": "LowerEngine",
"position": {
"x": 16.930801,
"y": -8.9664
}
},
"12": {
"room": "Storage",
"9": {
"room": "UpperEngine",
"position": {
"x": 0.70919997,
"y": -8.560801
"x": 14.676002,
"y": 1.3406401
}
},
"10": {
"room": "UpperEngine",
"position": {
"x": 16.930801,
"y": -2.1276002
}
},
"11": {
"room": "Security",
"position": {
"x": 14.734801,
"y": -5.1417603
}
},
"12": {
"room": "MedBay",
"position": {
"x": 9.1452,
"y": -0.4439999
}
}
}
@@ -1,11 +1,11 @@
{
"initialSpawnCenter": {
"x": -0.72,
"y": 0.62
"x": 0.87,
"y": 0.69
},
"meetingSpawnCenter": {
"x": -0.72,
"y": 0.62
"x": 0.87,
"y": 0.69
},
"meetingSpawnCenter2": {
"x": 0,
@@ -476,5 +476,138 @@
"usableDistance": 1
}
]
},
"29": {
"type": "NormalPlayerTask",
"taskType": "VentCleaning",
"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
}
]
}
}
@@ -1,6 +1,6 @@
{
"0": {
"name": "AdminVent",
"name": "AdminVent (1)",
"position": {
"x": -2.544,
"y": -9.955201
@@ -10,7 +10,7 @@
"right": 1
},
"1": {
"name": "BigYVent",
"name": "BigYVent (1)",
"position": {
"x": -9.384,
"y": -6.438
@@ -20,7 +20,7 @@
"right": 2
},
"2": {
"name": "CafeVent",
"name": "CafeVent (1)",
"position": {
"x": -4.2588,
"y": -0.27600002
@@ -30,7 +30,7 @@
"right": 1
},
"3": {
"name": "ElecVent",
"name": "ElecVent (1)",
"position": {
"x": 9.7764,
"y": -8.034
@@ -40,7 +40,7 @@
"right": 6
},
"4": {
"name": "LEngineVent",
"name": "LEngineVent (1)",
"position": {
"x": 15.288,
"y": 2.52
@@ -50,7 +50,7 @@
"right": null
},
"5": {
"name": "LifeSuppVent",
"name": "SecurityVent",
"position": {
"x": 12.534,
"y": -6.9492
@@ -60,7 +60,7 @@
"right": 3
},
"6": {
"name": "MedVent",
"name": "MedVent (1)",
"position": {
"x": 10.608001,
"y": -4.176
@@ -70,7 +70,7 @@
"right": 3
},
"7": {
"name": "WeaponsVent",
"name": "WeaponsVent (1)",
"position": {
"x": -8.820001,
"y": 3.3240001
@@ -80,7 +80,7 @@
"right": 12
},
"8": {
"name": "ReactorVent",
"name": "ReactorVent (1)",
"position": {
"x": 20.796001,
"y": -6.9528003
@@ -90,7 +90,7 @@
"right": null
},
"9": {
"name": "REngineVent",
"name": "REngineVent (1)",
"position": {
"x": 15.2508,
"y": -13.656001
@@ -100,7 +100,7 @@
"right": null
},
"10": {
"name": "ShieldsVent",
"name": "ShieldsVent (1)",
"position": {
"x": -9.5232,
"y": -14.337601
@@ -110,7 +110,7 @@
"right": null
},
"11": {
"name": "UpperReactorVent",
"name": "UpperReactorVent (1)",
"position": {
"x": 21.876,
"y": -3.0516002
@@ -120,7 +120,7 @@
"right": null
},
"12": {
"name": "NavVentNorth",
"name": "NavVentNorth (1)",
"position": {
"x": -16.008001,
"y": -3.1680002
@@ -130,7 +130,7 @@
"right": 7
},
"13": {
"name": "NavVentSouth",
"name": "NavVentSouth (1)",
"position": {
"x": -16.008001,
"y": -6.3840003
@@ -2,7 +2,7 @@ namespace Impostor.Api.Innersloth.GameOptions;
public class HideNSeekGameOptions : IGameOptions
{
public const int LatestVersion = 9;
public const int LatestVersion = 10;
public HideNSeekGameOptions(byte version = LatestVersion)
{
@@ -4,7 +4,7 @@ namespace Impostor.Api.Innersloth.GameOptions;
public class NormalGameOptions : IGameOptions
{
public const int LatestVersion = 9;
public const int LatestVersion = 10;
public NormalGameOptions(byte version = LatestVersion)
{
@@ -0,0 +1,29 @@
namespace Impostor.Api.Innersloth.GameOptions.RoleOptions;
public class DetectiveRoleOptions : IRoleOptions
{
public DetectiveRoleOptions(byte version)
{
Version = version;
}
public byte Version { get; }
public RoleTypes Type => RoleTypes.Detective;
public byte DetectiveSuspectLimit { get; set; } = 3;
public static DetectiveRoleOptions Deserialize(IMessageReader reader, byte version)
{
var options = new DetectiveRoleOptions(version);
options.DetectiveSuspectLimit = reader.ReadByte();
return options;
}
public void Serialize(IMessageWriter writer)
{
writer.Write((byte)DetectiveSuspectLimit);
}
}
@@ -32,6 +32,8 @@ public class RoleOptionsCollection
RoleTypes.Noisemaker => NoisemakerRoleOptions.Deserialize(roleOptionsReader, Version),
RoleTypes.Phantom => PhantomRoleOptions.Deserialize(roleOptionsReader, Version),
RoleTypes.Tracker => TrackerRoleOptions.Deserialize(roleOptionsReader, Version),
RoleTypes.Detective => DetectiveRoleOptions.Deserialize(roleOptionsReader, Version),
RoleTypes.Viper => ViperRoleOptions.Deserialize(roleOptionsReader, Version),
_ => throw new ArgumentOutOfRangeException(nameof(roleType), roleType, null),
};
@@ -0,0 +1,29 @@
namespace Impostor.Api.Innersloth.GameOptions.RoleOptions;
public class ViperRoleOptions : IRoleOptions
{
public ViperRoleOptions(byte version)
{
Version = version;
}
public byte Version { get; }
public RoleTypes Type => RoleTypes.Viper;
public byte ViperDissolveTime { get; set; } = 15;
public static ViperRoleOptions Deserialize(IMessageReader reader, byte version)
{
var options = new ViperRoleOptions(version);
options.ViperDissolveTime = reader.ReadByte();
return options;
}
public void Serialize(IMessageWriter writer)
{
writer.Write((byte)ViperDissolveTime);
}
}
@@ -30,6 +30,10 @@ internal class CompatibilityManager : ICompatibilityManager
{
new GameVersion(2025, 4, 15), // 16.0.5 (2025-05-20)
},
new[]
{
new GameVersion(2025, 7, 15), // 17.0.0 (2025-09-09)
},
};
private readonly List<CompatibilityGroup> _compatibilityGroups = new();