Jaysyn904 5e558169a0 Initial Commit
Initial Commit
2025-04-03 11:24:16 -04:00

999 lines
36 KiB
Plaintext

#include "cutscene_ch1"
void CSsound(float oDelay, string sSound, object oPC)
{
DelayCommand(oDelay, AssignCommand(oPC, PlaySound(sSound)));
}
void MCheerDark(object oPC)
{
CSsound(0.0, "as_pl_nobyaygrp2", oPC);
CSsound(0.1, "as_pl_comyaygrp2", oPC);
CSsound(0.2, "vs_hprostm2_vict", oPC);
CSsound(0.3, "vs_fcallahm_vict", oPC);
CSsound(0.1, "vs_nwncomf4_vict", oPC);
CSsound(0.4, "vs_ngnbarm2_vict", oPC);
CSsound(0.2, "vs_ndwhitem_vict", oPC);
}
void MCheerLight(object oPC)
{
CSsound(0.0, "as_pl_nobyaygrp2", oPC);
CSsound(0.1, "as_pl_comyaygrp2", oPC);
CSsound(0.2, "vs_faven3m_vict", oPC);
CSsound(0.3, "vs_ndgreenf_vict", oPC);
CSsound(0.1, "vs_nclerimi_vict", oPC);
CSsound(0.2, "vs_nprostf1_vict", oPC);
CSsound(0.4, "vs_fx0subtm_vict", oPC);
}
void MCheerNPC(object oPC)
{
CSsound(0.0, "as_pl_nobyaygrp2", oPC);
CSsound(0.2, "vs_fx2archm_vict", oPC);
CSsound(0.4, "vs_nprelum4_vict", oPC);
CSsound(0.6, "vs_sirilm_vict", oPC);
CSsound(0.8, "vs_ngendm_vict", oPC);
}
void DarkAnim()
{
int iDice;
GestaltAnimate(0.2, GetObjectByTag("dlarge_1"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(0.4, GetObjectByTag("dlarge_2"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(0.6, GetObjectByTag("dlarge_3"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(0.8, GetObjectByTag("dlarge_4"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(1.0, GetObjectByTag("dlarge_5"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(1.2, GetObjectByTag("dlarge_6"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(1.4, GetObjectByTag("dlarge_7"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(1.6, GetObjectByTag("dlarge_8"), ANIMATION_FIREFORGET_TAUNT);
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.4, GetObjectByTag("d1"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.4, GetObjectByTag("d1"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.4, GetObjectByTag("d1"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.8, GetObjectByTag("d2"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.8, GetObjectByTag("d2"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.8, GetObjectByTag("d2"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(1.2, GetObjectByTag("d3"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(1.2, GetObjectByTag("d3"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(1.2, GetObjectByTag("d3"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
}
void LightAnim()
{
int iDice;
GestaltAnimate(0.4, GetObjectByTag("llarge_1"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(0.8, GetObjectByTag("llarge_2"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(1.2, GetObjectByTag("llarge_3"), ANIMATION_FIREFORGET_TAUNT);
GestaltAnimate(1.8, GetObjectByTag("llarge_4"), ANIMATION_FIREFORGET_TAUNT);
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.4, GetObjectByTag("l1"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.4, GetObjectByTag("l1"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.4, GetObjectByTag("l1"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.8, GetObjectByTag("l2"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.8, GetObjectByTag("l2"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.8, GetObjectByTag("l2"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.2, GetObjectByTag("l3"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.2, GetObjectByTag("l3"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.2, GetObjectByTag("l3"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.6, GetObjectByTag("l4"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.6, GetObjectByTag("l4"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.6, GetObjectByTag("l4"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(1.8, GetObjectByTag("l5"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(1.8, GetObjectByTag("l5"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(1.8, GetObjectByTag("l5"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(1.0, GetObjectByTag("l6"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(1.0, GetObjectByTag("l6"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(1.0, GetObjectByTag("l6"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
}
void NPCAnim()
{
int iDice;
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.0, GetObjectByTag("npc1"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.0, GetObjectByTag("npc1"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.0, GetObjectByTag("npc1"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.2, GetObjectByTag("npc2"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.2, GetObjectByTag("npc2"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.2, GetObjectByTag("npc2"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.4, GetObjectByTag("npc3"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.4, GetObjectByTag("npc3"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.4, GetObjectByTag("npc3"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.6, GetObjectByTag("npc4"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.6, GetObjectByTag("npc4"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.6, GetObjectByTag("npc4"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(0.8, GetObjectByTag("g_angel10"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(0.8, GetObjectByTag("g_angel10"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(0.8, GetObjectByTag("g_angel10"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
iDice = d3();
switch(iDice)
{
case 1:{GestaltAnimate(1.0, GetObjectByTag("g_angel11"), ANIMATION_FIREFORGET_VICTORY1);}break;
case 2:{GestaltAnimate(1.0, GetObjectByTag("g_angel11"), ANIMATION_FIREFORGET_VICTORY2);}break;
case 3:{GestaltAnimate(1.0, GetObjectByTag("g_angel11"), ANIMATION_FIREFORGET_VICTORY3);}break;
}
}
void MassCheerDark(float oDelay, object oPC)
{
DelayCommand(oDelay, DarkAnim());
DelayCommand(oDelay+0.2, MCheerDark(oPC));
}
void MassCheerLight(float oDelay, object oPC)
{
DelayCommand(oDelay, LightAnim());
DelayCommand(oDelay+0.2, MCheerLight(oPC));
}
void MassCheerAll(float oDelay, object oPC)
{
DelayCommand(oDelay, DarkAnim());
DelayCommand(oDelay+0.2, MCheerDark(oPC));
DelayCommand(oDelay, LightAnim());
DelayCommand(oDelay+0.2, MCheerLight(oPC));
}
void MassCheerNPC(float oDelay, object oPC)
{
DelayCommand(oDelay, MCheerNPC(oPC));
DelayCommand(oDelay, NPCAnim());
}
void FlyOff(object oPC)
{
GestaltApplyEffect(1.0, oPC, EffectVisualEffect(VFX_IMP_PULSE_WIND), INSTANT);
GestaltApplyEffect(0.0, oPC, EffectDisappear(), PERMANENT);
}
void TakeFlight(float oDelay, object oPC)
{
DelayCommand(oDelay, FlyOff(oPC));
}
void Say(object oSelf, int iSet)
{
int iVoice;
switch (iSet)
{
case 1: iVoice = VOICE_CHAT_ATTACK;break;
case 2: iVoice = VOICE_CHAT_BATTLECRY1;break;
case 3: iVoice = VOICE_CHAT_BATTLECRY2;break;
case 4: iVoice = VOICE_CHAT_BATTLECRY3;break;
case 5: iVoice = VOICE_CHAT_THREATEN;break;
case 6: iVoice = VOICE_CHAT_CHEER;break;
case 7: iVoice = VOICE_CHAT_CUSS;break;
case 8: iVoice = VOICE_CHAT_FLEE;break;
case 9: iVoice = VOICE_CHAT_GOODBYE;break;
case 10: iVoice = VOICE_CHAT_THANKS;break;
case 11: iVoice = VOICE_CHAT_WEAPONSUCKS;break;
case 12: iVoice = VOICE_CHAT_LAUGH;break;
case 13: iVoice = VOICE_CHAT_HELLO;break;
case 14: iVoice = VOICE_CHAT_FOLLOWME;break;
case 15: iVoice = VOICE_CHAT_GOODIDEA;break;
case 16: iVoice = VOICE_CHAT_REST;break;
case 17: iVoice = VOICE_CHAT_YES;break;
case 18: iVoice = VOICE_CHAT_THANKS;break;
}
AssignCommand(oSelf, PlayVoiceChat(iVoice));
}
void SetWrath2()
{
object oTarget = GetWaypointByTag("phoenix_wp");
object oArea = GetArea(oTarget);
float z = 0.5;
float x,y,tx,ty;
float fAngle = 30.0;
int nCount;
vector nTarget = GetPosition(oTarget);
vector nCreate;
string sTag;
tx = nTarget.x;
ty = nTarget.y;
//12 small targets in a clock pattern
for(nCount = 1;nCount < 13;nCount++)
{
x = tx + (cos(fAngle)*10);
y = ty + (sin(fAngle)*10);
sTag = "FireworksSTarget" + IntToString(nCount);
CreateObject(OBJECT_TYPE_PLACEABLE,"fireworksstarget",Location(oArea,Vector(x,y,z),0.0),FALSE,sTag);
fAngle += 30.0;
}
x = tx;
y = ty;
//3 Medium and Large targets same x,y different z
for (nCount = 1;nCount < 4;nCount++)
{
sTag = "FireworksLTarget" + IntToString(nCount);
CreateObject(OBJECT_TYPE_PLACEABLE,"fireworksltarget",Location(oArea,Vector(x,y,z),0.0),FALSE,sTag);
z += 1.5;
}
}
void CleanTargs2()
{
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");
float fTimeDelay = 3.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);
}
void main()
{
// initialise player
object oPC = GetEnteringObject();
object oMod = GetModule();
object oArea = GetArea(oPC);
if (!GetIsPC(oPC))return;
if (GetItemPossessedBy(oPC, "final_ring")!=OBJECT_INVALID)return;
// Initialize integers
int iAv;
float fPerc;
int iPerc;
int tScore;
int iSwing;
int iHit;
int iDam;
int aScore;
int iKilled;
int iDied;
int iRankNo;
string sRank;
string sTookOut;
string sDeaths;
int iDice;
int iAlign;
int iAlignment = GetAlignmentGoodEvil(oPC);
if (iAlignment == ALIGNMENT_EVIL){iAlign = 2;}
else {iAlign = 1;}
iDied = GetLocalInt (oPC,"iDied");
iKilled = GetLocalInt (oPC,"iKilled");
iDam = GetLocalInt(oPC, "player_dd");
iHit = GetLocalInt(oPC, "pc_hit");
iSwing = GetLocalInt(oPC, "pc_swing");
aScore = GetLocalInt(oPC, "a_score");
sRank = GetLocalString(oPC, "rank");
iRankNo = GetLocalInt(oPC, "status");
// initialize strings
string sSFtalk1, sSFtalk2,sSFtalk3,sSFtalk4,sSFtalk5,sSFtalk6,sSFtalk7,
sSFtalk7a, sSFtalk8,sSFtalk9,sSFtalk10;
CreateItemOnObject("final_ring", oPC);
string sTitle;
if (GetGender(oPC)==GENDER_MALE){sTitle="Sir";}else{sTitle="Lady";}
// calculate final stats and score
if (iHit!=0){iAv = iDam / iHit; }
else {iAv = 0;}
if (iSwing!=0){fPerc = (IntToFloat(iHit) / IntToFloat(iSwing))*100;}
else {fPerc = 0.0;}
iPerc = FloatToInt(fPerc);
tScore = (iPerc * iAv);
if (tScore!=0){aScore+=tScore;}
else {aScore += 0;}
SetLocalInt(oPC, "a_score", aScore);
// Construct stat report
iDice = d12();
switch (iDice)
{
case 1: {sTookOut = "culled";}break;
case 2: {sTookOut = "schooled";}break;
case 3: {sTookOut = "slew";}break;
case 4: {sTookOut = "defeated";}break;
case 5: {sTookOut = "killed";}break;
case 6: {sTookOut = "destroyed";}break;
case 7: {sTookOut = "cleaved";}break;
case 8: {sTookOut = "dispatched";}break;
case 9: {sTookOut = "slaughtered";}break;
case 10: {sTookOut = "took out";}break;
case 11: {sTookOut = "dismembered";}break;
case 12: {sTookOut = "defeated";}break;
}
sSFtalk1 = "Throughout your career, you "+sTookOut+" "+IntToString(iKilled)+" challengers and fell in battle "+IntToString(iDied)+" times.";
sSFtalk2 = "You gained "+IntToString(iRankNo)+" ranks out of a possible 19 and achieved the rank of "+sRank+".";
sSFtalk3 = "You swung your weapon "+IntToString(iSwing)+" times and landed "+IntToString(iHit)+" blows.";
sSFtalk4 = "Therefore, "+IntToString(iPerc)+"% of your attacks were effective.";
sSFtalk5 = "You bled your opponents for a total "+IntToString(iDam)+" hit points, dealing an average of "+IntToString(iAv)+" damage per hit.";
sSFtalk8 = "Based on that performance, I award you "+IntToString(tScore)+" championship points, bringing your overall score to "+IntToString(aScore)+".";
if (iPerc>=0) {sSFtalk7 = "Your overall performance was one of little or no skill "; }
if (iPerc>10) {sSFtalk7 = "Your overall performance was one of very low skill "; }
if (iPerc>20) {sSFtalk7 = "Your overall performance was one of average skill "; }
if (iPerc>30) {sSFtalk7 = "Your overall performance was one of moderate skill "; }
if (iPerc>40) {sSFtalk7 = "Your overall performance was one of high skill "; }
if (iPerc>50) {sSFtalk7 = "Your overall performance was one of very high skill "; }
if (iPerc>60) {sSFtalk7 = "Your overall performance was one of impressive skill "; }
if (iPerc>70) {sSFtalk7 = "Your overall performance was one of superior skill "; }
if (iPerc>80) {sSFtalk7 = "Your overall performance was one of incredible skill "; }
if (iPerc>90) {sSFtalk7 = "Your overall performance was one of supreme skill "; }
if (iAv>=0) {sSFtalk7a = "and almost no power!"; }
if (iAv>10) {sSFtalk7a = "and very low power!"; }
if (iAv>20) {sSFtalk7a = "and low power!"; }
if (iAv>30) {sSFtalk7a = "and average power!"; }
if (iAv>40) {sSFtalk7a = "and threatening power!"; }
if (iAv>50) {sSFtalk7a = "and overwhelming power!"; }
if (iAv>70) {sSFtalk7a = "and formidible power!"; }
if (iAv>90) {sSFtalk7a = "and incredible power!"; }
if (iAv>100) {sSFtalk7a = "and supreme power!"; }
if (iAv>110) {sSFtalk7a = "and devastating power!"; }
sSFtalk7+=sSFtalk7a;
sSFtalk9 = "All hail "+sTitle+" "+GetName(oPC)+" the "+sRank+", Master of Champions and our newest... ";
sSFtalk10 = "Supreeeeeeme Champion of the Areeeenaaaaaaaa!";
// initialise characters
object oStarfall=GetObjectByTag("starfall_mc"),
oGuard1=GetObjectByTag("guard1"),
oGuard2=GetObjectByTag("guard2"),
oAngel1=GetObjectByTag("l_angel1"),
oAngel2=GetObjectByTag("l_angel2"),
oAngel3=GetObjectByTag("l_angel3"),
oAngel4=GetObjectByTag("l_angel4"),
oAngel5=GetObjectByTag("l_angel5"),
oDemon1=GetObjectByTag("d_angel1"),
oDemon2=GetObjectByTag("d_angel2"),
oDemon3=GetObjectByTag("d_angel3"),
oDemon4=GetObjectByTag("d_angel4"),
oDemon5=GetObjectByTag("d_angel5"),
oGabriel=GetObjectByTag("g_angel10"),
oMinion=GetObjectByTag("g_angel11");
// initialise effects
effect eEffect = EffectVisualEffect(VFX_IMP_REMOVE_CONDITION);
// initialise waypoionts
object PCwp1=GetWaypointByTag("pc_final_wp"),
PCwp2=GetWaypointByTag("pc_final_wp2"),
PCwp3=GetWaypointByTag("pc_final_wp3"),
PCwp4=GetWaypointByTag("pc_final_wp4"),
SFwp1=GetWaypointByTag("starfall_final_wp"),
SFwp2=GetWaypointByTag("starfall_final_wp2"),
G1wp1=GetWaypointByTag("guard1_wp1"),
G1wp2=GetWaypointByTag("guard1_wp2"),
G2wp1=GetWaypointByTag("guard2_wp1"),
G2wp2=GetWaypointByTag("guard2_wp2"),
Awp1=GetWaypointByTag("angel_wp1"),
Awp2=GetWaypointByTag("angel_wp2"),
Dwp1=GetWaypointByTag("demon_wp1"),
Dwp2=GetWaypointByTag("demon_wp2"),
GuardFace=GetWaypointByTag("guard_face"),
NPCFace=GetWaypointByTag("npc_face");
// call subroutine to create vector waypoint for phoenix effect
SetWrath2();
// phoenix dragon effect
object oLTarget = GetObjectByTag("FireworksLTarget3");
DelayCommand(83.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(488),
oLTarget));
// Initiate cutscene mode
GestaltStartCutscene(oPC, "",TRUE,TRUE,TRUE,FALSE,2);
// Fade camera in
GestaltCameraFade(0.0, oPC, FADE_IN,FADE_SPEED_FAST);
DelayCommand(262.0, CutscenePlace("fw_portal3", "pc_final_wp"));
////////////////////////////////////////////////
//: ://
//: choreography ://
//: ://
////////////////////////////////////////////////
// Dialogue
GestaltSpeak(150.0, oStarfall, sSFtalk1,
ANIMATION_NONE);
GestaltSpeak(160.0, oStarfall, sSFtalk2,
ANIMATION_NONE);
GestaltSpeak(170.0, oStarfall, sSFtalk3,
ANIMATION_NONE);
GestaltSpeak(180.0, oStarfall, sSFtalk4,
ANIMATION_NONE);
GestaltSpeak(190.0, oStarfall, sSFtalk5,
ANIMATION_NONE);
GestaltSpeak(200.0, oStarfall, sSFtalk7,
ANIMATION_NONE);
GestaltSpeak(210.0, oStarfall, sSFtalk8,
ANIMATION_NONE);
GestaltSpeak(220.0, oStarfall, sSFtalk9,
ANIMATION_NONE);
GestaltSpeak(228.0, oStarfall, sSFtalk10,
ANIMATION_FIREFORGET_VICTORY2);
DelayCommand(210.0, MusicBackgroundChangeDay(GetArea(oPC), 0));
DelayCommand(210.0, MusicBackgroundChangeNight(GetArea(oPC), 0));
DelayCommand(210.0, MusicBackgroundStop(GetArea(oPC)));
GestaltActionAnimate(232.0, oPC, ANIMATION_FIREFORGET_BOW);
MassCheerNPC (231.5, oPC);
//GestaltFace (234.0, oPC, 270.0, 0);
GestaltActionAnimate(234.5, oPC, ANIMATION_FIREFORGET_VICTORY3);
//MassCheerAll (235.0, oPC);
GestaltFace (237.5, oPC, 225.0, 0);
GestaltActionAnimate(238.5, oPC, ANIMATION_FIREFORGET_BOW);
MassCheerLight (239.5, oPC);
GestaltActionAnimate(241.0, oPC, ANIMATION_FIREFORGET_VICTORY3);
GestaltFace (243.0, oPC, 315.0, 0);
GestaltActionAnimate(244.0, oPC, ANIMATION_FIREFORGET_BOW);
MassCheerDark (245.0, oPC);
GestaltActionAnimate(246.5, oPC, ANIMATION_FIREFORGET_VICTORY3);
GestaltFace (248.5, oPC, 90.0, 0);
if (iAlign==1)
{
iDice = d4();
switch(iDice)
{
case 1:{GestaltSpeak(252.5, oPC, "I wear my new title with great pride, mighty Angel...",
ANIMATION_FIREFORGET_BOW);}break;
case 2:{GestaltSpeak(252.5, oPC, "I vow to honour my role as Arena Champion with justice, integrity and might!",
ANIMATION_FIREFORGET_BOW); }break;
case 3:{GestaltSpeak(252.5, oPC, "I am honoured to wear my new title, divine and powerful angel!",
ANIMATION_FIREFORGET_BOW);} break;
case 4:{GestaltSpeak(252.5, oPC, "I bask at the hour of my glory, but I will always remember your superiority immortal overseer!",
ANIMATION_FIREFORGET_BOW); }break;
}
}
else
{
iDice = d4();
switch(iDice)
{
case 1:{GestaltSpeak(252.5, oPC, "Shouldn't you all be kneeling...whelps...heh heh!",
ANIMATION_FIREFORGET_VICTORY2);}break;
case 2:{GestaltSpeak(252.5, oPC, "Alright! I am the greatest!",
ANIMATION_FIREFORGET_VICTORY3);}break;
case 3:{GestaltSpeak(252.5, oPC, "And just you remember who's boss around here from now on ok!!!!",
ANIMATION_LOOPING_TALK_FORCEFUL, 4.0); }break;
case 4:{GestaltSpeak(252.5, oPC, "Ahh the sweet taste of recognition! All hail to meeeee!",
ANIMATION_FIREFORGET_VICTORY2);}break;
}
}
GestaltSpeak(258.0, oStarfall, "Congratulations and Farewell, "+sTitle+" "+GetName(oPC)+". See you back at the arena.",
ANIMATION_FIREFORGET_GREETING);
GestaltFace (270.0, oGabriel, 0.0, 2, oPC);
GestaltActionAnimate(270.2, oGabriel, ANIMATION_FIREFORGET_GREETING);
GestaltFace (270.0, oMinion, 0.0, 2, oPC);
GestaltActionAnimate(270.2, oMinion, ANIMATION_FIREFORGET_GREETING);
TakeFlight(272.0, oStarfall);
TakeFlight(272.3, oGabriel);
TakeFlight(272.6, oMinion);
// PC and guards move to WP1
AssignCommand(oPC, ClearAllActions());
GestaltActionMove(0.0,oPC, PCwp2, FALSE, 0.0, 35.0);
GestaltActionMove(0.0,oGuard1, G1wp1, FALSE, 0.0, 25.0);
GestaltActionMove(0.0,oGuard2, G2wp1, FALSE, 0.0, 25.0);
// Angels & Demons kneel as Hero passes
GestaltActionAnimate(3.0, oAngel1, ANIMATION_LOOPING_MEDITATE, 500.0);
GestaltActionAnimate(3.0, oDemon1, ANIMATION_LOOPING_MEDITATE, 500.0);
GestaltActionAnimate(6.5, oAngel2, ANIMATION_LOOPING_MEDITATE, 500.0);
GestaltActionAnimate(6.5, oDemon2, ANIMATION_LOOPING_MEDITATE, 500.0);
GestaltActionAnimate(10.5, oAngel3, ANIMATION_LOOPING_MEDITATE, 500.0);
GestaltActionAnimate(10.5, oDemon3, ANIMATION_LOOPING_MEDITATE, 500.0);
GestaltActionAnimate(14.5, oAngel4, ANIMATION_LOOPING_MEDITATE, 500.0);
GestaltActionAnimate(14.5, oDemon4, ANIMATION_LOOPING_MEDITATE, 500.0);
// effect on kneeling angels
int eVisual = VFX_DUR_GLOBE_INVULNERABILITY;
GestaltApplyEffect(4.0, oAngel1, EffectVisualEffect(VFX_IMP_MAGIC_PROTECTION), PERMANENT);
GestaltApplyEffect(5.0, oAngel1, EffectVisualEffect(eVisual), PERMANENT);
GestaltApplyEffect(4.5, oDemon1, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), PERMANENT);
GestaltApplyEffect(7.5, oAngel2, EffectVisualEffect(VFX_IMP_MAGIC_PROTECTION), PERMANENT);
GestaltApplyEffect(8.5, oAngel2, EffectVisualEffect(eVisual), PERMANENT);
GestaltApplyEffect(8.0, oDemon2, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), PERMANENT);
GestaltApplyEffect(11.5, oAngel3, EffectVisualEffect(VFX_IMP_MAGIC_PROTECTION), PERMANENT);
GestaltApplyEffect(12.5, oAngel3, EffectVisualEffect(eVisual), PERMANENT);
GestaltApplyEffect(12.0, oDemon3, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), PERMANENT);
GestaltApplyEffect(15.5, oAngel4, EffectVisualEffect(VFX_IMP_MAGIC_PROTECTION), PERMANENT);
GestaltApplyEffect(16.5, oAngel4, EffectVisualEffect(eVisual), PERMANENT);
GestaltApplyEffect(16.0, oDemon4, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), PERMANENT);
// Guards peel off, face PC and worship
GestaltActionMove(13.5, oGuard1, G1wp2, FALSE, 0.0, 0.0);
GestaltActionMove(13.5, oGuard2, G2wp2, FALSE, 0.0, 0.0);
GestaltFace(18.5, oGuard1, 0.0, 0);
GestaltFace(18.5, oGuard2, 180.0, 0);
GestaltActionAnimate(19.0, oGuard1, ANIMATION_LOOPING_WORSHIP, 10.0);
GestaltActionAnimate(19.0, oGuard2, ANIMATION_LOOPING_WORSHIP, 10.0);
GestaltAmbientSound(32.0,oArea, TRUE, 0.0, 80);
GestaltAmbientSound(42.0,oArea, TRUE, 0.0, 90);
GestaltAmbientSound(50.0,oArea, TRUE, 0.0, 100);
// Angels fall in and escort PC
GestaltActionAnimate(35.0, oAngel5, ANIMATION_FIREFORGET_BOW);
GestaltActionAnimate(35.0, oDemon5, ANIMATION_FIREFORGET_BOW);
GestaltActionMove(39.0, oAngel5, Awp1, FALSE, 0.0, 3.0);
GestaltActionMove(39.0, oDemon5, Dwp1, FALSE, 0.0, 3.0);
GestaltActionMove(41.0, oAngel5, Awp2, FALSE, 0.0, 26.0);
GestaltActionMove(41.0, oDemon5, Dwp2, FALSE, 0.0, 26.0);
// PC puts away arms
GestaltActionUnequip(46.0, oPC, INVENTORY_SLOT_LEFTHAND);
GestaltActionUnequip(46.5, oPC, INVENTORY_SLOT_RIGHTHAND);
// Starfall walks out to greet PC
iDice = d4();
switch (iDice)
{
case 1: {GestaltSpeak(59.0, oStarfall, "Well, I'm glad you decided to show up *wink*!",
ANIMATION_NONE);}break;
case 2: {GestaltSpeak(59.0, oStarfall, "Good to see you here, "+GetName(oPC)+".",
ANIMATION_NONE);}break;
case 3: {GestaltSpeak(59.0, oStarfall, "Rather peaceful in Limbo isn't it! Let the ceremony begin!",
ANIMATION_NONE);}break;
case 4: {GestaltSpeak(59.0, oStarfall, "Welcome to the hall of champions!",
ANIMATION_NONE);}break;
}
if (iAlign==1)
{
iDice = d4();
switch(iDice)
{
case 1:{GestaltSpeak(65.0, oPC, "I am ready, great Starfall!",
ANIMATION_FIREFORGET_BOW);}break;
case 2:{GestaltSpeak(65.0, oPC, "I am ready to begin the ceremony!",
ANIMATION_FIREFORGET_BOW); }break;
case 3:{GestaltSpeak(65.0, oPC, "I am honured to recieve your recognition, mighty Starfall!",
ANIMATION_FIREFORGET_BOW);} break;
case 4:{GestaltSpeak(65.0, oPC, "Begin as you like, Starfall. I am ready",
ANIMATION_FIREFORGET_BOW); }break;
}
}
else
{
iDice = d4();
switch(iDice)
{
case 1:{GestaltSpeak(65.0, oPC, "Hey! Where's Mephisto? And who are you?!",
ANIMATION_NONE);}break;
case 2:{GestaltSpeak(65.0, oPC, "Limbo shmimbo! And where's Mephisto? That ship jumper!!!",
ANIMATION_LOOPING_TALK_FORCEFUL, 3.0);}break;
case 3:{GestaltSpeak(65.0, oPC, "Warm up the cheerios, I'm here to partaaay!",
ANIMATION_LOOPING_TALK_FORCEFUL, 3.0); }break;
case 4:{GestaltSpeak(65.0, oPC, "Where did that goat headed fool, Mephisto go? And who are you?!",
ANIMATION_LOOPING_TALK_FORCEFUL, 3.0);}break;
}
}
iDice = d4();
switch (iDice)
{
case 1: {GestaltSpeak(70.0, oStarfall, "We gather here today to appoint our newest Supreme Champion of the Arena.",
ANIMATION_NONE);}break;
case 2: {GestaltSpeak(70.0, oStarfall, "We are here to witness the making of our new Supreme Champion of the Arena.",
ANIMATION_NONE);}break;
case 3: {GestaltSpeak(70.0, oStarfall, "Today is a celebration of our newest Supreme Champion of the Arena.",
ANIMATION_NONE);}break;
case 4: {GestaltSpeak(70.0, oStarfall, "We all come together today to honour our newest Supreme Champion of the Arena.",
ANIMATION_NONE);}break;
}
iDice = d4();
switch (iDice)
{
case 1: {GestaltSpeak(75.0, oStarfall, "The Phoenix Dragon is about to fly in your honour!",
ANIMATION_NONE);}break;
case 2: {GestaltSpeak(75.0, oStarfall, "Look to the skies! The Phoenix Dragon will soar in your honour!",
ANIMATION_NONE);}break;
case 3: {GestaltSpeak(75.0, oStarfall, "The sky will fill with fire as the Phoenix Dragon honours your name!",
ANIMATION_NONE);}break;
case 4: {GestaltSpeak(75.0, oStarfall, "You have earned the respect of the immortal Phoenix Dragon!",
ANIMATION_NONE);}break;
}
GestaltActionMove(41.0,oPC, PCwp3, FALSE, 0.0, 12.0);
GestaltActionMove(60.0,oStarfall, SFwp1, FALSE, 0.0, 10.0);
// Angels fly off
GestaltApplyEffect(54.7, oAngel5, EffectVisualEffect(VFX_IMP_PULSE_WIND), INSTANT);
GestaltApplyEffect(55.0, oDemon5, EffectVisualEffect(VFX_IMP_PULSE_WIND), INSTANT);
GestaltApplyEffect(54.0, oAngel5, EffectDisappear(), PERMANENT);
GestaltApplyEffect(54.3, oDemon5, EffectDisappear(), PERMANENT);
// Starfall calls phoenix dragon
GestaltSpeak(82.0, oStarfall, "Behold the great Phoenix Dragon...!",
ANIMATION_FIREFORGET_VICTORY2);
if (iAlign==1)
{
iDice = d4();
switch(iDice)
{
case 1:{GestaltSpeak(88.0, oPC, "It truly is a magnificent creature!",
ANIMATION_NONE);}break;
case 2:{GestaltSpeak(88.0, oPC, "I am deeply honoured by this!",
ANIMATION_NONE); }break;
case 3:{GestaltSpeak(88.0, oPC, "While I am grateful...I am not worthy of such a beautiful creature!",
ANIMATION_NONE);} break;
case 4:{GestaltSpeak(88.0, oPC, "I am but a grain of sand next to the vast power of that creature!",
ANIMATION_NONE); }break;
}
}
else
{
iDice = d4();
switch(iDice)
{
case 1:{GestaltSpeak(88.0, oPC, "I'd love to put a saddle on that baby!!",
ANIMATION_NONE);}break;
case 2:{GestaltSpeak(88.0, oPC, "Yeehaaar! Now THAT'S the shiyaaart!",
ANIMATION_NONE);}break;
case 3:{GestaltSpeak(88.0, oPC, "If only I had that sort of power at my disposal!",
ANIMATION_NONE); }break;
case 4:{GestaltSpeak(88.0, oPC, "Yeah BIG DEAL, its an oversized overcooked bird! Neeext!",
ANIMATION_NONE);}break;
}
}
GestaltSpeak(96.0, oStarfall, "We still have much to learn from the Phoenix Dragon's immeasurable power.",
ANIMATION_NONE);
iDice = d4();
switch (iDice)
{
case 1: {GestaltSpeak(104.0, oStarfall, "The time has come...Please step forward and kneel before me, champion",
ANIMATION_NONE);}break;
case 2: {GestaltSpeak(104.0, oStarfall, "It is time for you to recieve your new title as Supreme Champion! Kneel before me, "+GetName(oPC),
ANIMATION_NONE);}break;
case 3: {GestaltSpeak(104.0, oStarfall, "It gives me great pleasure to present to you your new title! Step forward and kneel, champion.",
ANIMATION_NONE);}break;
case 4: {GestaltSpeak(104.0, oStarfall, "Come forward and kneel before me, great champion. I have something for you!",
ANIMATION_NONE);}break;
}
iDice = d4();
switch (iDice)
{
case 1: {GestaltSpeak(120.0, oStarfall, "I give you this ring, bestowed only upon those who have been deemed worthy of the title...",
ANIMATION_LOOPING_GET_MID, 5.0);}break;
case 2: {GestaltSpeak(120.0, oStarfall, "I place this ring on your finger, symbolising the eternal cycle of the giving and recieving of great power...",
ANIMATION_LOOPING_GET_MID, 5.0);}break;
case 3: {GestaltSpeak(120.0, oStarfall, "With this ring, I vest within thee the power to rightfully claim the title of....",
ANIMATION_LOOPING_GET_MID, 5.0);}break;
case 4: {GestaltSpeak(120.0, oStarfall, "As a symbol of the fellowship within the Academy of Champions, I present you this ring and give you your new title...",
ANIMATION_LOOPING_GET_MID, 5.0);}break;
}
GestaltSpeak(129.0, oStarfall, "Arise, "+sTitle+" "+GetName(oPC)+".",
ANIMATION_NONE, 5.0);
GestaltSpeak(134.0, oStarfall, "I now proclaim thee as the new...Supreme Champion of the Arena!",
ANIMATION_FIREFORGET_VICTORY1, 5.0);
iDice = d4();
switch (iDice)
{
case 1: {GestaltSpeak(144.0, oStarfall, "Let us reflect on your performance throughout this season in the arena...",
ANIMATION_LOOPING_GET_MID, 5.0);}break;
case 2: {GestaltSpeak(144.0, oStarfall, "I would now like to reflect on your overall performance as you rose to supreme champion status...",
ANIMATION_LOOPING_GET_MID, 5.0);}break;
case 3: {GestaltSpeak(144.0, oStarfall, "It is now time to appraise your performance as a supreme champion in the Arena of Champions...",
ANIMATION_LOOPING_GET_MID, 5.0);}break;
case 4: {GestaltSpeak(144.0, oStarfall, "Let us follow tradition and look back on your overall performance...",
ANIMATION_LOOPING_GET_MID, 5.0);}break;
}
// PC turns, looks at dragon and looks back after sequence
GestaltFace(84.0, oPC, 270.0, 0);
GestaltFace(91.0, oPC, 90.0, 0);
// PC moves in and kneels in front of Starfall
GestaltActionMove(112.0,oPC, PCwp4, FALSE, 0.0, 3.0);
GestaltActionAnimate(115.2, oPC, ANIMATION_LOOPING_MEDITATE, 15.0);
// Starfall places ring on finger of PC
//GestaltActionAnimate(120.5, oStarfall, ANIMATION_LOOPING_GET_MID, 5.0);
// Starfall moves away and after a brief pause, turns to meet PC
GestaltActionMove(126.0,oStarfall, SFwp2, FALSE, 0.0, 6.0);
GestaltFace(130.0, oStarfall, 270.0, 0);
// All creatures cheer using their voice commands
MassCheerAll(138.0, oPC);
// Set up camera
SetLocalFloat(oPC,"fCameraDirection",90.0);
SetLocalFloat(oPC,"fCameraRange",20.0);
SetLocalFloat(oPC,"fCameraPitch",10.0);
// camera choreograpgy
GestaltCameraMove (0.0,
90.0,20.0,10.0,
90.0, 12.0,70.0,
10.0,30.0,oPC);
GestaltCameraMove (10.0,
90.0,12.0,70.0,
90.0,12.0,80.0,
20.0,30.0,oPC);
GestaltCameraMove (30.0,
90.0,12.0,80.0,
90.0,15.0,70.0,
10.0,30.0,oPC);
GestaltCameraMove (40.0,
90.0,15.0,70.0,
90.0,11.0,75.0,
10.0,30.0,oPC);
GestaltCameraMove (50.0,
90.0,11.0,75.0,
90.0,14.0,70.0,
4.0,30.0,oPC);
GestaltCameraMove (70.0,
90.0,14.0,70.0,
270.0,12.0,65.0,
5.0,30.0,oPC);
GestaltCameraMove (75.0,
270.0,12.0,65.0,
270.0,11.0,100.0,
10.0,30.0,oPC);
GestaltCameraMove (90.0,
270.0,11.0,100.0,
270.0,13.0,87.0,
7.0,30.0,oPC);
GestaltCameraMove (104.0,
270.0,13.0,87.0,
405.0,10.0,70.0,
6.0,30.0,oPC);
GestaltCameraMove (110.0,
405.0,10.0,70.0,
540.0,5.0,85.0,
8.0,30.0,oPC);
GestaltCameraMove (130.0,
540.0,5.0,85.0,
630.0,11.0,77.0,
8.0,30.0,oPC);
GestaltCameraMove (160.0,
630.0,11.0,77.0,
855.0,10.0,75.0,
30.0,30.0,oPC);
GestaltCameraMove (190.0,
855.0,10.0,75.0,
990.0,25.0,35.0,
20.0,30.0,oPC);
GestaltCameraMove (210.0,
990.0,25.0,35.0,
1170.0,25.0,75.0,
20.0,30.0,oPC);
GestaltCameraMove (252.0,
1170.0,25.0,75.0,
1170.0,16.0,70.0,
8.0,30.0,oPC);
// Fade camera out
GestaltCameraFade (275.0, oPC, FADE_OUT, FADE_SPEED_SLOW, 3.0);
// end of cutscene
GestaltStopCutscene (278.0, oPC);
//clean all waypoints
DelayCommand(300.0, CleanTargs2());
}