RATDOG/_module/nss/j_sp_lichboss.nss
Jaysyn904 8c0a2224cb Area & spawner pass.
Updated Aragnak's Isle & Lair, Bard College, Cazrak's Lair.  Remade several items.
2021-12-30 01:18:45 -05:00

77 lines
3.9 KiB
Plaintext

/************************ [On Spawn: Lich] *************************************
Filename: j_sp_lichboss
************************* [On Spawn: Lich] *************************************
A high-powered lich, who takes advantage of spell triggers!
He should be geared towards higher level spells, and once he runs out, he
does cheat-cast several 1-3 level spells.
The spell triggers stop quite a bit of damage, with Premonition, greater
spell mantal and Energy Buffer. He also has some taunts he uses most combat
rounds, as well as using longer ranged spells first.
As he is a boss, he is a leader status, and also gets a free harm at 30% HP.
************************* [On Spawn: Lich] ************************************/
// This is required for all spawn in options!
#include "j_inc_spawnin"
void main()
{
// Maximum intelligence
SetAIInteger(AI_INTELLIGENCE, 10);
SetAIInteger(AI_MORALE, 10);
SetSpawnInCondition(AI_FLAG_FLEEING_FEARLESS, AI_TARGETING_FLEE_MASTER);
SetSpawnInCondition(AI_FLAG_OTHER_DONT_RESPOND_TO_EMOTES, AI_OTHER_MASTER);
AI_SetAITargetingValues(TARGETING_MANTALS, TARGET_LOWER, 1, 12);
AI_SetAITargetingValues(TARGETING_RANGE, TARGET_HIGHER, 2, 9);
AI_SetAITargetingValues(TARGETING_AC, TARGET_LOWER, 3, 6);
AI_SetAITargetingValues(TARGETING_SAVES, TARGET_LOWER, 3, 4);
// Mages target higher. (the lowest BAB, under half our hit dice in BAB)
AI_SetAITargetingValues(TARGETING_PHISICALS, TARGET_HIGHER, 1, 5);
AI_SetAITargetingValues(TARGETING_BAB, TARGET_LOWER, 1, 4);
AI_SetAITargetingValues(TARGETING_HITDICE, TARGET_LOWER, 1, 3);
SetSpawnInCondition(AI_FLAG_COMBAT_DISPEL_IN_ORDER, AI_COMBAT_MASTER);
SetSpawnInCondition(AI_FLAG_COMBAT_IMPROVED_INSTANT_DEATH_SPELLS, AI_COMBAT_MASTER);
SetSpawnInCondition(AI_FLAG_COMBAT_IMPROVED_SUMMON_TARGETING, AI_COMBAT_MASTER);
SetSpawnInCondition(AI_FLAG_COMBAT_IMPROVED_IMMUNITY_CHECKING, AI_COMBAT_MASTER);
SetSpawnInCondition(AI_FLAG_COMBAT_IMPROVED_SPECIFIC_SPELL_IMMUNITY, AI_COMBAT_MASTER);
SetSpawnInCondition(AI_FLAG_OTHER_COMBAT_WILL_RAISE_ALLIES_IN_BATTLE, AI_OTHER_COMBAT_MASTER);
SetSpawnInCondition(AI_FLAG_OTHER_COMBAT_GROUP_LEADER, AI_OTHER_COMBAT_MASTER);
SetSpawnInCondition(AI_FLAG_COMBAT_LONGER_RANGED_SPELLS_FIRST, AI_COMBAT_MASTER);
AI_SetSpawnInSpeakArray(AI_TALK_ON_COMBAT_ROUND_EQUAL, 900, 4, "Curse your life!", "Nothing can kill the undead!", "MUhahaHaHahahha!!", "Prepare to DIE!");
AI_SetSpawnInSpeakArray(AI_TALK_ON_COMBAT_ROUND_THEM_OVER_US, 900, 4, "Curse your life!", "Nothing can kill the undead!", "MUhahaHaHahahha!!", "Prepare to DIE!");
AI_SetSpawnInSpeakArray(AI_TALK_ON_COMBAT_ROUND_US_OVER_THEM, 900, 4, "Curse your life!", "Nothing can kill the undead!", "MUhahaHaHahahha!!", "Prepare to DIE!");
// Spell triggers
SetSpellTrigger(SPELLTRIGGER_START_OF_COMBAT, FALSE, 1, SPELL_DEATH_ARMOR, SPELL_FOXS_CUNNING, SPELL_SHADOW_SHIELD);
// Damamged
SetSpellTrigger(SPELLTRIGGER_DAMAGED_AT_PERCENT, 30, 1, SPELL_HARM);
// Immobile
SetSpellTrigger(SPELLTRIGGER_IMMOBILE, FALSE, 1, SPELL_FREEDOM_OF_MOVEMENT);
// Normal defensive
SetSpellTrigger(SPELLTRIGGER_NOT_GOT_FIRST_SPELL, FALSE, 1, SPELL_PREMONITION);
SetSpellTrigger(SPELLTRIGGER_NOT_GOT_FIRST_SPELL, FALSE, 2, SPELL_PREMONITION);
SetSpellTrigger(SPELLTRIGGER_NOT_GOT_FIRST_SPELL, FALSE, 3, SPELL_GREATER_SPELL_MANTLE);
SetSpellTrigger(SPELLTRIGGER_NOT_GOT_FIRST_SPELL, FALSE, 4, SPELL_GREATER_SPELL_MANTLE);
SetSpellTrigger(SPELLTRIGGER_NOT_GOT_FIRST_SPELL, FALSE, 5, SPELL_ENERGY_BUFFER);
SetSpellTrigger(SPELLTRIGGER_NOT_GOT_FIRST_SPELL, FALSE, 6, SPELL_ENERGY_BUFFER);
// Cheat spells
SetAICheatCastSpells(SPELL_MAGIC_MISSILE, SPELL_MAGIC_MISSILE, SPELL_MAGIC_MISSILE, SPELL_FIREBALL, SPELL_MELFS_ACID_ARROW, SPELL_MELFS_ACID_ARROW);
AI_SetUpEndOfSpawn();
DelayCommand(2.0, SpawnWalkWayPoints());
}