using UnityEngine; //Зависит от ComWrapper public static class LightUtility { private const string LIGHT_COMMAND_PREFIX = "80"; public static void Idle() { if (Random.Range(0, 2) == 0) SendLightCommandToCom(LightMode.Idle1); else SendLightCommandToCom(LightMode.Idle2); } public static void Win() { SendLightCommandToCom(LightMode.Win); } public static void Lose() { SendLightCommandToCom(LightMode.Lose); } public static void Player(CellState currentPlayer) { if (currentPlayer == CellState.Player1) SendLightCommandToCom(LightMode.Orange); else SendLightCommandToCom(LightMode.Blue); } public static void Prize() { SendLightCommandToCom(LightMode.Prize); } public static void Character(Character currentCharacter) { LightMode lightMode; // lightMode = currentCharacter.CharacterIndex switch { 0 => LightMode.Toaster, 1 => LightMode.Tama, 2 => LightMode.Dog, 3 => LightMode.Sam, 4 => LightMode.Mistress, _ => LightMode.Idle2 }; SendLightCommandToCom(lightMode); } public static void Promo() { string[] signals = { "521", "523", "524" }; string signal = signals[Random.Range(0, signals.Length)]; SendLightCommandToCom(signal); } public static void SendLightCommandToCom(LightMode lightMode) { try { string signal = GetLightString(lightMode); ComWrapper.Send(signal); } catch { Debug.LogError("Ошибка отправки светового сигнала."); } } /// /// Принимает сингнал без префикса. В процессе сам его добавляет. /// public static void SendLightCommandToCom(string signal) { try { ComWrapper.Send(LIGHT_COMMAND_PREFIX + signal); } catch { Debug.LogError("Ошибка отправки светового сигнала."); } } public static string GetLightString(LightMode lightMode) { string lightsingal; //определить версию int version = ConfigManager.Config.LightVersion; if (version == 1) { //Debug.Log("1 версия подсветки"); //1 версия lightsingal = lightMode switch { LightMode.Idle1 => "500", LightMode.Idle2 => "507", LightMode.Orange => "501", LightMode.Blue => "502", LightMode.Win => "503", LightMode.Lose => "504", LightMode.Prize => "509", LightMode.Toaster => "500", LightMode.Tama => "513", LightMode.Dog => "514", LightMode.Sam => "515", LightMode.Mistress => "516", _ => "500" }; } else { //2 версия (пока дефолт) //Debug.Log("2 версия подсветки"); lightsingal = lightMode switch { LightMode.Idle1 => "500", LightMode.Idle2 => "507", LightMode.Orange => "501", LightMode.Blue => "502", LightMode.Win => "503", LightMode.Lose => "504", LightMode.Prize => "509", LightMode.Toaster => "513", LightMode.Tama => "514", LightMode.Dog => "515", LightMode.Sam => "516", LightMode.Mistress => "517", _ => "500" }; } return LIGHT_COMMAND_PREFIX + lightsingal; } } public enum LightMode { Idle1, Idle2, Orange, Blue, Win, Lose, Prize, Toaster, Tama, Dog, Sam, Mistress }