62 if (!navLeft || !navRight)
112 array<float> SpPoints = {};
115 m_PlayerData.FillArrayWithSpecializationPoints(SpPoints);
123 m_PlayerData.FillArrayWithSpecializationPoints(SpPoints,
false);
126 m_PlayerData.PrepareSpecializationProgressionStatsDisplay();
145 if (!specializationProgressWidget || !specializationsPanelWidget)
157 Widget progressLeft = specializationProgressWidget.FindAnyWidget(
"LeftSpecializations");
158 Widget progressRight = specializationProgressWidget.FindAnyWidget(
"RightSpecializations");
160 if (!progressLeft || !progressRight)
170 if (specializationsCount % 2 != 0)
171 specializationsCount += 1;
173 for (i = 0; i < specializationsCount; i++)
176 maxCount =
Math.Max(tempCount, maxCount);
178 if (i < specializationsCount * 0.5)
179 tempWidget = progressLeft;
181 tempWidget = progressRight;
186 for (i = 0; i < maxCount; i++)
213 array<float> EarntPoints;
235 float original =
m_PlayerData.GetSpecializationPoints(n,
false);
236 float minus = EarntPoints[spEnumId] * warCrimes;
237 float progressed = EarntPoints[spEnumId] - minus;
251 for (
int i = 0; i < numStats; i++)
254 SCR_CareerUI.UpdateStatProgressionEntry(
m_aSpecializationsStatsWidgets[i], statsToDisplay[i].GetTitle(), EarntPoints[statsToDisplay[i].GetEnumId()] * warCrimes, EarntPoints[statsToDisplay[i].GetEnumId()], statsToDisplay[i].GetUnits(),
""+statsToDisplay[i].
GetValue());
266 if (n < 0 || n > statWidgetsCount)
272 for (i = 0; i < n; i++)
278 for (i = n; i < statWidgetsCount; i++)
323 if (!SpecializationProgressButton)
346 return SpecializationProgressButton;
380 if (!WarCrimesPanelWidget)
395 Print (
"SCR_CareerSpecializationsUI:FillWarCrimes: War Crimes amount not 0 but Harming Friendlies is 0",
LogLevel.ERROR);
ArmaReforgerScripted GetGame()
RichTextWidget m_twSpecializationProgress
Widget m_wCareerRightSide
void UpdateSpecialization(int specializationId)
void FillSpecializations(SCR_PlayerData playerData, ResourceName statsLayout, ResourceName headerStatsLayout, ResourceName progressionStatsLayout)
void AddProgressButtonHandler(SCR_ButtonSpecializationProgressComponent handler)
void NavRight(SCR_InputButtonComponent handler, string action)
ResourceName m_sSpProgressLayout
void AddLegendButtonHandler(SCR_ButtonLegendComponent handler)
ResourceName m_sStatsLayout
Widget CreateSpecializationProgressButtonWidget(Widget container, int id)
void SpecializationStatsSetVisible(int n)
Makes n stat widgets of the Specialization Panel visible, and the remaining ones invisible.
ResourceName m_sProgressionStatsLayout
SCR_PlayerData m_PlayerData
SCR_InputButtonComponent m_HandlerChangeSpLeft
void SetShowProgression(bool b)
void NavLeft(SCR_InputButtonComponent handler, string action)
SCR_ProgressBarWithSegments m_SpecializationBar
ref array< SCR_ButtonSpecializationProgressComponent > m_aSpProgressButtonHandlers
ref array< SCR_ButtonLegendComponent > m_aSpLegendButtonHandlers
override void HandlerAttached(Widget w)
RichTextWidget m_twSpecializationTitle
ResourceName m_sHeaderStatsLayout
void SetUpSpecializationDisplay()
void UpdateSpecializationPanel(int n)
SCR_SpiderNet m_SpiderNetHandler
SCR_InputButtonComponent m_HandlerChangeSpRight
void UpdateHoveredSpecialization(int specializationId, bool hover)
void SetLeftAndRightUIActivate(bool flag)
ref array< Widget > m_aSpecializationsStatsWidgets
const int SPECIALIZATION_MAX
static SCR_PlayerDataConfigs GetInstance()
static const float SPPOINTS_CONVERSIONPERCENTAGE
string GetSpecializationName(int n)
int GetSpecializationStatsCount(int n)
static const float WARCRIMES_PUNISHMENT
array< ref SCR_PlayerDataSpecializationDisplay > GetSpecializationArray(int n)
int SPECIALIZATIONS_COUNT
static SCR_WLibProgressBarComponent GetProgressBar(string name, Widget parent, bool searchAllChildren=true)
void CreateWarCrimeEntry(SCR_EWarCrimes crime)
proto void Print(void var, LogLevel level=LogLevel.NORMAL)
Prints content of variable to console/log.
LogLevel
Enum with severity of the logging message.
SCR_FieldOfViewSettings Attribute