Thread: Arcane Thesis
View Single Post
CptCoots
Senior Member
 
Join Date: Apr 2013
Location: Poughkeepsie, NY
Posts: 102

Old July 10th, 2013, 03:00 AM
Okay so a few things.
  1. Updated Arcane Thesis
  2. Finished Incantatrix

Arcane Thesis: I saw something really weird when I was testing this with the finished Incantatrix. It was allowing metamagic feats that do not adjust level to incur a -1 to the level, but only when they were not the only metamagic feat on the spell. I think this is not okay. In no way should it be easier. So I adjusted the code slightly to check to make sure the mmLevel>=1 before incrementing the potential level reduction (LvlRed). Example: You put City Spell and Maximize on a Ray of Frost and you have the Arcane Thesis: Ray of Frost feat. Normally Maximize gives a +3 level adjustment (LA) and City Spell gives a +0 LA incurring a total of +3 LA. But with arcane thesis each takes a -1 bonus so now the LA is +1. Compare this to when you just Maximize the spell as incur a +2 LA. See? That is stupid.
Arcane Thesis also currently has an annoying functionality where all versions of spells in your spellbook and memorized are available for selection. Anyone know how to restrict this to just spellbook or known?

Incantatrix: Holy crap what a bear.
(1) Changed all the Focus Studies Custom Abilities to have Pick-reqs instead of Pre-reqs. This will prevent the selected school to go red once chosen (this happens because it is NOW on the forbidden list and is no longer eligable to be selected. Thus selecting it made it unselectable.). This way makes it less clear why a school is unselectable in the Add More Focused Studies window (now it only reads Precluded by XXX), but I think it is cleaner.
(2) Deleted the Improved Metamagic feat and Improved Metamagic metamagic.
(3) Added Arcane Thesis (fArcaneThe) and Easy Metamagic (fEasyMetaM).
(4) Added mmQuicken2. This should serve as a template on how to get metamagic picks to agree with how we did Easy Metamagic. I believe Sendric will be supplying a full replacement of these in the future, or you can do them yourself. I just set them to Replace Thing Id the previous mmXXX and add the User Tag EasyMM.
(5) Improved Metamagic now has a huge script which I provide here for people to make fun of, and the code in the Class Special is uncommented:
Prelevels 5000
~Set up Variables
var LvlRed as number
var OLvl as number
var spell as string
var ArcThe as number
var spellid as string
var MMg as string
var MMg2 as string
var EasyMM as number

~Go through each Spell with custom crap on it
foreach pick in Hero from BaseSpell where "NeedHelper.CustomSpl"
~Level Reduction is 0 so far
LvlRed=0
~Unknown if this spell has Arcane Thesis associated with it
ArcThe=0
~Grab the old level
OLvl=eachpick.field[sLevel].value

~Check for Arcane Thesis!!
~If you have the feat...
if (#hasfeat[fArcaneThe] <> 0) then
~Grab the original spell name
foreach pick in eachpick.gizmo from BaseSpell
spell=eachpick.idstring
nexteach
~Look through the Arcane Thesis Feats
foreach pick in Hero from BaseFeat where "HasFeat.fArcaneThe"
spellid=eachpick.field[fChosen].chosen.idstring
~If the current spell is the same as one we have Arcane Thesis for then set ArcThe to 1.
if (compare(spellid,spell)=0) then
ArcThe=1
endif
nexteach
endif
~Now go through all the metamagic feats applied to current spell
foreach pick in eachpick.gizmo from BaseMetamg
~unsure if this metamagic feat is associated with the Easy Metamagic feat
EasyMM=0
~Grab the abbreviation of the current Metamagic on the spell
MMg=eachpick.field[mmAbbr].text
~Look through each Easy Metamagic feat
foreach pick in hero from BaseFeat where "HasFeat.fEasyMetaM"
MMg2=eachpick.field[fChosen].chosen.field[mmAbbr].text
~if this matches the current metamagic ON the current spell set EasyMM=1
if (compare(MMg,MMg2)=0) then
EasyMM=1
endif
nexteach

~Now this is awesome...
~If the current spell is not arcane thesisized and if the current metamagic is not easy then so long as it incurs a +2 LA we subtract 1.
~If it is not thesisized and is easy then Easy Metamagic will already be taking 1 off so we need an LA of atleast 3 to bother
~If it is thesisized but not easy then Arcane Thesis will already be taking 1 off so we need an LA of atleast 3 to bother
~If it is thesisized and easy then they both will be taking 1 off so we need an LA of atleast 4 to bother
if (ArcThe=0) then
if (EasyMM=0) then
if (eachpick.field[mmLevel].value>=2) then
LvlRed +=1
endif
else
if (eachpick.field[mmLevel].value>=3) then
LvlRed +=1
endif
endif
else
if (EasyMM=0) then
if (eachpick.field[mmLevel].value>=3) then
LvlRed +=1
endif
else
if (eachpick.field[mmLevel].value>=4) then
LvlRed +=1
endif
endif
endif
nexteach
~Delete all sLevel tags
perform eachpick.delete[sLevel.?]
~Take off all level reductions due to metamagics and put into field
eachpick.field[sLevel].value=OLvl-LvlRed
~Assign the correct tag
if (eachpick.field[sLevel].value = 0) then
perform eachpick.assign[sLevel.0]
elseif (eachpick.field[sLevel].value = 1) then
perform eachpick.assign[sLevel.1]
elseif (eachpick.field[sLevel].value = 2) then
perform eachpick.assign[sLevel.2]
elseif (eachpick.field[sLevel].value = 3) then
perform eachpick.assign[sLevel.3]
elseif (eachpick.field[sLevel].value = 4) then
perform eachpick.assign[sLevel.4]
elseif (eachpick.field[sLevel].value = 5) then
perform eachpick.assign[sLevel.5]
elseif (eachpick.field[sLevel].value = 6) then
perform eachpick.assign[sLevel.6]
elseif (eachpick.field[sLevel].value = 7) then
perform eachpick.assign[sLevel.7]
elseif (eachpick.field[sLevel].value = 8) then
perform eachpick.assign[sLevel.8]
else
perform eachpick.assign[sLevel.9]
endif
nexteach
Attached Files
File Type: email CustFE-d20-Incantatrix.user (29.9 KB, 5 views)

Last edited by CptCoots; July 10th, 2013 at 03:03 AM.
CptCoots is offline   #34 Reply With Quote