Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
109 lines
5.6 KiB
Plaintext
109 lines
5.6 KiB
Plaintext
/*
|
||
04/03/21 by Stratovarius
|
||
|
||
Eurynome, Mother of the Material
|
||
|
||
Eurynome grants lordship over the beasts of land, seas, and air. She also gives those with whom she binds some of the might of titans.
|
||
|
||
Vestige Level: 4th
|
||
Binding DC: 21
|
||
Special Requirement: Eurynome hates Amon for some unknown reason and will not answer your call if you are already bound to him.
|
||
|
||
Influence: Eurynome’s influence makes you paranoid and ungrateful; you see secret motives and possible betrayals behind every action. Eurynome requires that you not
|
||
attack a foe unless an ally has already done so. If no allies are present, she makes no such requirement
|
||
|
||
Granted Abilities:
|
||
Eurynome grants you the ability to befriend animals and wield a massive hammer. In addition, she turns your blood into poison and gives you resistance to weapon blows.
|
||
|
||
Animal Friend: All animals automatically have an initial attitude of friendly toward you.
|
||
|
||
Damage Reduction: You gain damage reduction 2/+3.
|
||
|
||
Eurynome’s Maul: You summon a magic warhammer (1d8+1d4 bludgeoning damage, ×3 crit). You are proficient with this weapon and can wield it without penalty. Your warhammer’s
|
||
exact bonus and abilities depend on your effective binder level, according to the following table.
|
||
Effective Binder Level Warhammer Summoned
|
||
10th or lower +1 warhammer
|
||
11th–14th +1 anarchic warhammer
|
||
15th–18th +1 anarchic adamantine warhammer
|
||
19th or higher +3 anarchic adamantine warhammer
|
||
|
||
Poison Blood: While you are bound to Eurynome, your blood becomes poisonous. Any creature that makes a bite attack against you must immediately make a successful
|
||
Fortitude save or take 1d6 points of damage. After 1 minute, the creature must make another Fortitude save at the same DC or take another 1d6 points of damage per
|
||
three effective binder levels you possess (maximum 5d6). Each bite attack poisons the creature anew, forcing a new round of saving throws.
|
||
*/
|
||
|
||
#include "bnd_inc_bndfunc"
|
||
|
||
void EurynomeInfluence(object oBinder, int nCombat);
|
||
|
||
void EurynomeInfluence(object oBinder, int nCombat)
|
||
{
|
||
if (GetHasSpellEffect(VESTIGE_EURYNOME, oBinder))
|
||
{
|
||
int nCurrent = GetIsInCombat(oBinder);
|
||
// We just entered combat
|
||
if (nCurrent == TRUE && nCombat == FALSE)
|
||
{
|
||
// Find an ally
|
||
location lTarget = GetLocation(oBinder);
|
||
object oAreaTarget = MyFirstObjectInShape(SHAPE_SPHERE, FeetToMeters(60.0), lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
||
while(GetIsObjectValid(oAreaTarget))
|
||
{
|
||
if(GetIsFriend(oAreaTarget, oBinder)) // Find that friend!
|
||
{
|
||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(EffectSlow()), oBinder, 6.0);
|
||
break;
|
||
}
|
||
//Select the next target within the spell shape.
|
||
oAreaTarget = MyNextObjectInShape(SHAPE_SPHERE, FeetToMeters(60.0), lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
||
}
|
||
}
|
||
|
||
DelayCommand(0.25, EurynomeInfluence(oBinder, nCurrent));
|
||
}
|
||
}
|
||
|
||
void main()
|
||
{
|
||
object oBinder = PRCGetSpellTargetObject();
|
||
SetLocalObject(GetModule(), "EurynomeCharm", oBinder);
|
||
int nBinderLevel = GetBinderLevel(oBinder, VESTIGE_EURYNOME);
|
||
|
||
effect eLink = EffectLinkEffects(EffectVisualEffect(PSI_DUR_SYNESTHETE), EffectPact(oBinder));
|
||
if (!GetIsVestigeExploited(oBinder, VESTIGE_EURYNOME_ANIMAL_FRIEND)) eLink = EffectLinkEffects(eLink, EffectAreaOfEffect(136, "bnd_vest_eurychm", "", ""));
|
||
if (!GetIsVestigeExploited(oBinder, VESTIGE_EURYNOME_DR)) eLink = EffectLinkEffects(eLink, EffectDamageReduction(2, DAMAGE_POWER_PLUS_THREE));
|
||
if (!GetIsVestigeExploited(oBinder, VESTIGE_EURYNOME_MAUL))
|
||
{
|
||
IPSafeAddItemProperty(GetPCSkin(oBinder), ItemPropertyBonusFeat(IP_CONST_FEAT_WEAPON_PROFICIENCY_WARHAMMER), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
|
||
object oHammer = CreateItemOnObject("bnd_eury_hammer", oBinder);
|
||
SetIdentified(oHammer, TRUE);
|
||
SetDroppableFlag(oHammer, FALSE);
|
||
SetItemCursedFlag(oHammer, TRUE);
|
||
AssignCommand(oHammer, SetIsDestroyable(FALSE, FALSE, FALSE));
|
||
DelayCommand(0.25, AssignCommand(oBinder, ActionEquipItem(oHammer, INVENTORY_SLOT_RIGHTHAND)));
|
||
|
||
if (nBinderLevel >= 19) IPSafeAddItemProperty(oHammer, ItemPropertyEnhancementBonus(3), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||
if (nBinderLevel >= 15)
|
||
{
|
||
IPSafeAddItemProperty(oHammer, ItemPropertyAttackBonus(5), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||
IPSafeAddItemProperty(oHammer, ItemPropertyAttackPenalty(5), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||
}
|
||
if (nBinderLevel >= 11) IPSafeAddItemProperty(oHammer, ItemPropertyDamageBonusVsAlign(IP_CONST_ALIGNMENTGROUP_LAWFUL, IP_CONST_DAMAGETYPE_BLUDGEONING, IP_CONST_DAMAGEBONUS_2d6), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_REPLACE_EXISTING, FALSE, TRUE);
|
||
}
|
||
|
||
if (!GetLocalInt(oBinder, "PactQuality"+IntToString(VESTIGE_EURYNOME)))
|
||
{
|
||
FloatingTextStringOnCreature("You have made a poor pact, and Eurynome prevents you from acting first in combat!", oBinder, FALSE);
|
||
// Lets the spell apply first
|
||
DelayCommand(3.0, EurynomeInfluence(oBinder, FALSE));
|
||
}
|
||
|
||
if (!GetIsVestigeExploited(oBinder, VESTIGE_EURYNOME_POISON))
|
||
{
|
||
IPSafeAddItemProperty(GetItemInSlot(INVENTORY_SLOT_CHEST, oBinder), ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ONHIT_UNIQUEPOWER, 1), HoursToSeconds(24), X2_IP_ADDPROP_POLICY_KEEP_EXISTING);
|
||
AddEventScript(GetItemInSlot(INVENTORY_SLOT_CHEST, oBinder), EVENT_ITEM_ONHIT, "bnd_events", TRUE, FALSE);
|
||
}
|
||
|
||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oBinder, HoursToSeconds(24));
|
||
} |