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;