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_AIActivityIllumFlareFeature.c
Go to the documentation of this file.
1
class
SCR_AIActivityIllumFlareFeature
:
SCR_AIActivityFeatureBase
2
{
3
static
bool
GetAgentIllumWeaponAndMuzzle(
SCR_AIInfoComponent
infoComp, out
BaseWeaponComponent
weaponComponent, out
BaseMagazineComponent
magazineComponent, out
int
muzzleId)
4
{
5
if
(!infoComp)
6
return
false
;
7
8
SCR_AICombatComponent combatComp = infoComp.
GetCombatComponent
();
9
if
(!combatComp)
10
return
false
;
11
12
// Find illum mags
13
EAICombatPropertiesComponentTraits
traits =
EAICombatPropertiesComponentTraits
.BALLISTIC_ILLUMINATION;
14
magazineComponent = combatComp.m_WeaponTargetSelector.FindMagazineWithTraits(traits,
false
);
15
if
(!magazineComponent)
16
return
false
;
17
18
BaseMagazineWell
magWell = magazineComponent.GetMagazineWell();
19
20
if
(!magWell)
21
return
false
;
22
23
typename
magWellType = magWell.Type();
24
muzzleId = -1;
25
weaponComponent = combatComp.m_WeaponTargetSelector.FindWeaponAndMuzzleForMagazineWell(magWellType,
false
, muzzleId);
26
27
return
weaponComponent && muzzleId != -1;
28
}
29
30
//-------------------------------------------------------------------------------------
31
bool
Execute(notnull
SCR_AIGroupUtilityComponent
groupUtility,
vector
targetPosition,
SCR_AIActivityBase
activity)
32
{
33
BaseWeaponComponent
weaponComponent;
34
BaseMagazineComponent
magazineComponent;
35
int
muzzleId;
36
bool
agentFound;
37
SCR_ChimeraAIAgent
agent;
38
39
foreach
(
SCR_AIInfoComponent
infoComp: groupUtility.m_aInfoComponents)
40
{
41
agent =
SCR_ChimeraAIAgent
.Cast(infoComp.GetOwner());
42
if
(!agent)
43
continue
;
44
45
// Ignore agents that are not "available", considered combat ready
46
if
(!
IsAgentAvailable
(agent))
47
continue
;
48
49
agentFound =
SCR_AIActivityIllumFlareFeature
.GetAgentIllumWeaponAndMuzzle(infoComp, weaponComponent, magazineComponent, muzzleId);
50
if
(agentFound)
51
break
;
52
}
53
54
if
(agentFound)
55
{
56
AICommunicationComponent comms = groupUtility.m_Owner.GetCommunicationComponent();
57
if
(!comms)
58
return
false
;
59
60
// Everything is set, now we will adjust target position and send order to agent
61
IEntity
character = agent.GetControlledEntity();
62
if
(character)
63
{
64
// Adjust target position for UGL flares
65
vector
position
= character.
GetOrigin
();
66
vector
direction
=
vector
.Direction(
position
, targetPosition).Normalized();
67
targetPosition =
position
+ (
direction
*
Math
.RandomFloat(150, 170));
68
targetPosition[1] = targetPosition[1] +
Math
.RandomFloat(60, 90);
69
}
70
71
SCR_AIMessage_FireIllumFlareAt
msg =
SCR_AIMessage_FireIllumFlareAt
.Create(targetPosition);
72
msg.m_RelatedGroupActivity = activity;
73
msg.m_fPriorityLevel = SCR_AIActionBase.PRIORITY_BEHAVIOR_THROW_GRENADE;
74
msg.SetReceiver(agent);
75
comms.RequestBroadcast(msg, agent);
76
77
return
true
;
78
}
79
80
return
false
;
81
}
82
}
EAICombatPropertiesComponentTraits
EAICombatPropertiesComponentTraits
Definition
EAICombatPropertiesComponentTraits.c:3
SCR_AIActivityBase
void SCR_AIActivityBase(SCR_AIGroupUtilityComponent utility, AIWaypoint relatedWaypoint)
Definition
SCR_AIActivity.c:44
direction
vector direction
Definition
SCR_DestructibleTreeV2.c:31
position
vector position
Definition
SCR_DestructibleTreeV2.c:30
BaseMagazineComponent
Definition
BaseMagazineComponent.c:13
BaseMagazineWell
Definition
BaseMagazineWell.c:13
BaseWeaponComponent
Definition
BaseWeaponComponent.c:13
IEntity
Definition
IEntity.c:13
IEntity::GetOrigin
proto external vector GetOrigin()
Math
Definition
Math.c:13
SCR_AIActivityFeatureBase
Definition
SCR_AIActivityFeatureBase.c:2
SCR_AIActivityFeatureBase::IsAgentAvailable
bool IsAgentAvailable(SCR_ChimeraAIAgent agent)
Definition
SCR_AIActivityFeatureBase.c:4
SCR_AIActivityIllumFlareFeature
Definition
SCR_AIActivityIllumFlareFeature.c:2
SCR_AIGroupUtilityComponent
Definition
SCR_AIGroupUtilityComponent.c:18
SCR_AIInfoComponent
Definition
SCR_AIInfoComponent.c:46
SCR_AIInfoComponent::GetCombatComponent
SCR_AICombatComponent GetCombatComponent()
Definition
SCR_AIInfoComponent.c:183
SCR_AIMessage_FireIllumFlareAt
Definition
SCR_AIMessage.c:689
SCR_ChimeraAIAgent
Definition
SCR_ChimeraAIAgent.c:6
vector
Definition
vector.c:13
scripts
Game
AI
Behavior
ActivityFeatures
SCR_AIActivityIllumFlareFeature.c
Generated by
1.17.0