public void CreateWithUmbrellaInterface() { var ex = new Exception(); var rec = RecordException.Create <IItem>("Message", FormKey.Null, "SomeEdid"); rec.RecordType.Should().Be(typeof(IItem)); }
public static void RunPatch(IPatcherState <ISkyrimMod, ISkyrimModGetter> state) { // Ez flag foreach (var ez in state.LoadOrder.PriorityOrder.EncounterZone().WinningOverrides()) { try { if (ez.Location is null) { continue; } if (!ez.Flags.HasFlag(EncounterZone.Flag.DisableCombatBoundary)) { var newEz = state.PatchMod.EncounterZones.GetOrAddAsOverride(ez); newEz.Flags |= EncounterZone.Flag.DisableCombatBoundary; } } catch (Exception e) { throw RecordException.Create("Error processing encounter zone record", ez, e); } } /* Swim Patcher * 1. Check if race disables water combat * 2. If so, check if race has keywords in the allowed. * 3. If it does and has now keywords in the disallowed set, patch it.*/ if (!Settings.EnableWaterCombatTracking()) { return; } HashSet <FormLink <Keyword> > allowed = Settings.GetAllowedWaterCombatKeys(); HashSet <FormLink <Keyword> > disallowed = Settings.GetNoWaterCombatKeys(); foreach (var race in state.LoadOrder.PriorityOrder.Race().WinningOverrides()) { try { if (exclusions.Contains(race)) { continue; } if (race.Keywords is null) { continue; } if (!race.Flags.HasFlag(Race.Flag.NoCombatInWater)) { continue; } bool patchIt = false; foreach (var kw in race.Keywords) { if (allowed.Contains(kw)) { patchIt = true; } else if (disallowed.Contains(kw)) { patchIt = false; break; } } if (!patchIt) { continue; } var newRace = state.PatchMod.Races.GetOrAddAsOverride(race); newRace.Flags &= ~Race.Flag.NoCombatInWater; } catch (Exception e) { throw RecordException.Create("Error processing race record", race, e); } } }