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.
miniduikboot [Sun, 30 May 2021 16:23:12 +0000 (18:23 +0200)]
Initialize Color to -1 instead of Red
This could lead to an AC disconnect if the host picked red and waited
for other players to rejoin before joining back himself. Before this
commit, the host would SetColor himself to Red, but this would be
flagged as all other players would have been set to Red as enums
initialize to 0 (= Red) by default.
After the host SetColor'd himself, the host will send over the color
array, which initializes player colors to -1. This commit follows AU by
also initializing the color to -1, preventing the AC from flagging the
duplicate colors.
miniduikboot [Mon, 17 May 2021 17:13:54 +0000 (19:13 +0200)]
Fix KeyNotFoundException for nonexistent vents (#413)
Some mods add extra vents that don't yet exist, this commit checks if a
given vent exists and if it doesn't, throw an AC violation instead of
disconnecting the player
One downside is that the Enter/ExitVent events are no longer called, but
this would require the vent in that event to become nullable