diff --git a/source/@MasterVersion.txt b/source/@MasterVersion.txt
index efcdd868..457562cf 100644
--- a/source/@MasterVersion.txt
+++ b/source/@MasterVersion.txt
@@ -1 +1 @@
-v10.3.8
+v10.3.9
diff --git a/source/ACT.Hojoring.Common/ACT.Hojoring.Common.csproj b/source/ACT.Hojoring.Common/ACT.Hojoring.Common.csproj
index fa9fbcaf..3a9f812e 100644
--- a/source/ACT.Hojoring.Common/ACT.Hojoring.Common.csproj
+++ b/source/ACT.Hojoring.Common/ACT.Hojoring.Common.csproj
@@ -59,6 +59,11 @@
+
+
+ Always
+
+
Code
diff --git a/source/ACT.Hojoring.Common/Version.cs b/source/ACT.Hojoring.Common/Version.cs
index ff560dee..b13c6d84 100644
--- a/source/ACT.Hojoring.Common/Version.cs
+++ b/source/ACT.Hojoring.Common/Version.cs
@@ -1,4 +1,4 @@
using System.Reflection;
-[assembly: AssemblyVersion("10.3.0.8")]
-[assembly: AssemblyFileVersion("10.3.0.8")]
+[assembly: AssemblyVersion("10.3.0.9")]
+[assembly: AssemblyFileVersion("10.3.0.9")]
diff --git a/source/ACT.Hojoring.Common/split.ps1 b/source/ACT.Hojoring.Common/split.ps1
new file mode 100644
index 00000000..6d7bf3af
--- /dev/null
+++ b/source/ACT.Hojoring.Common/split.ps1
@@ -0,0 +1,63 @@
+param (
+ [string]$inputFile
+)
+
+try {
+ # 入力ファイルの内容を読み込み
+ $content = Get-Content -Path $inputFile
+
+ # フラグの初期化
+ $copying = $false
+ $outputFile = ""
+
+ # 行ごとに処理
+ foreach ($line in $content) {
+ if ($line -match "00:0039::戦闘開始!") {
+ $copying = $true
+
+ $fileName = $inputFile.Substring(10, 10) + "_" + $line.Substring(1, 2) + $line.Substring(4, 2) + $line.Substring(7, 2) + ".log"
+ $outputFile = ".\" + $fileName
+
+ Write-Host $outputFile
+ Write-Host $line
+
+ if (Test-Path -Path $outputFile) {
+ Clear-Content -Path $outputFile
+ }
+ }
+ if ($copying -and -not ($line -match "\[DEBUG\]$")) {
+ Add-Content -Path $outputFile -Value $line
+ }
+ if ($copying -and $line -match "00:0038::Hojoring>WIPEOUT") {
+ $copying = $false
+ $newFileName = $outputFile.Replace(".log", "_false_.log")
+ Rename-Item -Path $outputFile -NewName $newFileName
+ }
+ if ($copying -and $line -match "ブラックキャットを倒した。") {
+ $copying = $false
+ $newFileName = $outputFile.Replace(".log", "_true_.log")
+ Rename-Item -Path $outputFile -NewName $newFileName
+ }
+ if ($copying -and $line -match "ハニー・B・ラブリーを倒した。") {
+ $copying = $false
+ $newFileName = $outputFile.Replace(".log", "_true_.log")
+ Rename-Item -Path $outputFile -NewName $newFileName
+ }
+ if ($copying -and $line -match "ブルートボンバーを倒した。") {
+ $copying = $false
+ $newFileName = $outputFile.Replace(".log", "_true_.log")
+ Rename-Item -Path $outputFile -NewName $newFileName
+ }
+ if ($copying -and $line -match "ウィケッドサンダーを倒した。") {
+ $copying = $false
+ $newFileName = $outputFile.Replace(".log", "_true_.log")
+ Rename-Item -Path $outputFile -NewName $newFileName
+ }
+ }
+} catch {
+ Write-Error "エラーが発生しました: $_"
+ Pause
+ exit 1
+}
+
+Pause
diff --git a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineManagerView.xaml b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineManagerView.xaml
index 458b142d..8d5deef8 100644
--- a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineManagerView.xaml
+++ b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineManagerView.xaml
@@ -113,6 +113,7 @@
+
+
+
diff --git a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineManagerView.xaml.cs b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineManagerView.xaml.cs
index 051c418a..5ae8b35f 100644
--- a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineManagerView.xaml.cs
+++ b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineManagerView.xaml.cs
@@ -5,8 +5,11 @@
using System.Diagnostics;
using System.IO;
using System.Linq;
+using System.Net;
+using System.Reflection;
using System.Runtime.CompilerServices;
using System.Text;
+using System.Threading;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
@@ -209,6 +212,56 @@ private async void LoadTimelineModels()
this.reloadTimelineFolderCommand ?? (this.reloadTimelineFolderCommand = new DelegateCommand(() =>
this.LoadTimelineModels()));
+ private static readonly string SplitScriptUrl = "https://raw.githubusercontent.com/anoyetta/ACT.Hojoring/master/source/ACT.Hojoring.Common/resources/split.ps1";
+
+ private ICommand splitParsedLogCommand;
+ public ICommand SplitParsedLogCommand =>
+ this.splitParsedLogCommand ?? (this.splitParsedLogCommand = new DelegateCommand(async () =>
+ {
+ var result = this.openFileDialog.ShowDialog(ActGlobals.oFormActMain);
+ if (result != System.Windows.Forms.DialogResult.OK)
+ {
+ return;
+ }
+ await AsyncSplitParsedLog(openFileDialog.FileName);
+ }));
+
+ private async Task AsyncSplitParsedLog(string parsedlog)
+ {
+ var cd = DirectoryHelper.GetPluginRootDirectoryDelegate?.Invoke();
+ if (string.IsNullOrEmpty(cd))
+ {
+ cd = Path.Combine(
+ Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location),
+ "..");
+
+ cd = Path.GetFullPath(cd);
+ }
+
+ var script = Path.Combine(cd, "split.ps1");
+
+ using (var web = new WebClient())
+ {
+ var temp = Path.GetTempFileName();
+ File.Delete(temp);
+
+ await web.DownloadFileTaskAsync(
+ SplitScriptUrl,
+ temp);
+
+ Thread.Sleep(10);
+ File.Copy(temp, script, true);
+ }
+
+ if (File.Exists(script))
+ {
+ var args = $"-NoLogo -NoProfile -ExecutionPolicy Unrestricted -File \"{script}\" {parsedlog}";
+
+ Process.Start(EnvironmentHelper.Pwsh, args);
+ }
+ }
+
+
private ICommand getMoreSampleCommand;
public ICommand GetMoreSampleCommand =>
@@ -253,12 +306,18 @@ private async void LoadTimelineModels()
}));
private ICommand testTimelineCommand;
+ private ICommand testTimelineCommand2;
public ICommand TestTimelineCommand =>
this.testTimelineCommand ?? (this.testTimelineCommand = new DelegateCommand(() =>
{
this.TestTimeline();
}));
+ public ICommand TestTimelineCommand2 =>
+ this.testTimelineCommand2 ?? (this.testTimelineCommand2 = new DelegateCommand(() =>
+ {
+ this.TestTimeline2();
+ }));
private System.Windows.Forms.OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog()
{
@@ -280,10 +339,23 @@ private void TestTimeline()
return;
}
- var view = new TimelineTesterView(this.openFileDialog.FileName);
+ var view = new TimelineTesterView(this.openFileDialog.FileName, false);
view.Show();
}
+ ///
+ /// タイムラインをテストする
+ ///
+ private void TestTimeline2()
+ {
+ var result = this.openFileDialog.ShowDialog(ActGlobals.oFormActMain);
+ if (result != System.Windows.Forms.DialogResult.OK)
+ {
+ return;
+ }
+ var view = new TimelineTesterView(this.openFileDialog.FileName, true);
+ view.Show();
+ }
#endregion Commands 左側ペイン
#region Commands 右側ペイン
diff --git a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineTesterView.xaml.cs b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineTesterView.xaml.cs
index a2245104..2cc839ac 100644
--- a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineTesterView.xaml.cs
+++ b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/Config/Views/TimelineTesterView.xaml.cs
@@ -28,7 +28,7 @@ public partial class TimelineTesterView :
INotifyPropertyChanged
{
public TimelineTesterView(
- string logFile)
+ string logFile, bool isReal = false)
{
this.LogFile = logFile;
@@ -41,7 +41,10 @@ public TimelineTesterView(
#endif
// Simulationモードにする
- TimelineManager.Instance.InSimulation = true;
+ if (!isReal)
+ {
+ TimelineManager.Instance.InSimulation = true;
+ }
// ウィンドウのスタート位置を決める
this.WindowStartupLocation = WindowStartupLocation.CenterScreen;
@@ -51,7 +54,10 @@ public TimelineTesterView(
this.Closed += async (x, y) =>
{
// Simulationモードを解除する
- TimelineManager.Instance.InSimulation = false;
+ if (!isReal)
+ {
+ TimelineManager.Instance.InSimulation = false;
+ }
await Dispatcher.InvokeAsync(() => TimelineController.CurrentController?.Load());
};
diff --git a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.en-US.xaml b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.en-US.xaml
index 31e9263e..513a1e65 100644
--- a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.en-US.xaml
+++ b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.en-US.xaml
@@ -281,7 +281,8 @@ This trigger is enabled when "HEALER1" contains "me (player)".
Activity style
Style name
Circle style
- Test timeline
+ Test timeline by Autolog
+ Test timeline by ParsedLog
Timeline Tester
Number of activities to show
Header
diff --git a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.ja-JP.xaml b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.ja-JP.xaml
index d1be3394..6eec5f1b 100644
--- a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.ja-JP.xaml
+++ b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.ja-JP.xaml
@@ -281,7 +281,8 @@ HEALER1 に me(自分)が含まれる場合にこのトリガが有効にな
アクティビティの表示スタイル
スタイルの名前
サークルスタイル
- 過去の戦闘ログを使用して スペスペたいむ™ をシミュレーションする
+ Autologで スペスペたいむ™ をシミュレーションする
+ ParsedLogで スペスペたいむ™ をシミュレーションする
スペスペたいむ™ シミュレータ
表示するアクティビティの数
ヘッダ
diff --git a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.ko-KR.xaml b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.ko-KR.xaml
index c2aea62b..55c0021d 100644
--- a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.ko-KR.xaml
+++ b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.ko-KR.xaml
@@ -283,6 +283,7 @@
원형 스타일
타임라인 테스트
타임라인 테스터
+ Test timeline by ParsedLog
표시할 액티비티 수
헤더
헤더 표시
diff --git a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.zh-CN.xaml b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.zh-CN.xaml
index 5be0992c..29455f03 100644
--- a/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.zh-CN.xaml
+++ b/source/ACT.SpecialSpellTimer/ACT.SpecialSpellTimer.Core/resources/strings/Strings.SpeSpe.zh-CN.xaml
@@ -283,6 +283,7 @@
圆形样式
测试时间轴
时间轴测试器
+ Test timeline by ParsedLog
显示数量
标题
显示标题