Core.Object | +--Engine.Actor | +--Engine.Info | +--XIII.MapInfo | +--XIDMaps.Map14_Palace | +--XIDMaps.Palace01b
Micro
Mic
void
FirstFrame()
//_____________________________________________________________________________
SetGoalComplete(int N)
00001 //----------------------------------------------------------- 00002 // 00003 //----------------------------------------------------------- 00004 class Palace01b extends Map14_Palace; 00005 00006 // 0 == ANTIGOAL, do not get spotted 00007 // 1 == Reach chamber 41 (Activate 2) 00008 // 2 == Spy the council using the microcannon (Deactivate 0, Activate 3 & 4) 00009 // 3 == ANTIGOAL, do not let Willard & Winslow leave (Give chronometer) 00010 // 4 == Deactivate the electrical generator (Deactivate 3, Activate 5) 00011 // 5 == Goto fighting location (Activate 6) 00012 // 6 == Get rid of Winslow (Activate 7) 00013 // 7 == Get rid of Willard 00014 00015 // 99 == used by chronometer 00016 // 98 == Train ended, now spy is real & serious 00017 // 97 == Missed our target while in training 00018 // 96 == make corpse reappear 00019 00020 var(Objectifs) float Goal3ChronoTime; 00021 00022 var(Palace01bSetUp) XIIIPawn PoolRoomKeyHolder; 00023 var(Palace01bSetUp) localized string sPoolRoomKeyName; 00024 00025 var(Palace01bSetUp) Pawn MicroTarget; // the target to assign the micro for the spying sequence 00026 var(Palace01bSetUp) Pawn FinancialSupportDocumentOwner; 00027 var(Palace01bSetUp) Pawn CatererBillDocumentOwner; 00028 00029 var(Palace01bSetUp) int SupportDoc_PersoNum; 00030 var(Palace01bSetUp) localized string SupportDoc_Information; 00031 var(Palace01bSetUp) texture SupportDoc_Photography; 00032 00033 var(Palace01bSetUp) int Bill_PersoNum; 00034 var(Palace01bSetUp) localized string Bill_Information; 00035 var(Palace01bSetUp) texture Bill_Photography; 00036 00037 var(Palace01bSetUp) float fTimeBeforeNotPlayingsAmos1DidacMiss; 00038 var(Palace01bSetUp) DialogueManager AmosDDialogMngr; 00039 00040 var(Palace01bSetUp) array<XIIICorpse> GenCorpse; 00041 00042 var(Palace01bSetUp) name EventSupportDocPick; 00043 var(Palace01bSetUp) name EventBillPick; 00044 var(Palace01bSetUp) name EventKeyPick; 00045 00046 var Micro Mic; 00047 00048 event PostBeginPlay() 00049 { 00050 local int i; 00051 00052 Super.PostBeginPlay(); 00053 for (i=0; i<GenCorpse.length; i++) 00054 { 00055 GenCorpse[i].SetDrawType(DT_none); 00056 GenCorpse[i].SetCollision(false,false,false); 00057 GenCorpse[i].bStasis=true; 00058 } 00059 } 00060 00061 //_____________________________________________________________________________ 00062 FUNCTION FirstFrame() 00063 { 00064 LOCAL inventory Inv; 00065 LOCAL XIIIDocuments Doc; 00066 00067 Super.FirstFrame(); 00068 00069 if ( PoolRoomKeyHolder != none ) 00070 { 00071 Inv = GiveSomething(class'Keys', PoolRoomKeyHolder); 00072 Inv.Event = 'billardroom'; 00073 Keys(Inv).KeyCodeName = "billardroom"; 00074 Inv.ItemName = sPoolRoomKeyName; 00075 XIIIItems(Inv).EventCausedOnPick = EventKeyPick; 00076 } 00077 00078 Inv = GiveSomething(class'Silencer', XIIIPawn); 00079 00080 Inv = GiveSomething(class'Micro', XIIIPawn); 00081 Mic = Micro(Inv); 00082 if ( Mic != none ) 00083 { 00084 Mic.ListenTarget = MicroTarget; 00085 Mic.bCanCauseGameOver = false; 00086 } 00087 00088 if ( FinancialSupportDocumentOwner != none ) 00089 { 00090 Doc = Spawn(class'XIIIDocuments'); 00091 if ( Doc != none ) 00092 { 00093 Doc.GiveTo( FinancialSupportDocumentOwner ); 00094 Doc.EventCausedOnPick = EventSupportDocPick; 00095 } 00096 } 00097 00098 if ( CatererBillDocumentOwner != none ) 00099 { 00100 Doc = Spawn(class'XIIIDocuments'); 00101 if ( Doc != none ) 00102 { 00103 Doc.GiveTo( CatererBillDocumentOwner ); 00104 Doc.EventCausedOnPick = EventBillPick; 00105 } 00106 } 00107 } 00108 00109 //_____________________________________________________________________________ 00110 FUNCTION SetGoalComplete(int N) 00111 { 00112 LOCAL inventory inv; 00113 LOCAL Chronometre C; 00114 LOCAL int i; 00115 LOCAL DialogueManager dm; 00116 00117 switch ( N ) 00118 { 00119 case 99: 00120 // Chrono ended... too bad GameOver. 00121 Level.Game.EndGame( XIIIController.PlayerReplicationInfo, "GoalIncomplete" ); 00122 return; 00123 case 98: 00124 // Training phase ended, let's play seriously 00125 DebugLog("@@@ Palace01b Training ended, NOW IT IS SERIOUS"); 00126 Mic.bCanCauseGameOver = true; 00127 Mic.Charge = Mic.Default.Charge; 00128 if (AmosDDialogMngr.Tag != 'RealThingStart') 00129 { 00130 DebugLog("@@@ Palace01b Setting DialogManager to next line RealThingStart"); 00131 AmosDDialogMngr.LineIndex = 1; 00132 AmosDDialogMngr.Tag = 'RealThingStart'; 00133 } 00134 DebugLog("@@@ Palace01b TRIGGER RealThingStart"); 00135 TriggerEvent('RealThingStart', self, XIIIPawn); 00136 break; 00137 case 97: 00138 Log("@@@ Palace01b we missed our target while training, Level.TimeSeconds="$Level.TimeSeconds); 00139 if ( Level.TimeSeconds > fTimeBeforeNotPlayingsAmos1DidacMiss ) 00140 { // set dialogmanager to wait for next sentence. 00141 // TriggerEvent('LoseTarget', self, XIIIPawn); 00142 // AmosDDialogMngr.StartDialogue(0); 00143 AmosDDialogMngr.LineIndex = 1; 00144 AmosDDialogMngr.Tag = 'RealThingStart'; 00145 } 00146 else 00147 { // Play it 00148 TriggerEvent('LoseTarget', self, XIIIPawn); 00149 } 00150 break; 00151 case 96: 00152 for (i=0; i<GenCorpse.length; i++) 00153 { 00154 GenCorpse[i].SetDrawType(DT_mesh); 00155 GenCorpse[i].SetCollision(true,false,false); 00156 GenCorpse[i].bStasis=false; 00157 } 00158 break; 00159 } 00160 00161 super.SetGoalComplete(N); 00162 00163 if ( bLevelComplete ) 00164 { 00165 C = Chronometre(XIIIPawn.FindInventoryType(class'Chronometre')); 00166 if (C != none) 00167 { 00168 C.Destroy(); 00169 } 00170 } 00171 00172 if ( N==1 ) 00173 { 00174 Mic.bActivated = true; 00175 Mic.bCanCauseGameOver = false; 00176 fTimeBeforeNotPlayingsAmos1DidacMiss = default.fTimeBeforeNotPlayingsAmos1DidacMiss + Level.TimeSeconds; 00177 DebugLog("@@@ Set up training phase, fTimeBeforeNotPlayingsAmos1DidacMiss="$fTimeBeforeNotPlayingsAmos1DidacMiss); 00178 SetPrimaryGoal(2); 00179 } 00180 else if ( N == 2 ) 00181 { 00182 SetPrimaryGoal(3); 00183 SetPrimaryGoal(4); 00184 SetSecondaryGoal(0); 00185 Mic.bActivated = false; 00186 Mic.bCanCauseGameOver = false; 00187 inv = GiveSomething(class'Chronometre', XIIIPawn); 00188 C = Chronometre(inv); 00189 if (C != none) 00190 C.ReSetTimer(Goal3ChronoTime); 00191 } 00192 else if ( N == 4 ) 00193 { 00194 C = Chronometre(XIIIPawn.FindInventoryType(class'Chronometre')); 00195 if (C != none) 00196 { 00197 C.Destroy(); 00198 } 00199 SetPrimaryGoal(5); 00200 SetSecondaryGoal(3); 00201 } 00202 else if ( N == 5 ) 00203 { 00204 SetPrimaryGoal(6); 00205 } 00206 else if ( N == 6 ) 00207 { 00208 SetPrimaryGoal(7); 00209 } 00210 } 00211 00212 00213 00214 defaultproperties 00215 { 00216 Goal3ChronoTime=60.000000 00217 sPoolRoomKeyName="Pool Room Key" 00218 fTimeBeforeNotPlayingsAmos1DidacMiss=28.000000 00219 EndMapVideo="cine13" 00220 }