‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
archetype_robot.gsh
Go to the documentation of this file.
1 //
3 // Tweakables
4 //
6 
7 // Chance that a destructible piece will gib off when the robot is
8 // killed, regardless of hitlocation, this applies to all pieces. (0, 1)
9 #define ROBOT_DESTRUCT_DEATH_CHANCE 0.2
10 
11 // Maximum number of destructible pieces that will randomly gib off
12 // when the robot is killed.
13 #define ROBOT_DESTRUCT_MAX_DEATH_PIECES 2
14 
15 // Percentage of health before robot arms and head can be gibbed off.
16 // Valid float range (0, 1)
17 #define ROBOT_GIB_HEALTH_THRESHOLD 0.75
18 
19 // Chance the robot's head will gib off when killed with a headshot.
20 // Valid float range (0, 1)
21 #define ROBOT_GIB_HEAD_HEADSHOT_CHANCE 1
22 
23 // Chance the robot's head will gib off when damaged with an explosion.
24 // Valid float range (0, 1)
25 #define ROBOT_GIB_HEAD_EXPLOSION_CHANCE 0.5
26 
27 // Chance the robot's head will gib off when dealth a fatal blow.
28 #define ROBOT_GIB_HEAD_DEATH_CHANCE 0.25
29 
30 // Percentage of health before the robots leg can be gibbed off. (0, 1)
31 #define ROBOT_GIB_LEG_HEALTH_THRESHOLD 0.25
32 
33 // Chance the robot's legs will gib off when killed with a leg shot.
34 // Valid float range (0, 1)
35 #define ROBOT_GIB_LEGS_CHANCE 1
36 
37 // Chance the robot's legs will gib off randomly when killed (0, 1)
38 #define ROBOT_GIB_LEGS_DEATH_CHANCE 0.25
39 
40 // Chance the robot's legs will gib off when killed with an explosion.
41 // Valid float range (0, 1)
42 #define ROBOT_GIB_LEGS_EXPLOSION_CHANCE 0.5
43 
44 // Chance the robot's limb will gib off when killed with an explosion. (0, 1)
45 #define ROBOT_GIB_LIMB_EXPLOSION_CHANCE 0.25
46 
47 // Chance the robot's limb will gib off when killed with a limb shot. (0, 10
48 #define ROBOT_GIB_LIMB_DEATH_CHANCE 0.25
49 
50 // Chance the robot will choose a cover position over an exposed position.
51 #define ROBOT_CHOOSE_COVER_CHANCE 0.75
52 
53 // Minimum amount of time in seconds robots will step out of cover for.
54 #define MIN_EXPOSED_TIME 4
55 
56 // Maximum amount of time in seconds robots will step out of cover for.
57 #define MAX_EXPOSED_TIME 8
58 
59 // Damage modifier when robots are shot in the head.
60 #define ROBOT_HEADSHOT_MULTIPLIER 0.5
61 
62 // Damage modifier when robots are shot in the back.
63 #define ROBOT_BACKSHOT_MULTIPLIER 2
64 
65 // Time in milliseconds robots will remain exposed after being shot when popping out of cover.
66 #define ROBOT_RESUME_COVER_TIME 4000
67 
68 // Robot must be within this distance to their enemy to cause them to juke.
69 #define ROBOT_JUKE_MAX_DISTANCE 1200
70 
71 // Robot must be within this distance to their enemy to preemptive juke
72 #define ROBOT_JUKE_PREEMPTIVE_MAX_DISTANCE 600
73 
74 // Robot must be within this distance to their attacker to become a crawler.
75 #define ROBOT_CRAWL_MAX_DISTANCE (600 * 600)
76 
77 #define ROBOT_INVALID_COVER_DISTANCE 240
78 
79 // Robots must be at least this distance away from their enemy to become a rusher.
80 #define ROBOT_RUSHER_DISTANCE_SQ (600 * 600)
81 
82 // Robots within this distance may turn into rushers, if their fellow robot dies.
83 #define ROBOT_RUSHER_NEIGHBOR_DISTANCE_SQ (400 * 400)
84 
85 // Robots' whose enemy is further than this distance will not be considered for rushing.
86 #define ROBOT_RUSHER_MAX_ENEMY_DISTANCE_SQ (1200 * 1200)
87 
88 // Robots will walk to positions even within sprint range if the path is shorter than this.
89 #define ROBOT_WALK_MIN_DISTANCE 240
90 
91 // Robots will start to super sprint outside this distance to their target.
92 #define ROBOT_SUPER_SPRINT_DISTANCE 300
93 
94 // Amount of time robots will stay inactive after being damaged by an emp.
95 #define ROBOT_EMP_SHUTDOWN_TIME 2000
96 
98 //
99 // Robot Grunt Defines
100 //
102 
103 #define ROBOT_HEIGHT 72
104 
105 #define ROBOT_DIAMETER 30
106 
107 #define ROBOT_NAVMESH_TOLERANCE 200
108 
109 #define ROBOT_NAVMESH_MAX_TOLERANCE_LEVELS 4
110 
111 #define ROBOT_OFF_COVER_NODE_MIN_DISTANCE 60
112 
113 #define ROBOT_OFF_COVER_NODE_MAX_DISTANCE 400
114 
115 #define ROBOT_DETONATION_RANGE 60
116 
117 #define ROBOT_DETONATION_INNER_DAMAGE 100
118 
119 #define ROBOT_DETONATION_OUTER_DAMAGE 50
120 
121 #define ROBOT_DETONATION_DAMAGE_TYPE "MOD_EXPLOSIVE"
122 
123 #define ROBOT_POSITION_QUERY_RADIUS 20
124 
125 #define ROBOT_POSITION_QUERY_MOVE_DIST_MAX 120
126 
127 #define ROBOT_MINI_RAPS_MODEL "veh_t7_drone_raps_mini"
128 
129 #define ROBOT_MINI_RAPS_SPAWNER "spawner_bo3_mini_raps"
130 
131 #define ROBOT_MINI_RAPS_LINK_TO_BONE "j_spine4"
132 
133 #define ROBOT_MINI_RAPS_OFFSET_POSITION ( 10, -10, -6 )
134 
135 #define ROBOT_MINI_RAPS_AUTO_DETONATE_MIN_TIME 20
136 
137 #define ROBOT_MINI_RAPS_AUTO_DETONATE_MAX_TIME 30
138 
139 #define ROBOT_PAUSE_TACTICAL_WALK 500
140 
141 #define ROBOT_JUKE_DISTANCE 90
142 
143 #define ROBOT_TACTICAL_JUKE_RADIUS 50
144 
145 #define ROBOT_RUSHER_MIN_RADIUS 150
146 
147 #define ROBOT_RUSHER_MAX_RADIUS 250
148 
149 #define ROBOT_ESCORT_MIN_RADIUS 75
150 
151 #define ROBOT_ESCORT_MAX_RADIUS 150
152 
154 //
155 // Clientfields
156 //
158 
159 #define ROBOT_MIND_CONTROL_CLIENTFIELD "robot_mind_control"
160 #define ROBOT_MIND_CONTROL_BITS 2
161 #define ROBOT_MIND_CONTROL_TYPE "int"
162 #define ROBOT_MIND_CONTROL_LEVEL_0 0
163 #define ROBOT_MIND_CONTROL_LEVEL_1 1
164 #define ROBOT_MIND_CONTROL_LEVEL_2 2
165 #define ROBOT_MIND_CONTROL_LEVEL_3 3
166 
167 #define ROBOT_MIND_CONTROL_EXPLOSION_CLIENTFIELD "robot_mind_control_explosion"
168 #define ROBOT_MIND_CONTROL_EXPLOSION_BITS 1
169 #define ROBOT_MIND_CONTROL_EXPLOSION_TYPE "int"
170 #define ROBOT_MIND_CONTROL_EXPLOSION_OFF 0
171 #define ROBOT_MIND_CONTROL_EXPLOSION_ON 1
172 
173 #define ROBOT_EMP_CLIENTFIELD "robot_EMP"
174 #define ROBOT_EMP_BITS 1
175 #define ROBOT_EMP_TYPE "int"
176 #define ROBOT_EMP_OFF 0
177 #define ROBOT_EMP_ON 1
178 
179 #define ROBOT_LIGHTS_CLIENTFIELD "robot_lights"
180 #define ROBOT_LIGHTS_BITS 3
181 #define ROBOT_LIGHTS_TYPE "int"
182 #define ROBOT_LIGHTS_ON 0
183 #define ROBOT_LIGHTS_FLICKER 1
184 #define ROBOT_LIGHTS_OFF 2
185 #define ROBOT_LIGHTS_HACKED 3
186 #define ROBOT_LIGHTS_DEATH 4
187 
189 //
190 // FX
191 //
193 
194 #define ROBOT_HEAD_GIB_FX "fx_dest_robot_head_sparks"
195 #define ROBOT_HEAD_GIB_FX_FILE "destruct/fx_dest_robot_head_sparks"
196 #define ROBOT_HEAD_GIB_FX_TAG "j_neck"
197 
198 #define ROBOT_MIND_CONTROL_EXPLOSION_FX "fx_exp_robot_stage3_evb"
199 #define ROBOT_MIND_CONTROL_EXPLOSION_FX_FILE "explosions/fx_exp_robot_stage3_evb"
200 #define ROBOT_MIND_CONTROL_EXPLOSION_FX_TAG "j_spineupper"
201 
202 #define ROBOT_EMP_FX "fx_ability_elec_surge_short_robot"
203 #define ROBOT_EMP_FX_FILE "electric/fx_ability_elec_surge_short_robot"
204 #define ROBOT_EMP_FX_TAG "j_spine4"
205 
206 #define ROBOT_FX_BASE(entity) entity.fxdef
207 #define ROBOT_FX_BASE_FLICKER(entity) entity.altfxdef3
208 #define ROBOT_FX_DEATH(entity) entity.deathfxdef
209 #define ROBOT_FX_ROGUE_LEVEL_1(entity) entity.altfxdef1
210 #define ROBOT_FX_ROGUE_LEVEL_1_FLICKER(entity) entity.altfxdef4
211 #define ROBOT_FX_ROGUE_LEVEL_2(entity) entity.altfxdef1
212 #define ROBOT_FX_ROGUE_LEVEL_2_FLICKER(entity) entity.altfxdef4
213 #define ROBOT_FX_ROGUE_LEVEL_3(entity) entity.altfxdef2
214 #define ROBOT_FX_ROGUE_LEVEL_3_FLICKER(entity) entity.altfxdef5