12 [
Attribute(
"1",
desc:
"Delay (in seconds) to lock player input and display the actual end screen after end screen has faded in")]
15 [
Attribute(
"{144919871D65F121}UI/layouts/HUD/GameOver/EndScreen/EndScreen.layout",
params:
"layout")]
43 return m_GameOverScreenConfig;
68 if (m_GameOverScreenConfig.GetGameOverScreenInfo(
m_iEndGameType, gameOverScreenInfo))
79 Debug.Error2(
"SCR_GameOverScreenManagerComponent",
"StartEndGameFade, could not find FadeUIComponent!");
93 if (!gameOverScreenInfo)
111 world.PauseGameTime(
true);
124 GetGame().GetMenuManager().CloseAllMenus();
154 if (!m_GameOverScreenConfig.GetGameOverScreenInfo(
m_iEndGameType, gameOverScreenInfo))
168 SCR_GameOverScreenUIComponent gameOverScreen =
OpenGameOverScreen(gameOverScreenInfo.
GetGameOverContentLayout(), gameOverScreenInfo, endData, gameOverScreenInfo.
GetTitle(
m_FactionPlayer,
m_aWinningFactions), gameOverScreenInfo.
GetSubtitle(
m_FactionPlayer,
m_aWinningFactions), gameOverScreenInfo.
GetDebriefing(
m_FactionPlayer,
m_aWinningFactions), gameOverScreenInfo.
GetImage(
m_FactionPlayer,
m_aWinningFactions), gameOverScreenInfo.
GetIcon(
m_FactionPlayer,
m_aWinningFactions), gameOverScreenInfo.
GetVignetteColor(
m_FactionPlayer,
m_aWinningFactions), gameOverScreenInfo.
GetTitleParam(
m_FactionPlayer,
m_aWinningFactions), gameOverScreenInfo.
GetSubtitleParam(
m_FactionPlayer,
m_aWinningFactions), gameOverScreenInfo.
GetDebriefingParam(
m_FactionPlayer,
m_aWinningFactions));
170 return gameOverScreen;
177 SCR_GameOverScreenUIComponent gameOverScreen =
OpenGameOverScreen(gameOverScreenInfo.
GetGameOverContentLayout(), gameOverScreenInfo, endData, gameOverScreenInfo.
GetTitle(
m_iPlayerId,
m_aWinningPlayers), gameOverScreenInfo.
GetSubtitle(
m_iPlayerId,
m_aWinningPlayers), gameOverScreenInfo.
GetDebriefing(
m_iPlayerId,
m_aWinningPlayers), gameOverScreenInfo.
GetImage(
m_iPlayerId,
m_aWinningPlayers), gameOverScreenInfo.
GetIcon(
m_iPlayerId,
m_aWinningPlayers), gameOverScreenInfo.
GetVignetteColor(
m_iPlayerId,
m_aWinningPlayers), gameOverScreenInfo.
GetTitleParam(
m_iPlayerId,
m_aWinningPlayers), gameOverScreenInfo.
GetSubtitleParam(
m_iPlayerId,
m_aWinningPlayers), gameOverScreenInfo.
GetDebriefingParam(
m_iPlayerId,
m_aWinningPlayers));
179 return gameOverScreen;
188 return gameOverScreen;
194 return gameOverScreen;
216 FactionManager factionManager =
GetGame().GetFactionManager();
228 array<int> winningFactionIds = {};
229 endData.GetFactionWinnerIds(winningFactionIds);
231 if (winningFactionIds)
235 foreach (
int id: winningFactionIds)
237 factionVictor = factionManager.GetFactionByIndex(
id);
257 if (scrFactionManager)
270 array<Faction> factions = {};
271 int count =
GetGame().GetFactionManager().GetFactionsList(factions);
274 for (
int i = count - 1; i >= 0; i--)
278 factions.RemoveOrdered(i);
281 if (factions.Count() == 2)
292 else if (scoreB > scoreA)
332 if (isFactionVictory)
336 else if (factionsVictor.Contains(factionPlayer))
343 if (winningPlayers.Contains(playerId))
353 if (isFactionVictory)
357 else if (factionsVictor.Contains(factionPlayer))
364 if (winningPlayers.Contains(playerId))
373 if (isFactionVictory)
396 else if (factionsVictor.Contains(factionPlayer))
440 SCR_GameOverScreenUIComponent OpenGameOverScreen(
ResourceName contentLayout,
SCR_BaseGameOverScreenInfo gameOverInfo,
SCR_GameModeEndData endData,
LocalizedString title =
string.Empty,
LocalizedString subtitle =
string.Empty,
LocalizedString debriefing =
string.Empty,
ResourceName imageTexture =
ResourceName.Empty,
ResourceName icon =
ResourceName.Empty,
Color vignetteColor = null,
string titleParam =
string.Empty,
string subtitleParam =
string.Empty,
string debriefingParam =
string.Empty)
454 Widget screen =
GetGame().GetWorkspace().CreateWidgets(gameOverscreen, menu.GetRootWidget());
458 if (screenUIComponent)
460 SCR_GameOverScreenUIContentData content =
new SCR_GameOverScreenUIContentData(contentLayout, gameOverInfo, endData, title, subtitle, debriefing, imageTexture, icon, vignetteColor, titleParam, subtitleParam, debriefingParam);
464 return screenUIComponent;
481 gameOverInfo = m_GameOverScreenConfig.GetGameOverInfo(
EGameOverTypes.EDITOR_NEUTRAL);
492 gameOverInfo = m_GameOverScreenConfig.GetGameOverInfo(
EGameOverTypes.NEUTRAL);
509 if (!optionalEditorParam || !optionalEditorParam.m_bNeedsPlayableFactions)
572class SCR_GameOverScreenUIContentData
582 Color m_cVignetteColor;
583 string m_sTitleParam;
584 string m_sSubtitleParam;
585 string m_sDebriefingParam;
601 void SCR_GameOverScreenUIContentData(
ResourceName gameOverLayout,
SCR_BaseGameOverScreenInfo gameOverInfo,
SCR_GameModeEndData endGameData,
LocalizedString title =
string.Empty,
LocalizedString subtitle =
string.Empty,
LocalizedString debriefing =
string.Empty,
ResourceName imageTexture =
ResourceName.Empty,
ResourceName icon =
ResourceName.Empty,
Color vignetteColor = null,
string titleParam =
string.Empty,
string subtitleParam =
string.Empty,
string debriefingParam =
string.Empty)
603 m_sGameOverLayout = gameOverLayout;
604 m_GameOverInfo = gameOverInfo;
605 m_EndGameData = endGameData;
607 m_sSubtitle = subtitle;
608 m_sDebriefing = debriefing;
609 m_sImageTexture = imageTexture;
611 m_cVignetteColor = vignetteColor;
612 m_sTitleParam = titleParam;
613 m_sSubtitleParam = subtitleParam;
614 m_sDebriefingParam = debriefingParam;
class RestAPIHelper< JsonApiStruct T > content
ArmaReforgerScripted GetGame()
SCR_HUDManagerComponent GetHUDManager()
enum EAIGroupCombatMode ComponentEditorProps(category:"GameScripted/AI", description:"Component for utility AI system for groups")
override void OnGameModeEnd(SCR_GameModeEndData data)
SCR_BaseGameMode GetGameMode()
void SCR_BaseGameModeComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
Get all prefabs that have the spawner data
void SCR_FactionManager(IEntitySource src, IEntity parent)
SCR_GameOverScreenUIComponent ShowGameOverScreen(SCR_GameModeEndData endData=null)
EGameOverTypes m_iEditorSetGameOverType
void SetGameOverVariables(SCR_GameModeEndData endData=null)
bool m_bListeningToEditorCalledEndGame
ref array< Faction > m_aWinningFactions
void OnInitDelayedEndGame()
void SetEditorGameOverFactions(notnull array< int > factions)
ResourceName m_sGameOverScreenBasePrefab
ref array< int > m_aEditorSetFactions
EGameOverTypes GetGameOverType(int endReason, int playerId, array< int > winningPlayers, Faction factionPlayer, array< Faction > factionsVictor, bool isFactionVictory)
SCR_GameOverScreenUIComponent OpenGameOverScreen(ResourceName contentLayout, SCR_BaseGameOverScreenInfo gameOverInfo, SCR_GameModeEndData endData, LocalizedString title=string.Empty, LocalizedString subtitle=string.Empty, LocalizedString debriefing=string.Empty, ResourceName imageTexture=ResourceName.Empty, ResourceName icon=ResourceName.Empty, Color vignetteColor=null, string titleParam=string.Empty, string subtitleParam=string.Empty, string debriefingParam=string.Empty)
float m_fShowEndscreenDelay
EGameOverTypes GetCurrentGameOverType()
void OnEditorEndGameApplyDelayDone()
EGameOverTypes m_iEndGameType
void SetGameOverScreenOverWrite(ResourceName overWriteLayout)
ResourceName m_sGameOverScreenOverwritePrefab
void OnEndScreenFadeDone(SCR_FadeUIComponent fadeComponent, bool isFadeIn)
SCR_GameOverScreenConfig GetGameOverConfig()
bool m_bIsPlayingGameOverAudio
void SetEditorGameOverType(EGameOverTypes gameOverType)
ref array< int > m_aWinningPlayers
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
void EndGameMode(SCR_GameModeEndData endData)
SCR_BaseScoringSystemComponent GetScoringSystemComponent()
SCR_GameModeEndData GetEndGameData()
string GetTitleParam(Faction factionPlayer, array< Faction > factionsOther)
string GetSubtitleParam(Faction factionPlayer, array< Faction > factionsOther)
void GameOverUICustomization(SCR_GameOverScreenUIComponent gameOverUI, Faction factionPlayer, array< Faction > factionsOther)
ResourceName GetBaseGameOverScreenOverwrite()
Returns whether game over layout should overwrite whole gameover screen.
string GetSubtitle(Faction factionPlayer, array< Faction > factionsOther)
string GetTitle(Faction factionPlayer, array< Faction > factionsOther)
SCR_BaseGameOverScreenInfoEditor GetEditorOptionalParams()
Color GetVignetteColor(Faction factionPlayer, array< Faction > factionsOther)
string GetOneShotAudio(Faction factionPlayer, array< Faction > factionsOther)
string GetDebriefingParam(Faction factionPlayer, array< Faction > factionsOther)
string GetDebriefing(Faction factionPlayer, array< Faction > factionsOther)
ResourceName GetImage(Faction factionPlayer, array< Faction > factionsOther)
ResourceName GetGameOverContentLayout()
ResourceName GetIcon(Faction factionPlayer, array< Faction > factionsOther)
bool PauseGameOnGameOverScreen()
Returns whether game should be paused with Game over screen.
int GetFactionScore(notnull Faction faction)
ScriptInvoker GetOnFadeDone()
void FadeIn(bool setOpacityZero=true)
Handles the showing of end screen and has a config with gameover screens.
void InitGameOverScreen(SCR_GameOverScreenUIContentData endScreenUIContent)
void SetVisibleLayers(EHudLayers layers=-1)
static SCR_HUDManagerComponent GetHUDManager()
EHudLayers GetVisibleLayers()
Widget CreateLayout(ResourceName path, EHudLayers layer, int zOrder=0)
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
proto external PlayerController GetPlayerController()