Initial commit
Adding all of the current content for Anphillia Unlimited.
This commit is contained in:
179
_module/nss/enc_spiderqueen.nss
Normal file
179
_module/nss/enc_spiderqueen.nss
Normal file
@@ -0,0 +1,179 @@
|
||||
/************************************************************************
|
||||
* script name : enc_spiderqueen
|
||||
* created by : eyesolated
|
||||
* date : 2018/5/14
|
||||
*
|
||||
* description : This script defines the Spider Queen encounter
|
||||
*
|
||||
* changes : 2018/5/14 - eyesolated - Initial creation
|
||||
************************************************************************/
|
||||
|
||||
// Includes
|
||||
#include "ee_inc"
|
||||
|
||||
// Constants
|
||||
const string ENCOUNTER_NAME = "Spider Queen";
|
||||
const string ENCOUNTER_TAG = "ee_spiderqueen";
|
||||
const float ENCOUNTER_DESPAWNINTERVAL = 12.0f;
|
||||
const float ENCOUNTER_RESPAWN = 3600.0f;
|
||||
const int ENCOUNTER_DEBUGLEVEL = eE_MESSAGELEVEL_LOW;
|
||||
|
||||
const string EVENT_INITIALIZE = "event_Initialize";
|
||||
const string EVENT_INPROGRESS = "event_InProgress";
|
||||
const string EVENT_WEBBER_ATTACK = "event_Webber";
|
||||
|
||||
const string WAYPOINT_ENCOUNTER = "wp_ee_spiderqueen";
|
||||
const string WAYPOINT_SPAWN_QUEEN = "wp_spawn_queen";
|
||||
const string WAYPOINT_SPAWN_WEBBER = "wp_spawn_webber";
|
||||
|
||||
const string RESREF_BOSS = "ee_sq_queen";
|
||||
const string RESREF_WEBBER = "ee_sq_webber";
|
||||
const string RESREF_POISONWARNING = "ee_sq_poiswarn";
|
||||
|
||||
const float QUEEN_FLEE_INITIALDELAY = 18.0f; // 24.0f seconds
|
||||
const float QUEEN_FLEE_INTERVAL = 42.0f;
|
||||
const int QUEEN_FLEE_DURATION_ROUNDS = 3; // 18.0f seconds
|
||||
const string QUEEN_FLEE_EFFECTTAG = "sq_flee";
|
||||
|
||||
const int QUEEN_POISON_DAMAGE = 9;
|
||||
const int QUEEN_POISON_TICKS = 9;
|
||||
const float QUEEN_POISON_WARNING = 2.75f; // 2.75 seconds warning
|
||||
const float QUEEN_POISON_DURATION = 12.0f; // Poison overlaps a bit
|
||||
|
||||
const int WEBBER_COUNT = -3; // 1 / 3 players
|
||||
const float WEBBER_SPAWN_INITIALDELAY = 36.0f; // First Webbers appear when queen is back
|
||||
const float WEBBER_SPAWN_INTERVAL = 42.0f; // And every reappearance thereafter
|
||||
|
||||
void main()
|
||||
{
|
||||
// Look for an existing encounter
|
||||
object oEncounter = GetObjectByTag(ENCOUNTER_TAG);
|
||||
|
||||
// Create the encounter object
|
||||
if (!GetIsObjectValid(oEncounter))
|
||||
{
|
||||
// Create the encounter
|
||||
eE_CreateEncounter(ENCOUNTER_NAME, WAYPOINT_ENCOUNTER, ENCOUNTER_TAG, eE_VAR_CONDITION_NONE, ENCOUNTER_DESPAWNINTERVAL, EVENT_INITIALIZE, EVENT_INPROGRESS, ENCOUNTER_RESPAWN, ENCOUNTER_DEBUGLEVEL);
|
||||
|
||||
// Spawn the Spider Queen
|
||||
eE_CreateEvent_Creature("SPAWN_SpiderQueen", // Event Name
|
||||
ENCOUNTER_TAG, // Encounter Tag
|
||||
EVENT_INITIALIZE, // Event Tag
|
||||
eE_EVENTOWNER_NONE, // Owner
|
||||
RESREF_BOSS, // Blueprint ResRef
|
||||
-1, // Quantity
|
||||
0, // MaxConcurrent
|
||||
WAYPOINT_SPAWN_QUEEN, // Spawn Point
|
||||
0.0f, // Spawn Delay
|
||||
eE_SPAWNMETHOD_FIXED, // Spawn Method
|
||||
0, // Spawn Effect
|
||||
RESREF_BOSS, // New Tag
|
||||
"", // OnSpawn
|
||||
"", // OnDamaged Event
|
||||
"", // OnDeath
|
||||
"", // OnExhaust
|
||||
1); // Key Event
|
||||
|
||||
// The spider queen leaves the battle and returns at a random players position shortly after
|
||||
eE_CreateEvent_Effect("JUMP_SpiderQueen", // Event Name
|
||||
ENCOUNTER_TAG, // Encounter Tag
|
||||
EVENT_INPROGRESS, // Event Tag
|
||||
RESREF_BOSS, // Owner
|
||||
-1, // Quantity
|
||||
0.0f, // Delay between Owners
|
||||
RESREF_BOSS, // VFX_Target (no VFX for DisappearAppear)
|
||||
eE_TARGETMETHOD_RANDOM, // Target Method
|
||||
DURATION_TYPE_TEMPORARY, // Duration Type
|
||||
QUEEN_FLEE_DURATION_ROUNDS * 6.0f,// Duration
|
||||
eE_EFFECT_TYPE_DURATION, // eE Effect Type
|
||||
eE_EFFECT_EFFECT_DISAPPEARAPPEAR, // Effect
|
||||
"", // Effect Variables
|
||||
-1, // VFX (no VFX for DisappearAppear)
|
||||
QUEEN_FLEE_EFFECTTAG, // Effect Tag
|
||||
QUEEN_FLEE_INITIALDELAY, // Initial Delay
|
||||
QUEEN_FLEE_INTERVAL, // Interval
|
||||
0, // Max Repeats
|
||||
eE_UNDO_MANUAL); // Undo Mode
|
||||
|
||||
// While the queen is gone to the ceiling, she sprays poison on one player from above twice per round
|
||||
int nRound;
|
||||
for (nRound = 1; nRound < (QUEEN_FLEE_DURATION_ROUNDS * 2); nRound++)
|
||||
{
|
||||
eE_CreateEvent_Damage("POISON_Round_" + IntToString(nRound), // Event Name
|
||||
ENCOUNTER_TAG, // Encounter Tag
|
||||
EVENT_INPROGRESS, // Event Tag
|
||||
eE_EVENTOWNER_NONE, // Owner
|
||||
1, // Quantity / Target Count
|
||||
eE_SPAWNTAG_PC, // Tag / Target
|
||||
eE_DAMAGE_OBJECTTYPE_PC, // ObjectTypes
|
||||
eE_TARGETMETHOD_RANDOM, // Target Method
|
||||
eE_OBJECTLOCATION_LOCATION, // Target Type
|
||||
AOE_PER_FOGACID, // VFX
|
||||
"", // VFX Placeable
|
||||
QUEEN_POISON_DAMAGE, // Damage Amount
|
||||
DAMAGE_TYPE_ACID, // Damage Type
|
||||
QUEEN_POISON_TICKS, // Ticks
|
||||
QUEEN_POISON_DURATION, // Damage Duration
|
||||
-1, // Warning VFX
|
||||
RESREF_POISONWARNING, // Warning Placeable
|
||||
QUEEN_POISON_WARNING, // Warning Delay
|
||||
SHAPE_SPHERE, // Shape Type
|
||||
RADIUS_SIZE_LARGE, // Shape Size
|
||||
0.0f, // Safe Zone
|
||||
QUEEN_FLEE_INITIALDELAY + (3.0f * nRound), // Initial Delay
|
||||
QUEEN_FLEE_INTERVAL); // Interval
|
||||
}
|
||||
|
||||
// After returning to the ground, the queen will attack a random PC
|
||||
eE_CreateEvent_Action("ATTACK_Queen", // Event Name
|
||||
ENCOUNTER_TAG, // Encounter Tag
|
||||
EVENT_INPROGRESS, // Event Tag
|
||||
RESREF_BOSS, // Owner
|
||||
1, // Quantity
|
||||
eE_VAR_EVENT_ACTION_ATTACK, // Attack
|
||||
eE_SPAWNTAG_PC, // Target
|
||||
eE_TARGETMETHOD_NEARESTINDIVIDUAL,// Nearest Target
|
||||
eE_OBJECTLOCATION_OBJECT, // Object
|
||||
0, // No Spell
|
||||
-1, // No Spell Warning
|
||||
0.0f, // No Spell Warning Delay
|
||||
QUEEN_FLEE_INITIALDELAY + (6.0f * QUEEN_FLEE_DURATION_ROUNDS) + 0.5f, // Initial Delay
|
||||
QUEEN_FLEE_INTERVAL); // Interval
|
||||
|
||||
// Spawn a Webber Add
|
||||
eE_CreateEvent_Creature("SPAWN_Webber", // Event Name
|
||||
ENCOUNTER_TAG, // Encounter Tag
|
||||
EVENT_INPROGRESS, // Event Tag
|
||||
eE_EVENTOWNER_NONE, // Owner
|
||||
RESREF_WEBBER, // Blueprint
|
||||
WEBBER_COUNT, // Quantity
|
||||
0, // MaxConcurrent
|
||||
eE_SPAWNTAG_PC, // SpawnAt
|
||||
0.0f, // SpawnDelay
|
||||
eE_SPAWNMETHOD_RANDOM, // SpawnMethod
|
||||
0, // Spawn Effect
|
||||
RESREF_WEBBER, // New Tag
|
||||
EVENT_WEBBER_ATTACK, // OnSpawn
|
||||
"", // OnDamaged Event
|
||||
"", // OnDeath
|
||||
"", // OnExhaust
|
||||
0, // Key Event
|
||||
WEBBER_SPAWN_INITIALDELAY, // Initial Delay
|
||||
WEBBER_SPAWN_INTERVAL); // Interval
|
||||
|
||||
// Webbers go after the nearest PC
|
||||
eE_CreateEvent_Action("ATTACK_Webber", // Event Name
|
||||
ENCOUNTER_TAG, // Encounter Tag
|
||||
EVENT_WEBBER_ATTACK, // Event Tag
|
||||
eE_EVENTOWNER_SELF, // Owner
|
||||
1, // Quantity
|
||||
eE_VAR_EVENT_ACTION_ATTACK, // Attack
|
||||
eE_SPAWNTAG_PC, // Target
|
||||
eE_TARGETMETHOD_NEARESTINDIVIDUAL,// Nearest Target
|
||||
eE_OBJECTLOCATION_OBJECT, // Object
|
||||
0, // No Spell
|
||||
-1, // No Spell Warning
|
||||
0.0f, // No Spell Warning Delay
|
||||
0.1f); // Initial Delay
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user