This repository has been archived by the owner on Aug 15, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSlimeDefinitionsFixMistakesPatch.cs
37 lines (36 loc) · 1.86 KB
/
SlimeDefinitionsFixMistakesPatch.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Collections.Generic;
using System.Linq;
using HarmonyLib;
namespace LargoLibrary
{
[HarmonyPatch(typeof(SlimeDefinitions), "RefreshIndexes")]
static class SlimeDefinitionsFixMistakesPatch
{
public static bool Prefix(SlimeDefinitions __instance)
{
foreach (SlimeDefinition slime in __instance.Slimes)
{
try
{
__instance.slimeDefinitionsByIdentifiable.Add(slime.IdentifiableId, slime);
if (slime.IsLargo)
{
if (slime.BaseSlimes.Length == 2)
{
if (slime.BaseSlimes[0].Diet.Produces.Length > 0 && slime.BaseSlimes[1].Diet.Produces.Length > 0 && !__instance.largoDefinitionByBasePlorts.ContainsKey(new SlimeDefinitions.PlortPair(slime.BaseSlimes[0].Diet.Produces[0], slime.BaseSlimes[1].Diet.Produces[0])))
__instance.largoDefinitionByBasePlorts.Add(new SlimeDefinitions.PlortPair(slime.BaseSlimes[0].Diet.Produces[0], slime.BaseSlimes[1].Diet.Produces[0]), slime);
if (!__instance.largoDefinitionByBaseDefinitions.ContainsKey(new SlimeDefinitions.SlimeDefinitionPair(slime.BaseSlimes[0], slime.BaseSlimes[1])))
__instance.largoDefinitionByBaseDefinitions.Add(new SlimeDefinitions.SlimeDefinitionPair(slime.BaseSlimes[0], slime.BaseSlimes[1]), slime);
}
}
}
catch (Exception ex)
{
Log.Error("Exception caught while attempting to process slime.", (object)"name", (object)slime.Name, (object)"Exception", (object)ex.Message, (object)"Stacktrace", (object)ex.StackTrace.ToString());
}
}
return false;
}
}
}