Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_Tutorial_Seizing_ShootTargets.c
Go to the documentation of this file.
1[EntityEditorProps(insertable: false)]
5
6//------------------------------------------------------------------------------------------------
8{
9 protected ref array <SCR_FiringRangeTarget> m_aTargets;
10 protected bool m_bComment;
11
12 //------------------------------------------------------------------------------------------------
13 override protected void Setup()
14 {
15 SCR_HintManagerComponent.HideHint();
16 SCR_HintManagerComponent.ClearLatestHint();
17
18 if (m_TutorialComponent && m_TutorialComponent.GetRemainingAmmo() < 5)
19 {
20 m_bFinished = true;
21 return;
22 }
23
24
25 m_aTargets = {};
26 m_TutorialComponent.SetupTargets("base_target1", m_aTargets, ETargetState.TARGET_UP, false);
27
28 foreach (SCR_FiringRangeTarget target : m_aTargets)
29 {
30 RegisterWaypoint(target, "", "TARGETCHAR").SetOffsetVector("0 1.7 0");;
31 target.Event_TargetChangeState.Insert(OnTargetStateChanged);
32 }
33
34 SCR_VoiceoverSystem.GetInstance().RegisterActor(GetGame().GetWorld().FindEntityByName("CONFLICT_Instructor_C"));
35
36 PlayNarrativeCharacterStage("CONFLICT_Instructor_C", 1);
37 }
38
39 //------------------------------------------------------------------------------------------------
41 {
42 if (state != ETargetState.TARGET_DOWN)
43 return;
44
45 SCR_WaypointDisplay wpDisplay = m_TutorialComponent.GetWaypointDisplay();
46 if (!wpDisplay)
47 return;
48
49 SCR_Waypoint wp = wpDisplay.FindWaypointByEntity(target);
50 if (!wp)
51 return;
52
53 wpDisplay.DeleteWaypoint(wp);
54 m_aStageWaypoints.RemoveItem(wp);
55
56 m_aTargets.RemoveItem(target);
57 target.Event_TargetChangeState.Remove(OnTargetStateChanged);
58
60
61 if (m_bComment && !m_aTargets.IsEmpty())
62 GetGame().GetCallqueue().CallLater(PlayNarrativeCharacterStage, 500, false, "CONFLICT_Instructor_C", Math.RandomInt(2,5));
63 }
64
65 //------------------------------------------------------------------------------------------------
66 override protected void OnStageFinished()
67 {
69 m_TutorialComponent.SetupTargets("base_target1", null, ETargetState.TARGET_DOWN, false);
70
71 super.OnStageFinished();
72 }
73
74 //------------------------------------------------------------------------------------------------
75 override bool GetIsFinished()
76 {
77 if (m_TutorialComponent && m_TutorialComponent.GetRemainingAmmo() < m_aTargets.Count())
78 return true;
79
80 return m_aTargets.IsEmpty();
81 }
82};
ArmaReforgerScripted GetGame()
Definition game.c:1398
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
proto external BaseWorld GetWorld()
Definition Math.c:13
ref array< SCR_Waypoint > m_aStageWaypoints
SCR_TutorialGamemodeComponent m_TutorialComponent
SCR_Waypoint RegisterWaypoint(string entityName, string title=string.Empty, string icon="MISC")
void PlayNarrativeCharacterStage(string characterName, int stage)
void OnTargetStateChanged(ETargetState state, SCR_FiringRangeTarget target)
ref array< SCR_FiringRangeTarget > m_aTargets
void RegisterActor(notnull IEntity entity)
static SCR_VoiceoverSystem GetInstance()
void DeleteWaypoint(SCR_Waypoint waypoint)
SCR_Waypoint FindWaypointByEntity(IEntity entity)
void SetOffsetVector(vector offset)