Arma Reforger Explorer 1.7.0.54
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
Loading...
Searching...
No Matches
SCR_AIPickupInventoryItemsBehavior.c
Go to the documentation of this file.
2{
3 protected static const string PICKUP_POSITION_PORT = "PickupPosition";
4 static const string MAGAZINE_WELL_TYPE_PORT = "MagazineWellType";
5
6 ref SCR_BTParam<vector> m_vPickupPosition = new SCR_BTParam<vector>(PICKUP_POSITION_PORT);
7 ref SCR_BTParam<typename> m_MagazineWellType = new SCR_BTParam<typename>(MAGAZINE_WELL_TYPE_PORT);
8
10
11 //-------------------------------------------------------------------------------------------------------------
12 void InitProperties(vector pickupPosition, typename magazineWellType)
13 {
14 m_vPickupPosition.Init(this, pickupPosition);
15 m_MagazineWellType.Init(this, magazineWellType);
16 }
17
18 //---------------------------------------------------------------------------------------------------------------------------------
19 override int GetCause()
20 {
21 return SCR_EAIBehaviorCause.SELF_AID;
22 }
23
24 //-------------------------------------------------------------------------------------------------------------
25 void SCR_AIPickupInventoryItemsBehavior(SCR_AIUtilityComponent utility, SCR_AIActivityBase groupActivity,
26 vector pickupPosition, typename magazineWellType, float priorityLevel = PRIORITY_LEVEL_NORMAL)
27 {
28 SetPriority(SCR_AIActionBase.PRIORITY_BEHAVIOR_PICKUP_INVENTORY_ITEMS);
29 m_fPriorityLevel.m_Value = priorityLevel;
30 m_sBehaviorTree = "{8522FD17F6E08C47}AI/BehaviorTrees/Chimera/Soldier/PickupInventoryItems.bt";
31
32 SetIsUniqueInActionQueue(true);
33 InitProperties(pickupPosition, magazineWellType);
34
35 if (!utility)
36 return;
37
38 float movePriority = GetPriority() + 0.1;
39 m_MoveBehavior = new SCR_AIMoveIndividuallyBehavior(utility, groupActivity, pickupPosition, priority: movePriority, priorityLevel: priorityLevel, radius: 0.3);
40 utility.AddAction(m_MoveBehavior);
41 }
42
43 //------------------------------------------------------------------------------------------------------------------------------------
44 override void OnActionCompleted()
45 {
46 super.OnActionCompleted();
48 m_MoveBehavior.Complete();
49 }
50
51 //------------------------------------------------------------------------------------------------------------------------------------
52 override void OnActionFailed()
53 {
54 super.OnActionFailed();
56 m_MoveBehavior.Fail();
57 }
58}
59
60class SCR_AIGetPickupInventoryItemsParameters: SCR_AIGetActionParameters
61{
62 static ref TStringArray s_aVarsOut = (new SCR_AIPickupInventoryItemsBehavior(null, null, vector.Zero, BaseMagazineWell)).GetPortNames();
63 override TStringArray GetVariablesOut() { return s_aVarsOut; }
64 static override bool VisibleInPalette() { return true; }
65};
ref SCR_BTParam< float > m_fPriorityLevel
enum EAIActionFailReason PRIORITY_LEVEL_NORMAL
TStringArray GetPortNames()
ResourceName m_sBehaviorTree
void SCR_AIActivityBase(SCR_AIGroupUtilityComponent utility, AIWaypoint relatedWaypoint)
void SCR_AIBehaviorBase(SCR_AIUtilityComponent utility, SCR_AIActivityBase groupActivity)
SCR_EAIBehaviorCause
override TStringArray GetVariablesOut()
SCR_AIPickupInventoryItemsBehavior s_aVarsOut
static override bool VisibleInPalette()
void SCR_AIPickupInventoryItemsBehavior(SCR_AIUtilityComponent utility, SCR_AIActivityBase groupActivity, vector pickupPosition, typename magazineWellType, float priorityLevel=PRIORITY_LEVEL_NORMAL)
void InitProperties(vector pickupPosition, typename magazineWellType)
ref SCR_AIMoveIndividuallyBehavior m_MoveBehavior
array< string > TStringArray
Definition Types.c:385