sega 8a6d23b77d Реорг Scripts
Разделено на 4 модуля
- Menu
- Gameplay
- Settings
- Common
2026-07-15 10:49:55 +03:00

160 lines
4.0 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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("Ошибка отправки светового сигнала."); }
}
/// <summary>
/// Принимает сингнал без префикса. В процессе сам его добавляет.
/// </summary>
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
}