-
Notifications
You must be signed in to change notification settings - Fork 31
/
Copy pathCOM_5ePack_DSotDQ - Player Options.user
970 lines (887 loc) · 63.5 KB
/
COM_5ePack_DSotDQ - Player Options.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
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
<?xml version="1.0" encoding="UTF-8"?>
<document signature="Hero Lab Data">
<thing id="l5CDLAban" name="Abanasinian" description="{b}Rarity{/b}: Standard\n{b}Typical Speakers{/b}: Abanasinia\n{b}Script{/b}: Common" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLErgt" name="Ergot" description="{b}Rarity{/b}: Standard\n{b}Typical Speakers{/b}: Northern Ergoth\n{b}Script{/b}: Common" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLIstr" name="Istarian" description="{b}Rarity{/b}: Rare\n{b}Typical Speakers{/b}: Ancient Istarians\n{b}Script{/b}: Istarian" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLKndr" name="Kenderspeak" description="{b}Rarity{/b}: Standard\n{b}Typical Speakers{/b}: Goodlund, Hylo\n{b}Script{/b}: Common" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLKhrl" name="Kharolian" description="{b}Rarity{/b}: Standard\n{b}Typical Speakers{/b}: Plains of Dust, Tarsis\n{b}Script{/b}: Common" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLKhur" name="Khur" description="{b}Rarity{/b}: Standard\n{b}Typical Speakers{/b}: Khur\n{b}Script{/b}: Istarian" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLKthn" name="Kothian" description="{b}Rarity{/b}: Rare\n{b}Typical Speakers{/b}: Minotaurs\n{b}Script{/b}: Kothian" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLNrks" name="Nerakese" description="{b}Rarity{/b}: Rare\n{b}Typical Speakers{/b}: Neraka\n{b}Script{/b}: Istarian" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLNrdm" name="Nordmaarian" description="{b}Rarity{/b}: Standard\n{b}Typical Speakers{/b}: Nordmaar\n{b}Script{/b}: Istarian" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLOgre" name="Ogre" description="{b}Rarity{/b}: Rare\n{b}Typical Speakers{/b}: Blode, Kern\n{b}Script{/b}: Ogre" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="l5CDLSlmn" name="Solamnic" description="{b}Rarity{/b}: Standard\n{b}Typical Speakers{/b}: Sancrist, Solamnia\n{b}Script{/b}: Common" compset="Language" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="LangPreval" tag="NPC" name="NPC Race Languages" abbrev="NPC"/>
</thing>
<thing id="bck5CKngSol" name="Knight of Solamnia" compset="Background" uniqueness="unique">
<fieldval field="StartLang" value="2"/>
<fieldval field="StartGear" value="A rank insignia, a deck of cards, one set of common clothes, and 10 gp in a pouch"/>
<fieldval field="StartAll" value="A rank insignia, a deck of cards, one set of common clothes, and 10 gp in a pouch"/>
<usesource source="5eDSotDQA"/>
<tag group="ProfSkill" tag="skAthletic"/>
<tag group="ProfSkill" tag="skSurvival"/>
<bootstrap thing="ab5CSqrSol"></bootstrap>
<bootstrap thing="f5CSquireS"></bootstrap>
</thing>
<thing id="bck5CMgHghS" name="Mage of High Sorcery" compset="Background" uniqueness="unique">
<fieldval field="StartLang" value="2"/>
<fieldval field="StartGear" value="A bottle of colored ink, an ink pen, one set of common clothes, and 10 gp in a pouch"/>
<fieldval field="StartAll" value="A bottle of colored ink, an ink pen, one set of common clothes, and 10 gp in a pouch"/>
<usesource source="5eDSotDQA"/>
<tag group="ProfSkill" tag="skHistory"/>
<tag group="ProfSkill" tag="skArcana"/>
<bootstrap thing="ab5CInHgSrc"></bootstrap>
<bootstrap thing="f5CIniHSrc"></bootstrap>
</thing>
<thing id="ab5CSqrSol" name="Squire of Solamnia" description="You gain the Squire of Solamnia feat.\n\nAdditionally, the Knights of Solamnia provide you free, modest lodging and food within their fortresses or encampments." compset="Ability">
<tag group="Helper" tag="ShowSpec" name="Show Spec" abbrev="Show Spec"/>
</thing>
<thing id="ab5CInHgSrc" name="Initiate of High Sorcery" description="You gain the Initiate of High Sorcery feat.\n\nAdditionally, the Mages of High Sorcery provide you with free, modest lodging and food. This is provided indefinitely at any occupied Tower of High Sorcery, or for a single night at the home of a member of the organization." compset="Ability">
<tag group="Helper" tag="ShowSpec" name="Show Spec" abbrev="Show Spec"/>
</thing>
<thing id="r5CKender" name="Kender" description="Kender are the descendants of a gnomish lineage that was blessed with incredible curiosity and courage." compset="Race">
<fieldval field="rLanguages" value="1"/>
<fieldval field="cSkillMax" value="1"/>
<usesource source="5eDSotDQA"/>
<tag group="RaceSize" tag="Small11" name="Small" abbrev="Small"/>
<tag group="RaceType" tag="Normal" name="Normal (Player) Race" abbrev="Normal (Player) Race"/>
<tag group="AllowSkl1" tag="skInsight"/>
<tag group="AllowSkl1" tag="skInvestig"/>
<tag group="AllowSkl1" tag="skSleight"/>
<tag group="AllowSkl1" tag="skStealth"/>
<tag group="AllowSkl1" tag="skSurvival"/>
<bootstrap thing="lCommon"></bootstrap>
<bootstrap thing="ra5CLnA111"></bootstrap>
<bootstrap thing="tpHumanoid"></bootstrap>
<bootstrap thing="wUnarmed">
<autotag group="AttackTarg" tag="1Target"/>
</bootstrap>
<bootstrap thing="tt5CKender"></bootstrap>
<bootstrap thing="ra5CKndrCur"></bootstrap>
<bootstrap thing="ra5CKndFrls"></bootstrap>
<bootstrap thing="ra5CKndrTnt"></bootstrap>
<eval phase="First" priority="10"><![CDATA[ ~ We need to make this updated race look just like the
~ original version. So push Race, IsRace & RaceEquip
~ tags to the hero.
perform hero.assign[Race.r5CVGMGobl]
perform hero.assign[IsRace.r5CVGMGobl]
perform hero.assign[RaceEquip.r5CVGMGobl]]]></eval>
</thing>
<thing id="ra5CKndrCur" name="Kender Curiosity" description="You are proficient with one of these skills of your choice: Insight, Investigation, Sleight of Hand, Stealth, or Survival." compset="RaceSpec"></thing>
<thing id="ra5CKndFrls" name="Fearless" description="You have advantage on saves you make to avoid or end the frightened condition on yourself. \n\nWhen you fail such a saving throw, you can choose to succeed instead. Once you succeed on a saving throw in this way, you can't do so again until you complete a long rest." compset="RaceSpec">
<fieldval field="trkMax" value="1"/>
<tag group="Helper" tag="ShowSpec" name="Show Spec" abbrev="Show Spec"/>
<tag group="abAction" tag="None" name="No action" abbrev="None"/>
<tag group="User" tag="Tracker"/>
<tag group="FeatureTyp" tag="Special" name="Special" abbrev="Special"/>
<tag group="Usage" tag="LongRest"/>
<eval phase="Final" priority="10000"><![CDATA[
~if we've been replaced, get out now
doneif (tagis[Helper.Disable] <> 0)
#situational[hero.child[svAll],"Advantage to avoid or end being frightened",field[thingname].text]]]></eval>
</thing>
<thing id="ra5CKndrTnt" name="Taunt" description="You can use a bonus action to unleash a string of provocations at a creature within 60 feet of yourself that can hear and understand you. The target must succeed on a Wisdom saving throw, or it has disadvantage on attack rolls against targets other than you until the beginning of your next turn. The DC equals 8 + your proficiency bonus + your Intelligence, Wisdom, or Charisma modifier (choose when you select this race).\n\nYou can use this bonus action a number of times equaling your proficiency bonus, and you regain all spent uses when you complete a long rest." compset="RaceSpec">
<comment>StandardDC</comment>
<fieldval field="usrCandid1" value="component.BaseAttr & (IsAttr.aWIS | IsAttr.aCHA | IsAttr.aINT)"/>
<fieldval field="abRange" value="60"/>
<tag group="FeatureTyp" tag="Special" name="Special" abbrev="Special"/>
<tag group="Helper" tag="ActivMenu" name="ActivMenu" abbrev="ActivMenu"/>
<tag group="Helper" tag="ShowSpec" name="Show Spec" abbrev="Show Spec"/>
<tag group="Custom" tag="OnlyIfCaster1" name="OnlyIfCaster1" abbrev="OnlyIfCaster1"/>
<tag group="abSave" tag="aWIS"/>
<tag group="abAction" tag="Bonus"/>
<tag group="User" tag="Tracker"/>
<tag group="Usage" tag="LongRest"/>
<tag group="ChooseSrc1" tag="Hero" name="All Picks on Hero" abbrev="All Picks on Hero"/>
<tag group="Custom" tag="OnlyIfCaster2" name="OnlyIfCaster2" abbrev="OnlyIfCaster2"/>
<tag group="abRange" tag="Feet"/>
<tag group="User" tag="NoAutoName"/>
<tag group="LvNamePar" tag="IncAction"/>
<tag group="LvNamePar" tag="IncRange"/>
<eval phase="PostAttr" priority="10000" index="2"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
field[trkMax].value = hero.childfound[ProfBonus].field[tProfBonus].value]]></eval>
<eval phase="First"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
doneif (field[usrChosen1].ischosen = 0)
perform field[usrChosen1].chosen.pulltags[StandardDC.?]]]></eval>
</thing>
<thing id="f5CSquireS" name="Squire of Solamnia" description="Your training as a Knight of Solamnia grants you these benefits:\n\n{b}Mount Up.{/b} Mounting or dismounting costs you only 5 feet of movement.\n\n{b}Precise Strike.{/b} Once per turn, when you make a weapon attack roll against a creature, you can cause the attack roll to have advantage. If the attack hits, add 1d8 as a bonus to the attack's damage roll. You can use this benefit a number of times equaling your proficiency bonus, but a use is expended only if the attack hits. You regain all expended uses when you complete a long rest." compset="Feat" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<bootstrap thing="c5CSqrMntUp"></bootstrap>
<bootstrap thing="c5CSqrPrecSt"></bootstrap>
<prereq message="Prerequisite: Fighter, Paladin, or Knight of Solamnia">
<validate><![CDATA[@valid = 0
if (hero.childlives[bck5CKngSol] <>0) then
@valid = 1
elseif (#levelcount[Paladin] > 0) then
@valid = 1
elseif (#levelcount[Fighter] > 0) then
@valid = 1
endif]]></validate>
</prereq>
</thing>
<thing id="c5CSqrMntUp" name="Mount Up" description="Mounting or dismounting costs you only 5 feet of movement." compset="CustomSpec" uniqueness="unique">
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
</thing>
<thing id="c5CSqrPrecSt" name="Precise Strike" description="Once per turn, when you make a weapon attack roll against a creature, you can cause the attack roll to have advantage. If the attack hits, add 1d8 as a bonus to the attack's damage roll. You can use this benefit a number of times equaling your proficiency bonus, but a use is expended only if the attack hits. You regain all expended uses when you complete a long rest." compset="CustomSpec" uniqueness="unique">
<fieldval field="abText" value="+1d8"/>
<tag group="abAction" tag="None"/>
<tag group="User" tag="Tracker"/>
<tag group="Usage" tag="LongRest"/>
<tag group="LvNamePar" tag="AppText"/>
<tag group="FeatureTyp" tag="Special"/>
<eval phase="PostAttr" priority="10000"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
field[trkMax].value = hero.childfound[ProfBonus].field[tProfBonus].value]]></eval>
</thing>
<thing id="f5CKniCrown" name="Knight of the Crown" description="As a a Knight of Solamnia aligned with the Order of the Crown, you gain these benefits:\n\n{b}Ability Score Increase.{/b} Increase your Strength, Dexterity, or Constitution by 1, to a maximum of 20.\n\n{b}Commanding Rally.{/b} As a bonus action, you can command one ally within 30 feet of yourself to attack. If that ally can see or hear you, they can immediately use its reaction to make a single weapon attack. If the attack hits, the ally can add 1d8 rolled as a bonus to the attack's damage roll. You can use this bonus action a number of times equaling your proficiency bonus, and you regain all expended uses when you complete a long rest." compset="Feat" uniqueness="useronce">
<arrayval field="usrArray" index="0" value="Strength"/>
<arrayval field="usrArray" index="1" value="Dexterity"/>
<arrayval field="usrArray" index="2" value="Constitution"/>
<usesource source="5eDSotDQA"/>
<bootstrap thing="c5CKniComRal"></bootstrap>
<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
elseif (field[usrIndex].value = 2) then
hero.child[aCON].field[aStartMod].value += 1
endif]]></eval>
<pickreq thing="f5CSquireS"/>
<exprreq message="Requires Level 4"><![CDATA[#totallevelcount[] >= 4]]></exprreq>
</thing>
<thing id="c5CKniComRal" name="Commanding Rally" description="As a bonus action, you can command one ally within 30 feet of yourself to attack. If that ally can see or hear you, they can immediately use its reaction to make a single weapon attack. If the attack hits, the ally can add 1d8 rolled as a bonus to the attack's damage roll. You can use this bonus action a number of times equaling your proficiency bonus, and you regain all expended uses when you complete a long rest." compset="CustomSpec" uniqueness="unique">
<tag group="User" tag="Tracker"/>
<tag group="Usage" tag="LongRest"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="Bonus"/>
<tag group="LvNamePar" tag="IncAction"/>
<eval phase="PostAttr" priority="10000"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
field[trkMax].value = hero.childfound[ProfBonus].field[tProfBonus].value]]></eval>
</thing>
<thing id="f5CKniRose" name="Knight of the Rose" description="As a a Knight of Solamnia aligned with the Order of the Rose, you gain these benefits:\n\n{b}Ability Score Increase.{/b} Increase your Constitution, Wisdom, or Charisma by 1, to a maximum of 20.\n\n{b}Bolstering Rally.{/b} As a bonus action, you can encourage one creature you can see within 30 feet of yourself (you can choose yourself). If the target can see or hear you, the target gains temporary hit points equaling 1d8 + your proficiency bonus + the ability modifier of the ability score increased by this feat. You can use this bonus action a number of times equaling your proficiency bonus, and you regain all expended uses when you complete a long rest." compset="Feat" uniqueness="useronce">
<arrayval field="usrArray" index="0" value="Constitution"/>
<arrayval field="usrArray" index="1" value="Wisdom"/>
<arrayval field="usrArray" index="2" value="Charisma"/>
<usesource source="5eDSotDQA"/>
<bootstrap thing="c5CKniBolRal"></bootstrap>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
if (field[usrIndex].value = 0) then
hero.child[aCON].field[aStartMod].value += 1
elseif (field[usrIndex].value = 1) then
hero.child[aWIS].field[aStartMod].value += 1
elseif (field[usrIndex].value = 2) then
hero.child[aCHA].field[aStartMod].value += 1
endif]]></eval>
<pickreq thing="f5CSquireS"/>
<exprreq message="Requires Level 4"><![CDATA[#totallevelcount[] >= 4]]></exprreq>
</thing>
<thing id="c5CKniBolRal" name="Bolstering Rally" description="As a bonus action, you can encourage one creature you can see within 30 feet of yourself (you can choose yourself). If the target can see or hear you, the target gains temporary hit points equaling 1d8 + your proficiency bonus + the ability modifier of the ability score increased by this feat. You can use this bonus action a number of times equaling your proficiency bonus, and you regain all expended uses when you complete a long rest." compset="CustomSpec" uniqueness="unique">
<tag group="Usage" tag="LongRest"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="Bonus"/>
<tag group="LvNamePar" tag="IncAction"/>
<tag group="LvNamePar" tag="AppText"/>
<tag group="User" tag="Tracker"/>
<eval phase="PostAttr" priority="10000"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
field[trkMax].value = hero.childfound[ProfBonus].field[tProfBonus].value]]></eval>
<eval phase="Final" priority="10000" index="2"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
var iNum as number
iNum = hero.childfound[ProfBonus].field[tProfBonus].value
if (hero.childfound[f5CKniRose].field[usrIndex].value = 0) then
iNum += hero.childfound[aCON].field[aModBonus].value
elseif (hero.childfound[f5CKniRose].field[usrIndex].value = 1) then
iNum += hero.childfound[aWIS].field[aModBonus].value
elseif (hero.childfound[f5CKniRose].field[usrIndex].value = 2) then
iNum += hero.childfound[aCHA].field[aModBonus].value
endif
field[abText].text = "1d8" & signed(iNum) & " temp HP"]]></eval>
</thing>
<thing id="f5CKniSword" name="Knight of the Sword" description="As a a Knight of Solamnia aligned with the Order of the Sword, you gain these benefits:\n\n{b}Ability Score Increase.{/b} Increase your Intelligence, Wisdom, or Charisma by 1, to a maximum of 20.\n\n{b}Demoralizing Strike.{/b} Once per turn, when you hit a creature with a weapon attack roll, you can try to frighten that target. The target must make a Wisdom save (the DC is 8 + your proficiency bonus + the ability modifier of the score increased by this feat). On a failed save, the target is frightened of you until the end of your next turn. On a successful save, the target has disadvantage on the next attack roll it makes before the end of its next turn. You can use this benefit a number of times equaling your proficiency bonus, and you regain all expended uses when you complete a long rest." compset="Feat" uniqueness="useronce">
<arrayval field="usrArray" index="0" value="Intelligence"/>
<arrayval field="usrArray" index="1" value="Wisdom"/>
<arrayval field="usrArray" index="2" value="Charisma"/>
<usesource source="5eDSotDQA"/>
<bootstrap thing="c5CKniDemStr"></bootstrap>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
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
elseif (field[usrIndex].value = 2) then
hero.child[aCHA].field[aStartMod].value += 1
endif]]></eval>
<pickreq thing="f5CSquireS"/>
<exprreq message="Requires Level 4"><![CDATA[#totallevelcount[] >= 4]]></exprreq>
</thing>
<thing id="c5CKniDemStr" name="Demoralizing Strike" description="Once per turn, when you hit a creature with a weapon attack roll, you can try to frighten that target. The target must make a Wisdom save (the DC is 8 + your proficiency bonus + the ability modifier of the score increased by this feat). On a failed save, the target is frightened of you until the end of your next turn. On a successful save, the target has disadvantage on the next attack roll it makes before the end of its next turn. You can use this benefit a number of times equaling your proficiency bonus, and you regain all expended uses when you complete a long rest." compset="CustomSpec" uniqueness="unique">
<tag group="Usage" tag="LongRest"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
<tag group="abSave" tag="aWIS"/>
<tag group="User" tag="Tracker"/>
<eval phase="PostAttr" priority="10000"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
field[trkMax].value = hero.childfound[ProfBonus].field[tProfBonus].value]]></eval>
<eval phase="First" priority="1000" index="2"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
if (hero.childfound[f5CKniSword].field[usrIndex].value = 0) then
perform assign[StandardDC.aINT]
elseif (hero.childfound[f5CKniSword].field[usrIndex].value = 1) then
perform assign[StandardDC.aWIS]
elseif (hero.childfound[f5CKniSword].field[usrIndex].value = 2) then
perform assign[StandardDC.aCHA]
endif]]></eval>
</thing>
<thing id="cfg5CHighSorc" name="High Sorcery" description="Helper configurable for the Initiate of High Sorcery and the Adept of the ____ Robes feats." compset="Configure" uniqueness="unique">
<tag group="Helper" tag="SplMayExcd"/>
<tag group="Helper" tag="OutCfgSpl"/>
<eval phase="Final" priority="50000"><![CDATA[ ~ Loop through all the spell picks added on this configurable
foreach pick in hero from BaseSpell where "CfgSpell.cfg5CHighSorc"
perform eachpick.pulltags[sLevel.?]
perform eachpick.pulltags[ClsDenySp.?]
nexteach
foreach pick in hero from BaseSpell where "CfgSpell.cfg5CHighSorc & sLevel.0"
perform eachpick.assign[Helper.Cantrip]
nexteach
foreach pick in hero from BaseSpell where "CfgSpell.cfg5CHighSorc & !sLevel.0"
~ make us a racial spell so we can limit its use to 1/longrest
perform eachpick.assign[Helper.SpellLike]
perform eachpick.assign[Usage.LongRest]
eachpick.field[sNameMod].text = "Spell slot or"
eachpick.field[trkMax].value += 1
nexteach
~ If we have Class Deny Spells then remove those from the list. This
~ prevents the same spell from being added twice. This way we act
~ like the normal spell portal does.
if (tagcount[ClsDenySp.?] <> 0) then
field[cfgAllwSp1].text &= " & !(" & tagids[ClsDenySp.?,"|"] & ")"
field[cfgAllwSp2].text &= " & !(" & tagids[ClsDenySp.?,"|"] & ")"
endif]]></eval>
<eval phase="Render" priority="2147483647" index="2"><![CDATA[ var nLevel0 as number
var nLevel1 as number
var 0Text as string
var 1Text as string
~ Calculate the number of spells selected
nLevel0 = tagcount[sLevel.0]
nLevel1 = tagcount[sLevel.1]
~ Set default messages
0Text = "No more cantrips"
1Text = "no more 1st-level spells"
~ Set cantrip error messages
If (nLevel0 < 1) then
0Text = "1 more cantrip"
ElseIf (nLevel0 > 1) then
nLevel0 -= 1
0Text = nLevel0 & " fewer cantrip(s)"
Endif
~ Set 1st level error messages
If (nLevel1 = 0) then
1Text = "2 more 1st-level spells"
ElseIf (nLevel1 = 1) then
1Text = "1 more 1st-level spell"
ElseIf (nLevel1 > 2) then
nLevel1 = nLevel1 - 2
1Text = nLevel1 & " fewer 1st-level spell(s)"
Endif
field[cfgAdTxSp1].text = 0Text & ", " & 1Text & " needed."]]></eval>
<eval phase="Render" priority="2147483647" index="3"><![CDATA[ var nLevel2 as number
var 2Text as string
~ Calculate the number of spells selected
nLevel2 = tagcount[sLevel.2]
~ Set default messages
2Text = "No more 2nd-level spells"
~ Set 2nd level error messages
If (nLevel2 = 0) then
2Text = "1 more 2nd-level spell"
ElseIf (nLevel2 > 1) then
nLevel2 = nLevel2 - 1
2Text = nLevel2 & " fewer 2nd-level spell(s)"
Endif
field[cfgAdTxSp2].text = 2Text & " needed."]]></eval>
</thing>
<thing id="f5CIniHSrc" name="Initiate of High Sorcery" description="You've been trained by the Mages of High Sorcery.\n\nChoose from one of the three moons to influence your magic. You learn one cantrip of your choice from the wizard spell list, as well as two 1st-level spells based on what moon you have chosen, as specified below.\n\n{b}Black Moon{/b}. Choose two from {i}dissonant whispers{/i}, {i}false life{/i}, {i}hex{/i}, and {i}ray of sickness{/i}.\n{b}Red Moon{/b}. Choose two from {i}color spray{/i}, {i}disguise self{/i}, {i}feather fall{/i}, and {i}longstrider{/i}.\n{b}White Moon{/b}. Choose two from {i}comprehend languages{/i}, {i}detect evil and good{/i}, {i}protection from evil and good{/i}, and {i}shield{/i}.\n\nYou can cast each of the chosen 1st-level spells without using a spell slot, and you must complete a long rest before you can cast them in this way again. You can also cast the spells using any spell slots you may have.\n\nYour spellcasting ability for this feat's spells is Intelligence, Wisdom, or Charisma, chosen when you gain this feat.\n\n{i}Hero Lab Note: Choose your spells from the High Sorcery tab.{/i}" compset="Feat" uniqueness="useronce">
<fieldval field="usrCandid1" value="component.BaseAttr & (IsAttr.aWIS | IsAttr.aCHA | IsAttr.aINT)"/>
<arrayval field="usrArray" index="1" value="Red Moon"/>
<arrayval field="usrArray" index="2" value="White Moon"/>
<arrayval field="usrArray" index="0" value="Black Moon"/>
<usesource source="5eDSotDQA"/>
<tag group="ChooseSrc1" tag="Hero"/>
<tag group="User" tag="NoAutoName"/>
<bootstrap thing="cfg5CHighSorc"></bootstrap>
<eval phase="Final" priority="50000" index="2"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
var iSpells as string
if (field[usrIndex].value = 0) then
iSpells = "thingid.sp5CDissW | thingid.spFalsLife | thingid.sp5CHex | thingid.sp5CRaySi"
elseif (field[usrIndex].value = 1) then
iSpells = "thingid.spColoSpra | thingid.spDisgSelf | thingid.spFeatFall | thingid.spLongstri"
elseif (field[usrIndex].value = 2) then
iSpells = "thingid.spCompLang | thingid.spDeteEvil | thingid.spProtGoEv | thingid.spShield"
endif
perform hero.childfound[cfg5CHighSorc].setfocus
~ Set the total number of spells allowed (ie 1 for 1st level spell).
focus.field[cfgMaxSp1].value = 3
focus.field[cfgAllwSp1].text &= " & ((sClass.cHelpWiz & sLevel.0) | (" & iSpells & ")) & !Helper.Helper"]]></eval>
<eval phase="First"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ Make the Spells tab appear
perform hero.assign[Hero.Caster]]]></eval>
<prereq message="Prerequisite: Sorcerer, Wizard, or Mage of High Sorcery">
<validate><![CDATA[@valid = 0
if (hero.childlives[bck5CMgHghS] <>0) then
@valid = 1
elseif (#levelcount[Sorcerer] > 0) then
@valid = 1
elseif (#levelcount[Wizard] > 0) then
@valid = 1
endif]]></validate>
</prereq>
</thing>
<thing id="f5CAdptBlk" name="Adept of the Black Robes" description="You chose the black moon to influence your magic, and have been recognized by the Order of the Black Robes, thus gaining these benefits:\n\n{b}Ambitious Magic.{/b} You learn one 2nd-level spell of your choice. The 2nd-level spell must be from the enchantment or necromancy school of magic. You can cast the 2nd-level spell without a spell slot, and you must complete a long rest before you can cast it in this way again. You can also cast this spell using spell slots you have of the appropriate level. The spell's spellcasting ability is the one chosen for your Initiate of High Sorcery feat.\n\n{b}Life Channel.{/b} You can channel your life force into your magic. When a creature you can see within 60 feet of you fails a saving throw against a spell that deals damage that you cast, you can spend a number of Hit Dice equal to the level of the spell. Roll the spent Hit Dice and add them together. The damage that the creature takes increases by an amount equal to the total rolled.\n\n{i}Hero Lab Note: Choose your spell from the High Sorcery tab.{/i}" compset="Feat" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
<bootstrap thing="c5CAdpLifChn"></bootstrap>
<eval phase="Final" priority="50000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
perform hero.childfound[cfg5CHighSorc].setfocus
~ Set the total number of spells allowed
focus.field[cfgMaxSp2].value += 2
focus.field[cfgAllwSp2].text &= " & (sLevel.2) & (sSchool.Enchant | sSchool.Necromancy) & !Helper.Helper"]]></eval>
<exprreq message="Requires Level 4"><![CDATA[#totallevelcount[] >= 4]]></exprreq>
<prereq message="Prerequisite: Initiate of High Sorcery (Black Moon)">
<validate><![CDATA[@valid = 0
if (hero.childlives[f5CIniHSrc] <>0) then
if (hero.childfound[f5CIniHSrc].field[usrIndex].value = 0) then
@valid = 1
endif
endif]]></validate>
</prereq>
</thing>
<thing id="f5CAdptRed" name="Adept of the Red Robes" description="You chose the red moon to influence your magic, and have been recognized by the Order of the Red Robes, thus gaining these benefits:\n\n{b}Insightful Magic.{/b} You learn one 2nd-level spell of your choice. The 2nd-level spell must be from the illusion or transmutation school of magic. You can cast the 2nd-level spell without a spell slot, and you must complete a long rest before you can cast it in this way again. You can also cast this spell using spell slots you have of the appropriate level. The spell's spellcasting ability is the one chosen for your Initiate of High Sorcery feat.\n\n{b}Magical Balance.{/b} When you make an attack roll or an ability check and roll a 9 or lower on the d20, you can adjust fate and treat the roll as a 10. You can do this a number of times equaling your proficiency bonus, and you regain all expended uses when you complete a long rest.\n\n{i}Hero Lab Note: Choose your spell from the High Sorcery tab.{/i}" compset="Feat" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
<bootstrap thing="c5CAdpMgcBal"></bootstrap>
<eval phase="Final" priority="50000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
perform hero.childfound[cfg5CHighSorc].setfocus
~ Set the total number of spells allowed
focus.field[cfgMaxSp2].value += 2
focus.field[cfgAllwSp2].text &= " & (sLevel.2) & (sSchool.Illusion | sSchool.Transmutat) & !Helper.Helper"]]></eval>
<exprreq message="Requires Level 4"><![CDATA[#totallevelcount[] >= 4]]></exprreq>
<prereq message="Prerequisite: Initiate of High Sorcery (Red Moon)">
<validate><![CDATA[@valid = 0
if (hero.childlives[f5CIniHSrc] <>1) then
if (hero.childfound[f5CIniHSrc].field[usrIndex].value = 1) then
@valid = 1
endif
endif]]></validate>
</prereq>
</thing>
<thing id="c5CAdpMgcBal" name="Magical Balance" description="When you make an attack roll or an ability check and roll a 9 or lower on the d20, you can adjust fate and treat the roll as a 10. You can do this a number of times equaling your proficiency bonus, and you regain all expended uses when you complete a long rest." compset="CustomSpec" uniqueness="unique">
<tag group="abAction" tag="None"/>
<tag group="User" tag="Tracker"/>
<tag group="Usage" tag="LongRest"/>
<tag group="FeatureTyp" tag="Special"/>
<eval phase="PostAttr" priority="10000"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
field[trkMax].value = hero.childfound[ProfBonus].field[tProfBonus].value]]></eval>
</thing>
<thing id="c5CAdpLifChn" name="Life Channel" description="You can channel your life force into your magic. When a creature you can see within 60 feet of you fails a saving throw against a spell that deals damage that you cast, you can spend a number of Hit Dice equal to the level of the spell. Roll the spent Hit Dice and add them together. The damage that the creature takes increases by an amount equal to the total rolled." compset="CustomSpec" uniqueness="unique">
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
</thing>
<thing id="f5CAdptWht" name="Adept of the White Robes" description="You chose the white moon to influence your magic, and have been recognized by the Order of the White Robes, thus gaining these benefits:\n\n{b}Protective Magic.{/b} You learn one 2nd-level spell of your choice. The 2nd-level spell must be from the abjuration or divination school of magic. You can cast the 2nd-level spell without a spell slot, and you must complete a long rest before you can cast it in this way again. You can also cast this spell using spell slots you have of the appropriate level. The spell's spellcasting ability is the one chosen for your Initiate of High Sorcery feat.\n\n{b}Protective Ward.{/b} When you or a creature you can see within 30 feet of you takes damage, you can use your reaction to expend a spell slot and create protective magic around the target. Roll a number of d6s equal to the level of the spell slot expended and reduce the damage the target takes by the total rolled on those dice + your spellcasting ability modifier.\n\n{i}Hero Lab Note: Choose your spell from the High Sorcery tab.{/i}" compset="Feat" uniqueness="useronce">
<usesource source="5eDSotDQA"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
<bootstrap thing="c5CAdpPrtWrd"></bootstrap>
<eval phase="Final" priority="50000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
perform hero.childfound[cfg5CHighSorc].setfocus
~ Set the total number of spells allowed
focus.field[cfgMaxSp2].value += 2
focus.field[cfgAllwSp2].text &= " & (sLevel.2) & (sSchool.Abjur | sSchool.Divination) & !Helper.Helper"]]></eval>
<exprreq message="Requires Level 4"><![CDATA[#totallevelcount[] >= 4]]></exprreq>
<prereq message="Prerequisite: Initiate of High Sorcery (White Moon)">
<validate><![CDATA[@valid = 0
if (hero.childlives[f5CIniHSrc] <>1) then
if (hero.childfound[f5CIniHSrc].field[usrIndex].value = 2) then
@valid = 1
endif
endif]]></validate>
</prereq>
</thing>
<thing id="c5CAdpPrtWrd" name="Protective Ward" description="When you or a creature you can see within 30 feet of you takes damage, you can use your reaction to expend a spell slot and create protective magic around the target. Roll a number of d6s equal to the level of the spell slot expended and reduce the damage the target takes by the total rolled on those dice + your spellcasting ability modifier." compset="CustomSpec" uniqueness="unique">
<fieldval field="abRange" value="30"/>
<tag group="LvNamePar" tag="AppText"/>
<tag group="FeatureTyp" tag="Reaction"/>
<tag group="abAction" tag="Reaction"/>
<tag group="abRange" tag="Feet"/>
<tag group="LvNamePar" tag="IncRange"/>
<eval phase="Final" priority="100000" index="2"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
var iNum as number
iNum = hero.childfound[f5CIniHSrc].field[usrChosen1].chosen.field[aModBonus].value
field[abText].text = "Roll" & signed(iNum)]]></eval>
</thing>
<thing id="c5CSorLunar" name="Lunar Sorcerer" description="You or one of your ancestors has had great exposure to the powers of your world's moon or moons. Those powers manifest in your magic." compset="CustomSpec" summary="The moon empowers your sorcery." uniqueness="unique">
<usesource source="5eDSotDQA"/>
<tag group="Helper" tag="SpecUp" name="SpecUp" abbrev="SpecUp"/>
<tag group="SpecSource" tag="cHelpSor" name="Sorcerer" abbrev="Sorcerer"/>
<tag group="Helper" tag="Primary" name="Primary" abbrev="Primary"/>
<bootstrap thing="c5CSorLnrBns">
<autotag group="ClSpecWhen" tag="6"/>
</bootstrap>
<bootstrap thing="c5CSorLnrEmp">
<autotag group="ClSpecWhen" tag="14"/>
</bootstrap>
<bootstrap thing="c5CSorLnrEmb">
<autotag group="ClSpecWhen" tag="1"/>
</bootstrap>
<bootstrap thing="c5CSorLnrPhn">
<autotag group="ClSpecWhen" tag="18"/>
</bootstrap>
<bootstrap thing="c5CSorWaxWan">
<autotag group="ClSpecWhen" tag="6"/>
</bootstrap>
<bootstrap thing="c5CSorMnFire">
<autotag group="ClSpecWhen" tag="1"/>
</bootstrap>
</thing>
<thing id="c5CSorLnrEmb" name="Lunar Embodiment" description="You learn additional spells when you reach certain levels in the sorcerer class, as shown below. Each spell counts as a sorcerer spell for you, but does not count against your total number of sorcerer spells known.\n\nWhenever you complete along rest, you can choose which lunar phase (Full, Crescent, or New) is currently manifesting through your magic. While in a particular phase, you can cast the 1st-level spell associated with that phase without spending a spell slot. Once you have done so, you cannot cast it again in that manner until you complete a long rest.\n\nThe following are the spells for each phase and the sorcerer level at which you learn them:\n\n{b}Full Moon Spells.{/b} {i}shield{/i} (1st-level), {i}lesser restoration{/i} (3rd), {i}dispel magic{/i} (5th), {i}death ward{/i} (7th), {i}telepathic bond{/i} (9th)\n\n{b}Crescent Moon Spells.{/b} {i}color spray{/i} (1st), {i}alter self{/i} (3rd), {i}phantom steed{/i} (5th), {i}hallucinatory terrain{/i} (7th), {i}mislead{/i} (9th)\n\n{b}New Moon Spells.{/b} {i}ray of sickness{/i} (1st), {i}blindness/deafness{/i} (3rd), {i}vampiric touch{/i} (5th), {i}confusion{/i} (7th), {i}hold monster{/i} (9th)" compset="ClSpecial" summary="Gain additional spells depending on your lunar phase.">
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
<bootstrap thing="spDispMagi">
<containerreq phase="First" priority="500">fieldval:abValue = 1</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="5"/>
</bootstrap>
<bootstrap thing="spDeatWard">
<containerreq phase="First" priority="500">fieldval:abValue = 1</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="7"/>
</bootstrap>
<bootstrap thing="spTeleBond">
<containerreq phase="First" priority="500">fieldval:abValue = 1</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="9"/>
</bootstrap>
<bootstrap thing="spColoSpra">
<containerreq phase="First" priority="500">fieldval:abValue = 2</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="1"/>
</bootstrap>
<bootstrap thing="spAlteSelf">
<containerreq phase="First" priority="500">fieldval:abValue = 2</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="3"/>
</bootstrap>
<bootstrap thing="spPhanStee">
<containerreq phase="First" priority="500">fieldval:abValue = 2</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="5"/>
</bootstrap>
<bootstrap thing="spHallTerr">
<containerreq phase="First" priority="500">fieldval:abValue = 2</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="7"/>
</bootstrap>
<bootstrap thing="spMislead">
<containerreq phase="First" priority="500">fieldval:abValue = 2</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="9"/>
</bootstrap>
<bootstrap thing="sp5CRaySi">
<containerreq phase="First" priority="500">fieldval:abValue = 3</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="1"/>
</bootstrap>
<bootstrap thing="spBlinDeaf">
<containerreq phase="First" priority="500">fieldval:abValue = 3</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="3"/>
</bootstrap>
<bootstrap thing="spVampTouc">
<containerreq phase="First" priority="500">fieldval:abValue = 3</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="5"/>
</bootstrap>
<bootstrap thing="spConfusio">
<containerreq phase="First" priority="500">fieldval:abValue = 3</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="7"/>
</bootstrap>
<bootstrap thing="spHoldMons">
<containerreq phase="First" priority="500">fieldval:abValue = 3</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="9"/>
</bootstrap>
<bootstrap thing="spShield">
<containerreq phase="First" priority="500">fieldval:abValue = 1</containerreq>
<autotag group="Usage" tag="LongRest"/>
<autotag group="Helper" tag="SpellLike"/>
<assignval field="trkMax" value="1"/>
</bootstrap>
<bootstrap thing="spColoSpra">
<containerreq phase="First" priority="500">fieldval:abValue = 2</containerreq>
<autotag group="Usage" tag="LongRest"/>
<autotag group="Helper" tag="SpellLike"/>
<assignval field="trkMax" value="1"/>
</bootstrap>
<bootstrap thing="sp5CRaySi">
<containerreq phase="First" priority="500">fieldval:abValue = 3</containerreq>
<autotag group="Usage" tag="LongRest"/>
<autotag group="Helper" tag="SpellLike"/>
<assignval field="trkMax" value="1"/>
</bootstrap>
<bootstrap thing="spShield">
<containerreq phase="First" priority="500">fieldval:abValue = 1</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="1"/>
</bootstrap>
<bootstrap thing="spLessRest">
<containerreq phase="First" priority="500">fieldval:abValue = 1</containerreq>
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Known"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="BonusSplAt" tag="3"/>
</bootstrap>
<bootstrap thing="c5CSorLnrPhs"></bootstrap>
</thing>
<thing id="c5CSorMnFire" name="Moon Fire" description="You learn the {i}sacred flame{/i} cantrip, which doesn't count against the total number of sorcerer cantrips you know. When you cast the spell, you can target one creature as usual or target two creatures within range that are within 5 feet of each other." compset="ClSpecial" summary="You gain {i}sacred flame{/i} with an added benefit.">
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
<tag group="Custom" tag="MoonFire"/>
<bootstrap thing="spSacrFlam">
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Cantrip"/>
<autotag group="SpellType" tag="cHelpSor"/>
<autotag group="Custom" tag="MoonFire"/>
</bootstrap>
<eval phase="Final"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
foreach pick in hero where "thingid.spSacrFlam & Custom.MoonFire"
eachpick.field[CustDesc].text = eachpick.field[descript].text & "\n{b}Your Moon Fire ability allows you to target an additional creature within 5 feet of the first target when you cast this cantrip.{/b}"
nexteach]]></eval>
</thing>
<thing id="c5CSorLnrPhs" name="Lunar Phase" description="Select which phase of the moon you are currently in. You can change your phase whenever you complete a long rest." compset="CustomSpec" summary="Select what phase of the moon you're in." uniqueness="unique">
<fieldval field="usrLabelAr" value="Phase"/>
<arrayval field="usrArray" index="1" value="Crescent Moon"/>
<arrayval field="usrArray" index="2" value="New Moon"/>
<arrayval field="usrArray" index="0" value="Full Moon"/>
<tag group="Helper" tag="ActivMenu"/>
<eval phase="First" priority="400"><![CDATA[ doneif (tagis[Helper.Disable] <> 0)
var AbVal as number
AbVal = field[usrIndex].value + 1
hero.childfound[c5CSorLnrEmb].field[abValue].value = AbVal
hero.childfound[c5CSorLnrBns].field[abValue].value = AbVal
hero.childfound[c5CSorLnrEmp].field[abValue].value = AbVal
hero.childfound[c5CSorLnrPhn].field[abValue].value = AbVal]]></eval>
<eval phase="Final" priority="1000" index="2"><![CDATA[ doneif (tagis[Helper.Disable] <> 0)
doneif (hero.tagcount[Classes.Sorcerer] < 6)
field[CustDesc].text = field[descript].text & "\n\nAt 6th level, you gain the ability to use a bonus action to spend 1 sorcery point to change your current phase to another one."]]></eval>
</thing>
<thing id="c5CSorLnrBns" name="Lunar Boons" description="The current phase of your Lunar Embodiment can affect your Metamagic. Whenever you use Metamagic on a spell from a school of magic associated with your current lunar phase, you can reduce the sorcery points spent by 1 (minimum 0). You can utilize this reduction a number of times equaling your proficiency bonus, and you regain all spent uses when you complete a long rest.\n\nThe phase and its associated magic school is as follows:\n\n{b}Full Moon.{/b} Abjuration and divination\n\n{b}Crescent Moon.{/b} Illusion and transmutation\n\n{b}New Moon.{/b} Enchantment and necromancy" compset="ClSpecial" summary="Reduce sorcery point cost of certain spells.">
<tag group="Usage" tag="LongRest" name="/long rest" abbrev="/long rest"/>
<tag group="User" tag="Tracker" name="tracker" abbrev="tracker"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="Bonus"/>
<tag group="LvNamePar" tag="AppText"/>
<tag group="LvNamePar" tag="IncAction"/>
<eval phase="PostAttr"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
field[trkMax].value = hero.childfound[ProfBonus].field[tProfBonus].value
if (field[abValue].value = 1) then
field[abText].text = "Abj/Div"
elseif (field[abValue].value = 3) then
field[abText].text = "Ench/Necr"
elseif (field[abValue].value = 2) then
field[abText].text = "Ill/Trns"
endif]]></eval>
</thing>
<thing id="c5CSorWaxWan" name="Waxing and Waning" description="You gain the ability to use a bonus action to spend 1 sorcery point to change your current lunar phase to another one.\n\nTherefore you can cast the 1st-level spell from each phase's spell list without spending a spell slot. You must still be in the phase associated with the spell, and each spell still can only be cast in this manner once per long rest." compset="ClSpecial" summary="Spend a sorcery point to change phases.">
<tag group="FeatureTyp" tag="Special"/>
<tag group="abAction" tag="None"/>
</thing>
<thing id="c5CSorLnrEmp" name="Lunar Empowerment" description="While you are in a Lunar Embodiment phase, you gain another benefit associated with that phase:\n\n{b}Full Moon.{/b} You can use a bonus action to shed bright light in a 10-foot radius and dim light for another 10 feet or to end the light. Additionally, you and creatures of your choice have advantage on Intelligence (Investigation) and Wisdom (Perception) checks while within the bright light you shed.\n\n{b}Crescent Moon.{/b} You are resistant to necrotic and radiant damage.\n\n{b}New Moon.{/b} You have advantage on Dexterity (Stealth) checks. Additionally, while you are entirely in darkness, attack rolls have disadvantage against you." compset="ClSpecial" summary="Gain an additional benefit from your phase.">
<tag group="FeatureTyp" tag="Special"/>
<eval phase="First" priority="1000"><![CDATA[
doneif (tagis[Helper.Disable] <> 0)
if (field[abValue].value = 1) then
perform assign[abAction.Bonus]
perform assign[User.Activation]
field[actName].text = "Shedding Light (Bonus)"
if (field[abilActive].value <> 0) then
#situational[hero.child[skInvestig],"Advantage",field[thingname].text]
#situational[hero.child[skPercep],"Advantage",field[thingname].text]
endif
elseif (field[abValue].value = 2) then
perform assign[abAction.None]
perform hero.assign[DamageRes.dtNecrotic]
perform hero.assign[DamageRes.dtRadiant]
elseif (field[abValue].value = 3) then
perform assign[abAction.None]
#situational[hero.child[skStealth],"Advantage",field[thingname].text]
endif]]></eval>
</thing>
<thing id="c5CSorLnrPhn" name="Lunar Phenomenon" description="You can use a bonus action to activate a special ability granted by your phase. Alternatively, you can do this as part of the bonus action you use to change your lunar phase using the Waxing and Waning feature, activating the power of the lunar phase you are entering:\n\n{b}Full Moon.{/b} You momentarily radiate moonlight. Each creature of your choice within 30 feet of you must succeed on a Constitution save against your spell save DC or be blinded until the end of its next turn. In addition, one creature of your choice in that area regains 3d8 hit points.\n\n{b}Crescent Moon.{/b} You can magically teleport to an open space you can see within 60 feet of yourself. You can bring along one willing creature you can see within 5 feet of yourself. That creature teleports to an open space of your choice that you can see within 5 feet of your destination. In addition, you and that creature gain resistance to all damage until the beginning of your next turn.\n\n{b}New Moon.{/b} You emanate gloom for a moment. Each creature of your choice within 30 feet of you must succeed on a Dexterity save against your spell save DC or suffer 3d10 necrotic damage and have its speed reduced to 0 until the end of its next turn. Additionally, you become invisible until the end of your next turn, or until immediately after you make an attack roll or cast a spell.\n\nOnce you use one of these benefits, you can't use that ability again until you complete a long rest, unless you spend 5 sorcery points to use it again." compset="ClSpecial" summary="Gain a bonus action ability based on your current phase.">
<comment>1
30 feet
CON save vs SSDC
2
60 feet
3
30 feet
DEX save vs SSDC
3d10 necrotic</comment>
<tag group="abAction" tag="Bonus"/>
<tag group="FeatureTyp" tag="Special"/>
<bootstrap thing="c5CSorLnrEmp1">
<containerreq phase="First" priority="500"><![CDATA[fieldval:abValue = 1 & fieldval:abValue2 = 5]]></containerreq>
</bootstrap>
<bootstrap thing="c5CSorLnrEmp2">
<containerreq phase="First" priority="500"><![CDATA[fieldval:abValue = 2 & fieldval:abValue2 = 5]]></containerreq>
</bootstrap>
<bootstrap thing="c5CSorLnrEmp3">
<containerreq phase="First" priority="500"><![CDATA[fieldval:abValue = 3 & fieldval:abValue2 = 5]]></containerreq>
</bootstrap>
<eval phase="First" priority="450"><![CDATA[ doneif (tagis[Helper.Disable] <> 0)
doneif (hero.tagcount[Classes.Sorcerer] < 18)
field[abValue2].value = 5]]></eval>
</thing>
<thing id="c5CSorLnrEmp1" name="Lunar Phenomenon: Full Moon" description="You can use a bonus action to activate this ability, granted by your Full Moon phase. Alternatively, you can do this as part of the bonus action you use to change your lunar phase using the Waxing and Waning feature, activating this power as you enter the Full Moon phase.\n\nYou momentarily radiate moonlight. Each creature of your choice within 30 feet of you must succeed on a Constitution save against your spell save DC or be blinded until the end of its next turn. In addition, one creature of your choice in that area regains 3d8 hit points.\n\nOnce you use one of this phase's ability, you can't use it again until you complete a long rest, unless you spend 5 sorcery points to use it again." compset="CustomSpec" summary="Radiate moonlight to blind foes and heal an ally." uniqueness="unique">
<fieldval field="trkMax" value="1"/>
<fieldval field="abRange" value="30"/>
<tag group="User" tag="Tracker"/>
<tag group="abAction" tag="Bonus"/>
<tag group="Usage" tag="LongRest"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="abRange" tag="Feet"/>
<tag group="abSave" tag="aCON"/>
<tag group="LvNamePar" tag="IncAction"/>
<tag group="LvNamePar" tag="IncRange"/>
<eval phase="Final" priority="50000">field[abDC].value = hero.childfound[cHelpSor].field[cSplSaveDC].value</eval>
</thing>
<thing id="c5CSorLnrEmp2" name="Lunar Phenomenon: Crescent Moon" description="You can use a bonus action to activate this ability, granted by your Crescent Moon phase. Alternatively, you can do this as part of the bonus action you use to change your lunar phase using the Waxing and Waning feature, activating this power as you enter the Crescent Moon phase.\n\nYou can magically teleport to an open space you can see within 60 feet of yourself. You can bring along one willing creature you can see within 5 feet of yourself. That creature teleports to an open space of your choice that you can see within 5 feet of your destination. In addition, you and that creature gain resistance to all damage until the beginning of your next turn.\n\nOnce you use one of this phase's ability, you can't use it again until you complete a long rest, unless you spend 5 sorcery points to use it again." compset="CustomSpec" summary="Teleport yourself and an ally up to 60 feet." uniqueness="unique">
<fieldval field="abRange" value="60"/>
<fieldval field="trkMax" value="1"/>
<tag group="abAction" tag="Bonus"/>
<tag group="abRange" tag="Feet"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="User" tag="Tracker"/>
<tag group="Usage" tag="LongRest"/>
<tag group="LvNamePar" tag="IncAction"/>
<tag group="LvNamePar" tag="IncRange"/>
</thing>
<thing id="c5CSorLnrEmp3" name="Lunar Phenomenon: New Moon" description="You can use a bonus action to activate this ability, granted by your New Moon phase. Alternatively, you can do this as part of the bonus action you use to change your lunar phase using the Waxing and Waning feature, activating this power as you enter the New Moon phase.\n\nYou emanate gloom for a moment. Each creature of your choice within 30 feet of you must succeed on a Dexterity save against your spell save DC or suffer 3d10 necrotic damage and have its speed reduced to 0 until the end of its next turn. Additionally, you become invisible until the end of your next turn, or until immediately after you make an attack roll or cast a spell.\n\nOnce you use one of this phase's ability, you can't use it again until you complete a long rest, unless you spend 5 sorcery points to use it again." compset="CustomSpec" summary="Radiate gloom to damage and slow a foe and become invisible." uniqueness="unique">
<fieldval field="abRange" value="30"/>
<fieldval field="trkMax" value="1"/>
<fieldval field="abText" value="3d10 necrotic"/>
<tag group="abAction" tag="Bonus"/>
<tag group="abRange" tag="Feet"/>
<tag group="User" tag="Tracker"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="Usage" tag="LongRest"/>
<tag group="abSave" tag="aDEX"/>
<tag group="LvNamePar" tag="AppText"/>
<tag group="LvNamePar" tag="IncAction"/>
<tag group="LvNamePar" tag="IncRange"/>
<eval phase="Final" priority="50000">field[abDC].value = hero.childfound[cHelpSor].field[cSplSaveDC].value</eval>
</thing>
<thing id="f5CDivFavrd" name="Divinely Favored" description="A deity has imbued you with a small aspect of their power.\n\nYou learn one cantrip of your choice from the cleric spell list and one 1st-level spell, based on your character's alignment. You also learn the {i}augury{/i} spell.\n{font Courier New}\n{b}Alignment 1st-Level Spell{/b}\nGood 1 cleric spell\nNeutral 1 druid spell\nEvil 1 warlock spell{revert}\n\nYou can cast the 1st-level spell and {i}augury{/i} without a spell slot, and you must complete a long rest before you can cast either of these spells in that manner again. You can also cast these spells using spell slots you have of the appropriate level.\n\nYour spellcasting ability for this feat's spells is Intelligence, Wisdom, or Charisma (choose when you select this feat).\n\nAdditionally, you can use a holy symbol as a spellcasting focus for any spell you cast that uses the chosen spellcasting ability." compset="Feat" uniqueness="useronce">
<fieldval field="usrCandid1" value="component.BaseAttr & (IsAttr.aWIS | IsAttr.aCHA | IsAttr.aINT)"/>
<usesource source="5eDSotDQA"/>
<tag group="abAction" tag="None"/>
<tag group="FeatureTyp" tag="Special"/>
<tag group="ChooseSrc1" tag="Hero"/>
<tag group="User" tag="NoAutoName"/>
<tag group="Custom" tag="OnlyIfCaster2"/>
<bootstrap thing="cfg5CDivFvrd"></bootstrap>
<bootstrap thing="spAugury">
<autotag group="Helper" tag="SpellLike"/>
<autotag group="Usage" tag="LongRest"/>
<assignval field="trkMax" value="1"/>
</bootstrap>
<bootstrap thing="spAugury">
<autotag group="Helper" tag="Free"/>
<autotag group="Helper" tag="Memorized"/>
<autotag group="Hide" tag="Spell"/>
<autotag group="Custom" tag="OnlyIfCaster2"/>
</bootstrap>
<eval phase="First" index="3"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
~ Make the Spells tab appear
perform hero.assign[Hero.Caster]]]></eval>
<eval phase="Final" priority="50000"><![CDATA[
~ If we're disabled, do nothing &
doneif (tagis[Helper.Disable] = 1)
var iCls as string
if (hero.tagcount[Alignment.Good] <> 0) then
iCls = "sClass.cHelpClr"
elseif (hero.tagcount[Alignment.NeutralGE] <> 0) then
iCls = "sClass.cHelpDrd"
elseif (hero.tagcount[Alignment.Evil] <> 0) then
iCls = "sClass.cHelpWlk"
endif
perform hero.childfound[cfg5CDivFvrd].setfocus
~ Set the total number of spells allowed
focus.field[cfgMaxSp1].value += 1
focus.field[cfgMaxSp2].value += 1
focus.field[cfgAllwSp2].text &= " & " & iCls]]></eval>
<eval phase="Final" priority="10000" index="4">call 5CShowSpls</eval>
<exprreq message="Requires Level 4"><![CDATA[#totallevelcount[] >= 4]]></exprreq>
</thing>
<thing id="cfg5CDivFvrd" name="Divinely Favored" description="Helper configurable for the Divinely Favored feat." compset="Configure" uniqueness="unique">
<fieldval field="cfgAllwSp1" value="component.BaseSpell & sClass.cHelpClr & sLevel.0 & !Helper.Helper"/>
<fieldval field="cfgAllwSp2" value="component.BaseSpell & sLevel.1 & !Helper.Helper"/>
<tag group="Helper" tag="SplMayExcd"/>
<tag group="Helper" tag="OutCfgSpl"/>
<eval phase="Render" priority="2147483647" index="3"><![CDATA[
var nLevel2 as number
var 2Text as string
~ Calculate the number of spells selected
nLevel2 = tagcount[sLevel.1]
~ Set default messages
2Text = "No more 1st-level spells"
~ Set 2nd level error messages
If (nLevel2 = 0) then
2Text = "1 more 1st-level spell"
ElseIf (nLevel2 > 1) then
nLevel2 = nLevel2 - 1
2Text = nLevel2 & " fewer 1st-level spell(s)"
Endif
field[cfgAdTxSp2].text = 2Text & " needed."]]></eval>
<eval phase="Final" priority="50000"><![CDATA[ ~ Loop through all the spell picks added on this configurable
foreach pick in hero from BaseSpell where "CfgSpell.cfg5CDivFvrd"
perform eachpick.pulltags[sLevel.?]
perform eachpick.pulltags[ClsDenySp.?]
nexteach
foreach pick in hero from BaseSpell where "CfgSpell.cfg5CDivFvrd & sLevel.0"
perform eachpick.assign[Helper.Cantrip]
nexteach
foreach pick in hero from BaseSpell where "CfgSpell.cfg5CDivFvrd & !sLevel.0"
~ make us a racial spell so we can limit its use to 1/longrest
perform eachpick.assign[Helper.SpellLike]
perform eachpick.assign[Usage.LongRest]
eachpick.field[sNameMod].text = "Spell slot or"
eachpick.field[trkMax].value += 1
nexteach
~ If we have Class Deny Spells then remove those from the list. This
~ prevents the same spell from being added twice. This way we act
~ like the normal spell portal does.
if (tagcount[ClsDenySp.?] <> 0) then
field[cfgAllwSp1].text &= " & !(" & tagids[ClsDenySp.?,"|"] & ")"
field[cfgAllwSp2].text &= " & !(" & tagids[ClsDenySp.?,"|"] & ")"
endif]]></eval>
<eval phase="Render" priority="2147483647" index="2"><![CDATA[
var nLevel0 as number
var 0Text as string
~ Calculate the number of spells selected
nLevel0 = tagcount[sLevel.0]
~ Set default messages
0Text = "No more cantrips"
~ Set cantrip error messages
If (nLevel0 < 1) then
0Text = "1 more cantrip"
ElseIf (nLevel0 > 1) then
nLevel0 -= 1
0Text = nLevel0 & " fewer cantrip(s)"
Endif
field[cfgAdTxSp1].text = 0Text & " needed."]]></eval>
</thing>
</document>