ddon-server/Arrowgene.Ddon.Scripts/scripts/libs/ScriptUtils.csx
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

28 lines
871 B
C#

public class ScriptUtils
{
/**
* @brief Parses a StageLayoutId value in the form of
* StageId.LayerNo.GroupId.
*
* @param[in] layoutString String in the format of 'StageId.LayerNo.GroupId'.
*
* @return Returns the CDataStageLayoutId parsed from the layout string.
*/
public static CDataStageLayoutId ParseLayoutId(string layoutString)
{
layoutString = layoutString.Trim();
List<string> parts = layoutString.Split(".").ToList();
if (parts.Count != 3)
{
throw new Exception($"Malformed layout string '{layoutString}'. Expects format to be 'StageId.LayerNo.GroupId'.");
}
return new CDataStageLayoutId()
{
StageId = uint.Parse(parts[0]),
LayerNo = byte.Parse(parts[1]),
GroupId = uint.Parse(parts[2]),
};
}
}