Beispiel #1
0
        public static void SetSpellbook(this CharBPhaseSpells instance, BlueprintCharacterClass characterClass)
        {
            LevelUpState            state         = Game.Instance.UI.CharacterBuildController.LevelUpController.State;
            BlueprintCharacterClass selectedClass = state.SelectedClass;

            state.SelectedClass = characterClass;
            GetMethodDel <CharBPhaseSpells, Action <CharBPhaseSpells> >("SetupSpellBookView")(instance);
            state.SelectedClass = selectedClass;
        }
Beispiel #2
0
 public static void AddClassLevel_NotCharacterLevel(this UnitProgressionData instance, BlueprintCharacterClass characterClass)
 {
     //instance.SureClassData(characterClass).Level++;
     GetMethodDel <UnitProgressionData, Func <UnitProgressionData, BlueprintCharacterClass, ClassData> >
         ("SureClassData")(instance, characterClass).Level++;
     //instance.CharacterLevel++;
     instance.Classes.Sort();
     instance.Features.AddFact(characterClass.Progression, null);
     instance.Owner.OnGainClassLevel(characterClass);
     //int[] bonuses = BlueprintRoot.Instance.Progression.XPTable.Bonuses;
     //int val = bonuses[Math.Min(bonuses.Length - 1, instance.CharacterLevel)];
     //instance.Experience = Math.Max(instance.Experience, val);
 }
 static void Prefix(SelectFeature __instance, LevelUpState state, UnitDescriptor unit)
 {
     if (IsAvailable())
     {
         BlueprintCharacterClass sourceClass = (GetMethodDel <SelectFeature, Func <SelectFeature, LevelUpState, FeatureSelectionState> >
                                                    ("GetSelectionState")(__instance, state)?.Source as BlueprintProgression)?.GetSourceClass(unit);
         if (sourceClass == null)
         {
             Core.Debug($" - {nameof(SelectFeature)}.{nameof(SelectFeature.Apply)}({state.SelectedClass}[{state.NextClassLevel}], {unit}) - {__instance.Selection}, {__instance.Item}");
         }
         else
         {
             Core.Debug($" - {nameof(SelectFeature)}.{nameof(SelectFeature.Apply)}({sourceClass}[{unit.Progression.GetClassLevel(sourceClass)}], {unit}) - {__instance.Selection}, {__instance.Item}");
         }
     }
 }
Beispiel #4
0
 public static void Apply_NoStatsAndHitPoints(this ApplyClassMechanics instance, LevelUpState state, UnitDescriptor unit)
 {
     if (state.SelectedClass != null)
     {
         ClassData classData = unit.Progression.GetClassData(state.SelectedClass);
         if (classData != null)
         {
             //GetMethodDel<ApplyClassMechanics, Action<ApplyClassMechanics, LevelUpState, ClassData, UnitDescriptor>>
             //    ("ApplyBaseStats")(null, state, classData, unit);
             //GetMethodDel<ApplyClassMechanics, Action<ApplyClassMechanics, LevelUpState, ClassData, UnitDescriptor>>
             //    ("ApplyHitPoints")(null, state, classData, unit);
             GetMethodDel <ApplyClassMechanics, Action <ApplyClassMechanics, ClassData, UnitDescriptor> >
                 ("ApplyClassSkills")(null, classData, unit);
             GetMethodDel <ApplyClassMechanics, Action <ApplyClassMechanics, LevelUpState, UnitDescriptor> >
                 ("ApplyProgressions")(null, state, unit);
         }
     }
 }
Beispiel #5
0
 static void Prefix(SelectFeature __instance, LevelUpState state, UnitDescriptor unit, ref StateReplacer __state)
 {
     if (IsAvailable())
     {
         if (__instance.Item != null)
         {
             FeatureSelectionState selectionState =
                 GetMethodDel <SelectFeature, Func <SelectFeature, LevelUpState, FeatureSelectionState> >
                     ("GetSelectionState")(__instance, state);
             if (selectionState != null)
             {
                 BlueprintCharacterClass sourceClass = (selectionState.Source as BlueprintFeature)?.GetSourceClass(unit);
                 if (sourceClass != null)
                 {
                     __state = new StateReplacer(state);
                     __state.Replace(sourceClass, unit.Progression.GetClassLevel(sourceClass));
                 }
             }
         }
     }
 }