Beispiel #1
0
 private static bool Prefix(NestedSelectionGroupEntityVM __instance, bool state)
 {
     if (!settings.toggleMultiArchetype)
     {
         return(true);
     }
     if (!state && !__instance.AllowSwitchOff)
     {
         return(false);
     }
     __instance.IsSelected.Value = state;
     __instance.RefreshView.Execute();
     if (state)
     {
         __instance.DoSelectMe();
     }
     //__instance.SetSelected(state);
     return(false);
 }
Beispiel #2
0
            private static bool Prefix(NestedSelectionGroupEntityVM __instance, ref bool state)
            {
                if (!settings.toggleMultiArchetype)
                {
                    return(true);
                }
                var VM         = __instance as CharGenClassSelectorItemVM;
                var controller = Game.Instance?.LevelUpController;

                if (VM == null || controller == null)
                {
                    return(true);
                }
                var progression = controller.Preview?.Progression;
                var classData   = controller?.Preview?.Progression?.GetClassData(controller.State.SelectedClass);

                if (classData == null)
                {
                    return(true);
                }
                if (controller.Unit.Progression.GetClassLevel(VM.Class) >= 1)
                {
                    return(true);
                }
                var hasArchetype = classData.Archetypes.HasItem(VM.Archetype);

                state |= hasArchetype;
                if (!state)
                {
                    if (progression != null && VM.Archetype != null)
                    {
                        VM.SetAvailableState(progression.CanAddArchetype(classData.CharacterClass, VM.Archetype) && VM.PrerequisitesDone);
                    }
                }
                return(true);
            }