Assignment(nameof(QuestStep.StopDistance), step.StopDistance,
emptyStep.StopDistance)
.AsSyntaxNodeOrToken(),
+ Assignment(nameof(QuestStep.NpcWaitDistance), step.NpcWaitDistance,
+ emptyStep.NpcWaitDistance)
+ .AsSyntaxNodeOrToken(),
Assignment(nameof(QuestStep.TargetTerritoryId), step.TargetTerritoryId,
emptyStep.TargetTerritoryId)
.AsSyntaxNodeOrToken(),
"Z": -668.9708
},
"TerritoryId": 958,
- "InteractionType": "WaitForManualProgress",
+ "InteractionType": "Instruction",
"Comment": "Follow Azure-haired Boy"
},
{
"Z": -27.054321
},
"TerritoryId": 962,
- "InteractionType": "WaitForManualProgress",
- "Comment": "Follow Alisaie"
+ "InteractionType": "Interact"
+ },
+ {
+ "DataId": 1038753,
+ "Position": {
+ "X": -202.6663,
+ "Y": 13.470648,
+ "Z": -49.497906
+ },
+ "TerritoryId": 962,
+ "InteractionType": "WaitForNpcAtPosition",
+ "NpcWaitDistance": 1,
+ "Sprint": false
+ },
+ {
+ "DataId": 1038753,
+ "Position": {
+ "X": -138.0897,
+ "Y": 21.879826,
+ "Z": -144.57791
+ },
+ "TerritoryId": 962,
+ "InteractionType": "WaitForNpcAtPosition",
+ "NpcWaitDistance": 1,
+ "Sprint": false
+ },
+ {
+ "DataId": 1038753,
+ "Position": {
+ "X": -89.6808,
+ "Y": 24.953402,
+ "Z": -138.54071
+ },
+ "TerritoryId": 962,
+ "InteractionType": "WaitForNpcAtPosition",
+ "NpcWaitDistance": 1,
+ "Sprint": false
+ },
+ {
+ "DataId": 1038753,
+ "Position": {
+ "X": -16.652283,
+ "Y": 41.37599,
+ "Z": -145.70506
+ },
+ "TerritoryId": 962,
+ "InteractionType": "WaitForNpcAtPosition",
+ "NpcWaitDistance": 1,
+ "Sprint": false
+ },
+ {
+ "DataId": 1038753,
+ "Position": {
+ "X": -77.90129,
+ "Y": 41.37599,
+ "Z": -209.40958
+ },
+ "TerritoryId": 962,
+ "InteractionType": "Interact"
}
]
},
"Z": 390.46313
},
"TerritoryId": 958,
- "InteractionType": "WaitForManualProgress",
+ "InteractionType": "Instruction",
"Comment": "Follow Girl in Green"
}
]
"Z": 365.7129
},
"TerritoryId": 958,
- "InteractionType": "WaitForManualProgress",
+ "InteractionType": "Instruction",
"Comment": "Follow Alphinaud and Alisaie",
"DialogueChoices": [
{
{
"Sequence": 5,
"Steps": [
+ {
+ "DataId": 1039882,
+ "Position": {
+ "X": -286.71664,
+ "Y": 5.6315875,
+ "Z": 264.1926
+ },
+ "TerritoryId": 958,
+ "InteractionType": "WaitForNpcAtPosition",
+ "NpcWaitDistance": 5,
+ "Mount": false,
+ "Sprint": false
+ },
+ {
+ "DataId": 1039882,
+ "Position": {
+ "X": -126.2175,
+ "Y": 0.18809877,
+ "Z": 233.39058
+ },
+ "TerritoryId": 958,
+ "InteractionType": "WaitForNpcAtPosition",
+ "NpcWaitDistance": 5,
+ "Mount": false,
+ "Sprint": false
+ },
+ {
+ "DataId": 1039882,
+ "Position": {
+ "X": 67.2465,
+ "Y": 0.33215836,
+ "Z": 149.8282
+ },
+ "TerritoryId": 958,
+ "InteractionType": "WalkTo",
+ "Mount": false,
+ "Sprint": false
+ },
{
"DataId": 1039880,
"Position": {
},
"StopDistance": 1,
"TerritoryId": 958,
- "InteractionType": "Interact",
- "Comment": "Follow Alphinaud and Alisaie"
+ "InteractionType": "Interact"
}
]
},
"TerritoryId": 958,
"InteractionType": "WalkTo"
},
+ {
+ "Position": {
+ "X": 549.7444,
+ "Y": -36.61608,
+ "Z": -225.64955
+ },
+ "TerritoryId": 958,
+ "InteractionType": "WalkTo",
+ "DisableNavmesh": true
+ },
{
"DataId": 1039899,
"Position": {
"Z": 419.7605
},
"TerritoryId": 959,
- "InteractionType": "WaitForManualProgress",
+ "InteractionType": "Instruction",
"Comment": "Follow Argos"
},
{
"Z": 523.5217
},
"TerritoryId": 959,
- "InteractionType": "WaitForManualProgress",
+ "InteractionType": "Instruction",
"Comment": "Follow Argos"
},
{
"Z": -269.24548
},
"TerritoryId": 959,
- "InteractionType": "WaitForManualProgress",
+ "InteractionType": "Instruction",
"Comment": "Follow Urianger"
}
]
"Z": -269.24548
},
"TerritoryId": 959,
- "InteractionType": "WaitForManualProgress",
+ "InteractionType": "Instruction",
"Comment": "Follow Urianger"
}
]
"ContentFinderConditionId"
]
}
+ },
+ {
+ "if": {
+ "properties": {
+ "InteractionType": {
+ "const": "WaitForNpcAtPosition"
+ }
+ }
+ },
+ "then": {
+ "properties": {
+ "NpcWaitDistance": {
+ "type": "number",
+ "exclusiveMinimum": 0
+ }
+ }
+ }
}
]
}
public Vector3? Position { get; set; }
public float? StopDistance { get; set; }
+ public float? NpcWaitDistance { get; set; }
public ushort TerritoryId { get; set; }
public ushort? TargetTerritoryId { get; set; }
ExecuteCommand($"{_emoteCommands[emote]} motion");
}
- public bool IsObjectAtPosition(uint dataId, Vector3 position)
+ public bool IsObjectAtPosition(uint dataId, Vector3 position, float distance)
{
GameObject? gameObject = FindObjectByDataId(dataId);
- return gameObject != null && (gameObject.Position - position).Length() < 0.05f;
+ return gameObject != null && (gameObject.Position - position).Length() < distance;
}
public bool HasStatusPreventingMount()