ddon-server/Arrowgene.Ddon.GameServer/Scripting/Modules/GameServerScriptModule.cs
Paul Campbell 67ce3cc44f feat: Add area rank caution spots
- Added a new EnemySetGenerator interface for selecting enemies for a particular enemy group.
    - Implemented the following enemy set generators:
        - QuestEnemySetGenerator
        - EpitaphRoadEnemySetGenerator
        - CautionSpotEnemySetGenerator
        - WorldEnemySetGenerator
- Added a new EnemyPropertyGenerator for modifying attributes of selected enemies for a set.
    - New scripting module was introduced to allow a variety of properties to be applied
    - Implemented a new .csx script to auto assign BO to enemies in Epitaph Road dungeons
      when certain requirements are met.
    - Implemented a new ,csx script to handle adjustments of enemies in The Rift when
      performing a pawn rescue.
- Updated EXP mixin interface and default implementation
    - Added a new CharacterCommon parameter.
    - Implemented an algorithm which attempts to calculate enemy exp
      based on player level, enemy level and other properites such as
      boss, quest and nameplate modifiers.
- Add support for enemy caution spots
    - Implemented a new "World Manage" quest which handles sending the "Caution" message to
      players when they come across a "Caution Spot".
    - Added new scripting module which allows "Caution Spot" enemies to be defined.
        - Implemented caution spots for:
            - Hidell Plains
            - Breya Coast
            - Mysree Forest
            - Volden Mines
            - Dowe Valley
            - Mysree Grove
	    - Deenan Woods
	    - Betland Plains
	    - Northern Betland Plains
	    - Zandora Wastelands
	    - Eastern Zandora
	    - Mergoda Ruins
2025-03-06 21:55:39 -05:00

49 lines
2.6 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.Linq")
.AddImports("System.Collections")
.AddImports("System.Collections.Generic")
.AddImports("System.Collections.ObjectModel")
.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.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.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");
}
}
}