FEAT LIST
PLAYER HAND BOOK
Actor
ADD Eval Scripts:
Quote:
hero.child[aCHA].field[aStartMod].value += 1
|
Alert
ADD Eval Scripts:
Quote:
#skillbonus[Initiative] = #skillbonus[Initiative] + 5
|
Athlete
ADD Array-Based Menu?
Row 0: Strength
Row 1: Dexterity
ADD Eval Scripts
Quote:
if (field[usrIndex].value = 0) then
hero.child[aSTR].field[aStartMod].value += 1
elseif (field[usrIndex].value = 1) then
hero.child[aDEX].field[aStartMod].value += 1
endif
|
Charger
TICK: Show in Activated Abilities List?
Activation Name: Activate Charge (+5 bonus attack / ignore if pushing)
Eval Script:
Quote:
doneif (field[abilActive].value = 0)
foreach pick in hero from BaseWep where "(wCategory.Melee)"
eachpick.field[atmBonus].value += 5
nexteach
|
Crossbow Expert
Just Text
Defensive Duelist
Add Expr-reqs:
Message: Dexterity 13 required.
Pre-requisite Expression:
Tick: is Error? and Highlight Panel?
Add Eval Scripts
Phase: Post-attributes
Script:
Quote:
doneif (tagis[Helper.ShowSpec] = 0)
doneif (tagis[Helper.Disable] <> 0)
doneif (field[abilActive].value = 0)
hero.childfound[ArmorClass].field[Bonus].value += hero.child[ProfBonus].field[tProfBonus].value
|
Duel Wielder
ADD Eval-Script:
Phase: Post-Attributes
Script:
Quote:
doneif (tagis[Helper.ShowSpec] = 0)
doneif (tagis[Helper.Disable] <> 0)
field[abValue].value = 0
foreach pick in hero from BaseWep where "(Hero.OffHand & !wProperty.TwoHanded)"
perform eachpick.assign[wProperty.Light]
field[abValue].value = 1
nexteach
hero.childfound[ArmorClass].field[Bonus].value += field[abValue].value
|
Dungeon Delver
Just Text
Durable
Add Eval Scripts: hero.child[aCON].field[aStartMod].value += 1
Elemental Adept
Coming in the community pack. Has dependencies on multiple files / things.
Great Weapon Master
TICK: Show in Activated Abilities List?
ADD Activation Name: Activate Great Weapon Master (-5 to hit, +10 dmg)
ADD Eval Script:
Quote:
doneif (field[abilActive].value = 0)
foreach pick in hero from BaseWep where "(wProperty.Heavy)"
eachpick.field[atmBonus].value -= 5
eachpick.field[dmmBonus].value += 10
nexteach
|
Healer
Just Text
Heavily Armored
Add Eval Scripts:
Quote:
hero.child[aSTR].field[Bonus].value += 1
perform hero.assign[ArmProfGrp.ArmorHeavy]
|
Add Expre-reqs
Message: Proficiency with medium armor required.
Is Error: Ticked
Highlight Panel: Ticket
Pre-requisite Expression:
Quote:
tagis[ArmProfGrp.ArmorMed] <> 0
|
Heavy Armor Master
ADD Eval Scripts:
Quote:
#skillbonus[aSTR] = #skillbonus[aSTR] + 1
|
ADD Expr-reqs:
Quote:
Message: Proficiency with heavy armor required.
Is Error: Ticked
Highlight Panel: Ticket
Pre-requisite Expression: tagis[ArmProfGrp.ArmorHeavy] <> 0
|
Inspiring Leader
Add Expr-reqs:
Message: Charisma 13 required.
Pre-requisite Expression: #attrvalue[aCHA] >= 13
Tick: is Error? and Highlight Panel?
Keen Mind
Add Eval Scripts: #skillbonus[aINT] = #skillbonus[aINT] + 1
Lightly Armored
ADD Array-Based Menu?
Row 0: Strength
Row 1: Dexterity
ADD Eval Scripts
Quote:
if (field[usrIndex].value = 0) then
hero.child[aSTR].field[aStartMod].value += 1
elseif (field[usrIndex].value = 1) then
hero.child[aDEX].field[aStartMod].value += 1
endif
perform hero.assign[ArmProfGrp.ArmorLight]
|
Linguist
Add Eval Scripts:
Quote:
#skillbonus[aINT] = #skillbonus[aINT] + 1
hero.child[resLangBck].field[resMax].value += 3
|
Lucky
Charge Information:
TICK: Show in Tracked Resources List?
Base Charges: 3
Usage period: /long rest
Mage Slayer
Text Only
Magic Initiate
Complete: Coming in the Community pack
Martial Adept
Implemented as part of the community pack.
Medium Armor Master
ADD Eval-Script:
Phase: Final
Priority: 1000
Script:
Quote:
field[abValue].value = 0
foreach pick in hero from BaseArmor where "ArmorClass.Medium & Helper.CurrArmor"
field[abValue].value = 1
perform eachpick.delete[Helper.StealthDis]
nexteach
hero.childfound[ArmorClass].field[tACDexMod].value = minimum(hero.childfound[ArmorClass].field[tACDexMod].value + field[abValue].value, hero.childfound[aDEX].field[aModBonus].value)
|
ADD Expr-reqs
Message: Proficiency with medium armor required.
Is Error: Ticked
Highlight Panel: Ticked
Pre-requisite Expression:
Quote:
tagis[Hero.ProfMedium] <> 0
|
Mobile
Add Eval Scripts:
Quote:
hero.child[Speed].field[tSpeed].value += 10
|
Moderately Armored
ADD Array-Based Menu?
Row 0: Strength
Row 1: Dexterity
ADD Eval Scripts
Quote:
if (field[usrIndex].value = 0) then
hero.child[aSTR].field[aStartMod].value += 1
elseif (field[usrIndex].value = 1) then
hero.child[aDEX].field[aStartMod].value += 1
endif
perform hero.assign[ArmProfGrp.ArmorMed]
perform hero.assign[ArmProfGrp.Shields]
|
ADD Expr-reqs:
Quote:
Message: Proficiency with heavy armor required.
Is Error: Ticked
Highlight Panel: Ticket
Pre-requisite Expression: tagis[ArmProfGrp.ArmorLight] <> 0
|
TO DO: Add Proficiency with Shields
Mounted Combatant
Text Only
Observant
ADD Array-Based Menu?
Row 0: Intelligence
Row 1: Wisdom
ADD Eval Scripts
Quote:
if (field[usrIndex].value = 0) then
hero.child[aINT].field[aStartMod].value += 1
elseif (field[usrIndex].value = 1) then
hero.child[aWIS].field[aStartMod].value += 1
endif
|
ADD Eval Script #2
Phase: Post-attributes, Priority: 1000
Note: This makes it so you can hover over the skill and see the passive skill.
Quote:
var sPPercept as string
var sPInvest as string
var iPPercept as number
var iPInvest as number
iPPercept = hero.child[skPercep].field[skAttrBon].value+10+5
iPInvest = hero.child[skInvestig].field[skAttrBon].value+10+5
sPPercept = "passive Perception (" & iPPercept & ") [+5 bonus to your passive Wisdom (Perception)]"
sPInvest = "passive Investigation ("& iPInvest &") [+5 bonus to your passive Intelligence (Investigation)]"
#situational[hero.child[skPercep], sPPercept,field[thingname].text]
#situational[hero.child[skInvestig], sPInvest,field[thingname].text]
~#situational[hero.child[skPercep], "+5 bonus to your passive Wisdom (Perception)",field[thingname].text]
~#situational[hero.child[skInvestig], "+5 bonus to your passive Intelligence (Investigate)",field[thingname].text]
|
Polearm Master
Text only
Resilient
ADD Array Based Menu
Quote:
Row 0: Strength
Row 1: Dexterity
Row 2: Constitution
Row 3: Intelligence
Row 4: Wisdom
Row 5: Charisma
|
ADD Eval Script
Quote:
if (field[usrIndex].value = 0) then
hero.child[aSTR].field[aStartMod].value += 1
perform hero.assign[ProfSave.svSTR]
elseif (field[usrIndex].value = 1) then
hero.child[aDEX].field[aStartMod].value += 1
perform hero.assign[ProfSave.svDEX]
elseif (field[usrIndex].value = 2) then
hero.child[aCON].field[aStartMod].value += 1
perform hero.assign[ProfSave.svCON]
elseif (field[usrIndex].value = 3) then
hero.child[aINT].field[aStartMod].value += 1
perform hero.assign[ProfSave.svINT]
elseif (field[usrIndex].value = 4) then
hero.child[aWIS].field[aStartMod].value += 1
perform hero.assign[ProfSave.svWIS]
elseif (field[usrIndex].value = 5) then
hero.child[aCHA].field[aStartMod].value += 1
perform hero.assign[ProfSave.svCHA]
endif
|
Ritual Caster
We have added the ability to select the 2 ritual spells.
To Do: Once initial spells are selected unlock ability to add higher level spells.
Savage Attacker
Text only
Sentinel
Text only
Sharpshooter
TICK Show in Activated Abilities List?
Activation Name: Activate Sharpshooter (-5 to hit, +10 dmg)
ADD Eval Script:
Quote:
doneif (field[abilActive].value = 0)
foreach pick in hero from BaseWep where "(wCategory.RangeProj | wCategory.RangeThrow | wCategory.Firearm)"
eachpick.field[atrBonus].value -= 5
eachpick.field[dmrBonus].value += 10
nexteach
|
Shield Master
Text only
Skilled
Implemented, coming as part of the community pack.
Skulker
Add Expr-reqs:
Message: Dexterity 13 required.
Pre-requisite Expression: #attrvalue[aDEX] >= 13
Tick: is Error? and Highlight Panel?
Spell Sniper
This is now complete and will be included in the community pack. Has a number of dependencies thus not copied here.
Currently does not restrict spell choice to only those with attack roles. To be implemented after next official patch.
Tavern Brawler
This is now complete and will be included in the community pack. Has a number of dependencies thus not copied here.
Tough
ADD Eval Script #1:
Phase: Post-Levels
Priority: 5000
Script:
Quote:
field[abValue].value += maximum(herofield[tHitDice].value, 1)*2
|
ADD Eval Script #2:
Phase: Post-Levels
Priority: 15000
Script:
Quote:
~if we've been disabled, get out now
doneif (tagis[Helper.Disable] <> 0)
herofield[tBonusHP].value += field[abValue].value
|
War Caster
ADD Pre-reqs
Message: You must be able to cast at least one spell.
Is Error: Ticked
Highlight Panel: Ticked
Pre-requisite Script:
Quote:
var iTotal as number
iTotal = iTotal + #levelcount[Bard]
iTotal = iTotal + #levelcount[Cleric]
iTotal = iTotal + #levelcount[Druid]
iTotal = iTotal + #levelcount[Sorcerer]
iTotal = iTotal + #levelcount[Warlock]
iTotal = iTotal + #levelcount[Wizard]
if (#levelcount[Paladin] >1) then
iTotal = iTotal + #levelcount[Paladin]
endif
if (#levelcount[Ranger] >1) then
iTotal = iTotal + #levelcount[Ranger]
endif
if (hero.child[RaceHelper].field[rSpAtk].value >0) then
iTotal = iTotal + 1
endif
@valid = 0
if (iTotal >0) then
@valid = 1
endif
|
Weapon Master
We have this functioning however it is quite involved. We will release this shortly as part of the community pack.