Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_ItemOutfitFactionComponent.c
Go to the documentation of this file.
1[ComponentEditorProps(category: "GameScripted/Inventory", description: "")]
6[BaseContainerProps(), SCR_BaseContainerTitleFieldWithValue("m_AffiliatedFactionKey", "m_iOutfitFactionValue", "%1: %2", "10")]
7class SCR_OutfitFactionData
8{
9 [Attribute(desc: "Needs to be unique")]
10 protected FactionKey m_AffiliatedFactionKey;
11
12 [Attribute("10", desc: "0 value means it is ignored", params: "0 inf")]
13 protected int m_iOutfitFactionValue;
14
15 protected Faction m_AffiliatedFaction;
16
17 //------------------------------------------------------------------------------------------------
19 bool Init(notnull FactionManager factionManager)
20 {
21 m_AffiliatedFaction = factionManager.GetFactionByKey(m_AffiliatedFactionKey);
22 if (!m_AffiliatedFaction)
23 return false;
24
25 return m_iOutfitFactionValue > 0;
26 }
27
28 //------------------------------------------------------------------------------------------------
31 {
32 return m_AffiliatedFactionKey;
33 }
34
35 //------------------------------------------------------------------------------------------------
37 int GetOutfitFactionValue()
38 {
39 return m_iOutfitFactionValue;
40 }
41
42 //------------------------------------------------------------------------------------------------
45 {
46 return m_AffiliatedFaction;
47 }
48}
49
52{
53 [Attribute()]
54 protected ref array<ref SCR_OutfitFactionData> m_aOutfitFactionData;
55
56 //------------------------------------------------------------------------------------------------
58 void Init(notnull FactionManager factionManager)
59 {
60 //~ Clear any invalid entries
61 for (int i = m_aOutfitFactionData.Count() - 1; i >= 0; i--)
62 {
63 //~ Init. If failed remove from init
64 if (!m_aOutfitFactionData[i].Init(factionManager))
65 {
66 m_aOutfitFactionData.RemoveOrdered(i);
67 continue;
68 }
69 }
70 }
71
72 //------------------------------------------------------------------------------------------------
75 {
76 return m_aOutfitFactionData.Count();
77 }
78
79 //------------------------------------------------------------------------------------------------
80
83 int GetOutfitFactionDataArray(out notnull array<SCR_OutfitFactionData> outfitDataArray)
84 {
85 outfitDataArray.Clear();
86
87 foreach(SCR_OutfitFactionData data : m_aOutfitFactionData)
88 {
89 outfitDataArray.Insert(data);
90 }
91
92 return outfitDataArray.Count();
93 }
94
95 //------------------------------------------------------------------------------------------------
99 SCR_OutfitFactionData GetOutfitFactionData(FactionKey faction)
100 {
101 if (faction.IsEmpty())
102 return null;
103
104 foreach (SCR_OutfitFactionData data : m_aOutfitFactionData)
105 {
106 if (data.GetOutfitFactionValue() <= 0)
107 continue;
108
109 if (data.GetAffiliatedFactionKey() == faction)
110 return data;
111 }
112
113 return null;
114 }
115
116 //------------------------------------------------------------------------------------------------
120 SCR_OutfitFactionData GetOutfitFactionData(notnull Faction faction)
121 {
122 foreach (SCR_OutfitFactionData data : m_aOutfitFactionData)
123 {
124 if (data.GetOutfitFactionValue() <= 0)
125 continue;
126
127 if (data.GetAffiliatedFaction() == faction)
128 return data;
129 }
130
131 return null;
132 }
133}
134
135class SCR_ItemOutfitFactionComponent : ScriptComponent
136{
137 [Attribute()]
138 protected ref SCR_OutfitFactionDataHolder m_OutfitDataHolder;
139
140 protected bool m_bInitCalled;
141
142 //------------------------------------------------------------------------------------------------
144 bool IsValid()
145 {
146 return m_OutfitDataHolder && m_OutfitDataHolder.GetOutfitFactionDataArrayCount() > 0;
147 }
148
149 //------------------------------------------------------------------------------------------------
153 int GetOutfitFactionDataArray(out notnull array<SCR_OutfitFactionData> outfitValues)
154 {
155 if (!m_OutfitDataHolder)
156 return 0;
157
158 array<SCR_OutfitFactionData> outfitDataArray = {};
159 m_OutfitDataHolder.GetOutfitFactionDataArray(outfitDataArray);
160
161 foreach(SCR_OutfitFactionData data : outfitDataArray)
162 {
163 outfitValues.Insert(data);
164 }
165
166 return outfitValues.Count();
167 }
168
169 //------------------------------------------------------------------------------------------------
173 int GetOutfitValueOfFaction(notnull Faction faction)
174 {
175 if (!m_OutfitDataHolder)
176 return 0;
177
178 array<SCR_OutfitFactionData> outfitDataArray = {};
179 m_OutfitDataHolder.GetOutfitFactionDataArray(outfitDataArray);
180
181 foreach(SCR_OutfitFactionData data : outfitDataArray)
182 {
183 if (data.GetAffiliatedFactionKey() == faction.GetFactionKey())
184 return data.GetOutfitFactionValue();
185 }
186
187 return 0;
188 }
189
190 //------------------------------------------------------------------------------------------------
194 void OnAddedToSlot(notnull SCR_CharacterFactionAffiliationComponent characterFactionAffiliationComponent, bool updateFaction = true)
195 {
196 if (!IsValid())
197 return;
198
199 if (!m_bInitCalled)
200 Init();
201
202 characterFactionAffiliationComponent.AddFactionOutfitValue(m_OutfitDataHolder, updateFaction);
203 }
204
205 //------------------------------------------------------------------------------------------------
209 void OnRemovedFromSlot(notnull SCR_CharacterFactionAffiliationComponent characterFactionAffiliationComponent, bool updateFaction = true)
210 {
211 if (!IsValid())
212 return;
213
214 if (!m_bInitCalled)
215 Init();
216
217 characterFactionAffiliationComponent.RemoveFactionOutfitValue(m_OutfitDataHolder, updateFaction);
218 }
219
220 //------------------------------------------------------------------------------------------------
221 protected void Init()
222 {
223 if (m_bInitCalled)
224 return;
225
226 m_bInitCalled = true;
227
228 if (!m_OutfitDataHolder)
229 return;
230
231 FactionManager factionManager = GetGame().GetFactionManager();
232 if (!factionManager)
233 {
234 m_OutfitDataHolder = null;
235 return;
236 }
237
238 m_OutfitDataHolder.Init(factionManager);
239 }
240
241 //------------------------------------------------------------------------------------------------
242 override void EOnInit(IEntity owner)
243 {
244 Init();
245 }
246
247 //------------------------------------------------------------------------------------------------
248 override void OnPostInit(IEntity owner)
249 {
251 return;
252
253 SetEventMask(owner, EntityEvent.INIT);
254 }
255}
256
257
override void Init()
ArmaReforgerScripted GetGame()
Definition game.c:1398
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
Get all prefabs that have the spawner data
Get all prefabs that have the spawner the given labels and are valid in the editor mode param catalogType Type to catalog to get prefabs from param editorMode Editor mode to get valid entries from param faction Faction(Optional)
SCR_ItemOutfitFactionComponentClass ScriptComponentClass SCR_BaseContainerTitleFieldWithValue("m_AffiliatedFactionKey", "m_iOutfitFactionValue", "%1: %2", "10")
SCR_ItemOutfitFactionComponentClass ScriptComponentClass BaseContainerProps()
int GetOutfitFactionDataArray(out notnull array< SCR_OutfitFactionData > outfitDataArray)
int GetOutfitValueOfFaction(notnull Faction faction)
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
proto external int SetEventMask(notnull IEntity owner, int mask)
static bool IsEditMode()
Definition Functions.c:1566
void Init(notnull FactionManager factionManager)
Init the faction outfit data array.
SCR_OutfitFactionData GetOutfitFactionData(FactionKey faction)
ref array< ref SCR_OutfitFactionData > m_aOutfitFactionData
SCR_OutfitFactionData GetOutfitFactionData(notnull Faction faction)
int GetOutfitFactionDataArray(out notnull array< SCR_OutfitFactionData > outfitDataArray)
void EOnInit(IEntity owner)
SCR_CampaignFaction GetAffiliatedFaction()
Returns the affiliated faction or null if none.
proto external FactionKey GetAffiliatedFactionKey()
SCR_FieldOfViewSettings Attribute
EntityEvent
Various entity events.
Definition EntityEvent.c:14
void OnRemovedFromSlot(IEntity item, int slotID)
void OnAddedToSlot(IEntity item, int slotID)