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.
		
			
				
	
	
		
			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’s influence causes you to be aloof and use stately gestures. Dantalion can’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’s thoughts. Once you have made the attempt, regardless of success or failure, you need not try to read that person’s thoughts again.
 | ||
| 
 | ||
| Granted Abilities: 
 | ||
| Pact magic grimoires attest to Dantalion’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);
 | ||
|     }
 | ||
| }
 | ||
|          |