muffin v6.17

This commit is contained in:
alydev 2025-10-09 11:54:16 +10:00
parent 13ade00f9c
commit 29d158137b
10 changed files with 1023 additions and 85 deletions

View file

@ -5,11 +5,11 @@ using System.Runtime.Versioning;
[assembly: AssemblyCompany("GatheringPaths")] [assembly: AssemblyCompany("GatheringPaths")]
[assembly: AssemblyConfiguration("Release")] [assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("6.16.0.0")] [assembly: AssemblyFileVersion("6.17.0.0")]
[assembly: AssemblyInformationalVersion("6.16+eb27d19d9ed2e79694570f1d4348f4620484aa2e")] [assembly: AssemblyInformationalVersion("6.17+b9ba6488a9a81b413bf6c1b207819a073543b5c0")]
[assembly: AssemblyProduct("GatheringPaths")] [assembly: AssemblyProduct("GatheringPaths")]
[assembly: AssemblyTitle("GatheringPaths")] [assembly: AssemblyTitle("GatheringPaths")]
[assembly: TargetPlatform("Windows7.0")] [assembly: TargetPlatform("Windows7.0")]
[assembly: SupportedOSPlatform("Windows7.0")] [assembly: SupportedOSPlatform("Windows7.0")]
[assembly: AssemblyVersion("6.16.0.0")] [assembly: AssemblyVersion("6.17.0.0")]
[module: RefSafetyRules(11)] [module: RefSafetyRules(11)]

View file

@ -7,12 +7,12 @@ using System.Security.Permissions;
[assembly: AssemblyCompany("LLib")] [assembly: AssemblyCompany("LLib")]
[assembly: AssemblyConfiguration("Release")] [assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("6.16.0.0")] [assembly: AssemblyFileVersion("6.17.0.0")]
[assembly: AssemblyInformationalVersion("6.16+5367edf45faba59401605531555000d1429966c1")] [assembly: AssemblyInformationalVersion("6.17+5367edf45faba59401605531555000d1429966c1")]
[assembly: AssemblyProduct("LLib")] [assembly: AssemblyProduct("LLib")]
[assembly: AssemblyTitle("LLib")] [assembly: AssemblyTitle("LLib")]
[assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/WigglyMuffin/LLib.git")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/WigglyMuffin/LLib.git")]
[assembly: TargetPlatform("Windows7.0")] [assembly: TargetPlatform("Windows7.0")]
[assembly: SupportedOSPlatform("Windows7.0")] [assembly: SupportedOSPlatform("Windows7.0")]
[assembly: AssemblyVersion("6.16.0.0")] [assembly: AssemblyVersion("6.17.0.0")]
[module: RefSafetyRules(11)] [module: RefSafetyRules(11)]

View file

@ -5,9 +5,9 @@ using System.Runtime.Versioning;
[assembly: AssemblyCompany("QuestPaths")] [assembly: AssemblyCompany("QuestPaths")]
[assembly: AssemblyConfiguration("Release")] [assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("6.16.0.0")] [assembly: AssemblyFileVersion("6.17.0.0")]
[assembly: AssemblyInformationalVersion("6.16+eb27d19d9ed2e79694570f1d4348f4620484aa2e")] [assembly: AssemblyInformationalVersion("6.17+b9ba6488a9a81b413bf6c1b207819a073543b5c0")]
[assembly: AssemblyProduct("QuestPaths")] [assembly: AssemblyProduct("QuestPaths")]
[assembly: AssemblyTitle("QuestPaths")] [assembly: AssemblyTitle("QuestPaths")]
[assembly: AssemblyVersion("6.16.0.0")] [assembly: AssemblyVersion("6.17.0.0")]
[module: RefSafetyRules(11)] [module: RefSafetyRules(11)]

View file

@ -461476,6 +461476,802 @@ public static class AssemblyQuestLoader
reference150 = obj131; reference150 = obj131;
questRoot23.QuestSequence = list192; questRoot23.QuestSequence = list192;
AddQuest(questId23, questRoot23); AddQuest(questId23, questRoot23);
QuestId questId24 = new QuestId(5331);
QuestRoot questRoot24 = new QuestRoot();
num = 1;
List<string> list199 = new List<string>(num);
CollectionsMarshal.SetCount(list199, num);
span = CollectionsMarshal.AsSpan(list199);
index = 0;
span[index] = "CryoTechnic";
questRoot24.Author = list199;
index = 6;
List<QuestSequence> list200 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list200, index);
span2 = CollectionsMarshal.AsSpan(list200);
num = 0;
ref QuestSequence reference151 = ref span2[num];
QuestSequence obj132 = new QuestSequence
{
Sequence = 0
};
index2 = 1;
List<QuestStep> list201 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list201, index2);
span3 = CollectionsMarshal.AsSpan(list201);
num2 = 0;
span3[num2] = new QuestStep(EInteractionType.AcceptQuest, 1054636u, new Vector3(506.70618f, 142.24991f, 800.2289f), 1187)
{
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
InSameTerritory = true
}
}
};
obj132.Steps = list201;
reference151 = obj132;
num++;
ref QuestSequence reference152 = ref span2[num];
QuestSequence obj133 = new QuestSequence
{
Sequence = 1
};
num2 = 2;
List<QuestStep> list202 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list202, num2);
span3 = CollectionsMarshal.AsSpan(list202);
index2 = 0;
ref QuestStep reference153 = ref span3[index2];
QuestStep obj134 = new QuestStep(EInteractionType.Interact, 1054640u, new Vector3(496.11658f, 142.24991f, 801.6022f), 1187)
{
TargetTerritoryId = (ushort)1297
};
SkipConditions skipConditions12 = new SkipConditions();
SkipStepConditions skipStepConditions11 = new SkipStepConditions();
index3 = 1;
List<ushort> list203 = new List<ushort>(index3);
CollectionsMarshal.SetCount(list203, index3);
span4 = CollectionsMarshal.AsSpan(list203);
num3 = 0;
span4[num3] = 1187;
skipStepConditions11.NotInTerritory = list203;
skipConditions12.StepIf = skipStepConditions11;
obj134.SkipConditions = skipConditions12;
reference153 = obj134;
index2++;
span3[index2] = new QuestStep(EInteractionType.Interact, 1054650u, new Vector3(16.983276f, 0.4f, 145.09802f), 1297);
obj133.Steps = list202;
reference152 = obj133;
num++;
ref QuestSequence reference154 = ref span2[num];
QuestSequence obj135 = new QuestSequence
{
Sequence = 2
};
index2 = 1;
List<QuestStep> list204 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list204, index2);
span3 = CollectionsMarshal.AsSpan(list204);
num2 = 0;
span3[num2] = new QuestStep(EInteractionType.Emote, 1054651u, new Vector3(22.537537f, 0.4f, 146.68494f), 1297)
{
Emote = EEmote.Soothe
};
obj135.Steps = list204;
reference154 = obj135;
num++;
ref QuestSequence reference155 = ref span2[num];
QuestSequence obj136 = new QuestSequence
{
Sequence = 3
};
num2 = 1;
List<QuestStep> list205 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list205, num2);
span3 = CollectionsMarshal.AsSpan(list205);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.Interact, 1054652u, new Vector3(403.79956f, 122.535f, 590.0206f), 1187)
{
Fly = true,
Land = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
InSameTerritory = true
}
}
};
obj136.Steps = list205;
reference155 = obj136;
num++;
ref QuestSequence reference156 = ref span2[num];
QuestSequence obj137 = new QuestSequence
{
Sequence = 4
};
index2 = 2;
List<QuestStep> list206 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list206, index2);
span3 = CollectionsMarshal.AsSpan(list206);
num2 = 0;
span3[num2] = new QuestStep(EInteractionType.Craft, null, null, 1187)
{
ItemId = 46200u,
ItemCount = 1
};
num2++;
span3[num2] = new QuestStep(EInteractionType.Interact, 1054652u, new Vector3(403.79956f, 122.535f, 590.0206f), 1187);
obj137.Steps = list206;
reference156 = obj137;
num++;
ref QuestSequence reference157 = ref span2[num];
QuestSequence obj138 = new QuestSequence
{
Sequence = byte.MaxValue
};
num2 = 1;
List<QuestStep> list207 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list207, num2);
span3 = CollectionsMarshal.AsSpan(list207);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.CompleteQuest, 1054636u, new Vector3(506.70618f, 142.24991f, 800.2289f), 1187)
{
Fly = true,
Land = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho,
SkipConditions = new SkipConditions
{
AetheryteShortcutIf = new SkipAetheryteCondition
{
NearPosition = new NearPositionCondition
{
Position = new Vector3(503.1118f, 142.24991f, 787.5082f),
MaximumDistance = 500f,
TerritoryId = 1187
}
}
}
};
obj138.Steps = list207;
reference157 = obj138;
questRoot24.QuestSequence = list200;
AddQuest(questId24, questRoot24);
QuestId questId25 = new QuestId(5338);
QuestRoot questRoot25 = new QuestRoot();
num = 1;
List<string> list208 = new List<string>(num);
CollectionsMarshal.SetCount(list208, num);
span = CollectionsMarshal.AsSpan(list208);
index = 0;
span[index] = "CryoTechnic";
questRoot25.Author = list208;
index = 4;
List<QuestSequence> list209 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list209, index);
span2 = CollectionsMarshal.AsSpan(list209);
num = 0;
ref QuestSequence reference158 = ref span2[num];
QuestSequence obj139 = new QuestSequence
{
Sequence = 0
};
index2 = 1;
List<QuestStep> list210 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list210, index2);
span3 = CollectionsMarshal.AsSpan(list210);
num2 = 0;
span3[num2] = 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
}
}
};
obj139.Steps = list210;
reference158 = obj139;
num++;
ref QuestSequence reference159 = ref span2[num];
QuestSequence obj140 = new QuestSequence
{
Sequence = 1
};
num2 = 1;
List<QuestStep> list211 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list211, num2);
span3 = CollectionsMarshal.AsSpan(list211);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.Interact, 1055817u, new Vector3(458.15198f, 114.935f, 657.3739f), 1187)
{
Fly = true,
Land = true
};
obj140.Steps = list211;
reference159 = obj140;
num++;
ref QuestSequence reference160 = ref span2[num];
QuestSequence obj141 = new QuestSequence
{
Sequence = 2
};
index2 = 2;
List<QuestStep> list212 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list212, index2);
span3 = CollectionsMarshal.AsSpan(list212);
num2 = 0;
span3[num2] = new QuestStep(EInteractionType.Craft, null, null, 959)
{
ItemId = 46212u,
ItemCount = 3
};
num2++;
span3[num2] = new QuestStep(EInteractionType.Interact, 1055817u, new Vector3(458.15198f, 114.935f, 657.3739f), 1187);
obj141.Steps = list212;
reference160 = obj141;
num++;
ref QuestSequence reference161 = ref span2[num];
QuestSequence obj142 = new QuestSequence
{
Sequence = byte.MaxValue
};
num2 = 1;
List<QuestStep> list213 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list213, num2);
span3 = CollectionsMarshal.AsSpan(list213);
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
};
obj142.Steps = list213;
reference161 = obj142;
questRoot25.QuestSequence = list209;
AddQuest(questId25, questRoot25);
QuestId questId26 = new QuestId(5339);
QuestRoot questRoot26 = new QuestRoot();
num = 1;
List<string> list214 = new List<string>(num);
CollectionsMarshal.SetCount(list214, num);
span = CollectionsMarshal.AsSpan(list214);
index = 0;
span[index] = "CryoTechnic";
questRoot26.Author = list214;
index = 3;
List<QuestSequence> list215 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list215, index);
span2 = CollectionsMarshal.AsSpan(list215);
num = 0;
ref QuestSequence reference162 = ref span2[num];
QuestSequence obj143 = new QuestSequence
{
Sequence = 0
};
index2 = 1;
List<QuestStep> list216 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list216, index2);
span3 = CollectionsMarshal.AsSpan(list216);
num2 = 0;
span3[num2] = 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
}
}
};
obj143.Steps = list216;
reference162 = obj143;
num++;
ref QuestSequence reference163 = ref span2[num];
QuestSequence obj144 = new QuestSequence
{
Sequence = 1
};
num2 = 3;
List<QuestStep> list217 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list217, num2);
span3 = CollectionsMarshal.AsSpan(list217);
index2 = 0;
ref QuestStep reference164 = ref span3[index2];
QuestStep obj145 = 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,
Land = true
};
index3 = 6;
List<List<QuestWorkValue>> list220 = new List<List<QuestWorkValue>>(index3);
CollectionsMarshal.SetCount(list220, index3);
span8 = CollectionsMarshal.AsSpan(list220);
num3 = 0;
span8[num3] = null;
num3++;
ref List<QuestWorkValue> reference167 = ref span8[num3];
index4 = 1;
List<QuestWorkValue> list221 = new List<QuestWorkValue>(index4);
CollectionsMarshal.SetCount(list221, index4);
span7 = CollectionsMarshal.AsSpan(list221);
num4 = 0;
span7[num4] = new QuestWorkValue(null, (byte)1, EQuestWorkMode.Bitwise);
reference167 = list221;
num3++;
span8[num3] = null;
num3++;
span8[num3] = null;
num3++;
span8[num3] = null;
num3++;
span8[num3] = null;
obj146.RequiredQuestVariables = list220;
reference166 = obj146;
index2++;
ref QuestStep reference168 = ref span3[index2];
QuestStep obj147 = new QuestStep(EInteractionType.Interact, 1055820u, new Vector3(379.50696f, 78.73412f, 440.63464f), 1187)
{
Fly = true,
Land = true
};
num3 = 6;
List<List<QuestWorkValue>> list222 = new List<List<QuestWorkValue>>(num3);
CollectionsMarshal.SetCount(list222, num3);
span8 = CollectionsMarshal.AsSpan(list222);
index3 = 0;
span8[index3] = null;
index3++;
ref List<QuestWorkValue> reference169 = ref span8[index3];
num4 = 1;
List<QuestWorkValue> list223 = new List<QuestWorkValue>(num4);
CollectionsMarshal.SetCount(list223, num4);
span7 = CollectionsMarshal.AsSpan(list223);
index4 = 0;
span7[index4] = new QuestWorkValue(null, (byte)2, EQuestWorkMode.Bitwise);
reference169 = list223;
index3++;
span8[index3] = null;
index3++;
span8[index3] = null;
index3++;
span8[index3] = null;
index3++;
span8[index3] = null;
obj147.RequiredQuestVariables = list222;
reference168 = obj147;
obj144.Steps = list217;
reference163 = obj144;
num++;
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,
Land = true,
AetheryteShortcut = EAetheryteLocation.UrqopachaWorlarsEcho
};
obj148.Steps = list224;
reference170 = obj148;
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);
span4 = CollectionsMarshal.AsSpan(list229);
num3 = 0;
span4[num3] = 1187;
skipStepConditions12.NotInTerritory = list229;
skipConditions13.StepIf = skipStepConditions12;
obj151.SkipConditions = skipConditions13;
reference173 = obj151;
num2++;
span3[num2] = new QuestStep(EInteractionType.WalkTo, null, new Vector3(52.610603f, 0f, 68.19062f), 1297)
{
Fly = false
};
num2++;
span3[num2] = new QuestStep(EInteractionType.Interact, 1055802u, new Vector3(74.75391f, 1.8866259f, 50.369995f), 1297);
obj150.Steps = list228;
reference172 = obj150;
num++;
ref QuestSequence reference174 = ref span2[num];
QuestSequence obj152 = new QuestSequence
{
Sequence = 2
};
num2 = 4;
List<QuestStep> list230 = new List<QuestStep>(num2);
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++;
ref QuestSequence reference175 = ref span2[num];
QuestSequence obj153 = new QuestSequence
{
Sequence = byte.MaxValue
};
index2 = 1;
List<QuestStep> list231 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list231, index2);
span3 = CollectionsMarshal.AsSpan(list231);
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
}
}
};
obj153.Steps = list231;
reference175 = obj153;
questRoot27.QuestSequence = list226;
AddQuest(questId27, questRoot27);
QuestId questId28 = new QuestId(5341);
QuestRoot questRoot28 = new QuestRoot();
num = 1;
List<string> list232 = new List<string>(num);
CollectionsMarshal.SetCount(list232, num);
span = CollectionsMarshal.AsSpan(list232);
index = 0;
span[index] = "CryoTechnic";
questRoot28.Author = list232;
index = 4;
List<QuestSequence> list233 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list233, index);
span2 = CollectionsMarshal.AsSpan(list233);
num = 0;
ref QuestSequence reference176 = ref span2[num];
QuestSequence obj154 = new QuestSequence
{
Sequence = 0
};
num2 = 1;
List<QuestStep> list234 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list234, num2);
span3 = CollectionsMarshal.AsSpan(list234);
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
}
}
};
obj154.Steps = list234;
reference176 = obj154;
num++;
ref QuestSequence reference177 = ref span2[num];
QuestSequence obj155 = new QuestSequence
{
Sequence = 1
};
index2 = 4;
List<QuestStep> list235 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list235, index2);
span3 = CollectionsMarshal.AsSpan(list235);
num2 = 0;
ref QuestStep reference178 = ref span3[num2];
QuestStep obj156 = new QuestStep(EInteractionType.Interact, 1054640u, new Vector3(496.11658f, 142.24991f, 801.6022f), 1187)
{
TargetTerritoryId = (ushort)1297
};
SkipConditions skipConditions14 = new SkipConditions();
SkipStepConditions skipStepConditions13 = new SkipStepConditions();
num3 = 1;
List<ushort> list236 = new List<ushort>(num3);
CollectionsMarshal.SetCount(list236, num3);
span4 = CollectionsMarshal.AsSpan(list236);
index3 = 0;
span4[index3] = 1187;
skipStepConditions13.NotInTerritory = list236;
skipConditions14.StepIf = skipStepConditions13;
obj156.SkipConditions = skipConditions14;
reference178 = obj156;
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);
obj155.Steps = list235;
reference177 = obj155;
num++;
ref QuestSequence reference179 = ref span2[num];
QuestSequence obj157 = new QuestSequence
{
Sequence = 2
};
num2 = 2;
List<QuestStep> list237 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list237, num2);
span3 = CollectionsMarshal.AsSpan(list237);
index2 = 0;
span3[index2] = new QuestStep(EInteractionType.Craft, null, null, 1297)
{
ItemId = 46216u,
ItemCount = 3
};
index2++;
span3[index2] = new QuestStep(EInteractionType.Interact, 1055821u, new Vector3(88.97534f, 3.3723087f, 75.791504f), 1297);
obj157.Steps = list237;
reference179 = obj157;
num++;
ref QuestSequence reference180 = ref span2[num];
QuestSequence obj158 = new QuestSequence
{
Sequence = byte.MaxValue
};
index2 = 1;
List<QuestStep> list238 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list238, index2);
span3 = CollectionsMarshal.AsSpan(list238);
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
}
}
};
obj158.Steps = list238;
reference180 = obj158;
questRoot28.QuestSequence = list233;
AddQuest(questId28, questRoot28);
QuestId questId29 = new QuestId(5342);
QuestRoot questRoot29 = new QuestRoot();
num = 1;
List<string> list239 = new List<string>(num);
CollectionsMarshal.SetCount(list239, num);
span = CollectionsMarshal.AsSpan(list239);
index = 0;
span[index] = "CryoTechnic";
questRoot29.Author = list239;
index = 4;
List<QuestSequence> list240 = new List<QuestSequence>(index);
CollectionsMarshal.SetCount(list240, index);
span2 = CollectionsMarshal.AsSpan(list240);
num = 0;
ref QuestSequence reference181 = ref span2[num];
QuestSequence obj159 = new QuestSequence
{
Sequence = 0
};
num2 = 1;
List<QuestStep> list241 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list241, num2);
span3 = CollectionsMarshal.AsSpan(list241);
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
}
}
};
obj159.Steps = list241;
reference181 = obj159;
num++;
ref QuestSequence reference182 = ref span2[num];
QuestSequence obj160 = new QuestSequence
{
Sequence = 1
};
index2 = 1;
List<QuestStep> list242 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list242, index2);
span3 = CollectionsMarshal.AsSpan(list242);
num2 = 0;
ref QuestStep reference183 = ref span3[num2];
QuestStep obj161 = new QuestStep(EInteractionType.Interact, 1054676u, new Vector3(500.93835f, 142.24991f, 782.22314f), 1187)
{
TargetTerritoryId = (ushort)1297
};
SkipConditions skipConditions15 = new SkipConditions();
SkipStepConditions skipStepConditions14 = new SkipStepConditions();
index3 = 1;
List<ushort> list243 = new List<ushort>(index3);
CollectionsMarshal.SetCount(list243, index3);
span4 = CollectionsMarshal.AsSpan(list243);
num3 = 0;
span4[num3] = 1187;
skipStepConditions14.NotInTerritory = list243;
skipConditions15.StepIf = skipStepConditions14;
obj161.SkipConditions = skipConditions15;
reference183 = obj161;
obj160.Steps = list242;
reference182 = obj160;
num++;
ref QuestSequence reference184 = ref span2[num];
QuestSequence obj162 = new QuestSequence
{
Sequence = 2
};
num2 = 2;
List<QuestStep> list244 = new List<QuestStep>(num2);
CollectionsMarshal.SetCount(list244, num2);
span3 = CollectionsMarshal.AsSpan(list244);
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
};
obj162.Steps = list244;
reference184 = obj162;
num++;
ref QuestSequence reference185 = ref span2[num];
QuestSequence obj163 = new QuestSequence
{
Sequence = byte.MaxValue
};
index2 = 1;
List<QuestStep> list245 = new List<QuestStep>(index2);
CollectionsMarshal.SetCount(list245, index2);
span3 = CollectionsMarshal.AsSpan(list245);
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
}
}
};
obj163.Steps = list245;
reference185 = obj163;
questRoot29.QuestSequence = list240;
AddQuest(questId29, questRoot29);
} }
private static void LoadQuests107() private static void LoadQuests107()

View file

@ -5,9 +5,9 @@ using System.Runtime.Versioning;
[assembly: AssemblyCompany("Questionable.Model")] [assembly: AssemblyCompany("Questionable.Model")]
[assembly: AssemblyConfiguration("Release")] [assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("6.16.0.0")] [assembly: AssemblyFileVersion("6.17.0.0")]
[assembly: AssemblyInformationalVersion("6.16+eb27d19d9ed2e79694570f1d4348f4620484aa2e")] [assembly: AssemblyInformationalVersion("6.17+b9ba6488a9a81b413bf6c1b207819a073543b5c0")]
[assembly: AssemblyProduct("Questionable.Model")] [assembly: AssemblyProduct("Questionable.Model")]
[assembly: AssemblyTitle("Questionable.Model")] [assembly: AssemblyTitle("Questionable.Model")]
[assembly: AssemblyVersion("6.16.0.0")] [assembly: AssemblyVersion("6.17.0.0")]
[module: RefSafetyRules(11)] [module: RefSafetyRules(11)]

View file

@ -7,12 +7,12 @@ using System.Security.Permissions;
[assembly: AssemblyCompany("Questionable")] [assembly: AssemblyCompany("Questionable")]
[assembly: AssemblyConfiguration("Release")] [assembly: AssemblyConfiguration("Release")]
[assembly: AssemblyFileVersion("6.16.0.0")] [assembly: AssemblyFileVersion("6.17.0.0")]
[assembly: AssemblyInformationalVersion("6.16+eb27d19d9ed2e79694570f1d4348f4620484aa2e")] [assembly: AssemblyInformationalVersion("6.17+b9ba6488a9a81b413bf6c1b207819a073543b5c0")]
[assembly: AssemblyProduct("Questionable")] [assembly: AssemblyProduct("Questionable")]
[assembly: AssemblyTitle("Questionable")] [assembly: AssemblyTitle("Questionable")]
[assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/WigglyMuffin/Ambivalence")] [assembly: AssemblyMetadata("RepositoryUrl", "https://github.com/WigglyMuffin/Ambivalence")]
[assembly: TargetPlatform("Windows7.0")] [assembly: TargetPlatform("Windows7.0")]
[assembly: SupportedOSPlatform("Windows7.0")] [assembly: SupportedOSPlatform("Windows7.0")]
[assembly: AssemblyVersion("6.16.0.0")] [assembly: AssemblyVersion("6.17.0.0")]
[module: RefSafetyRules(11)] [module: RefSafetyRules(11)]

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,6 +511,20 @@ 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);
@ -519,11 +533,27 @@ 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;
@ -547,24 +577,71 @@ internal sealed class QuestController : MiniTaskController<QuestController>
ExecuteNextStep(); ExecuteNextStep();
} }
} }
else else if (_startedQuest != null)
{ {
_questFunctions.GetCurrentQuest(AutomationType != EAutomationType.SingleQuestB).Deconstruct(out ElementId CurrentQuest, out byte Sequence, out MainScenarioQuestState State); questProgress = _startedQuest;
ElementId elementId = CurrentQuest; b = _startedQuest.Sequence;
b = Sequence; QuestProgressInfo questProgressInfo2 = _questFunctions.GetQuestProgressInfo(_startedQuest.Quest.Id);
MainScenarioQuestState mainScenarioQuestState = State; if (questProgressInfo2 != null && questProgressInfo2.Sequence != b)
(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(); _logger.LogInformation("Updating started quest sequence from {OldSequence} to {NewSequence}", b, questProgressInfo2.Sequence);
if ((object)valueOrDefault.Item1 != null) 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, b) = valueOrDefault; (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);
}
} }
} }
if (elementId == null || elementId.Value == 0) }
else
{
_questFunctions.GetCurrentQuest(AutomationType != EAutomationType.SingleQuestB).Deconstruct(out CurrentQuest, out Sequence, out State);
ElementId elementId2 = CurrentQuest;
b = Sequence;
MainScenarioQuestState mainScenarioQuestState = State;
(ElementId, byte)? tuple3 = (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 (tuple3.HasValue)
{
(ElementId, byte) valueOrDefault2 = tuple3.GetValueOrDefault();
if ((object)valueOrDefault2.Item1 != null)
{
(elementId2, b) = valueOrDefault2;
}
}
if (elementId2 == null || elementId2.Value == 0)
{ {
if (_startedQuest != null) if (_startedQuest != null)
{ {
@ -585,9 +662,9 @@ internal sealed class QuestController : MiniTaskController<QuestController>
} }
else else
{ {
if (_startedQuest == null || _startedQuest.Quest.Id != elementId) if (_startedQuest == null || _startedQuest.Quest.Id != elementId2)
{ {
Quest quest; Quest quest2;
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;
@ -596,13 +673,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(elementId, out quest)) else if (_questRegistry.TryGetQuest(elementId2, out quest2))
{ {
_logger.LogInformation("New quest: {QuestName}", quest.Info.Name); _logger.LogInformation("New quest: {QuestName}", quest2.Info.Name);
_startedQuest = new QuestProgress(quest, b); _startedQuest = new QuestProgress(quest2, b);
if (_clientState.LocalPlayer != null && _clientState.LocalPlayer.Level < quest.Info.Level) if (_clientState.LocalPlayer != null && _clientState.LocalPlayer.Level < quest2.Info.Level)
{ {
_logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", _clientState.LocalPlayer.Level, quest.Info.Level); _logger.LogInformation("Stopping automation, player level ({PlayerLevel}) < quest level ({QuestLevel}", _clientState.LocalPlayer.Level, quest2.Info.Level);
Stop("Quest level too high"); Stop("Quest level too high");
return; return;
} }
@ -627,7 +704,10 @@ internal sealed class QuestController : MiniTaskController<QuestController>
if (questProgress == null) if (questProgress == null)
{ {
DebugState = "No quest active"; DebugState = "No quest active";
Stop("No quest active"); if (!IsRunning)
{
Stop("No quest active");
}
return; return;
} }
if (_gameFunctions.IsOccupied() && !_gameFunctions.IsOccupiedWithCustomDeliveryNpc(questProgress.Quest)) if (_gameFunctions.IsOccupied() && !_gameFunctions.IsOccupiedWithCustomDeliveryNpc(questProgress.Quest))
@ -833,6 +913,13 @@ 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

@ -192,6 +192,41 @@ internal sealed class AlliedSocietyData
case 5287: case 5287:
case 5288: case 5288:
return EAlliedSociety.MamoolJa; return EAlliedSociety.MamoolJa;
case 5330:
case 5331:
case 5332:
case 5333:
case 5334:
case 5335:
case 5336:
case 5337:
case 5338:
case 5339:
case 5340:
case 5341:
case 5342:
case 5343:
case 5344:
case 5345:
case 5346:
case 5347:
case 5348:
case 5349:
case 5350:
case 5351:
case 5352:
case 5353:
case 5354:
case 5355:
case 5356:
case 5357:
case 5358:
case 5359:
case 5360:
case 5361:
case 5362:
case 5363:
return EAlliedSociety.YokHuy;
default: default:
return EAlliedSociety.None; return EAlliedSociety.None;
} }
@ -215,6 +250,10 @@ internal sealed class AlliedSocietyData
normalNpcs = Array.Empty<uint>(); normalNpcs = Array.Empty<uint>();
mountNpcs = new uint[3] { 1017322u, 1017470u, 1017471u }; mountNpcs = new uint[3] { 1017322u, 1017470u, 1017471u };
break; break;
case EAlliedSociety.YokHuy:
normalNpcs = new uint[1] { 1054635u };
mountNpcs = Array.Empty<uint>();
break;
default: default:
normalNpcs = Array.Empty<uint>(); normalNpcs = Array.Empty<uint>();
mountNpcs = Array.Empty<uint>(); mountNpcs = Array.Empty<uint>();

View file

@ -59,12 +59,28 @@ internal sealed class QuestJournalUtils
{ {
return; return;
} }
using (ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId))) using (ImRaii.Disabled(!_questFunctions.IsReadyToAcceptQuest(questInfo.QuestId) && !_questFunctions.IsQuestAccepted(questInfo.QuestId)))
{ {
if (ImGui.MenuItem("Start as next quest")) if (ImGui.MenuItem("Start as next quest"))
{ {
_questController.SetNextQuest(quest); if (quest == null)
_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", "{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "QuestPaths", "QuestPaths\QuestPaths.csproj", "{03FCE305-0D27-4737-B9D3-355DA5A9DD82}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringPaths", "GatheringPaths\GatheringPaths.csproj", "{D96B8F86-366E-4B48-B4A9-13862BB089D6}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GatheringPaths", "GatheringPaths\GatheringPaths.csproj", "{F24DD684-543A-45D0-814D-C6481D3B147C}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable", "Questionable\Questionable.csproj", "{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable", "Questionable\Questionable.csproj", "{E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable.Model", "Questionable.Model\Questionable.Model.csproj", "{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Questionable.Model", "Questionable.Model\Questionable.Model.csproj", "{2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LLib", "LLib\LLib.csproj", "{07D8F685-A86D-47EB-82C9-51647E338452}" Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LLib", "LLib\LLib.csproj", "{18FF6CA8-A436-4FEC-B888-568A1D5511DA}"
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
{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU {03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU
{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Debug|AnyCPU.Build.0 = Debug|AnyCPU {03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Debug|AnyCPU.Build.0 = Debug|AnyCPU
{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Debug|x64.ActiveCfg = Debug|AnyCPU {03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Debug|x64.ActiveCfg = Debug|AnyCPU
{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Debug|x64.Build.0 = Debug|AnyCPU {03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Debug|x64.Build.0 = Debug|AnyCPU
{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Release|AnyCPU.ActiveCfg = Release|AnyCPU {03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Release|AnyCPU.ActiveCfg = Release|AnyCPU
{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Release|AnyCPU.Build.0 = Release|AnyCPU {03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Release|AnyCPU.Build.0 = Release|AnyCPU
{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Release|x64.ActiveCfg = Release|AnyCPU {03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Release|x64.ActiveCfg = Release|AnyCPU
{FEE8D61C-6244-4D60-98C6-A38B62E87FBF}.Release|x64.Build.0 = Release|AnyCPU {03FCE305-0D27-4737-B9D3-355DA5A9DD82}.Release|x64.Build.0 = Release|AnyCPU
{D96B8F86-366E-4B48-B4A9-13862BB089D6}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU {F24DD684-543A-45D0-814D-C6481D3B147C}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU
{D96B8F86-366E-4B48-B4A9-13862BB089D6}.Debug|AnyCPU.Build.0 = Debug|AnyCPU {F24DD684-543A-45D0-814D-C6481D3B147C}.Debug|AnyCPU.Build.0 = Debug|AnyCPU
{D96B8F86-366E-4B48-B4A9-13862BB089D6}.Debug|x64.ActiveCfg = Debug|AnyCPU {F24DD684-543A-45D0-814D-C6481D3B147C}.Debug|x64.ActiveCfg = Debug|AnyCPU
{D96B8F86-366E-4B48-B4A9-13862BB089D6}.Debug|x64.Build.0 = Debug|AnyCPU {F24DD684-543A-45D0-814D-C6481D3B147C}.Debug|x64.Build.0 = Debug|AnyCPU
{D96B8F86-366E-4B48-B4A9-13862BB089D6}.Release|AnyCPU.ActiveCfg = Release|AnyCPU {F24DD684-543A-45D0-814D-C6481D3B147C}.Release|AnyCPU.ActiveCfg = Release|AnyCPU
{D96B8F86-366E-4B48-B4A9-13862BB089D6}.Release|AnyCPU.Build.0 = Release|AnyCPU {F24DD684-543A-45D0-814D-C6481D3B147C}.Release|AnyCPU.Build.0 = Release|AnyCPU
{D96B8F86-366E-4B48-B4A9-13862BB089D6}.Release|x64.ActiveCfg = Release|AnyCPU {F24DD684-543A-45D0-814D-C6481D3B147C}.Release|x64.ActiveCfg = Release|AnyCPU
{D96B8F86-366E-4B48-B4A9-13862BB089D6}.Release|x64.Build.0 = Release|AnyCPU {F24DD684-543A-45D0-814D-C6481D3B147C}.Release|x64.Build.0 = Release|AnyCPU
{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Debug|AnyCPU.ActiveCfg = Debug|x64 {E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Debug|AnyCPU.ActiveCfg = Debug|x64
{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Debug|AnyCPU.Build.0 = Debug|x64 {E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Debug|AnyCPU.Build.0 = Debug|x64
{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Debug|x64.ActiveCfg = Debug|x64 {E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Debug|x64.ActiveCfg = Debug|x64
{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Debug|x64.Build.0 = Debug|x64 {E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Debug|x64.Build.0 = Debug|x64
{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Release|AnyCPU.ActiveCfg = Release|x64 {E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Release|AnyCPU.ActiveCfg = Release|x64
{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Release|AnyCPU.Build.0 = Release|x64 {E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Release|AnyCPU.Build.0 = Release|x64
{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Release|x64.ActiveCfg = Release|x64 {E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Release|x64.ActiveCfg = Release|x64
{DC9E5480-EDC8-46CC-9D1A-5B4A93636AB6}.Release|x64.Build.0 = Release|x64 {E1581BFD-DBED-414A-B6D9-BDAD3B0FB450}.Release|x64.Build.0 = Release|x64
{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU {2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU
{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Debug|AnyCPU.Build.0 = Debug|AnyCPU {2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Debug|AnyCPU.Build.0 = Debug|AnyCPU
{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Debug|x64.ActiveCfg = Debug|AnyCPU {2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Debug|x64.ActiveCfg = Debug|AnyCPU
{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Debug|x64.Build.0 = Debug|AnyCPU {2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Debug|x64.Build.0 = Debug|AnyCPU
{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Release|AnyCPU.ActiveCfg = Release|AnyCPU {2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Release|AnyCPU.ActiveCfg = Release|AnyCPU
{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Release|AnyCPU.Build.0 = Release|AnyCPU {2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Release|AnyCPU.Build.0 = Release|AnyCPU
{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Release|x64.ActiveCfg = Release|AnyCPU {2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Release|x64.ActiveCfg = Release|AnyCPU
{165BDD4B-772A-4F0C-B11B-0E46EAE13C9B}.Release|x64.Build.0 = Release|AnyCPU {2F1ABB12-17D6-4FF8-A6FA-F757C9E89A04}.Release|x64.Build.0 = Release|AnyCPU
{07D8F685-A86D-47EB-82C9-51647E338452}.Debug|AnyCPU.ActiveCfg = Debug|x64 {18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Debug|AnyCPU.ActiveCfg = Debug|x64
{07D8F685-A86D-47EB-82C9-51647E338452}.Debug|AnyCPU.Build.0 = Debug|x64 {18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Debug|AnyCPU.Build.0 = Debug|x64
{07D8F685-A86D-47EB-82C9-51647E338452}.Debug|x64.ActiveCfg = Debug|x64 {18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Debug|x64.ActiveCfg = Debug|x64
{07D8F685-A86D-47EB-82C9-51647E338452}.Debug|x64.Build.0 = Debug|x64 {18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Debug|x64.Build.0 = Debug|x64
{07D8F685-A86D-47EB-82C9-51647E338452}.Release|AnyCPU.ActiveCfg = Release|x64 {18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Release|AnyCPU.ActiveCfg = Release|x64
{07D8F685-A86D-47EB-82C9-51647E338452}.Release|AnyCPU.Build.0 = Release|x64 {18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Release|AnyCPU.Build.0 = Release|x64
{07D8F685-A86D-47EB-82C9-51647E338452}.Release|x64.ActiveCfg = Release|x64 {18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Release|x64.ActiveCfg = Release|x64
{07D8F685-A86D-47EB-82C9-51647E338452}.Release|x64.Build.0 = Release|x64 {18FF6CA8-A436-4FEC-B888-568A1D5511DA}.Release|x64.Build.0 = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE