Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_GroupTaskRelevanceConfig.c
Go to the documentation of this file.
1[BaseContainerProps(configRoot: true)]
3{
4 [Attribute(desc: "Group task relevance list")]
5 protected ref array<ref SCR_GroupTaskRelevance> m_aGroupTaskRelevanceList;
7 //------------------------------------------------------------------------------------------------
10 SCR_GroupTaskRelevance GetGroupTaskRelevance(typename taskTypename)
11 {
12 if (!taskTypename || taskTypename == typename.Empty)
13 return null;
14
15 foreach (SCR_GroupTaskRelevance groupTaskRelevance : m_aGroupTaskRelevanceList)
16 {
17 if (taskTypename == groupTaskRelevance.GetTaskTypename())
18 return groupTaskRelevance;
19 }
20
21 return null;
22 }
23}
24
26class SCR_GroupTaskRelevance
27{
28 [Attribute(desc: "Typename of SCR_Task class")]
29 protected string m_sTaskTypename;
30
31 [Attribute("1", desc: "If is checked, task is visible to all groups")]
32 protected bool m_bIsTaskVisibleToAllGroups;
33
34 [Attribute(desc: "List with relevant group roles for the task defined by typename")]
35 protected ref array<ref SCR_GroupRoleRelevance> m_aOrderedGroupRoleRelevanceList;
36
37 //------------------------------------------------------------------------------------------------
39 typename GetTaskTypename()
40 {
41 return m_sTaskTypename.ToType();
42 }
43
44 //------------------------------------------------------------------------------------------------
47 int GetOrderedGroupRoleRelevanceList(out array<ref SCR_GroupRoleRelevance> relevanceList)
48 {
49 relevanceList = m_aOrderedGroupRoleRelevanceList;
50
51 return m_aOrderedGroupRoleRelevanceList.Count();
52 }
53
54 //------------------------------------------------------------------------------------------------
57 bool IsTaskVisibleForGroup(notnull SCR_AIGroup group)
58 {
59 if (m_bIsTaskVisibleToAllGroups)
60 return true;
61
62 SCR_EGroupRole groupRole = group.GetGroupRole();
63 foreach (SCR_GroupRoleRelevance groupRoleRelevance : m_aOrderedGroupRoleRelevanceList)
64 {
65 if (groupRoleRelevance.GetGroupRole() == groupRole)
66 return groupRoleRelevance.IsTaskVisible();
67 }
68
69 return false;
70 }
71
72 //------------------------------------------------------------------------------------------------
75 bool IsTaskExecutableByGroup(notnull SCR_AIGroup group)
76 {
77 SCR_EGroupRole groupRole = group.GetGroupRole();
78 foreach (SCR_GroupRoleRelevance groupRoleRelevance : m_aOrderedGroupRoleRelevanceList)
79 {
80 if (groupRoleRelevance.GetGroupRole() == groupRole)
81 return groupRoleRelevance.IsGroupExecutor();
82 }
83
84 return false;
85 }
86}
87
90{
91 [Attribute(uiwidget: UIWidgets.ComboBox, enumType: SCR_EGroupRole)]
93
94 [Attribute("1", desc: "Task visibility for this group role")]
95 protected bool m_bIsTaskVisible;
96
97 [Attribute("1", desc: "Task executability for this group role")]
98 protected bool m_bIsGroupExecutor;
99
100 //------------------------------------------------------------------------------------------------
103 {
104 return m_eGroupRole;
105 }
106
107 //------------------------------------------------------------------------------------------------
110 {
111 return m_bIsTaskVisible;
112 }
113
114 //------------------------------------------------------------------------------------------------
117 {
118 return m_bIsGroupExecutor;
119 }
120}
class SCR_CampaignHintStorage SCR_BaseContainerCustomTitleEnum(EHint, "m_eHintId")
SCR_EGroupRole
Group roles.
class SCR_GroupTaskRelevanceConfig SCR_BaseContainerCustomTitleField("m_sTaskTypename")
class SCR_GroupTaskRelevanceConfig BaseContainerProps()
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
ref array< ref SCR_GroupTaskRelevance > m_aGroupTaskRelevanceList
SCR_GroupTaskRelevance GetGroupTaskRelevance(typename taskTypename)
SCR_FieldOfViewSettings Attribute