forked from Jaysyn/PRC8
Added Vow of Poverty
Added Vow of Poverty, Jaebrin, Hobgoblin Warsoul & Forsaker fixes (thanks PRC5 & @Fencas). Added iprp_matcost.2da for new materials. Updated PRC8 Tester module. Cohorts updated to support 8 classes. Fixed ranged disarm w/ Fighter. Updated release archive.
This commit is contained in:
@@ -188,7 +188,7 @@ void main()
|
||||
int nLevel = nStage - STAGE_LVL0;
|
||||
SetLocalInt(oPC, "DynConv_Waiting", TRUE);
|
||||
|
||||
PopulateList(oPC, nLevel, GetETArcaneClass(oPC));
|
||||
PopulateList(oPC, nLevel, GetPrimaryArcaneClass(oPC));
|
||||
|
||||
MarkStageSetUp(nStage, oPC);
|
||||
}
|
||||
|
||||
@@ -134,7 +134,7 @@ void main()
|
||||
SetHeader("Select Spell:");
|
||||
SetLocalInt(oPC, "DynConv_Waiting", TRUE);
|
||||
|
||||
PopulateList(oPC, GetETArcaneClass(oPC));
|
||||
PopulateList(oPC, GetPrimaryArcaneClass(oPC));
|
||||
|
||||
MarkStageSetUp(nStage, oPC);
|
||||
}
|
||||
|
||||
@@ -183,7 +183,8 @@ void main()
|
||||
// This is because feats can't have temporary essentia invested in them
|
||||
if (!GetTemporaryEssentia(oMeldshaper)) AddChoice("Feats", 2, oMeldshaper);
|
||||
AddChoice("Class Features", 1, oMeldshaper);
|
||||
if (GetLevelByClass(CLASS_TYPE_SOULCASTER, oMeldshaper)) AddChoice("Spells & Powers", 4, oMeldshaper);
|
||||
//This will fail if the PC cannot take the class
|
||||
if (GetLevelByClass(CLASS_TYPE_SOULCASTER, oMeldshaper) && !GetLocalInt(oMeldshaper, "PRC_PrereqSoulcaster")) AddChoice("Spells & Powers", 4, oMeldshaper);
|
||||
|
||||
// Set the next, previous and wait tokens to default values
|
||||
SetDefaultTokens();
|
||||
|
||||
@@ -339,6 +339,18 @@ void WorgPeltHB(object oMeldshaper)
|
||||
}
|
||||
}
|
||||
|
||||
void JaebrinHB(object oMeldshaper)
|
||||
{
|
||||
object oBite = GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oMeldshaper);
|
||||
|
||||
if (GetIsObjectValid(oBite))
|
||||
{
|
||||
// Add eventhook to the bite
|
||||
IPSafeAddItemProperty(oBite, ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), 6.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
AddEventScript(oBite, EVENT_ITEM_ONHIT, "moi_events", TRUE, FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
void WorgPeltOnHit(object oMeldshaper, object oItem, object oTarget)
|
||||
{
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_WORG_PELT) != CHAKRA_HANDS) return;
|
||||
@@ -349,6 +361,22 @@ void WorgPeltOnHit(object oMeldshaper, object oItem, object oTarget)
|
||||
}// end if - Item is a melee weapon
|
||||
}
|
||||
|
||||
void JaebrinOnHit(object oMeldshaper, object oItem, object oTarget)
|
||||
{
|
||||
if (GetRacialType(oMeldshaper) != RACIAL_TYPE_JAEBRIN) return;
|
||||
|
||||
if(oItem == GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oMeldshaper))
|
||||
{
|
||||
int nDC = 10 + GetHitDice(oMeldshaper)/2 + GetAbilityModifier(ABILITY_CONSTITUTION);
|
||||
if(!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, nDC))
|
||||
{
|
||||
effect eEssence = EffectSavingThrowDecrease(SAVING_THROW_WILL, 4);
|
||||
eEssence = EffectLinkEffects(eEssence, EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE));
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eEssence, oTarget, RoundsToSeconds(10));
|
||||
}
|
||||
}// end if - Item is a melee weapon
|
||||
}
|
||||
|
||||
void CobaltExpertise(object oMeldshaper)
|
||||
{
|
||||
// Only applies when using expertise
|
||||
@@ -520,7 +548,9 @@ void main()
|
||||
if(IPGetIsMeleeWeapon(oItem))
|
||||
{
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_NECROCARNUM_WEAPON) == CHAKRA_HANDS) NecrocarnumWeaponHands(oMeldshaper, oTarget, oItem);
|
||||
}
|
||||
}
|
||||
WorgPeltOnHit(oMeldshaper, oItem, oTarget);
|
||||
JaebrinOnHit(oMeldshaper, oItem, oTarget);
|
||||
}// end if - Running OnHit event
|
||||
else if(nEvent == EVENT_ONPLAYEREQUIPITEM)
|
||||
{
|
||||
@@ -677,6 +707,7 @@ void main()
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_RIDING_BRACERS) == CHAKRA_ARMS || GetIsMeldBound(oMeldshaper, MELD_RIDING_BRACERS) == CHAKRA_TOTEM) RidingBracers(oMeldshaper);
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_TOTEM_AVATAR) == CHAKRA_SHOULDERS || GetIsMeldBound(oMeldshaper, MELD_TOTEM_AVATAR) == CHAKRA_TOTEM) TotemAvatar(oMeldshaper);
|
||||
if (GetIsMeldBound(oMeldshaper, MELD_WORG_PELT) == CHAKRA_HANDS) WorgPeltHB(oMeldshaper);
|
||||
if (GetRacialType(oMeldshaper) == RACIAL_TYPE_JAEBRIN) JaebrinHB(oMeldshaper);
|
||||
if (GetEssentiaInvestedFeat(oMeldshaper, FEAT_COBALT_EXPERTISE)) CobaltExpertise(oMeldshaper);
|
||||
//if (GetEssentiaInvestedFeat(oMeldshaper, FEAT_COBALT_POWER)) CobaltPower(oMeldshaper); Commented out so it doesn't work with Bioware PA any more.
|
||||
if (GetEssentiaInvestedFeat(oMeldshaper, FEAT_MIDNIGHT_DODGE)) MidnightDodge(oMeldshaper);
|
||||
|
||||
@@ -308,6 +308,10 @@ int CheckMissingSpells(object oPC, int nClass, int nMinLevel, int nMaxLevel)
|
||||
else if(nClass == CLASS_TYPE_SORCERER && GetRacialType(oPC) == RACIAL_TYPE_ARKAMOI)
|
||||
nLevel = GetSpellslotLevel(nClass, oPC); //GetLevelByClass(CLASS_TYPE_MONSTROUS, oPC);
|
||||
|
||||
//::Hobgoblin Warsouls cast as sorcerers
|
||||
else if(nClass == CLASS_TYPE_SORCERER && GetRacialType(oPC) == RACIAL_TYPE_HOBGOBLIN_WARSOUL)
|
||||
nLevel = GetSpellslotLevel(nClass, oPC); //GetLevelByClass(CLASS_TYPE_MONSTROUS, oPC);
|
||||
|
||||
//:: Driders cast as sorcerers
|
||||
else if(nClass == CLASS_TYPE_SORCERER && GetRacialType(oPC) == RACIAL_TYPE_DRIDER)
|
||||
nLevel = GetSpellslotLevel(nClass, oPC); //GetLevelByClass(CLASS_TYPE_ABERRATION, oPC);
|
||||
|
||||
@@ -136,7 +136,7 @@ void PopulateList(object oPC, int nLevel, int iClass, int nChoice)
|
||||
}
|
||||
}
|
||||
|
||||
if(iClass == 3)
|
||||
if(iClass == 8)
|
||||
{
|
||||
SetDefaultTokens();
|
||||
DeleteLocalInt(oPC, "DynConv_Waiting");
|
||||
|
||||
Reference in New Issue
Block a user