mirror of
https://github.com/SWG-Source/dsrc.git
synced 2026-07-31 00:15:54 -04:00
94 lines
2.2 KiB
Plaintext
94 lines
2.2 KiB
Plaintext
|
|
include library.utils;
|
|
include library.ai_lib;
|
|
include library.create;
|
|
include library.gcw;
|
|
|
|
inherits systems.spawning.dropship.base;
|
|
|
|
trigger OnAttach()
|
|
{
|
|
messageTo(self, "handleAttachDelay", null, 2f, false);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler handleAttachDelay()
|
|
{
|
|
stop (self);
|
|
//setName (self, "Stormtrooper Transport");
|
|
setPosture(self, POSTURE_PRONE);
|
|
messageTo(self, "spawnPayload", null, 20f, true);
|
|
queueCommand(self, ##"stand", self, "", COMMAND_PRIORITY_FRONT);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler changePosture()
|
|
{
|
|
setPosture(self, POSTURE_UPRIGHT);
|
|
messageTo(self, "selfCleanUp", null, 60f, false);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler spawnPayload()
|
|
{
|
|
string[] spawnNames = utils.getStringArrayScriptVar(self, "spawnNames");
|
|
if ( spawnNames != null && spawnNames.length > 0 )
|
|
{
|
|
location here = getLocation(self);
|
|
if ( here != null )
|
|
{
|
|
int pos = 0;
|
|
obj_id leader = null;
|
|
resizeable obj_id[] spawns = new obj_id[0];
|
|
for ( int i = 0; i < spawnNames.length; i++ )
|
|
{
|
|
obj_id thisSpawn = create.object(spawnNames[i], here);
|
|
if ( isIdValid(thisSpawn) && !isIdValid(leader) )
|
|
{
|
|
leader = thisSpawn;
|
|
spawns = utils.addElement(spawns, thisSpawn);
|
|
|
|
if ( i > 0 && isIdValid(leader) )
|
|
{
|
|
//ai_lib.FORMATION_COLUMN = 0;
|
|
ai_lib.wander(thisSpawn);
|
|
attachScript(thisSpawn, "ai.imperial_presence.harass");
|
|
}
|
|
|
|
}
|
|
if( isIdValid(thisSpawn))
|
|
{
|
|
detachScript(leader, "ai.soldier");
|
|
setMovementRun(thisSpawn);
|
|
utils.removeObjVar( thisSpawn, "ai.diction");
|
|
ai_lib.followInFormation(thisSpawn, leader, 4, ++pos);
|
|
}
|
|
}
|
|
|
|
if ( spawns != null && spawns.length > 0 )
|
|
{
|
|
dictionary spawnParams = utils.getDictionaryScriptVar(self, "spawnParameters");
|
|
if ( spawnParams != null && !spawnParams.isEmpty() )
|
|
messageTo(spawns[0], "handleSpawnParameters", spawnParams, 1f, false);
|
|
//debugSpeakMsg(self, "Sending Msg Handler to myself.");
|
|
}
|
|
}
|
|
}
|
|
|
|
messageTo (self, "changePosture", null, 5, false);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
messageHandler selfCleanUp ()
|
|
{
|
|
if (isIdValid(self))
|
|
{
|
|
destroyObject(self);
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
return SCRIPT_CONTINUE;
|
|
}
|
|
|
|
|
|
|