diff --git a/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs b/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs new file mode 100644 index 00000000..251e64ce --- /dev/null +++ b/QuestPathGenerator/RoslynElements/PurchaseMenuExtensions.cs @@ -0,0 +1,28 @@ +using Microsoft.CodeAnalysis.CSharp; +using Microsoft.CodeAnalysis.CSharp.Syntax; +using Questionable.Model.Questing; +using static Microsoft.CodeAnalysis.CSharp.SyntaxFactory; +using static Questionable.QuestPathGenerator.RoslynShortcuts; + +namespace Questionable.QuestPathGenerator.RoslynElements; + +internal static class PurchaseMenuExtensions +{ + public static ExpressionSyntax ToExpressionSyntax(this PurchaseMenu purchaseMenu) + { + PurchaseMenu emptyMenu = new(); + return ObjectCreationExpression( + IdentifierName(nameof(PurchaseMenu))) + .WithInitializer( + InitializerExpression( + SyntaxKind.ObjectInitializerExpression, + SeparatedList( + SyntaxNodeList( + Assignment(nameof(PurchaseMenu.ExcelSheet), purchaseMenu.ExcelSheet, + emptyMenu.ExcelSheet) + .AsSyntaxNodeOrToken(), + Assignment(nameof(PurchaseMenu.Key), purchaseMenu.Key, + emptyMenu.Key) + .AsSyntaxNodeOrToken())))); + } +} diff --git a/QuestPathGenerator/RoslynShortcuts.cs b/QuestPathGenerator/RoslynShortcuts.cs index cc146a0b..4147e47b 100644 --- a/QuestPathGenerator/RoslynShortcuts.cs +++ b/QuestPathGenerator/RoslynShortcuts.cs @@ -57,6 +57,7 @@ public static class RoslynShortcuts DialogueChoice dialogueChoice => dialogueChoice.ToExpressionSyntax(), JumpDestination jumpDestination => jumpDestination.ToExpressionSyntax(), ExcelRef excelRef => excelRef.ToExpressionSyntax(), + PurchaseMenu purchaseMenu => purchaseMenu.ToExpressionSyntax(), ComplexCombatData complexCombatData => complexCombatData.ToExpressionSyntax(), QuestWorkValue questWorkValue => questWorkValue.ToExpressionSyntax(), List list => list.ToExpressionSyntax(), // TODO fix in AssignmentList