- 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
- 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.
If the build is a debug build, it is possible to debug csx scripts
loaded by the server. Fixed an issue where the datetime range compare
was incorrect with a peroid crosses from one month to the next. Added a
new field EnableCancel which can be used by tutorial quests.
Extracted all the different point modification algorithms to scripts so
it's easier for server admins to adjust and add new modifiers to their
servers at runtime. A new "point modifiers" scripting module was added.
The generic term point means exp, jp and pp earned by players and pawns.
Moved settings from the generic GameLogicSettings.csv to a new settings
file PointModifiers.csx where appropriate.
Each modifier defines the following properties
- The point type that is being modified.
- Which quanity of point type it impacts (base amount or bonus amount).
- The behavior of the multiplier (additive or multiplicative).
- The source of point type (enemy vs quest).
- The player types it applies to (Player and/or MyPawn).
Like other scripting modules, a README.md file is created in the module
directory outlining basic usage and guidelines for the scripting module.