mirror of
https://github.com/Gurge44/EndlessHostRoles.git
synced 2026-10-20 01:46:25 +00:00
Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
e16d9119d1
6 files changed
+174
-60
No files matched your search
+68
-24
@@ -72,28 +72,62 @@ public static class CaptureTheFlag
|
|||||||
return TeamData[team.GetOppositeTeam()].FlagCarrier == id;
|
return TeamData[team.GetOppositeTeam()].FlagCarrier == id;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static (Vector2 Position, string RoomName) BlueFlagBase => Main.CurrentMap switch
|
/*private static (Vector2 Position, string RoomName) BlueFlagBase => Main.CurrentMap switch
|
||||||
{
|
{
|
||||||
MapNames.Skeld => (new(16.5f, -4.8f), Translator.GetString(SystemTypes.Nav)),
|
MapNames.Skeld => (, Translator.GetString(SystemTypes.Nav)),
|
||||||
MapNames.MiraHQ => (new(-4.5f, 2.0f), Translator.GetString(SystemTypes.Launchpad)),
|
MapNames.MiraHQ => (, Translator.GetString(SystemTypes.Launchpad)),
|
||||||
MapNames.Dleks => (new(-16.5f, -4.8f), Translator.GetString(SystemTypes.Nav)),
|
MapNames.Dleks => (new(-16.5f, -4.8f), Translator.GetString(SystemTypes.Nav)),
|
||||||
MapNames.Polus => (new(9.5f, -12.5f), Translator.GetString(SystemTypes.Electrical)),
|
MapNames.Polus => (, Translator.GetString(SystemTypes.Electrical)),
|
||||||
MapNames.Airship => (new(-23.5f, -1.6f), Translator.GetString(SystemTypes.Cockpit)),
|
MapNames.Airship => (, Translator.GetString(SystemTypes.Cockpit)),
|
||||||
MapNames.Fungle => (new(-15.5f, -7.5f), Translator.GetString(SystemTypes.Kitchen)),
|
MapNames.Fungle => (, Translator.GetString(SystemTypes.Kitchen)),
|
||||||
(MapNames)6 => (new(-13.31f, -34.56f), Translator.GetString(SystemTypes.Engine)),
|
(MapNames)6 => (, Translator.GetString(SystemTypes.Engine)),
|
||||||
_ => (Vector2.zero, string.Empty)
|
_ => (Vector2.zero, string.Empty)
|
||||||
};
|
};
|
||||||
|
|
||||||
private static (Vector2 Position, string RoomName) YellowFlagBase => Main.CurrentMap switch
|
private static (Vector2 Position, string RoomName) YellowFlagBase => Main.CurrentMap switch
|
||||||
{
|
{
|
||||||
MapNames.Skeld => (new(-20.5f, -5.5f), Translator.GetString(SystemTypes.Reactor)),
|
MapNames.Skeld => (, Translator.GetString(SystemTypes.Reactor)),
|
||||||
MapNames.MiraHQ => (new(17.8f, 23.0f), Translator.GetString(SystemTypes.Greenhouse)),
|
MapNames.MiraHQ => (, Translator.GetString(SystemTypes.Greenhouse)),
|
||||||
MapNames.Dleks => (new(20.5f, -5.5f), Translator.GetString(SystemTypes.Reactor)),
|
MapNames.Dleks => (new(20.5f, -5.5f), Translator.GetString(SystemTypes.Reactor)),
|
||||||
MapNames.Polus => (new(36.5f, -7.5f), Translator.GetString(SystemTypes.Laboratory)),
|
MapNames.Polus => (, Translator.GetString(SystemTypes.Laboratory)),
|
||||||
MapNames.Airship => (new(33.5f, -1.5f), Translator.GetString(SystemTypes.CargoBay)),
|
MapNames.Airship => (, Translator.GetString(SystemTypes.CargoBay)),
|
||||||
MapNames.Fungle => (new(22.2f, 13.7f), Translator.GetString(SystemTypes.Comms)),
|
MapNames.Fungle => (, Translator.GetString(SystemTypes.Comms)),
|
||||||
(MapNames)6 => (new(12.98f, -25.68f), Translator.GetString(SystemTypes.Comms)),
|
(MapNames)6 => (, Translator.GetString(SystemTypes.Comms)),
|
||||||
_ => (Vector2.zero, string.Empty)
|
_ => (Vector2.zero, string.Empty)
|
||||||
|
};*/
|
||||||
|
|
||||||
|
private static readonly Dictionary<MapNames, Dictionary<CTFTeam, (Vector2 Position, SystemTypes Room)>> FlagBases = new()
|
||||||
|
{
|
||||||
|
[MapNames.Skeld] = new()
|
||||||
|
{
|
||||||
|
[CTFTeam.Blue] = (new(16.5f, -4.8f), SystemTypes.Nav),
|
||||||
|
[CTFTeam.Yellow] = (new(-20.5f, -5.5f), SystemTypes.Reactor)
|
||||||
|
},
|
||||||
|
[MapNames.MiraHQ] = new()
|
||||||
|
{
|
||||||
|
[CTFTeam.Blue] = (new(-4.5f, 2.0f), SystemTypes.Launchpad),
|
||||||
|
[CTFTeam.Yellow] = (new(17.8f, 23.0f), SystemTypes.Greenhouse)
|
||||||
|
},
|
||||||
|
[MapNames.Polus] = new()
|
||||||
|
{
|
||||||
|
[CTFTeam.Blue] = (new(9.5f, -12.5f), SystemTypes.Electrical),
|
||||||
|
[CTFTeam.Yellow] = (new(36.5f, -7.5f), SystemTypes.Laboratory)
|
||||||
|
},
|
||||||
|
[MapNames.Airship] = new()
|
||||||
|
{
|
||||||
|
[CTFTeam.Blue] = (new(-23.5f, -1.6f), SystemTypes.Cockpit),
|
||||||
|
[CTFTeam.Yellow] = (new(33.5f, -1.5f), SystemTypes.CargoBay)
|
||||||
|
},
|
||||||
|
[MapNames.Fungle] = new()
|
||||||
|
{
|
||||||
|
[CTFTeam.Blue] = (new(-15.5f, -7.5f), SystemTypes.Kitchen),
|
||||||
|
[CTFTeam.Yellow] = (new(22.2f, 13.7f), SystemTypes.Comms)
|
||||||
|
},
|
||||||
|
[(MapNames)6] = new()
|
||||||
|
{
|
||||||
|
[CTFTeam.Blue] = (new(-13.31f, -34.56f), SystemTypes.Engine),
|
||||||
|
[CTFTeam.Yellow] = (new(12.98f, -25.68f), SystemTypes.Comms)
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
public static void SetupCustomOption()
|
public static void SetupCustomOption()
|
||||||
@@ -352,6 +386,21 @@ public static class CaptureTheFlag
|
|||||||
Main.AllPlayerKillCooldown.SetAllValues(TagCooldown.GetFloat());
|
Main.AllPlayerKillCooldown.SetAllValues(TagCooldown.GetFloat());
|
||||||
|
|
||||||
yield return new WaitForSecondsRealtime(3f);
|
yield return new WaitForSecondsRealtime(3f);
|
||||||
|
|
||||||
|
if (Main.LIMap)
|
||||||
|
{
|
||||||
|
PlainShipRoom[] rooms = ShipStatus.Instance.AllRooms.Where(x => x).DistinctBy(x => x.RoomId).ToArray();
|
||||||
|
PlainShipRoom[] chosen = rooms.Select(plainShipRoom =>
|
||||||
|
{
|
||||||
|
KeyValuePair<PlainShipRoom, float> furthestRoom = rooms.Select(x => new KeyValuePair<PlainShipRoom, float>(x, Vector2.Distance(x.transform.position, plainShipRoom.transform.position))).MaxBy(x => x.Value);
|
||||||
|
return new KeyValuePair<PlainShipRoom[], float>([furthestRoom.Key, plainShipRoom], furthestRoom.Value);
|
||||||
|
}).MaxBy(x => x.Value).Key;
|
||||||
|
FlagBases[(MapNames)7] = new()
|
||||||
|
{
|
||||||
|
[CTFTeam.Blue] = (chosen[0].transform.position, chosen[0].RoomId),
|
||||||
|
[CTFTeam.Yellow] = (chosen[1].transform.position, chosen[1].RoomId)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
Stopwatch stopwatch = Stopwatch.StartNew();
|
Stopwatch stopwatch = Stopwatch.StartNew();
|
||||||
|
|
||||||
@@ -383,8 +432,8 @@ public static class CaptureTheFlag
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create flags
|
// Create flags
|
||||||
(Vector2 Position, string RoomName) blueFlagBase = BlueFlagBase;
|
(Vector2 Position, SystemTypes Room) blueFlagBase = CTFTeam.Blue.GetFlagBase();
|
||||||
(Vector2 Position, string RoomName) yellowFlagBase = YellowFlagBase;
|
(Vector2 Position, SystemTypes Room) yellowFlagBase = CTFTeam.Yellow.GetFlagBase();
|
||||||
|
|
||||||
CustomNetObject blueFlag = new BlueFlag(blueFlagBase.Position);
|
CustomNetObject blueFlag = new BlueFlag(blueFlagBase.Position);
|
||||||
CustomNetObject yellowFlag = new YellowFlag(yellowFlagBase.Position);
|
CustomNetObject yellowFlag = new YellowFlag(yellowFlagBase.Position);
|
||||||
@@ -402,11 +451,11 @@ public static class CaptureTheFlag
|
|||||||
{
|
{
|
||||||
case CTFTeam.Blue:
|
case CTFTeam.Blue:
|
||||||
pc.TP(blueFlagBase.Position);
|
pc.TP(blueFlagBase.Position);
|
||||||
pc.Notify(string.Format(Translator.GetString("CTF_Notify_EnemyTeamRoom"), yellowFlagBase.RoomName));
|
pc.Notify(string.Format(Translator.GetString("CTF_Notify_EnemyTeamRoom"), Translator.GetString(yellowFlagBase.Room)));
|
||||||
break;
|
break;
|
||||||
case CTFTeam.Yellow:
|
case CTFTeam.Yellow:
|
||||||
pc.TP(yellowFlagBase.Position);
|
pc.TP(yellowFlagBase.Position);
|
||||||
pc.Notify(string.Format(Translator.GetString("CTF_Notify_EnemyTeamRoom"), blueFlagBase.RoomName));
|
pc.Notify(string.Format(Translator.GetString("CTF_Notify_EnemyTeamRoom"), Translator.GetString(blueFlagBase.Room)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -622,14 +671,9 @@ public static class CaptureTheFlag
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private (Vector2 Position, string RoomName) GetFlagBase()
|
private (Vector2 Position, SystemTypes Room) GetFlagBase()
|
||||||
{
|
{
|
||||||
return team switch
|
return FlagBases[Main.CurrentMap][team];
|
||||||
{
|
|
||||||
CTFTeam.Blue => BlueFlagBase,
|
|
||||||
CTFTeam.Yellow => YellowFlagBase,
|
|
||||||
_ => (Vector2.zero, string.Empty)
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+16
-1
@@ -274,7 +274,22 @@ public static class Quiz
|
|||||||
|
|
||||||
NoSuffix = true;
|
NoSuffix = true;
|
||||||
var aapc = Main.AllAlivePlayerControlsToList;
|
var aapc = Main.AllAlivePlayerControlsToList;
|
||||||
bool showTutorial = !SubmergedCompatibility.IsSubmerged() && aapc.ExceptBy(HasPlayedFriendCodes, x => x.FriendCode).Count() > aapc.Count / 2;
|
bool showTutorial = !SubmergedCompatibility.IsSubmerged() && !Main.LIMap && aapc.ExceptBy(HasPlayedFriendCodes, x => x.FriendCode).Count() > aapc.Count / 2;
|
||||||
|
|
||||||
|
if (Main.LIMap)
|
||||||
|
{
|
||||||
|
PlainShipRoom[] rooms = ShipStatus.Instance.AllRooms.Where(x => x).DistinctBy(x => x.RoomId).ToArray();
|
||||||
|
List<SystemTypes> chosen = rooms.Select(plainShipRoom =>
|
||||||
|
{
|
||||||
|
Dictionary<SystemTypes, float> closestRooms = rooms.Select(x => new KeyValuePair<SystemTypes, float>(x.RoomId, Vector2.Distance(plainShipRoom.transform.position, x.transform.position))).OrderBy(x => x.Value).Take(4).ToDictionary(x => x.Key, x => x.Value);
|
||||||
|
float sum = closestRooms.Values.Sum();
|
||||||
|
return new KeyValuePair<SystemTypes[], float>([.. closestRooms.Keys, plainShipRoom.RoomId], sum);
|
||||||
|
}).MinBy(x => x.Value).Key.ToList();
|
||||||
|
Dictionary<char, SystemTypes> dict = [];
|
||||||
|
for (char c = 'A'; c <= 'E'; c++)
|
||||||
|
dict[c] = chosen[c - 'A'];
|
||||||
|
UsedRooms[(MapNames)7] = dict;
|
||||||
|
}
|
||||||
|
|
||||||
var usedRooms = UsedRooms[Main.CurrentMap].Join('\n', x => $"{x.Key}: {GetString(x.Value.ToString())}");
|
var usedRooms = UsedRooms[Main.CurrentMap].Join('\n', x => $"{x.Key}: {GetString(x.Value.ToString())}");
|
||||||
aapc.NotifyPlayers(string.Format(GetString("Quiz.Tutorial.Basics"), usedRooms), 11f);
|
aapc.NotifyPlayers(string.Format(GetString("Quiz.Tutorial.Basics"), usedRooms), 11f);
|
||||||
|
|||||||
+13
-5
@@ -113,11 +113,19 @@ internal static class ControllerManagerUpdatePatch
|
|||||||
|
|
||||||
if ((Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) && Input.GetKeyDown(KeyCode.C))
|
if ((Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) && Input.GetKeyDown(KeyCode.C))
|
||||||
ClipboardHelper.PutClipboardString(chat.freeChatField.textArea.text);
|
ClipboardHelper.PutClipboardString(chat.freeChatField.textArea.text);
|
||||||
|
|
||||||
if ((Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) && Input.GetKeyDown(KeyCode.V))
|
if ((Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) &&
|
||||||
{
|
Input.GetKeyDown(KeyCode.V))
|
||||||
TextBoxPatch.Pasting = true;
|
{
|
||||||
chat.freeChatField.textArea.SetText(chat.freeChatField.textArea.text + GUIUtility.systemCopyBuffer.Trim());
|
var textArea = chat.freeChatField.textArea;
|
||||||
|
|
||||||
|
string currentText = textArea.text ?? string.Empty;
|
||||||
|
string clipboard = GUIUtility.systemCopyBuffer ?? string.Empty;
|
||||||
|
|
||||||
|
int caretPos = Mathf.Clamp(textArea.caretPos, 0, currentText.Length);
|
||||||
|
|
||||||
|
textArea.SetText(currentText.Insert(caretPos, clipboard));
|
||||||
|
textArea.caretPos = caretPos + clipboard.Length;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) && Input.GetKeyDown(KeyCode.X))
|
if ((Input.GetKey(KeyCode.LeftControl) || Input.GetKey(KeyCode.RightControl)) && Input.GetKeyDown(KeyCode.X))
|
||||||
|
|||||||
+10
-30
@@ -1,4 +1,4 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using AmongUs.Data;
|
using AmongUs.Data;
|
||||||
@@ -16,45 +16,25 @@ public static class TextBoxPatch
|
|||||||
private static TextMeshPro AdditionalInfoText;
|
private static TextMeshPro AdditionalInfoText;
|
||||||
|
|
||||||
public static bool IsInvalidCommand;
|
public static bool IsInvalidCommand;
|
||||||
|
|
||||||
private static int CurrentCharPos;
|
|
||||||
public static bool Pasting;
|
|
||||||
|
|
||||||
// from https://github.com/scp222thj/MalumMenu/blob/main/src/Patches/TextBoxTMPPatches.cs
|
|
||||||
// Well I guess cheat menus sometimes have useful code too....
|
|
||||||
[HarmonyPatch(typeof(TextBoxTMP), nameof(TextBoxTMP.IsCharAllowed))]
|
[HarmonyPatch(typeof(TextBoxTMP), nameof(TextBoxTMP.IsCharAllowed))]
|
||||||
[HarmonyPrefix]
|
[HarmonyPrefix]
|
||||||
public static bool AllowAllCharacters(TextBoxTMP __instance, ref bool __result)
|
// Use the character provided by IsCharAllowed directly.
|
||||||
|
// Tracking a separate character position desyncs when the caret is moved.
|
||||||
|
public static bool ValidateChatCharacter(char c, ref bool __result)
|
||||||
{
|
{
|
||||||
string compositionString = Input.compositionString;
|
// Do not interfere with IME composition input.
|
||||||
if (compositionString.Length > 0)
|
if (!string.IsNullOrEmpty(Input.compositionString))
|
||||||
{
|
{
|
||||||
__result = true;
|
__result = true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
var input = Pasting ? GUIUtility.systemCopyBuffer.Trim() : Input.inputString;
|
__result = c is not ('\b' or '\r' or '[');
|
||||||
Pasting = false;
|
|
||||||
|
|
||||||
if (input.Length == 0)
|
|
||||||
{
|
|
||||||
__result = true;
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
string currentText = __instance.text ?? string.Empty;
|
|
||||||
int caretPos = Mathf.Clamp(__instance.caretPos, 0, currentText.Length);
|
|
||||||
string text = currentText.Insert(caretPos, input);
|
|
||||||
CurrentCharPos = Mathf.Clamp(CurrentCharPos, 0, text.Length - 1);
|
|
||||||
char currentChar = text[CurrentCharPos];
|
|
||||||
|
|
||||||
if (CurrentCharPos >= text.Length - 1) CurrentCharPos = 0;
|
|
||||||
else CurrentCharPos++;
|
|
||||||
|
|
||||||
__result = currentChar is not ('\b' or '\r' or '[');
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(TextBoxTMP), nameof(TextBoxTMP.SetText))]
|
[HarmonyPatch(typeof(TextBoxTMP), nameof(TextBoxTMP.SetText))]
|
||||||
[HarmonyPostfix]
|
[HarmonyPostfix]
|
||||||
public static void ShowCommandHelp(TextBoxTMP __instance)
|
public static void ShowCommandHelp(TextBoxTMP __instance)
|
||||||
@@ -358,4 +338,4 @@ public static class TextBoxPatch
|
|||||||
if (!__instance.gameObject.HasParentInHierarchy("ChatScreenRoot/ChatScreenContainer")) return;
|
if (!__instance.gameObject.HasParentInHierarchy("ChatScreenRoot/ChatScreenContainer")) return;
|
||||||
__instance.characterLimit = 1000;
|
__instance.characterLimit = 1000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -256,6 +256,8 @@ budfore#5752 | b3672c491 | i hate iphone | Racist | n word in game
|
|||||||
massifpink#4006 | ba0e09419 | ciansom13 | Racist | n word in game
|
massifpink#4006 | ba0e09419 | ciansom13 | Racist | n word in game
|
||||||
brownnest#1548 | 954f82d96 | jimmy o1 | Racist | n word in game
|
brownnest#1548 | 954f82d96 | jimmy o1 | Racist | n word in game
|
||||||
tiaragold#0846 | edf2bc4e8 | cyan | Racist | n word in game
|
tiaragold#0846 | edf2bc4e8 | cyan | Racist | n word in game
|
||||||
|
weberright#3756 | 2779bfdfe | Told you I | Racist | Slurs in a streamer's game
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,65 @@
|
|||||||
|
This serves as a complete* list of all special icons supported by Among Us
|
||||||
|
Created by quine.fr (https://github.com/VOID4487/EndlessHostRoles/Resources/supported_chars.txt)
|
||||||
|
|
||||||
|
Category: ASCII Symbols
|
||||||
|
$+<=>^`|~
|
||||||
|
|
||||||
|
Category: Latin Characters
|
||||||
|
¢£¤¥¦¨©¬®¯°±²³´¸¹¼½¾×÷
|
||||||
|
|
||||||
|
Category: Superscripts & Subscripts
|
||||||
|
⁴
|
||||||
|
|
||||||
|
Category: Currency Symbols
|
||||||
|
₩₫€
|
||||||
|
|
||||||
|
Category: Letter & Number Symbols
|
||||||
|
℀℃℅℉№℡™℧℮℻ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻ
|
||||||
|
|
||||||
|
Category: Arrows
|
||||||
|
←↑→↓↔↕↖↗↘↙↸↹⇄⇅⇆⇋⇌⇐⇒⇔⇦⇧⇨⇩⇵➡⤴⤵⬅⬆⬇⮕⽮←↑→↓
|
||||||
|
|
||||||
|
Category: Math Symbols
|
||||||
|
∀∂∃∅∆∇∈∉∊∋∏∑−∓∕√∝∞∟∠∣∥∦∧∨∩∪∫∬∭∮∴∵∶∷∽≃≅≈≌≒≠≡≢≤≥≦≧≪≫≮≯≲≳≶≷⊂⊃⊄⊅⊆⊇⊊⊋⊕⊖⊗⊘⊙⊠⊥⊿⋚⋛⋯
|
||||||
|
|
||||||
|
Category: Technical Symbols
|
||||||
|
⌅⌆⌇⌒⌘⎰⎱⎾⎿⏀⏁⏂⏃⏄⏅⏆⏇⏈⏉⏊⏋⏌⏎⏚⏛␣
|
||||||
|
|
||||||
|
Category: Enclosed Characters
|
||||||
|
①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ⓪⓫⓬⓭⓮⓯⓰⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾⓿
|
||||||
|
|
||||||
|
Category: Box Drawing
|
||||||
|
─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋╌╍╎╏═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳╴╵╶╷╸╹╺╻╼╽╾╿
|
||||||
|
|
||||||
|
Category: Block Elements
|
||||||
|
▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐░▒▓▔▕▖▗▘▙▚▛▜▝▞▟
|
||||||
|
|
||||||
|
Category: Geometric Shapes
|
||||||
|
■□▢▣▤▥▦▧▨▩▪▫▱▲△▶▷▼▽◀◁◆◇◈◉◊○◌◎●◐◑◒◓◢◣◤◥◦◯
|
||||||
|
|
||||||
|
Category: Miscellaneous Symbols
|
||||||
|
☀☁☂☃★☆☉☎☏☖☗☜☝☞☟☯♀♁♂♠♡♢♣♤♥♦♧♨♩♪♫♬♭♮♯♲♳♴♵♶♷♸♹♺♻♼♽⚠⚽⚾
|
||||||
|
|
||||||
|
Category: Dingbats
|
||||||
|
✂✓✚✽✿❀❖❶❷❸❹❺❻❼❽❾❿➀➁➂➃➄➅➆➇➈➉➊➋➌➍➎➏➐➑➒➓
|
||||||
|
|
||||||
|
Category: Extended Symbols & Arrows
|
||||||
|
⦿⧺⧻⬚
|
||||||
|
|
||||||
|
Category: CJK Radicals
|
||||||
|
⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠⻡⻢⻣⻤⻥⻦⻧⻨⻩⻪⻫⻬⻭⻮⻯⻰⻱⻲⻳
|
||||||
|
|
||||||
|
Category: CJK Symbols
|
||||||
|
〄〇〒〓〠〡〢〣〤〥〦〧〨〩〶〷〸〹〺〾〿
|
||||||
|
|
||||||
|
Category: Hiragana
|
||||||
|
゛゜
|
||||||
|
|
||||||
|
Category: CJK Compatibility Symbols
|
||||||
|
㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛㈜㈝㈞㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩㈪㈫㈬㈭㈮㈯㈰㈱㈲㈳㈴㈵㈶㈷㈸㈹㈺㈻㈼㈽㈾㈿㉀㉁㉂㉃㉄㉅㉆㉇㉈㉉㉊㉋㉌㉍㉎㉏㉐㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻㉼㉽㉾㉿㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉㊊㊋㊌㊍㊎㊏㊐㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋㋌㋍㋎㋏㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬㋭㋮㋯㋰㋱㋲㋳㋴㋵㋶㋷㋸㋹㋺㋻㋼㋽㋾㋿㌀㌁㌂㌃㌄㌅㌆㌇㌈㌉㌊㌋㌌㌍㌎㌏㌐㌑㌒㌓㌔㌕㌖㌗㌘㌙㌚㌛㌜㌝㌞㌟㌠㌡㌢㌣㌤㌥㌦㌧㌨㌩㌪㌫㌭㌮㌯㌰㌱㌲㌳㌴㌵㌶㌷㌸㌹㌺㌻㌼㌽㌾㌿㍀㍁㍂㍃㍄㍅㍆㍇㍈㍉㍊㍋㍌㍍㍎㍏㍐㍑㍒㍓㍔㍕㍖㍗㍘㍙㍚㍛㍜㍝㍞㍟㍠㍡㍢㍣㍤㍥㍦㍧㍨㍩㍪㍫㍬㍭㍮㍯㍰㍱㍲㍳㍴㍵㍶㍷㍸㍹㍺㍻㍼㍽㍾㍿㎀㎁㎂㎃㎄㎅㎆㎇㎈㎉㎊㎋㎌㎍㎎㎏㎐㎑㎒㎓㎔㎕㎖㎗㎘㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㎣㎤㎥㎦㎧㎨㎩㎪㎫㎬㎭㎮㎯㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎺㎻㎼㎽㎾㎿㏀㏁㏂㏃㏄㏅㏆㏇㏈㏉㏊㏋㏌㏍㏎㏏㏐㏑㏒㏓㏔㏕㏖㏗㏘㏙㏚㏛㏜㏝㏞㏟㏠㏡㏢㏣㏤㏥㏦㏧㏨㏩㏪㏫㏬㏭㏮㏯㏰㏱㏲㏳㏴㏵㏶㏷㏸㏹㏺㏻㏼㏽㏾㏿
|
||||||
|
|
||||||
|
Category: Emoji & Pictographs
|
||||||
|
🄀🄁🄂🄃🄄🄅🄆🄇🄈🄉🄊🄋🄌🄐🄑🄒🄓🄔🄕🄖🄗🄘🄙🄚🄛🄜🄝🄞🄟🄠🄡🄢🄣🄤🄥🄦🄧🄨🄩🄪🄫🄬🄭🄮🄯🄰🄱🄲🄳🄴🄵🄶🄷🄸🄹🄺🄻🄼🄽🄾🄿🅀🅁🅂🅃🅄🅅🅆🅇🅈🅉🅊🅋🅌🅍🅎🅏🅐🅑🅒🅓🅔🅕🅖🅗🅘🅙🅚🅛🅜🅝🅞🅟🅠🅡🅢🅣🅤🅥🅦🅧🅨🅩🅪🅫🅬🅰🅱🅲🅳🅴🅵🅶🅷🅸🅹🅺🅻🅼🅽🅾🅿🆀🆁🆂🆃🆄🆅🆆🆇🆈🆉🆊🆋🆌🆍🆎🆏🆐🆑🆒🆓🆔🆕🆖🆗🆘🆙🆚🆛🆜🆝🆞🆟🆠🆡🆢🆣🆤🆥🆦🆧🆨🆩🆪🆫🆬🈀🈁🈂🈐🈑🈒🈓🈔🈕🈖🈗🈘🈙🈚🈛🈜🈝🈞🈟🈠🈡🈢🈣🈤🈥🈦🈧🈨🈩🈪🈫🈬🈭🈮🈯🈰🈱🈲🈳🈴🈵🈶🈷🈸🈹🈺🈻🉀🉁🉂🉃🉄🉅🉆🉇🉈🉐🉑
|
||||||
|
|
||||||
|
Category: Other Symbols
|
||||||
|
˙˪˫⼀⼁⼂⼃⼄⼅⼆⼇⼈⼉⼊⼋⼌⼍⼎⼏⼐⼑⼒⼓⼔⼕⼖⼗⼘⼙⼚⼛⼜⼝⼞⼟⼠⼡⼢⼣⼤⼥⼦⼧⼨⼩⼪⼫⼬⼭⼮⼯⼰⼱⼲⼳⼴⼵⼶⼷⼸⼹⼺⼻⼼⼽⼾⼿⽀⽁⽂⽃⽄⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿⾀⾁⾂⾃⾄⾅⾆⾇⾈⾉⾊⾋⾌⾍⾎⾏⾐⾑⾒⾓⾔⾕⾖⾗⾘⾙⾚⾛⾜⾝⾞⾟⾠⾡⾢⾣⾤⾥⾦⾧⾨⾩⾪⾫⾬⾭⾮⾯⾰⾱⾲⾳⾴⾵⾶⾷⾸⾹⾺⾻⾼⾽⾾⾿⿀⿁⿂⿃⿄⿅⿆⿇⿈⿉⿊⿋⿌⿍⿎⿏⿐⿑⿒⿓⿔⿕⿰⿱⿲⿳⿴⿵⿶⿷⿸⿹⿺⿻㆐㆑㆒㆓㆔㆕㆖㆗㆘㆙㆚㆛㆜㆝㆞㆟㇀㇁㇂㇃㇄㇅㇆㇇㇈㇉㇊㇋㇌㇍㇎㇏㇐㇑㇒㇓㇔㇕㇖㇗㇘㇙㇚㇛㇜㇝㇞㇟㇠㇡㇢㇣﹢﹤﹥﹦﹩$+<=>^`|~¢£¬ ̄¦¥₩│■○
|
||||||
Reference in new issue
Block a user