5 [
Attribute(defvalue:
"1",
desc:
"Can show other squad leaders to this squad leader")]
8 [
Attribute(defvalue:
"1",
desc:
"Can show other squad leaders to this squad member, member will see only own leader")]
28 [
RplProp(onRplName:
"OnPlayerIdUpdate")]
29 protected int m_PlayerID;
31 bool m_bDoGroupTextUpdate;
32 protected bool m_bDoGroupSymbolUpdate;
35 protected bool m_bDoLocalVisibilityUpdate;
42 m_bDoLocalVisibilityUpdate =
true;
55 if (!
System.IsConsoleApp())
66 m_bDoGroupTextUpdate =
true;
82 m_Group = comp.GetPlayerGroup(m_PlayerID);
93 IEntity ent =
GetGame().GetPlayerManager().GetPlayerControlledEntity(m_PlayerID);
97 if (!charController.IsDead())
120 string company, platoon, squad, character, format;
121 m_Group.GetCallsigns(company, platoon, squad, character, format);
126 string flag =
m_Group.GetGroupFlag();
127 if (flag ==
string.Empty)
133 if (m_SquadLeaderWidgetComp)
134 m_SquadLeaderWidgetComp.SetImage(m_sImageset, m_sIconName);
137 m_bDoGroupSymbolUpdate =
false;
153 if (m_SquadLeaderWidgetComp)
154 m_SquadLeaderWidgetComp.SetText(
m_sText);
156 m_bDoGroupTextUpdate =
false;
176 m_bDoLocalVisibilityUpdate =
false;
178 PlayerController pController =
GetGame().GetPlayerController();
182 if (m_PlayerID == pController.GetPlayerId())
193 SCR_AIGroup localPlayerGroup = groupManager.GetPlayerGroup(pController.GetPlayerId());
194 if (!localPlayerGroup)
200 bool isLocalPlayerLeader = localPlayerGroup.
IsPlayerLeader(pController.GetPlayerId());
220 if (SCR_FactionCommanderPlayerComponent.IsLocalPlayerCommander())
223 SCR_MapMarkerSquadLeaderClass prefabData = SCR_MapMarkerSquadLeaderClass.Cast(
GetPrefabData());
233 if (SCR_FactionCommanderPlayerComponent.IsLocalPlayerCommander())
236 SCR_MapMarkerSquadLeaderClass prefabData = SCR_MapMarkerSquadLeaderClass.Cast(
GetPrefabData());
249 m_bDoLocalVisibilityUpdate =
true;
258 m_bDoLocalVisibilityUpdate =
true;
267 m_bDoLocalVisibilityUpdate =
true
274 m_bDoGroupTextUpdate =
true;
282 m_bDoGroupSymbolUpdate =
true;
290 super.OnMapLayerChanged(layerID);
292 if (m_SquadLeaderWidgetComp)
293 m_SquadLeaderWidgetComp.SetLayerID(layerID);
299 RplComponent rplComp = RplComponent.Cast(
FindComponent(RplComponent));
300 if (rplComp.IsOwner())
302 IEntity ent =
GetGame().GetPlayerManager().GetPlayerControlledEntity(m_PlayerID);
309 if (!localFaction || localFaction.IsFactionEnemy(markerFaction))
312 super.OnCreateMarker();
314 m_bDoGroupSymbolUpdate =
true;
315 m_bDoGroupTextUpdate =
true;
336 if (m_bDoLocalVisibilityUpdate)
344 if (m_bDoGroupSymbolUpdate)
347 if (m_bDoGroupTextUpdate)
350 if (m_SquadLeaderWidgetComp.m_bIsHovered)
357 super.EOnInit(owner);
365 SCR_FactionCommanderHandlerComponent factionCommanderHandler = SCR_FactionCommanderHandlerComponent.GetInstance();
366 if (factionCommanderHandler)
379 SCR_FactionCommanderHandlerComponent factionCommanderHandler = SCR_FactionCommanderHandlerComponent.GetInstance();
380 if (factionCommanderHandler)
ArmaReforgerScripted GetGame()
RplMode
Mode of replication.
SCR_AIGroupSettingsComponentClass m_Group
SCR_CacheNoteComponentClass ScriptComponentClass RplProp()] protected ref array< string > m_aLines
void OnFactionCommanderChanged(SCR_Faction faction, int commanderPlayerId)
enum SCR_ECompassType EntityEditorProps(category:"GameScripted/Gadgets", description:"Compass", color:"0 0 255 255")
Prefab data class for compass component.
void OnFactionCommanderChanged()
void SCR_FactionManager(IEntitySource src, IEntity parent)
void SCR_GroupsManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
void UpdateLocalVisibility()
Check whether we are in a squad and if it should be visible on map.
void ~SCR_MapMarkerSquadLeader()
void OnPlayerAdded(SCR_AIGroup group, int playerId)
void OnUserSettingsChanged()
Update names when user settings are changed (f.e. xbox UGC).
bool CanMemberSeeOtherLeaders()
void UpdatePlayerAffiliation()
Check whether we are in a squad and if it should be visible on map.
bool CanLeaderSeeOtherLeaders()
void OnPlayerLeaderChanged(int groupID, int playerId)
void UpdateGroupMilitarySymbol()
Set military symbol image, can change during lifetime.
void UpdateGroupText()
Set group text, can change during lifetime.
void OnPlayerIdUpdate()
Rpl event when m_iPlayerID is updated.
void SetPlayerID(int playerID)
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
proto external Managed FindComponent(typename typeName)
proto external EntityPrefabData GetPrefabData()
bool IsPlayerLeader(int playerID)
static ScriptInvoker GetOnPlayerLeaderChanged()
static ScriptInvoker GetOnPlayerAdded()
static ScriptInvoker GetOnFlagSelected()
bool IsPlayerInGroup(int playerID)
ResourceName GetGroupFlagImageSet()
ResourceName GetFlagName(int index)
static string GetTranslatedGroupNameAndRoleName(notnull SCR_AIGroup group)
void OnMapLayerChanged(int layerID)
void EOnInit(IEntity owner)
void SetTarget(IEntity target)
Set entity this marker is tracking.
void OnUpdate()
Called from SCR_MapMarkerManagerComponent.
void SetLocalVisible(bool state)
void SetGlobalVisible(bool state)
void SetText(string text)
void OnCreateMarker()
Fetch marker definition from config & create widget.
void SetImage(string imageset, string icon)
Squad leader marker entry.
void RegisterMarker(SCR_MapMarkerSquadLeader marker, SCR_AIGroup group)
Register marker here so it can be fetched from the map.
void UnregisterMarker(SCR_AIGroup group)
bool m_bCanMemberSeeOtherLeaders
bool CanLeaderSeeOtherLeaders()
bool m_bCanLeaderSeeOtherLeaders
bool CanMemberSeeOtherLeaders()
void UpdateGroupInfoPosition(int screenX, int screenY)
void SetGroupActive(bool state, string factionName=string.Empty)
SCR_FieldOfViewSettings Attribute
proto external PlayerController GetPlayerController()
proto external int GetPlayerId()