{
- "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
- "Author": "Censored",
- "QuestSequence": [
+ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
+ "Author": "Censored",
+ "QuestSequence": [
+ {
+ "Sequence": 0,
+ "Steps": [
{
- "Sequence": 0,
- "Steps": [
- {
- "DataId": 1052591,
- "Position": {
- "X": 71.854614,
- "Y": -16.247,
- "Z": 118.242065
- },
- "TerritoryId": 962,
- "InteractionType": "AcceptQuest",
- "AetheryteShortcut": "Old Sharlayan",
- "AethernetShortcut": [
- "[Old Sharlayan] Aetheryte Plaza",
- "[Old Sharlayan] Scholar's Harbor"
- ],
- "SkipConditions": {
- "AetheryteShortcutIf": {
- "InSameTerritory": true
- }
- }
- }
- ]
- },
+ "DataId": 1052591,
+ "Position": {
+ "X": 71.854614,
+ "Y": -16.247,
+ "Z": 118.242065
+ },
+ "TerritoryId": 962,
+ "InteractionType": "AcceptQuest",
+ "AetheryteShortcut": "Old Sharlayan",
+ "AethernetShortcut": [
+ "[Old Sharlayan] Aetheryte Plaza",
+ "[Old Sharlayan] Scholar's Harbor"
+ ],
+ "SkipConditions": {
+ "AetheryteShortcutIf": {
+ "InSameTerritory": true
+ }
+ }
+ }
+ ]
+ },
+ {
+ "Sequence": 1,
+ "Steps": [
{
- "Sequence": 1,
- "Steps": [
- {
- "DataId": 2014652,
- "Position": {
- "X": -648.73737,
- "Y": 130.0221,
- "Z": 717.3723
- },
- "TerritoryId": 959,
- "InteractionType": "Interact",
- "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum"
- }
- ]
- },
+ "DataId": 2014652,
+ "Position": {
+ "X": -648.73737,
+ "Y": 130.0221,
+ "Z": 717.3723
+ },
+ "TerritoryId": 959,
+ "InteractionType": "Interact",
+ "AetheryteShortcut": "Mare Lamentorum - Sinus Lacrimarum"
+ }
+ ]
+ },
+ {
+ "Sequence": 2,
+ "Steps": [
{
- "Sequence": 2,
- "Steps": [
- {
- "DataId": 1052592,
- "Position": {
- "X": 25.680908,
- "Y": -137.41669,
- "Z": -411.30695
- },
- "TerritoryId": 959,
- "InteractionType": "Interact",
- "Fly": true
- }
- ]
- },
+ "DataId": 1052592,
+ "Position": {
+ "X": 25.680908,
+ "Y": -137.41669,
+ "Z": -411.30695
+ },
+ "TerritoryId": 959,
+ "InteractionType": "Interact",
+ "Fly": true
+ }
+ ]
+ },
+ {
+ "Sequence": 255,
+ "Steps": [
{
- "Sequence": 255,
- "Steps": [
- {
- "DataId": 1052595,
- "Position": {
- "X": -53.177734,
- "Y": -3.33786E-06,
- "Z": -72.129456
- },
- "TerritoryId": 1237,
- "InteractionType": "CompleteQuest"
- }
- ]
+ "DataId": 1052595,
+ "Position": {
+ "X": -53.177734,
+ "Y": -3.33786E-06,
+ "Z": -72.129456
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "CompleteQuest",
+ "NextQuestId": 5254
}
- ]
+ ]
+ }
+ ]
}
--- /dev/null
+{
+ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
+ "Author": "liza",
+ "Disabled": true,
+ "Comment": "probably won't work until vnav supports the moon",
+ "QuestSequence": [
+ {
+ "Sequence": 0,
+ "Steps": [
+ {
+ "DataId": 1052595,
+ "Position": {
+ "X": -53.177734,
+ "Y": -3.33786E-06,
+ "Z": -72.129456
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "AcceptQuest"
+ }
+ ]
+ },
+ {
+ "Sequence": 1,
+ "Steps": [
+ {
+ "DataId": 1052618,
+ "Position": {
+ "X": -51.255127,
+ "Y": -3.3378603E-06,
+ "Z": -72.64819
+ },
+ "StopDistance": 7,
+ "TerritoryId": 1237,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 2,
+ "Steps": [
+ {
+ "DataId": 1052618,
+ "Position": {
+ "X": -40.065205,
+ "Y": 11.930657,
+ "Z": -95.35249
+ },
+ "StopDistance": 0.5,
+ "TerritoryId": 1237,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 3,
+ "Steps": [
+ {
+ "DataId": 1052618,
+ "Position": {
+ "X": -425.39127,
+ "Y": 47.861256,
+ "Z": 212.72206
+ },
+ "StopDistance": 0.5,
+ "TerritoryId": 1237,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 4,
+ "Steps": [
+ {
+ "DataId": 1052618,
+ "Position": {
+ "X": 533.5678,
+ "Y": 39.006783,
+ "Z": 167.32143
+ },
+ "StopDistance": 0.5,
+ "TerritoryId": 1237,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 5,
+ "Steps": [
+ {
+ "TerritoryId": 1237,
+ "InteractionType": "Action",
+ "Action": "Duty Action I"
+ },
+ {
+ "DataId": 2014657,
+ "Position": {
+ "X": 533.53174,
+ "Y": 38.986816,
+ "Z": 167.25415
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "Interact",
+ "DialogueChoices": [
+ {
+ "Type": "YesNo",
+ "Prompt": "TEXT_KINGWK102_05254_Q2_000_000",
+ "Yes": true
+ },
+ {
+ "Type": "List",
+ "Prompt": "TEXT_KINGWK102_05254_Q3_000_000",
+ "Answer": "TEXT_KINGWK102_05254_A3_000_001"
+ }
+ ],
+ "PointMenuChoices": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 4
+ ]
+ }
+ ]
+ },
+ {
+ "Sequence": 255,
+ "Steps": [
+ {
+ "TerritoryId": 1237,
+ "InteractionType": "Action",
+ "Action": "Duty Action I"
+ },
+ {
+ "DataId": 1052617,
+ "Position": {
+ "X": -53.177734,
+ "Y": -3.33786E-06,
+ "Z": -72.129456
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "CompleteQuest"
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+{
+ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
+ "Author": "liza",
+ "Disabled": true,
+ "Comment": "probably won't work until vnav supports the moon",
+ "QuestSequence": [
+ {
+ "Sequence": 0,
+ "Steps": [
+ {
+ "DataId": 1052631,
+ "Position": {
+ "X": 10.116699,
+ "Y": 1.6122663,
+ "Z": -17.135986
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "AcceptQuest",
+ "DialogueChoices": [
+ {
+ "Type": "List",
+ "Prompt": "TEXT_KINGWZ001_05323_Q1_000_000",
+ "Answer": "TEXT_KINGWZ001_05323_A1_000_001"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "Sequence": 1,
+ "Steps": [
+ {
+ "DataId": 1052633,
+ "Position": {
+ "X": -87.26642,
+ "Y": 0.3205882,
+ "Z": 82.26135
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "Interact",
+ "CompletionQuestVariablesFlags": [
+ null,
+ null,
+ null,
+ null,
+ null,
+ 64
+ ]
+ },
+ {
+ "DataId": 1052632,
+ "Position": {
+ "X": 79.81995,
+ "Y": 0.30599445,
+ "Z": 98.89368
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "Interact",
+ "CompletionQuestVariablesFlags": [
+ null,
+ null,
+ null,
+ null,
+ null,
+ 128
+ ]
+ }
+ ]
+ },
+ {
+ "Sequence": 2,
+ "Steps": [
+ {
+ "DataId": 2013711,
+ "Position": {
+ "X": -85.98462,
+ "Y": 4.2266846,
+ "Z": -63.767517
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 255,
+ "Steps": [
+ {
+ "DataId": 1052631,
+ "Position": {
+ "X": 10.116699,
+ "Y": 1.6122663,
+ "Z": -17.135986
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "CompleteQuest",
+ "NextQuestId": 5324
+ }
+ ]
+ }
+ ]
+}
--- /dev/null
+
+{
+ "$schema": "https://git.carvel.li/liza/Questionable/raw/branch/master/QuestPaths/quest-v1.json",
+ "Author": "liza",
+ "Disabled": true,
+ "Comment": "probably won't work until vnav supports the moon",
+ "QuestSequence": [
+ {
+ "Sequence": 0,
+ "Steps": [
+ {
+ "DataId": 1052631,
+ "Position": {
+ "X": 10.116699,
+ "Y": 1.6122663,
+ "Z": -17.135986
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "AcceptQuest",
+ "DialogueChoices": [
+ {
+ "Type": "List",
+ "Prompt": "TEXT_KINGWZ002_05324_Q1_000_000",
+ "Answer": "TEXT_KINGWZ002_05324_A1_000_002"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "Sequence": 1,
+ "Steps": [
+ {
+ "DataId": 1052634,
+ "Position": {
+ "X": -32.39496,
+ "Y": 1.5,
+ "Z": 31.631958
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 2,
+ "Steps": [
+ {
+ "DataId": 1052635,
+ "Position": {
+ "X": 46.61621,
+ "Y": 0.8794936,
+ "Z": 51.377075
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 3,
+ "Steps": [
+ {
+ "DataId": 1052636,
+ "Position": {
+ "X": 29.95337,
+ "Y": 1,
+ "Z": -70.45099
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "Interact"
+ }
+ ]
+ },
+ {
+ "Sequence": 255,
+ "Steps": [
+ {
+ "DataId": 1052631,
+ "Position": {
+ "X": 10.116699,
+ "Y": 1.6122663,
+ "Z": -17.135986
+ },
+ "TerritoryId": 1237,
+ "InteractionType": "CompleteQuest"
+ }
+ ]
+ }
+ ]
+}
"Water Cannon",
"Wasshoi",
"Shrouded Luminescence",
- "Big Sneeze"
+ "Big Sneeze",
+ "Duty Action I",
+ "Duty Action II"
]
}
},
{
private static readonly Dictionary<EAction, string> Values = new()
{
+ { EAction.DutyAction1, "Duty Action I" },
+ { EAction.DutyAction2, "Duty Action II" },
{ EAction.HeavySwing, "Heavy Swing" },
{ EAction.Bootshine, "Bootshine" },
{ EAction.TwinSnakes, "Twin Snakes" },
[JsonConverter(typeof(ActionConverter))]
public enum EAction
{
+ DutyAction1 = 26 | 0x10000,
+ DutyAction2 = 27 | 0x10000,
+
HeavySwing = 31,
Bootshine = 53,
TwinSnakes = 61,
public bool UseAction(EAction action)
{
- uint actionId = ActionManager.Instance()->GetAdjustedActionId((uint)action);
- if (ActionManager.Instance()->GetActionStatus(ActionType.Action, actionId) == 0)
+ uint actionId = (uint)action & 0xFFFF;
+ ActionType actionType = ((uint)action & 0x10000) == 0x10000 ? ActionType.GeneralAction : ActionType.Action;
+ if (actionType == ActionType.Action)
+ actionId = ActionManager.Instance()->GetAdjustedActionId(actionId);
+
+ if (ActionManager.Instance()->GetActionStatus(actionType, actionId) == 0)
{
- bool result = ActionManager.Instance()->UseAction(ActionType.Action, actionId);
+ bool result = ActionManager.Instance()->UseAction(actionType, actionId);
_logger.LogInformation("UseAction {Action} (adjusted: {AdjustedActionId}) result: {Result}", action,
actionId, result);
public bool UseAction(IGameObject gameObject, EAction action, bool checkCanUse = true)
{
- uint actionId = ActionManager.Instance()->GetAdjustedActionId((uint)action);
- var actionRow = _dataManager.GetExcelSheet<Action>().GetRow(actionId);
+ uint actionId = (uint)action & 0xFFFF;
+ ActionType actionType = ((uint)action & 0x10000) == 0x10000 ? ActionType.GeneralAction : ActionType.Action;
+ if (actionType == ActionType.GeneralAction)
+ {
+ _logger.LogWarning("Can not use general action {Action} on target {Target}", action, gameObject);
+ return false;
+ }
+
+ actionId = ActionManager.Instance()->GetAdjustedActionId(actionId);
if (checkCanUse && !ActionManager.CanUseActionOnTarget(actionId, (GameObject*)gameObject.Address))
{
_logger.LogWarning("Can not use action {Action} (adjusted: {AdjustedActionId}) on target {Target}", action,
return false;
}
+ Action actionRow = _dataManager.GetExcelSheet<Action>().GetRow(actionId);
_targetManager.Target = gameObject;
- if (ActionManager.Instance()->GetActionStatus(ActionType.Action, actionId, gameObject.GameObjectId) == 0)
+ if (ActionManager.Instance()->GetActionStatus(actionType, actionId, gameObject.GameObjectId) == 0)
{
bool result;
if (actionRow.TargetArea)
{
Vector3 position = gameObject.Position;
- result = ActionManager.Instance()->UseActionLocation(ActionType.Action, actionId,
+ result = ActionManager.Instance()->UseActionLocation(actionType, actionId,
location: &position);
_logger.LogInformation(
"UseAction {Action} (adjusted: {AdjustedActionId}) on target area {Target} result: {Result}",
}
else
{
- result = ActionManager.Instance()->UseAction(ActionType.Action, actionId, gameObject.GameObjectId);
+ result = ActionManager.Instance()->UseAction(actionType, actionId, gameObject.GameObjectId);
_logger.LogInformation(
"UseAction {Action} (adjusted: {AdjustedActionId}) on target {Target} result: {Result}", action,
actionId, gameObject, result);