miniduikboot [Wed, 25 May 2022 17:53:32 +0000 (19:53 +0200)]
Allow adding custom tasks on standard maps (#481)
This is needed for mods that add tasks to standard maps, but also mods
that add custom maps: because their custom netobjects don't get
registered Impostor thinks people are still on the old map when people
switch to the custom map after playing a game.
miniduikboot [Wed, 25 May 2022 17:52:22 +0000 (19:52 +0200)]
Upgrade to .NET 6 (#479)
* Upgrade to .NET 6
.NET 5 has gone EOL, so move to a supported version.
* Upgrade Docker container as well
* Update docs for .NET 6
* Re-add hack for System.IO.Pipelines
* Bump dependency versions
* Update the deps of the other projects too
* Only declare TargetFramework once
* Dockerfile: also copy over Directory.Build.props
* Cake: pick up target framework automatically
* Upgrade Cake as well
Because it is fine to add data to the end of messages the new fields
could be added to Message 1 just fine, but because Message 7 contains a
loop, we need to send a different message to old clients there.
miniduikboot [Wed, 16 Feb 2022 21:31:23 +0000 (22:31 +0100)]
Deprecate JoinGame errors
Starting from version 2021.11.9, join errors no longer exist, instead a
client will show the message "An unknown error disconnected you from the
server". As a workaround, the connection is disconnected entirely when
an error occurs, which allows us to show a custom message.
Oversized nicknames can cause bigger issues, so it is desireable to
still block them. .Length counts codepoints, not bytes, which means
that 10 character Japanese nicknames, which are configurable ingame,
should still be allowed.
miniduikboot [Fri, 14 Jan 2022 17:21:16 +0000 (18:21 +0100)]
Merge pull request #452 from miniduikboot/fix/host-migrate
Before this commit, when the host of a game disconnects, the InnerPlayerInfo from the player is removed, which causes the new host to disconnect because of a deserialization error. This PR fixes this issue
miniduikboot [Mon, 10 Jan 2022 19:47:19 +0000 (20:47 +0100)]
Remove name length/validity checks from JoinGame
Length and validity are checked also checked by the anticheat. In case
Impostor goes out of sync with the allowed characters again, this can
just be fixed by disabling the Anticheat.
Check for NullOrWhiteSpace is kept because an empty username could be annoying
miniduikboot [Sat, 8 Jan 2022 17:15:12 +0000 (18:15 +0100)]
AC CheckMurder: Require half of cooldown
When the Guardian Angel protects a player, the impostor that just missed
their kill gets back half of their cooldown. Keeping track of whether or
not the player was protected is more difficult due to how the Guardian
Angel is implemented, so instead we halve the minimum time between kill
in order to minimize false positives.
miniduikboot [Mon, 22 Nov 2021 21:12:34 +0000 (22:12 +0100)]
Implement new MurderPlayer logic
In 2021.11.9, the host now uses MurderPlayer instead of impostors.
Impostor now use CheckMurder to request the host to kill a player. This
allows the host to prevent the target of the Guardian Angel from dying.
However, if the impostor that is checking the kill is also the host, AU
internally processes the CheckMurder RPC and sends the MurderPlayer RPC
first, *then* it sends the CheckMurder RPC.
Improve error when client version is unsupported (#432)
* Improve error when client version is unsupported
In the default message that was used previously the user is asked to
upgrade his game. This is not always correct, as sometimes the Impostor
server is too old and should be updated instead. Therefore custom
disconnect messages are used that blames either the user or the server
operator, which is hopefully more accurate.
I've chosen not to include the game version that is supported by the
server in this message because the network version rarely matches the
advertised version in the main menu.
This is used to hide players that are still selecting their spawn
location. If this is cancelled, players are left standing at the
location they were at when the last meeting was called, which is undesirable.
miniduikboot [Wed, 23 Jun 2021 18:46:45 +0000 (20:46 +0200)]
Turn derived properties into getters
There is no significant performance difference: while accessing the
getters is slightly slower, this can be balanced against the cost of
setting the property. As this is also cleaner, switch to getters.
miniduikboot [Sun, 20 Jun 2021 11:40:59 +0000 (13:40 +0200)]
Remove the table from the Readme
As Among Us is getting a lot of small network-compatible bugfix releases
nowadays, it doesn't seem necessary to maintain the table anymore.
Release notes state clearly which network version is supported and there
is limited support for old versions anyway.
miniduikboot [Sun, 20 Jun 2021 11:37:04 +0000 (13:37 +0200)]
Simplify the setup instructions
The patcher has not been updated to support the new JSON format and is
less necessary now that JSON is used for the region file format.
The website also now has deeplinking support, so we point Android/iOS
people to the website now too as that is more convenient compared to the
previous methods.