20250524 Early Morning Update

Expanded Shadow Sun Ninja for epic progression.
Updated monk's epic bonus feats.
Added glassteel to the materials system.
Power Attack / NUI notes.
This commit is contained in:
Jaysyn904 2025-05-24 01:01:09 -04:00
parent bca308549a
commit 41e2f2b91c
13 changed files with 1251 additions and 985 deletions

View File

@ -198,7 +198,7 @@
194 RubyKnightVindicator 16790678 16827167 16827168 16827169 16827170 IR_HEIRONEOUS 8 CLS_ATK_1 CLS_FEAT_RBYKNT CLS_SAVTHR_WIZ CLS_SKILL_RBYKNT CLS_BFEAT_RBYKNT 4 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_RUBY_VINDICATOR 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_RBYKNT 40 0 0 1 10 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
195 MasterOfNine 16790679 16847557 16847558 16847559 16847560 IR_PSYWARRIOR 8 CLS_ATK_2 CLS_FEAT_MONINE CLS_SAVTHR_WIZ CLS_SKILL_MONINE CLS_BFEAT_MONINE 6 **** **** 1 0 12 16 14 8 14 12 DEX 0X00 0X0 0 CLASS_TYPE_MASTER_OF_NINE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_MONINE 5 0 0 0 5 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
196 EternalBlade 16790680 16834750 16834751 16834752 16834753 IR_FH 10 CLS_ATK_1 CLS_FEAT_ETBL CLS_SAVTHR_FIGHT CLS_SKILL_ETBL CLS_BFEAT_ETBL 2 **** **** 1 0 16 13 16 10 10 9 STR 0X00 0X0 0 CLASS_TYPE_ETERNAL_BLADE 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_ETBL 10 0 0 0 10 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
197 ShadowSunNinja 16790681 16834778 16834779 16834780 16834781 IR_SHADADEPT 8 CLS_ATK_2 CLS_FEAT_SSN CLS_SAVTHR_MONK CLS_SKILL_SSN CLS_BFEAT_SSN 4 **** **** 1 0 16 13 16 10 10 9 STR 0X11 0X2 0 CLASS_TYPE_SHADOW_SUN_NINJA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SSN 10 0 0 0 10 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
197 ShadowSunNinja 16790681 16834778 16834779 16834780 16834781 IR_SHADADEPT 8 CLS_ATK_2 CLS_FEAT_SSN CLS_SAVTHR_MONK CLS_SKILL_SSN CLS_BFEAT_SSN 4 **** **** 1 0 16 13 16 10 10 9 STR 0X11 0X2 0 CLASS_TYPE_SHADOW_SUN_NINJA 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_SSN 40 0 0 0 10 4 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
198 WitchbornBinder 16790682 16838144 16838145 16838146 16838147 IR_WITCH 6 CLS_ATK_2 CLS_FEAT_WCHBRN CLS_SAVTHR_WIZ CLS_SKILL_WCHBRN CLS_BFEAT_BLANK 4 **** **** 1 0 10 14 14 10 12 16 CHA 0X00 0X0 0 CLASS_TYPE_WITCHBORN_BINDER 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_WCHBRN 10 0 0 0 10 6 2 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
199 Baelnorn 16790683 16829216 16829217 16829218 16829219 IR_BAELNORN 4 CLS_ATK_4 CLS_FEAT_BAELN CLS_SAVTHR_LICH CLS_SKILL_WIZ CLS_BFEAT_LICH 2 **** **** 1 0 13 13 13 13 13 13 CHA 0X11 0X2 0 CLASS_TYPE_BAELNORN 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_BAELN 4 0 0 0 4 10 0 cls_stat_baeln **** **** **** **** **** **** **** **** **** **** **** **** **** ****
200 Disciple_of_Meph 16790684 16823016 16823017 16823018 16823019 IR_DISCMEPH 8 CLS_ATK_1 CLS_FEAT_MEPH CLS_SAVTHR_MONK CLS_SKILL_MEPH CLS_BFEAT_MEPH 4 **** **** 1 0 12 16 14 8 14 12 CHA 0X09 0X2 0 CLASS_TYPE_DISCIPLE_OF_MEPH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 CLS_PRES_MEPH 10 0 0 0 10 2 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@ -14,50 +14,50 @@
10 0
11 0
12 0
13 0
13 1
14 0
15 0
16 0
17 0
17 1
18 0
19 0
20 0
21 0
21 1
22 0
23 0
24 0
25 0
25 1
26 0
27 0
28 0
29 0
29 1
30 0
31 0
32 0
33 0
33 1
34 0
35 0
36 0
37 0
37 1
38 0
39 0
40 0
41 0
41 1
42 0
43 0
44 0
45 0
45 1
46 0
47 0
48 0
49 0
49 1
50 0
51 0
52 0
53 0
53 1
54 0
55 0
56 0
57 0
57 1
58 0
59 0

File diff suppressed because it is too large Load Diff

View File

@ -1,22 +1,132 @@
2DA V2.0
FeatLabel FeatIndex List GrantedOnLevel OnMenu
0 FEAT_EPIC_BLINDING_SPEED 491 0 -1 1
1 DefArrow 8 0 -1 0
2 TwoWeap 41 0 -1 0
3 Ambidex 1 0 -1 0
4 ShadowSunNinjaTouchOfTheShadowSun 24134 3 1 1
5 ShadowSunNinjaFlameOfTheShadowSun 24135 3 2 1
6 ShadowSunFlameOfTheShadowSunAttack 24136 3 2 1
7 ShadowSunNinjaLightWithinDarkness 24137 3 4 1
8 ShadowSunNinjaDarknessWithinLight 24138 3 5 1
9 ShadowSunNinjaVoidOfTheShadowSun 24139 3 7 1
10 ShadowSunVoidOfTheShadowSunAttack 24140 3 7 1
11 ShadowSunNinjaChildOfShadowAnddLight 24141 3 8 1
12 ShadowSunNinjaBalanceOfLightAndDark 24142 3 10 1
13 ShadowSunBalanceOfLightAndDarkAttack 24143 3 10 1
14 MonkACBonus 260 3 1 0
15 KiStrike 213 3 1 0
16 FEAT_PRC_EXTRA_STUNNING 4387 3 1 1
17 AdaptiveStyle 24075 0 -1 0
18 VitalRecovery 3636 1 -1 0
0 ShadowSunNinjaTouchOfTheShadowSun 24134 3 1 1
1 ShadowSunNinjaFlameOfTheShadowSun 24135 3 2 1
2 ShadowSunFlameOfTheShadowSunAttack 24136 3 2 1
3 ShadowSunNinjaLightWithinDarkness 24137 3 4 1
4 ShadowSunNinjaDarknessWithinLight 24138 3 5 1
5 ShadowSunNinjaVoidOfTheShadowSun 24139 3 7 1
6 ShadowSunVoidOfTheShadowSunAttack 24140 3 7 1
7 ShadowSunNinjaChildOfShadowAnddLight 24141 3 8 1
8 ShadowSunNinjaBalanceOfLightAndDark 24142 3 10 1
9 ShadowSunBalanceOfLightAndDarkAttack 24143 3 10 1
10 MonkACBonus 260 3 1 0
11 KiStrike 213 3 1 0
12 FEAT_PRC_EXTRA_STUNNING 4387 3 1 1
13 EPIC_SHADOW_SUN_NINJA 25082 3 11 0
14 VitalRecovery 3636 1 -1 0
15 FEAT_EPIC_ARMOR_SKIN 490 1 -1 0
16 FEAT_EPIC_DAMAGE_REDUCTION_3 492 1 -1 0
17 FEAT_EPIC_DAMAGE_REDUCTION_6 493 1 -1 0
18 FEAT_EPIC_DAMAGE_REDUCTION_9 494 1 -1 0
19 FEAT_EPIC_ENERGY_RESISTANCE_COLD_1 533 1 -1 0
20 FEAT_EPIC_ENERGY_RESISTANCE_COLD_2 534 1 -1 0
21 FEAT_EPIC_ENERGY_RESISTANCE_COLD_3 535 1 -1 0
22 FEAT_EPIC_ENERGY_RESISTANCE_COLD_4 536 1 -1 0
23 FEAT_EPIC_ENERGY_RESISTANCE_COLD_5 537 1 -1 0
24 FEAT_EPIC_ENERGY_RESISTANCE_COLD_6 538 1 -1 0
25 FEAT_EPIC_ENERGY_RESISTANCE_COLD_7 539 1 -1 0
26 FEAT_EPIC_ENERGY_RESISTANCE_COLD_8 540 1 -1 0
27 FEAT_EPIC_ENERGY_RESISTANCE_COLD_9 541 1 -1 0
28 FEAT_EPIC_ENERGY_RESISTANCE_COLD_10 542 1 -1 0
29 FEAT_EPIC_ENERGY_RESISTANCE_ACID_1 543 1 -1 0
30 FEAT_EPIC_ENERGY_RESISTANCE_ACID_2 544 1 -1 0
31 FEAT_EPIC_ENERGY_RESISTANCE_ACID_3 545 1 -1 0
32 FEAT_EPIC_ENERGY_RESISTANCE_ACID_4 546 1 -1 0
33 FEAT_EPIC_ENERGY_RESISTANCE_ACID_5 547 1 -1 0
34 FEAT_EPIC_ENERGY_RESISTANCE_ACID_6 548 1 -1 0
35 FEAT_EPIC_ENERGY_RESISTANCE_ACID_7 549 1 -1 0
36 FEAT_EPIC_ENERGY_RESISTANCE_ACID_8 550 1 -1 0
37 FEAT_EPIC_ENERGY_RESISTANCE_ACID_9 551 1 -1 0
38 FEAT_EPIC_ENERGY_RESISTANCE_ACID_10 552 1 -1 0
39 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_1 553 1 -1 0
40 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_2 554 1 -1 0
41 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_3 555 1 -1 0
42 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_4 556 1 -1 0
43 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_5 557 1 -1 0
44 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_6 558 1 -1 0
45 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_7 559 1 -1 0
46 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_8 560 1 -1 0
47 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_9 561 1 -1 0
48 FEAT_EPIC_ENERGY_RESISTANCE_FIRE_10 562 1 -1 0
49 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_1 563 1 -1 0
50 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_2 564 1 -1 0
51 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_3 565 1 -1 0
52 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_4 566 1 -1 0
53 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_5 567 1 -1 0
54 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_6 568 1 -1 0
55 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_7 569 1 -1 0
56 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_8 570 1 -1 0
57 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_9 571 1 -1 0
58 FEAT_EPIC_ENERGY_RESISTANCE_ELECTRICAL_10 572 1 -1 0
59 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_1 573 1 -1 0
60 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_2 574 1 -1 0
61 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_3 575 1 -1 0
62 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_4 576 1 -1 0
63 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_5 577 1 -1 0
64 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_6 578 1 -1 0
65 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_7 579 1 -1 0
66 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_8 580 1 -1 0
67 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_9 581 1 -1 0
68 FEAT_EPIC_ENERGY_RESISTANCE_SONIC_10 582 1 -1 0
69 FEAT_EPIC_IMPROVED_KI_STRIKE_4 697 1 -1 0
70 FEAT_EPIC_IMPROVED_KI_STRIKE_5 698 1 -1 0
71 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_1 699 1 -1 0
72 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_2 700 1 -1 0
73 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_3 701 1 -1 0
74 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_4 702 1 -1 0
75 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_5 703 1 -1 0
76 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_6 704 1 -1 0
77 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_7 705 1 -1 0
78 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_8 706 1 -1 0
79 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_9 707 1 -1 0
80 FEAT_EPIC_IMPROVED_SPELL_RESISTANCE_10 708 1 -1 0
81 FEAT_EPIC_SELF_CONCEALMENT_10 748 1 -1 0
82 FEAT_EPIC_SELF_CONCEALMENT_20 749 1 -1 0
83 FEAT_EPIC_SELF_CONCEALMENT_30 750 1 -1 0
84 FEAT_EPIC_SELF_CONCEALMENT_40 751 1 -1 0
85 FEAT_EPIC_SELF_CONCEALMENT_50 752 1 -1 0
86 FEAT_EPIC_TOUGHNESS_1 754 1 -1 0
87 FEAT_EPIC_TOUGHNESS_2 755 1 -1 0
88 FEAT_EPIC_TOUGHNESS_3 756 1 -1 0
89 FEAT_EPIC_TOUGHNESS_4 757 1 -1 0
90 FEAT_EPIC_TOUGHNESS_5 758 1 -1 0
91 FEAT_EPIC_TOUGHNESS_6 759 1 -1 0
92 FEAT_EPIC_TOUGHNESS_7 760 1 -1 0
93 FEAT_EPIC_TOUGHNESS_8 761 1 -1 0
94 FEAT_EPIC_TOUGHNESS_9 762 1 -1 0
95 FEAT_EPIC_TOUGHNESS_10 763 1 -1 0
96 FEAT_EPIC_IMPROVED_STUNNING_FIST_1 844 1 -1 0
97 FEAT_EPIC_IMPROVED_STUNNING_FIST_2 845 1 -1 0
98 FEAT_EPIC_IMPROVED_STUNNING_FIST_3 846 1 -1 0
99 FEAT_EPIC_IMPROVED_STUNNING_FIST_4 847 1 -1 0
100 FEAT_EPIC_IMPROVED_STUNNING_FIST_5 848 1 -1 0
101 FEAT_EPIC_IMPROVED_STUNNING_FIST_6 849 1 -1 0
102 FEAT_EPIC_IMPROVED_STUNNING_FIST_7 850 1 -1 0
103 FEAT_EPIC_IMPROVED_STUNNING_FIST_8 851 1 -1 0
104 FEAT_EPIC_IMPROVED_STUNNING_FIST_9 852 1 -1 0
105 FEAT_EPIC_IMPROVED_STUNNING_FIST_10 853 1 -1 0
106 FEAT_EPIC_BLINDING_SPEED 491 1 -1 1
107 FEAT_EPIC_SUPERIOR_INITIATIVE 753 1 -1 0
108 FEAT_EPIC_DODGE 856 1 -1 0
109 FEAT_EPIC_PROWESS 4056 1 -1 0
110 FAST_HEALING_1 4145 1 -1 0
111 FAST_HEALING_2 4146 1 -1 0
112 FAST_HEALING_3 4147 1 -1 0
113 LegendaryWrestler 5173 1 -1 0
114 FEAT_EPIC_GREAT_DEXTERITY_1 784 1 -1 0
115 FEAT_EPIC_GREAT_DEXTERITY_2 785 1 -1 0
116 FEAT_EPIC_GREAT_DEXTERITY_3 786 1 -1 0
117 FEAT_EPIC_GREAT_DEXTERITY_4 787 1 -1 0
118 FEAT_EPIC_GREAT_DEXTERITY_5 788 1 -1 0
119 FEAT_EPIC_GREAT_DEXTERITY_6 789 1 -1 0
120 FEAT_EPIC_GREAT_DEXTERITY_7 790 1 -1 0
121 FEAT_EPIC_GREAT_DEXTERITY_8 791 1 -1 0
122 FEAT_EPIC_GREAT_DEXTERITY_9 792 1 -1 0
123 FEAT_EPIC_GREAT_DEXTERITY_10 793 1 -1 0
124 DefArrow 8 0 -1 0
125 TwoWeap 41 0 -1 0
126 Ambidex 1 0 -1 0
127 AdaptiveStyle 24075 0 -1 0
128 FEAT_FIST_OF_IRON 3145 0 -1 1

View File

@ -144,3 +144,4 @@
140 16977258 Obsidian 0
141 16977259 Bamboo 0
142 16977260 Pottery 0
143 16977261 Glassteel 0

View File

@ -144,3 +144,4 @@
140 Obsidian 16977258
141 Bamboo 16977259
142 Pottery 16977260
143 Glassteel 16977261

View File

@ -144,3 +144,4 @@
140 Obsidian 16977258 crystal 4 8 12 IP_MATERIAL_OBSIDIAN
141 Bamboo 16977259 wood 12 5 10 IP_MATERIAL_BAMBOO
142 Pottery 16977260 ceramic 2 2 2 IP_MATERIAL_POTTERY
143 Glassteel 16977261 crystal 8 10 30 IP_MATERIAL_GLASSTEEL

View File

@ -162,7 +162,8 @@ const int IP_MATERIAL_ROPE_GIANT_HAIR = 139;
const int IP_MATERIAL_OBSIDIAN = 140;
const int IP_MATERIAL_BAMBOO = 141;
const int IP_MATERIAL_POTTERY = 142;
const int IP_NUM_MATERIALS = 142;
const int IP_MATERIAL_GLASSTEEL = 143;
const int IP_NUM_MATERIALS = 143;
const string IP_MATERIAL_NAME_INVALID = "";
const string IP_MATERIAL_NAME_UNKNOWN = "Unknown";
@ -286,6 +287,7 @@ const string IP_MATERIAL_NAME_ROPE_GIANT_HAIR = "Giant Hair Rope";
const string IP_MATERIAL_NAME_OBSIDIAN = "Obsidian";
const string IP_MATERIAL_NAME_BAMBOO = "Bamboo";
const string IP_MATERIAL_NAME_POTTERY = "Pottery";
const string IP_MATERIAL_NAME_GLASSTEEL = "Glassteel";
//::///////////////////////////////////////////////////////////////
// GetMaterialName( int iMaterialType, int bLowerCase = FALSE)
@ -425,6 +427,7 @@ string GetMaterialName( int iMaterialType, int bLowerCase = FALSE)
case IP_MATERIAL_OBSIDIAN: sName = IP_MATERIAL_NAME_OBSIDIAN; break;
case IP_MATERIAL_BAMBOO: sName = IP_MATERIAL_NAME_BAMBOO; break;
case IP_MATERIAL_POTTERY: sName = IP_MATERIAL_NAME_POTTERY; break;
case IP_MATERIAL_GLASSTEEL: sName = IP_MATERIAL_NAME_GLASSTEEL; break;
default: return "";
}
@ -569,6 +572,7 @@ int GetIPMaterial( string sMaterialName)
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_OBSIDIAN)) return IP_MATERIAL_OBSIDIAN;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_BAMBOO)) return IP_MATERIAL_BAMBOO;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_POTTERY)) return IP_MATERIAL_POTTERY;
else if( sMaterialName == GetStringUpperCase(IP_MATERIAL_NAME_GLASSTEEL)) return IP_MATERIAL_GLASSTEEL;
return IP_MATERIAL_INVALID;
}
@ -842,7 +846,8 @@ int GetMaterialType(int nMaterial)
|| nMaterial == IP_MATERIAL_GLASS
|| nMaterial == IP_MATERIAL_ICE
|| nMaterial == IP_MATERIAL_CRYSTAL_DASL
|| nMaterial == IP_MATERIAL_OBSIDIAN )
|| nMaterial == IP_MATERIAL_OBSIDIAN
|| nMaterial == IP_MATERIAL_GLASSTEEL)
return MATERIAL_TYPE_CRYSTAL;
else if ( nMaterial == IP_MATERIAL_HIDE

View File

@ -0,0 +1,16 @@
//:: prc_nui_pwrattk
//::
//::
void main()
{
int nSpellID = PRCGetSpellId();
}

View File

@ -73334,6 +73334,7 @@ Wild Frenzy: You gain a +2 bonus on attack rolls and damage rolls with melee wea
<entry id="200042" lang="en" sex="m">Obsidian</entry>
<entry id="200043" lang="en" sex="m">Bamboo</entry>
<entry id="200044" lang="en" sex="m">Pottery</entry>
<entry id="200045" lang="en" sex="m">Glassteel</entry>
<entry id="200098" lang="en" sex="m">#END PRC8 MATERIAL RESERVE#</entry>
<entry id="200099" lang="en" sex="m">#START PRC8 WOL RESERVE#</entry>
<entry id="200100" lang="en" sex="m">Giant Bearing</entry>
@ -74516,7 +74517,7 @@ Monk Abilities: The epic Shadow Sun Ninja continues to add their class level to
Maneuvers: At each class level the epic Shadow Sun Ninja continues to increase in initiator level.
Epic Shadow Sun Ninja Bonus Feat List:
Armor Skin, Blinding Speed, Damage Reduction, Epic Energy Resistance, Epic Dodge, Epic Prowess, Epic Toughness, Fast Healing, Improved Ki Strike, Improved Spell Resistance, Improved Stunning Fist, Legendary Wrestler, Self-Concealment, Superior Initiative. </entry>
Armor Skin, Blinding Speed, Epic Damage Reduction, Epic Energy Resistance, Epic Dodge, Epic Prowess, Epic Toughness, Fast Healing, Great Dexterity, Improved Ki Strike, Improved Spell Resistance, Improved Stunning Fist, Legendary Wrestler, Self-Concealment, Superior Initiative. </entry>
<entry id="205166" lang="en" sex="m">Epic Witchborn Binder</entry>
<entry id="205167" lang="en" sex="m">Epic Witchborn Binders are the final bulwark against arcane tyranny. Having mastered the fusion of incarnum and anti-magic, they become living wards, nullifying spellcraft with a gesture, and shackling even the most powerful wizards in prisons of soulstuff. At this level, their presence alone can suppress magical auras, unravel arcane constructs, and seal away reality-bending threats. Vigilant and relentless, an epic Witchborn Binder is both a hunter and a sentinel, wielding pure incarnum as a weapon of justice.

View File

@ -0,0 +1,126 @@
//::///////////////////////////////////////////////
//:: Power Attack NUI
//:: ha_pa_view
//:://////////////////////////////////////////////
/*
A NUI that sets the power attack on a player based on the amount
given.
*/
//:://////////////////////////////////////////////
//:: Created By: Rakiov
//:: Created On: 22.05.2005
//:://////////////////////////////////////////////
#include "nw_inc_nui"
// #include "nw_inc_nui_insp" // used to debug
//
// NuiPRCPowerAttackView
// The NUI window for the Power Attack interface, running this function
// creates the window itself
//
// Arguments:
// oPlayer object the player referenced for the NUI
//
void NuiPRCPowerAttackView(object oPlayer);
// The Window ID
const string NUI_PRC_POWER_ATTACK_WINDOW = "nui_prc_power_attack_window";
// LocalVar for the geometry of the window
const string NUI_PRC_PA_GEOMETRY_VAR = "paNuiGeometry";
// Event For Left Button
const string NUI_PRC_PA_LEFT_BUTTON_EVENT = "nui_prc_pa_left_button_event";
// Event For Right Button
const string NUI_PRC_PA_RIGHT_BUTTON_EVENT = "nui_prc_pa_right_button_event";
// Bind for Text
const string NUI_PRC_PA_TEXT_BIND = "nui_prc_pa_text_bind";
// Left Button Enabled Bind
const string NUI_PRC_PA_LEFT_BUTTON_ENABLED_BIND = "leftButtonEnabled";
// Right Button Enabled Bind
const string NUI_PRC_PA_RIGHT_BUTTON_ENABLED_BIND = "rightButtonEnabled";
void NuiPRCPowerAttackView(object oPlayer)
{
// First we look for any previous windows, if found (ie, non-zero) we destory them so we can start fresh.
int nPreviousToken = NuiFindWindow(oPlayer, NUI_PRC_POWER_ATTACK_WINDOW);
if (nPreviousToken != 0)
{
NuiDestroy(oPlayer, nPreviousToken);
}
// base element for NUI
json jRoot = JsonArray();
// Create and set parameters for left button
json jLeftButton = NuiId(NuiButton(JsonString("-")), NUI_PRC_PA_LEFT_BUTTON_EVENT);
jLeftButton = NuiWidth(jLeftButton, 32.0f);
jLeftButton = NuiHeight(jLeftButton, 32.0f);
jLeftButton = NuiEnabled(jLeftButton, NuiBind(NUI_PRC_PA_LEFT_BUTTON_ENABLED_BIND));
// Create and set parameters for text field
json jText = NuiText(NuiBind(NUI_PRC_PA_TEXT_BIND), TRUE, NUI_SCROLLBARS_NONE);
jText = NuiWidth(jText, 32.0f);
jText = NuiHeight(jText, 32.0f);
// Create and set parameters for right button
json jRightButton = NuiId(NuiButton(JsonString("+")), NUI_PRC_PA_RIGHT_BUTTON_EVENT);
jRightButton = NuiWidth(jRightButton, 32.0f);
jRightButton = NuiHeight(jRightButton, 32.0f);
jRightButton = NuiEnabled(jRightButton, NuiBind(NUI_PRC_PA_RIGHT_BUTTON_ENABLED_BIND));
// create button layout
json jRow = JsonArray();
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = JsonArrayInsert(jRow, jLeftButton);
jRow = JsonArrayInsert(jRow, jText);
jRow = JsonArrayInsert(jRow, jRightButton);
jRow = JsonArrayInsert(jRow, NuiSpacer());
jRow = NuiRow(jRow);
jRoot = JsonArrayInsert(jRoot, jRow);
// set overall layout
jRoot = NuiCol(jRoot);
// Create the window and set binds for parameters in case we want to change them later
json nui = NuiWindow(jRoot, JsonString("Power Attack"), NuiBind("geometry"), NuiBind("resizable"), NuiBind("collapsed"), NuiBind("closable"), NuiBind("transparent"), NuiBind("border"));
int nToken = NuiCreate(oPlayer, nui, NUI_PRC_POWER_ATTACK_WINDOW);
// get the geometry of the window in case we opened this before and have a
// preference for location
json geometry = GetLocalJson(oPlayer, NUI_PRC_PA_GEOMETRY_VAR);
// Default to put this near the middle and let the person adjust its location
if (geometry == JsonNull())
{
geometry = NuiRect(1095.0f,312.0f, 166.0f, 93.0f);
}
// Set the binds to their default values
NuiSetBind(oPlayer, nToken, "geometry", geometry);
NuiSetBind(oPlayer, nToken, "collapsed", JsonBool(FALSE));
NuiSetBind(oPlayer, nToken, "resizable", JsonBool(FALSE));
NuiSetBind(oPlayer, nToken, "closable", JsonBool(TRUE));
NuiSetBind(oPlayer, nToken, "transparent", JsonBool(TRUE));
NuiSetBind(oPlayer, nToken, "border", JsonBool(FALSE));
int paAmount = GetLocalInt(oPlayer, "PRC_PowerAttack_Level");
int currentBAB = GetBaseAttackBonus(oPlayer);
// if we reach the left or right limits of the power attack, then disable the buttons
json leftButtonEnabled = (paAmount == 0) ? JsonBool(FALSE) : JsonBool(TRUE);
json rightButtonEnabled = (paAmount == currentBAB) ? JsonBool(FALSE) : JsonBool(TRUE);
// set the current PA amount to the window
NuiSetBind(oPlayer, nToken, NUI_PRC_PA_TEXT_BIND, JsonString(IntToString(paAmount)));
NuiSetBind(oPlayer, nToken, NUI_PRC_PA_LEFT_BUTTON_ENABLED_BIND, leftButtonEnabled);
NuiSetBind(oPlayer, nToken, NUI_PRC_PA_RIGHT_BUTTON_ENABLED_BIND, rightButtonEnabled);
}