bool AIScriptLucy::Update() { float x, y, z; if (Global_Variable_Query(kVariableChapter) == 3 && Actor_Query_Goal_Number(kActorLucy) < 200) { Actor_Set_Goal_Number(kActorLucy, 200); } if (Actor_Query_Goal_Number(kActorLucy) == 230 && Player_Query_Current_Scene() == 37) { Actor_Set_Goal_Number(kActorLucy, 233); } if (Global_Variable_Query(kVariableChapter) == 4 && Actor_Query_Goal_Number(kActorLucy) < 300) { Actor_Set_Goal_Number(kActorLucy, 300); } if (Global_Variable_Query(kVariableChapter) == 4 && Actor_Query_Goal_Number(kActorLucy) == 599 && Actor_Query_Which_Set_In(kActorLucy) != 99) { if (Actor_Query_Which_Set_In(kActorLucy) != Player_Query_Current_Set()) { Actor_Put_In_Set(kActorLucy, kSetFreeSlotI); Actor_Set_At_Waypoint(kActorLucy, 41, 0); } } if (Game_Flag_Query(616) && Actor_Query_Goal_Number(kActorLucy) == 201) { Actor_Put_In_Set(kActorLucy, kSetHF03); Actor_Set_At_Waypoint(kActorLucy, 371, 156); Actor_Set_Goal_Number(kActorLucy, 250); } if (Actor_Query_Goal_Number(kActorLucy) > 229 && Actor_Query_Goal_Number(kActorLucy) < 239 && Actor_Query_Goal_Number(kActorLucy) != 232 && Player_Query_Current_Scene() == 37 && Actor_Query_Which_Set_In(kActorLucy) == 40 && !Game_Flag_Query(701) && Actor_Query_Inch_Distance_From_Actor(kActorLucy, kActorMcCoy) < 84 && !Player_Query_Combat_Mode() && Actor_Query_Friendliness_To_Other(kActorLucy, kActorMcCoy) > 40) { Actor_Set_Goal_Number(kActorLucy, 232); } if (Actor_Query_Goal_Number(kActorLucy) == 235) { Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (z > -875.0f) { Game_Flag_Set(586); Actor_Set_Goal_Number(kActorLucy, 236); } } if (Actor_Query_Goal_Number(kActorLucy) == 237) { Actor_Query_XYZ(kActorMcCoy, &x, &y, &z); if (x > 350.0f) { Game_Flag_Set(585); Actor_Set_Goal_Number(kActorLucy, 238); } } return false; }
void AIScriptClovis::CompletedMovementTrack() { switch (Actor_Query_Goal_Number(kActorClovis)) { case kGoalClovisBB11WalkToMcCoy: Actor_Set_Goal_Number(kActorClovis, kGoalClovisBB11StopSadik); break; case kGoalClovisBB11StopSadik: Actor_Set_Goal_Number(kActorClovis, kGoalClovisBB11TalkWithSadik); break; case 401: AI_Movement_Track_Flush(kActorClovis); if (Player_Query_Current_Scene() == 92) { Actor_Set_Goal_Number(kActorClovis, 402); } else { Actor_Set_Goal_Number(kActorClovis, 400); } break; default: return; //false; } return; //true; }
bool AIScriptBryant::Update() { if (Global_Variable_Query(kVariableChapter) == 2 && Actor_Query_Goal_Number(kActorBryant) <= 101 && Player_Query_Current_Scene() == kSceneBB05 ) { Actor_Set_Goal_Number(kActorBryant, 101); return true; } if ( Global_Variable_Query(kVariableChapter) == 3 && Player_Query_Current_Scene() == kSceneBB05 && !Game_Flag_Query(kFlagNotUsed686) ) { Game_Flag_Set(kFlagNotUsed686); return true; } return false; }
void AIScriptLucy::TimerExpired(int timer) { AI_Countdown_Timer_Reset(kActorLucy, 0); if (!timer && Actor_Query_Goal_Number(kActorLucy) == 205) { if (Player_Query_Current_Scene() == 36) { AI_Countdown_Timer_Start(kActorLucy, 0, 20); } else { Actor_Set_Goal_Number(kActorLucy, 200); } } }
bool AIScriptBulletBob::GoalChanged(int currentGoalNumber, int newGoalNumber) { if (newGoalNumber == kGoalBulletBobDefault && Game_Flag_Query(kFlagRC04McCoyWarned) && Player_Query_Current_Scene() == kSceneRC04 ) { Actor_Says(kActorBulletBob, 140, 16); return true; } if ( newGoalNumber == kGoalBulletBobWarningMcCoy && !Game_Flag_Query(kFlagRC04McCoyWarned) && Player_Query_Current_Scene() == kSceneRC04 ) { Actor_Says(kActorBulletBob, 120, 37); Actor_Says(kActorMcCoy, 4915, 13); return true; } if (newGoalNumber == kGoalBulletBobDead && !Actor_Clue_Query(kActorMcCoy, kClueVKBobGorskyReplicant) ) { Delay(2000); Actor_Voice_Over(2100, kActorVoiceOver); Actor_Voice_Over(2110, kActorVoiceOver); Actor_Voice_Over(2120, kActorVoiceOver); Actor_Voice_Over(2130, kActorVoiceOver); return true; } if (newGoalNumber == 6) { Scene_Exits_Disable(); Actor_Force_Stop_Walking(kActorMcCoy); Ambient_Sounds_Play_Speech_Sound(kActorMcCoy, 9900, 100, 0, 0, 0); Actor_Change_Animation_Mode(kActorMcCoy, 48); Actor_Retired_Here(kActorMcCoy, 6, 6, 1, -1); Scene_Exits_Enable(); return true; } return false; }
bool AIScriptBulletBob::Update() { if (Game_Flag_Query(kFlagRC04McCoyShotBob) && Actor_Query_Goal_Number(kActorBulletBob) != kGoalBulletBobDead ) { Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobDead); } if ( Player_Query_Combat_Mode() && Player_Query_Current_Scene() == kSceneRC04 && !Game_Flag_Query(kFlagRC04McCoyCombatMode) && Global_Variable_Query(kVariableChapter) < 4 ) { AI_Countdown_Timer_Reset(kActorBulletBob, 2); AI_Countdown_Timer_Start(kActorBulletBob, 2, 10); Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobWarningMcCoy); Actor_Modify_Friendliness_To_Other(kActorBulletBob, kActorMcCoy, -15); Game_Flag_Set(kFlagRC04McCoyCombatMode); } else if ( Actor_Query_Goal_Number(kActorBulletBob) == kGoalBulletBobWarningMcCoy && !Player_Query_Combat_Mode() ) { AI_Countdown_Timer_Reset(kActorBulletBob, 2); Game_Flag_Reset(kFlagRC04McCoyCombatMode); Game_Flag_Set(kFlagRC04McCoyWarned); Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobDefault); } if ( Actor_Query_Goal_Number(kActorBulletBob) == kGoalBulletBobShootMcCoy && !Game_Flag_Query(kFlagRC04BobShootMcCoy) && _animationState == 0 ) { Actor_Face_Heading(kActorBulletBob, 208, false); _animationFrame = 0; _animationState = 2; Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobShotMcCoy); Game_Flag_Set(kFlagRC04BobShootMcCoy); return true; } if (Game_Flag_Query(kFlagRC04McCoyWarned) && Player_Query_Combat_Mode() && Actor_Query_Goal_Number(kActorBulletBob) != kGoalBulletBobDead ) { Actor_Set_Goal_Number(kActorBulletBob, kGoalBulletBobShootMcCoy); return true; } return false; }
bool AIScriptSadik::Update() { if ( Global_Variable_Query(kVariableChapter) == 2 && Player_Query_Current_Scene() == kSceneBB09 && !Game_Flag_Query(kFlagBB09SadikRun) ) { Actor_Set_Goal_Number(kActorSadik, kGoalSadikRunFromBB09); Actor_Set_Targetable(kActorSadik, true); Game_Flag_Set(kFlagBB09SadikRun); Game_Flag_Set(kFlagUnused406); return true; } if (_nextSoundId != -1) { // changed from original (0) to be more clear that this is an invalid sfx id Sound_Play(_nextSoundId, 100, 0, 0, 50); _nextSoundId = -1; // changed from original (0) to be more clear that this is an invalid sfx id } if (Global_Variable_Query(kVariableChapter) == 3 && Actor_Query_Goal_Number(kActorSadik) < 200 ) { Actor_Set_Goal_Number(kActorSadik, 200); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorSadik) < 400 ) { Actor_Set_Goal_Number(kActorSadik, 400); } if (Actor_Query_Goal_Number(kActorSadik) == 411) { if (Game_Flag_Query(kFlagNotUsed657)) { Actor_Set_Goal_Number(kActorSadik, 412); } } return false; }
bool AIScriptSadik::Update() { if ( Global_Variable_Query(kVariableChapter) == 2 && Player_Query_Current_Scene() == kSceneBB09 && !Game_Flag_Query(kFlagBB09SadikRun) ) { Actor_Set_Goal_Number(kActorSadik, kGoalSadikRunFromBB09); Actor_Set_Targetable(kActorSadik, true); Game_Flag_Set(kFlagBB09SadikRun); Game_Flag_Set(kFlagUnused406); return true; } if (_var1 != 0) { Sound_Play(_var1, 100, 0, 0, 50); _var1 = 0; } if (Global_Variable_Query(kVariableChapter) == 3 && Actor_Query_Goal_Number(kActorSadik) < 200 ) { Actor_Set_Goal_Number(kActorSadik, 200); } if (Global_Variable_Query(kVariableChapter) == 5 && Actor_Query_Goal_Number(kActorSadik) < 400 ) { Actor_Set_Goal_Number(kActorSadik, 400); } if (Actor_Query_Goal_Number(kActorSadik) == 411) { if (Game_Flag_Query(657)) { Actor_Set_Goal_Number(kActorSadik, 412); } } return false; }
bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalSadikDefaut: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 33, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikRunFromBB09: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append_Run(kActorSadik, 131, 0); AI_Movement_Track_Append_Run(kActorSadik, 132, 0); AI_Movement_Track_Append_Run(kActorSadik, 133, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikBB11Wait: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 313, 0); AI_Movement_Track_Repeat(kActorSadik); Game_Flag_Set(kFlagBB11SadikFight); return true; case kGoalSadikBB11ThrowMcCoy: Actor_Set_Immunity_To_Obstacles(kActorSadik, true); Actor_Face_Heading(kActorSadik, kActorMcCoy, kActorMcCoy); _animationState = 32; _animationFrame = -1; Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); return true; case kGoalSadikBB11CatchMcCoy: Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyBB11GetUp); AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 314, 0); AI_Movement_Track_Append_Run(kActorSadik, 317, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikBB11KnockOutMcCoy: Actor_Change_Animation_Mode(kActorSadik, 62); return true; case kGoalSadikBB11KickMcCoy: Actor_Face_Heading(kActorSadik, 100, false); Actor_Change_Animation_Mode(kActorSadik, 63); Actor_Set_Goal_Number(kActorClovis, kGoalClovisBB11WalkToMcCoy); Actor_Set_Immunity_To_Obstacles(kActorSadik, false); return true; case kGoalSadikBB11TalkWithClovis: _nextSoundId = -1; // changed from original (0) to be more clear that this is an invalid sfx id return false; case 200: Actor_Put_In_Set(kActorSadik, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorSadik, 33, 0); Actor_Set_Goal_Number(kActorMcCoy, 199); return true; case kGoalSadikUG18Wait: Actor_Put_In_Set(kActorSadik, kSetUG18); Actor_Set_At_XYZ(kActorSadik, 111.89f, 0.0f, 408.42f, 0); Actor_Change_Animation_Mode(kActorSadik, 4); return true; case kGoalSadikUG18Move: Actor_Set_Targetable(kActorSadik, true); World_Waypoint_Set(436, kSetUG18, -356.11f, 0.0f, 652.42f); AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append_Run(kActorSadik, 436, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikUG18Decide: Actor_Set_Targetable(kActorSadik, false); return true; // goals 303, 304 and 305 are never set, cut out part of game? case 303: AI_Countdown_Timer_Reset(kActorSadik, kActorTimerAIScriptCustomTask0); AI_Countdown_Timer_Start(kActorSadik, kActorTimerAIScriptCustomTask0, 5); return true; case 304: Actor_Set_Targetable(kActorSadik, false); AI_Countdown_Timer_Reset(kActorSadik, kActorTimerAIScriptCustomTask0); return true; case 305: case kGoalSadikUG18WillShootMcCoy: case kGoalSadikUG18Leave: return true; case kGoalSadikUG18PrepareShootMcCoy: Sound_Play(kSfxLGCAL1, 100, 0, 0, 50); AI_Countdown_Timer_Start(kActorSadik, kActorTimerAIScriptCustomTask0, 2); return true; case kGoalSadikUG18ShootMcCoy: if (Player_Query_Current_Scene() == kSceneUG18) { Actor_Force_Stop_Walking(kActorMcCoy); Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(kSfxLGCAL1, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1); } return true; case 309: AI_Countdown_Timer_Reset(kActorSadik, kActorTimerAIScriptCustomTask0); return true; case 400: Actor_Set_Goal_Number(kActorSadik, 410); return true; case 410: if (Game_Flag_Query(kFlagMcCoyIsHelpingReplicants) == 1) { Actor_Set_Goal_Number(kActorSadik, 414); } else { Actor_Set_Goal_Number(kActorSadik, 411); } return true; case 411: Actor_Put_In_Set(kActorSadik, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSadik, -1134.0f, 0.0f, 73.45f, 398); Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07Wait); Actor_Set_Goal_Number(kActorMaggie, kGoalMaggieKP05Wait); return true; case 412: Actor_Says(kActorSadik, 60, 3); Actor_Says(kActorMcCoy, 2240, 3); Actor_Says(kActorSadik, 70, 3); Actor_Says(kActorSadik, 80, 3); Actor_Says(kActorMcCoy, 2245, 3); Actor_Says(kActorSadik, 90, 3); Actor_Says(kActorSadik, 100, 3); Actor_Says(kActorMcCoy, 2250, 3); Actor_Set_Goal_Number(kActorSadik, 413); return true; case 413: Loop_Actor_Walk_To_XYZ(kActorSadik, -1062.0f, 0.0f, 219.0f, 0, false, true, false); Actor_Set_Targetable(kActorSadik, true); Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); Actor_Set_Goal_Number(kActorSadik, 450); return true; case 414: Actor_Put_In_Set(kActorSadik, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 150); Actor_Set_Targetable(kActorSadik, true); return true; case 415: Actor_Says(kActorSadik, 110, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2290, kAnimationModeTalk); Actor_Says(kActorSadik, 310, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2300, kAnimationModeTalk); if (Game_Flag_Query(kFlagSadikIsReplicant)) { Actor_Says(kActorSadik, 180, kAnimationModeTalk); Actor_Says(kActorSadik, 190, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2310, kAnimationModeTalk); Actor_Says(kActorSadik, 200, kAnimationModeTalk); } else { Actor_Says(kActorSadik, 140, kAnimationModeTalk); Actor_Says(kActorSadik, 150, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2305, kAnimationModeTalk); Actor_Says(kActorSadik, 160, kAnimationModeTalk); Actor_Says(kActorSadik, 170, kAnimationModeTalk); } Actor_Says(kActorMcCoy, 2315, kAnimationModeTalk); Actor_Says(kActorSadik, 210, kAnimationModeTalk); Actor_Says(kActorSadik, 220, kAnimationModeTalk); Actor_Says(kActorSadik, 230, kAnimationModeTalk); Actor_Says(kActorSadik, 240, kAnimationModeTalk); Actor_Says(kActorSadik, 250, kAnimationModeTalk); Actor_Says(kActorSadik, 260, kAnimationModeTalk); Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18NeedsReactorCoreFromMcCoy); return true; case kGoalSadikUG18NeedsReactorCoreFromMcCoy: Loop_Actor_Walk_To_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 0, false, false, false); Actor_Face_Heading(kActorSadik, 150, false); return true; case 417: Actor_Face_Actor(kActorSadik, kActorMcCoy, true); Actor_Says(kActorSadik, 320, kAnimationModeTalk); Loop_Actor_Walk_To_XYZ(kActorSadik, -857.0f, 0.0f, -703.0f, 0, false, true, false); Actor_Says(kActorMcCoy, 2330, kAnimationModeTalk); Actor_Says(kActorSadik, 330, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2335, kAnimationModeTalk); Actor_Says(kActorSadik, 340, kAnimationModeTalk); Actor_Set_Goal_Number(kActorSadik, kGoalSadikUG18NeedsReactorCoreFromMcCoy); return true; case 418: Game_Flag_Reset(kFlagMcCoyIsHelpingReplicants); Actor_Set_Goal_Number(kActorClovis, kGoalClovisKP07LayDown); Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); return true; case 419: Actor_Put_In_Set(kActorSadik, kSetKP07); Actor_Set_At_XYZ(kActorSadik, -12.0f, -41.58f, 72.0f, 0); return true; case 420: case 450: return true; } return false; }
bool AIScriptSadik::GoalChanged(int currentGoalNumber, int newGoalNumber) { switch (newGoalNumber) { case kGoalSadikDefaut: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 33, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikRunFromBB09: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append_Run(kActorSadik, 131, 0); AI_Movement_Track_Append_Run(kActorSadik, 132, 0); AI_Movement_Track_Append_Run(kActorSadik, 133, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikBB11Wait: AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 313, 0); AI_Movement_Track_Repeat(kActorSadik); Game_Flag_Set(kFlagBB11SadikFight); return true; case kGoalSadikBB11ThrowMcCoy: Actor_Set_Immunity_To_Obstacles(kActorSadik, true); Actor_Face_Heading(kActorSadik, kActorMcCoy, kActorMcCoy); _animationState = 32; _animationFrame = -1; Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); return true; case kGoalSadikBB11CatchMcCoy: Actor_Set_Goal_Number(kActorMcCoy, kGoalMcCoyBB11GetUp); AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append(kActorSadik, 314, 0); AI_Movement_Track_Append_Run(kActorSadik, 317, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case kGoalSadikBB11KnockOutMcCoy: Actor_Change_Animation_Mode(kActorSadik, 62); return true; case kGoalSadikBB11KickMcCoy: Actor_Face_Heading(kActorSadik, 100, false); Actor_Change_Animation_Mode(kActorSadik, 63); Actor_Set_Goal_Number(kActorClovis, kGoalClovisBB11WalkToMcCoy); Actor_Set_Immunity_To_Obstacles(kActorSadik, false); return true; case kGoalSadikBB11TalkWithClovis: _var1 = 0; return false; case 200: Actor_Put_In_Set(kActorSadik, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorSadik, 33, 0); Actor_Set_Goal_Number(kActorMcCoy, 199); return true; case 300: Actor_Put_In_Set(kActorSadik, kSetUG18); Actor_Set_At_XYZ(kActorSadik, 111.89f, 0.0f, 408.42f, 0); Actor_Change_Animation_Mode(kActorSadik, 4); return true; case 301: Actor_Set_Targetable(kActorSadik, true); World_Waypoint_Set(436, 89, -356.11f, 0.0f, 652.42f); AI_Movement_Track_Flush(kActorSadik); AI_Movement_Track_Append_Run(kActorSadik, 436, 0); AI_Movement_Track_Repeat(kActorSadik); return true; case 302: Actor_Set_Targetable(kActorSadik, false); return true; case 303: AI_Countdown_Timer_Reset(kActorSadik, 0); AI_Countdown_Timer_Start(kActorSadik, 0, 5); return true; case 304: Actor_Set_Targetable(kActorSadik, false); AI_Countdown_Timer_Reset(kActorSadik, 0); return true; case 305: case 306: case 310: return true; case 307: Sound_Play(12, 100, 0, 0, 50); AI_Countdown_Timer_Start(kActorSadik, 0, 2); return true; case 308: if (Player_Query_Current_Scene() == kSceneUG18) { Actor_Force_Stop_Walking(kActorMcCoy); Actor_Change_Animation_Mode(kActorSadik, kAnimationModeCombatAttack); Sound_Play(12, 100, 0, 0, 50); Actor_Change_Animation_Mode(kActorMcCoy, kAnimationModeDie); Actor_Retired_Here(kActorMcCoy, 6, 6, true, -1); } return true; case 309: AI_Countdown_Timer_Reset(kActorSadik, 0); return true; case 400: Actor_Set_Goal_Number(kActorSadik, 410); return true; case 410: if (Game_Flag_Query(653) == 1) { Actor_Set_Goal_Number(kActorSadik, 414); } else { Actor_Set_Goal_Number(kActorSadik, 411); } return true; case 411: Actor_Put_In_Set(kActorSadik, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSadik, -1134.0f, 0.0f, 73.45f, 398); Actor_Set_Goal_Number(kActorClovis, 513); Actor_Set_Goal_Number(kActorMaggie, 411); return true; case 412: Actor_Says(kActorSadik, 60, 3); Actor_Says(kActorMcCoy, 2240, 3); Actor_Says(kActorSadik, 70, 3); Actor_Says(kActorSadik, 80, 3); Actor_Says(kActorMcCoy, 2245, 3); Actor_Says(kActorSadik, 90, 3); Actor_Says(kActorSadik, 100, 3); Actor_Says(kActorMcCoy, 2250, 3); Actor_Set_Goal_Number(kActorSadik, 413); return true; case 413: Loop_Actor_Walk_To_XYZ(kActorSadik, -1062.0f, 0.0f, 219.0f, 0, false, true, 0); Actor_Set_Targetable(kActorSadik, true); Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); Actor_Set_Goal_Number(kActorSadik, 450); return true; case 414: Actor_Put_In_Set(kActorSadik, kSetKP05_KP06); Actor_Set_At_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 150); Actor_Set_Targetable(kActorSadik, true); return true; case 415: Actor_Says(kActorSadik, 110, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2290, kAnimationModeTalk); Actor_Says(kActorSadik, 310, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2300, kAnimationModeTalk); if (Game_Flag_Query(kFlagSadikIsReplicant)) { Actor_Says(kActorSadik, 180, kAnimationModeTalk); Actor_Says(kActorSadik, 190, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2310, kAnimationModeTalk); Actor_Says(kActorSadik, 200, kAnimationModeTalk); } else { Actor_Says(kActorSadik, 140, kAnimationModeTalk); Actor_Says(kActorSadik, 150, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2305, kAnimationModeTalk); Actor_Says(kActorSadik, 160, kAnimationModeTalk); Actor_Says(kActorSadik, 170, kAnimationModeTalk); } Actor_Says(kActorMcCoy, 2315, kAnimationModeTalk); Actor_Says(kActorSadik, 210, kAnimationModeTalk); Actor_Says(kActorSadik, 220, kAnimationModeTalk); Actor_Says(kActorSadik, 230, kAnimationModeTalk); Actor_Says(kActorSadik, 240, kAnimationModeTalk); Actor_Says(kActorSadik, 250, kAnimationModeTalk); Actor_Says(kActorSadik, 260, kAnimationModeTalk); Actor_Set_Goal_Number(kActorSadik, 416); return true; case 416: Loop_Actor_Walk_To_XYZ(kActorSadik, -961.0f, 0.0f, -778.0f, 0, false, false, 0); Actor_Face_Heading(kActorSadik, 150, false); return true; case 417: Actor_Face_Actor(kActorSadik, kActorMcCoy, true); Actor_Says(kActorSadik, 320, kAnimationModeTalk); Loop_Actor_Walk_To_XYZ(kActorSadik, -857.0f, 0.0f, -703.0f, 0, false, true, 0); Actor_Says(kActorMcCoy, 2330, kAnimationModeTalk); Actor_Says(kActorSadik, 330, kAnimationModeTalk); Actor_Says(kActorMcCoy, 2335, kAnimationModeTalk); Actor_Says(kActorSadik, 340, kAnimationModeTalk); Actor_Set_Goal_Number(kActorSadik, 416); return true; case 418: Game_Flag_Reset(653); Actor_Set_Goal_Number(kActorClovis, 518); Non_Player_Actor_Combat_Mode_On(kActorSadik, kActorCombatStateIdle, true, kActorMcCoy, 9, kAnimationModeCombatIdle, kAnimationModeCombatWalk, kAnimationModeCombatRun, 0, -1, -1, 15, 300, false); return true; case 419: Actor_Put_In_Set(kActorSadik, kSetKP07); Actor_Set_At_XYZ(kActorSadik, -12.0f, -41.58f, 72.0f, 0); return true; case 420: case 450: return true; } return false; }
bool AIScriptLucy::GoalChanged(int currentGoalNumber, int newGoalNumber) { if (!newGoalNumber) { Actor_Put_In_Set(kActorLucy, kSetFreeSlotA); return false; } switch (newGoalNumber) { case 200: if (Global_Variable_Query(40) == 3) { if (Game_Flag_Query(591) && Game_Flag_Query(592) && Player_Query_Current_Scene() != 36) { Actor_Set_Goal_Number(kActorLucy, 205); } else { if (Random_Query(1, 2) - 1) { Actor_Set_Goal_Number(kActorLucy, 225); } else { Actor_Set_Goal_Number(kActorLucy, 220); } } } else { int rnd = Random_Query(1, 4) - 1; if (rnd) { if (rnd == 1) { Actor_Set_Goal_Number(kActorLucy, 225); } else if (Player_Query_Current_Scene() == 36) { Actor_Set_Goal_Number(kActorLucy, 220); } else { Actor_Set_Goal_Number(kActorLucy, 205); } } else { Actor_Set_Goal_Number(kActorLucy, 220); } } break; case 205: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_With_Facing(kActorLucy, 371, 0, 156); AI_Movement_Track_Repeat(kActorLucy); break; case 210: Actor_Set_Immunity_To_Obstacles(kActorLucy, 1); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 377, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 211: Actor_Set_Immunity_To_Obstacles(kActorLucy, 0); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 372, 0); AI_Movement_Track_Append(kActorLucy, 33, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 212: Actor_Set_Immunity_To_Obstacles(kActorLucy, 1); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 378, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 213: Actor_Set_Immunity_To_Obstacles(kActorLucy, 0); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 373, 0); AI_Movement_Track_Append(kActorLucy, 33, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 214: Actor_Says(kActorLucy, 320, 16); Actor_Set_Goal_Number(kActorHolloway, 242); Actor_Set_Immunity_To_Obstacles(6, 1); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 378, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 215: Actor_Set_Immunity_To_Obstacles(kActorLucy, 0); AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 373, 0); AI_Movement_Track_Append(kActorLucy, 33, 30); AI_Movement_Track_Repeat(kActorLucy); break; case 220: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 39, Random_Query(5, 10)); AI_Movement_Track_Append(kActorLucy, 33, Random_Query(5, 10)); AI_Movement_Track_Append(kActorLucy, 39, Random_Query(5, 10)); AI_Movement_Track_Repeat(kActorLucy); break; case 225: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 39, Random_Query(5, 15)); AI_Movement_Track_Append(kActorLucy, 33, Random_Query(10, 30)); AI_Movement_Track_Append(kActorLucy, 40, Random_Query(15, 30)); AI_Movement_Track_Append(kActorLucy, 42, Random_Query(10, 20)); AI_Movement_Track_Repeat(kActorLucy); break; case 230: AI_Movement_Track_Flush(kActorLucy); Actor_Put_In_Set(kActorLucy, kSetHF04); Actor_Set_At_Waypoint(kActorLucy, 518, 0); Actor_Set_Targetable(kActorLucy, 1); Actor_Set_Health(kActorLucy, 5, 5); break; case 232: Player_Loses_Control(); Actor_Says(kActorMcCoy, 1700, 16); AI_Movement_Track_Flush(kActorLucy); Actor_Face_Actor(kActorLucy, 0, 1); Actor_Face_Actor(kActorMcCoy, kActorLucy, 1); Actor_Says(kActorLucy, 350, 13); Actor_Says(kActorMcCoy, 1705, 13); Actor_Says(kActorLucy, 360, 13); Actor_Says(kActorMcCoy, 1710, 13); if (Global_Variable_Query(kVariableAffectionTowards) == 3) { Actor_Says(kActorLucy, 940, 13); Actor_Says(kActorMcCoy, 6780, 12); Actor_Says(kActorLucy, 950, 12); Actor_Says(kActorLucy, 960, 14); Actor_Says(kActorMcCoy, 6785, 13); Actor_Says(kActorLucy, 970, 16); Actor_Says(kActorLucy, 980, 13); if (Game_Flag_Query(47)) { Actor_Says(kActorLucy, 990, 15); } Actor_Says(kActorMcCoy, 6790, 13); if (Game_Flag_Query(47) && Game_Flag_Query(46)) { Actor_Says(kActorLucy, 1000, 12); } Actor_Says(kActorLucy, 1010, 15); Actor_Says(kActorLucy, 1020, 12); Actor_Says(kActorMcCoy, 6795, 18); Actor_Says(kActorLucy, 1030, 15); Actor_Says(kActorMcCoy, 6800, 16); Actor_Says(kActorLucy, 1040, 12); Actor_Says(kActorMcCoy, 6805, 15); Actor_Says(kActorLucy, 1050, 12); } Actor_Says(kActorLucy, 370, 14); Actor_Set_Goal_Number(kActorLucy, 239); if (Global_Variable_Query(40) == 3) { Actor_Set_Goal_Number(kActorSteele, 243); Game_Flag_Set(593); } Player_Gains_Control(); break; case 233: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 519, 0); AI_Movement_Track_Repeat(kActorLucy); Actor_Set_Health(kActorLucy, 5, 5); break; case 234: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 520, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 236: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 521, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 238: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 522, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 239: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 523, 0); AI_Movement_Track_Append(kActorLucy, 33, 0); AI_Movement_Track_Repeat(kActorLucy); Player_Gains_Control(); Actor_Set_Health(kActorLucy, 30, 30); break; case 240: if (Global_Variable_Query(40) == 3) { Actor_Set_Goal_Number(kActorLucy, 599); Actor_Set_Goal_Number(kActorSteele, 240); } else { Actor_Set_Goal_Number(kActorLucy, 299); Game_Flag_Set(593); } break; case 250: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append(kActorLucy, 372, 0); AI_Movement_Track_Append_With_Facing(kActorLucy, 371, 0, 156); AI_Movement_Track_Repeat(kActorLucy); break; case 300: Actor_Put_In_Set(kActorLucy, kSetFreeSlotA); Actor_Set_At_Waypoint(kActorLucy, 33, 0); if (Global_Variable_Query(kVariableAffectionTowards) == 3) { Actor_Set_Goal_Number(kActorLucy, 310); } break; case 310: Actor_Put_In_Set(kActorLucy, kSetUG01); Actor_Set_At_Waypoint(kActorLucy, 544, 651); break; case 311: voightKempTest(); break; case 312: AI_Movement_Track_Flush(kActorLucy); AI_Movement_Track_Append_Run(kActorLucy, 545, 0); AI_Movement_Track_Append(kActorLucy, 33, 0); AI_Movement_Track_Repeat(kActorLucy); break; case 599: Game_Flag_Set(593); break; } return false; }