forked from Jaysyn/PRC8
78 lines
3.5 KiB
Plaintext
78 lines
3.5 KiB
Plaintext
|
/*
|
|||
|
09/03/21 by Stratovarius
|
|||
|
|
|||
|
Dantalion, the Star Emperor
|
|||
|
|
|||
|
Dantalion, called the Star Emperor for his legend and appearance, is a composite of many souls. He grants binders the ability to teleport short distances, read thoughts, and stop foes.
|
|||
|
|
|||
|
Vestige Level: 5th
|
|||
|
Binding DC: 25
|
|||
|
Special Requirement: No
|
|||
|
|
|||
|
Influence: Dantalion<6F>s influence causes you to be aloof and use stately gestures. Dantalion can<61>t help but be curious about the leaders of the day,
|
|||
|
so anytime you are within 100 feet of someone who clearly is (or professes to be) a leader of others, Dantalion requires that you try to read that
|
|||
|
person<EFBFBD>s thoughts. Once you have made the attempt, regardless of success or failure, you need not try to read that person<6F>s thoughts again.
|
|||
|
|
|||
|
Granted Abilities:
|
|||
|
Pact magic grimoires attest to Dantalion<6F>s profound wisdom and his extensive knowledge about all subjects. Because he knows all thoughts, he can grant
|
|||
|
you a portion of that power, as well as the ability to travel just by thinking. You also gain a portion of his commanding presence, which many binders
|
|||
|
ascribe to his royal origins.
|
|||
|
|
|||
|
Awe of Dantalion: When you invoke this ability (a move action), any creature that sees you is unable to attack you or target you with a hostile spell
|
|||
|
for 1 round. If you attempt any hostile action, such as making an attack roll or casting an offensive spell against the affected creature or its allies,
|
|||
|
the effect ends. Once you have used this ability, you cannot do so again for 5 rounds.
|
|||
|
*/
|
|||
|
|
|||
|
#include "bnd_inc_bndfunc"
|
|||
|
#include "spinc_dimdoor"
|
|||
|
#include "prc_inc_template"
|
|||
|
|
|||
|
void ApplyCharm(object oTarget)
|
|||
|
{
|
|||
|
object oItem = GetItemInSlot(INVENTORY_SLOT_CARMOUR, oTarget);
|
|||
|
int nRemove = FALSE;
|
|||
|
itemproperty ip = GetFirstItemProperty(oItem);
|
|||
|
while(GetIsItemPropertyValid(ip))
|
|||
|
{
|
|||
|
if (GetItemPropertyType(ip) == ITEM_PROPERTY_IMMUNITY_MISCELLANEOUS && GetItemPropertySubType(ip) == IP_CONST_IMMUNITYMISC_MINDSPELLS)
|
|||
|
{
|
|||
|
RemoveItemProperty(oItem, ip);
|
|||
|
nRemove = TRUE;
|
|||
|
}
|
|||
|
if (GetItemPropertyType(ip) == ITEM_PROPERTY_MIND_BLANK)
|
|||
|
{
|
|||
|
RemoveItemProperty(oItem, ip);
|
|||
|
nRemove = TRUE;
|
|||
|
}
|
|||
|
|
|||
|
ip = GetNextItemProperty(oItem);
|
|||
|
}
|
|||
|
|
|||
|
AssignCommand(oTarget, ClearAllActions(TRUE));
|
|||
|
effect eLink = EffectLinkEffects(EffectVisualEffect(VFX_DUR_MIND_AFFECTING_POSITIVE), EffectCharmed());
|
|||
|
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, SupernaturalEffect(eLink), oTarget, RoundsToSeconds(1)));
|
|||
|
if (nRemove) DelayCommand(1.0, AddItemProperty(DURATION_TYPE_PERMANENT, ItemPropertyImmunityMisc(IP_CONST_IMMUNITYMISC_MINDSPELLS), oItem));
|
|||
|
}
|
|||
|
|
|||
|
void main()
|
|||
|
{
|
|||
|
object oBinder = OBJECT_SELF;
|
|||
|
|
|||
|
if(!BindAbilCooldown(oBinder, GetSpellId(), VESTIGE_DANTALION)) return;
|
|||
|
if (GetLevelByClass(CLASS_TYPE_SCION_DANTALION, oBinder) >= 2) if(!TakeSwiftAction(oBinder)) return;
|
|||
|
else if(!TakeMoveAction(oBinder)) return;
|
|||
|
|
|||
|
location lTarget = GetLocation(oBinder);
|
|||
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(PSI_FNF_PSYCHIC_CRUSH), lTarget);
|
|||
|
// Use the function to get the closest creature as a target
|
|||
|
object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
|||
|
while(GetIsObjectValid(oTarget))
|
|||
|
{
|
|||
|
if(oTarget != oBinder && GetIsEnemy(oTarget, oBinder)) // Only enemies
|
|||
|
ApplyCharm(oTarget);
|
|||
|
|
|||
|
//Select the next target within the spell shape.
|
|||
|
oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, lTarget, TRUE, OBJECT_TYPE_CREATURE);
|
|||
|
}
|
|||
|
}
|
|||
|
|