Arma Reforger Explorer
1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Toggle main menu visibility
Loading...
Searching...
No Matches
SCR_LoadSuppliesWaypoint.c
Go to the documentation of this file.
1
class
SCR_LoadSuppliesWaypointClass
:
SCR_SuppliesTransferWaypointClass
2
{
3
}
4
5
class
SCR_LoadSuppliesWaypoint :
SCR_SuppliesTransferWaypoint
6
{
7
[
Attribute
(
"0.5"
,
desc
:
"Ratio of supplies fulfillment to consider load waypoint completed in a case of supply source being empty"
,
params
:
"0 1 0.01"
)]
8
protected
float
m_fLoadFulfillmentThresholdWhenSourceEmpty;
9
10
//------------------------------------------------------------------------------------------------
12
float
GetLoadFulfillmentThresholdWhenSourceEmpty()
13
{
14
return
m_fLoadFulfillmentThresholdWhenSourceEmpty;
15
}
16
17
//------------------------------------------------------------------------------------------------
19
void
SetLoadFulfillmentThresholdWhenSourceEmpty
(
float
value)
20
{
21
m_fLoadFulfillmentThresholdWhenSourceEmpty =
Math
.Clamp(value, 0, 1);
22
}
23
24
//------------------------------------------------------------------------------------------------
25
override
SCR_AIWaypointState
CreateWaypointState
(
SCR_AIGroupUtilityComponent
groupUtilityComp)
26
{
27
return
new
SCR_LoadSuppliesWaypointState
(groupUtilityComp,
this
);
28
}
29
}
30
31
class
SCR_LoadSuppliesWaypointState : SCR_SuppliesTransferWaypointState
32
{
33
//------------------------------------------------------------------------------------------------
34
void
SCR_LoadSuppliesWaypointState(notnull
SCR_AIGroupUtilityComponent
utility,
SCR_AIWaypoint
waypoint)
35
{
36
SCR_LoadSuppliesWaypoint wp = SCR_LoadSuppliesWaypoint.Cast(waypoint);
37
if
(!wp)
38
return
;
39
40
InitSupplyTransfer
(utility, wp,
EResourceGeneratorID
.VEHICLE_LOAD,
EResourceGeneratorID
.DEFAULT,
true
);
41
}
42
43
//------------------------------------------------------------------------------------------------
44
protected
void
Load
()
45
{
46
SCR_BaseGameMode
gamemode =
SCR_BaseGameMode
.Cast(
GetGame
().
GetGameMode
());
47
if
(!gamemode || !gamemode.
IsMaster
())
48
return
;
49
50
SCR_LoadSuppliesWaypoint wp = SCR_LoadSuppliesWaypoint.Cast(
m_Waypoint
);
51
if
(!wp)
52
return
;
53
54
if
(!
m_ResourceComponent
|| !
m_ResourceGenerator
|| !
m_ResourceConsumer
)
55
return
;
56
57
SCR_ResourceContainer
container =
m_ResourceComponent
.GetContainer(
RESOURCE_TYPE
);
58
float
maxResourceValue = container.
GetMaxResourceValue
();
59
60
SCR_ResourceConsumtionResponse
response =
m_ResourceConsumer
.RequestAvailability(maxResourceValue);
61
62
GetResourceValues
(
m_fCurrentResource
,
m_fMaxStoredResource
,
m_fCurrentTransferValue
);
63
64
if
(
m_fCurrentTransferValue
!= 0)
65
{
66
SCR_ResourceComponent baseResourceComponent =
m_Base
.GetResourceComponent();
67
if
(baseResourceComponent && s_OnAITransferedSupplies)
68
s_OnAITransferedSupplies.Invoke(
EResourcePlayerInteractionType
.VEHICLE_LOAD,
m_ResourceComponent
, baseResourceComponent,
RESOURCE_TYPE
,
m_fCurrentTransferValue
,
m_Utility
);
69
70
m_ResourceConsumer
.RequestConsumtion(
m_fCurrentTransferValue
);
71
m_ResourceGenerator
.RequestGeneration(
m_fCurrentTransferValue
);
72
}
73
74
if
(container.
GetResourceValue
() >= container.
GetMaxResourceValue
()
75
|| (
m_ResourceConsumer
.GetAggregatedResourceValue() == 0 && container.
GetResourceValue
() >= container.
GetMaxResourceValue
() * wp.GetLoadFulfillmentThresholdWhenSourceEmpty()))
76
{
77
if
(
m_Utility
&&
m_Utility
.m_Owner)
78
m_Utility
.m_Owner.CompleteWaypoint(
m_Waypoint
);
79
80
}
81
else
82
{
83
// Schedule the next supply load after a delay, unless the container is empty or the truck is full
84
GetGame
().GetCallqueue().CallLater(
Load
, wp.GetTransferDelay() * 1000,
false
);
85
}
86
}
87
88
//------------------------------------------------------------------------------------------------
89
override
void
OnSelected
()
90
{
91
super.OnSelected();
92
Load
();
93
}
94
}
GetGame
ArmaReforgerScripted GetGame()
Definition
game.c:1398
m_Utility
enum SCR_EAIActivityCause m_Utility
m_Waypoint
AIWaypoint m_Waypoint
Definition
SCR_AmbientPatrolSpawnPointComponent.c:48
GetGameMode
SCR_BaseGameMode GetGameMode()
Definition
SCR_BaseGameModeComponent.c:15
SetLoadFulfillmentThresholdWhenSourceEmpty
void SetLoadFulfillmentThresholdWhenSourceEmpty(float value)
Definition
SCR_LoadSuppliesWaypoint.c:19
SCR_ResourceConsumtionResponse
void SCR_ResourceConsumtionResponse(float availableResource=0, float resourceMultiplier=0, float range=0, EResourceReason reasonCode=EResourceReason.UNAVAILABLE)
Definition
SCR_ResourceConsumtionResponse.c:17
EResourceGeneratorID
EResourceGeneratorID
Definition
SCR_ResourceGenerator.c:2
EResourcePlayerInteractionType
EResourcePlayerInteractionType
Definition
SCR_ResourcePlayerControllerInventoryComponent.c:2
desc
UI Textures DeployMenu Briefing conflict_HintBanner_1_UI desc
Definition
SCR_RespawnBriefingComponent.c:17
params
category params
Definition
SCR_SpherePointGeneratorPreviewComponent.c:21
m_ResourceComponent
SCR_ResourceComponent m_ResourceComponent
Definition
SCR_SuppliesTransferWaypoint.c:55
m_fCurrentResource
float m_fCurrentResource
Definition
SCR_SuppliesTransferWaypoint.c:60
RESOURCE_TYPE
SCR_SuppliesTransferWaypoint RESOURCE_TYPE
m_Base
SCR_CampaignMilitaryBaseComponent m_Base
Definition
SCR_SuppliesTransferWaypoint.c:64
m_fCurrentTransferValue
float m_fCurrentTransferValue
Definition
SCR_SuppliesTransferWaypoint.c:61
m_fMaxStoredResource
float m_fMaxStoredResource
Definition
SCR_SuppliesTransferWaypoint.c:59
m_ResourceConsumer
SCR_ResourceConsumer m_ResourceConsumer
Definition
SCR_SuppliesTransferWaypoint.c:57
m_ResourceGenerator
SCR_ResourceGenerator m_ResourceGenerator
Definition
SCR_SuppliesTransferWaypoint.c:56
InitSupplyTransfer
void InitSupplyTransfer(notnull SCR_AIGroupUtilityComponent utility, SCR_SuppliesTransferWaypoint wp, EResourceGeneratorID generatorId, EResourceGeneratorID consumerId, bool isLoad)
Definition
SCR_SuppliesTransferWaypoint.c:69
GetResourceValues
void GetResourceValues(out float currentResource, out float maxResource, out float transferAmount)
Definition
SCR_SuppliesTransferWaypoint.c:163
Math
Definition
Math.c:13
SCR_AIGroupUtilityComponent
Definition
SCR_AIGroupUtilityComponent.c:18
SCR_AIWaypoint
Definition
SCR_AIWaypoint.c:6
SCR_AIWaypoint::CreateWaypointState
SCR_AIWaypointState CreateWaypointState(SCR_AIGroupUtilityComponent groupUtilityComp)
Definition
SCR_AIWaypoint.c:58
SCR_AIWaypointState
Definition
SCR_AIWaypointState.c:7
SCR_BaseGameMode
Definition
SCR_BaseGameMode.c:139
SCR_BaseGameMode::IsMaster
sealed bool IsMaster()
Definition
SCR_BaseGameMode.c:367
SCR_LoadSuppliesWaypointClass
Definition
SCR_LoadSuppliesWaypoint.c:2
SCR_LoadSuppliesWaypointState
Definition
SCR_LoadSuppliesWaypoint.c:32
SCR_LoadSuppliesWaypointState::Load
void Load()
Definition
SCR_LoadSuppliesWaypoint.c:44
SCR_LoadSuppliesWaypointState::OnSelected
override void OnSelected()
Definition
SCR_LoadSuppliesWaypoint.c:89
SCR_ResourceContainer
Definition
SCR_ResourceContainer.c:35
SCR_ResourceContainer::GetResourceValue
float GetResourceValue()
Definition
SCR_ResourceContainer.c:95
SCR_ResourceContainer::GetMaxResourceValue
float GetMaxResourceValue()
Definition
SCR_ResourceContainer.c:101
SCR_SuppliesTransferWaypointClass
Definition
SCR_SuppliesTransferWaypoint.c:2
SCR_SuppliesTransferWaypoint
Definition
SCR_SuppliesTransferWaypoint.c:12
Attribute
SCR_FieldOfViewSettings Attribute
Definition
SendGoalMessage.c:170
scripts
Game
AI
Group
SCR_LoadSuppliesWaypoint.c
Generated by
1.17.0