5class SCR_RearmRequestedTaskEntity : SCR_BaseRequestedTaskEntity
12 [
Attribute(
"180",
UIWidgets.EditBox,
"The time [s] it takes to finish a task when arsenal truck is in the zone",
"0 inf")]
26 SCR_XPHandlerComponent comp = SCR_XPHandlerComponent.Cast(
GetGame().
GetGameMode().FindComponent(SCR_XPHandlerComponent));
32 if (!assigneePlayerIDs)
35 foreach (
int playerID : assigneePlayerIDs)
37 comp.AwardXP(playerID,
SCR_EXPRewards.REARM_TASK_COMPLETED, 1.0,
false);
51 #ifdef REARM_TASK_DEBUG
52 PrintFormat(
"Rearm task, arsenal truck registered to the zone");
61 #ifdef REARM_TASK_DEBUG
62 PrintFormat(
"Rearm task, arsenal truck unregistered from the zone");
76 if (!assigneePlayerIDs)
79 foreach (
int playerID : assigneePlayerIDs)
81 IEntity playerEntity =
GetGame().GetPlayerManager().GetPlayerControlledEntity(playerID);
86 if (!compartmentAccess)
93 SCR_EditableVehicleComponent editableVehicle = SCR_EditableVehicleComponent.Cast(vehicle.
FindComponent(SCR_EditableVehicleComponent));
114 SCR_ResourceComponent resourceComponent = SCR_ResourceComponent.FindResourceComponent(vehicle);
115 if (!resourceComponent)
135 SCR_DamageManagerComponent damageManager = SCR_DamageManagerComponent.Cast(vehicle.
FindComponent(SCR_DamageManagerComponent));
136 if (!damageManager || damageManager.GetState() ==
EDamageState.DESTROYED)
142 #ifdef REARM_TASK_DEBUG
143 PrintFormat(
"Rearm task, finish remaining time %1", finishTimestamp.DiffSeconds(currentTime));
146 if (currentTime.Less(finishTimestamp))
159 if (!resourceComponent || !inventoryStorageComponent)
163 if (!arsenalComponent || resourceType !=
EResourceType.SUPPLIES)
170 SCR_ChimeraCharacter character = SCR_ChimeraCharacter.Cast(inventoryStorageComponent.GetOwner());
171 if (!character && inventoryStorageComponent.GetOwner())
172 character = SCR_ChimeraCharacter.Cast(inventoryStorageComponent.GetOwner().GetParent());
174 int requesterPlayerId =
GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(character);
176 #ifdef REARM_TASK_DEBUG
177 PrintFormat(
"Rearm task, OnArsenalItemRequested, playerId:%1 character:%2", requesterPlayerId, character);
190 if (!parent || !action || !actionUser)
193 int playerId =
GetGame().GetPlayerManager().GetPlayerIdFromControlledEntity(actionUser);
205 if (!assigneePlayerIDs)
210 if (assigneePlayerIDs.Contains(playerId))
215 SCR_ResourceComponent resourceComponent = SCR_ResourceComponent.FindResourceComponent(vehicle);
216 if (!resourceComponent)
225 #ifdef REARM_TASK_DEBUG
247 #ifdef REARM_TASK_DEBUG
256 super.EOnInit(owner);
274 if (supportStationManager)
287 if (supportStationManager)
ArmaReforgerScripted GetGame()
ResourceName resourceName
SCR_AttackTaskEntityClass PERIODICAL_CHECK_INTERVAL
SCR_BaseGameMode GetGameMode()
RplComponent m_RplComponent
void OnTaskStateChanged(SCR_Task task, SCR_ETaskState newState)
void SCR_GroupsManagerComponent(IEntityComponentSource src, IEntity ent, IEntity parent)
ref map< IEntity, WorldTimestamp > m_mArsenalTrucksInZone
map for tracking arsenal trucks which got in the zone, <vehicle, serverTimeStamp>
void UnregisterVehicle(IEntity vehicle)
void OnArsenalItemRequested(SCR_ResourceComponent resourceComponent, ResourceName resourceName, IEntity requesterEntity, BaseInventoryStorageComponent inventoryStorageComponent, EResourceType resourceType, int resourceValue)
SCR_GroupsManagerComponent m_GroupsManagerComponent
void RegisterSpentSupplies(IEntity vehicle, int playerId, int supplyCost)
void RegisterVehicle(IEntity vehicle)
void ~SCR_RearmRequestedTaskEntity()
array< int > GetTaskAssigneePlayerIDs()
void SCR_Task(IEntitySource src, IEntity parent)
SCR_TaskSystem m_TaskSystem
void OnSupportStationExecuted(SCR_BaseSupportStationComponent supportStation, ESupportStationType supportStationType, IEntity actionTarget, IEntity actionUser, SCR_BaseUseSupportStationAction action)
proto external Managed FindComponent(typename typeName)
proto external vector GetOrigin()
proto external IEntity GetRootParent()
static SCR_ArsenalComponent FindArsenalComponent(notnull IEntity entity, bool getFromSlotted=true)
int GetSupportStationSuppliesOnUse()
bool HasEntityLabel(EEditableEntityLabel label)
float GetMaxResourceValue()
static OnArsenalItemRequestedInvoker GetOnArsenalItemRequested()
ScriptInvokerBase< SupportStation_OnSupportStationExecuted > GetOnSupportStationExecutedSuccessfully()
static SCR_SupportStationManagerComponent GetInstance()
override void EOnInit(IEntity owner)
proto void PrintFormat(string fmt, void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL, LogLevel level=LogLevel.NORMAL)
SCR_FieldOfViewSettings Attribute