‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
archetype_robot_interface.gsc
Go to the documentation of this file.
1 #using scripts\shared\ai\archetype_robot;
2 #using scripts\shared\ai\systems\ai_interface;
3 
4 #insert scripts\shared\ai\archetype_robot.gsh;
5 
6 #namespace RobotInterface;
7 
9 {
10  /*
11  * Name: can_be_meleed
12  * Summary: Controls whether other AI will choose to melee the robot.
13  * Initial Value: true
14  * Attribute true: Normal behavior, robots will be meleed when close to their enemy.
15  * Attribute false: Forces other AI to shoot the robot instead of melee them at
16  * close distances.
17  * Example: entity ai::set_behavior_attribute( "can_be_meleed", true );"
18  */
20  "robot",
21  "can_be_meleed",
22  true,
23  ‪array( true, false ) );
24 
25  /*
26  * Name: can_become_crawler
27  * Summary: Controls whether the robot can become a crawler robot. This does not prevent a
28  * robot from having their legs gibbed upon death.
29  * Initial Value: true
30  * Attribute true: Normal behavior, robot can become a crawler.
31  * Attribute false: Robots will not become a crawler.
32  * Example: entity ai::set_behavior_attribute( "can_become_crawler", false );"
33  */
35  "robot",
36  "can_become_crawler",
37  true,
38  ‪array( true, false ) );
39 
40  /*
41  * Name: can_become_rusher
42  * Summary: Controls whether the robot can become a rusher, even when told to become a rusher.
43  * Initial Value: true
44  * Attribute true: Normal behavior, robot can become a rusher.
45  * Attribute false: Robots will not become a rusher, even when told to become a rusher.
46  * Example: entity ai::set_behavior_attribute( "can_become_rusher", true );"
47  */
49  "robot",
50  "can_become_rusher",
51  true,
52  ‪array( true, false ) );
53 
54  /*
55  * Name: can_gib
56  * Summary: Controls whether the robot can gib at all. This should not be turned off in normal gameplay and is needed for cybercom.
57  * Initial Value: true
58  * Attribute true: Normal behavior, robot can gib.
59  * Attribute false: Robots will not gib, unless gibbing is explicitly called on them.
60  * Example: entity ai::set_behavior_attribute( "can_gib", true );"
61  */
63  "robot",
64  "can_gib",
65  true,
66  ‪array( true, false ) );
67 
68  /*
69  * Name: can_melee
70  * Summary: Controls whether the robot is able to melee their enemies. This only pertains
71  * to normal shooting robots.
72  * Initial Value: true
73  * Attribute true: Normal behavior, robot will melee when close to their enemy.
74  * Attribute false: Forces a robot to shoot even when they are within melee distance.
75  * Example: entity ai::set_behavior_attribute( "can_melee", true );"
76  */
78  "robot",
79  "can_melee",
80  true,
81  ‪array( true, false ) );
82 
83  /*
84  * Name: can_initiateaivsaimelee
85  * Summary: Controls whether the robot AI are able to initiate synced melee with their enemies.
86  * Initial Value: true
87  * Attribute true: Normal behavior, will do synced melee when appropriate conditions are met.
88  * Attribute false: Will never initiate synced melee even if it is possible.
89  * Example: entity ai::set_behavior_attribute( "can_initiateaivsaimelee", true );"
90  */
92  "robot",
93  "can_initiateaivsaimelee",
94  true,
95  ‪array( true, false ) );
96 
97  /*
98  * Name: disablesprint
99  * Summary: Controls whether humans will use their sprint locomotion.
100  * Initial Value: false
101  * Attribute true : when set to true, AI's will not use sprint locomotion.
102  * Attribute false : AI will use sprint locomotion when applicable.
103  * Example: entity ai::set_behavior_attribute( "disablesprint", true );
104  */
106  "robot",
107  "disablesprint",
108  false,
109  ‪array( true, false ) );
110 
111  /*
112  * Name: escort_position
113  * Summary: If the robot is in the escort move_mode, this position is used to determine where
114  * the robot should stay close to.
115  * Initial Value: undefined
116  * Attribute: Vector position.
117  * Example: entity ai::set_behavior_attribute( "escort_position", player.origin );"
118  */
120  "robot",
121  "escort_position" );
122 
123  /*
124  * Name: force_cover
125  * Summary: Controls whether robots will forcefully go to cover positions instead
126  * of a mixture of cover and exposed positions.
127  * Initial Value: false
128  * Attribute true: Forces a robot to move to cover positions.
129  * Attribute false: Disables forcing cover positions.
130  * Example: entity ai::set_behavior_attribute( "force_cover", true );"
131  */
133  "robot",
134  "force_cover",
135  false,
136  ‪array( true, false ) );
137 
138  /*
139  * Name: force_crawler
140  * Summary: Converts a robot into a crawler, either by gibbing their legs immediately
141  * or making their legs disappear.
142  * Initial Value: normal
143  * Attribute normal: A normal walking robot, crawlers cannot be turned back into normal
144  * robots.
145  * Attribute gib_legs: Immediately gibs the legs of a robot creating a crawler.
146  * Attribute remove_legs: Makes the legs of the robot disappear, useful for spawning.
147  * Example: entity ai::set_behavior_attribute( "force_crawler", "remove_legs" );"
148  */
150  "robot",
151  "force_crawler",
152  "normal",
153  ‪array( "normal", "gib_legs", "remove_legs" ),
155 
156  /*
157  * Name: move_mode
158  * Summary: Controls how robots choose to move to their goal position.
159  * Initial Value normal
160  * Attribute escort: Forces a robot to move toward their designated escort_position.
161  * Attribute guard: Randomly chooses positions to move to within the current goal radius.
162  * Attribute normal: Adheres to normal movement and combat.
163  * Attribute marching: Walks using a slow forward moving march. Marching robots can only
164  * shoot targets that are facing in front of them.
165  * Attribute rambo: Runs to goal position, allowed to shoot at enemies, but doesn't stop and
166  * fight enemies.
167  * Attribute rusher: Moves toward the player instead of staying at cover or in the open.
168  * Attribute squadmember: Indicates that the robot belongs to a squad.
169  * Example: entity ai::set_behavior_attribute( "move_mode", "rambo" );"
170  */
172  "robot",
173  "move_mode",
174  "normal",
175  ‪array( "escort", "guard", "normal", "marching", "rambo", "rusher", "squadmember" ),
177 
178  /*
179  * Name: phalanx
180  * Summary: Controls whether the robot is in a phalanx formation or not.
181  * This value should be left to the robot_phalanx system to manipulate.
182  * Initial Value: false
183  * Attribute true: Robot is in a phalanx formation.
184  * Attribute false: Robot is not in a phalanx formation.
185  * Example: entity ai::set_behavior_attribute( "phalanx", true );"
186  */
188  "robot",
189  "phalanx",
190  false,
191  ‪array( true, false ) );
192 
193  /*
194  * Name: phalanx_force_stance
195  * Summary: Forces a robot in a phalanx formation to a specific stance when stationary.
196  * This value should be left to the robot_phalanx system to manipulate.
197  * Initial Value: normal
198  * Attribute normal: Uses the default stance.
199  * Attribute stand: Forces the robot to stand.
200  * Attribute crouch: Forces the robot to crouch.
201  * Example: entity ai::set_behavior_attribute( "phalanx_force_stance", "stand" );"
202  */
204  "robot",
205  "phalanx_force_stance",
206  "normal",
207  ‪array( "normal", "stand", "crouch" ) );
208 
209  /*
210  * Name: robot_lights
211  * Summary: Enables or disable the lights attached to the robot.
212  * Initial Value: ROBOT_LIGHTS_ON
213  * Attribute ROBOT_LIGHTS_ON: Enable lights.
214  * Attribute ROBOT_LIGHTS_FLICKER: Enable flickering lights.
215  * Attribute ROBOT_LIGHTS_OFF: Disable lights.
216  * Attribute ROBOT_LIGHTS_DEATH: Play death fx.
217  * * Attribute ROBOT_LIGHTS_OFF: Enable hacked lights.
218  * Example: entity ai::set_behavior_attribute( "robot_lights", ROBOT_LIGHTS_ON );"
219  */
221  "robot",
222  "robot_lights",
226 
227  /*
228  * Name: robot_mini_raps
229  * Summary: Equips a robot with a mini raps they can deploy like a grenade.
230  * Initial Value: false
231  * Attribute true: Gives a mini raps to the robot.
232  * Attribute false: Takes away the mini raps from the robot.
233  * Example: entity ai::set_behavior_attribute( "robot_mini_raps", true );"
234  */
236  "robot",
237  "robot_mini_raps",
238  false,
239  ‪array( true, false ),
241 
242  /*
243  * Name: rogue_allow_predestruct
244  * Summary: If true, allows robots forced into level_2 or level_3 to spawn with destructible pieces missing.
245  * Initial Value: true
246  * Attribute true: Spawns rogue controlled robot predestructed.
247  * Attribute false: Spawn rogue controlled robot without predestructing.
248  * Example: entity ai::set_behavior_attribute( "rogue_allow_predestruct", true );"
249  */
251  "robot",
252  "rogue_allow_predestruct",
253  true,
254  ‪array( true, false ) );
255 
256  /*
257  * Name: rogue_allow_pregib
258  * Summary: If true, allows robots forced into level_2 or level_3 to spawn with limbs missing.
259  * Initial Value: true
260  * Attribute true: Spawns rogue controlled robot pregibbed.
261  * Attribute false: Spawn rogue controlled robot without pregibbing.
262  * Example: entity ai::set_behavior_attribute( "rogue_allow_pregib", true );"
263  */
265  "robot",
266  "rogue_allow_pregib",
267  true,
268  ‪array( true, false ) );
269 
270  /*
271  * Name: rogue_control
272  * Summary: Controls whether or not a robot is rogue controlled. Note that
273  * setting a level lower than the current level has no effect and will be disregarded.
274  * Initial Value: level_0
275  * Attribute level_0: A normal robot, not rogue controlled.
276  * Attribute level_1: Swaps the robot to team three but still lets them shoot like a normal robot.
277  * Attribute forced_level_1: Immediately moves to level_1 without playing an animation.
278  * Attribute level_2: Swaps the robot to team three and makes them melee only.
279  * Attribute forced_level_2: Immediately moves to level_2 without playing an animation.
280  * Attribute level_3: Swaps the robot to team three, makes them melee only, and they explode when
281  * within reach of their enemy.
282  * Attribute forced_level_3: Immediately moves to level_3 without playing an animation.
283  * Example: entity ai::set_behavior_attribute( "rogue_control", "forced_level_1" );
284  */
286  "robot",
287  "rogue_control",
288  "level_0",
289  ‪array( "level_0", "level_1", "forced_level_1", "level_2", "forced_level_2", "level_3", "forced_level_3" ),
291 
292  /*
293  * Name: rogue_control_force_goal
294  * Summary: Forces a rogue controlled robot that is in level_2 or level_3 to move to a position
295  * if the robot is currently unable to path to the player. Once the robot can path to the
296  * player, this value will be ignored and reset to undefined.
297  * Initial Value: undefined
298  * Example: entity ai::set_behavior_attribute( "rogue_control_force_goal", (10, 100, 0) );
299  */
301  "robot",
302  "rogue_control_force_goal",
303  undefined,
305 
306  /*
307  * Name: rogue_control_speed
308  * Summary: Controls how fast a rogue controlled robot moves at.
309  * Initial Value: sprint
310  * Attribute walk: Slow speed walk.
311  * Attribute run: Medium speed walk.
312  * Attribute sprint: Fast sprint.
313  * Example: entity ai::set_behavior_attribute( "rogue_control_speed", "walk" );"
314  */
316  "robot",
317  "rogue_control_speed",
318  "sprint",
319  ‪array( "walk", "run", "sprint" ),
321 
322  /*
323  * Name: rogue_force_explosion
324  * Summary: Causes a level 3 robot to forcefully explode regardless of range to
325  * their enemy.
326  * Initial Value: false
327  * Attribute true: Forces a level 3robot to explode.
328  * Attribute false: Level 3 robot will only explode within range of their enemy.
329  * Example: entity ai::set_behavior_attribute( "rogue_force_explosion", true );"
330  */
332  "robot",
333  "rogue_force_explosion",
334  false,
335  ‪array( true, false ) );
336 
337  /*
338  * Name: shutdown
339  * Summary: When set to true the robot will shutdown, as if they were hit
340  * by an emp.
341  * Initial Value: false
342  * Attribute true: Forces a robot to shutdown.
343  * Attribute false: Returns the robot to normal.
344  * Example: entity ai::set_behavior_attribute( "shutdown", true );"
345  */
347  "robot",
348  "shutdown",
349  false,
350  ‪array( true, false ) );
351 
352  /*
353  * Name: sprint
354  * Summary: Controls whether robots will forcefully sprint while moving,
355  * this prevents shooting while moving.
356  * Initial Value: false
357  * Attribute true: Forces a robot to sprint when moving.
358  * Attribute false: Disables forcing sprint.
359  * Example: entity ai::set_behavior_attribute( "sprint", true );"
360  */
362  "robot",
363  "sprint",
364  false,
365  ‪array( true, false ) );
366 
367  /*
368  * Name: supports_super_sprint
369  * Summary: Allows the robot to use super sprint.
370  * NOTE: This is an MP only feature of robots and should not be used in other modes.
371  * Initial Value: false
372  * Attribute true: Allows the robot to super sprint.
373  * Attribute false: Disables the use of super sprint.
374  * Example: entity ai::set_behavior_attribute( "supports_super_sprint", true );"
375  */
377  "robot",
378  "supports_super_sprint",
379  false,
380  ‪array( true, false ) );
381 
382  /*
383  * Name: traversals
384  * Summary: Controls how robots handle traversals, either through animations
385  * or procedurally calculating a trajectory.
386  * Initial Value: normal
387  * Attribute normal: Animated traverals, only normal AI traverals and custom traverals.
388  * Attribute procedural: Procedurally created trajectory, supports nearly any possible traveral.
389  * Example: entity ai::set_behavior_attribute( "traversals", "normal" );"
390  */
392  "robot",
393  "traversals",
394  "normal",
395  ‪array( "normal", "procedural" ),
397 }
‪robotTraversalAttributeCallback
‪function robotTraversalAttributeCallback(entity, attribute, oldValue, value)
Definition: archetype_robot.gsc:3907
‪rogueControlAttributeCallback
‪function rogueControlAttributeCallback(entity, attribute, oldValue, value)
Definition: archetype_robot.gsc:3737
‪RegisterMatchedInterface
‪function RegisterMatchedInterface(archetype, attribute, defaultValue, possibleValues, callbackFunction)
Definition: ai_interface.gsc:143
‪ROBOT_LIGHTS_ON
‪#define ROBOT_LIGHTS_ON
Definition: archetype_robot.gsh:182
‪ROBOT_LIGHTS_DEATH
‪#define ROBOT_LIGHTS_DEATH
Definition: archetype_robot.gsh:186
‪RegisterRobotInterfaceAttributes
‪function RegisterRobotInterfaceAttributes()
Definition: archetype_robot_interface.gsc:8
‪ROBOT_LIGHTS_OFF
‪#define ROBOT_LIGHTS_OFF
Definition: archetype_robot.gsh:184
‪robotMoveModeAttributeCallback
‪function robotMoveModeAttributeCallback(entity, attribute, oldValue, value)
Definition: archetype_robot.gsc:3774
‪ROBOT_LIGHTS_HACKED
‪#define ROBOT_LIGHTS_HACKED
Definition: archetype_robot.gsh:185
‪ROBOT_LIGHTS_FLICKER
‪#define ROBOT_LIGHTS_FLICKER
Definition: archetype_robot.gsh:183
‪rogueControlForceGoalAttributeCallback
‪function rogueControlForceGoalAttributeCallback(entity, attribute, oldValue, value)
Definition: archetype_robot.gsc:3868
‪array
‪function filter array
Definition: array_shared.csc:16
‪RegisterVectorInterface
‪function RegisterVectorInterface(archetype, attribute, defaultValue, callbackFunction)
Definition: ai_interface.gsc:205
‪rogueControlSpeedAttributeCallback
‪function rogueControlSpeedAttributeCallback(entity, attribute, oldValue, value)
Definition: archetype_robot.gsc:3891
‪robotEquipMiniRaps
‪function robotEquipMiniRaps(entity, attribute, oldValue, value)
Definition: archetype_robot.gsc:3666
‪robotLights
‪function robotLights(entity, attribute, oldValue, value)
Definition: archetype_robot.gsc:3685
‪robotForceCrawler
‪function robotForceCrawler(entity, attribute, oldValue, value)
Definition: archetype_robot.gsc:3804