‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
archetype_civilian.gsc
Go to the documentation of this file.
1 #using scripts\shared\ai_shared;
2 #using scripts\shared\ai\archetype_utility;
3 #using scripts\shared\ai\systems\blackboard;
4 #using scripts\shared\ai\systems\animation_state_machine_utility;
5 #using scripts\shared\ai\systems\behavior_state_machine;
6 #using scripts\shared\ai\systems\behavior_tree_utility;
7 #using scripts\shared\ai\systems\ai_interface;
8 #using scripts\shared\spawner_shared;
9 
10 #insert scripts\shared\archetype_shared\archetype_shared.gsh;
11 #insert scripts\shared\ai\systems\blackboard.gsh;
12 #insert scripts\shared\ai\systems\behavior_state_machine.gsh;
13 #insert scripts\shared\ai\systems\behavior_tree.gsh;
14 #insert scripts\shared\ai\systems\behavior.gsh;
15 #insert scripts\shared\shared.gsh;
16 
17 function autoexec ‪main()
18 {
20 }
21 
22 #namespace ArchetypeCivilian;
23 
25 {
26  // ------- SPAWN FUNCTIONS ------------//
29 
30  // register some required ai interface attributes
31  ‪ai::RegisterMatchedInterface( ‪ARCHETYPE_CIVILIAN, "sprint", false, ‪array( true, false ) );
32  ‪ai::RegisterMatchedInterface( ‪ARCHETYPE_CIVILIAN, "panic", false, ‪array( true, false ) );
33 
34  // ------- CIVILIAN ACTIONS -----------//
36  ‪BT_REGISTER_ACTION( "civilianCowerAction", &‪civilianCowerActionInitialize, undefined, undefined );
37 
38  ‪BT_REGISTER_API( "civilianIsPanicked", &‪civilianIsPanicked );
39 
40  ‪BT_REGISTER_API( "civilianPanic", &‪civilianPanic );
41  ‪BSM_REGISTER_API( "civilianPanic", &‪civilianPanic );
42 }
43 
44 function private ‪civilianBlackboardInit() // self = AI
45 {
46  // CREATE BLACKBOARD
48 
49  // CREATE INTERFACE
51 
52  // USE UTILITY BLACKBOARD
54 
55  // CREATE CIVILIAN BLACKBOARD
58 
59  // REGISTER ANIMSCRIPTED CALLBACK
60  self.___ArchetypeOnAnimscriptedCallback = &‪civilianOnAnimscriptedCallback;
61 
62  // ENABLE DEBUGGING IN ODYSSEY
64 }
65 
66 function private ‪archetypeCivilianInit()
67 {
68  entity = self;
69 
70  locomotionTypes = ‪array( "alt1", "alt2", "alt3", "alt4" );
71  altIndex = entity GetEntityNumber() % locomotionTypes.size;
72 
73  ‪Blackboard::SetBlackBoardAttribute( entity, ‪HUMAN_LOCOMOTION_VARIATION, locomotionTypes[ altIndex ] );
74 
75  entity SetAvoidanceMask( "avoid ai" );
76 }
77 
78 function private ‪BB_GetPanic()
79 {
80  if ( ‪ai::GetAiAttribute( self, "panic" ) )
81  return ‪PANIC_YES;
82  return ‪PANIC_NO;
83 }
84 
85 function private ‪civilianOnAnimscriptedCallback( entity )
86 {
87  // UNREGISTER THE BLACKBOARD
88  entity.__blackboard = undefined;
89 
90  // REREGISTER BLACKBOARD
92 }
93 
94 function private ‪civilianMoveActionInitialize( entity, asmStateName )
95 {
97 
98  ‪AnimationStateNetworkUtility::RequestState( entity, asmStateName );
99 
100  return ‪BHTN_RUNNING;
101 }
102 
103 function private ‪civilianMoveActionFinalize( entity, asmStateName )
104 {
106  {
108  }
109 
110  return ‪BHTN_SUCCESS;
111 }
112 
113 function private ‪civilianCowerActionInitialize( entity, asmStateName )
114 {
115  if ( isdefined( entity.node ) )
116  {
117  highestStance = ‪AiUtility::getHighestNodeStance( entity.node );
118  if ( highestStance == "crouch" )
119  {
121  }
122  else
123  {
125  }
126  }
127 
128  ‪AnimationStateNetworkUtility::RequestState( entity, asmStateName );
129 
130  return ‪BHTN_RUNNING;
131 }
132 
133 function private ‪civilianIsPanicked( entity )
134 {
136 }
137 
138 function private ‪civilianPanic( entity )
139 {
140  entity ‪ai::set_behavior_attribute( "panic", true );
141 
142  return true;
143 }
144 
145 // end #namespace ArchetypeCivilian;
‪civilianBlackboardInit
‪function private civilianBlackboardInit()
Definition: archetype_civilian.gsc:44
‪BB_GetPanic
‪function private BB_GetPanic()
Definition: archetype_civilian.gsc:78
‪BT_REGISTER_API
‪#define BT_REGISTER_API(name, function)
Definition: behavior.gsh:1
‪civilianOnAnimscriptedCallback
‪function private civilianOnAnimscriptedCallback(entity)
Definition: archetype_civilian.gsc:85
‪civilianMoveActionFinalize
‪function private civilianMoveActionFinalize(entity, asmStateName)
Definition: archetype_civilian.gsc:103
‪BSM_REGISTER_API
‪#define BSM_REGISTER_API(name, scriptFunction)
Definition: behavior_state_machine.gsh:17
‪RegisterMatchedInterface
‪function RegisterMatchedInterface(archetype, attribute, defaultValue, possibleValues, callbackFunction)
Definition: ai_interface.gsc:143
‪BHTN_RUNNING
‪#define BHTN_RUNNING
Definition: behavior_tree.gsh:9
‪BB_REGISTER_ATTRIBUTE
‪#define BB_REGISTER_ATTRIBUTE(name, defaultValue, getter)
Definition: blackboard.gsh:1
‪civilianPanic
‪function private civilianPanic(entity)
Definition: archetype_civilian.gsc:138
‪SetBlackBoardAttribute
‪function SetBlackBoardAttribute(entity, attributeName, attributeValue)
Definition: blackboard.gsc:56
‪GetBlackBoardAttribute
‪function GetBlackBoardAttribute(entity, attributeName)
Definition: blackboard.gsc:32
‪RegisterUtilityBlackboardAttributes
‪function RegisterUtilityBlackboardAttributes()
Definition: archetype_utility.gsc:139
‪HUMAN_LOCOMOTION_VARIATION
‪#define HUMAN_LOCOMOTION_VARIATION
Definition: blackboard.gsh:129
‪STANCE
‪#define STANCE
Definition: blackboard.gsh:36
‪DESIRED_STANCE
‪#define DESIRED_STANCE
Definition: blackboard.gsh:18
‪main
‪function autoexec main()
Definition: archetype_civilian.gsc:17
‪civilianMoveActionInitialize
‪function private civilianMoveActionInitialize(entity, asmStateName)
Definition: archetype_civilian.gsc:94
‪ENABLE_BLACKBOARD_DEBUG_TRACKING
‪#define ENABLE_BLACKBOARD_DEBUG_TRACKING(self)
Definition: blackboard.gsh:7
‪DEFAULT_MOVEMENT_STANCE
‪#define DEFAULT_MOVEMENT_STANCE
Definition: blackboard.gsh:281
‪civilianIsPanicked
‪function private civilianIsPanicked(entity)
Definition: archetype_civilian.gsc:133
‪PANIC
‪#define PANIC
Definition: blackboard.gsh:214
‪PANIC_NO
‪#define PANIC_NO
Definition: blackboard.gsh:216
‪RegisterBehaviorScriptFunctions
‪function RegisterBehaviorScriptFunctions()
Definition: archetype_civilian.gsc:24
‪array
‪function filter array
Definition: array_shared.csc:16
‪GetAiAttribute
‪function GetAiAttribute(entity, attribute)
Definition: ai_interface.gsc:118
‪archetypeCivilianInit
‪function private archetypeCivilianInit()
Definition: archetype_civilian.gsc:66
‪ARCHETYPE_CIVILIAN
‪#define ARCHETYPE_CIVILIAN
Definition: archetype_shared.gsh:13
‪BHTN_SUCCESS
‪#define BHTN_SUCCESS
Definition: behavior_tree.gsh:8
‪add_archetype_spawn_function
‪function add_archetype_spawn_function(archetype, spawn_func)
Definition: ai_shared.csc:23
‪set_behavior_attribute
‪function set_behavior_attribute(attribute, value)
Definition: ai_shared.gsc:159
‪CreateBlackBoardForEntity
‪function CreateBlackBoardForEntity(entity)
Definition: blackboard.gsc:77
‪PANIC_YES
‪#define PANIC_YES
Definition: blackboard.gsh:215
‪STANCE_CROUCH
‪#define STANCE_CROUCH
Definition: blackboard.gsh:274
‪RequestState
‪function RequestState(entity, stateName)
Definition: animation_state_machine_utility.gsc:8
‪getHighestNodeStance
‪function getHighestNodeStance(node)
Definition: archetype_utility.gsc:2059
‪BT_REGISTER_ACTION
‪#define BT_REGISTER_ACTION(name, initFunction, updateFunction, terminateFunction)
Definition: behavior.gsh:4
‪CreateInterfaceForEntity
‪function CreateInterfaceForEntity(entity)
Definition: ai_interface.gsc:110
‪civilianCowerActionInitialize
‪function private civilianCowerActionInitialize(entity, asmStateName)
Definition: archetype_civilian.gsc:113