@@ -177,6 +177,7 @@ function RefineryAssault:HandleMessage(message, object)
177
177
self .stage3ConsolesBroken = 3
178
178
self .HUDHandler :RemoveObjective (self .humanTeam , " S3DestroyConsoles" );
179
179
self .saveTable .enemyActorTables .stage3FacilityOperator = {};
180
+ self .stage3DrillOverloaded = true ;
180
181
end
181
182
182
183
@@ -381,6 +382,19 @@ function RefineryAssault:SetupStartingActors()
381
382
382
383
table.insert (self .saveTable .enemyActorTables .stage3FacilityOperator , facilityOperator );
383
384
385
+ -- Stage 3 and 4 door stuff, might as well save it
386
+
387
+ self .saveTable .stage3Doors = {};
388
+ self .saveTable .stage4Door = {};
389
+
390
+ for actor in MovableMan .AddedActors do
391
+ if actor :NumberValueExists (" BlastDoorOpening" ) then
392
+ table.insert (self .saveTable .stage3Doors , actor );
393
+ elseif actor :NumberValueExists (" BlastDoorStuck" ) then
394
+ table.insert (self .saveTable .stage4Door , actor );
395
+ end
396
+ end
397
+
384
398
end
385
399
386
400
function RefineryAssault :SetupFirstStage ()
@@ -733,21 +747,53 @@ function RefineryAssault:MonitorStage3()
733
747
734
748
end
735
749
736
- if self .stage3ConsolesBroken == 3 and self .stage3FacilityOperatorKilled and self .stage3DrillOverloaded then
750
+ if self .stage3ConsolesBroken == 3 and self .stage3FacilityOperatorKilled and self .stage3DrillOverloaded and not self .stage3DoorSequenceTimer then
751
+
752
+ -- initiate scripted sequence
753
+
754
+ self .stage3DoorSequenceTimer = Timer ();
737
755
738
756
self .HUDHandler :RemoveObjective (self .humanTeam , " S3OpenDoors" );
757
+
758
+ local pos = SceneMan .Scene :GetOptionalArea (" RefineryAssault_S3DoorSequenceArea" ).Center ;
759
+
760
+ local soundContainer = CreateSoundContainer (" Yskely Refinery Blast Door Alarm" , " Browncoats.rte" );
761
+ soundContainer :Play (pos );
762
+
763
+ self .HUDHandler :QueueCameraPanEvent (self .humanTeam , " S3DoorSequence" , pos , 0.08 , 10000 , true );
764
+
765
+ elseif self .stage3DoorSequenceTimer and self .stage3DoorSequenceTimer :IsPastSimMS (7000 ) then
739
766
767
+ -- Find doors
768
+
769
+ for k , door in pairs (self .saveTable .stage3Doors ) do
770
+ print (" hellotard" )
771
+ if MovableMan :ValidMO (door ) then
772
+ ToADoor (door ):OpenDoor ();
773
+ end
774
+ end
775
+
740
776
self :GetBanner (GUIBanner .YELLOW , 0 ):ShowText (" DOORS OPEN WOW!" , GUIBanner .FLYBYLEFTWARD , 1500 , Vector (FrameMan .PlayerScreenWidth , FrameMan .PlayerScreenHeight ), 0.4 , 4000 , 0 )
741
777
self .Stage = 4 ;
742
778
743
779
-- Capturables
744
780
745
- MovableMan :SendGlobalMessage (" ActivateCapturable_RefineryS3BuyDoorConsole4" );
746
-
781
+ MovableMan :SendGlobalMessage (" ActivateCapturable_RefineryS3BuyDoorConsole4" );
782
+
747
783
end
748
784
749
785
end
750
786
751
787
function RefineryAssault :MonitorStage4 ()
752
788
789
+ for k , door in pairs (self .saveTable .stage4Door ) do
790
+ if not door or not MovableMan :ValidMO (door ) then
791
+ -- stage 5 crap
792
+ end
793
+ end
794
+
795
+ end
796
+
797
+ function RefineryAssault :MonitorStage5 ()
798
+
753
799
end
0 commit comments