ddon-server/Arrowgene.Ddon.Scripts/scripts/point_modifiers/README.md
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

1.1 KiB

Point Modifiers

The scripts in this module define different types of point modifiers (such as exp, jp and pp).

A point modifier can have 2 types

  • Base Modifier
  • Bonus Modifier

Base modifiers are applied to the base point amount. Bonus modifiers are applied to the new base amount after all modifiers have been applied.

Each modifier also has 3 actions when calculating the final percentage

  • Additive
  • Multiplicative

The algorithm which will calculate the final modifier does as follows

  1. Add together all Additive multipliers.
  2. Apply all the Multiplicative multipliers.

Guidelines

All point modifiers should be able to have their settings be updated by a hot load event while the server is running.

Script naming

  • Scripts which define modifications to the base amount should be base_<point_type>_<name>.csx
    • example base_exp_globalmodifiers.csx
    • example base_exp_ptlvdiff.csx
  • Scripts which define a bonus should be named as bonus_<point_type>_<name>.csx.
    • example bonus_exp_equipment.csx.
    • example bonus_exp_gpcourse.csx.