2025/12/03 Update
Finished Hidden Talent. Tweaked Factotum abilities to hopefully not run out of uses. Tweaked Twinfiends skill function. Hopefully fixed the Factotum's Inspiration not generating issues. Hopefullly fixed Double Chakra bind. Hopefully fixed Totemist's Double Totem Bind. Hopefully fixed Girallon Arms. Fixed Kuthrik Claws not granting Weapon Finesse. Added missing medium centaur hoof slam uti. Added new tentacle slam creature weapon (works the same, looks better). Updated Spell Effect NUI to ignore system spells (@Rakiov). Fixed typo in Guided Strike.
This commit is contained in:
@@ -159,7 +159,7 @@ void main()
|
||||
{
|
||||
if(DEBUG) DoDebug("moi_bindingcnv: Building meld selection");
|
||||
|
||||
SetHeader("You are binding soulmelds as a "+GetStringByStrRef(StringToInt(Get2DACache("classes", "Name", nClass)))+". You can bind up to "+IntToString(GetMaxBindCount(oMeldshaper, nClass))+" soulmelds. If you exit this conversation without selecting all your binds, you will need to rest to bind melds.");
|
||||
SetHeader("You are binding soulmelds as a "+GetStringByStrRef(StringToInt(Get2DACache("classes", "Name", nClass)))+". You can bind up to "+IntToString(GetMaxBindCount(oMeldshaper, nClass))+" soulmelds. Totemists should bind their Totem chakra first. If you exit this conversation without selecting all your binds, you will need to rest to bind melds.");
|
||||
|
||||
int i, nTest;
|
||||
for(i = 1; i < 22 ; i++)
|
||||
@@ -172,15 +172,27 @@ void main()
|
||||
|
||||
// If we're doing totemist, and it's been bound to the totem meld, and you don't have the 11th level class feature
|
||||
if (GetIsMeldBound(oMeldshaper, nMeld) == CHAKRA_TOTEM && nClass == CLASS_TYPE_TOTEMIST && 11 > GetLevelByClass(CLASS_TYPE_TOTEMIST, oMeldshaper)) nTotem = FALSE;
|
||||
|
||||
if (DEBUG) DoDebug("moi_bindingcnv nTotem: "+IntToString(nTotem));
|
||||
|
||||
// Something was stored in the Chakra, and the character has access to a bind, and it's not been bound to the totem chakra. If it's already bound, skip it
|
||||
if(nMeld && (GetCanBindChakra(oMeldshaper, i) || (nClass == CLASS_TYPE_TOTEMIST && GetLevelByClass(CLASS_TYPE_TOTEMIST, oMeldshaper) >= 2)) && nTotem && !GetIsMeldBound(oMeldshaper, nMeld) && !GetIsChakraBound(oMeldshaper, i))
|
||||
// Something was stored in the Chakra, and the character has access to a bind, and it's not been bound to the totem chakra. If it's already bound, skip it
|
||||
if(nMeld && (GetCanBindChakra(oMeldshaper, i) || (nClass == CLASS_TYPE_TOTEMIST && GetLevelByClass(CLASS_TYPE_TOTEMIST, oMeldshaper) >= 2)) && nTotem && !GetIsChakraBound(oMeldshaper, i))
|
||||
{
|
||||
int nMeldBoundTo = GetIsMeldBound(oMeldshaper, nMeld);
|
||||
int nCanDoubleBind = (GetLevelByClass(CLASS_TYPE_TOTEMIST, oMeldshaper) >= 11);
|
||||
|
||||
// Skip if already bound, UNLESS it's bound to a totem chakra and character can double-bind
|
||||
if (!nMeldBoundTo || ((nMeldBoundTo == CHAKRA_TOTEM || nMeldBoundTo == CHAKRA_DOUBLE_TOTEM) && nCanDoubleBind))
|
||||
{
|
||||
AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nMeld))), i, oMeldshaper);
|
||||
nTest++;
|
||||
}
|
||||
}
|
||||
|
||||
/* if(nMeld && (GetCanBindChakra(oMeldshaper, i) || (nClass == CLASS_TYPE_TOTEMIST && GetLevelByClass(CLASS_TYPE_TOTEMIST, oMeldshaper) >= 2)) && nTotem && !GetIsMeldBound(oMeldshaper, nMeld) && !GetIsChakraBound(oMeldshaper, i))
|
||||
{
|
||||
AddChoice(GetStringByStrRef(StringToInt(Get2DACache("spells", "Name", nMeld))), i, oMeldshaper);
|
||||
nTest++;
|
||||
}
|
||||
} */
|
||||
}
|
||||
if(GetMaxBindCount(oMeldshaper, nClass) == 0) // This can happen with multiclassing
|
||||
AddChoice("Next Class", -1, oMeldshaper);
|
||||
|
||||
@@ -277,8 +277,15 @@ void main()
|
||||
if (DEBUG) DoDebug("sChakra: "+sChakra+" nChakra: "+IntToString(nChakra));
|
||||
|
||||
// Non-blank row, not shaped already, it can be attached to the chosen Chakra, and it's for the right class, and it doesn't contradict alignment
|
||||
if(nTest && sSpell != "" && !GetIsMeldShaped(oMeldshaper, nMeld, nClass) && StringToInt(sChakra) == nChakra && SoulmeldAlignmentCheck(oMeldshaper, nMeld, nClass) && DragonbloodedCheck(oMeldshaper, nMeld))
|
||||
{
|
||||
//if(nTest && sSpell != "" && !GetIsMeldShaped(oMeldshaper, nMeld, nClass) && StringToInt(sChakra) == nChakra && SoulmeldAlignmentCheck(oMeldshaper, nMeld, nClass) && DragonbloodedCheck(oMeldshaper, nMeld))
|
||||
int nIsTotemBound = (GetIsChakraUsed(oMeldshaper, CHAKRA_TOTEM, CLASS_TYPE_TOTEMIST) == nMeld);
|
||||
int nCanDoubleBind = (GetLevelByClass(CLASS_TYPE_TOTEMIST, oMeldshaper) >= 11);
|
||||
if(nTest && sSpell != "" &&
|
||||
(!GetIsMeldShaped(oMeldshaper, nMeld, nClass) || (nIsTotemBound && nCanDoubleBind)) &&
|
||||
StringToInt(sChakra) == nChakra &&
|
||||
SoulmeldAlignmentCheck(oMeldshaper, nMeld, nClass) &&
|
||||
DragonbloodedCheck(oMeldshaper, nMeld))
|
||||
{
|
||||
AddChoice(GetStringByStrRef(StringToInt(Get2DACache(sMeldFile, "Name", i))), nMeld, oMeldshaper);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,9 +26,96 @@ Incarnum forms two additional, powerful arms that spring out from your ribs. The
|
||||
|
||||
You gain four claws that you can use as natural weapons, dealing 1d4 points of damage with each claw. You can make a single claw attack as a primary attack, using your full attack bonus and adding your Strength bonus on your damage roll. You can make up to three additional claw attacks as secondary attacks, following either a primary claw attack or an attack with a weapon. Every point of essentia you invest in your girallon arms grants you a +1 enhancement bonus on attack rolls and damage rolls with your claw attacks.
|
||||
*/
|
||||
|
||||
//::////////////////////////////////////////////////////////
|
||||
//::
|
||||
//:: Updated by: Jaysyn
|
||||
//:: Updated on: 2025-12-02 15:04:22
|
||||
//::
|
||||
//:: ItemPropertyTag() support added
|
||||
//:: Double Chakra support added
|
||||
//::
|
||||
//::////////////////////////////////////////////////////////
|
||||
#include "moi_inc_moifunc"
|
||||
|
||||
void Argh(object oMeldshaper, int nEssentia)
|
||||
{
|
||||
FloatingTextStringOnCreature("Girallon Arms Essentia Bonus of "+IntToString(nEssentia)+" applying to "+GetName(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oMeldshaper)), oMeldshaper, FALSE);
|
||||
AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyEnhancementBonus(nEssentia), GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oMeldshaper));
|
||||
IPSafeAddItemProperty(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oMeldshaper), ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1));
|
||||
itemproperty ipTest = GetFirstItemProperty(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oMeldshaper));
|
||||
while(GetIsItemPropertyValid(ipTest))
|
||||
{
|
||||
if(GetItemPropertyType(ipTest) == ITEM_PROPERTY_ENHANCEMENT_BONUS)
|
||||
{
|
||||
int nEnhance = GetItemPropertyCostTableValue(ipTest);
|
||||
FloatingTextStringOnCreature("Girallon Arms Enhancement Bonus of "+IntToString(nEnhance)+" applying to "+GetName(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oMeldshaper)), oMeldshaper, FALSE);
|
||||
}
|
||||
ipTest = GetNextItemProperty(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oMeldshaper));
|
||||
}
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oMeldshaper = PRCGetSpellTargetObject();
|
||||
object oSkin = GetPCSkin(oMeldshaper);
|
||||
|
||||
int nMeldId = PRCGetSpellId();
|
||||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||||
int nBonus = 2 + (nEssentia * 2);
|
||||
|
||||
effect eLink = EffectSkillIncrease(SKILL_CLIMB, nBonus);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_GIRALLON_ARMS), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
|
||||
// Check if bound to Arms chakra
|
||||
int nBoundToArms = FALSE;
|
||||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_ARMS)) == nMeldId||
|
||||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_ARMS)) == nMeldId)
|
||||
nBoundToArms = TRUE;
|
||||
|
||||
if (nBoundToArms)
|
||||
{
|
||||
// Add the rend ipfeat and tag it
|
||||
itemproperty ipRend = ItemPropertyBonusFeat(IP_CONST_FEAT_REND);
|
||||
ipRend = TagItemProperty(ipRend, "IP_GIRALLON_REND");
|
||||
IPSafeAddItemProperty(oSkin, ipRend, 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Remove the rend IP by tag
|
||||
itemproperty ip = GetFirstItemProperty(oSkin);
|
||||
while (GetIsItemPropertyValid(ip))
|
||||
{
|
||||
if (GetItemPropertyTag(ip) == "IP_GIRALLON_REND")
|
||||
{
|
||||
RemoveItemProperty(oSkin, ip);
|
||||
}
|
||||
ip = GetNextItemProperty(oSkin);
|
||||
}
|
||||
}
|
||||
|
||||
// Check if bound to Totem chakra
|
||||
int nBoundToTotem = FALSE;
|
||||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_TOTEM)) == nMeldId ||
|
||||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_TOTEM)) == nMeldId)
|
||||
nBoundToTotem = TRUE;
|
||||
|
||||
if (nBoundToTotem)
|
||||
{
|
||||
string sResRef = "prc_claw_1d6l_"; // For some reason, this is the ResRef of the 1d4 claws. <20>\_(-_-)_/<2F>
|
||||
int nSize = PRCGetCreatureSize(oMeldshaper);
|
||||
sResRef += GetAffixForSize(nSize);
|
||||
AddNaturalPrimaryWeapon(oMeldshaper, sResRef, 1);
|
||||
AddNaturalSecondaryWeapon(oMeldshaper, sResRef, 3);
|
||||
DelayCommand(0.25, Argh(oMeldshaper, nEssentia));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* #include "moi_inc_moifunc"
|
||||
|
||||
void Argh(object oMeldshaper, int nEssentia)
|
||||
{
|
||||
FloatingTextStringOnCreature("Girallon Arms Essentia Bonus of "+IntToString(nEssentia)+" applying to "+GetName(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oMeldshaper)), oMeldshaper, FALSE);
|
||||
@@ -49,14 +136,46 @@ void Argh(object oMeldshaper, int nEssentia)
|
||||
|
||||
void main()
|
||||
{
|
||||
object oMeldshaper = PRCGetSpellTargetObject();
|
||||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||||
int nBonus = 2 + (nEssentia * 2);
|
||||
effect eLink = EffectSkillIncrease(SKILL_CLIMB, nBonus);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||||
object oMeldshaper = PRCGetSpellTargetObject();
|
||||
object oSkin = GetPCSkin(oMeldshaper);
|
||||
|
||||
int nMeldId = PRCGetSpellId();
|
||||
int nClass = GetMeldshapingClass(oMeldshaper);
|
||||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||||
int nBonus = 2 + (nEssentia * 2);
|
||||
|
||||
effect eLink = EffectSkillIncrease(SKILL_CLIMB, nBonus);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_GIRALLON_ARMS), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
if (GetIsMeldBound(oMeldshaper) == CHAKRA_ARMS) IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_FEAT_REND), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
if (GetIsMeldBound(oMeldshaper) == CHAKRA_TOTEM)
|
||||
//if (GetIsMeldBound(oMeldshaper) == CHAKRA_ARMS) IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_FEAT_REND), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
|
||||
if (GetIsMeldBound(oMeldshaper) == CHAKRA_ARMS)
|
||||
{
|
||||
// Add the rend IP with a unique tag
|
||||
itemproperty ipRend = ItemPropertyBonusFeat(IP_CONST_FEAT_REND);
|
||||
ipRend = TagItemProperty(ipRend, "IP_GIRALLON_REND");
|
||||
IPSafeAddItemProperty(oSkin, ipRend, 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Remove the rend IP by tag
|
||||
itemproperty ip = GetFirstItemProperty(oSkin);
|
||||
while (GetIsItemPropertyValid(ip))
|
||||
{
|
||||
if (GetItemPropertyTag(ip) == "IP_GIRALLON_REND")
|
||||
{
|
||||
RemoveItemProperty(oSkin, ip);
|
||||
}
|
||||
ip = GetNextItemProperty(oSkin);
|
||||
}
|
||||
}
|
||||
|
||||
//if (GetIsMeldBound(oMeldshaper) == CHAKRA_TOTEM)
|
||||
|
||||
int nBoundChakra = GetIsMeldBound(oMeldshaper);
|
||||
if (nBoundChakra == CHAKRA_TOTEM || nBoundChakra == CHAKRA_DOUBLE_TOTEM)
|
||||
|
||||
{
|
||||
string sResRef = "prc_claw_1d6l_"; // For some reason, this is the ResRef of the 1d4 claws. <20>\_(-_-)_/<2F>
|
||||
int nSize = PRCGetCreatureSize(oMeldshaper);
|
||||
@@ -65,4 +184,4 @@ void main()
|
||||
AddNaturalSecondaryWeapon(oMeldshaper, sResRef, 3);
|
||||
DelayCommand(0.25, Argh(oMeldshaper, nEssentia));
|
||||
}
|
||||
}
|
||||
} */
|
||||
@@ -32,21 +32,79 @@ Enormous, serrated, scythelike claws extend from your wrists to cover your hands
|
||||
|
||||
You can use your two claws as natural weapons that deal 1d6 points of damage plus your Strength modifier. For every point of essentia you invest in your kruthik claws, you deal an additional 1d4 points of acid damage with each claw attack.
|
||||
*/
|
||||
//::////////////////////////////////////////////////////////
|
||||
//::
|
||||
//:: Updated by: Jaysyn
|
||||
//:: Updated on: 2025-12-02 15:04:22
|
||||
//::
|
||||
//:: Hands / Weapon finesse added
|
||||
//:: ItemPropertyTag() support added
|
||||
//:: Double Chakra support added
|
||||
//::
|
||||
//::////////////////////////////////////////////////////////
|
||||
|
||||
|
||||
#include "moi_inc_moifunc"
|
||||
|
||||
void main()
|
||||
{
|
||||
object oMeldshaper = PRCGetSpellTargetObject();
|
||||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||||
int nBonus = 4+(nEssentia*2);
|
||||
effect eLink = EffectLinkEffects(EffectSkillIncrease(SKILL_HIDE, nBonus), EffectSkillIncrease(SKILL_MOVE_SILENTLY, nBonus));
|
||||
object oSkin = GetPCSkin(oMeldshaper);
|
||||
|
||||
int nMeldId = PRCGetSpellId();
|
||||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||||
int nBonus = 4+(nEssentia*2);
|
||||
|
||||
if (GetIsMeldBound(oMeldshaper) == CHAKRA_SHOULDERS) eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_ACID, 10 + (nBonus * 5)));
|
||||
effect eLink = EffectLinkEffects(EffectSkillIncrease(SKILL_HIDE, nBonus), EffectSkillIncrease(SKILL_MOVE_SILENTLY, nBonus));
|
||||
|
||||
// Check if bound to Shoulders chakra
|
||||
int nBoundToShoulders = FALSE;
|
||||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_SHOULDERS)) == nMeldId||
|
||||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_SHOULDERS)) == nMeldId)
|
||||
nBoundToShoulders = TRUE;
|
||||
|
||||
if (nBoundToShoulders)
|
||||
{
|
||||
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_ACID, 10 + (nBonus * 5)));
|
||||
}
|
||||
|
||||
// Check if bound to Hands chakra
|
||||
int nBoundToHands = FALSE;
|
||||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_HANDS)) == nMeldId||
|
||||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_HANDS)) == nMeldId)
|
||||
nBoundToHands = TRUE;
|
||||
|
||||
if (nBoundToHands)
|
||||
{
|
||||
// Add the rend IP with a unique tag
|
||||
itemproperty ipFinesse = ItemPropertyBonusFeat(IP_CONST_FEAT_WEAPFINESSE);
|
||||
ipFinesse = TagItemProperty(ipFinesse, "IP_KRUTHIK_CLAWS");
|
||||
IPSafeAddItemProperty(oSkin, ipFinesse, 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Remove the rend IP by tag
|
||||
itemproperty ip = GetFirstItemProperty(oSkin);
|
||||
while (GetIsItemPropertyValid(ip))
|
||||
{
|
||||
if (GetItemPropertyTag(ip) == "IP_KRUTHIK_CLAWS")
|
||||
{
|
||||
RemoveItemProperty(oSkin, ip);
|
||||
}
|
||||
ip = GetNextItemProperty(oSkin);
|
||||
}
|
||||
}
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_KRUTHIK_CLAWS), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
if (GetIsMeldBound(oMeldshaper) == CHAKRA_TOTEM)
|
||||
|
||||
// Check if bound to Totem chakra
|
||||
int nBoundToTotem = FALSE;
|
||||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_TOTEM)) == nMeldId ||
|
||||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_TOTEM)) == nMeldId)
|
||||
nBoundToTotem = TRUE;
|
||||
|
||||
if (nBoundToTotem)
|
||||
{
|
||||
string sResRef = "prc_claw_1d6m_";
|
||||
// Gets up to the proper size
|
||||
@@ -63,4 +121,84 @@ void main()
|
||||
DelayCommand(3.0, IPSafeAddItemProperty(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oMeldshaper), ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ACID, nDamage), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* void main()
|
||||
{
|
||||
object oMeldshaper = PRCGetSpellTargetObject();
|
||||
object oSkin = GetPCSkin(oMeldshaper);
|
||||
|
||||
int nMeldId = PRCGetSpellId();
|
||||
int nClass = GetMeldshapingClass(oMeldshaper);
|
||||
int nEssentia = GetEssentiaInvested(oMeldshaper);
|
||||
int nBonus = 4+(nEssentia*2);
|
||||
|
||||
effect eLink = EffectLinkEffects(EffectSkillIncrease(SKILL_HIDE, nBonus), EffectSkillIncrease(SKILL_MOVE_SILENTLY, nBonus));
|
||||
|
||||
// Check if bound to Shoulder chakra
|
||||
int nBoundToShoulders = FALSE;
|
||||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_SHOULDERS)) == nMeldId||
|
||||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_SHOULDERS)) == nMeldId)
|
||||
nBoundToShoulders = TRUE;
|
||||
|
||||
if (nBoundToShoulders)
|
||||
{
|
||||
eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_ACID, 10 + (nBonus * 5)));
|
||||
}
|
||||
|
||||
//if (GetIsMeldBound(oMeldshaper) == CHAKRA_SHOULDERS) eLink = EffectLinkEffects(eLink, EffectDamageResistance(DAMAGE_TYPE_ACID, 10 + (nBonus * 5)));
|
||||
|
||||
//if (GetIsMeldBound(oMeldshaper) == CHAKRA_HANDS) IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_FEAT_WEAPFINESSE), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
|
||||
// Check if bound to Hands chakra
|
||||
int nBoundToHands = FALSE;
|
||||
if (GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_HANDS)) == nMeldId||
|
||||
GetLocalInt(oMeldshaper, "BoundMeld" + IntToString(CHAKRA_DOUBLE_HANDS)) == nMeldId)
|
||||
nBoundToHands = TRUE;
|
||||
|
||||
//if (GetIsMeldBound(oMeldshaper) == CHAKRA_HANDS)
|
||||
if (nBoundToHands)
|
||||
{
|
||||
// Add the rend IP with a unique tag
|
||||
itemproperty ipFinesse = ItemPropertyBonusFeat(IP_CONST_FEAT_WEAPFINESSE);
|
||||
ipFinesse = TagItemProperty(ipFinesse, "IP_KRUTHIK_CLAWS");
|
||||
IPSafeAddItemProperty(oSkin, ipFinesse, 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
}
|
||||
else
|
||||
{
|
||||
// Remove the rend IP by tag
|
||||
itemproperty ip = GetFirstItemProperty(oSkin);
|
||||
while (GetIsItemPropertyValid(ip))
|
||||
{
|
||||
if (GetItemPropertyTag(ip) == "IP_KRUTHIK_CLAWS")
|
||||
{
|
||||
RemoveItemProperty(oSkin, ip);
|
||||
}
|
||||
ip = GetNextItemProperty(oSkin);
|
||||
}
|
||||
}
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oMeldshaper, 9999.0);
|
||||
IPSafeAddItemProperty(GetPCSkin(oMeldshaper), ItemPropertyBonusFeat(IP_CONST_MELD_KRUTHIK_CLAWS), 9999.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||||
|
||||
//if (GetIsMeldBound(oMeldshaper) == CHAKRA_TOTEM)
|
||||
int nBoundChakra = GetIsMeldBound(oMeldshaper);
|
||||
if (nBoundChakra == CHAKRA_TOTEM || nBoundChakra == CHAKRA_DOUBLE_TOTEM)
|
||||
//if (GetIsChakraUsed(oMeldshaper, CHAKRA_TOTEM, nClass) == nMeldId || GetIsChakraUsed(oMeldshaper, CHAKRA_DOUBLE_TOTEM, nClass) == nMeldId)
|
||||
{
|
||||
string sResRef = "prc_claw_1d6m_";
|
||||
// Gets up to the proper size
|
||||
int nSize = PRCGetCreatureSize(oMeldshaper);
|
||||
sResRef += GetAffixForSize(nSize);
|
||||
AddNaturalPrimaryWeapon(oMeldshaper, sResRef, 2);
|
||||
SetLocalString(oMeldshaper, "IncarnumPrimaryAttackL", sResRef);
|
||||
int nDamage = EssentiaToD4(nEssentia);
|
||||
|
||||
// All natural attacks end up here
|
||||
if (nEssentia)
|
||||
{
|
||||
DelayCommand(3.0, IPSafeAddItemProperty(GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oMeldshaper), ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ACID, nDamage), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE));
|
||||
DelayCommand(3.0, IPSafeAddItemProperty(GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oMeldshaper), ItemPropertyDamageBonus(IP_CONST_DAMAGETYPE_ACID, nDamage), 9999.0, X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE));
|
||||
}
|
||||
}
|
||||
} */
|
||||
Reference in New Issue
Block a user