示例#1
0
        public int GetSpellLevelNowTriggeredPerEncounterNew(CharacterStats.Class casterClass, int prevLevel, int newLevel)
        {
            switch (IEModOptions.PerEncounterSpellsSetting)
            {
            case IEModOptions.PerEncounterSpells.NoChange:
                return(GetSpellLevelNowTriggeredPerEncounterOriginal(casterClass, prevLevel, newLevel));

            //default behaviour
            case IEModOptions.PerEncounterSpells.Levels_9_12:
            case IEModOptions.PerEncounterSpells.Levels_6_9_12:
            case IEModOptions.PerEncounterSpells.Levels_8_10_12_14:
            case IEModOptions.PerEncounterSpells.Levels_6_9_12_14:
            case IEModOptions.PerEncounterSpells.Levels_6_8_10_12_14:
            case IEModOptions.PerEncounterSpells.Levels_4_6_8_10_12_14:
            case IEModOptions.PerEncounterSpells.AllPerEncounter:
            case IEModOptions.PerEncounterSpells.AllPerRest:
                if (casterClass == CharacterStats.Class.Priest || casterClass == CharacterStats.Class.Wizard || casterClass == CharacterStats.Class.Druid)
                {
                    int[] encounterLevel = GetModifiedEncounterData();

                    for (int j = 0; j < Grimoire.MaxSpellLevel; j++)
                    {
                        if (this.SpellCastMaxLookup(casterClass, newLevel, j + 1) > 0 && encounterLevel[j] > prevLevel && encounterLevel[j] <= newLevel)
                        {
                            return(j + 1);
                        }
                    }
                }
                return(0);


            default:
                goto case IEModOptions.PerEncounterSpells.NoChange;
            }
        }
        public void mod_SetButtonsAnticlassSpells(CharacterStats stats)
        {
            this.Label = null;
            int num = 0;

            foreach (GenericAbility current in stats.Abilities)
            {
                if (current is GenericSpell)
                {
                    CharacterStats.Class spellClass = ((GenericSpell)current).SpellClass;
                    if (spellClass != stats.CharacterClass || !CharacterStats.IsPlayableClass(spellClass))
                    {
                        if ((stats.CharacterClass == CharacterStats.Class.Wizard ||
                             stats.CharacterClass == CharacterStats.Class.Priest ||
                             stats.CharacterClass == CharacterStats.Class.Druid ||
                             stats.CharacterClass == CharacterStats.Class.Chanter ||
                             stats.CharacterClass == CharacterStats.Class.Cipher) && IEModOptions.HideAnticlassSpells)
                        {
                        }

                        else
                        {
                            this.SetButton(num, current.gameObject, UIAbilityBarButtonSet.AbilityButtonAction.CAST_SPELL_ABILITY, current.Icon);
                            num++;
                        }
                    }
                }
            }
            this.HideButtons(num);
            this.m_DoRefresh = true;
        }
示例#3
0
 public int GetSpellLevelNowTriggeredPerEncounterOriginal(CharacterStats.Class casterClass, int prevLevel, int newLevel)
 {
     throw new DeadEndException("Can't reach this body");
 }