ddon-server/Arrowgene.Ddon.GameServer/Scripting/Modules/GameServerScriptModule.cs
Paul Campbell 305a4d503b feat: Add support for contents release
- Added support for the adventure guide.
- Add support for quests to unlock different content and menus.
- Implemented a world manage quest to track job tutorials.
- Implemented the following personal quests which unlock systems:
    - The Arisen's Abilities
    - Reliable Source of Information
    - Crafted Token of the Heart
    - Gathering in the Clan Tavern
    - Lestania's Best Dressed
    - Road to Mastery
    - The Temple's Tradespeople
    - Living with the Partner Pawn
    - Shining Within a Loyal Heart
    - Extend Garden
    - Custom-Made Workshop 1: Searcher's Return
    - Custom-Made Workshop 2: Limit Break
    - Custom-Made Workshop 3: Ultimate Arms Synthesis
    - Arms With the Power of the Dragon 1
    - Arms With the Power of the Dragon 2
- Implemented the following job quests:
    - Fighter Tactics Trial: A Stubborn Shield
    - Fighter Tactics Trial: Break Attack
    - Seeking the Master Fighter
    - Priest Tactics Trial: Purification
    - Priest Tactics Trial: Break Attack
    - Seeking the Master Priest
    - Seeker Tactics Trial: A Whirlwind
    - Seeking the Master Seeker
    - Shield Sage Tactics Trial: A Magick Shield
    - Shield Sage Tactics Trial: Break Attack
    - Seeking the Master Shield Sage
    - Hunter Tactics Trial: An Ambushing Bow
    - Hunter Tactics Trial: Break Attack
    - Seeking the Master Hunter
    - Sorcer Tactics Trial: A Magick Attack
    - Seeking the Master Sorcerer
    - Element Archer Tactics Trial: A Magick Bow
    - Seeking the Master Element Archer
    - Warrior Tactics Trial: A Strong Sword
    - Seeking the Master Warrior
    - Alchemist Tactics Trial: Alchemy
    - Seeking the Master Alchemist
    - Spirit Lancer Tactics Trial: A Spirit Lance
    - Seeking the Master Spirit Lancer
- Rewrote or updated the following main story quests:
    - Rewrote "Resolutions and Omens" as a quest script
    - Updated "The Slumbering God" to use newer JSON block types
    - Rewrote "Soldiers of the Rift" as a quest script
    - Rewrote "The Crimson Crystal" as a quest script
    - Updated "The Dull Grey Ark" to have proper enemies for the boss fight
    - Updated "Envoy of Reconciliation" to have proper enemy nameplates in
      the cellar
    - Updated additional existing main story quests to distribute contents released
- Split IsBo an IsHo enemy parameter from the BO amount field to match
  behavior of old playback videos where an enemy has a normal health bar
  but still rewards BO/HO
- Added a generic mechanism to handle quest work items
- Added the message "The entire party has returned to a safe area." when
  the instance gets reset while the player is in a party
- Added better unlock support to json
2025-04-01 20:57:15 -04:00

53 lines
2.9 KiB
C#

using Arrowgene.Ddon.Database.Model;
using Arrowgene.Ddon.Server.Scripting;
using Arrowgene.Ddon.Shared;
using Arrowgene.Logging;
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.Scripting;
using System.Linq;
using System.Runtime.CompilerServices;
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))
.AddReferences(MetadataReference.CreateFromFile(typeof(LogProvider).Assembly.Location))
.AddImports("System", "System.Linq")
.AddImports("System.Collections")
.AddImports("System.Collections.Generic")
.AddImports("System.Collections.ObjectModel")
.AddImports("System.Runtime.CompilerServices")
.AddImports("Arrowgene.Logging")
.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.Enemies")
.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")
.AddImports("Arrowgene.Ddon.Server.Network")
.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");
}
}
}