forked from Sklore/HL_DD_5e_Colab
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCOM_5ePack_PHB - Feats.user
646 lines (586 loc) · 44.7 KB
/
COM_5ePack_PHB - Feats.user
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
<?xml version="1.0" encoding="UTF-8"?>
<document signature="Hero Lab Data">
<thing id="ft5CAlert" name="Alert" description="You gain a +5 bonus to initiative.\n• You can’t be surprised while you are conscious.\n• Other creatures don’t gain advantage on attack rolls against you as a result of being hidden from you." compset="Feat" uniqueness="useronce">
<comment>Complete</comment>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ Add a +5 bonus to our Initiative
#skillbonus[Initiative] = #skillbonus[Initiative] + 5]]></eval>
</thing>
<thing id="ft5CAthlet" name="Athlete" description="Increase your Strength or Dexterity score by 1, to a maximum of 20.\n• When you are prone, standing up uses only 5 feet of your movement.\n• Climbing doesn’t cost you extra movement.\n• You can make a running long jump or a running high jump after moving only 5 feet on foot, rather than 10 feet." compset="Feat" uniqueness="useronce">
<comment>! NOT COMPLETE !</comment>
<arrayval field="usrArray" index="0" value="Strength"/>
<arrayval field="usrArray" index="1" value="Dexterity"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="Usage" tag="Constant"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
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]]></eval>
</thing>
<thing id="ft5CActor" name="Actor" description="Increase your Charisma score by 1, to a maximum of 20.\n• You have advantage on Charisma (Deception) and Charisma (Performance) checks when trying to pass yourself off as a different person.\n• You can mimic the speech of another person or the sounds made by other creatures. You must have heard the person speaking, or heard the creature make the sound, for at least 1 minute. A successful Wisdom (Insight) check contested by your Charisma (Deception) check allows a listener to determine that the effect is faked." compset="Feat" uniqueness="useronce">
<comment>Complete</comment>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
hero.child[aCHA].field[aStartMod].value += 1]]></eval>
</thing>
<thing id="ft5Charger" name="Charger" description="When you use your action to Dash, you can use a bonus action to make one melee weapon attack or to shove a creature.\n• If you move at least 10 feet in a straight line immediately before taking this bonus action, you either gain a +5 bonus to the attack’s damage roll (if you chose to make a melee attack and hit) or push the target up to 10 feet away from you (if you chose to shove and you succeed)." compset="Feat" summary="When you use your action to Dash, you can use a bonus action to make one melee weapon attack or to shove a creature." uniqueness="useronce">
<fieldval field="actName" value="Activate Charge (+5 bonus attack / ignore if pushing)"/>
<fieldval field="abValue" value="5"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="User" tag="Activation"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If not active get out now!
doneif (field[abilActive].value = 0)
~ Give a untyped bonus to melee attacks
hero.childfound[Attack].field[atmBonus].value += field[abValue].value]]></eval>
</thing>
<thing id="ft5CCrossE" name="Crossbow Expert" description="You ignore the loading quality of crossbows with which you are proficient.\n• Being within 5 feet of a hostile creature doesn’t impose disadvantage on your ranged attack rolls.\n• When you use the Attack action and attack with a onehanded weapon, you can use a bonus action to attack with a loaded hand crossbow you are holding." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
</thing>
<thing id="ft5CDefDue" name="Defensive Duelist" description="When you are wielding a finesse weapon with which you are proficient and another creature hits you with a melee attack, you can use your reaction to add your proficiency bonus to your AC for that attack, potentially causing the attack to miss you.\n\nPrerequisite: Dexterity 13 or higher" compset="Feat" summary="Use your reaction to add your proficiency bonus to your AC for that attack." uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="User" tag="Activation"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="PostAttr"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If not active get out now!
doneif (field[abilActive].value = 0)
hero.childfound[ArmorClass].field[Bonus].value += hero.child[ProfBonus].field[tProfBonus].value]]></eval>
<exprreq message="Dexterity 13 required."><![CDATA[#attrvalue[aDEX] >= 13]]></exprreq>
</thing>
<thing id="ft5CDuelWi" name="Dual Wielder" description="You gain a +1 bonus to AC while you are wielding a separate melee weapon in each hand.\n• You can use two-weapon fighting even when the one handed melee weapons you are wielding aren’t light.\n• You can draw or stow two one-handed weapons when you would normally be able to draw or stow only one." compset="Feat" uniqueness="useronce">
<fieldval field="abValue" value="1"/>
<usesource source="5ePHBCP" parent="p5ePack" name="5e Players Handbook"/>
<tag group="Helper" tag="ShowSpec" name="Show Spec" abbrev="Show Spec"/>
<eval phase="PostLevel" priority="15000" index="2"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ Assign the Two Weapon Light tag to the hero
perform hero.assign[Hero.TwoWpLight]
~ If we don't have a weapon in each hand get out now!
~ This saves us from wasting CPU with a Foreach loop if
~ its not needed.
doneif (hero.tagis[Hero.EquipMain] + hero.tagis[Hero.EquipOff] <> 2)
var FoundMelee as number
FoundMelee = 0
~ Lets look to see if we have melee weapons actually equipped
foreach pick in hero from BaseWep where "(wCategory.Melee) & (fieldval:gIsEquip <> 0 | fieldval:wIs2nd <> 0)"
FoundMelee += 1
nexteach
~ Only proceed if we have two melee weapons
doneif (FoundMelee <> 2)
~ Give +1 AC bonus as we are wielding two melee weapons
hero.childfound[ArmorClass].field[Bonus].value += field[abValue].value]]></eval>
<eval phase="PostAttr" priority="15000" index="10"><![CDATA[ ~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If we don't have a weapon in each hand get out now!
~ This saves us from wasting CPU with a Foreach loop if
~ its not needed.
doneif (hero.tagis[Hero.EquipMain] + hero.tagis[Hero.EquipOff] <> 2)
~ we get the attribute bonus to add to the offhand damage
~ as a kludge to non-light weapons
debug "Style = " & hero.tagis[Hero.2WepStyle]
if ( hero.tagis[Hero.2WepStyle] <> 0 ) then
var StrBonus as number
var DexBonus as number
StrBonus = hero.child[aSTR].field[aModBonus].value
DexBonus = hero.child[aDEX].field[aModBonus].value
debug " StrBonus " & StrBonus & " DexBonus " & DexBonus
foreach pick in hero from BaseWep where "(wCategory.Melee) & (fieldval:wIs2nd <> 0) & !wProperty.TwoHanded & !wProperty.Light "
if (eachpick.tagis[wProperty.Finesse] <> 0 ) then
eachpick.field[dmmBonus].value += maximum(StrBonus,DexBonus)
else
eachpick.field[dmmBonus].value += StrBonus
endif
nexteach
endif]]></eval>
</thing>
<thing id="ft5CDungeD" name="Dungeon Delver" description="You have advantage on Wisdom (Perception) and Intelligence (Investigation) checks made to detect the presence of secret doors.\n• You have advantage on saving throws made to avoid or resist traps.\n• You have resistance to the damage dealt by traps. \n• You can search for traps while traveling at a normal pace, instead of only at a slow pace." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
perform hero.assign[DamageRes.dt5CTrap]]]></eval>
</thing>
<thing id="ft5CDurab" name="Durable" description="Increase your Constitution score by 1, to a maximum of 20.\n• When you roll a Hit Die to regain hit points, the minimum number of hit points you regain from the roll equals twice your Constitution modifier (minimum of 2)." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
hero.child[aCON].field[aStartMod].value += 1]]></eval>
</thing>
<thing id="ft5CElemAd" name="Elemental Adept" description="Spells you cast ignore resistance to damage of the selected elemental type. In addition, when you roll damage for a spell you cast that deals damage of the selected elemental type, you can treat any 1 on a damage die as a 2." compset="Feat" summary="Ignore resistance to dmg & treat dmg dice of 1 as 2.">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="fShowWhat" tag="Energy"/>
<eval phase="First" priority="10000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Get the energy tag and place it on ourself. This
~ allows other Picks to easily to test which energy
~ type we selected.
perform field[usrChosen1].chosen.pulltags[5CElemType.?]
~ Mark this elemental type as already selected by this feat
perform field[usrChosen1].chosen.pushtags[HasFeat.?]]]></eval>
<evalrule phase="Final" priority="50000" message="You can not pick the same element more than once." summary="You can not pick the same element more than once."><![CDATA[
~ Check to see if this feat has selected this element
~ more than once &
validif (field[usrChosen1].chosen.tagcount[HasFeat.ft5CElemAd] <= 1)]]></evalrule>
<prereq message="You must be able to cast at least one spell. ">
<validate><![CDATA[
~ Test that the character has at least one spell
~ or spell-like ability. &
var HasSpells as number
Call 5CHasSpell
@valid = HasSpells]]></validate>
</prereq>
</thing>
<thing id="ft5CGWeaMa" name="Great Weapon Master" description="On your turn, when you score a critical hit with a melee weapon or reduce a creature to 0 hit points with one, you can make one melee weapon attack as a bonus action. Before you make a melee attack with a heavy weapon that you are proficient with, you can choose to take a - 5 penalty to the attack roll. If the attack hits, you add +10 to the attack’s damage." compset="Feat" summary="Bonus action when dropping a creature. Take -5H to gain +10 dmg." uniqueness="useronce">
<fieldval field="actName" value="-5 to hit, +10 dmg"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="User" tag="Activation"/>
<eval phase="PreLevel" priority="10000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If not active get out now!
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]]></eval>
</thing>
<thing id="ft5CHealer" name="Healer" description="When you use a healer’s kit to stabilize a dying creature, that creature also regains 1 hit point.\n• As an action, you can spend one use of a healer’s kit to tend to a creature and restore 1d6 + 4 hit points to it, plus additional hit points equal to the creature’s maximum number o f Hit Dice. The creature can’t regain hit points from this feat again until it finishes a short or long rest." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
</thing>
<thing id="ft5CHeavyA" name="Heavily Armored" description="Increase your Strength score by 1, to a maximum of 20.\n• You gain proficiency with heavy armor." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="ArmProfGrp" tag="ArmorHeavy"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
hero.child[aSTR].field[Bonus].value += 1
~ Give proficiency with heavy armor
perform hero.pushtags[ArmProfGrp.?]]]></eval>
<exprreq message="Proficiency with medium armor required."><![CDATA[tagis[ArmProfGrp.ArmorMed] <> 0]]></exprreq>
</thing>
<thing id="ft5CHvyArM" name="Heavy Armor Master" description="Increase your Strength score by 1, to a maximum of 20.\n• While you are wearing heavy armor, bludgeoning, piercing, and slashing damage that you take from non magical weapons is reduced by 3.\n\nPrerequisite: Proficiency with heavy armor" compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
#skillbonus[aSTR] += 1]]></eval>
<exprreq message="Proficiency with heavy armor required. "><![CDATA[tagis[ArmProfGrp.ArmorHeavy] <> 0]]></exprreq>
</thing>
<thing id="ft5CInspiL" name="Inspiring Leader" description="You can spend 10 minutes inspiring your companions, shoring up their resolve to fight. \n\nWhen you do so, choose up to six friendly creatures (which can include yourself) within 30 feet of you who can see or hear you and who can understand you. Each creature can gain temporary hit points equal to your level + your Charisma modifier. A creature can’t gain temporary hit points from this feat again until it has finished a short or long rest.\n\nPrerequisite: Charisma 13 or higher" compset="Feat" summary="You can spend 10 minutes inspiring your companions, shoring up their resolve to fight." uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<exprreq message="Charisma 13 or higher. "><![CDATA[#attrvalue[aCHA] >= 13]]></exprreq>
</thing>
<thing id="ft5CKeenMi" name="Keen Mind" description="Increase your Intelligence score by 1, to a maximum of 20.\n• You always know which way is north.\n• You always know the number of hours left before the next sunrise or sunset.\n• You can accurately recall anything you have seen or heard within the past month." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
#skillbonus[aINT] += 1]]></eval>
</thing>
<thing id="ft5CLightA" name="Lightly Armored" description="Increase your Strength or Dexterity score by 1, to a maximum of 20.\n• You gain proficiency with light armor." compset="Feat" uniqueness="useronce">
<fieldval field="usrCandid1" value="component.BaseAttr & (thingid.aSTR|thingid.aDEX)"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Increase the selected ability score by 1
field[usrChosen1].chosen.field[aStartMod].value += 1
~ Give proficiency with light armor
perform hero.assign[ArmProfGrp.ArmorLight]]]></eval>
</thing>
<thing id="ft5CLingui" name="Linguist" description="Increase your Intelligence score by 1, to a maximum of 20.\n• You learn three languages of your choice.\n• You can ably create written ciphers. Others can’t decipher a code you create unless you teach them, they succeed on an Intelligence check (DC equal to your Intelligence score + your proficiency bonus), or they use magic to decipher it." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
#skillbonus[aINT] += 1
hero.child[resLangBck].field[resMax].value += 3]]></eval>
</thing>
<thing id="ft5CLucky" name="Lucky" description="You have 3 luck points. Whenever you make an attack roll, an ability check, or a saving throw, you can spend one luck point to roll an additional d20. \n\n• You can choose to spend one of your luck points after you roll the die, but before the outcome is determined. You choose which of the d20s is used for the attack roll, ability check, or saving throw.\n• You can also spend one luck point when an attack roll is made against you. Roll a d20, and then choose whether the attack uses the attacker’s roll or yours.\n\nIf more than one creature spends a luck point to influence the outcome of a roll, the points cancel each other out; no additional dice are rolled.\nYou regain your expended luck points when you finish a long rest." compset="Feat" uniqueness="useronce">
<fieldval field="trkMax" value="3"/>
<usesource source="5ePHBCP"/>
<tag group="Usage" tag="LongRest"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="User" tag="Tracker"/>
</thing>
<thing id="ft5CMageSl" name="Mage Slayer" description="When a creature within 5 feet of you casts a spell, you can use your reaction to make a melee weapon attack against that creature.\n• When you damage a creature that is concentrating on a spell, that creature has disadvantage on the saving throw it makes to maintain its concentration.\n• You have advantage on saving throws against spells cast by creatures within 5 feet o f you." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
</thing>
<thing id="ft5CMagIni" name="Magic Initiate" description="You gain two cantrips and one 1st-level spell from the selected full caster class. Your spellcasting ability is the same as the class you selected.\n\n{b}Note:{/b} Once you select the class a new tab {b}Magic Initiate{/b} will appear allowing you to select your two cantrips and one 1st-level spell." compset="Feat" uniqueness="useronce">
<fieldval field="usrCandid1" value="component.Class & CasterSrc.? & (Helper.FullCaster|Helper.WarlocCast)"/>
<fieldval field="abValue5" value="2"/>
<usesource source="5ePHBCP"/>
<tag group="ChooseSrc1" tag="Thing"/>
<tag group="Helper" tag="ShowSpec"/>
<bootstrap thing="cfg5CMagIn"></bootstrap>
<eval phase="First" priority="10000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Make the Spells tab appear
perform hero.assign[Hero.Caster]
~ Get the ability score and the Spell Class tags
perform field[usrChosen1].chosen.pulltags[PrimeAbil.?,StandardDC]
perform field[usrChosen1].chosen.pulltags[sClass.?]
~ Set the ability score and spell tags onto the configurable
perform hero.childfound[cfg5CMagIn].pushtags[StandardDC.?]
perform hero.childfound[cfg5CMagIn].pushtags[sClass.?]
~ Set the total number of spells allowed (ie 2 which is .5 for each
~ cantrip and 1 for 1st level spell).
hero.childfound[cfg5CMagIn].field[cfgMaxSp1].value += field[abValue5].value
~ Remove the Staandard DC tag from this feat
perform delete[StandardDC.?]]]></eval>
</thing>
<thing id="ft5CMartiA" name="Martial Adept" description="You learn two maneuvers of your choice from among those available to the Battle Master archetype in the fighter class. If a maneuver you use requires your target to make a saving throw to resist the maneuver’s effects, the saving throw DC equals 8 + your proficiency bonus + your Strength or Dexterity modifier (your choice).\n• If you already have superiority dice, you gain one more; otherwise, you have one superiority die, which is a d6. This die is used to fuel your maneuvers. A superiority die is expended when you use it. You regain your expended superiority d ice when you finish a short or long rest." compset="Feat" summary="Gain 2 maneuvers from the Battle Master archetype." uniqueness="useronce">
<fieldval field="abValue" value="1"/>
<fieldval field="abValue2" value="6"/>
<fieldval field="trkMax" value="1"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="Usage" tag="Battle"/>
<tag group="abAction" tag="None"/>
<tag group="abRange" tag="Personal"/>
<tag group="abDuration" tag="Constant"/>
<tag group="LvNamePar" tag="DieCntVal"/>
<tag group="LvNamePar" tag="AppValue3"/>
<tag group="LvNamePar" tag="SignAppVal"/>
<tag group="LvNamePar" tag="DieSizVal2"/>
<bootstrap thing="cfg5CMarAd"></bootstrap>
<eval phase="PostLevel" priority="15000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If we already have the Superiority class ability increase
~ the number of dice by 1.
if (hero.childlives[c5CFtrSupD] + hero.childfound[c5CFtrSupD].tagis[Helper.ShowSpec] = 2) then
#trkmax[c5CFtrSupD] += 1
~..Show ourself on the In-Play tab
else
perform assign[User.Tracker]
endif]]></eval>
</thing>
<thing id="ft5CMedArM" name="Medium Armor Master" description="Wearing medium armor doesn’t impose disadvantage on your Dexterity (Stealth) checks.\n• When you wear medium armor, you can add 3, rather than 2, to your AC if you have a Dexterity of 16 or higher.\n\nPrerequisite: Proficiency with medium armor" compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="Final" priority="1000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
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)]]></eval>
<exprreq message="Proficiency with medium armor required. "><![CDATA[tagis[ArmProfGrp.ArmorMed] <> 0]]></exprreq>
</thing>
<thing id="ft5CMobile" name="Mobile" description="Your speed increases by 10 feet.\n• When you use the Dash action, difficult terrain doesn’t cost you extra movement on that turn.\n• When you make a melee attack against a creature, you don’t provoke opportunity attacks from that creature for the rest of the turn, whether you hit or not." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
hero.child[Speed].field[tSpeed].value += 10]]></eval>
</thing>
<thing id="ft5CModArm" name="Moderately Armored" description="Increase your Strength or Dexterity score by 1, to a maximum of 20.\n• You gain proficiency with medium armor and shields.\n\nPrerequisite: Proficiency with light armor" compset="Feat" uniqueness="useronce">
<fieldval field="usrCandid1" value="component.BaseAttr & (thingid.aSTR|thingid.aDEX)"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="ArmProfGrp" tag="Shields"/>
<tag group="ArmProfGrp" tag="ArmorMed"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Increase the selected ability score by 1
field[usrChosen1].chosen.field[aStartMod].value += 1
~ Give proficiency with Medium armor and Shields
perform hero.pushtags[ArmProfGrp.?]]]></eval>
<exprreq message="Proficiency with light armor required. "><![CDATA[tagis[ArmProfGrp.ArmorLight] <> 0]]></exprreq>
</thing>
<thing id="ft5CMountC" name="Mounted Combatant" description="You have advantage on melee attack rolls against any unmounted creature that is smaller than your mount.\n• You can force an attack targeted at your mount to target you instead.\n• If your mount is subjected to an effect that allows it to make a Dexterity saving throw to take only half damage, it instead takes no damage if it succeeds on the saving throw, and only half damage if it fails." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
</thing>
<thing id="ft5CObserv" name="Observant" description="Increase your Intelligence or Wisdom score by 1, to a maximum of 20.\n• If you can see a creature’s mouth while it is speaking a language you understand, you can interpret what it’s saying by reading its lips.\n• You have a +5 bonus to your passive Wisdom (Perception) and passive Intelligence (Investigation) scores." compset="Feat" uniqueness="useronce">
<fieldval field="actName" value="Passive Perception"/>
<fieldval field="usrCandid1" value="component.BaseAttr & (thingid.aWIS|thingid.aINT)"/>
<usesource source="5ePHBCP"/>
<tag group="User" tag="Activation"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Increase the selected ability score by 1
field[usrChosen1].chosen.field[aStartMod].value += 1]]></eval>
<eval phase="PostAttr" priority="1000" index="2"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
hero.child[skPercep].field[skPassive].value += 5
hero.child[skInvestig].field[skPassive].value += 5]]></eval>
</thing>
<thing id="ft5CPoleaM" name="Polearm Master" description="You gain the following benefits:\n• When you take the Attack action and attack with only a glaive, halberd, or quarterstaff, you can use a bonus action to make a melee attack with the opposite end of the weapon. The weapon’s damage die for this attack is a d4, and the attack deals bludgeoning damage. This attack uses the same ability modifier as the main attack. \n• While you are wielding a glaive, halberd, pike, or quarterstaff, other creatures provoke an opportunity attack from you when they enter your reach." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
</thing>
<thing id="ft5CResili" name="Resilient" description="Increase the chosen ability score by 1, to a maximum of 20.\n• You gain proficiency in saving throws using the chosen ability." compset="Feat" uniqueness="useronce">
<fieldval field="usrCandid1" value="component.BaseSave & !Hide.Save"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Pull the save proficiency tag and push to hero
perform field[usrChosen1].chosen.pulltags[ProfSave.?]
perform hero.pushtags[ProfSave.?]
~ Find the associated ability score and increase it by 1
hero.findchild[BaseAttr,field[usrChosen1].chosen.tagids[SaveAbil.?]].field[aStartMod].value += 1]]></eval>
</thing>
<thing id="ft5CRituaC" name="Ritual Caster" description="Prerequisite: Intelligence or Wisdom 13 or higher\n\nYou have learned a number of spells that you can cast as rituals. These spells are written in a ritual book, which you must have in hand while casting one of them.\n\nWhen you choose this feat, you acquire a ritual book holding two 1st-level spells of your choice. Choose one of the following classes: bard, cleric, druid, sorcerer, warlock, or wizard. You must choose your spells from that class’s spell list, and the spells you choose must have the ritual tag. The class you choose also determines your spellcasting ability for these spells: Charisma for bard, sorcerer, or warlock; Wisdom for cleric or druid; or Intelligence for wizard. \n\nIf you come across a spell in written form, such as a magical spell scroll or a wizard’s spellbook, you might be able to add it to your ritual book. The spell must be on the spell list for the class you chose, the spell’s level can be no higher than half your level (rounded up), and it must have the ritual tag. The process of copying the spell into your ritual book takes 2 hours per level of the spell, and costs 50 gp per level. The cost represents material components you expend as you experiment with the spell to master it, as well as the fine inks you need to record it.\n\n{b}Note:{/b} When adding rituals the new Ritual Caster tab will not restrict the number of spells you add. This is because like a wizards spellbook you can add an unlimited number." compset="Feat" summary="You have learned a number of spells that you can cast as rituals." uniqueness="useronce">
<fieldval field="usrCandid1" value="component.Class & CasterSrc.? & Helper.FullCaster"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="ChooseSrc1" tag="Thing"/>
<bootstrap thing="cfg5CRitCa"></bootstrap>
<eval phase="First" priority="10000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Make the Spells tab appear
perform hero.assign[Hero.Caster]
~ Get the ability score and the Spell Class tags
perform field[usrChosen1].chosen.pulltags[PrimeAbil.?,StandardDC]
perform field[usrChosen1].chosen.pulltags[sClass.?]
~ Set the ability score and spell tags onto the configurable
perform hero.childfound[cfg5CRitCa].pushtags[StandardDC.?]
perform hero.childfound[cfg5CRitCa].pushtags[sClass.?]
~ Remove the Standard DC tag from this feat
perform delete[StandardDC.?]]]></eval>
</thing>
<thing id="ft5CSavagA" name="Savage Attacker" description="Once per turn when you roll damage for a melee weapon attack, you can reroll the weapon’s damage dice and use either total." compset="Feat" summary="Once per turn when you roll damage for a melee weapon attack, you can reroll the weapon’s damage dice and use either total." uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
</thing>
<thing id="ft5CSentin" name="Sentinel" description="When you hit a creature with an opportunity attack, the creature’s speed becomes 0 for the rest of the turn.\n• Creatures within 5 feet o f you provoke opportunity attacks from you even if they take the Disengage action before leaving your reach.\n• When a creature makes an attack against a target other than you (and that target doesn’t have this feat), you can use your reaction to make a melee weapon attack against the attacking creature." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
</thing>
<thing id="ft5CSharps" name="Sharpshooter" description="Attacking at long range doesn't impose disadvantage on your ranged weapon attack rolls.\n• Your ranged weapon attacks ignore half cover and three-quarters cover.\n• Before you make an attack with a ranged weapon that you are proficient with, you can choose to take a - 5 penalty to the attack roll. If the attack hits, you add +10 to the attack’s damage." compset="Feat" uniqueness="useronce">
<fieldval field="actName" value="Activate Sharpshooter (-5 to hit, +10 dmg)"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="User" tag="Activation"/>
<eval phase="Final" priority="10000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If not active get out now!
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]]></eval>
</thing>
<thing id="ft5CShielM" name="Shield Master" description="If you take the Attack action on your turn, you can use a bonus action to try to shove a creature within 5 feet of you with your shield.\n• If you aren’t incapacitated, you can add your shield’s AC bonus to any Dexterity saving throw you make against a spell or other harmful effect that targets only you.\n• If you are subjected to an effect that allows you to make a Dexterity saving throw to take only half damage, you can use your reaction to take no damage if you succeed on the saving throw, interposing your shield between yourself and the source of the effect." compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
</thing>
<thing id="ft5CSkille" name="Skilled" description="You gain proficiency in any combination of three skills or tools of your choice." compset="Feat" summary="You gain proficiency in any combination of three skills or tools of your choice." uniqueness="useronce">
<fieldval field="abValue" value="3"/>
<usesource source="5ePHBCP"/>
<tag group="ChooseSrc1" tag="Thing"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="ChooseSrc2" tag="Thing"/>
<eval phase="PostLevel" priority="10000" index="2"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
var NumOfProf as number
~ Increase or decrease the number of proficiencies
NumOfProf = field[abValue].value
call 5CAddProf]]></eval>
</thing>
<thing id="ft5CSkulk" name="Skulker" description="You can try to hide when you are lightly obscured from the creature from which you are hiding.\n• When you are hidden from a creature and miss it with a ranged weapon attack, making the attack doesn't reveal your position.\n• Dim light doesn’t impose disadvantage on your Wisdom (Perception) checks relying on sight.\n\nPrerequisite: Dexterity 13 or higher" compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<exprreq message="Dexterity 13 required. "><![CDATA[#attrvalue[aDEX] >= 13]]></exprreq>
</thing>
<thing id="ft5CTaverB" name="Tavern Brawler" description="Increase your Strength or Constitution score by 1, to a maximum of 20.\n• You are proficient with improvised weapons.\n• Your unarmed strike uses a d4 for damage.\n• When you hit a creature with an unarmed strike or an improvised weapon on your turn, you can use a bonus action to attempt to grapple the target." compset="Feat" uniqueness="useronce">
<fieldval field="usrCandid1" value="component.BaseAttr & (thingid.aSTR|thingid.aCON)"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="WepProf" tag="w5CImMeWe"/>
<tag group="WepProf" tag="w5CImRaWe"/>
<bootstrap thing="wUnarmed">
<assignval field="wDieCount" value="1"/>
<assignval field="wDieSize" value="4"/>
</bootstrap>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Increase the selected ability score by 1
field[usrChosen1].chosen.field[aStartMod].value += 1
~ Push all weapon proficiencies to the hero
perform hero.pushtags[WepProf.?]]]></eval>
</thing>
<thing id="ft5CTough" name="Tough" description="Your hit point maximum increases by an amount equal to twice your level when you gain this feat. Whenever you gain a level thereafter, your hit point maximum increases by an additional 2 hit points." compset="Feat" summary="Your hit point maximum increases by an amount equal to twice your level when you gain this feat. Whenever you gain a level thereafter, your hit point maximum increases by an additional 2 hit points." uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<eval phase="PostLevel" priority="15000" index="2"><![CDATA[
~ if we've been disabled, get out now
doneif (tagis[Helper.Disable] = 1)
herofield[tBonusHP].value += field[abValue].value]]></eval>
<eval phase="PostLevel" priority="5000">field[abValue].value += maximum(herofield[tHitDice].value, 1)*2</eval>
</thing>
<thing id="ft5CWaCast" name="War Caster" description="You have advantage on Constitution saving throws that you make to maintain your concentration on a spell when you take damage.\n• You can perform the somatic components of spells even when you have weapons or a shield in one or both hands.\n• When a hostile creature’s movement provokes an opportunity attack from you, you can use your reaction to cast a spell at the creature, rather than making an opportunity attack. The spell must have a casting time of 1 action and must target only that creature.\n\nPrerequisite: The ability to cast at least one spell" compset="Feat" uniqueness="useronce">
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<prereq message="You must be able to cast at least one spell. ">
<validate><![CDATA[
~ Test that the character has at least one spell
~ or spell-like ability. &
var HasSpells as number
Call 5CHasSpell
@valid = HasSpells]]></validate>
</prereq>
</thing>
<thing id="ft5CWeaMa" name="Weapon Master" description="Increase your Strength or Dexterity score by 1, to a maximum of 20. In addition you gain proficiency with four simple or martial weapons of your choice." compset="Feat" summary="Increase Str or Dex by 1." uniqueness="useronce">
<fieldval field="usrCandid1" value="component.BaseAttr & (thingid.aSTR|thingid.aDEX)"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="ChooseSrc1" tag="Hero"/>
<bootstrap thing="ft5CWeMa1"></bootstrap>
<bootstrap thing="ft5CWeMa2"></bootstrap>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Increase the selected ability score by 1
field[usrChosen1].chosen.field[aStartMod].value += 1]]></eval>
</thing>
<thing id="ft5CWeMa1" name="Weapon Master" description="You gain proficiency with four simple or martial weapons of your choice." compset="Feat" summary="You gain proficiency with four simple or martial weapons of your choice." uniqueness="useronce">
<comment>Note: This feat is setup with the Helper.Helper tag that should prevent it from being selectable.</comment>
<fieldval field="usrCandid1" value="component.BaseWep & (wProfReq.Martial|wProfReq.Simple) & !Helper.Helper"/>
<fieldval field="usrCandid2" value="component.BaseWep & (wProfReq.Martial|wProfReq.Simple) & !Helper.Helper"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="portal" tag="ClsAttrFt"/>
<tag group="ChooseSrc1" tag="Thing"/>
<tag group="ChooseSrc2" tag="Thing"/>
<tag group="Helper" tag="Helper"/>
<tag group="Helper" tag="Free"/>
<eval phase="PreLevel" priority="10000" index="2"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
doneif (field[usrChosen2].ischosen = 0)
~ Pull all the selected weapon proficiency tags to ourself
perform field[usrChosen1].chosen.pulltags[WepProf.?]
perform field[usrChosen2].chosen.pulltags[WepProf.?]
~ Now push both tags to the hero
perform hero.pushtags[WepProf.?]]]></eval>
<exprreq message="This is not a valid feat to choose!"><![CDATA[@ispick <> 0]]></exprreq>
</thing>
<thing id="ft5CWeMa2" name="Weapon Master" description="You gain proficiency with four simple or martial weapons of your choice." compset="Feat" summary="You gain proficiency with four simple or martial weapons of your choice." uniqueness="useronce">
<comment>Note: This feat is setup with the Helper.Helper tag that should prevent it from being selectable.</comment>
<fieldval field="usrCandid1" value="component.BaseWep & (wProfReq.Martial|wProfReq.Simple) & !Helper.Helper"/>
<fieldval field="usrCandid2" value="component.BaseWep & (wProfReq.Martial|wProfReq.Simple) & !Helper.Helper"/>
<usesource source="5ePHBCP"/>
<tag group="Helper" tag="ShowSpec"/>
<tag group="portal" tag="ClsAttrFt"/>
<tag group="ChooseSrc1" tag="Thing"/>
<tag group="ChooseSrc2" tag="Thing"/>
<tag group="Helper" tag="Helper"/>
<tag group="Helper" tag="Free"/>
<eval phase="PreLevel" priority="10000" index="2"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
doneif (field[usrChosen2].ischosen = 0)
~ Pull all the selected weapon proficiency tags to ourself
perform field[usrChosen1].chosen.pulltags[WepProf.?]
perform field[usrChosen2].chosen.pulltags[WepProf.?]
~ Now push both tags to the hero
perform hero.pushtags[WepProf.?]]]></eval>
<exprreq message="This is not a valid feat to choose!"><![CDATA[@ispick <> 0]]></exprreq>
</thing>
<thing id="f5CSpeSnip" name="Spell Sniper" description="When you cast a spell that requires you to make an attack roll, the spell’s range is doubled.\n• Your ranged spell attacks ignore half cover and three-quarters cover.\n• You learn one cantrip that requires an attack roll. Choose the cantrip from the bard, cleric, druid, sorcerer, warlock, or wizard spell list. Your spellcasting ability for this cantrip depends on the spell list you chose from: Charisma for bard, sorcerer, or warlock; Wisdom for cleric or druid; or Intelligence for wizard.\n\nPrerequisite: The ability to cast at least one spell" compset="Feat" uniqueness="useronce">
<fieldval field="usrCandid1" value="component.Class & CasterSrc.? & (Helper.FullCaster|Helper.WarlocCast)"/>
<fieldval field="abValue5" value="1"/>
<usesource source="5ePHBCP"/>
<tag group="ChooseSrc1" tag="Thing"/>
<tag group="Helper" tag="ShowSpec"/>
<bootstrap thing="cfg5CSpeSn"></bootstrap>
<eval phase="First" priority="10000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ If nothing chosen then get out now!
doneif (field[usrChosen1].ischosen = 0)
~ Make the Spells tab appear
perform hero.assign[Hero.Caster]
~ Get the ability score and the Spell Class tags
perform field[usrChosen1].chosen.pulltags[PrimeAbil.?,StandardDC]
perform field[usrChosen1].chosen.pulltags[sClass.?]
~ Set the ability score and spell tags onto the configurable
perform hero.childfound[cfg5CSpeSn].pushtags[StandardDC.?]
perform hero.childfound[cfg5CSpeSn].pushtags[sClass.?]
~ Set the total number of spells allowed (ie 2 which is .5 for each
~ cantrip and 1 for 1st level spell).
hero.childfound[cfg5CSpeSn].field[cfgMaxSp1].value += field[abValue5].value
~ Remove the Staandard DC tag from this feat
perform delete[StandardDC.?]]]></eval>
<prereq message="You must be able to cast at least one spell. ">
<validate><![CDATA[
~ Test that the character has at least one spell
~ or spell-like ability. &
var HasSpells as number
Call 5CHasSpell
@valid = HasSpells]]></validate>
</prereq>
</thing>
</document>