Fixed Expanded Incarnum Capacity II-V to require the previous feat as a prereq. Fixed bonus feats granted by soulmelds to be removed when rebinding.
131 lines
6.0 KiB
Plaintext
131 lines
6.0 KiB
Plaintext
/*
|
||
7/1/20 by Stratovarius
|
||
|
||
Manticore Belt
|
||
|
||
Descriptors: None
|
||
Classes: Incarnate
|
||
Chakra: Brow
|
||
Saving Throw: None
|
||
|
||
Incarnum forms a belt of spotted fur around your waist. At your back, short spines emerge from the belt. You note a marked increase in your appetite while you wear the belt.
|
||
|
||
While wearing your manticore belt, you gain a +2 enhancement bonus on Jump and Spot checks.
|
||
|
||
Essentia: For every point of essentia you invest in your manticore belt, your enhancement bonus on Jump and Spot checks increases by 2.
|
||
|
||
Chakra Bind (Waist)
|
||
|
||
Your manticore belt sprouts a pair of large, draconic wings. Though they are perched at your waist and flap awkwardly, these wings give you a reasonable ability of flight.
|
||
|
||
You can jump unlimited distances, and you gain the Spring Attack feat.
|
||
|
||
Chakra Bind (Totem)
|
||
|
||
A long, thick tail emerges from the back of your manticore belt, writhing and lashing at your command. At its tip is a cluster of spikes. Like a manticore, you can propel those spikes at your foes.
|
||
|
||
As a standard action, you can snap your tail to loose a volley of spikes equal to the number of points of essentia you invest in your manticore belt. Make a ranged attack roll for each spike using your full base attack bonus. A successful hit deals 1d6 points of damage plus one-half your Strength modifier.
|
||
*/
|
||
//::////////////////////////////////////////////////////////
|
||
//::
|
||
//:: Updated by: Jaysyn
|
||
//:: Updated on: 2026-02-20 12:21:10
|
||
//::
|
||
//:: Double Chakra Bind support added
|
||
//:: Double Totem bind support added
|
||
//::
|
||
//:: Updated on: 2026-05-01 12:04:32
|
||
//::
|
||
//:: Fixed Bonus feats hanging stay around after
|
||
//:: reshaping soulmelds.
|
||
//::
|
||
//::////////////////////////////////////////////////////////
|
||
#include "moi_inc_moifunc"
|
||
|
||
void main()
|
||
{
|
||
object oMeldshaper = PRCGetSpellTargetObject();
|
||
int nMeldId = PRCGetSpellId();
|
||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||
int nBonus = 2 + (nEssentia * 2);
|
||
effect eLink = EffectLinkEffects(EffectSkillIncrease(SKILL_SPOT, nBonus), EffectSkillIncrease(SKILL_JUMP, nBonus));
|
||
|
||
// Check for Waist bind and add Spring Attack if bound
|
||
int nBoundToWaist = FALSE;
|
||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_WAIST)) == nMeldId ||
|
||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_WAIST)) == nMeldId)
|
||
nBoundToWaist = TRUE;
|
||
|
||
if (nBoundToWaist)
|
||
{
|
||
eLink = EffectLinkEffects(eLink, EffectBonusFeat(FEAT_SPRING_ATTACK));
|
||
}
|
||
|
||
// Tag the effect link for easy removal
|
||
eLink = TagEffect(eLink, "SOULMELD_MANTICORE_BELT_FEATS");
|
||
eLink = SupernaturalEffect(eLink);
|
||
|
||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oMeldshaper, 9999.0);
|
||
|
||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_MANTICORE_BELT), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
|
||
// Totem bind (spike volley) <20> check regular or double Totem
|
||
int nBoundToTotem = FALSE;
|
||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_TOTEM)) == nMeldId ||
|
||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_TOTEM)) == nMeldId)
|
||
nBoundToTotem = TRUE;
|
||
|
||
if (nBoundToTotem)
|
||
{
|
||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_MANTICORE_TOTEM), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
}
|
||
}
|
||
|
||
/* #include "moi_inc_moifunc"
|
||
|
||
void main()
|
||
{
|
||
object oMeldshaper = PRCGetSpellTargetObject();
|
||
int nMeldId = PRCGetSpellId();
|
||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||
int nBonus = 2 + (nEssentia * 2);
|
||
effect eLink = EffectLinkEffects(EffectSkillIncrease(SKILL_SPOT, nBonus), EffectSkillIncrease(SKILL_JUMP, nBonus));
|
||
|
||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_MANTICORE_BELT), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
|
||
// Waist bind (Spring Attack) <20> check regular or double Waist
|
||
int nBoundToWaist = FALSE;
|
||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_WAIST)) == nMeldId ||
|
||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_WAIST)) == nMeldId)
|
||
nBoundToWaist = TRUE;
|
||
|
||
if (nBoundToWaist)
|
||
{
|
||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_FEAT_SPRINGATTACK), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
}
|
||
|
||
// Totem bind (spike volley) <20> check regular or double Totem
|
||
int nBoundToTotem = FALSE;
|
||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_TOTEM)) == nMeldId ||
|
||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_TOTEM)) == nMeldId)
|
||
nBoundToTotem = TRUE;
|
||
|
||
if (nBoundToTotem)
|
||
{
|
||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_MANTICORE_TOTEM), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
}
|
||
} */
|
||
|
||
/* void main()
|
||
{
|
||
object oMeldshaper = PRCGetSpellTargetObject();
|
||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||
int nBonus = 2 + (nEssentia * 2);
|
||
effect eLink = EffectLinkEffects(EffectSkillIncrease(SKILL_SPOT, nBonus), EffectSkillIncrease(SKILL_JUMP, nBonus));
|
||
|
||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_MANTICORE_BELT), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
if (GetIsMeldBound(oMeldshaper) == CHAKRA_WAIST) IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_FEAT_SPRINGATTACK), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
if (GetIsMeldBound(oMeldshaper) == CHAKRA_TOTEM) IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_MANTICORE_TOTEM), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
} */ |