generated from Jaysyn/ModuleTemplate
Initial Commit
Initial Commit
This commit is contained in:
94
_module/nss/g_fireworks.nss
Normal file
94
_module/nss/g_fireworks.nss
Normal file
@@ -0,0 +1,94 @@
|
||||
//::///////////////////////////////////////////////
|
||||
//:: Firework Show
|
||||
//:: g_fireworks.nss
|
||||
//:: Copyright (c) 2001 Bioware Corp.
|
||||
//:://////////////////////////////////////////////
|
||||
/*
|
||||
|
||||
This script is the heartbeat of the Firework show. Not much you need to do in
|
||||
this file as it will handle everything on its own.
|
||||
|
||||
*/
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Created By: Jay Clark
|
||||
//:: Created On: August 31, 2004
|
||||
//:://////////////////////////////////////////////
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
object oMod = GetModule();
|
||||
object oTarget;
|
||||
object oSource = GetObjectByTag("FireworksSource");
|
||||
effect eMissile = EffectVisualEffect(VFX_IMP_MIRV);
|
||||
effect eDam = EffectDamage(1);
|
||||
effect eFire = EffectVisualEffect(VFX_COM_HIT_FIRE);
|
||||
int nNum;
|
||||
string sTag;
|
||||
int TotalCount;
|
||||
|
||||
TotalCount = GetLocalInt(oSource,"FireworkCount");
|
||||
TotalCount++;
|
||||
SetLocalInt(oSource,"FireworkCount",TotalCount);
|
||||
|
||||
//Make sure the new fireworks will happen which could be turned off in other scripts
|
||||
SetLocalInt(oSource,"NEWFIREWORK",TRUE);
|
||||
SetLocalInt(oSource,"SmallFireWorks",0);
|
||||
SetLocalInt(oSource,"NewMedFire",TRUE);
|
||||
SetLocalInt(oSource,"NOSPAWN",FALSE);
|
||||
|
||||
if (TotalCount > 10)
|
||||
{
|
||||
|
||||
//Finale, Prescripted for the most part in g_fireworksfinal
|
||||
ExecuteScript("g_fireworksfinal",oSource);
|
||||
}
|
||||
|
||||
//Roll to see what type of firework we are doing
|
||||
int nRoll = Random(100)+1;
|
||||
if (nRoll < 40)
|
||||
{
|
||||
//Small Firework One Target One Effect
|
||||
nNum = Random(12)+1;
|
||||
sTag = "FireworksSTarget" + IntToString(nNum);
|
||||
oTarget = GetObjectByTag(sTag);
|
||||
}
|
||||
else if (nRoll < 65)
|
||||
{
|
||||
//Medium Size One Target Many Effects might spawn other Targets
|
||||
nNum = Random(3)+1;
|
||||
sTag = "FireworksMTarget" + IntToString(nNum);
|
||||
oTarget = GetObjectByTag(sTag);
|
||||
}
|
||||
else if (nRoll < 90)
|
||||
{
|
||||
//Large One Target Many effect will spawn other targets with many effects
|
||||
nNum = Random(3)+1;
|
||||
sTag = "FireworksLTarget" + IntToString(nNum);
|
||||
oTarget = GetObjectByTag(sTag);
|
||||
}
|
||||
else if (TotalCount <= 10)
|
||||
{
|
||||
//if (TotalCount > 8)
|
||||
//{
|
||||
//Finale, Prescripted for the most part in g_fireworksfinal
|
||||
// ExecuteScript("g_fireworksfinal",oSource);
|
||||
//}
|
||||
// else
|
||||
// {
|
||||
|
||||
ExecuteScript("g_fireworks",oSource);
|
||||
}
|
||||
// }
|
||||
|
||||
float fDist = GetDistanceBetween(oSource, oTarget);
|
||||
float fDelay = fDist/(3.0 * log(fDist) + 2.0);
|
||||
float fDelay2, fTime;
|
||||
fTime = fDelay;
|
||||
fDelay2 += 0.1;
|
||||
fTime += fDelay2;
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource);
|
||||
DelayCommand(fTime, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
|
||||
DelayCommand(fDelay2, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
|
||||
}
|
||||
Reference in New Issue
Block a user