static void increaseGroupSizeIfNeeded(UnitPartActivatableAbility part) { var tr = Harmony12.Traverse.Create(part); int max_length = EnumUtils.GetMaxValue <ActivatableAbilityGroupExtension>() + EnumUtils.GetMaxValue <ActivatableAbilityGroup>(); int[] current_group_sizes = tr.Field("m_GroupsSizeIncreases").GetValue <int[]>(); if (current_group_sizes.Length < max_length) { current_group_sizes = current_group_sizes.AddToArray(Enumerable.Repeat <int>(0, max_length - current_group_sizes.Length).ToArray()); tr.Field("m_GroupsSizeIncreases").SetValue(current_group_sizes); } }
static void Postfix(UnitPartActivatableAbility __instance) { increaseGroupSizeIfNeeded(__instance); }