From 147cb0ed2123f54decbd4961ce57be06c0485e5e Mon Sep 17 00:00:00 2001 From: Jaysyn904 <68194417+Jaysyn904@users.noreply.github.com> Date: Wed, 14 May 2025 07:55:59 -0400 Subject: [PATCH] Expanded Acolyte of the Ego for epic progression Expanded Acolyte of the Ego for epic progression. Added CheckInvokerAbilityFocus() to prc_enforce_feat.nss. --- nwn/nwnprc/trunk/2das/classes.2da | 2 +- nwn/nwnprc/trunk/2das/cls_bfeat_acego.2da | 122 +++++++------- nwn/nwnprc/trunk/2das/cls_feat_acego.2da | 153 +++++++++++++++--- nwn/nwnprc/trunk/scripts/prc_enforce_feat.nss | 45 ++++++ 4 files changed, 242 insertions(+), 80 deletions(-) diff --git a/nwn/nwnprc/trunk/2das/classes.2da b/nwn/nwnprc/trunk/2das/classes.2da index 14352f43..bfead512 100644 --- a/nwn/nwnprc/trunk/2das/classes.2da +++ b/nwn/nwnprc/trunk/2das/classes.2da @@ -159,7 +159,7 @@ 155 Fist_Hextor 16790640 16822390 16822391 16822392 16822393 IR_HEXTOR 10 CLS_ATK_1 CLS_FEAT_HEXTOR CLS_SAVTHR_FIGHT CLS_SKILL_HEXTOR CLS_BFEAT_HEXTOR 2 **** **** 1 0 12 16 14 8 14 12 STR 0X0C 0X3 0 CLASS_TYPE_HEXTOR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_HEXTOR 40 0 0 0 10 0 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 156 IncandescentChampion 16790641 16837917 16837918 16837919 16837920 IR_TEMPEST 10 CLS_ATK_2 CLS_FEAT_INCAND CLS_SAVTHR_WIZ CLS_SKILL_INCAND CLS_BFEAT_INCAND 2 **** **** 1 0 16 14 14 14 10 8 STR 0X08 0X2 1 CLASS_TYPE_INCANDESCENT_CHAMPION 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_INCAND 40 0 0 0 10 17 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 157 JusticeOfWealdAndWoe 16790642 16847276 16847277 16847278 16847279 IR_JUSTWW 8 CLS_ATK_2 CLS_FEAT_JUSTWW CLS_SAVTHR_WILD CLS_SKILL_JUSTWW CLS_BFEAT_JUSTWW 4 CLS_SPGN_JUSTWW CLS_SPKN_JUSTWW 1 1 12 16 14 8 14 12 DEX 0x00 0x0 0 CLASS_TYPE_JUSTICEWW 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_JUSTWW 40 0 0 0 10 4 3 **** **** **** **** **** **** **** **** **** Justiceww **** **** **** **** **** -158 AcolyteOfTheEgo 16790643 16834483 16834484 16834484 16834486 ir_acolyteego 8 CLS_ATK_1 CLS_FEAT_ACEGO CLS_SAVTHR_FIGHT CLS_SKILL_ACEGO CLS_BFEAT_ACEGO 4 **** **** 1 0 15 9 14 13 10 15 WIS 0X00 0X0 0 CLASS_TYPE_ACOLYTE_EGO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ACEGO 10 0 0 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** +158 AcolyteOfTheEgo 16790643 16834483 16834484 16834484 16834486 ir_acolyteego 8 CLS_ATK_1 CLS_FEAT_ACEGO CLS_SAVTHR_FIGHT CLS_SKILL_ACEGO CLS_BFEAT_ACEGO 4 **** **** 1 0 15 9 14 13 10 15 WIS 0X00 0X0 0 CLASS_TYPE_ACOLYTE_EGO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ACEGO 40 0 0 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 159 Peerless_Archer 16790644 16822520 16822521 16822522 16822523 IR_ARCHER 10 CLS_ATK_1 CLS_FEAT_PARCH CLS_SAVTHR_FIGHT CLS_SKILL_PARCH CLS_BFEAT_PARCH 2 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_PEERLESS 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_PARCH 10 0 0 0 10 55 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 160 Lasher 16790645 16824616 16824617 16824618 16824619 IR_LASHER 10 CLS_ATK_1 CLS_FEAT_LASHER CLS_SAVTHR_ROG CLS_SKILL_LASHER CLS_BFEAT_LASHER 2 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_LASHER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_LASHER 40 0 0 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 161 Bow_Initiate 16790646 16826374 16826375 16826376 16826377 IR_OOTBI 8 CLS_ATK_1 CLS_FEAT_OOTBI CLS_SAVTHR_BARD CLS_SKILL_OOTBI CLS_BFEAT_OOTBI 2 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_ORDER_BOW_INITIATE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_OOTBI 40 0 0 0 10 10 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** diff --git a/nwn/nwnprc/trunk/2das/cls_bfeat_acego.2da b/nwn/nwnprc/trunk/2das/cls_bfeat_acego.2da index f770a0de..436e3f20 100644 --- a/nwn/nwnprc/trunk/2das/cls_bfeat_acego.2da +++ b/nwn/nwnprc/trunk/2das/cls_bfeat_acego.2da @@ -1,63 +1,63 @@ 2DA V2.0 - Bonus -0 0 -1 1 -2 0 -3 1 -4 0 -5 1 -6 1 -7 1 -8 0 -9 1 -10 0 -11 0 -12 0 -13 0 -14 0 -15 0 -16 0 -17 0 -18 0 -19 0 -20 0 -21 0 -22 0 -23 0 -24 0 -25 0 -26 0 -27 0 -28 0 -29 0 -30 0 -31 0 -32 0 -33 0 -34 0 -35 0 -36 0 -37 0 -38 0 -39 0 -40 0 -41 0 -42 0 -43 0 -44 0 -45 0 -46 0 -47 0 -48 0 -49 0 -50 0 -51 0 -52 0 -53 0 -54 0 -55 0 -56 0 -57 0 -58 0 -59 0 + Bonus +0 0 +1 1 +2 0 +3 1 +4 0 +5 1 +6 1 +7 1 +8 0 +9 1 +10 0 +11 0 +12 1 +13 0 +14 0 +15 1 +16 0 +17 0 +18 1 +19 0 +20 0 +21 1 +22 0 +23 0 +24 1 +25 0 +26 0 +27 1 +28 0 +29 0 +30 1 +31 0 +32 0 +33 1 +34 0 +35 0 +36 1 +37 0 +38 0 +39 1 +40 0 +41 0 +42 1 +43 0 +44 0 +45 1 +46 0 +47 0 +48 1 +49 0 +50 0 +51 1 +52 0 +53 0 +54 1 +55 0 +56 0 +57 1 +58 0 +59 0 diff --git a/nwn/nwnprc/trunk/2das/cls_feat_acego.2da b/nwn/nwnprc/trunk/2das/cls_feat_acego.2da index 1c529bd2..6958c5de 100644 --- a/nwn/nwnprc/trunk/2das/cls_feat_acego.2da +++ b/nwn/nwnprc/trunk/2das/cls_feat_acego.2da @@ -1,20 +1,137 @@ 2DA V2.0 - FeatLabel FeatIndex List GrantedOnLevel OnMenu -0 Cadence_Bull 1853 2 -1 1 -1 Cadence_Iron 1854 2 -1 1 -2 Cadence_Heart 1855 2 -1 1 -3 Cadence_Swallow 1856 2 -1 1 -4 Cadence_Wound 1857 2 -1 1 -5 Cadence_Fool 1858 2 -1 1 -6 Cadence_Fort 1859 2 -1 1 -7 Cadence_Fright 1860 2 -1 1 -8 Cadence_Drake 1861 2 -1 1 -9 Cadence_Step 1862 2 -1 1 -10 ResonantVoice 1863 3 3 1 -11 PersonalTruename 1864 3 7 0 -12 RECITATION_FORTIFIED 2167 2 -1 1 -13 RECITATION_MEDITATIVE 2168 2 -1 1 -14 RECITATION_MINDFUL 2169 2 -1 1 -15 RECITATION_SANGUINE 2170 2 -1 1 -16 RECITATION_VITAL 2171 2 -1 1 + FeatLabel FeatIndex List GrantedOnLevel OnMenu +0 ResonantVoice 1863 3 3 1 +1 PersonalTruename 1864 3 7 0 +2 EPIC_ACOLYTE_EGO 25064 3 11 0 +3 Cadence_Bull 1853 2 -1 1 +4 Cadence_Iron 1854 2 -1 1 +5 Cadence_Heart 1855 2 -1 1 +6 Cadence_Swallow 1856 2 -1 1 +7 Cadence_Wound 1857 2 -1 1 +8 Cadence_Fool 1858 2 -1 1 +9 Cadence_Fort 1859 2 -1 1 +10 Cadence_Fright 1860 2 -1 1 +11 Cadence_Drake 1861 2 -1 1 +12 Cadence_Step 1862 2 -1 1 +13 RECITATION_FORTIFIED 2167 2 -1 1 +14 RECITATION_MEDITATIVE 2168 2 -1 1 +15 RECITATION_MINDFUL 2169 2 -1 1 +16 RECITATION_SANGUINE 2170 2 -1 1 +17 RECITATION_VITAL 2171 2 -1 1 +18 FEAT_EPIC_ARMOR_SKIN 490 1 11 0 +19 FEAT_EPIC_BLINDING_SPEED 491 1 11 1 +20 FEAT_EPIC_ENERGY_RESISTANCE_COLD_1 533 1 11 0 +21 FEAT_EPIC_ENERGY_RESISTANCE_COLD_2 534 1 11 0 +22 FEAT_EPIC_ENERGY_RESISTANCE_COLD_3 535 1 11 0 +23 FEAT_EPIC_ENERGY_RESISTANCE_COLD_4 536 1 11 0 +24 FEAT_EPIC_ENERGY_RESISTANCE_COLD_5 537 1 11 0 +25 FEAT_EPIC_ENERGY_RESISTANCE_COLD_6 538 1 11 0 +26 FEAT_EPIC_ENERGY_RESISTANCE_COLD_7 539 1 11 0 +27 FEAT_EPIC_ENERGY_RESISTANCE_COLD_8 540 1 11 0 +28 FEAT_EPIC_ENERGY_RESISTANCE_COLD_9 541 1 11 0 +29 FEAT_EPIC_ENERGY_RESISTANCE_COLD_10 542 1 11 0 +30 FEAT_EPIC_ENERGY_RESISTANCE_ACID_1 543 1 11 0 +31 FEAT_EPIC_ENERGY_RESISTANCE_ACID_2 544 1 11 0 +32 FEAT_EPIC_ENERGY_RESISTANCE_ACID_3 545 1 11 0 +33 FEAT_EPIC_ENERGY_RESISTANCE_ACID_4 546 1 11 0 +34 FEAT_EPIC_ENERGY_RESISTANCE_ACID_5 547 1 11 0 +35 FEAT_EPIC_ENERGY_RESISTANCE_ACID_6 548 1 11 0 +36 FEAT_EPIC_ENERGY_RESISTANCE_ACID_7 549 1 11 0 +37 FEAT_EPIC_ENERGY_RESISTANCE_ACID_8 550 1 11 0 +38 FEAT_EPIC_ENERGY_RESISTANCE_ACID_9 551 1 11 0 +39 FEAT_EPIC_ENERGY_RESISTANCE_ACID_10 552 1 11 0 +40 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_1 553 1 11 0 +41 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_2 554 1 11 0 +42 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_3 555 1 11 0 +43 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_4 556 1 11 0 +44 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_5 557 1 11 0 +45 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_6 558 1 11 0 +46 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_7 559 1 11 0 +47 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_8 560 1 11 0 +48 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_9 561 1 11 0 +49 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_10 562 1 11 0 +50 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_1 563 1 11 0 +51 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_2 564 1 11 0 +52 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_3 565 1 11 0 +53 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_4 566 1 11 0 +54 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_5 567 1 11 0 +55 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_6 568 1 11 0 +56 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_7 569 1 11 0 +57 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_8 570 1 11 0 +58 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_9 571 1 11 0 +59 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_10 572 1 11 0 +60 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_1 573 1 11 0 +61 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_2 574 1 11 0 +62 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_3 575 1 11 0 +63 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_4 576 1 11 0 +64 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_5 577 1 11 0 +65 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_6 578 1 11 0 +66 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_7 579 1 11 0 +67 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_8 580 1 11 0 +68 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_9 581 1 11 0 +69 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_10 582 1 11 0 +70 FEAT_EPIC_PROWESS 584 1 11 0 +71 FEAT_EPIC_TOUGHNESS_1 754 1 11 0 +72 FEAT_EPIC_TOUGHNESS_2 755 1 11 0 +73 FEAT_EPIC_TOUGHNESS_3 756 1 11 0 +74 FEAT_EPIC_TOUGHNESS_4 757 1 11 0 +75 FEAT_EPIC_TOUGHNESS_5 758 1 11 0 +76 FEAT_EPIC_TOUGHNESS_6 759 1 11 0 +77 FEAT_EPIC_TOUGHNESS_7 760 1 11 0 +78 FEAT_EPIC_TOUGHNESS_8 761 1 11 0 +79 FEAT_EPIC_TOUGHNESS_9 762 1 11 0 +80 FEAT_EPIC_TOUGHNESS_10 763 1 11 0 +81 FEAT_EPIC_REFLEXES 4058 1 11 0 +82 FEAT_EPIC_SKILL_FOCUS_RIDE 3038 1 11 0 +83 FEAT_EPIC_SKILL_FOCUS_JUMP 3040 1 11 0 +84 FEAT_EPIC_SKILL_FOCUS_SENSE_MOTIVE 3042 1 11 0 +85 FEAT_EPIC_SKILL_FOCUS_MARTIAL_LORE 3044 1 11 0 +86 FEAT_EPIC_SKILL_FOCUS_BALANCE 3046 1 11 0 +87 FEAT_EPIC_SKILL_FOCUS_CRAFT_POISON 3048 1 11 0 +88 FEAT_EPIC_SKILL_FOCUS_PSICRAFT 3050 1 11 0 +89 FEAT_EPIC_SKILL_FOCUS_CLIMB 3052 1 11 0 +90 FEAT_EPIC_SKILL_FOCUS_CRAFT_GENERAL 3054 1 11 0 +91 FEAT_EPIC_REPUTATION 586 1 11 0 +92 FEAT_EPIC_SKILL_FOCUS_APPRAISE 588 1 11 0 +93 FEAT_EPIC_SKILL_FOCUS_CONCENTRATION 589 1 11 0 +94 FEAT_EPIC_SKILL_FOCUS_CRAFT_TRAP 590 1 11 0 +95 FEAT_EPIC_SKILL_FOCUS_DISABLETRAP 591 1 11 0 +96 FEAT_EPIC_SKILL_FOCUS_DISCIPLINE 592 1 11 0 +97 FEAT_EPIC_SKILL_FOCUS_HEAL 593 1 11 0 +98 FEAT_EPIC_SKILL_FOCUS_HIDE 594 1 11 0 +99 FEAT_EPIC_SKILL_FOCUS_LISTEN 595 1 11 0 +100 FEAT_EPIC_SKILL_FOCUS_LORE 596 1 11 0 +101 FEAT_EPIC_SKILL_FOCUS_MOVESILENTLY 597 1 11 0 +102 FEAT_EPIC_SKILL_FOCUS_OPENLOCK 598 1 11 0 +103 FEAT_EPIC_SKILL_FOCUS_PARRY 599 1 11 0 +104 FEAT_EPIC_SKILL_FOCUS_PERSUADE 601 1 11 0 +105 FEAT_EPIC_SKILL_FOCUS_PICKPOCKET 602 1 11 0 +106 FEAT_EPIC_SKILL_FOCUS_SEARCH 603 1 11 0 +107 FEAT_EPIC_SKILL_FOCUS_SETTRAP 604 1 11 0 +108 FEAT_EPIC_SKILL_FOCUS_SPELLCRAFT 605 1 11 0 +109 FEAT_EPIC_SKILL_FOCUS_SPOT 606 1 11 0 +110 FEAT_EPIC_SKILL_FOCUS_TAUNT 607 1 11 0 +111 FEAT_EPIC_SKILL_FOCUS_TUMBLE 608 1 11 0 +112 FEAT_EPIC_SKILL_FOCUS_CRAFT_ARMOR 913 1 11 0 +113 FEAT_EPIC_SKILL_FOCUS_CRAFT_WEAPON 914 1 11 0 +114 FEAT_EPIC_SKILL_FOCUS_BLUFF 917 1 11 0 +115 FEAT_EPIC_SKILL_FOCUS_INTIMIDATE 918 1 11 0 +116 FEAT_EPIC_SKILL_FOCUS_USEMAGICDEVICE 609 1 11 0 +117 FEAT_EPIC_FORTITUDE 583 1 11 0 +118 FEAT_EPIC_WILL 695 1 11 0 +119 FEAT_EPIC_GREAT_INTELLIGENCE_1 794 1 11 0 +120 FEAT_EPIC_GREAT_INTELLIGENCE_2 795 1 11 0 +121 FEAT_EPIC_GREAT_INTELLIGENCE_3 796 1 11 0 +122 FEAT_EPIC_GREAT_INTELLIGENCE_4 797 1 11 0 +123 FEAT_EPIC_GREAT_INTELLIGENCE_5 798 1 11 0 +124 FEAT_EPIC_GREAT_INTELLIGENCE_6 799 1 11 0 +125 FEAT_EPIC_GREAT_INTELLIGENCE_7 800 1 11 0 +126 FEAT_EPIC_GREAT_INTELLIGENCE_8 801 1 11 0 +127 FEAT_EPIC_GREAT_INTELLIGENCE_9 802 1 11 0 +128 FEAT_EPIC_GREAT_INTELLIGENCE_10 803 1 11 0 +129 FEAT_EPIC_SUPERIOR_INITIATIVE 753 1 11 0 +130 FEAT_EPIC_PERFECT_HEALTH 747 1 11 0 +131 FAST_HEALING_1 4145 1 11 0 +132 FAST_HEALING_2 4146 1 11 0 +133 FAST_HEALING_3 4147 1 11 0 diff --git a/nwn/nwnprc/trunk/scripts/prc_enforce_feat.nss b/nwn/nwnprc/trunk/scripts/prc_enforce_feat.nss index 8ce283a6..f52d8fb9 100644 --- a/nwn/nwnprc/trunk/scripts/prc_enforce_feat.nss +++ b/nwn/nwnprc/trunk/scripts/prc_enforce_feat.nss @@ -95,6 +95,51 @@ int _GetSizeForPrereq(object oPC) // BEGIN FUNCTIONS // --------------- +int CheckInvokerAbilityFocus(object oPC) +{ + if (GetHasFeat(FEAT_ABFOC_ELDRITCH_BLAST, oPC) && !GetHasInvocation(INVOKE_ELDRITCH_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_ELDRITCH_CHAIN, oPC) && !GetHasInvocation(INVOKE_ELDRITCH_CHAIN, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_ELDRITCH_CONE, oPC) && !GetHasInvocation(INVOKE_ELDRITCH_CONE, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_ELDRITCH_DOOM, oPC) && !GetHasInvocation(INVOKE_ELDRITCH_DOOM, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_ELDRITCH_GLAIVE, oPC) && !GetHasInvocation(INVOKE_ELDRITCH_GLAIVE, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_ELDRITCH_LINE, oPC) && !GetHasInvocation(INVOKE_ELDRITCH_LINE, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_ELDRITCH_SPEAR, oPC) && !GetHasInvocation(INVOKE_ELDRITCH_SPEAR, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BRIMSTONE_BLAST, oPC) && !GetHasInvocation(INVOKE_BRIMSTONE_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_NOXIOUS_BLAST, oPC) && !GetHasInvocation(INVOKE_NOXIOUS_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_FRIGHTFUL_BLAST, oPC) && !GetHasInvocation(INVOKE_FRIGHTFUL_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_SICKENING_BLAST, oPC) && !GetHasInvocation(INVOKE_SICKENING_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_HELLRIME_BLAST, oPC) && !GetHasInvocation(INVOKE_HELLRIME_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BEWITCHING_BLAST, oPC) && !GetHasInvocation(INVOKE_BEWITCHING_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BINDING_BLAST, oPC) && !GetHasInvocation(INVOKE_BINDING_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_HINDERING_BLAST, oPC) && !GetHasInvocation(INVOKE_HINDERING_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_PENETRATING_BLAST, oPC) && !GetHasInvocation(INVOKE_PENETRATING_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_UTTERDARK_BLAST, oPC) && !GetHasInvocation(INVOKE_UTTERDARK_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_INCARNUM_BLAST, oPC) && !GetHasInvocation(INVOKE_INCARNUM_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_HAMMER_BLAST, oPC) && !GetHasInvocation(INVOKE_HAMMER_BLAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_ABERRATION, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_ABERRATION, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_BEAST, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_BEAST, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_CONSTRUCT, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_CONSTRUCT, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_DRAGON, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_DRAGON, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_DWARF, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_DWARF, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_ELEMENTAL, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_ELEMENTAL, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_ELF, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_ELF, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_FEY, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_FEY, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_GIANT, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_GIANT, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_GOBLINOID, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_GOBLINOID, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_GNOME, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_GNOME, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_HALFLING, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_HALFLING, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_HUMAN, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_HUMAN, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_MONSTROUS, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_MONSTROUS, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_ORC, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_ORC, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_OUTSIDER, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_OUTSIDER, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_PLANT, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_PLANT, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_REPTILIAN, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_REPTILIAN, oPC)) return TRUE; + if (GetHasFeat(FEAT_ABFOC_BANEFUL_BLAST_SHAPECHANGER, oPC) && !GetHasInvocation(INVOKE_BANEFUL_BLAST_SHAPECHANGER, oPC)) return TRUE; + + return FALSE; +} + + int ManAtArmsFeats() { // only continue if they are a MaA taking level 3