ddon-server/Arrowgene.Ddon.GameServer/Scripting/Modules/GameServerScriptModule.cs
Paul Campbell 060de5cb1c feat: Implement the EXM "Recurrence of Darkness"
- Partial implemention of the EXM "Recurrence of Darkness" (q50204000) using the
  scripted quest system.
- Moved all scripts to a seperate Arrowgene.Ddon.Scripts project to
  support out of project comde completion in csx scripts.
- Updated the README.md in the scripting project with details on how to
  enable csx autocompletion in Visual Studio Code.
- Enabled scripted quests to have some dyanmic state for the instance of
  the quest.
- Continued to build out QuestBlockUtil and QuestResultCommnandUtil to
  make it more convient to write scripted quests.
- Updated the script callback function to pass a new object
  QuestCallbackParam and updated the function to support passing
  anonymous functions as an argument.
- Moved index calculations for JSON quests to the asset deserializer.
- Adjusted some "discovered quests" to not show the marker on the map
  until after the quest is engaged.
- Renamed the script_dll directory to script_assemblies which is used
  for csx debug support.
- Updated the README.md for the scripts directory.
2025-02-26 10:28:00 -05:00

45 lines
2.4 KiB
C#

using Arrowgene.Ddon.Database.Model;
using Arrowgene.Ddon.Server.Scripting;
using Arrowgene.Ddon.Shared;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Scripting;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Text;
namespace Arrowgene.Ddon.GameServer.Scripting
{
public abstract class GameServerScriptModule : ScriptModule
{
public override ScriptOptions Options()
{
return ScriptOptions.Default
.AddReferences(MetadataReference.CreateFromFile(typeof(AccountStateType).Assembly.Location))
.AddReferences(MetadataReference.CreateFromFile(typeof(AssetRepository).Assembly.Location))
.AddReferences(MetadataReference.CreateFromFile(typeof(DdonGameServer).Assembly.Location))
.AddReferences(MetadataReference.CreateFromFile(typeof(DynamicAttribute).Assembly.Location))
.AddReferences(MetadataReference.CreateFromFile(typeof(Enumerable).Assembly.Location))
.AddReferences(MetadataReference.CreateFromFile(typeof(LibDdon).Assembly.Location))
.AddReferences(MetadataReference.CreateFromFile(typeof(LibUtils).Assembly.Location))
.AddImports("System", "System.Collections", "System.Collections.Generic", "System.Linq")
.AddImports("System.Runtime.CompilerServices")
.AddImports("Arrowgene.Ddon.Database")
.AddImports("Arrowgene.Ddon.Database.Model")
.AddImports("Arrowgene.Ddon.GameServer")
.AddImports("Arrowgene.Ddon.GameServer.Characters")
.AddImports("Arrowgene.Ddon.GameServer.Chat")
.AddImports("Arrowgene.Ddon.GameServer.Context")
.AddImports("Arrowgene.Ddon.GameServer.Party")
.AddImports("Arrowgene.Ddon.GameServer.Quests")
.AddImports("Arrowgene.Ddon.GameServer.Quests.Extensions")
.AddImports("Arrowgene.Ddon.GameServer.Scripting")
.AddImports("Arrowgene.Ddon.GameServer.Scripting.Interfaces")
.AddImports("Arrowgene.Ddon.Server.Scripting")
.AddImports("Arrowgene.Ddon.Shared")
.AddImports("Arrowgene.Ddon.Shared.Entity.PacketStructure")
.AddImports("Arrowgene.Ddon.Shared.Entity.Structure")
.AddImports("Arrowgene.Ddon.Shared.Model")
.AddImports("Arrowgene.Ddon.Shared.Model.Quest");
}
}
}