Když už se mi to včera tak nepovedlo, tak jsem před dalším natáčením videa využil příležitosti a probral jsem se těmi úpravami krok po kroku. Je to vskutku zajímavé, protože nyní jsem schopný editovat mnohem více věcí ve hře, respektive trošku jsem pronikl do toho, jak jsou některé věci ve hře realizovány

To je docela zajímavé z pohledu možného modování.
Nicméně nyní vím, jaká je souvislost mezi daným ulc modulem a konkrétní částí hry. Nedokázal jsem zatím akorát rozklíčovat jeden trigger. Tohle je zrovna pasáž, kde se s Hexasonicem v úpravě lišíme (ostatní máme kupodivu stejně). Podle mě to skutečně není nutné upravovat komplet, ale ten trigger má něco do činění s povyšovacími úkoly, takže nejprve bych rád prošel celou hru s tou mou verzí a budu to řešit až ve chvíli, kdy nastane nějaký problém.
Každopádně kdo má přístup k Steam verzi, tak mi prosím pošlete Steam verzi knihovny Legacy.Core.dll. Nyní jsem schopný provést změny bez ohledu na testování a jsem dokonce schopný udělat identickou úpravu s Hexasonicem i bez jeho patche

Ono na tom opravdu nic není, jenom je to o zvyk (dnSpy je hodně přehledný). Nakonec se snad ještě začnu C# věnovat více

Jinak pokud jde o ty souvislosti ...
V rámci Legacy.Core.dll se hledá metoda
Legacy.Core.Api.LegacyLogic.ServiceWrapper, konkrétně všechna místa, kde je použita. Těch je celkem 7 (vlastně 8, Legacy.Core.Tracking.TrackingManager má dvě hodnoty):
Legacy.Core.MapLoading.MapLoader
Legacy.Core.Mods.ModController
Legacy.Core.NPCInteraction.Conditions.PrivilegeUnlockedCondition
Legacy.Core.NPCInteraction.Conditions.RewardUnlockedCondition
Legacy.Core.PartyManagement.Party
Legacy.Core.Tracking.TrackingManager
Legacy.Core.UpdateLogic.Preconditions.UnlockKeyPrecondition
přičemž Legacy.Core.Mods.ModController a obou Legacy.Core.Tracking.TrackingManager si nevšímáme (Legacy.Core.Mods.ModController by třeba narušil možnost ukládání).
Dialog s Levem:Legacy.Core.NPCInteraction.Conditions.PrivilegeUnlockedCondition.CheckCondition(Npc)Arcimážka Sana a úkol s dungeonem Mňaukání (Tamina):Legacy.Core.NPCInteraction.Conditions.RewardUnlockedCondition.CheckCondition(Npc)Set relikvií a Hromomečova helma:Legacy.Core.PartyManagement.Party.CheckUnlockUplayPrivileges.Rewards()- první podmínka zpřístupní set relikvií
- druhá podmínka zpřístupní Hromomečovu helmu
- třetí podmínka jsou zřejmě tapety na plochu (???)
DLC (zpřístupnění úkolu Nepohodlní svědci):Legacy.Core.MapLoading.MapLoader.TriggerDLC()Ostatní:Tady se právě s Hexasonicem lišíme.
Legacy.Core.UpdateLogic.Preconditions.UnlockKeyPrecondition.Evaluate(PreconditionInputArgs)- aktivace DLC a odměn, které vlastně obejdeme už přímou editací předchozích kódů, je proto jedno, co tu je, ale Hexasonic to má (zřejmě pro jistotu) celé nahrazené a vrací na Evaluate true ...
private bool Evaluate(PreconditionResultInputArgs p_args)
{
return true;
}
- já to tedy nechává beze změny
Legacy.Core.UpdateLogic.Preconditions.UnlockKeyPrecondition.Trigger()- ??? ... smysl kódu zatím tak úplně netuším
- Hexasonic natvrdo nastavuje výsledek první podmínky (kladná odpověď na dostatečné oprávnění k obsahu), já tu podmínkovou část smazal kompletně celou
PreconditionEvaluateArgs preconditionEvaluateArgs = new PreconditionEvaluateArgs(true, false, null);
preconditionEvaluateArgs.ShowMessage = false;
LegacyLogic.Instance.EventManager.InvokeEvent(this, EEventType.PRECONDITION_EVALUATED, preconditionEvaluateArgs);