From c5218608514c17721a85f978ef32d455d29ba842 Mon Sep 17 00:00:00 2001 From: Liza Carvelli Date: Sun, 14 Jul 2024 22:17:35 +0200 Subject: [PATCH] Update source generator --- QuestPathGenerator/QuestSourceGenerator.cs | 2 ++ QuestPathGenerator/RoslynShortcuts.cs | 19 ++++++++++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/QuestPathGenerator/QuestSourceGenerator.cs b/QuestPathGenerator/QuestSourceGenerator.cs index 66f060ec..de026fc0 100644 --- a/QuestPathGenerator/QuestSourceGenerator.cs +++ b/QuestPathGenerator/QuestSourceGenerator.cs @@ -346,6 +346,8 @@ public class QuestSourceGenerator : ISourceGenerator .AsSyntaxNodeOrToken(), AssignmentList(nameof(QuestStep.KillEnemyDataIds), step.KillEnemyDataIds) .AsSyntaxNodeOrToken(), + AssignmentList(nameof(QuestStep.ComplexCombatData), step.ComplexCombatData) + .AsSyntaxNodeOrToken(), Assignment(nameof(QuestStep.JumpDestination), step.JumpDestination, emptyStep.JumpDestination) .AsSyntaxNodeOrToken(), diff --git a/QuestPathGenerator/RoslynShortcuts.cs b/QuestPathGenerator/RoslynShortcuts.cs index 545cb27a..72a15a39 100644 --- a/QuestPathGenerator/RoslynShortcuts.cs +++ b/QuestPathGenerator/RoslynShortcuts.cs @@ -162,7 +162,24 @@ public static class RoslynShortcuts else throw new Exception($"Unsupported ExcelRef type {excelRef.Type}"); } - else if (value is null) + else if (value is ComplexCombatData complexCombatData) + { + return ObjectCreationExpression( + IdentifierName(nameof(ComplexCombatData))) + .WithInitializer( + InitializerExpression( + SyntaxKind.ObjectInitializerExpression, + SeparatedList( + SyntaxNodeList( + Assignment(nameof(ComplexCombatData.DataId), complexCombatData.DataId, default(uint)) + .AsSyntaxNodeOrToken(), + Assignment(nameof(ComplexCombatData.RewardItemId), complexCombatData.RewardItemId, null) + .AsSyntaxNodeOrToken(), + Assignment(nameof(ComplexCombatData.RewardItemCount), complexCombatData.RewardItemCount, null) + .AsSyntaxNodeOrToken(), + AssignmentList(nameof(ComplexCombatData.CompletionQuestVariablesFlags), complexCombatData.CompletionQuestVariablesFlags) + .AsSyntaxNodeOrToken())))); + }else if (value is null) return LiteralExpression(SyntaxKind.NullLiteralExpression); else throw new Exception($"Unsupported data type {value.GetType()} = {value}");