Update source generator v1.7
authorLiza Carvelli <liza@carvel.li>
Sun, 14 Jul 2024 20:17:35 +0000 (22:17 +0200)
committerLiza Carvelli <liza@carvel.li>
Sun, 14 Jul 2024 20:17:35 +0000 (22:17 +0200)
QuestPathGenerator/QuestSourceGenerator.cs
QuestPathGenerator/RoslynShortcuts.cs

index 66f060ec96453323fe82f96ea6520e2824e2ffde..de026fc0e5dbb56cecf68c890a28b294e627795f 100644 (file)
@@ -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(),
index 545cb27a22ef34b7d9cdc48b9a11b73dcf316990..72a15a39c481d14fe56254925e73368254c443b1 100644 (file)
@@ -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<ExpressionSyntax>(
+                            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}");