diff --git a/Gamemodes/NaturalDisasters.cs b/Gamemodes/NaturalDisasters.cs
index b30e1e14e..996caba04 100644
--- a/Gamemodes/NaturalDisasters.cs
+++ b/Gamemodes/NaturalDisasters.cs
@@ -235,12 +235,12 @@ public static class NaturalDisasters
{
return name switch
{
- "Earthquake" => "<#000000>\u2588<#000000>\u2588<#5e5e5e>\u2588<#adadad>\u2588\u2588\u2588\u2588\u2588
<#5e5e5e>\u2588<#000000>\u2588<#5e5e5e>\u2588<#adadad>\u2588<#adadad>\u2588\u2588\u2588\u2588
<#5e5e5e>\u2588<#000000>\u2588<#000000>\u2588<#5e5e5e>\u2588<#5e5e5e>\u2588<#adadad>\u2588<#adadad>\u2588\u2588
<#adadad>\u2588<#5e5e5e>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#5e5e5e>\u2588<#5e5e5e>\u2588<#adadad>\u2588
\u2588<#adadad>\u2588<#5e5e5e>\u2588<#5e5e5e>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#5e5e5e>\u2588
\u2588\u2588<#adadad>\u2588<#adadad>\u2588<#5e5e5e>\u2588<#5e5e5e>\u2588<#000000>\u2588<#000000>\u2588
\u2588\u2588\u2588\u2588<#adadad>\u2588<#adadad>\u2588<#5e5e5e>\u2588<#000000>\u2588
\u2588\u2588\u2588\u2588\u2588<#adadad>\u2588<#5e5e5e>\u2588<#000000>\u2588
",
- "Meteor" => "\u2588\u2588\u2588<#fff700>\u2588<#fff700>\u2588\u2588\u2588\u2588
\u2588\u2588<#fff700>\u2588<#ffae00>\u2588<#ffae00>\u2588<#fff700>\u2588\u2588\u2588
\u2588<#fff700>\u2588<#ffae00>\u2588<#ff6f00>\u2588<#ff6f00>\u2588<#ffae00>\u2588<#fff700>\u2588\u2588
<#fff700>\u2588<#ffae00>\u2588<#ff6f00>\u2588<#ff1100>\u2588<#ff1100>\u2588<#ff6f00>\u2588<#ffae00>\u2588<#fff700>\u2588
<#fff700>\u2588<#ffae00>\u2588<#ff6f00>\u2588<#ff1100>\u2588<#ff1100>\u2588<#ff6f00>\u2588<#ffae00>\u2588<#fff700>\u2588
\u2588<#fff700>\u2588<#ffae00>\u2588<#ff6f00>\u2588<#ff6f00>\u2588<#ffae00>\u2588<#fff700>\u2588\u2588
\u2588\u2588<#fff700>\u2588<#ffae00>\u2588<#ffae00>\u2588<#fff700>\u2588\u2588\u2588
\u2588\u2588\u2588<#fff700>\u2588<#fff700>\u2588\u2588\u2588\u2588
",
- "VolcanoEruption" => "\u2588\u2588\u2588\u2588\u2588\u2588
\u2588\u2588\u2588\u2588\u2588\u2588
\u2588\u2588<#ff6200>\u2588<#ff6200>\u2588\u2588\u2588
\u2588\u2588<#ff6200>\u2588<#ff6200>\u2588\u2588\u2588
\u2588\u2588\u2588\u2588\u2588\u2588
\u2588\u2588\u2588\u2588\u2588\u2588
",
- "Tornado" => "\u2588\u2588<#dbdbdb>\u2588<#dbdbdb>\u2588<#dbdbdb>\u2588<#dbdbdb>\u2588\u2588\u2588
\u2588<#dbdbdb>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#dbdbdb>\u2588\u2588
<#dbdbdb>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#828282>\u2588<#828282>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#dbdbdb>\u2588
<#dbdbdb>\u2588<#b0b0b0>\u2588<#828282>\u2588<#474747>\u2588<#474747>\u2588<#828282>\u2588<#b0b0b0>\u2588<#dbdbdb>\u2588
<#dbdbdb>\u2588<#b0b0b0>\u2588<#828282>\u2588<#474747>\u2588<#474747>\u2588<#828282>\u2588<#b0b0b0>\u2588<#dbdbdb>\u2588
<#dbdbdb>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#828282>\u2588<#828282>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#dbdbdb>\u2588
\u2588<#dbdbdb>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#b0b0b0>\u2588<#dbdbdb>\u2588\u2588
\u2588\u2588<#dbdbdb>\u2588<#dbdbdb>\u2588<#dbdbdb>\u2588<#dbdbdb>\u2588\u2588\u2588
",
+ "Earthquake" => "WWWW<#0000>WWWW\nWWWWW<#0000>WWW\nWWWWWWW<#0000>W\nWWWWWWWW\n<#0000>WWWWWWWW\n<#0000>WWWWWWWW\n<#0000>WWWWWWWW\n<#0000>WWWWWWWW",
+ "Meteor" => "<#0000>WWWWW<#0000>WWW\nWWWWWW<#0000>WW\nWWWWWWW<#0000>W\nWWWWWWWW\nWWWWWWWW\n<#0000>WWWWWWW<#0000>W\nWWWWWW<#0000>WW\nWWWWW<#0000>WWW",
+ "VolcanoEruption" => "WW\nWW",
+ "Tornado" => "<#0000>WWWWWW<#0000>WW\nWWWWWWW<#0000>W\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\n<#0000>WWWWWWW<#0000>W\nWWWWWW<#0000>WW",
"SandStorm" => "<#ffdc7a>█<#dbcfba>█<#f5c387>█<#ffe8d6>█<#ffc18f>█<#ffe8d6>█<#ffe8d6>█<#ffdc7a>█
<#dbcfba>█<#f5c6a2>█<#ffc18f>█<#ffe8d6>█<#e6a875>█<#ffe8d6>█<#f5c6a2>█<#ffe8d6>█
<#e6a875>█<#ffe8d6>█<#f5c6a2>█<#ffe8d6>█<#ffe8d6>█<#ffdc7a>█<#ffe8d6>█<#f5c387>█
<#ffe8d6>█<#ffdc7a>█<#dbcfba>█<#ffc18f>█<#ffe8d6>█<#ffe8d6>█<#f5c6a2>█<#ffc18f>█
<#f5c6a2>█<#ffe8d6>█<#f5c6a2>█<#ffe8d6>█<#f5c6a2>█<#e6a875>█<#dbcfba>█<#ffe8d6>█
<#ffc18f>█<#ffe8d6>█<#ffc18f>█<#ffe8d6>█<#ffe8d6>█<#ffdc7a>█<#ffe8d6>█<#e6a875>█
<#ffe8d6>█<#f5c6a2>█<#ffe8d6>█<#f5c6a2>█<#ffe8d6>█<#ffe8d6>█<#f5c6a2>█<#ffe8d6>█
<#ffdc7a>█<#ffe8d6>█<#e6a875>█<#ffe8d6>█<#ffc18f>█<#ffe8d6>█<#ffe8d6>█<#ffdc7a>█
",
- "Sinkhole" => "<#7d7d7d>\u2588<#7d7d7d>\u2588<#545454>\u2588<#7d7d7d>\u2588<#7d7d7d>\u2588<#7d7d7d>\u2588<#7d7d7d>\u2588<#545454>\u2588
<#545454>\u2588<#424242>\u2588<#424242>\u2588<#424242>\u2588<#424242>\u2588<#424242>\u2588<#424242>\u2588<#7d7d7d>\u2588
<#7d7d7d>\u2588<#424242>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#424242>\u2588<#7d7d7d>\u2588
<#545454>\u2588<#424242>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#424242>\u2588<#7d7d7d>\u2588
<#7d7d7d>\u2588<#424242>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#424242>\u2588<#545454>\u2588
<#545454>\u2588<#424242>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#000000>\u2588<#424242>\u2588<#7d7d7d>\u2588
<#7d7d7d>\u2588<#424242>\u2588<#424242>\u2588<#424242>\u2588<#424242>\u2588<#424242>\u2588<#424242>\u2588<#7d7d7d>\u2588
<#545454>\u2588<#545454>\u2588<#7d7d7d>\u2588<#7d7d7d>\u2588<#545454>\u2588<#7d7d7d>\u2588<#7d7d7d>\u2588<#545454>\u2588
",
+ "Sinkhole" => "WWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW",
_ => string.Empty
};
}
@@ -632,9 +632,9 @@ public static class NaturalDisasters
string newSprite = Phase switch
{
- 2 => "\u2588\u2588\u2588\u2588\u2588\u2588
\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588\u2588
\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588\u2588
\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588\u2588
\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588\u2588
\u2588\u2588\u2588\u2588\u2588\u2588
",
- 3 => "<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
",
- 4 => "<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588<#ff6200>\u2588
",
+ 2 => "WWWW\nWWWW\nWWWW\nWWWW",
+ 3 => "WWWWWW\nWWWWWW\nWWWWWW\nWWWWWW\nWWWWWW\nWWWWWW",
+ 4 => "WWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW",
_ => Utils.EmptyMessage
};
@@ -915,10 +915,10 @@ public static class NaturalDisasters
private static readonly Dictionary Sprites = new()
{
- [MovingDirection.LeftToRight] = "<#0073ff>\u2588<#0095ff>\u2588<#00ccff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588
<#0073ff>\u2588<#0095ff>\u2588<#00ccff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588
<#0073ff>\u2588<#0095ff>\u2588<#00ccff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588
<#0073ff>\u2588<#0095ff>\u2588<#00ccff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588
<#0073ff>\u2588<#0095ff>\u2588<#00ccff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588
<#0073ff>\u2588<#0095ff>\u2588<#00ccff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588
<#0073ff>\u2588<#0095ff>\u2588<#00ccff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588
<#0073ff>\u2588<#0095ff>\u2588<#00ccff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588
",
- [MovingDirection.RightToLeft] = "<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#00ccff>\u2588<#0095ff>\u2588<#0073ff>\u2588
<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#00ccff>\u2588<#0095ff>\u2588<#0073ff>\u2588
<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#00ccff>\u2588<#0095ff>\u2588<#0073ff>\u2588
<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#00ccff>\u2588<#0095ff>\u2588<#0073ff>\u2588
<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#00ccff>\u2588<#0095ff>\u2588<#0073ff>\u2588
<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#00ccff>\u2588<#0095ff>\u2588<#0073ff>\u2588
<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#00ccff>\u2588<#0095ff>\u2588<#0073ff>\u2588
<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#9ce8ff>\u2588<#00ccff>\u2588<#0095ff>\u2588<#0073ff>\u2588
",
- [MovingDirection.TopToBottom] = "<#003cff>\u2588<#003cff>\u2588<#003cff>\u2588<#003cff>\u2588<#003cff>\u2588<#003cff>\u2588<#003cff>\u2588<#003cff>\u2588
<#006aff>\u2588<#006aff>\u2588<#006aff>\u2588<#006aff>\u2588<#006aff>\u2588<#006aff>\u2588<#006aff>\u2588<#006aff>\u2588
<#00bbff>\u2588<#00bbff>\u2588<#00bbff>\u2588<#00bbff>\u2588<#00bbff>\u2588<#00bbff>\u2588<#00bbff>\u2588<#00bbff>\u2588
<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588
<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588
<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588
<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588
<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588<#b8e1ff>\u2588
",
- [MovingDirection.BottomToTop] = "<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588
<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588
<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588
<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588
<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588<#c2e2ff>\u2588
<#00bfff>\u2588<#00bfff>\u2588<#00bfff>\u2588<#00bfff>\u2588<#00bfff>\u2588<#00bfff>\u2588<#00bfff>\u2588<#00bfff>\u2588
<#007bff>\u2588<#007bff>\u2588<#007bff>\u2588<#007bff>\u2588<#007bff>\u2588<#007bff>\u2588<#007bff>\u2588<#007bff>\u2588
<#0033ff>\u2588<#0033ff>\u2588<#0033ff>\u2588<#0033ff>\u2588<#0033ff>\u2588<#0033ff>\u2588<#0033ff>\u2588<#0033ff>\u2588
"
+ [MovingDirection.LeftToRight] = "WWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW",
+ [MovingDirection.RightToLeft] = "WWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW",
+ [MovingDirection.TopToBottom] = "WWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW",
+ [MovingDirection.BottomToTop] = "WWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW"
};
private readonly MovingDirection Direction;
diff --git a/Modules/CustomNetObject.cs b/Modules/CustomNetObject.cs
index 3a4fb5213..d55b611c8 100644
--- a/Modules/CustomNetObject.cs
+++ b/Modules/CustomNetObject.cs
@@ -518,7 +518,7 @@ namespace EHR
public TornadoObject(Vector2 position, IEnumerable visibleList)
{
SpawnTimeStamp = Utils.TimeStamp;
- CreateNetObject("\u2588\u2588<#bababa>\u2588<#bababa>\u2588<#bababa>\u2588<#bababa>\u2588\u2588\u2588
\u2588<#bababa>\u2588<#bababa>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#bababa>\u2588<#bababa>\u2588\u2588
<#bababa>\u2588<#bababa>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#bababa>\u2588<#bababa>\u2588
<#bababa>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#636363>\u2588<#636363>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#bababa>\u2588
<#bababa>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#636363>\u2588<#636363>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#bababa>\u2588
<#bababa>\u2588<#bababa>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#bababa>\u2588<#bababa>\u2588
\u2588<#bababa>\u2588<#bababa>\u2588<#8c8c8c>\u2588<#8c8c8c>\u2588<#bababa>\u2588<#bababa>\u2588\u2588
\u2588\u2588<#bababa>\u2588<#bababa>\u2588<#bababa>\u2588<#bababa>\u2588\u2588\u2588
", position);
+ CreateNetObject("<#0000>WWWWWW<#0000>WW\nWWWWWWW<#0000>W\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\n<#0000>WWWWWWW<#0000>W\nWWWWWW<#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().ExceptBy(visibleList, x => x.PlayerId)), 0.4f);
}
@@ -553,7 +553,7 @@ namespace EHR
{
public PlayerDetector(Vector2 position, List visibleList, out int id)
{
- CreateNetObject("\u2588\u2588<#33e6b0>\u2588\u2588\u2588<#33e6b0>\u2588\u2588\u2588
\u2588<#33e6b0>\u2588\u2588\u2588\u2588\u2588<#33e6b0>\u2588\u2588
<#33e6b0>\u2588\u2588\u2588<#33e6b0>\u2588<#33e6b0>\u2588\u2588\u2588<#33e6b0>\u2588
<#33e6b0>\u2588\u2588<#33e6b0>\u2588<#000000>\u2588<#000000>\u2588<#33e6b0>\u2588\u2588<#33e6b0>\u2588
<#33e6b0>\u2588\u2588<#33e6b0>\u2588<#000000>\u2588<#000000>\u2588<#33e6b0>\u2588\u2588<#33e6b0>\u2588
<#33e6b0>\u2588\u2588\u2588<#33e6b0>\u2588<#33e6b0>\u2588\u2588\u2588<#33e6b0>\u2588
\u2588<#33e6b0>\u2588\u2588\u2588\u2588\u2588<#33e6b0>\u2588\u2588
\u2588\u2588<#33e6b0>\u2588\u2588\u2588<#33e6b0>\u2588\u2588\u2588
", position);
+ CreateNetObject("<#0000>WWW<#0000>WWW<#0000>WW\nWW<#0000>WWWWW<#0000>W\nW<#0000>WWWW<#0000>WWW\nW<#0000>WWWWW<#0000>WW\nW<#0000>WWWWW<#0000>WW\nW<#0000>WWWW<#0000>WWW\n<#0000>WW<#0000>WWWWW<#0000>W\nWWW<#0000>WWW<#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().ExceptBy(visibleList, x => x.PlayerId)), 0.4f);
id = Id;
}
@@ -576,7 +576,7 @@ namespace EHR
{
internal Toilet(Vector2 position, IEnumerable hideList)
{
- CreateNetObject("\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588\u2588
<#e6e6e6>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#e6e6e6>\u2588
<#e6e6e6>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#e6e6e6>\u2588
\u2588<#e6e6e6>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#d3d4ce>\u2588<#e6e6e6>\u2588\u2588
\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588<#d3d4ce>\u2588<#dedede>\u2588<#dedede>\u2588<#d3d4ce>\u2588<#e6e6e6>\u2588<#e6e6e6>\u2588\u2588
\u2588<#bfbfbf>\u2588<#454545>\u2588<#333333>\u2588<#333333>\u2588<#333333>\u2588<#333333>\u2588<#333333>\u2588<#333333>\u2588<#bfbfbf>\u2588
\u2588<#bfbfbf>\u2588<#bfbfbf>\u2588<#454545>\u2588<#454545>\u2588<#454545>\u2588<#454545>\u2588<#454545>\u2588<#454545>\u2588<#bfbfbf>\u2588
\u2588\u2588<#bfbfbf>\u2588<#bfbfbf>\u2588<#bfbfbf>\u2588<#bfbfbf>\u2588<#bfbfbf>\u2588<#bfbfbf>\u2588<#bfbfbf>\u2588<#bfbfbf>\u2588
\u2588\u2588\u2588<#dedede>\u2588<#dedede>\u2588<#dedede>\u2588<#dedede>\u2588\u2588\u2588\u2588
\u2588\u2588\u2588\u2588<#dedede>\u2588<#dedede>\u2588\u2588\u2588\u2588\u2588
", position);
+ CreateNetObject("<#0000>WWWWWWWWW<#0000>W\nWWWWWWWWWW\nWWWWWWWWWW\n<#0000>WWWWWWWWW<#0000>W\nWWWWWWWWW<#0000>W\nWWWWWWWWWW\n<#0000>WWWWWWWWWW\n<#0000>WWWWWWWWWW\n<#0000>WWWWWWW<#0000>WWW\nWWWWWW<#0000>WWWW", position);
LateTask.New(() => Hide(hideList), 0.4f);
}
}
@@ -585,7 +585,7 @@ namespace EHR
{
internal BlackHole(Vector2 position)
{
- CreateNetObject("██<#000000>█<#19131c>█<#000000>█<#000000>███
█<#412847>█<#000000>█<#19131c>█<#000000>█<#412847>█<#260f26>██
<#000000>█<#412847>█<#412847>█<#000000>█<#260f26>█<#1c0d1c>█<#19131c>█<#000000>█
<#19131c>█<#000000>█<#412847>█<#1c0d1c>█<#1c0d1c>█<#000000>█<#19131c>█<#000000>█
<#000000>█<#000000>█<#260f26>█<#1c0d1c>█<#1c0d1c>█<#000000>█<#000000>█<#260f26>█
<#000000>█<#260f26>█<#1c0d1c>█<#1c0d1c>█<#19131c>█<#412847>█<#412847>█<#19131c>█
█<#260f26>█<#412847>█<#412847>█<#19131c>█<#260f26>█<#19131c>██
██<#412847>█<#260f26>█<#260f26>█<#000000>███
", position);
+ CreateNetObject("<#0000>WWWWWW<#0000>WW\nWWWWWWW<#0000>W\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\n<#0000>WWWWWWW<#0000>W\nWWWWWW<#0000>WW", position);
}
public override void OnMeeting()
@@ -599,7 +599,7 @@ namespace EHR
{
public SprayedArea(Vector2 position, IEnumerable visibleList)
{
- CreateNetObject("\u2588\u2588<#ffd000>\u2588<#ffd000>\u2588\u2588\u2588
\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588\u2588
<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588
<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588
\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588<#ffd000>\u2588\u2588
\u2588\u2588<#ffd000>\u2588<#ffd000>\u2588\u2588\u2588
", position);
+ CreateNetObject("<#0000>WWWW<#0000>WW\nWWWWW<#0000>W\nWWWWWW\nWWWWWW\n<#0000>WWWWW<#0000>W\nWWWW<#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().ExceptBy(visibleList, x => x.PlayerId)), 0.4f);
}
@@ -613,7 +613,7 @@ namespace EHR
{
public CatcherTrap(Vector2 position, PlayerControl catcher)
{
- CreateNetObject("\u2588\u2588<#ccffda>\u2588<#ccffda>\u2588\u2588\u2588
\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588\u2588
<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588
<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588
\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588<#ccffda>\u2588\u2588
\u2588\u2588<#ccffda>\u2588<#ccffda>\u2588\u2588\u2588
", position);
+ CreateNetObject("<#0000>WWWW<#0000>WW\nWWWWW<#0000>W\nWWWWWW\nWWWWWW\n<#0000>WWWWW<#0000>W\nWWWW<#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().Without(catcher)), 0.4f);
}
@@ -627,7 +627,7 @@ namespace EHR
{
public YellowFlag(Vector2 position)
{
- CreateNetObject("<#000000>\u2588<#ffff00>\u2588<#ffff00>\u2588<#ffff00>\u2588\u2588\u2588
<#000000>\u2588<#ffff00>\u2588<#ffff00>\u2588<#ffff00>\u2588<#ffff00>\u2588<#ffff00>\u2588
<#000000>\u2588\u2588\u2588<#ffff00>\u2588<#ffff00>\u2588<#ffff00>\u2588
<#000000>\u2588\u2588\u2588\u2588\u2588\u2588
<#000000>\u2588\u2588\u2588\u2588\u2588\u2588
<#000000>\u2588\u2588\u2588\u2588\u2588\u2588
", position);
+ CreateNetObject("WWWW<#0000>WW\nWWWWWW\nW<#0000>WWWWW\nW<#0000>WWWWW\nW<#0000>WWWWW\nW<#0000>WWWWW", position);
}
}
@@ -635,7 +635,7 @@ namespace EHR
{
public BlueFlag(Vector2 position)
{
- CreateNetObject("<#000000>\u2588<#0000ff>\u2588<#0000ff>\u2588<#0000ff>\u2588\u2588\u2588
<#000000>\u2588<#0000ff>\u2588<#0000ff>\u2588<#0000ff>\u2588<#0000ff>\u2588<#0000ff>\u2588
<#000000>\u2588\u2588\u2588<#0000ff>\u2588<#0000ff>\u2588<#0000ff>\u2588
<#000000>\u2588\u2588\u2588\u2588\u2588\u2588
<#000000>\u2588\u2588\u2588\u2588\u2588\u2588
<#000000>\u2588\u2588\u2588\u2588\u2588\u2588
", position);
+ CreateNetObject("WWWW<#0000>WW\nWWWWWW\nW<#0000>WWWWW\nW<#0000>WWWWW\nW<#0000>WWWWW\nW<#0000>WWWWW", position);
}
}
@@ -643,7 +643,7 @@ namespace EHR
{
public SoulObject(Vector2 position, PlayerControl whisperer)
{
- CreateNetObject("\u2588\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588\u2588
\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588
<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#cfcfcf>\u2588<#cfcfcf>\u2588
<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588
\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588
\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588<#fcfcfc>\u2588\u2588<#fcfcfc>\u2588
", position);
+ CreateNetObject("<#0000>WWWWW<#0000>W\nWWWWWW\nWWWWWW\nWWWWWW\n<#0000>WWWWWW\n<#0000>WWWW<#0000>WW", position);
LateTask.New(() => Hide(Main.EnumerateAlivePlayerControls().Without(whisperer)), 0.4f);
}
}
@@ -712,7 +712,7 @@ namespace EHR
public Lightning(Vector2 position)
{
- CreateNetObject("\u2588\u2588\u2588\u2588\u2588<#c6c7c3>\u2588
\u2588<#c6c7c3>\u2588\u2588\u2588<#c6c7c3>\u2588\u2588
<#c6c7c3>\u2588\u2588<#fffb00>\u2588<#fffb00>\u2588\u2588\u2588
\u2588\u2588<#fffb00>\u2588<#fffb00>\u2588\u2588<#c6c7c3>\u2588
<#c6c7c3>\u2588\u2588\u2588\u2588\u2588\u2588
\u2588\u2588<#c6c7c3>\u2588<#c6c7c3>\u2588\u2588\u2588
", position);
+ CreateNetObject("<#0000>WWWWWW\n<#0000>WW<#0000>WWW<#0000>W\nW<#0000>WWW<#0000>WW\nWWWW<#0000>WW\nW<#0000>WWWWW\nWWWW<#0000>WW", position);
}
protected override void OnFixedUpdate()
@@ -726,7 +726,7 @@ namespace EHR
{
public BlueBed(Vector2 position)
{
- BaseSprite = "██████
<#c7deff>█<#c7deff>█<#00aeff>█<#00aeff>█<#00aeff>█<#00aeff>█
<#c7deff>█<#c7deff>█<#00aeff>█<#00aeff>█<#00aeff>█<#00aeff>█
<#c7deff>█<#c7deff>█<#00aeff>█<#00aeff>█<#00aeff>█<#00aeff>█
<#82531a>█████<#82531a>█
██████
";
+ BaseSprite = "WWWWWW\nWWWWWW\nWWWWWW\nW<#0000>WWWWW";
UpdateStatus(false);
CreateNetObject(GetSprite(), position);
}
@@ -736,7 +736,7 @@ namespace EHR
{
public GreenBed(Vector2 position)
{
- BaseSprite = "██████
<#baffd0>█<#baffd0>█<#00ff7b>█<#00ff7b>█<#00ff7b>█<#00ff7b>█
<#baffd0>█<#baffd0>█<#00ff7b>█<#00ff7b>█<#00ff7b>█<#00ff7b>█
<#baffd0>█<#baffd0>█<#00ff7b>█<#00ff7b>█<#00ff7b>█<#00ff7b>█
<#82531a>█████<#82531a>█
██████
";
+ BaseSprite = "WWWWWW\nWWWWWW\nWWWWWW\nW<#0000>WWWWW";
UpdateStatus(false);
CreateNetObject(GetSprite(), position);
}
@@ -746,7 +746,7 @@ namespace EHR
{
public YellowBed(Vector2 position)
{
- BaseSprite = "██████
<#fffebd>█<#fffebd>█<#ffff00>█<#ffff00>█<#ffff00>█<#ffff00>█
<#fffebd>█<#fffebd>█<#ffff00>█<#ffff00>█<#ffff00>█<#ffff00>█
<#fffebd>█<#fffebd>█<#ffff00>█<#ffff00>█<#ffff00>█<#ffff00>█
<#82531a>█████<#82531a>█
██████
";
+ BaseSprite = "WWWWWW\nWWWWWW\nWWWWWW\nW<#0000>WWWWW";
UpdateStatus(false);
CreateNetObject(GetSprite(), position);
}
@@ -756,7 +756,7 @@ namespace EHR
{
public RedBed(Vector2 position)
{
- BaseSprite = "██████
<#ffbbb5>█<#ffbbb5>█<#ff0008>█<#ff0008>█<#ff0008>█<#ff0008>█
<#ffbbb5>█<#ffbbb5>█<#ff0008>█<#ff0008>█<#ff0008>█<#ff0008>█
<#ffbbb5>█<#ffbbb5>█<#ff0008>█<#ff0008>█<#ff0008>█<#ff0008>█
<#82531a>█████<#82531a>█
██████
";
+ BaseSprite = "WWWWWW\nWWWWWW\nWWWWWW\nW<#0000>WWWWW";
UpdateStatus(false);
CreateNetObject(GetSprite(), position);
}
@@ -795,7 +795,7 @@ namespace EHR
{
Location = location;
timer = 4f;
- CreateNetObject("████<#000000>█<#ffea00>█
███<#000000>███
█<#ff0004>█<#ff0004>████
<#ff0004>█<#ff0004>█<#ff0004>█<#ff0004>███
<#ff0004>█<#ff0004>█<#ff0004>█<#ff0004>███
█<#ff0004>█<#ff0004>████
", location);
+ CreateNetObject("<#0000>WWWWWW\n<#0000>WWWW<#0000>WW\nWWW<#0000>WWW\nWWWW<#0000>WW\nWWWW<#0000>WW\nWWW<#0000>WWW", location);
}
protected override void OnFixedUpdate()
@@ -824,7 +824,7 @@ namespace EHR
{
public Portal(Vector2 position)
{
- CreateNetObject("█<#2b006b>█<#2b006b>█<#2b006b>█<#2b006b>██
█<#2b006b>█<#fa69ff>█<#fa69ff>█<#2b006b>██
█<#2b006b>█<#fa69ff>█<#fa69ff>█<#2b006b>██
█<#2b006b>█<#fa69ff>█<#fa69ff>█<#2b006b>██
█<#2b006b>█<#fa69ff>█<#fa69ff>█<#2b006b>██
█<#2b006b>█<#2b006b>█<#2b006b>█<#2b006b>██
", position);
+ CreateNetObject("WWWW\nWWWW\nWWWW\nWWWW\nWWWW\nWWWW", position);
}
}
@@ -841,7 +841,7 @@ namespace EHR
public void SpawnIfNotSpawned()
{
if (Spawned) return;
- CreateNetObject("█<#00ff15>██<#00ff15>██<#00ff15>█
█<#00ff15>██<#00ff15>██<#00ff15>█
<#00ff15>█<#00ff15>██<#00ff15>██<#00ff15>█
<#00ff15>███<#00ff15>██<#00ff15>█
<#00ff15>██<#00ff15>█<#00ff15>██<#00ff15>█
<#00ff15>██<#00ff15>███<#00ff15>█
", Position);
+ CreateNetObject("<#0000>WW<#0000>WW<#0000>WW\n<#0000>WW<#0000>WW<#0000>WW\nWW<#0000>WW<#0000>WW\nW<#0000>WWW<#0000>WW\nW<#0000>WWW<#0000>WW\nW<#0000>WW<#0000>WWW", Position);
Spawned = true;
}
}
diff --git a/Modules/CustomRpcSender.cs b/Modules/CustomRpcSender.cs
index 55b7ea0bc..3e165e428 100644
--- a/Modules/CustomRpcSender.cs
+++ b/Modules/CustomRpcSender.cs
@@ -7,6 +7,7 @@ using System.Runtime.CompilerServices;
using AmongUs.GameOptions;
using EHR.Modules;
using EHR.Roles;
+using HarmonyLib;
using Hazel;
using Il2CppInterop.Runtime.InteropTypes.Arrays;
using InnerNet;
@@ -42,12 +43,10 @@ public class CustomRpcSender
private bool packed;
- private State currentState = State.BeforeInit;
+ private State currentState/* = State.BeforeInit*/;
public int messages;
public MessageWriter stream;
- private CustomRpcSender() { }
-
private CustomRpcSender(string name, SendOption sendOption, bool isUnsafe, bool log)
{
stream = MessageWriter.Get(sendOption);
@@ -127,7 +126,7 @@ public class CustomRpcSender
{
// StartMessage processing
if (currentState == State.InRootMessage)
- EndMessage(startNew: true);
+ EndMessage(startNew: !packed);
else if (messages > 0) // state is Ready or InRootPackedMessage
{
if (currentState == State.InRootPackedMessage)
@@ -171,7 +170,7 @@ public class CustomRpcSender
throw new InvalidOperationException(errorMsg);
}
- if (stream.Length >= 1400 && sendOption == SendOption.Reliable && !dispose) Logger.Warn($"Large reliable packet \"{name}\" is sending ({stream.Length} bytes)", "CustomRpcSender");
+ if (stream.Length > 1200 && !dispose) Logger.Msg($"Large packet \"{name}\" is sending ({stream.Length} bytes)", "CustomRpcSender");
else if (log || stream.Length > 3) Logger.Info($"\"{name}\" is finished (Length: {stream.Length}, dispose: {dispose}, sendOption: {sendOption})", "CustomRpcSender");
if (!dispose)
@@ -182,7 +181,7 @@ public class CustomRpcSender
doneStreams.ForEach(x =>
{
- if (x.Length >= 1400 && sendOption == SendOption.Reliable) Logger.Warn($"Large reliable packet \"{name}\" is sending ({x.Length} bytes)", "CustomRpcSender");
+ if (x.Length > 1200) Logger.Msg($"Large reliable packet \"{name}\" is sending ({x.Length} bytes)", "CustomRpcSender");
else if (log || x.Length > 3) sb.Append($" | {x.Length}");
AmongUsClient.Instance.SendOrDisconnect(x);
@@ -903,4 +902,22 @@ public static class CustomRpcSenderExtensions
return true;
}
}
+}
+
+// Rather not send the packet than get kicked immediately after sending it
+[HarmonyPatch(typeof(InnerNetClient), nameof(InnerNetClient.SendOrDisconnect))]
+static class PreventLargePacketKickPatch
+{
+ public static bool Prefix([HarmonyArgument(0)] MessageWriter msg)
+ {
+ if (msg.Length <= 1200) return true;
+
+ if (GameStates.CurrentServerType is GameStates.ServerType.Local or GameStates.ServerType.Vanilla)
+ {
+ Logger.Warn($" Blocked large packet from sending (size: {msg.Length})", nameof(PreventLargePacketKickPatch));
+ return false;
+ }
+
+ return true;
+ }
}
\ No newline at end of file
diff --git a/Modules/OptionHolder.cs b/Modules/OptionHolder.cs
index d07dfd98d..015468cd2 100644
--- a/Modules/OptionHolder.cs
+++ b/Modules/OptionHolder.cs
@@ -3574,7 +3574,4 @@ public static class Options
public static OptionItem PacifistAbilityChargesWhenFinishedTasks;
// ReSharper restore NotAccessedField.Global
-}
-
-
-
+}
\ No newline at end of file
diff --git a/Resources/Lang/en_US.jsonc b/Resources/Lang/en_US.jsonc
index b6a3b71b9..b03e75124 100644
--- a/Resources/Lang/en_US.jsonc
+++ b/Resources/Lang/en_US.jsonc
@@ -8831,7 +8831,7 @@
"LobbyUpdateInterval": "Always update the lobby info (player count, map, game mode, etc.) on the server at least every",
"StoreCompletedAchievementsOnEHRDatabase": "Store completed achievements on the EHR database (to maintain progress in case of a reinstall or an update)",
"AllCrewRolesHaveVanillaColor": "All <#8cffff>Crewmate roles have <#8cffff>the vanilla Crewmate color <#ffff00>(REQUIRES RESTART)",
- "MessageRpcSizeLimit": "Message RPC Size Limit (Higher limit = increased risk of disconnects but fewer message splits - if you never disconnect randomly, up to 15000 can be safe)",
+ "MessageRpcSizeLimit": "Message RPC Size Limit (Higher limit = increased risk of disconnects but fewer message splits - DO NOT INCREASE THIS IF YOU'RE HOSTING ON VANILLA REGIONS)",
"KickSlowJoiningPlayers": "Kick Players Who Join Slowly To Prevent Disconnects (if they take more than 5 seconds to send their own data, they will be kicked automatically)",
"EnableAutoMessage": "Enable Auto-Message (sends the template with the 'Notification' tag on a given interval in lobby)",
"AutoMessageSendInterval": "The Auto-Message Is Sent Every",
diff --git a/Roles/Standard/Crewmate/Chaos/Car.cs b/Roles/Standard/Crewmate/Chaos/Car.cs
index e86d4fd22..79e7fe755 100644
--- a/Roles/Standard/Crewmate/Chaos/Car.cs
+++ b/Roles/Standard/Crewmate/Chaos/Car.cs
@@ -16,7 +16,7 @@ public class Car : RoleBase
private HashSet CurrentlyPropelling;
private Vector2 LastPosition;
- public static string Name => ".
\u2588<#628d85>\u2588<#628d85>\u2588<#628d85>\u2588<#628d85>\u2588<#628d85>\u2588\u2588\u2588
<#586874>\u2588<#586874>\u2588<#547a96>\u2588<#547a96>\u2588<#6894b6>\u2588<#6894b6>\u2588<#586874>\u2588\u2588
<#586874>\u2588<#586874>\u2588<#586874>\u2588<#547a96>\u2588<#547a96>\u2588<#586874>\u2588<#586874>\u2588<#f5ee2e>\u2588
<#000000>\u2588<#0d233f>\u2588<#586874>\u2588<#586874>\u2588<#586874>\u2588<#f5ee2e>\u2588<#586874>\u2588<#517a9a>\u2588
<#000000>\u2588<#000000>\u2588\u2588<#000000>\u2588<#0d233f>\u2588<#586874>\u2588<#517a9a>\u2588\u2588
\u2588\u2588\u2588<#000000>\u2588<#000000>\u2588\u2588\u2588\u2588
";
+ public static string Name => ".<#0000>WWWWWW<#0000>WW\nWWWWWWW<#0000>W\nWWWWWWWW\nWWWWWWWW\nWW<#0000>WWWWW<#0000>W\nWWWWW<#0000>WWW";
public override bool IsEnable => On;
diff --git a/Roles/Standard/Crewmate/Chaos/Tree.cs b/Roles/Standard/Crewmate/Chaos/Tree.cs
index 12a49bef6..2a2529af1 100644
--- a/Roles/Standard/Crewmate/Chaos/Tree.cs
+++ b/Roles/Standard/Crewmate/Chaos/Tree.cs
@@ -7,8 +7,8 @@ public class Tree : RoleBase
{
public static bool On;
- public const string Sprite = ".██<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>███
█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>██
<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█
<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█
<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█
███<#711e1e>█<#711e1e>████
███<#711e1e>█<#711e1e>████
███<#711e1e>█<#711e1e>████
";
- public const string FallenSprite = "████████
████████
████████
████<#6ef514>█<#6ef514>███
████<#6ef514>█<#6ef514>█<#6ef514>██
████<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█
<#6f1515>█<#6f1515>█<#6f1515>█<#6f1515>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█
<#6f1515>█<#6f1515>█<#6f1515>█<#6f1515>█<#6ef514>█<#6ef514>█<#6ef514>█<#6ef514>█
";
+ public const string Sprite = ".<#0000>WWWWWW<#0000>WW\nWWWWWWW<#0000>W\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW\n<#0000>WWWWW<#0000>WWW\nWWWWW<#0000>WWW\nWWWWW<#0000>WWW";
+ public const string FallenSprite = "<#0000>WWWWWW<#0000>WW\nWWWWWWW<#0000>W\nWWWWWWWW\nWWWWWWWW\nWWWWWWWW";
public override bool IsEnable => On;