muffin v6.18

This commit is contained in:
alydev 2025-10-10 10:10:09 +10:00
parent f56ae5f471
commit 4f297245f2
6 changed files with 502 additions and 472 deletions

View file

@ -461502,6 +461502,7 @@ public static class AssemblyQuestLoader
num2 = 0; num2 = 0;
span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054636u, new Vector3(506.70618f, 142.24991f, 800.2289f), 1187) span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054636u, new Vector3(506.70618f, 142.24991f, 800.2289f), 1187)
{ {
Fly = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho, AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions SkipConditions = new SkipConditions
{ {
@ -461641,14 +461642,14 @@ public static class AssemblyQuestLoader
reference157 = obj138; reference157 = obj138;
questRoot24.QuestSequence = list200; questRoot24.QuestSequence = list200;
AddQuest(questId24, questRoot24); AddQuest(questId24, questRoot24);
QuestId questId25 = new QuestId(5338); QuestId questId25 = new QuestId(5336);
QuestRoot questRoot25 = new QuestRoot(); QuestRoot questRoot25 = new QuestRoot();
num = 1; num = 1;
List<string> list208 = new List<string>(num); List<string> list208 = new List<string>(num);
CollectionsMarshal.SetCount(list208, num); CollectionsMarshal.SetCount(list208, num);
span = CollectionsMarshal.AsSpan(list208); span = CollectionsMarshal.AsSpan(list208);
index = 0; index = 0;
span[index] = "CryoTechnic"; span[index] = "WigglyMuffin";
questRoot25.Author = list208; questRoot25.Author = list208;
index = 4; index = 4;
List<QuestSequence> list209 = new List<QuestSequence>(index); List<QuestSequence> list209 = new List<QuestSequence>(index);
@ -461667,6 +461668,7 @@ public static class AssemblyQuestLoader
num2 = 0; num2 = 0;
span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187) span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{ {
Fly = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho, AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions SkipConditions = new SkipConditions
{ {
@ -461684,28 +461686,167 @@ public static class AssemblyQuestLoader
{ {
Sequence = 1 Sequence = 1
}; };
num2 = 1; num2 = 4;
List<QuestStep> list211 = new List<QuestStep>(num2); List<QuestStep> list211 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list211, num2); CollectionsMarshal.SetCount(list211, num2);
span3 = CollectionsMarshal.AsSpan(list211); span3 = CollectionsMarshal.AsSpan(list211);
index2 = 0; index2 = 0;
ref QuestStep reference160 = ref span3[index2];
QuestStep obj141 = new QuestStep(EInteractionType.Interact, 1054640u, new Vector3(496.11658f, 142.24991f, 801.6022f), 1187)
{
TargetTerritoryId = (ushort)1297
};
SkipConditions skipConditions13 = new SkipConditions();
SkipStepConditions skipStepConditions12 = new SkipStepConditions();
num3 = 1;
List<ushort> list212 = new List<ushort>(num3);
CollectionsMarshal.SetCount(list212, num3);
span4 = CollectionsMarshal.AsSpan(list212);
index3 = 0;
span4[index3] = 1187;
skipStepConditions12.NotInTerritory = list212;
skipConditions13.StepIf = skipStepConditions12;
obj141.SkipConditions = skipConditions13;
reference160 = obj141;
index2++;
span3[index2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(52.610603f, 0f, 68.19062f), 1297)
{
Fly = false
};
index2++;
span3[index2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(70.52385f, 1.8905392f, 65.476295f), 1297)
{
Fly = false
};
index2++;
span3[index2] = new QuestStep(EInteractionType.Interact, 1055802u, new Vector3(74.75391f, 1.8866259f, 50.369995f), 1297);
obj140.Steps = list211;
reference159 = obj140;
num++;
ref QuestSequence reference161 = ref span2[num];
QuestSequence obj142 = new QuestSequence
{
Sequence = 2
};
index2 = 4;
List<QuestStep> list213 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list213, index2);
span3 = CollectionsMarshal.AsSpan(list213);
num2 = 0;
span3[num2] = new QuestStep(EInteractionType.Craft, null, null, 1297)
{
ItemId = 46208u,
ItemCount = 3
};
num2++;
span3[num2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(70.52385f, 1.8905392f, 65.476295f), 1297)
{
Mount = true,
Fly = false
};
num2++;
span3[num2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(70.10631f, 1.8898277f, 100.54272f), 1297)
{
Fly = false
};
num2++;
span3[num2] = new QuestStep(EInteractionType.Interact, 1055816u, new Vector3(98.924194f, 1.890541f, 98.74109f), 1297);
obj142.Steps = list213;
reference161 = obj142;
num++;
ref QuestSequence reference162 = ref span2[num];
QuestSequence obj143 = new QuestSequence
{
Sequence = byte.MaxValue
};
num2 = 1;
List<QuestStep> list214 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list214, num2);
span3 = CollectionsMarshal.AsSpan(list214);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.CompleteQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{
Fly = true,
Land = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
InSameTerritory = true
}
}
};
obj143.Steps = list214;
reference162 = obj143;
questRoot25.QuestSequence = list209;
AddQuest(questId25, questRoot25);
QuestId questId26 = new QuestId(5338);
QuestRoot questRoot26 = new QuestRoot();
num = 1;
List<string> list215 = new List<string>(num);
CollectionsMarshal.SetCount(list215, num);
span = CollectionsMarshal.AsSpan(list215);
index = 0;
span[index] = "CryoTechnic";
questRoot26.Author = list215;
index = 4;
List<QuestSequence> list216 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list216, index);
span2 = CollectionsMarshal.AsSpan(list216);
num = 0;
ref QuestSequence reference163 = ref span2[num];
QuestSequence obj144 = new QuestSequence
{
Sequence = 0
};
index2 = 1;
List<QuestStep> list217 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list217, index2);
span3 = CollectionsMarshal.AsSpan(list217);
num2 = 0;
span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{
Fly = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
InSameTerritory = true
}
}
};
obj144.Steps = list217;
reference163 = obj144;
num++;
ref QuestSequence reference164 = ref span2[num];
QuestSequence obj145 = new QuestSequence
{
Sequence = 1
};
num2 = 1;
List<QuestStep> list218 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list218, num2);
span3 = CollectionsMarshal.AsSpan(list218);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.Interact, 1055817u, new Vector3(458.15198f, 114.935f, 657.3739f), 1187) span3[index2] = new QuestStep(EInteractionType.Interact, 1055817u, new Vector3(458.15198f, 114.935f, 657.3739f), 1187)
{ {
Fly = true, Fly = true,
Land = true Land = true
}; };
obj140.Steps = list211; obj145.Steps = list218;
reference159 = obj140; reference164 = obj145;
num++; num++;
ref QuestSequence reference160 = ref span2[num]; ref QuestSequence reference165 = ref span2[num];
QuestSequence obj141 = new QuestSequence QuestSequence obj146 = new QuestSequence
{ {
Sequence = 2 Sequence = 2
}; };
index2 = 2; index2 = 2;
List<QuestStep> list212 = new List<QuestStep>(index2); List<QuestStep> list219 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list212, index2); CollectionsMarshal.SetCount(list219, index2);
span3 = CollectionsMarshal.AsSpan(list212); span3 = CollectionsMarshal.AsSpan(list219);
num2 = 0; num2 = 0;
span3[num2] = new QuestStep(EInteractionType.Craft, null, null, 959) span3[num2] = new QuestStep(EInteractionType.Craft, null, null, 959)
{ {
@ -461714,18 +461855,18 @@ public static class AssemblyQuestLoader
}; };
num2++; num2++;
span3[num2] = new QuestStep(EInteractionType.Interact, 1055817u, new Vector3(458.15198f, 114.935f, 657.3739f), 1187); span3[num2] = new QuestStep(EInteractionType.Interact, 1055817u, new Vector3(458.15198f, 114.935f, 657.3739f), 1187);
obj141.Steps = list212; obj146.Steps = list219;
reference160 = obj141; reference165 = obj146;
num++; num++;
ref QuestSequence reference161 = ref span2[num]; ref QuestSequence reference166 = ref span2[num];
QuestSequence obj142 = new QuestSequence QuestSequence obj147 = new QuestSequence
{ {
Sequence = byte.MaxValue Sequence = byte.MaxValue
}; };
num2 = 1; num2 = 1;
List<QuestStep> list213 = new List<QuestStep>(num2); List<QuestStep> list220 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list213, num2); CollectionsMarshal.SetCount(list220, num2);
span3 = CollectionsMarshal.AsSpan(list213); span3 = CollectionsMarshal.AsSpan(list220);
index2 = 0; index2 = 0;
span3[index2] = new QuestStep(EInteractionType.CompleteQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187) span3[index2] = new QuestStep(EInteractionType.CompleteQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{ {
@ -461733,36 +461874,37 @@ public static class AssemblyQuestLoader
Land = true, Land = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho
}; };
obj142.Steps = list213; obj147.Steps = list220;
reference161 = obj142; reference166 = obj147;
questRoot25.QuestSequence = list209; questRoot26.QuestSequence = list216;
AddQuest(questId25, questRoot25); AddQuest(questId26, questRoot26);
QuestId questId26 = new QuestId(5339); QuestId questId27 = new QuestId(5339);
QuestRoot questRoot26 = new QuestRoot(); QuestRoot questRoot27 = new QuestRoot();
num = 1; num = 1;
List<string> list214 = new List<string>(num); List<string> list221 = new List<string>(num);
CollectionsMarshal.SetCount(list214, num); CollectionsMarshal.SetCount(list221, num);
span = CollectionsMarshal.AsSpan(list214); span = CollectionsMarshal.AsSpan(list221);
index = 0; index = 0;
span[index] = "CryoTechnic"; span[index] = "CryoTechnic";
questRoot26.Author = list214; questRoot27.Author = list221;
index = 3; index = 3;
List<QuestSequence> list215 = new List<QuestSequence>(index); List<QuestSequence> list222 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list215, index); CollectionsMarshal.SetCount(list222, index);
span2 = CollectionsMarshal.AsSpan(list215); span2 = CollectionsMarshal.AsSpan(list222);
num = 0; num = 0;
ref QuestSequence reference162 = ref span2[num]; ref QuestSequence reference167 = ref span2[num];
QuestSequence obj143 = new QuestSequence QuestSequence obj148 = new QuestSequence
{ {
Sequence = 0 Sequence = 0
}; };
index2 = 1; index2 = 1;
List<QuestStep> list216 = new List<QuestStep>(index2); List<QuestStep> list223 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list216, index2); CollectionsMarshal.SetCount(list223, index2);
span3 = CollectionsMarshal.AsSpan(list216); span3 = CollectionsMarshal.AsSpan(list223);
num2 = 0; num2 = 0;
span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187) span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{ {
Fly = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho, AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions SkipConditions = new SkipConditions
{ {
@ -461772,72 +461914,40 @@ public static class AssemblyQuestLoader
} }
} }
}; };
obj143.Steps = list216; obj148.Steps = list223;
reference162 = obj143; reference167 = obj148;
num++; num++;
ref QuestSequence reference163 = ref span2[num]; ref QuestSequence reference168 = ref span2[num];
QuestSequence obj144 = new QuestSequence QuestSequence obj149 = new QuestSequence
{ {
Sequence = 1 Sequence = 1
}; };
num2 = 3; num2 = 3;
List<QuestStep> list217 = new List<QuestStep>(num2); List<QuestStep> list224 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list217, num2); CollectionsMarshal.SetCount(list224, num2);
span3 = CollectionsMarshal.AsSpan(list217); span3 = CollectionsMarshal.AsSpan(list224);
index2 = 0; index2 = 0;
ref QuestStep reference164 = ref span3[index2]; ref QuestStep reference169 = ref span3[index2];
QuestStep obj145 = new QuestStep(EInteractionType.Interact, 1055818u, new Vector3(583.276f, 120.7841f, 382.55884f), 1187) QuestStep obj150 = new QuestStep(EInteractionType.Interact, 1055818u, new Vector3(583.276f, 120.7841f, 382.55884f), 1187)
{
Fly = true,
Land = true
};
num3 = 6;
List<List<QuestWorkValue>> list218 = new List<List<QuestWorkValue>>(num3);
CollectionsMarshal.SetCount(list218, num3);
Span<List<QuestWorkValue>> span8 = CollectionsMarshal.AsSpan(list218);
index3 = 0;
span8[index3] = null;
index3++;
ref List<QuestWorkValue> reference165 = ref span8[index3];
int num4 = 1;
List<QuestWorkValue> list219 = new List<QuestWorkValue>(num4);
CollectionsMarshal.SetCount(list219, num4);
span7 = CollectionsMarshal.AsSpan(list219);
int index4 = 0;
span7[index4] = new QuestWorkValue(null, (byte)3, EQuestWorkMode.Bitwise);
reference165 = list219;
index3++;
span8[index3] = null;
index3++;
span8[index3] = null;
index3++;
span8[index3] = null;
index3++;
span8[index3] = null;
obj145.RequiredQuestVariables = list218;
reference164 = obj145;
index2++;
ref QuestStep reference166 = ref span3[index2];
QuestStep obj146 = new QuestStep(EInteractionType.Interact, 1055819u, new Vector3(442.31323f, 101.649635f, 363.21045f), 1187)
{ {
Fly = true, Fly = true,
Land = true Land = true
}; };
index3 = 6; index3 = 6;
List<List<QuestWorkValue>> list220 = new List<List<QuestWorkValue>>(index3); List<List<QuestWorkValue>> list225 = new List<List<QuestWorkValue>>(index3);
CollectionsMarshal.SetCount(list220, index3); CollectionsMarshal.SetCount(list225, index3);
span8 = CollectionsMarshal.AsSpan(list220); Span<List<QuestWorkValue>> span8 = CollectionsMarshal.AsSpan(list225);
num3 = 0; num3 = 0;
span8[num3] = null; span8[num3] = null;
num3++; num3++;
ref List<QuestWorkValue> reference167 = ref span8[num3]; ref List<QuestWorkValue> reference170 = ref span8[num3];
index4 = 1; int num4 = 1;
List<QuestWorkValue> list221 = new List<QuestWorkValue>(index4); List<QuestWorkValue> list226 = new List<QuestWorkValue>(num4);
CollectionsMarshal.SetCount(list221, index4); CollectionsMarshal.SetCount(list226, num4);
span7 = CollectionsMarshal.AsSpan(list221); span7 = CollectionsMarshal.AsSpan(list226);
num4 = 0; int index4 = 0;
span7[num4] = new QuestWorkValue(null, (byte)1, EQuestWorkMode.Bitwise); span7[index4] = new QuestWorkValue(null, (byte)3, EQuestWorkMode.Bitwise);
reference167 = list221; reference170 = list226;
num3++; num3++;
span8[num3] = null; span8[num3] = null;
num3++; num3++;
@ -461846,30 +461956,30 @@ public static class AssemblyQuestLoader
span8[num3] = null; span8[num3] = null;
num3++; num3++;
span8[num3] = null; span8[num3] = null;
obj146.RequiredQuestVariables = list220; obj150.RequiredQuestVariables = list225;
reference166 = obj146; reference169 = obj150;
index2++; index2++;
ref QuestStep reference168 = ref span3[index2]; ref QuestStep reference171 = ref span3[index2];
QuestStep obj147 = new QuestStep(EInteractionType.Interact, 1055820u, new Vector3(379.50696f, 78.73412f, 440.63464f), 1187) QuestStep obj151 = new QuestStep(EInteractionType.Interact, 1055819u, new Vector3(442.31323f, 101.649635f, 363.21045f), 1187)
{ {
Fly = true, Fly = true,
Land = true Land = true
}; };
num3 = 6; num3 = 6;
List<List<QuestWorkValue>> list222 = new List<List<QuestWorkValue>>(num3); List<List<QuestWorkValue>> list227 = new List<List<QuestWorkValue>>(num3);
CollectionsMarshal.SetCount(list222, num3); CollectionsMarshal.SetCount(list227, num3);
span8 = CollectionsMarshal.AsSpan(list222); span8 = CollectionsMarshal.AsSpan(list227);
index3 = 0; index3 = 0;
span8[index3] = null; span8[index3] = null;
index3++; index3++;
ref List<QuestWorkValue> reference169 = ref span8[index3]; ref List<QuestWorkValue> reference172 = ref span8[index3];
num4 = 1; index4 = 1;
List<QuestWorkValue> list223 = new List<QuestWorkValue>(num4); List<QuestWorkValue> list228 = new List<QuestWorkValue>(index4);
CollectionsMarshal.SetCount(list223, num4); CollectionsMarshal.SetCount(list228, index4);
span7 = CollectionsMarshal.AsSpan(list223); span7 = CollectionsMarshal.AsSpan(list228);
index4 = 0; num4 = 0;
span7[index4] = new QuestWorkValue(null, (byte)2, EQuestWorkMode.Bitwise); span7[num4] = new QuestWorkValue(null, (byte)1, EQuestWorkMode.Bitwise);
reference169 = list223; reference172 = list228;
index3++; index3++;
span8[index3] = null; span8[index3] = null;
index3++; index3++;
@ -461878,129 +461988,42 @@ public static class AssemblyQuestLoader
span8[index3] = null; span8[index3] = null;
index3++; index3++;
span8[index3] = null; span8[index3] = null;
obj147.RequiredQuestVariables = list222; obj151.RequiredQuestVariables = list227;
reference168 = obj147; reference171 = obj151;
obj144.Steps = list217; index2++;
reference163 = obj144; ref QuestStep reference173 = ref span3[index2];
num++; QuestStep obj152 = new QuestStep(EInteractionType.Interact, 1055820u, new Vector3(379.50696f, 78.73412f, 440.63464f), 1187)
ref QuestSequence reference170 = ref span2[num];
QuestSequence obj148 = new QuestSequence
{
Sequence = byte.MaxValue
};
index2 = 1;
List<QuestStep> list224 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list224, index2);
span3 = CollectionsMarshal.AsSpan(list224);
num2 = 0;
span3[num2] = new QuestStep(EInteractionType.CompleteQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{ {
Fly = true, Fly = true,
Land = true, Land = true
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho
}; };
obj148.Steps = list224; index3 = 6;
reference170 = obj148; List<List<QuestWorkValue>> list229 = new List<List<QuestWorkValue>>(index3);
questRoot26.QuestSequence = list215;
AddQuest(questId26, questRoot26);
QuestId questId27 = new QuestId(5340);
QuestRoot questRoot27 = new QuestRoot();
num = 1;
List<string> list225 = new List<string>(num);
CollectionsMarshal.SetCount(list225, num);
span = CollectionsMarshal.AsSpan(list225);
index = 0;
span[index] = "CryoTechnic";
questRoot27.Author = list225;
index = 4;
List<QuestSequence> list226 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list226, index);
span2 = CollectionsMarshal.AsSpan(list226);
num = 0;
ref QuestSequence reference171 = ref span2[num];
QuestSequence obj149 = new QuestSequence
{
Sequence = 0
};
num2 = 1;
List<QuestStep> list227 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list227, num2);
span3 = CollectionsMarshal.AsSpan(list227);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
InSameTerritory = true
}
}
};
obj149.Steps = list227;
reference171 = obj149;
num++;
ref QuestSequence reference172 = ref span2[num];
QuestSequence obj150 = new QuestSequence
{
Sequence = 1
};
index2 = 3;
List<QuestStep> list228 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list228, index2);
span3 = CollectionsMarshal.AsSpan(list228);
num2 = 0;
ref QuestStep reference173 = ref span3[num2];
QuestStep obj151 = new QuestStep(EInteractionType.Interact, 1054640u, new Vector3(496.11658f, 142.24991f, 801.6022f), 1187)
{
TargetTerritoryId = (ushort)1297
};
SkipConditions skipConditions13 = new SkipConditions();
SkipStepConditions skipStepConditions12 = new SkipStepConditions();
index3 = 1;
List<ushort> list229 = new List<ushort>(index3);
CollectionsMarshal.SetCount(list229, index3); CollectionsMarshal.SetCount(list229, index3);
span4 = CollectionsMarshal.AsSpan(list229); span8 = CollectionsMarshal.AsSpan(list229);
num3 = 0; num3 = 0;
span4[num3] = 1187; span8[num3] = null;
skipStepConditions12.NotInTerritory = list229; num3++;
skipConditions13.StepIf = skipStepConditions12; ref List<QuestWorkValue> reference174 = ref span8[num3];
obj151.SkipConditions = skipConditions13; num4 = 1;
reference173 = obj151; List<QuestWorkValue> list230 = new List<QuestWorkValue>(num4);
num2++; CollectionsMarshal.SetCount(list230, num4);
span3[num2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(52.610603f, 0f, 68.19062f), 1297) span7 = CollectionsMarshal.AsSpan(list230);
{ index4 = 0;
Fly = false span7[index4] = new QuestWorkValue(null, (byte)2, EQuestWorkMode.Bitwise);
}; reference174 = list230;
num2++; num3++;
span3[num2] = new QuestStep(EInteractionType.Interact, 1055802u, new Vector3(74.75391f, 1.8866259f, 50.369995f), 1297); span8[num3] = null;
obj150.Steps = list228; num3++;
reference172 = obj150; span8[num3] = null;
num++; num3++;
ref QuestSequence reference174 = ref span2[num]; span8[num3] = null;
QuestSequence obj152 = new QuestSequence num3++;
{ span8[num3] = null;
Sequence = 2 obj152.RequiredQuestVariables = list229;
}; reference173 = obj152;
num2 = 4; obj149.Steps = list224;
List<QuestStep> list230 = new List<QuestStep>(num2); reference168 = obj149;
CollectionsMarshal.SetCount(list230, num2);
span3 = CollectionsMarshal.AsSpan(list230);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.Craft, null, null, 1297)
{
ItemId = 46214u,
ItemCount = 3
};
index2++;
span3[index2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(68.66426f, 1.8905385f, 65.188644f), 1297);
index2++;
span3[index2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(89.68089f, 3.372309f, 67.41638f), 1297);
index2++;
span3[index2] = new QuestStep(EInteractionType.Interact, 1055821u, new Vector3(88.97534f, 3.3723087f, 75.791504f), 1297);
obj152.Steps = list230;
reference174 = obj152;
num++; num++;
ref QuestSequence reference175 = ref span2[num]; ref QuestSequence reference175 = ref span2[num];
QuestSequence obj153 = new QuestSequence QuestSequence obj153 = new QuestSequence
@ -462016,20 +462039,13 @@ public static class AssemblyQuestLoader
{ {
Fly = true, Fly = true,
Land = true, Land = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho, AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
InSameTerritory = true
}
}
}; };
obj153.Steps = list231; obj153.Steps = list231;
reference175 = obj153; reference175 = obj153;
questRoot27.QuestSequence = list226; questRoot27.QuestSequence = list222;
AddQuest(questId27, questRoot27); AddQuest(questId27, questRoot27);
QuestId questId28 = new QuestId(5341); QuestId questId28 = new QuestId(5340);
QuestRoot questRoot28 = new QuestRoot(); QuestRoot questRoot28 = new QuestRoot();
num = 1; num = 1;
List<string> list232 = new List<string>(num); List<string> list232 = new List<string>(num);
@ -462055,6 +462071,7 @@ public static class AssemblyQuestLoader
index2 = 0; index2 = 0;
span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187) span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{ {
Fly = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho, AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions SkipConditions = new SkipConditions
{ {
@ -462072,7 +462089,7 @@ public static class AssemblyQuestLoader
{ {
Sequence = 1 Sequence = 1
}; };
index2 = 4; index2 = 3;
List<QuestStep> list235 = new List<QuestStep>(index2); List<QuestStep> list235 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list235, index2); CollectionsMarshal.SetCount(list235, index2);
span3 = CollectionsMarshal.AsSpan(list235); span3 = CollectionsMarshal.AsSpan(list235);
@ -462100,9 +462117,7 @@ public static class AssemblyQuestLoader
Fly = false Fly = false
}; };
num2++; num2++;
span3[num2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(89.2292f, 3.372309f, 66.11308f), 1297); span3[num2] = new QuestStep(EInteractionType.Interact, 1055802u, new Vector3(74.75391f, 1.8866259f, 50.369995f), 1297);
num2++;
span3[num2] = new QuestStep(EInteractionType.Interact, 1055821u, new Vector3(88.97534f, 3.3723087f, 75.791504f), 1297);
obj155.Steps = list235; obj155.Steps = list235;
reference177 = obj155; reference177 = obj155;
num++; num++;
@ -462111,17 +462126,21 @@ public static class AssemblyQuestLoader
{ {
Sequence = 2 Sequence = 2
}; };
num2 = 2; num2 = 4;
List<QuestStep> list237 = new List<QuestStep>(num2); List<QuestStep> list237 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list237, num2); CollectionsMarshal.SetCount(list237, num2);
span3 = CollectionsMarshal.AsSpan(list237); span3 = CollectionsMarshal.AsSpan(list237);
index2 = 0; index2 = 0;
span3[index2] = new QuestStep(EInteractionType.Craft, null, null, 1297) span3[index2] = new QuestStep(EInteractionType.Craft, null, null, 1297)
{ {
ItemId = 46216u, ItemId = 46214u,
ItemCount = 3 ItemCount = 3
}; };
index2++; index2++;
span3[index2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(68.66426f, 1.8905385f, 65.188644f), 1297);
index2++;
span3[index2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(89.68089f, 3.372309f, 67.41638f), 1297);
index2++;
span3[index2] = new QuestStep(EInteractionType.Interact, 1055821u, new Vector3(88.97534f, 3.3723087f, 75.791504f), 1297); span3[index2] = new QuestStep(EInteractionType.Interact, 1055821u, new Vector3(88.97534f, 3.3723087f, 75.791504f), 1297);
obj157.Steps = list237; obj157.Steps = list237;
reference179 = obj157; reference179 = obj157;
@ -462153,7 +462172,7 @@ public static class AssemblyQuestLoader
reference180 = obj158; reference180 = obj158;
questRoot28.QuestSequence = list233; questRoot28.QuestSequence = list233;
AddQuest(questId28, questRoot28); AddQuest(questId28, questRoot28);
QuestId questId29 = new QuestId(5342); QuestId questId29 = new QuestId(5341);
QuestRoot questRoot29 = new QuestRoot(); QuestRoot questRoot29 = new QuestRoot();
num = 1; num = 1;
List<string> list239 = new List<string>(num); List<string> list239 = new List<string>(num);
@ -462179,6 +462198,7 @@ public static class AssemblyQuestLoader
index2 = 0; index2 = 0;
span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187) span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{ {
Fly = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho, AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions SkipConditions = new SkipConditions
{ {
@ -462196,13 +462216,13 @@ public static class AssemblyQuestLoader
{ {
Sequence = 1 Sequence = 1
}; };
index2 = 1; index2 = 4;
List<QuestStep> list242 = new List<QuestStep>(index2); List<QuestStep> list242 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list242, index2); CollectionsMarshal.SetCount(list242, index2);
span3 = CollectionsMarshal.AsSpan(list242); span3 = CollectionsMarshal.AsSpan(list242);
num2 = 0; num2 = 0;
ref QuestStep reference183 = ref span3[num2]; ref QuestStep reference183 = ref span3[num2];
QuestStep obj161 = new QuestStep(EInteractionType.Interact, 1054676u, new Vector3(500.93835f, 142.24991f, 782.22314f), 1187) QuestStep obj161 = new QuestStep(EInteractionType.Interact, 1054640u, new Vector3(496.11658f, 142.24991f, 801.6022f), 1187)
{ {
TargetTerritoryId = (ushort)1297 TargetTerritoryId = (ushort)1297
}; };
@ -462218,6 +462238,15 @@ public static class AssemblyQuestLoader
skipConditions15.StepIf = skipStepConditions14; skipConditions15.StepIf = skipStepConditions14;
obj161.SkipConditions = skipConditions15; obj161.SkipConditions = skipConditions15;
reference183 = obj161; reference183 = obj161;
num2++;
span3[num2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(52.610603f, 0f, 68.19062f), 1297)
{
Fly = false
};
num2++;
span3[num2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(89.2292f, 3.372309f, 66.11308f), 1297);
num2++;
span3[num2] = new QuestStep(EInteractionType.Interact, 1055821u, new Vector3(88.97534f, 3.3723087f, 75.791504f), 1297);
obj160.Steps = list242; obj160.Steps = list242;
reference182 = obj160; reference182 = obj160;
num++; num++;
@ -462233,15 +462262,11 @@ public static class AssemblyQuestLoader
index2 = 0; index2 = 0;
span3[index2] = new QuestStep(EInteractionType.Craft, null, null, 1297) span3[index2] = new QuestStep(EInteractionType.Craft, null, null, 1297)
{ {
ItemId = 46218u, ItemId = 46216u,
ItemCount = 3 ItemCount = 3
}; };
index2++; index2++;
span3[index2] = new QuestStep(EInteractionType.Interact, 1055824u, new Vector3(520.714f, 111.135f, 608.5145f), 1187) span3[index2] = new QuestStep(EInteractionType.Interact, 1055821u, new Vector3(88.97534f, 3.3723087f, 75.791504f), 1297);
{
Fly = true,
Land = true
};
obj162.Steps = list244; obj162.Steps = list244;
reference184 = obj162; reference184 = obj162;
num++; num++;
@ -462272,6 +462297,126 @@ public static class AssemblyQuestLoader
reference185 = obj163; reference185 = obj163;
questRoot29.QuestSequence = list240; questRoot29.QuestSequence = list240;
AddQuest(questId29, questRoot29); AddQuest(questId29, questRoot29);
QuestId questId30 = new QuestId(5342);
QuestRoot questRoot30 = new QuestRoot();
num = 1;
List<string> list246 = new List<string>(num);
CollectionsMarshal.SetCount(list246, num);
span = CollectionsMarshal.AsSpan(list246);
index = 0;
span[index] = "CryoTechnic";
questRoot30.Author = list246;
index = 4;
List<QuestSequence> list247 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list247, index);
span2 = CollectionsMarshal.AsSpan(list247);
num = 0;
ref QuestSequence reference186 = ref span2[num];
QuestSequence obj164 = new QuestSequence
{
Sequence = 0
};
num2 = 1;
List<QuestStep> list248 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list248, num2);
span3 = CollectionsMarshal.AsSpan(list248);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.AcceptQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{
Fly = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
InSameTerritory = true
}
}
};
obj164.Steps = list248;
reference186 = obj164;
num++;
ref QuestSequence reference187 = ref span2[num];
QuestSequence obj165 = new QuestSequence
{
Sequence = 1
};
index2 = 1;
List<QuestStep> list249 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list249, index2);
span3 = CollectionsMarshal.AsSpan(list249);
num2 = 0;
ref QuestStep reference188 = ref span3[num2];
QuestStep obj166 = new QuestStep(EInteractionType.Interact, 1054676u, new Vector3(500.93835f, 142.24991f, 782.22314f), 1187)
{
TargetTerritoryId = (ushort)1297
};
SkipConditions skipConditions16 = new SkipConditions();
SkipStepConditions skipStepConditions15 = new SkipStepConditions();
num3 = 1;
List<ushort> list250 = new List<ushort>(num3);
CollectionsMarshal.SetCount(list250, num3);
span4 = CollectionsMarshal.AsSpan(list250);
index3 = 0;
span4[index3] = 1187;
skipStepConditions15.NotInTerritory = list250;
skipConditions16.StepIf = skipStepConditions15;
obj166.SkipConditions = skipConditions16;
reference188 = obj166;
obj165.Steps = list249;
reference187 = obj165;
num++;
ref QuestSequence reference189 = ref span2[num];
QuestSequence obj167 = new QuestSequence
{
Sequence = 2
};
num2 = 2;
List<QuestStep> list251 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list251, num2);
span3 = CollectionsMarshal.AsSpan(list251);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.Craft, null, null, 1297)
{
ItemId = 46218u,
ItemCount = 3
};
index2++;
span3[index2] = new QuestStep(EInteractionType.Interact, 1055824u, new Vector3(520.714f, 111.135f, 608.5145f), 1187)
{
Fly = true,
Land = true
};
obj167.Steps = list251;
reference189 = obj167;
num++;
ref QuestSequence reference190 = ref span2[num];
QuestSequence obj168 = new QuestSequence
{
Sequence = byte.MaxValue
};
index2 = 1;
List<QuestStep> list252 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list252, index2);
span3 = CollectionsMarshal.AsSpan(list252);
num2 = 0;
span3[num2] = new QuestStep(EInteractionType.CompleteQuest, 1054635u, new Vector3(493.2173f, 142.24991f, 783.0471f), 1187)
{
Fly = true,
Land = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
InSameTerritory = true
}
}
};
obj168.Steps = list252;
reference190 = obj168;
questRoot30.QuestSequence = list247;
AddQuest(questId30, questRoot30);
} }
private static void LoadQuests107() private static void LoadQuests107()

View file

@ -290,11 +290,11 @@ internal sealed class QuestController : MiniTaskController<QuestController>
_safeAnimationEnd = DateTime.Now.AddSeconds(1f + num); _safeAnimationEnd = DateTime.Now.AddSeconds(1f + num);
} }
} }
UpdateCurrentQuest();
if (AutomationType == EAutomationType.Manual && !IsRunning && !IsQuestWindowOpen) if (AutomationType == EAutomationType.Manual && !IsRunning && !IsQuestWindowOpen)
{ {
return; return;
} }
UpdateCurrentQuest();
if (!_clientState.IsLoggedIn) if (!_clientState.IsLoggedIn)
{ {
StopAllDueToConditionFailed("Logged out"); StopAllDueToConditionFailed("Logged out");
@ -511,20 +511,6 @@ internal sealed class QuestController : MiniTaskController<QuestController>
_pendingQuest = null; _pendingQuest = null;
CheckNextTasks("Pending quest accepted"); CheckNextTasks("Pending quest accepted");
} }
if (_startedQuest != null && !_questFunctions.IsQuestAccepted(_startedQuest.Quest.Id))
{
if (_startedQuest.Quest.Info.IsRepeatable)
{
_logger.LogInformation("Repeatable quest {QuestId} is no longer accepted, clearing started quest", _startedQuest.Quest.Id);
}
else if (!_questFunctions.IsQuestComplete(_startedQuest.Quest.Id))
{
_logger.LogInformation("Quest {QuestId} was abandoned, clearing started quest", _startedQuest.Quest.Id);
_startedQuest = null;
Stop("Quest abandoned");
return;
}
}
if (_simulatedQuest == null && _nextQuest != null && !((!_nextQuest.Quest.Info.IsRepeatable) ? (!_questFunctions.IsQuestAcceptedOrComplete(_nextQuest.Quest.Id)) : (!_questFunctions.IsQuestAccepted(_nextQuest.Quest.Id)))) if (_simulatedQuest == null && _nextQuest != null && !((!_nextQuest.Quest.Info.IsRepeatable) ? (!_questFunctions.IsQuestAcceptedOrComplete(_nextQuest.Quest.Id)) : (!_questFunctions.IsQuestAccepted(_nextQuest.Quest.Id))))
{ {
_logger.LogInformation("Next quest {QuestId} accepted or completed", _nextQuest.Quest.Id); _logger.LogInformation("Next quest {QuestId} accepted or completed", _nextQuest.Quest.Id);
@ -533,27 +519,11 @@ internal sealed class QuestController : MiniTaskController<QuestController>
_startedQuest = _nextQuest; _startedQuest = _nextQuest;
AutomationType = EAutomationType.SingleQuestB; AutomationType = EAutomationType.SingleQuestB;
} }
else if (_questFunctions.IsQuestAccepted(_nextQuest.Quest.Id))
{
QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(_nextQuest.Quest.Id);
if (questProgressInfo != null)
{
_startedQuest = new QuestProgress(_nextQuest.Quest, questProgressInfo.Sequence);
_logger.LogInformation("Moving accepted next quest to started quest (sequence: {Sequence})", questProgressInfo.Sequence);
_nextQuest = null;
CheckNextTasks("Next quest already accepted");
return;
}
_logger.LogWarning("Could not get quest progress info for accepted quest {QuestId}", _nextQuest.Quest.Id);
}
_logger.LogDebug("Started: {StartedQuest}", _startedQuest?.Quest.Id); _logger.LogDebug("Started: {StartedQuest}", _startedQuest?.Quest.Id);
_nextQuest = null; _nextQuest = null;
} }
byte b; byte b;
QuestProgress questProgress; QuestProgress questProgress;
ElementId CurrentQuest;
byte Sequence;
MainScenarioQuestState State;
if (_simulatedQuest != null) if (_simulatedQuest != null)
{ {
b = _simulatedQuest.Sequence; b = _simulatedQuest.Sequence;
@ -577,71 +547,24 @@ internal sealed class QuestController : MiniTaskController<QuestController>
ExecuteNextStep(); ExecuteNextStep();
} }
} }
else if (_startedQuest != null)
{
questProgress = _startedQuest;
b = _startedQuest.Sequence;
QuestProgressInfo questProgressInfo2 = _questFunctions.GetQuestProgressInfo(_startedQuest.Quest.Id);
if (questProgressInfo2 != null && questProgressInfo2.Sequence != b)
{
_logger.LogInformation("Updating started quest sequence from {OldSequence} to {NewSequence}", b, questProgressInfo2.Sequence);
b = questProgressInfo2.Sequence;
}
if (AutomationType == EAutomationType.Manual || !IsRunning)
{
_questFunctions.GetCurrentQuest(AutomationType != EAutomationType.SingleQuestB).Deconstruct(out CurrentQuest, out Sequence, out State);
ElementId elementId = CurrentQuest;
byte sequence = Sequence;
(ElementId, byte)? tuple = (from x in ManualPriorityQuests
where _questFunctions.IsReadyToAcceptQuest(x.Id) || _questFunctions.IsQuestAccepted(x.Id)
select (Id: x.Id, _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault();
if (tuple.HasValue)
{
(ElementId, byte) valueOrDefault = tuple.GetValueOrDefault();
if ((object)valueOrDefault.Item1 != null)
{
(elementId, sequence) = valueOrDefault;
}
}
if (elementId != null && elementId.Value != 0 && _startedQuest.Quest.Id != elementId)
{
_logger.LogInformation("Game current quest changed from {OldQuest} to {NewQuest}, updating started quest", _startedQuest.Quest.Id, elementId);
if (_questRegistry.TryGetQuest(elementId, out Quest quest))
{
_logger.LogInformation("Switching to new quest: {QuestName}", quest.Info.Name);
_startedQuest = new QuestProgress(quest, sequence);
if (_clientState.LocalPlayer != null && _clientState.LocalPlayer.Level < quest.Info.Level)
{
_logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", _clientState.LocalPlayer.Level, quest.Info.Level);
Stop("Quest level too high");
}
questProgress = _startedQuest;
}
else
{
_logger.LogInformation("New quest {QuestId} not found in registry", elementId);
}
}
}
}
else else
{ {
_questFunctions.GetCurrentQuest(AutomationType != EAutomationType.SingleQuestB).Deconstruct(out CurrentQuest, out Sequence, out State); _questFunctions.GetCurrentQuest(AutomationType != EAutomationType.SingleQuestB).Deconstruct(out ElementId CurrentQuest, out byte Sequence, out MainScenarioQuestState State);
ElementId elementId2 = CurrentQuest; ElementId elementId = CurrentQuest;
b = Sequence; b = Sequence;
MainScenarioQuestState mainScenarioQuestState = State; MainScenarioQuestState mainScenarioQuestState = State;
(ElementId, byte)? tuple3 = (from x in ManualPriorityQuests (ElementId, byte)? tuple = (from x in ManualPriorityQuests
where _questFunctions.IsReadyToAcceptQuest(x.Id) || _questFunctions.IsQuestAccepted(x.Id) where _questFunctions.IsReadyToAcceptQuest(x.Id) || _questFunctions.IsQuestAccepted(x.Id)
select (Id: x.Id, _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault(); select (Id: x.Id, _questFunctions.GetQuestProgressInfo(x.Id)?.Sequence ?? 0)).FirstOrDefault();
if (tuple3.HasValue) if (tuple.HasValue)
{ {
(ElementId, byte) valueOrDefault2 = tuple3.GetValueOrDefault(); (ElementId, byte) valueOrDefault = tuple.GetValueOrDefault();
if ((object)valueOrDefault2.Item1 != null) if ((object)valueOrDefault.Item1 != null)
{ {
(elementId2, b) = valueOrDefault2; (elementId, b) = valueOrDefault;
} }
} }
if (elementId2 == null || elementId2.Value == 0) if (elementId == null || elementId.Value == 0)
{ {
if (_startedQuest != null) if (_startedQuest != null)
{ {
@ -662,9 +585,9 @@ internal sealed class QuestController : MiniTaskController<QuestController>
} }
else else
{ {
if (_startedQuest == null || _startedQuest.Quest.Id != elementId2) if (_startedQuest == null || _startedQuest.Quest.Id != elementId)
{ {
Quest quest2; Quest quest;
if (_configuration.Stop.Enabled && _startedQuest != null && _configuration.Stop.QuestsToStopAfter.Contains(_startedQuest.Quest.Id) && _questFunctions.IsQuestComplete(_startedQuest.Quest.Id)) if (_configuration.Stop.Enabled && _startedQuest != null && _configuration.Stop.QuestsToStopAfter.Contains(_startedQuest.Quest.Id) && _questFunctions.IsQuestComplete(_startedQuest.Quest.Id))
{ {
ElementId id = _startedQuest.Quest.Id; ElementId id = _startedQuest.Quest.Id;
@ -673,13 +596,13 @@ internal sealed class QuestController : MiniTaskController<QuestController>
_startedQuest = null; _startedQuest = null;
Stop($"Stopping point [{id}] reached"); Stop($"Stopping point [{id}] reached");
} }
else if (_questRegistry.TryGetQuest(elementId2, out quest2)) else if (_questRegistry.TryGetQuest(elementId, out quest))
{ {
_logger.LogInformation("New quest: {QuestName}", quest2.Info.Name); _logger.LogInformation("New quest: {QuestName}", quest.Info.Name);
_startedQuest = new QuestProgress(quest2, b); _startedQuest = new QuestProgress(quest, b);
if (_clientState.LocalPlayer != null && _clientState.LocalPlayer.Level < quest2.Info.Level) if (_clientState.LocalPlayer != null && _clientState.LocalPlayer.Level < quest.Info.Level)
{ {
_logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", _clientState.LocalPlayer.Level, quest2.Info.Level); _logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", _clientState.LocalPlayer.Level, quest.Info.Level);
Stop("Quest level too high"); Stop("Quest level too high");
return; return;
} }
@ -704,10 +627,7 @@ internal sealed class QuestController : MiniTaskController<QuestController>
if (questProgress == null) if (questProgress == null)
{ {
DebugState = "No quest active"; DebugState = "No quest active";
if (!IsRunning) Stop("No quest active");
{
Stop("No quest active");
}
return; return;
} }
if (_gameFunctions.IsOccupied() && !_gameFunctions.IsOccupiedWithCustomDeliveryNpc(questProgress.Quest)) if (_gameFunctions.IsOccupied() && !_gameFunctions.IsOccupiedWithCustomDeliveryNpc(questProgress.Quest))
@ -913,13 +833,6 @@ internal sealed class QuestController : MiniTaskController<QuestController>
} }
} }
public void SetStartedQuest(Quest quest, byte sequence = 0)
{
_logger.LogInformation("Setting started quest: {QuestId}", quest.Id);
_startedQuest = new QuestProgress(quest, sequence);
_nextQuest = null;
}
public void SetGatheringQuest(Quest? quest) public void SetGatheringQuest(Quest? quest)
{ {
_logger.LogInformation("GatheringQuest: {QuestId}", quest?.Id); _logger.LogInformation("GatheringQuest: {QuestId}", quest?.Id);

View file

@ -41,63 +41,51 @@ internal sealed class AlliedSocietyDailyInfo : IQuestInfo
{ {
QuestId = new AlliedSocietyDailyId((byte)beastTribe.RowId, rank); QuestId = new AlliedSocietyDailyId((byte)beastTribe.RowId, rank);
Name = beastTribe.Name.ToString(); Name = beastTribe.Name.ToString();
IReadOnlyList<EClassJob> readOnlyList = null; List<EClassJob> list2;
try switch ((EAlliedSociety)(byte)beastTribe.RowId)
{ {
List<EClassJob> list2; case EAlliedSociety.Amaljaa:
switch ((EAlliedSociety)(byte)beastTribe.RowId) case EAlliedSociety.Sylphs:
{ case EAlliedSociety.Kobolds:
case EAlliedSociety.Amaljaa: case EAlliedSociety.Sahagin:
case EAlliedSociety.Sylphs: case EAlliedSociety.VanuVanu:
case EAlliedSociety.Kobolds: case EAlliedSociety.Vath:
case EAlliedSociety.Sahagin: case EAlliedSociety.Kojin:
case EAlliedSociety.VanuVanu: case EAlliedSociety.Ananta:
case EAlliedSociety.Vath: case EAlliedSociety.Pixies:
case EAlliedSociety.Kojin: case EAlliedSociety.Arkasodara:
case EAlliedSociety.Ananta: case EAlliedSociety.Pelupelu:
case EAlliedSociety.Pixies:
case EAlliedSociety.Arkasodara:
case EAlliedSociety.Pelupelu:
{
List<EClassJob> list3 = new List<EClassJob>();
list3.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoW, null));
list3.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoM, null));
list2 = list3;
break;
}
case EAlliedSociety.Ixal:
case EAlliedSociety.Moogles:
case EAlliedSociety.Dwarves:
case EAlliedSociety.Loporrits:
case EAlliedSociety.YokHuy:
list2 = classJobUtils.AsIndividualJobs(EExtendedClassJob.DoH, null).ToList();
break;
case EAlliedSociety.Qitari:
case EAlliedSociety.Omicrons:
case EAlliedSociety.MamoolJa:
list2 = classJobUtils.AsIndividualJobs(EExtendedClassJob.DoL, null).ToList();
break;
case EAlliedSociety.Namazu:
{
List<EClassJob> list = new List<EClassJob>();
list.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoH, null));
list.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoL, null));
list2 = list;
break;
}
default:
throw new ArgumentOutOfRangeException("beastTribe");
}
readOnlyList = list2;
}
catch (ArgumentOutOfRangeException)
{ {
List<EClassJob> list4 = new List<EClassJob>(); List<EClassJob> list3 = new List<EClassJob>();
list4.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoW, null)); list3.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoW, null));
list4.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoM, null)); list3.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoM, null));
readOnlyList = new _003C_003Ez__ReadOnlyList<EClassJob>(list4); list2 = list3;
break;
} }
ClassJobs = readOnlyList; case EAlliedSociety.Ixal:
case EAlliedSociety.Moogles:
case EAlliedSociety.Dwarves:
case EAlliedSociety.Loporrits:
case EAlliedSociety.YokHuy:
list2 = classJobUtils.AsIndividualJobs(EExtendedClassJob.DoH, null).ToList();
break;
case EAlliedSociety.Qitari:
case EAlliedSociety.Omicrons:
case EAlliedSociety.MamoolJa:
list2 = classJobUtils.AsIndividualJobs(EExtendedClassJob.DoL, null).ToList();
break;
case EAlliedSociety.Namazu:
{
List<EClassJob> list = new List<EClassJob>();
list.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoH, null));
list.AddRange(classJobUtils.AsIndividualJobs(EExtendedClassJob.DoL, null));
list2 = list;
break;
}
default:
throw new ArgumentOutOfRangeException("beastTribe");
}
ClassJobs = list2;
Expansion = (EExpansionVersion)beastTribe.Expansion.RowId; Expansion = (EExpansionVersion)beastTribe.Expansion.RowId;
} }
} }

View file

@ -311,6 +311,11 @@ internal sealed class QuestJournalComponent
goto IL_0210; goto IL_0210;
IL_0210: IL_0210:
ImGui.TableNextColumn(); ImGui.TableNextColumn();
if (_questFunctions.IsQuestAccepted(questInfo.QuestId))
{
_uiUtils.ChecklistItem("Active", ImGuiColors.DalamudYellow, FontAwesomeIcon.PersonWalkingArrowRight);
return;
}
if (_questFunctions.IsQuestComplete(questInfo.QuestId)) if (_questFunctions.IsQuestComplete(questInfo.QuestId))
{ {
if (questInfo.IsRepeatable && _questFunctions.IsReadyToAcceptQuest(questInfo.QuestId)) if (questInfo.IsRepeatable && _questFunctions.IsReadyToAcceptQuest(questInfo.QuestId))
@ -323,11 +328,6 @@ internal sealed class QuestJournalComponent
} }
return; return;
} }
if (_questFunctions.IsQuestAccepted(questInfo.QuestId))
{
_uiUtils.ChecklistItem("Active", ImGuiColors.DalamudYellow, FontAwesomeIcon.PersonWalkingArrowRight);
return;
}
bool flag = false; bool flag = false;
bool flag2 = _questFunctions.IsQuestUnobtainable(questInfo.QuestId); bool flag2 = _questFunctions.IsQuestUnobtainable(questInfo.QuestId);
bool flag3 = _questFunctions.IsQuestLocked(questInfo.QuestId); bool flag3 = _questFunctions.IsQuestLocked(questInfo.QuestId);

View file

@ -59,28 +59,12 @@ internal sealed class QuestJournalUtils
{ {
return; return;
} }
using (ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId) && !_questFunctions.IsQuestAccepted(questInfo.QuestId))) using (ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId)))
{ {
if (ImGui.MenuItem("Start as next quest")) if (ImGui.MenuItem("Start as next quest"))
{ {
if (quest == null) _questController.SetNextQuest(quest);
{ _questController.Start(label);
return;
}
if (_questFunctions.IsQuestAccepted(questInfo.QuestId))
{
QuestProgressInfo questProgressInfo = _questFunctions.GetQuestProgressInfo(questInfo.QuestId);
if (questProgressInfo != null)
{
_questController.SetStartedQuest(quest, questProgressInfo.Sequence);
_questController.Start(label);
}
}
else
{
_questController.SetNextQuest(quest);
_questController.Start(label);
}
} }
} }
List<ElementId> incompletePrerequisiteQuests = GetIncompletePrerequisiteQuests(questInfo); List<ElementId> incompletePrerequisiteQuests = GetIncompletePrerequisiteQuests(questInfo);

View file

@ -2,15 +2,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14 # Visual Studio 14
VisualStudioVersion = 14.0.24720.0 VisualStudioVersion = 14.0.24720.0
MinimumVisualStudioVersion = 10.0.40219.1 MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuestPaths", "QuestPaths\QuestPaths.csproj", "{03FCE305-0D27-4737-B9D3-355DA5A9DD82}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuestPaths", "QuestPaths\QuestPaths.csproj", "{442AB657-455F-42DD-BFDC-F9C034BAF528}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringPaths", "GatheringPaths\GatheringPaths.csproj", "{F24DD684-543A-45D0-814D-C6481D3B147C}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringPaths", "GatheringPaths\GatheringPaths.csproj", "{FE881E2D-713D-42BE-A023-2BC724BDFFEB}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable", "Questionable\Questionable.csproj", "{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable", "Questionable\Questionable.csproj", "{A5C50C48-5B13-4C67-AFED-E994669040CE}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable.Model", "Questionable.Model\Questionable.Model.csproj", "{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable.Model", "Questionable.Model\Questionable.Model.csproj", "{78C31351-CEAB-4D69-9A41-F159EEB4C449}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LLib", "LLib\LLib.csproj", "{18FF6CA8-A436-4FEC-B888-568A1D5511DA}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LLib", "LLib\LLib.csproj", "{8E90FF18-67CE-46D4-A05A-DAA903E04469}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -20,46 +20,46 @@ Global
Release|x64 = Release|x64 Release|x64 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU {442AB657-455F-42DD-BFDC-F9C034BAF528}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU
{03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Debug|AnyCPU.Build.0 = Debug|AnyCPU {442AB657-455F-42DD-BFDC-F9C034BAF528}.Debug|AnyCPU.Build.0 = Debug|AnyCPU
{03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Debug|x64.ActiveCfg = Debug|AnyCPU {442AB657-455F-42DD-BFDC-F9C034BAF528}.Debug|x64.ActiveCfg = Debug|AnyCPU
{03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Debug|x64.Build.0 = Debug|AnyCPU {442AB657-455F-42DD-BFDC-F9C034BAF528}.Debug|x64.Build.0 = Debug|AnyCPU
{03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Release|AnyCPU.ActiveCfg = Release|AnyCPU {442AB657-455F-42DD-BFDC-F9C034BAF528}.Release|AnyCPU.ActiveCfg = Release|AnyCPU
{03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Release|AnyCPU.Build.0 = Release|AnyCPU {442AB657-455F-42DD-BFDC-F9C034BAF528}.Release|AnyCPU.Build.0 = Release|AnyCPU
{03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Release|x64.ActiveCfg = Release|AnyCPU {442AB657-455F-42DD-BFDC-F9C034BAF528}.Release|x64.ActiveCfg = Release|AnyCPU
{03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Release|x64.Build.0 = Release|AnyCPU {442AB657-455F-42DD-BFDC-F9C034BAF528}.Release|x64.Build.0 = Release|AnyCPU
{F24DD684-543A-45D0-814D-C6481D3B147C}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU {FE881E2D-713D-42BE-A023-2BC724BDFFEB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU
{F24DD684-543A-45D0-814D-C6481D3B147C}.Debug|AnyCPU.Build.0 = Debug|AnyCPU {FE881E2D-713D-42BE-A023-2BC724BDFFEB}.Debug|AnyCPU.Build.0 = Debug|AnyCPU
{F24DD684-543A-45D0-814D-C6481D3B147C}.Debug|x64.ActiveCfg = Debug|AnyCPU {FE881E2D-713D-42BE-A023-2BC724BDFFEB}.Debug|x64.ActiveCfg = Debug|AnyCPU
{F24DD684-543A-45D0-814D-C6481D3B147C}.Debug|x64.Build.0 = Debug|AnyCPU {FE881E2D-713D-42BE-A023-2BC724BDFFEB}.Debug|x64.Build.0 = Debug|AnyCPU
{F24DD684-543A-45D0-814D-C6481D3B147C}.Release|AnyCPU.ActiveCfg = Release|AnyCPU {FE881E2D-713D-42BE-A023-2BC724BDFFEB}.Release|AnyCPU.ActiveCfg = Release|AnyCPU
{F24DD684-543A-45D0-814D-C6481D3B147C}.Release|AnyCPU.Build.0 = Release|AnyCPU {FE881E2D-713D-42BE-A023-2BC724BDFFEB}.Release|AnyCPU.Build.0 = Release|AnyCPU
{F24DD684-543A-45D0-814D-C6481D3B147C}.Release|x64.ActiveCfg = Release|AnyCPU {FE881E2D-713D-42BE-A023-2BC724BDFFEB}.Release|x64.ActiveCfg = Release|AnyCPU
{F24DD684-543A-45D0-814D-C6481D3B147C}.Release|x64.Build.0 = Release|AnyCPU {FE881E2D-713D-42BE-A023-2BC724BDFFEB}.Release|x64.Build.0 = Release|AnyCPU
{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Debug|AnyCPU.ActiveCfg = Debug|x64 {A5C50C48-5B13-4C67-AFED-E994669040CE}.Debug|AnyCPU.ActiveCfg = Debug|x64
{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Debug|AnyCPU.Build.0 = Debug|x64 {A5C50C48-5B13-4C67-AFED-E994669040CE}.Debug|AnyCPU.Build.0 = Debug|x64
{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Debug|x64.ActiveCfg = Debug|x64 {A5C50C48-5B13-4C67-AFED-E994669040CE}.Debug|x64.ActiveCfg = Debug|x64
{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Debug|x64.Build.0 = Debug|x64 {A5C50C48-5B13-4C67-AFED-E994669040CE}.Debug|x64.Build.0 = Debug|x64
{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Release|AnyCPU.ActiveCfg = Release|x64 {A5C50C48-5B13-4C67-AFED-E994669040CE}.Release|AnyCPU.ActiveCfg = Release|x64
{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Release|AnyCPU.Build.0 = Release|x64 {A5C50C48-5B13-4C67-AFED-E994669040CE}.Release|AnyCPU.Build.0 = Release|x64
{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Release|x64.ActiveCfg = Release|x64 {A5C50C48-5B13-4C67-AFED-E994669040CE}.Release|x64.ActiveCfg = Release|x64
{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Release|x64.Build.0 = Release|x64 {A5C50C48-5B13-4C67-AFED-E994669040CE}.Release|x64.Build.0 = Release|x64
{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU {78C31351-CEAB-4D69-9A41-F159EEB4C449}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU
{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Debug|AnyCPU.Build.0 = Debug|AnyCPU {78C31351-CEAB-4D69-9A41-F159EEB4C449}.Debug|AnyCPU.Build.0 = Debug|AnyCPU
{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Debug|x64.ActiveCfg = Debug|AnyCPU {78C31351-CEAB-4D69-9A41-F159EEB4C449}.Debug|x64.ActiveCfg = Debug|AnyCPU
{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Debug|x64.Build.0 = Debug|AnyCPU {78C31351-CEAB-4D69-9A41-F159EEB4C449}.Debug|x64.Build.0 = Debug|AnyCPU
{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Release|AnyCPU.ActiveCfg = Release|AnyCPU {78C31351-CEAB-4D69-9A41-F159EEB4C449}.Release|AnyCPU.ActiveCfg = Release|AnyCPU
{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Release|AnyCPU.Build.0 = Release|AnyCPU {78C31351-CEAB-4D69-9A41-F159EEB4C449}.Release|AnyCPU.Build.0 = Release|AnyCPU
{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Release|x64.ActiveCfg = Release|AnyCPU {78C31351-CEAB-4D69-9A41-F159EEB4C449}.Release|x64.ActiveCfg = Release|AnyCPU
{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Release|x64.Build.0 = Release|AnyCPU {78C31351-CEAB-4D69-9A41-F159EEB4C449}.Release|x64.Build.0 = Release|AnyCPU
{18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Debug|AnyCPU.ActiveCfg = Debug|x64 {8E90FF18-67CE-46D4-A05A-DAA903E04469}.Debug|AnyCPU.ActiveCfg = Debug|x64
{18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Debug|AnyCPU.Build.0 = Debug|x64 {8E90FF18-67CE-46D4-A05A-DAA903E04469}.Debug|AnyCPU.Build.0 = Debug|x64
{18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Debug|x64.ActiveCfg = Debug|x64 {8E90FF18-67CE-46D4-A05A-DAA903E04469}.Debug|x64.ActiveCfg = Debug|x64
{18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Debug|x64.Build.0 = Debug|x64 {8E90FF18-67CE-46D4-A05A-DAA903E04469}.Debug|x64.Build.0 = Debug|x64
{18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Release|AnyCPU.ActiveCfg = Release|x64 {8E90FF18-67CE-46D4-A05A-DAA903E04469}.Release|AnyCPU.ActiveCfg = Release|x64
{18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Release|AnyCPU.Build.0 = Release|x64 {8E90FF18-67CE-46D4-A05A-DAA903E04469}.Release|AnyCPU.Build.0 = Release|x64
{18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Release|x64.ActiveCfg = Release|x64 {8E90FF18-67CE-46D4-A05A-DAA903E04469}.Release|x64.ActiveCfg = Release|x64
{18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Release|x64.Build.0 = Release|x64 {8E90FF18-67CE-46D4-A05A-DAA903E04469}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE