71 protected bool m_bIsInteractible;
73 protected string m_sContentName;
80 void InitContent(SCR_WelcomeScreenMenu menu,
string column,
string columnButton)
82 m_sContentName = column;
88 void ToggleInteractions(
bool enabled);
92 string GetContentName()
94 return m_sContentName;
100 bool GetIsInteractible()
102 return m_bIsInteractible;
108class SCR_WelcomeScreenMissionObjectivesContent : SCR_WelcomeScreenBaseContent
111 protected string m_sTitleText;
114 protected ref array<ref SCR_WelcomeScreenMissionObjectives> m_aMissionObjectives;
117 protected string m_sBottomTitleText;
119 protected Widget m_wMissionObjectivesWidget;
120 protected int m_iObjectivesCount;
122 [
Attribute(defvalue:
"{ECDF3386111C93B6}UI/layouts/Menus/DeployMenu/WelcomeScreenMissionObjectivesColumn.layout")]
123 protected ResourceName m_sMissionObjectivesColumnLayout;
125 [
Attribute(defvalue:
"{B03D5FCC04D25B95}UI/layouts/Menus/DeployMenu/WelcomeScreenMissionObjective.layout")]
126 protected ResourceName m_sMissionObjectiveLayout;
129 override void InitContent(SCR_WelcomeScreenMenu menu,
string column,
string columnButton)
131 m_sContentName = column;
133 if (!m_aMissionObjectives)
136 m_iObjectivesCount = m_aMissionObjectives.Count();
137 Widget targetColumn = menu.GetRootWidget().FindAnyWidget(column);
141 m_wMissionObjectivesWidget =
GetGame().GetWorkspace().CreateWidgets(m_sMissionObjectivesColumnLayout, targetColumn);
142 if (!m_wMissionObjectivesWidget)
145 Widget missionObjectivesContent = m_wMissionObjectivesWidget.FindAnyWidget(
"MiddleContentVertical");
146 if (!missionObjectivesContent)
149 FillMissionObjectivesWidget(missionObjectivesContent)
155 protected void FillMissionObjectivesWidget(Widget
content)
157 RichTextWidget titleText = RichTextWidget.Cast(m_wMissionObjectivesWidget.FindAnyWidget(
"TitleText"));
159 titleText.SetText(GetTitleText());
161 array<ref SCR_WelcomeScreenMissionObjectives> objectives = {};
162 SCR_WelcomeScreenMissionObjectives objective;
164 objectivesCount = GetMissionObjectives(objectives);
167 if (objectivesCount < 11)
168 cycleCount = objectivesCount;
173 for (
int i = 0; i < cycleCount; ++i)
175 objective = objectives[i];
177 Widget cond =
GetGame().GetWorkspace().CreateWidgets(m_sMissionObjectiveLayout,
content);
181 RichTextWidget name = RichTextWidget.Cast(cond.FindAnyWidget(
"ObjectiveText"));
183 name.SetText(objective.GetDescription());
185 ImageWidget icon = ImageWidget.Cast(cond.FindAnyWidget(
"Icon"));
187 icon.LoadImageFromSet(0, objective.GetImageSet(), objective.GetObjectiveQuadName(),
false);
190 RichTextWidget bottomTitleText = RichTextWidget.Cast(m_wMissionObjectivesWidget.FindAnyWidget(
"BottomTitleText"));
191 if (!bottomTitleText)
194 if (objectivesCount < 1)
195 bottomTitleText.SetOpacity(0);
197 bottomTitleText.SetTextFormat(GetBottomTitleText(), objectivesCount);
204 int GetMissionObjectives(out array<ref SCR_WelcomeScreenMissionObjectives> missionObjectives)
206 missionObjectives = m_aMissionObjectives;
208 return m_aMissionObjectives.Count();
213 string GetTitleText()
220 string GetBottomTitleText()
222 return m_sBottomTitleText;
228class SCR_WelcomeScreenMissionObjectives
230 [
Attribute(
"{88966C7AB9720818}UI/Textures/DeployMenu/Objectives-Briefing/Objectives-briefing.imageset", UIWidgets.ResourcePickerThumbnail,
"Image set for the icons",
params:
"edds")]
231 protected ResourceName m_sObjectiveImageSet;
234 protected string m_sObjectiveQuadName;
243 return m_sObjectiveImageSet;
248 string GetObjectiveQuadName()
250 return m_sObjectiveQuadName;
255 string GetDescription()
264class SCR_WelcomeScreenDynamicObjectivesContent : SCR_WelcomeScreenBaseContent
267 protected string m_sTitleText;
270 protected ref array<ref SCR_WelcomeScreenDynamicTaskFaction> m_aFactions;
272 [
Attribute(defvalue:
"{0B7DDF77E24F0C63}UI/layouts/Menus/DeployMenu/WelcomeScreenDynamicObjectivesColumn.layout")]
273 protected ResourceName m_sFinishedObjectivesTileLayout;
275 [
Attribute(defvalue:
"{B03D5FCC04D25B95}UI/layouts/Menus/DeployMenu/WelcomeScreenMissionObjective.layout")]
276 protected ResourceName m_sFinishedObjectivesLayout;
278 protected Widget m_wFinishedObjectivesWidget;
279 protected Widget m_wPaginationWidget;
280 protected ButtonWidget m_wColumnButton;
281 protected ref array<SCR_Task> m_aObjectivesToDisplay = {};
282 protected ref array<Widget> m_aDynamicObjectivesWidgets = {};
284 protected int m_iDynamicObjectivesCount;
288 override void InitContent(SCR_WelcomeScreenMenu menu,
string column,
string columnButton)
290 m_sContentName = column;
292 Widget targetTile = menu.GetRootWidget().FindAnyWidget(column);
296 m_wFinishedObjectivesWidget =
GetGame().GetWorkspace().CreateWidgets(m_sFinishedObjectivesTileLayout, targetTile);
297 if (!m_wFinishedObjectivesWidget)
300 Widget finishedObjectivesContent = m_wFinishedObjectivesWidget.FindAnyWidget(
"FinishedObjectivesLayout");
301 if (!finishedObjectivesContent)
304 m_wColumnButton = ButtonWidget.Cast(menu.GetRootWidget().FindAnyWidget(columnButton));
305 if (!m_wColumnButton)
308 FillDynamicObjectivesWidget(finishedObjectivesContent);
314 override void ToggleInteractions(
bool enabled)
316 HandlePagination(enabled);
322 void FillDynamicObjectivesWidget(Widget
content)
324 RichTextWidget titleText = RichTextWidget.Cast(m_wFinishedObjectivesWidget.FindAnyWidget(
"TitleText"));
325 titleText.SetText(GetTitleText());
327 SCR_TaskSystem taskSystem = SCR_TaskSystem.GetInstance();
335 m_aObjectivesToDisplay.Clear();
336 taskSystem.GetTasks(m_aObjectivesToDisplay);
337 m_iDynamicObjectivesCount = m_aObjectivesToDisplay.Count();
339 foreach (SCR_WelcomeScreenDynamicTaskFaction faction : m_aFactions)
341 string factionKey = faction.GetFactionKey();
344 if (!
task.GetOwnerFactionKeys().Contains(factionKey))
347 faction.AddFactionTask(
task);
352 m_aDynamicObjectivesWidgets.Clear();
353 for (
int i = 0; i < 10; ++i)
355 Widget objective =
GetGame().GetWorkspace().CreateWidgets(m_sFinishedObjectivesLayout,
content);
356 m_aDynamicObjectivesWidgets.Insert(objective);
365 FlipPage(GetCurrentPage());
367 m_wPaginationWidget = m_wFinishedObjectivesWidget.FindAnyWidget(
"BottomTitleSizeLayout");
368 if (!m_wPaginationWidget)
371 if (m_iDynamicObjectivesCount < 11)
373 m_wPaginationWidget.SetOpacity(0);
377 Widget pages = m_wFinishedObjectivesWidget.FindAnyWidget(
"Pages");
381 SCR_SelectionHintComponent pagesVisualised = SCR_SelectionHintComponent.Cast(pages.FindHandler(SCR_SelectionHintComponent));
382 if (!pagesVisualised)
385 pagesVisualised.
SetItemCount(m_iDynamicObjectivesCount/10);
396 GetGame().GetCallqueue().CallLater(AddTaskCalledLater, 1000,
false,
task);
402 protected void AddTaskCalledLater(notnull
SCR_Task task)
404 foreach (SCR_WelcomeScreenDynamicTaskFaction faction : m_aFactions)
406 if (!
task.GetOwnerFactionKeys().Contains(faction.GetFactionKey()))
409 faction.AddFactionTask(
task);
413 m_aObjectivesToDisplay.Clear();
414 foreach (SCR_WelcomeScreenDynamicTaskFaction faction : m_aFactions)
416 m_aObjectivesToDisplay.InsertAll(faction.GetFactionTasks());
419 m_iDynamicObjectivesCount = m_aObjectivesToDisplay.Count();
421 FlipPage(GetCurrentPage());
429 foreach (SCR_WelcomeScreenDynamicTaskFaction faction : m_aFactions)
431 if (!
task.GetOwnerFactionKeys().Contains(faction.GetFactionKey()))
434 faction.RemoveFactionTask(
task);
438 m_aObjectivesToDisplay.Clear();
439 foreach (SCR_WelcomeScreenDynamicTaskFaction faction : m_aFactions)
441 m_aObjectivesToDisplay.InsertAll(faction.GetFactionTasks());
444 m_iDynamicObjectivesCount = m_aObjectivesToDisplay.Count();
446 FlipPage(GetCurrentPage());
451 protected void InitPagination()
453 Widget previousButtonWidget = m_wFinishedObjectivesWidget.FindAnyWidget(
"PrevButton");
454 if (!previousButtonWidget)
457 SCR_PagingButtonComponent previousButton = SCR_PagingButtonComponent.Cast(previousButtonWidget.FindHandler(SCR_PagingButtonComponent));
459 previousButton.m_OnClicked.Insert(ButtonClicked);
461 Widget nextButtonWidget = m_wFinishedObjectivesWidget.FindAnyWidget(
"NextButton");
462 if (!nextButtonWidget)
465 SCR_PagingButtonComponent nextButton = SCR_PagingButtonComponent.Cast(nextButtonWidget.FindHandler(SCR_PagingButtonComponent));
467 nextButton.m_OnClicked.Insert(ButtonClicked);
472 protected void ButtonClicked()
474 GetGame().GetWorkspace().SetFocusedWidget(m_wColumnButton);
480 protected void HandlePagination(
bool enabled =
false)
482 Widget previousButtonWidget = m_wFinishedObjectivesWidget.FindAnyWidget(
"PrevButton");
483 if (!previousButtonWidget)
486 SCR_PagingButtonComponent previousButton = SCR_PagingButtonComponent.Cast(previousButtonWidget.FindHandler(SCR_PagingButtonComponent));
491 previousButton.
m_OnActivated.Insert(PreviousButtonActivated);
493 previousButton.
m_OnActivated.Remove(PreviousButtonActivated);
495 Widget nextButtonWidget = m_wFinishedObjectivesWidget.FindAnyWidget(
"NextButton");
496 if (!nextButtonWidget)
499 SCR_PagingButtonComponent nextButton = SCR_PagingButtonComponent.Cast(nextButtonWidget.FindHandler(SCR_PagingButtonComponent));
511 protected void PreviousButtonActivated()
513 int currentPage = GetCurrentPage();
518 FlipPage(currentPage);
523 protected void NextButtonActivated()
525 int currentPage = GetCurrentPage();
527 if (currentPage == Math.Ceil(m_iDynamicObjectivesCount/10))
530 FlipPage(currentPage);
536 protected void FlipPage(
int currentPage)
538 for (
int i = 0; i < 10; ++i)
540 if (!m_aDynamicObjectivesWidgets[i])
543 m_aDynamicObjectivesWidgets[i].SetOpacity(1);
544 if (currentPage == 0)
546 if (i < m_iDynamicObjectivesCount)
548 RichTextWidget name = RichTextWidget.Cast(m_aDynamicObjectivesWidgets[i].FindAnyWidget(
"ObjectiveText"));
549 SCR_EditorTask editorTask = SCR_EditorTask.Cast(m_aObjectivesToDisplay[i]);
550 SCR_CampaignMilitaryBaseTaskEntity campaignTask = SCR_CampaignMilitaryBaseTaskEntity.Cast(m_aObjectivesToDisplay[i]);
552 name.SetTextFormat(editorTask.GetTaskName(), editorTask.GetLocationName());
553 else if (campaignTask)
554 name.SetTextFormat(campaignTask.GetTaskName(), campaignTask.GetMilitaryBase().GetCallsign());
556 name.SetText(m_aObjectivesToDisplay[i].
GetTaskName());
558 ImageWidget image = ImageWidget.Cast(m_aDynamicObjectivesWidgets[i].FindAnyWidget(
"Background"));
559 image.SetColor(
m_FactionManager.GetFactionByKey(m_aObjectivesToDisplay[i].GetOwnerFactionKeys()[0]).GetFactionColor());
563 m_aDynamicObjectivesWidgets[i].SetOpacity(0);
568 if ((currentPage * 10) + i < m_iDynamicObjectivesCount)
570 RichTextWidget name = RichTextWidget.Cast(m_aDynamicObjectivesWidgets[i].FindAnyWidget(
"ObjectiveText"));
571 SCR_EditorTask editorTask = SCR_EditorTask.Cast(m_aObjectivesToDisplay[(currentPage * 10) + i]);
572 SCR_CampaignMilitaryBaseTaskEntity campaignTask = SCR_CampaignMilitaryBaseTaskEntity.Cast(m_aObjectivesToDisplay[(currentPage * 10) + i]);
574 name.SetTextFormat(editorTask.GetTaskName(), editorTask.GetLocationName());
575 else if (campaignTask)
576 name.SetTextFormat(campaignTask.GetTaskName(), campaignTask.GetMilitaryBase().GetCallsign());
578 name.SetText(m_aObjectivesToDisplay[(currentPage * 10) + i].
GetTaskName());
580 ImageWidget image = ImageWidget.Cast(m_aDynamicObjectivesWidgets[i].FindAnyWidget(
"Background"));
581 image.SetColor(
m_FactionManager.GetFactionByKey(m_aObjectivesToDisplay[(currentPage * 10) + i].GetOwnerFactionKeys()[0]).GetFactionColor());
585 m_aDynamicObjectivesWidgets[i].SetOpacity(0);
590 SetCurrentPage(currentPage);
592 if (m_wPaginationWidget)
594 if (m_iDynamicObjectivesCount < 11)
595 m_wPaginationWidget.SetOpacity(0);
597 m_wPaginationWidget.SetOpacity(1);
599 Widget pages = m_wFinishedObjectivesWidget.FindAnyWidget(
"Pages");
603 SCR_SelectionHintComponent pagesVisualised = SCR_SelectionHintComponent.Cast(pages.FindHandler(SCR_SelectionHintComponent));
604 if (!pagesVisualised)
607 pagesVisualised.
SetItemCount(m_iDynamicObjectivesCount/10);
623 void SetCurrentPage(
int page)
630 string GetTitleText()
638class SCR_WelcomeScreenDynamicTaskFaction
644 protected ref array<SCR_Task> m_aFactionTasks = {};
648 array<SCR_Task> GetFactionTasks()
650 return m_aFactionTasks;
665 if (!m_aFactionTasks.Contains(
task))
666 m_aFactionTasks.Insert(
task);
674 m_aFactionTasks.RemoveItem(
task);
680class SCR_WelcomeScreenIntroductionContent : SCR_WelcomeScreenBaseContent
683 protected string m_sTitleText;
686 protected ref array<ref SCR_WelcomeScreenIntroduction> m_aIntroduction;
689 protected int m_iIntroductionCount;
691 [
Attribute(defvalue:
"{49EEED554D68F43A}UI/layouts/Menus/DeployMenu/WelcomeScreenIntroductionColumn.layout")]
692 protected ResourceName m_sIntroductionColumnLayout;
694 protected Widget m_wIntroductionContentWidget;
695 protected ButtonWidget m_wColumnButton;
698 override void InitContent(SCR_WelcomeScreenMenu menu,
string column,
string columnButton)
700 m_sContentName = column;
702 if (!m_aIntroduction)
705 m_iIntroductionCount = m_aIntroduction.Count();
706 Widget targetColumn = menu.GetRootWidget().FindAnyWidget(column);
710 m_wColumnButton = ButtonWidget.Cast(menu.GetRootWidget().FindAnyWidget(columnButton));
711 if (!m_wColumnButton)
714 m_wIntroductionContentWidget =
GetGame().GetWorkspace().CreateWidgets(m_sIntroductionColumnLayout, targetColumn);
715 if (!m_wIntroductionContentWidget)
718 FillIntroductionWidget(targetColumn);
722 override void ToggleInteractions(
bool enabled)
724 HandlePagination(enabled);
730 protected void FillIntroductionWidget(Widget column)
732 RichTextWidget titleTextContent = RichTextWidget.Cast(column.FindAnyWidget(
"TitleText"));
733 if (titleTextContent)
734 titleTextContent.SetText(GetTitleText());
736 array<ref SCR_WelcomeScreenIntroduction> introductionPages = {};
737 int introductionCount = GetIntroduction(introductionPages);
738 if (introductionCount == 0)
741 Widget contentVertical = m_wIntroductionContentWidget.FindAnyWidget(
"ContentVertical");
742 if (!contentVertical)
745 ImageWidget imageWidget = ImageWidget.Cast(contentVertical.FindAnyWidget(
"ImageWidget"));
746 if (imageWidget && introductionPages[0].GetImage())
747 imageWidget.LoadImageTexture(0, introductionPages[0].GetImage(),
false,
false);
749 RichTextWidget titleText = RichTextWidget.Cast(contentVertical.FindAnyWidget(
"TitleText"));
751 titleText.SetText(introductionPages[0].GetTitleText());
753 RichTextWidget descriptionText = RichTextWidget.Cast(contentVertical.FindAnyWidget(
"DescriptionText"));
755 descriptionText.SetText(introductionPages[0].GetDescriptionText());
757 Widget pages = m_wIntroductionContentWidget.FindAnyWidget(
"Pages");
761 SCR_SelectionHintComponent pagesVisualised = SCR_SelectionHintComponent.Cast(pages.FindHandler(SCR_SelectionHintComponent));
762 if (!pagesVisualised)
765 Widget pagination = m_wIntroductionContentWidget.FindAnyWidget(
"Pagination");
769 if (introductionCount == 1)
771 pagination.SetOpacity(0);
783 protected void InitPagination()
785 Widget previousButtonWidget = m_wIntroductionContentWidget.FindAnyWidget(
"PrevButton");
786 if (!previousButtonWidget)
789 SCR_PagingButtonComponent previousButton = SCR_PagingButtonComponent.Cast(previousButtonWidget.FindHandler(SCR_PagingButtonComponent));
791 previousButton.m_OnClicked.Insert(ButtonClicked);
793 Widget nextButtonWidget = m_wIntroductionContentWidget.FindAnyWidget(
"NextButton");
794 if (!nextButtonWidget)
797 SCR_PagingButtonComponent nextButton = SCR_PagingButtonComponent.Cast(nextButtonWidget.FindHandler(SCR_PagingButtonComponent));
799 nextButton.m_OnClicked.Insert(ButtonClicked);
804 protected void ButtonClicked()
806 GetGame().GetWorkspace().SetFocusedWidget(m_wColumnButton);
812 protected void HandlePagination(
bool enabled =
false)
814 Widget previousButtonWidget = m_wIntroductionContentWidget.FindAnyWidget(
"PrevButton");
815 if (!previousButtonWidget)
818 SCR_PagingButtonComponent previousButton = SCR_PagingButtonComponent.Cast(previousButtonWidget.FindHandler(SCR_PagingButtonComponent));
823 previousButton.
m_OnActivated.Insert(PreviousButtonActivated);
825 previousButton.
m_OnActivated.Remove(PreviousButtonActivated);
827 Widget nextButtonWidget = m_wIntroductionContentWidget.FindAnyWidget(
"NextButton");
828 if (!nextButtonWidget)
831 SCR_PagingButtonComponent nextButton = SCR_PagingButtonComponent.Cast(nextButtonWidget.FindHandler(SCR_PagingButtonComponent));
843 protected void PreviousButtonActivated()
845 int currentPage = GetCurrentPage();
850 FlipPage(currentPage)
855 protected void NextButtonActivated()
857 int currentPage = GetCurrentPage();
859 if (currentPage == m_iIntroductionCount)
862 FlipPage(currentPage)
868 protected void FlipPage(
int currentPage)
870 Widget contentVertical = m_wIntroductionContentWidget.FindAnyWidget(
"ContentVertical");
871 if (!contentVertical)
874 SetCurrentPage(currentPage);
875 SCR_WelcomeScreenIntroduction targetIntroduction = m_aIntroduction[currentPage];
876 if (!targetIntroduction)
879 ImageWidget imageWidget = ImageWidget.Cast(contentVertical.FindAnyWidget(
"ImageWidget"));
880 if (imageWidget && targetIntroduction.GetImage())
881 imageWidget.LoadImageTexture(0, targetIntroduction.GetImage(),
false,
false);
883 RichTextWidget titleText = RichTextWidget.Cast(contentVertical.FindAnyWidget(
"TitleText"));
885 titleText.SetText(targetIntroduction.GetTitleText());
887 RichTextWidget descriptionText = RichTextWidget.Cast(contentVertical.FindAnyWidget(
"DescriptionText"));
889 descriptionText.SetText(targetIntroduction.GetDescriptionText());
891 Widget pages = m_wIntroductionContentWidget.FindAnyWidget(
"Pages");
895 SCR_SelectionHintComponent pagesVisualised = SCR_SelectionHintComponent.Cast(pages.FindHandler(SCR_SelectionHintComponent));
896 if (!pagesVisualised)
906 int GetIntroduction(out array<ref SCR_WelcomeScreenIntroduction> introduction)
908 introduction = m_aIntroduction;
910 return m_aIntroduction.Count();
915 string GetTitleText()
931 void SetCurrentPage(
int page)
939class SCR_WelcomeScreenIntroduction
941 [
Attribute(
"", UIWidgets.ResourcePickerThumbnail,
"Flag icon of this particular faction.",
params:
"edds")]
942 protected ResourceName m_sContentImage;
945 protected string m_sContentTitleText;
948 protected string m_sContentDescriptionText;
952 ResourceName GetImage()
954 return m_sContentImage;
959 string GetTitleText()
961 return m_sContentTitleText;
966 string GetDescriptionText()
968 return m_sContentDescriptionText;
974class SCR_WelcomeScreenFactionContent : SCR_WelcomeScreenBaseContent
977 protected string m_sTitleText;
980 protected string m_sBottomTitleText;
982 [
Attribute(defvalue:
"{4C4460227BBC5134}UI/layouts/Menus/DeployMenu/WelcomeScreenFactionColumn.layout")]
983 protected ResourceName m_sFactionColumnLayout;
985 [
Attribute(defvalue:
"{68CCF1BD8F7AF86C}UI/layouts/Menus/DeployMenu/WelcomeScreenFaction.layout")]
986 protected ResourceName m_sFactionLayout;
988 [
Attribute(defvalue:
"{1228936E5DB30403}UI/Textures/GroupManagement/FlagIcons/GroupFlagsBlufor.imageset")]
989 protected ResourceName m_sBluforLayout;
991 [
Attribute(defvalue:
"{7CD99D22C7AE8195}UI/Textures/GroupManagement/FlagIcons/GroupFlagsOpfor.imageset")]
992 protected ResourceName m_sOpforLayout;
994 [
Attribute(defvalue:
"{301FC1A2A46D3E0D}UI/Textures/GroupManagement/FlagIcons/GroupFlagsIndfor.imageset")]
995 protected ResourceName m_sIndforLayout;
998 protected string m_sUSFaction;
1001 protected string m_sUSSRFaction;
1004 protected string m_sFIAFaction;
1006 protected Widget m_wFactionContentWidget;
1007 protected ref array<Widget> m_aFactionWidgets = {};
1008 protected ref SCR_SortedArray<SCR_Faction> m_SortedFactions =
new SCR_SortedArray<SCR_Faction>();
1011 override void InitContent(SCR_WelcomeScreenMenu menu,
string column,
string columnButton)
1013 m_sContentName = column;
1015 Widget targetColumn = menu.GetRootWidget().FindAnyWidget(column);
1019 m_wFactionContentWidget =
GetGame().GetWorkspace().CreateWidgets(m_sFactionColumnLayout, targetColumn);
1020 if (!m_wFactionContentWidget)
1028 protected void AddFactionWidget()
1030 RichTextWidget titleTextContent = RichTextWidget.Cast(m_wFactionContentWidget.FindAnyWidget(
"TitleText"));
1031 if (titleTextContent)
1032 titleTextContent.SetText(GetTitleText());
1035 Widget blueforContent = m_wFactionContentWidget.FindAnyWidget(
"Bluefor");
1036 Widget opforContent = m_wFactionContentWidget.FindAnyWidget(
"Opfor");
1037 Widget independentContent = m_wFactionContentWidget.FindAnyWidget(
"Independent");
1038 Widget civilianContent = m_wFactionContentWidget.FindAnyWidget(
"Civilian");
1040 if (!blueforContent)
1044 if (!factionManager)
1047 factionManager.GetOnPlayerFactionCountChanged().Insert(UpdateFactionPlayerCount);
1049 int factionCount = factionManager.GetSortedFactionsList(m_SortedFactions);
1051 for (
int i = 0; i < factionCount; i++)
1053 m_SortedFactions[i].GetOnFactionPlayableChanged().Insert(UpdateFactionPlayability);
1058 if (factionCount < 7)
1059 cycleCount = factionCount;
1064 for (
int i = 0; i < cycleCount; i++)
1067 Color factionColor = m_SortedFactions[i].GetFactionColor();
1068 FillFactionWidget(m_SortedFactions[i], blueforContent, factionColor);
1071 RichTextWidget bottomTitleText = RichTextWidget.Cast(m_wFactionContentWidget.FindAnyWidget(
"BottomTitleText"));
1072 if (!bottomTitleText)
1075 if (factionCount < 1)
1076 bottomTitleText.SetOpacity(0);
1078 bottomTitleText.SetTextFormat(GetBottomTitleText(), factionCount);
1086 protected void FillFactionWidget(notnull SCR_Faction faction, notnull Widget
content, Color color)
1093 Widget factionWidget =
GetGame().GetWorkspace().CreateWidgets(m_sFactionLayout,
content);
1097 m_aFactionWidgets.Insert(factionWidget);
1099 ImageWidget flag = ImageWidget.Cast(factionWidget.FindAnyWidget(
"FlagImage"));
1101 flag.LoadImageTexture(0, faction.GetFactionFlag(),
false,
false);
1103 ImageWidget side = ImageWidget.Cast(factionWidget.FindAnyWidget(
"SideImage"));
1106 ResourceName ImageSetResource;
1108 if (faction.GetFactionKey() == m_sUSFaction)
1109 ImageSetResource = m_sBluforLayout;
1111 else if (faction.GetFactionKey() == m_sUSSRFaction)
1112 ImageSetResource = m_sOpforLayout;
1114 else if (faction.GetFactionKey() == m_sFIAFaction)
1115 ImageSetResource = m_sIndforLayout;
1119 side.SetEnabled(
false);
1120 side.SetVisible(
false);
1124 side.LoadImageFromSet(0, ImageSetResource,
"undefined");
1125 side.SetColor(faction.GetFactionColor());
1128 RichTextWidget name = RichTextWidget.Cast(factionWidget.FindAnyWidget(
"FactionNameText"));
1130 name.SetText(faction.GetFactionName());
1132 ImageWidget bar = ImageWidget.Cast(factionWidget.FindAnyWidget(
"Bar"));
1134 bar.SetVisible(
false);
1136 RichTextWidget playerCount = RichTextWidget.Cast(factionWidget.FindAnyWidget(
"FactionPlayerCount"));
1140 int playerLimit = faction.GetPlayerLimit();
1141 ImageWidget playerIcon = ImageWidget.Cast(factionWidget.FindAnyWidget(
"PlayerIcon"));
1142 if (playerLimit != 0 && faction.IsPlayable())
1144 if (playerLimit > 0)
1145 playerCount.SetTextFormat(
"#AR-SupportStation_ActionFormat_ItemAmount", faction.GetPlayerCount(), playerLimit);
1147 playerCount.SetText(faction.GetPlayerCount().ToString());
1152 playerIcon.SetVisible(
false);
1154 playerCount.SetText(
"#AR-DeployScreen_NonPlayableFaction");
1162 protected void UpdateFactionPlayerCount(
Faction faction,
int playerCountParam)
1164 SCR_Faction factionScripted = SCR_Faction.Cast(faction);
1165 if (!factionScripted)
1169 if (!m_SortedFactions.Contains(factionScripted) || m_aFactionWidgets.Count() - 1 < m_SortedFactions.Find(factionScripted))
1172 Widget factionWidget = m_aFactionWidgets[m_SortedFactions.Find(factionScripted)];
1176 RichTextWidget playerCount = RichTextWidget.Cast(factionWidget.FindAnyWidget(
"FactionPlayerCount"));
1181 if (playerLimit > 0)
1182 playerCount.SetTextFormat(
"#AR-SupportStation_ActionFormat_ItemAmount", playerCountParam, playerLimit);
1184 playerCount.SetText(playerCountParam.ToString());
1191 protected void UpdateFactionPlayability(
Faction faction,
bool playable)
1193 SCR_Faction factionScripted = SCR_Faction.Cast(faction);
1194 if (!factionScripted)
1197 Widget factionWidget = m_aFactionWidgets[m_SortedFactions.Find(factionScripted)];
1201 RichTextWidget playerCount = RichTextWidget.Cast(factionWidget.FindAnyWidget(
"FactionPlayerCount"));
1205 ImageWidget playerIcon = ImageWidget.Cast(factionWidget.FindAnyWidget(
"PlayerIcon"));
1210 playerIcon.SetVisible(
true);
1212 if (playerLimit >= 0)
1213 playerCount.SetTextFormat(
"#AR-SupportStation_ActionFormat_ItemAmount", factionScripted.
GetPlayerCount(), playerLimit);
1215 playerCount.SetText((factionScripted.
GetPlayerCount()).ToString());
1220 playerIcon.SetVisible(
false);
1222 playerCount.SetText(
"#AR-DeployScreen_NonPlayableFaction");
1228 string GetTitleText()
1230 return m_sTitleText;
1235 string GetBottomTitleText()
1237 return m_sBottomTitleText;