diff --git a/Directory.Build.props b/Directory.Build.props
index b548fcd5..7d6d9de5 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -4,7 +4,7 @@
Khil-soft
7.11.3
6.0.0
- 2.14.0
+ 2.15.0
diff --git a/assets/siq_5.xsd b/assets/siq_5.xsd
index 0e203241..1153b7a9 100644
--- a/assets/siq_5.xsd
+++ b/assets/siq_5.xsd
@@ -1,11 +1,11 @@
-
+
SIGame question package (version 5)
-
+
@@ -27,10 +27,10 @@
Global package info
-
+
-
+
Author's name
@@ -56,7 +56,7 @@
Author's city
-
+
Unique author identifier
@@ -66,7 +66,7 @@
-
+
Source's authos
@@ -92,7 +92,7 @@
Source's publish city
-
+
Unique source identifier
@@ -100,10 +100,10 @@
-
+
-
+
Rounds
@@ -114,13 +114,13 @@
Round
-
+
Round info
-
+
Themes
@@ -131,13 +131,13 @@
Theme
-
+
Theme info
-
+
Questions
@@ -148,7 +148,7 @@
Question
-
+
Question info
@@ -275,7 +275,7 @@
-
+
Answer
@@ -297,7 +297,7 @@
-
+
Question price
@@ -313,7 +313,7 @@
-
+
Theme name
@@ -324,7 +324,7 @@
-
+
Round name
@@ -340,7 +340,7 @@
-
+
Unique package identifier
@@ -388,6 +388,11 @@
Package language
+
+
+ The tool package was created with
+
+
Author contact URI
@@ -409,7 +414,7 @@
Content item type
-
+
Content item reference to resource marker
@@ -419,12 +424,17 @@
Content item placement
-
+
Content item duration
+
+
+
+
+
-
+
Content item wait for finish marker
@@ -486,7 +496,7 @@
-
+
Authors
@@ -530,6 +540,6 @@
Item information extension
-
+
\ No newline at end of file
diff --git a/src/Common/SIEngine/SIEngine.csproj b/src/Common/SIEngine/SIEngine.csproj
index ebc3c1ed..09af78dd 100644
--- a/src/Common/SIEngine/SIEngine.csproj
+++ b/src/Common/SIEngine/SIEngine.csproj
@@ -9,7 +9,7 @@
SIGame engine
Khil-soft
7.6.0
- Copyright © Khil-soft 2007 - 2023
+ Copyright © Khil-soft 2007 - 2024
enable
enable
diff --git a/src/Common/SIPackages/Containers/FolderSIPackageContainer.cs b/src/Common/SIPackages/Containers/FolderSIPackageContainer.cs
index 3a7d851f..8e1e8b05 100644
--- a/src/Common/SIPackages/Containers/FolderSIPackageContainer.cs
+++ b/src/Common/SIPackages/Containers/FolderSIPackageContainer.cs
@@ -1,4 +1,5 @@
using SIPackages.Core;
+using ZipUtils;
namespace SIPackages.Containers;
@@ -8,12 +9,12 @@ namespace SIPackages.Containers;
internal sealed class FolderSIPackageContainer : ISIPackageContainer
{
private readonly string _folder;
- private readonly IReadOnlyDictionary _fileNameMap;
+ private readonly IReadOnlyDictionary _fileNameMap;
private readonly bool _deleteOnClose;
public FolderSIPackageContainer(
string folder,
- IReadOnlyDictionary fileNameMap,
+ IReadOnlyDictionary fileNameMap,
bool deleteOnClose = true)
{
_folder = folder;
@@ -23,10 +24,10 @@ public FolderSIPackageContainer(
public ISIPackageContainer CopyTo(Stream stream, bool close, out bool isNew) => throw new NotImplementedException();
- internal static ISIPackageContainer Open(string folder, IReadOnlyDictionary fileNameMap) =>
+ internal static ISIPackageContainer Open(string folder, IReadOnlyDictionary fileNameMap) =>
new FolderSIPackageContainer(folder, fileNameMap);
- internal static ISIPackageContainer Create(string folder) => new FolderSIPackageContainer(folder, new Dictionary(), false);
+ internal static ISIPackageContainer Create(string folder) => new FolderSIPackageContainer(folder, new Dictionary(), false);
public void CreateStream(string name, string contentType)
{
@@ -128,9 +129,9 @@ private string GetName(string name)
{
if (!_fileNameMap.TryGetValue(name, out var mappedName))
{
- mappedName = name;
+ return name;
}
- return mappedName;
+ return mappedName.Name;
}
}
diff --git a/src/Common/SIPackages/Containers/PackageContainerFactory.cs b/src/Common/SIPackages/Containers/PackageContainerFactory.cs
index 36c5a5ff..a83d980f 100644
--- a/src/Common/SIPackages/Containers/PackageContainerFactory.cs
+++ b/src/Common/SIPackages/Containers/PackageContainerFactory.cs
@@ -1,4 +1,6 @@
-namespace SIPackages.Containers;
+using ZipUtils;
+
+namespace SIPackages.Containers;
///
/// Provides methods for creating package containers.
@@ -24,7 +26,7 @@ public static ISIPackageContainer CreatePackageContainer(Stream stream, bool lea
///
/// Container folder.
/// File name map.
- public static ISIPackageContainer GetPackageContainer(string folder, IReadOnlyDictionary fileNameMap) =>
+ public static ISIPackageContainer GetPackageContainer(string folder, IReadOnlyDictionary fileNameMap) =>
FolderSIPackageContainer.Open(folder, fileNameMap);
///
diff --git a/src/Common/SIPackages/SIDocument.cs b/src/Common/SIPackages/SIDocument.cs
index a69b3f1e..2b0cde19 100644
--- a/src/Common/SIPackages/SIDocument.cs
+++ b/src/Common/SIPackages/SIDocument.cs
@@ -6,6 +6,7 @@
using SIPackages.Properties;
using System.Diagnostics;
using System.Xml;
+using ZipUtils;
namespace SIPackages;
@@ -192,7 +193,7 @@ public static SIDocument Load(Stream stream, bool read = true, PackageLimits? li
/// Should the document be read-only.
[Obsolete("Use ExtractToFolderAndLoadAsync")]
public static SIDocument Load(string folder, bool read = true) =>
- Load(PackageContainerFactory.GetPackageContainer(folder, new Dictionary()));
+ Load(PackageContainerFactory.GetPackageContainer(folder, new Dictionary()));
///
/// Extracts document to folder and load from it.
diff --git a/src/Common/SIPackages/SIPackages.csproj b/src/Common/SIPackages/SIPackages.csproj
index 7f07317d..4b3db921 100644
--- a/src/Common/SIPackages/SIPackages.csproj
+++ b/src/Common/SIPackages/SIPackages.csproj
@@ -31,7 +31,7 @@
-
+
diff --git a/src/Common/SIPackages/ZipExtractorExtensions.cs b/src/Common/SIPackages/ZipExtractorExtensions.cs
index 4ef05c32..2cd64afa 100644
--- a/src/Common/SIPackages/ZipExtractorExtensions.cs
+++ b/src/Common/SIPackages/ZipExtractorExtensions.cs
@@ -15,7 +15,7 @@ internal static class PackageExtractor
/// Maximum allowed length of extracted data in archive.
/// Cancellation token.
/// Map of archive file names to extracted file names.
- internal static Task> ExtractPackageToFolderAsync(
+ internal static Task> ExtractPackageToFolderAsync(
string sourceArchiveFilePath,
string destinationFolderPath,
long maxAllowedDataLength = long.MaxValue,
diff --git a/src/Common/SIUI.Model/SIUI.Model.csproj b/src/Common/SIUI.Model/SIUI.Model.csproj
index e4763c79..35a91fa2 100644
--- a/src/Common/SIUI.Model/SIUI.Model.csproj
+++ b/src/Common/SIUI.Model/SIUI.Model.csproj
@@ -7,7 +7,7 @@
Khil-soft
Game table model
7.6.0
- Copyright © Khil-soft 2010 - 2023
+ Copyright © Khil-soft 2010 - 2024
enable
enable
diff --git a/src/Common/SIUI.ViewModel/SIUI.ViewModel.csproj b/src/Common/SIUI.ViewModel/SIUI.ViewModel.csproj
index e6e27111..df71c316 100644
--- a/src/Common/SIUI.ViewModel/SIUI.ViewModel.csproj
+++ b/src/Common/SIUI.ViewModel/SIUI.ViewModel.csproj
@@ -7,7 +7,7 @@
Khil-soft
7.6.0
Game table view model
- Copyright © Khil-soft 2012 - 2023
+ Copyright © Khil-soft 2012 - 2024
enable
enable
diff --git a/src/Common/SIUI/SIUI.csproj b/src/Common/SIUI/SIUI.csproj
index 84068b6c..8208d7ca 100644
--- a/src/Common/SIUI/SIUI.csproj
+++ b/src/Common/SIUI/SIUI.csproj
@@ -5,7 +5,7 @@
Khil-soft
SIUI
SIGame table ui
- Copyright © Khil-soft 2010 - 2023
+ Copyright © Khil-soft 2010 - 2024
7.7.3
bin\$(Configuration)\
true
@@ -33,7 +33,7 @@
-
+
True
True
diff --git a/src/SImulator/SImulator.ViewModel/SImulator.ViewModel.csproj b/src/SImulator/SImulator.ViewModel/SImulator.ViewModel.csproj
index 52ba0890..de065789 100644
--- a/src/SImulator/SImulator.ViewModel/SImulator.ViewModel.csproj
+++ b/src/SImulator/SImulator.ViewModel/SImulator.ViewModel.csproj
@@ -6,7 +6,7 @@
SImulator.ViewModel
SImulator view model
$(SImulatorVersion)
- Copyright © Khil-soft 2010 - 2023
+ Copyright © Khil-soft 2010 - 2024
enable
enable
diff --git a/src/SImulator/SImulator.ViewModel/ViewModel/GameViewModel.cs b/src/SImulator/SImulator.ViewModel/ViewModel/GameViewModel.cs
index ebefe9da..8c590521 100644
--- a/src/SImulator/SImulator.ViewModel/ViewModel/GameViewModel.cs
+++ b/src/SImulator/SImulator.ViewModel/ViewModel/GameViewModel.cs
@@ -1911,7 +1911,7 @@ private bool ProcessPlayerPress(int index, PlayerInfo player)
return false;
}
- // It is no pressing time
+ // It is not pressing time
if (_state != QuestionState.Pressing)
{
player.BlockedTime = DateTime.Now;
@@ -1962,9 +1962,23 @@ private bool ProcessPlayerPress(int index, PlayerInfo player)
ThinkingTimeMax = Settings.Model.ThinkingTime2;
RunThinkingTimer_Executed(0);
+ BlockNextButtonForAWhile();
+
return true;
}
+ private async void BlockNextButtonForAWhile()
+ {
+ if (!_next.CanBeExecuted)
+ {
+ return;
+ }
+
+ _next.CanBeExecuted = false;
+ await Task.Delay(500);
+ UpdateNextCommand();
+ }
+
private void UnselectPlayer()
{
if (_selectedPlayer != null)
diff --git a/src/SImulator/SImulator.ViewModel/ViewModel/MainViewModel.cs b/src/SImulator/SImulator.ViewModel/ViewModel/MainViewModel.cs
index 24b2d82e..5e6417c4 100644
--- a/src/SImulator/SImulator.ViewModel/ViewModel/MainViewModel.cs
+++ b/src/SImulator/SImulator.ViewModel/ViewModel/MainViewModel.cs
@@ -136,6 +136,8 @@ private string[] LoadComPorts()
return ports;
}
+ public string[] ComPorts => _comPorts.Value;
+
private GameViewModel? _game;
public GameViewModel? Game
diff --git a/src/SImulator/SImulator/App.xaml.cs b/src/SImulator/SImulator/App.xaml.cs
index c7bb2f93..12420665 100644
--- a/src/SImulator/SImulator/App.xaml.cs
+++ b/src/SImulator/SImulator/App.xaml.cs
@@ -7,7 +7,6 @@
using NLog.Web;
using SImulator.Implementation;
using SImulator.ViewModel;
-using SImulator.ViewModel.Model;
using SIStorage.Service.Client;
using SIStorage.Service.Contract.Models;
using SIStorageService.ViewModel;
@@ -286,7 +285,7 @@ private async void Application_DispatcherUnhandledException(object sender, Dispa
else if (_useAppService
&& _host != null
&& MessageBox.Show(
- string.Format("Произошла ошибка в приложении: {0}\r\n\r\nПриложение будет закрыто. Отправить информацию разработчику? (просьба также связаться с разработчиком лично, так как ряд ошибок нельзя воспроизвести)", e.Exception.Message),
+ string.Format(SImulator.Properties.Resources.ErrorSendConfirm, e.Exception.Message),
MainViewModel.ProductName,
MessageBoxButton.YesNo,
MessageBoxImage.Question) == MessageBoxResult.Yes)
@@ -303,7 +302,7 @@ private async void Application_DispatcherUnhandledException(object sender, Dispa
{
case ErrorStatus.Fixed:
MessageBox.Show(
- "Эта ошибка исправлена в новой версии программы. Обновитесь, пожалуйста.",
+ SImulator.Properties.Resources.ErrorFixed,
MainViewModel.ProductName,
MessageBoxButton.OK,
MessageBoxImage.Information);
@@ -311,7 +310,7 @@ private async void Application_DispatcherUnhandledException(object sender, Dispa
case ErrorStatus.CannotReproduce:
MessageBox.Show(
- "Эта ошибка не воспроизводится. Если вы можете её гарантированно воспроизвести, свяжитесь с автором, пожалуйста.",
+ SImulator.Properties.Resources.ErrorCannotReproduce,
MainViewModel.ProductName,
MessageBoxButton.OK,
MessageBoxImage.Information);
@@ -321,7 +320,7 @@ private async void Application_DispatcherUnhandledException(object sender, Dispa
catch (Exception)
{
MessageBox.Show(
- "Не удалось подключиться к серверу при отправке отчёта об ошибке. Отчёт будет отправлен позднее.",
+ SImulator.Properties.Resources.ErrorConnectionError,
MainViewModel.ProductName,
MessageBoxButton.OK,
MessageBoxImage.Error);
diff --git a/src/SImulator/SImulator/CommandWindow.xaml b/src/SImulator/SImulator/CommandWindow.xaml
index fc64d0ff..c009f797 100644
--- a/src/SImulator/SImulator/CommandWindow.xaml
+++ b/src/SImulator/SImulator/CommandWindow.xaml
@@ -61,16 +61,12 @@
- Простой
- Вопрос со ставкой
- Вопрос со ставкой
- Вопрос с секретом
- Вопрос с секретом
- Вопрос с секретом
- Вопрос с секретом (тема и стоимость известны до передачи вопроса)
- Вопрос с секретом (деньги без вопроса)
- Вопрос без риска
- Вопрос без риска
+
+
+
+
+
+
@@ -78,40 +74,24 @@
- Стоимость
- Когда известны тема и стоимость
- Можно ли отдать себе
-
- Тема
- Стоимость
- Можно отдать
+
+
+
-
-
-
- Да
- Нет
- До отдачи
- После отдачи
- Никогда
-
-
-
-
- Не использовать
- Внешние
- Клавиатура
- Джойстик
- COM-порт
- Веб-доступ
+
+
+
+
+
+
@@ -214,8 +194,8 @@
-
-
+
+
@@ -317,7 +297,11 @@
-
+
@@ -893,7 +877,7 @@
-
+
@@ -906,7 +890,7 @@
-
+
@@ -919,7 +903,7 @@
-
+
@@ -1458,29 +1442,29 @@
- Название
- Псевдоним
- Вопрос со ставкой
+
+
+
- Вопрос с секретом
+
- Вопрос без риска
+
-
- Номер COM-порта
+
+
@@ -1592,7 +1576,11 @@
Соответствуют позициям игроков в списке
-
+
@@ -1602,7 +1590,7 @@
Width="25"
Height="25"
Padding="3"
- ToolTip="Удалить"
+ ToolTip="{x:Static lp:Resources.Delete}"
DockPanel.Dock="Right"
Command="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=ItemsControl,AncestorLevel=1}, Path=DataContext.DeletePlayerKey}"
CommandParameter="{Binding}">
diff --git a/src/SImulator/SImulator/Properties/PublishProfiles/ClickOnceX86Profile.pubxml b/src/SImulator/SImulator/Properties/PublishProfiles/ClickOnceX86Profile.pubxml
index 78b01028..2aa43b37 100644
--- a/src/SImulator/SImulator/Properties/PublishProfiles/ClickOnceX86Profile.pubxml
+++ b/src/SImulator/SImulator/Properties/PublishProfiles/ClickOnceX86Profile.pubxml
@@ -4,8 +4,8 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
-->
- 3
- 2.14.1.*
+ 1
+ 2.15.0.*
True
Release
True
@@ -36,6 +36,6 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
False
index.htm
true
- True|2023-10-08T08:09:30.9675119Z;True|2023-10-08T09:04:58.7408510+02:00;True|2023-04-05T09:20:34.2222213+02:00;True|2023-04-05T09:19:42.0864925+02:00;True|2023-03-05T12:25:57.0140212+01:00;True|2023-03-05T11:55:02.4267411+01:00;True|2023-03-04T22:04:18.8157069+01:00;True|2023-03-04T22:01:42.5379576+01:00;False|2023-03-04T21:30:31.7645530+01:00;True|2023-01-28T09:23:56.0211677+01:00;True|2023-01-08T11:13:45.0386973+01:00;True|2023-01-08T10:15:52.4694362+01:00;True|2022-12-27T09:14:19.3776898+01:00;
+ True|2023-10-09T17:28:12.3146788Z;True|2023-10-08T10:09:30.9675119+02:00;True|2023-10-08T09:04:58.7408510+02:00;True|2023-04-05T09:20:34.2222213+02:00;True|2023-04-05T09:19:42.0864925+02:00;True|2023-03-05T12:25:57.0140212+01:00;True|2023-03-05T11:55:02.4267411+01:00;True|2023-03-04T22:04:18.8157069+01:00;True|2023-03-04T22:01:42.5379576+01:00;False|2023-03-04T21:30:31.7645530+01:00;True|2023-01-28T09:23:56.0211677+01:00;True|2023-01-08T11:13:45.0386973+01:00;True|2023-01-08T10:15:52.4694362+01:00;True|2022-12-27T09:14:19.3776898+01:00;
\ No newline at end of file
diff --git a/src/SImulator/SImulator/Properties/Resources.Designer.cs b/src/SImulator/SImulator/Properties/Resources.Designer.cs
index a53d49b3..42540f3f 100644
--- a/src/SImulator/SImulator/Properties/Resources.Designer.cs
+++ b/src/SImulator/SImulator/Properties/Resources.Designer.cs
@@ -96,6 +96,15 @@ public static string AddSumForActivePlayer {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Псевдоним.
+ ///
+ public static string Alias {
+ get {
+ return ResourceManager.GetString("Alias", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на (все).
///
@@ -231,6 +240,60 @@ public static string Buttons {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на COM-порт.
+ ///
+ public static string ButtonTypesCom {
+ get {
+ return ResourceManager.GetString("ButtonTypesCom", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Внешние.
+ ///
+ public static string ButtonTypesExternal {
+ get {
+ return ResourceManager.GetString("ButtonTypesExternal", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Джойстик.
+ ///
+ public static string ButtonTypesJoystick {
+ get {
+ return ResourceManager.GetString("ButtonTypesJoystick", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Клавиатура.
+ ///
+ public static string ButtonTypesKeyboard {
+ get {
+ return ResourceManager.GetString("ButtonTypesKeyboard", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Не использовать.
+ ///
+ public static string ButtonTypesNone {
+ get {
+ return ResourceManager.GetString("ButtonTypesNone", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Веб-доступ.
+ ///
+ public static string ButtonTypesWeb {
+ get {
+ return ResourceManager.GetString("ButtonTypesWeb", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на По умолчанию.
///
@@ -294,6 +357,24 @@ public static string ComponentsLicenses {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Номер COM-порта.
+ ///
+ public static string ComPortNumber {
+ get {
+ return ResourceManager.GetString("ComPortNumber", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Удалить.
+ ///
+ public static string Delete {
+ get {
+ return ResourceManager.GetString("Delete", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Внешний вид.
///
@@ -339,6 +420,44 @@ public static string EndQuestionOnRightAnswer {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Эта ошибка не воспроизводится. Если вы можете её гарантированно воспроизвести, свяжитесь с автором, пожалуйста.
+ ///
+ public static string ErrorCannotReproduce {
+ get {
+ return ResourceManager.GetString("ErrorCannotReproduce", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Не удалось подключиться к серверу при отправке отчёта об ошибке. Отчёт будет отправлен позднее.
+ ///
+ public static string ErrorConnectionError {
+ get {
+ return ResourceManager.GetString("ErrorConnectionError", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Эта ошибка исправлена в новой версии программы. Обновитесь, пожалуйста.
+ ///
+ public static string ErrorFixed {
+ get {
+ return ResourceManager.GetString("ErrorFixed", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Произошла ошибка в приложении: {0}
+ ///
+ ///Приложение будет закрыто. Отправить информацию разработчику?.
+ ///
+ public static string ErrorSendConfirm {
+ get {
+ return ResourceManager.GetString("ErrorSendConfirm", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Игра с фальстартами.
///
@@ -617,6 +736,15 @@ public static string MakeStake {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Название.
+ ///
+ public static string Name {
+ get {
+ return ResourceManager.GetString("Name", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Возникла ошибка при переходе на сайт программы ({0}). Убедитесь, что у вас настроен браузер по умолчанию: {1}.
///
@@ -680,6 +808,15 @@ public static string Pass {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Приостановить.
+ ///
+ public static string Pause {
+ get {
+ return ResourceManager.GetString("Pause", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Фон.
///
@@ -779,6 +916,15 @@ public static string PreviousRound {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Стоимость.
+ ///
+ public static string Price {
+ get {
+ return ResourceManager.GetString("Price", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на От {0} до {1} с шагом {2}.
///
@@ -842,6 +988,60 @@ public static string QuestionTime {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Вопрос без риска.
+ ///
+ public static string QuestionTypeNoRisk {
+ get {
+ return ResourceManager.GetString("QuestionTypeNoRisk", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Вопрос с секретом.
+ ///
+ public static string QuestionTypeSecret {
+ get {
+ return ResourceManager.GetString("QuestionTypeSecret", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Вопрос с секретом (деньги без вопроса).
+ ///
+ public static string QuestionTypeSecretNoQuestion {
+ get {
+ return ResourceManager.GetString("QuestionTypeSecretNoQuestion", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Вопрос с секретом (тема и стоимость известны до передачи вопроса).
+ ///
+ public static string QuestionTypeSecretPublicPrice {
+ get {
+ return ResourceManager.GetString("QuestionTypeSecretPublicPrice", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Простой.
+ ///
+ public static string QuestionTypeSimple {
+ get {
+ return ResourceManager.GetString("QuestionTypeSimple", resourceCulture);
+ }
+ }
+
+ ///
+ /// Ищет локализованную строку, похожую на Вопрос со ставкой.
+ ///
+ public static string QuestionTypeStake {
+ get {
+ return ResourceManager.GetString("QuestionTypeStake", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Последние файлы.
///
@@ -968,6 +1168,15 @@ public static string SelectHeader {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Можно отдать.
+ ///
+ public static string SelectionMode {
+ get {
+ return ResourceManager.GetString("SelectionMode", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Библиотека вопросов….
///
@@ -1103,6 +1312,15 @@ public static string Source {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Псевдонимы спецвопросов.
+ ///
+ public static string SpecialQuestionsAliases {
+ get {
+ return ResourceManager.GetString("SpecialQuestionsAliases", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Время на размышление над спецвопросом (с).
///
@@ -1139,6 +1357,15 @@ public static string StartGame {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Завершить.
+ ///
+ public static string Stop {
+ get {
+ return ResourceManager.GetString("Stop", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Завершить игру.
///
@@ -1202,6 +1429,15 @@ public static string TextColor {
}
}
+ ///
+ /// Ищет локализованную строку, похожую на Тема.
+ ///
+ public static string Theme {
+ get {
+ return ResourceManager.GetString("Theme", resourceCulture);
+ }
+ }
+
///
/// Ищет локализованную строку, похожую на Комментарии темы.
///
diff --git a/src/SImulator/SImulator/Properties/Resources.resx b/src/SImulator/SImulator/Properties/Resources.resx
index b340a523..14690336 100644
--- a/src/SImulator/SImulator/Properties/Resources.resx
+++ b/src/SImulator/SImulator/Properties/Resources.resx
@@ -129,6 +129,9 @@
Добавить активному игроку
+
+ Псевдоним
+
(все)
@@ -174,6 +177,24 @@
Кнопки
+
+ COM-порт
+
+
+ Внешние
+
+
+ Джойстик
+
+
+ Клавиатура
+
+
+ Не использовать
+
+
+ Веб-доступ
+
По умолчанию
@@ -195,6 +216,12 @@
Лицензии используемых компонентов
+
+ Номер COM-порта
+
+
+ Удалить
+
Внешний вид
@@ -210,6 +237,20 @@
Завершать вопрос при правильном ответе
+
+ Эта ошибка не воспроизводится. Если вы можете её гарантированно воспроизвести, свяжитесь с автором, пожалуйста
+
+
+ Не удалось подключиться к серверу при отправке отчёта об ошибке. Отчёт будет отправлен позднее
+
+
+ Эта ошибка исправлена в новой версии программы. Обновитесь, пожалуйста
+
+
+ Произошла ошибка в приложении: {0}
+
+Приложение будет закрыто. Отправить информацию разработчику?
+
Игра с фальстартами
@@ -310,6 +351,9 @@
Сделать ставку
+
+ Название
+
Возникла ошибка при переходе на сайт программы ({0}). Убедитесь, что у вас настроен браузер по умолчанию: {1}
@@ -331,6 +375,9 @@
Пас
+
+ Приостановить
+
Фон
@@ -364,6 +411,9 @@
Предыдущий раунд
+
+ Стоимость
+
От {0} до {1} с шагом {2}
@@ -385,6 +435,24 @@
Время вопроса (c)
+
+ Вопрос без риска
+
+
+ Вопрос с секретом
+
+
+ Вопрос с секретом (деньги без вопроса)
+
+
+ Вопрос с секретом (тема и стоимость известны до передачи вопроса)
+
+
+ Простой
+
+
+ Вопрос со ставкой
+
Последние файлы
@@ -427,6 +495,9 @@
Выбрать…
+
+ Можно отдать
+
Библиотека вопросов…
@@ -472,6 +543,9 @@
Источник
+
+ Псевдонимы спецвопросов
+
Время на размышление над спецвопросом (с)
@@ -484,6 +558,9 @@
Начать игру
+
+ Завершить
+
Завершить игру
@@ -505,6 +582,9 @@
Цвет текста
+
+ Тема
+
Комментарии темы
diff --git a/src/SImulator/SImulator/SImulator.csproj b/src/SImulator/SImulator/SImulator.csproj
index 6ca04c6b..6448e9ad 100644
--- a/src/SImulator/SImulator/SImulator.csproj
+++ b/src/SImulator/SImulator/SImulator.csproj
@@ -5,7 +5,7 @@
SImulator
SImulator
SIGame emulator
- Copyright © Khil-soft 2010 - 2023
+ Copyright © Khil-soft 2010 - 2024
$(SImulatorVersion)
bin\$(Configuration)\
true
diff --git a/test/Common/SIEngine.Core.Tests/SIEngine.Core.Tests.csproj b/test/Common/SIEngine.Core.Tests/SIEngine.Core.Tests.csproj
index 5519a4ce..d0380738 100644
--- a/test/Common/SIEngine.Core.Tests/SIEngine.Core.Tests.csproj
+++ b/test/Common/SIEngine.Core.Tests/SIEngine.Core.Tests.csproj
@@ -10,9 +10,9 @@
-
+
-
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/test/Common/SIEngine.Tests/SIEngine.Tests.csproj b/test/Common/SIEngine.Tests/SIEngine.Tests.csproj
index 05a7434a..c23d9e29 100644
--- a/test/Common/SIEngine.Tests/SIEngine.Tests.csproj
+++ b/test/Common/SIEngine.Tests/SIEngine.Tests.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/test/Common/SIEngine.Tests/TvEngineTests.cs b/test/Common/SIEngine.Tests/TvEngineTests.cs
index 6dcb2217..df590213 100644
--- a/test/Common/SIEngine.Tests/TvEngineTests.cs
+++ b/test/Common/SIEngine.Tests/TvEngineTests.cs
@@ -28,7 +28,7 @@ public void CommonTest()
new SIEnginePlayHandlerMock(),
new QuestionEnginePlayHandlerMock());
- Assert.AreEqual(GameStage.Begin, engine.Stage);
+ Assert.That(engine.Stage, Is.EqualTo(GameStage.Begin));
AssertMove(engine, GameStage.GameThemes);
AssertMove(engine, GameStage.Round);
@@ -37,7 +37,7 @@ public void CommonTest()
engine.SelectQuestion(0, 0);
- Assert.AreEqual(GameStage.Question, engine.Stage);
+ Assert.That(engine.Stage, Is.EqualTo(GameStage.Question));
AssertMove(engine, GameStage.Question);
AssertMove(engine, GameStage.Question);
@@ -46,7 +46,7 @@ public void CommonTest()
engine.SelectQuestion(0, 1);
- Assert.AreEqual(GameStage.Question, engine.Stage);
+ Assert.That(engine.Stage, Is.EqualTo(GameStage.Question));
AssertMove(engine, GameStage.Question);
AssertMove(engine, GameStage.Question);
@@ -55,7 +55,7 @@ public void CommonTest()
engine.SelectQuestion(0, 2);
- Assert.AreEqual(GameStage.Question, engine.Stage);
+ Assert.That(engine.Stage, Is.EqualTo(GameStage.Question));
AssertMove(engine, GameStage.Question);
AssertMove(engine, GameStage.Question);
@@ -102,6 +102,6 @@ private static void AssertMove(ISIEngine engine, GameStage stage)
{
engine.MoveNext();
- Assert.AreEqual(stage, engine.Stage);
+ Assert.That(engine.Stage, Is.EqualTo(stage));
}
}
\ No newline at end of file
diff --git a/test/SImulator/SImulator.ViewModel.Tests/CommonTests.cs b/test/SImulator/SImulator.ViewModel.Tests/CommonTests.cs
index 9bf42674..5046724a 100644
--- a/test/SImulator/SImulator.ViewModel.Tests/CommonTests.cs
+++ b/test/SImulator/SImulator.ViewModel.Tests/CommonTests.cs
@@ -25,9 +25,9 @@ public async Task SimpleRun()
await main.Start.ExecuteAsync(null);
var game = main.Game;
- Assert.NotNull(game);
+ Assert.That(game, Is.Not.Null);
- game.Next.Execute(null);
+ game!.Next.Execute(null);
game.Next.Execute(null);
game.Next.Execute(null);
game.Next.Execute(null);
@@ -37,7 +37,8 @@ public async Task SimpleRun()
game.Next.Execute(null);
- Assert.AreEqual(" ",
- ((PresentationController)game.PresentationController).TInfo.Text);
+ Assert.That(
+ ((PresentationController)game.PresentationController).TInfo.Text,
+ Is.EqualTo(" "));
}
}
\ No newline at end of file
diff --git a/test/SImulator/SImulator.ViewModel.Tests/SImulator.ViewModel.Tests.csproj b/test/SImulator/SImulator.ViewModel.Tests/SImulator.ViewModel.Tests.csproj
index 248e61bb..eba89dc8 100644
--- a/test/SImulator/SImulator.ViewModel.Tests/SImulator.ViewModel.Tests.csproj
+++ b/test/SImulator/SImulator.ViewModel.Tests/SImulator.ViewModel.Tests.csproj
@@ -1,4 +1,4 @@
-
+
net6.0
false
@@ -7,7 +7,7 @@
-
+