Initial Commit

Initial Commit
This commit is contained in:
Jaysyn904
2025-04-03 11:24:16 -04:00
parent 3ba3cf1b81
commit 5e558169a0
6086 changed files with 1502996 additions and 1 deletions

View File

@@ -0,0 +1,329 @@
//::///////////////////////////////////////////////
//:: Fireworks Finale
//:: g_fireworksfinal
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This is called by g_fireworks after so many fireworks have been shot. This is a
heavily scripted event. If you don't know what to do don't mess with it.
If you do edit it make sure you always use DelayCommand with the varible
"fTimeDelay" Make sure you increase "fTimeDelay" or everything will happen at
the same time.
*/
//:://////////////////////////////////////////////
//:: Created By: Jay Clark
//:: Created On: August 31, 2004
//:://////////////////////////////////////////////
void main()
{
object oSource = GetObjectByTag("FireworksSource");
object oArea = GetArea(oSource);
object oTarget;
string sTag;
effect eMissile = EffectVisualEffect(VFX_IMP_MIRV);
effect eDam = EffectDamage(1);
effect eFire = EffectVisualEffect(VFX_COM_HIT_FIRE);
//Single Targets to use later On!
//These can be used by you to make other patterns for the finale
object oSTarget1 = GetObjectByTag("FireworksSTarget1");
object oSTarget2 = GetObjectByTag("FireworksSTarget2");
object oSTarget3 = GetObjectByTag("FireworksSTarget3");
object oSTarget4 = GetObjectByTag("FireworksSTarget4");
object oSTarget5 = GetObjectByTag("FireworksSTarget5");
object oSTarget6 = GetObjectByTag("FireworksSTarget6");
object oSTarget7 = GetObjectByTag("FireworksSTarget7");
object oSTarget8 = GetObjectByTag("FireworksSTarget8");
object oSTarget9 = GetObjectByTag("FireworksSTarget9");
object oSTarget10 = GetObjectByTag("FireworksSTarget10");
object oSTarget11 = GetObjectByTag("FireworksSTarget11");
object oSTarget12 = GetObjectByTag("FireworksSTarget12");
object oMTarget = GetObjectByTag("FireworksMTarget3");
object oMTarget1 = GetObjectByTag("FireworksMTarget1");
object oMTarget2 = GetObjectByTag("FireworksMTarget2");
object oLTarget = GetObjectByTag("FireworksLTarget3");
object oLTarget1 = GetObjectByTag("FireworksLTarget1");
object oLTarget2 = GetObjectByTag("FireworksLTarget2");
int EffectNum;
int EffectNum1;
int i;
float fTimeDelay = 1.0;
float fDist, fDelay;
SetLocalInt(oSource,"NewMedFire",FALSE);
SetLocalInt(oSource,"NEWFIREWORK",FALSE);
SetLocalInt(oSource,"NOSPAWN",TRUE);
//Counter Clockwise with Howl
DelayCommand(fTimeDelay,SetLocalInt(oSource,"SmallFireWorks",3));; //Howl Circle
for(i=1;i<13;i++)
{
sTag = "FireworksSTarget" + IntToString(i);
oTarget = GetObjectByTag(sTag);
fDist = GetDistanceBetween(oSource, oTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
fTimeDelay += 0.5;
fDelay += fTimeDelay;
}
fTimeDelay += 3.0;
//Clockwise with dispel
DelayCommand(fTimeDelay,SetLocalInt(oSource,"SmallFireWorks",2)); //Dispel
for(i=12;i>0;i--)
{
sTag = "FireworksSTarget" + IntToString(i);
oTarget = GetObjectByTag(sTag);
fDist = GetDistanceBetween(oSource, oTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
fTimeDelay += 0.5;
fDelay += fTimeDelay;
}
fTimeDelay += 3.0;
//Order fire with Electric Burst
DelayCommand(fTimeDelay,SetLocalInt(oSource,"SmallFireWorks",9));
for(i=1;i<7;i++)
{
sTag = "FireworksSTarget" + IntToString(i);
oTarget = GetObjectByTag(sTag);
fDist = GetDistanceBetween(oSource, oTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
fTimeDelay += 0.5;
fDelay += fTimeDelay;
sTag = "FireworksSTarget" + IntToString(i+6);
oTarget = GetObjectByTag(sTag);
fDist = GetDistanceBetween(oSource, oTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
fTimeDelay += 0.5;
fDelay += fTimeDelay;
}
for(i=7;i<13;i++)
{
sTag = "FireworksSTarget" + IntToString(i);
oTarget = GetObjectByTag(sTag);
fDist = GetDistanceBetween(oSource, oTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
fTimeDelay += 0.5;
fDelay += fTimeDelay;
sTag = "FireworksSTarget" + IntToString(i-6);
oTarget = GetObjectByTag(sTag);
fDist = GetDistanceBetween(oSource, oTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
fTimeDelay += 0.5;
fDelay += fTimeDelay;
}
fTimeDelay += 3.0;
//Fire Medium Firework off followed by a Large shortly after
fDist = GetDistanceBetween(oSource, oMTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oMTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oMTarget));
fTimeDelay += 3.0;
fDist = GetDistanceBetween(oSource, oLTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oLTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oLTarget));
//Odd smalls go off with unused effects
fTimeDelay += 10.0;
EffectNum = 13;
fDist = GetDistanceBetween(oSource, oSTarget1);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget1));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget1));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum),oSTarget1));
fDist = GetDistanceBetween(oSource, oSTarget3);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget3));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget3));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum),oSTarget3));
fDist = GetDistanceBetween(oSource, oSTarget5);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget5));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget5));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum),oSTarget5));
fDist = GetDistanceBetween(oSource, oSTarget7);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget7));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget7));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum),oSTarget7));
fDist = GetDistanceBetween(oSource, oSTarget9);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget9));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget9));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum),oSTarget9));
fDist = GetDistanceBetween(oSource, oSTarget11);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget11));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget11));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum),oSTarget11));
//Even Small go off now
fTimeDelay += 2.0;
EffectNum1 = 13;
fDist = GetDistanceBetween(oSource, oSTarget2);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget2));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget2));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum1),oSTarget2));
fDist = GetDistanceBetween(oSource, oSTarget4);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget4));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget4));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum1),oSTarget4));
fDist = GetDistanceBetween(oSource, oSTarget6);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget6));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget6));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum1),oSTarget6));
fDist = GetDistanceBetween(oSource, oSTarget8);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget8));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget8));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum1),oSTarget8));
fDist = GetDistanceBetween(oSource, oSTarget10);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget10));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget10));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum1),oSTarget10));
fDist = GetDistanceBetween(oSource, oSTarget12);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oSTarget12));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oSTarget12));
DelayCommand(fDelay+0.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(EffectNum1),oSTarget12));
//Put some Rapid shot Random Mediums here
for(i=1;i<11;i++)
{
fDist = GetDistanceBetween(oSource, oMTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oMTarget));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oMTarget));
fTimeDelay += 2.5;
}
//GRAND ENDING!
fTimeDelay += 6.0;
//Grand Ending here Weird without darkness with a dragon flight to a big explosion.
fDist = GetDistanceBetween(oSource, oLTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oLTarget));
DelayCommand(fDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_FIREBALL),oLTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(323), oLTarget));
fTimeDelay = fDelay + 1.0;
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(488), oLTarget));
fTimeDelay += 5.0;
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(464), oLTarget));
fTimeDelay += 4.0;
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(477), oLTarget));
for(i=1;i<13;i++)
{
sTag = "FireworksSTarget" + IntToString(i);
oTarget = GetObjectByTag(sTag);
fDist = GetDistanceBetween(oSource, oTarget);
fDelay = fDist/(3.0 * log(fDist) + 2.0);
fDelay += fTimeDelay;
DelayCommand(fTimeDelay,ApplyEffectToObject(DURATION_TYPE_INSTANT, eFire, oSource));
DelayCommand(fTimeDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eMissile, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(193), oTarget));
DelayCommand(fDelay+0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(407), oTarget));
DelayCommand(fDelay+1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(459), oTarget));
}
fTimeDelay += 5.0;
//Stop the Music
DelayCommand(fTimeDelay,MusicBattleStop(oArea));
//Turn TileLights back on
DelayCommand(fTimeDelay,ExecuteScript("g_lightson",oTarget));
//Clean up all the targets
fTimeDelay += 5.0;
DestroyObject(oSTarget1,fTimeDelay);
DestroyObject(oSTarget2,fTimeDelay);
DestroyObject(oSTarget3,fTimeDelay);
DestroyObject(oSTarget4,fTimeDelay);
DestroyObject(oSTarget5,fTimeDelay);
DestroyObject(oSTarget6,fTimeDelay);
DestroyObject(oSTarget7,fTimeDelay);
DestroyObject(oSTarget8,fTimeDelay);
DestroyObject(oSTarget9,fTimeDelay);
DestroyObject(oSTarget10,fTimeDelay);
DestroyObject(oSTarget11,fTimeDelay);
DestroyObject(oSTarget1,fTimeDelay);
DestroyObject(oMTarget,fTimeDelay);
DestroyObject(oMTarget2,fTimeDelay);
DestroyObject(oMTarget,fTimeDelay);
DestroyObject(oLTarget1,fTimeDelay);
DestroyObject(oLTarget,fTimeDelay);
DestroyObject(oLTarget,fTimeDelay);
//Allow for another show to start
DelayCommand(fTimeDelay,SetLocalInt(oArea,"FIREWORKSHOW",FALSE));
}