1 /*
2 ===========================================================================
3 
4 Return to Castle Wolfenstein single player GPL Source Code
5 Copyright (C) 1999-2010 id Software LLC, a ZeniMax Media company.
6 
7 This file is part of the Return to Castle Wolfenstein single player GPL Source Code (“RTCW SP Source Code”).
8 
9 RTCW SP Source Code is free software: you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation, either version 3 of the License, or
12 (at your option) any later version.
13 
14 RTCW SP Source Code is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 GNU General Public License for more details.
18 
19 You should have received a copy of the GNU General Public License
20 along with RTCW SP Source Code.  If not, see <http://www.gnu.org/licenses/>.
21 
22 In addition, the RTCW SP Source Code is also subject to certain additional terms. You should have received a copy of these additional terms immediately following the terms and conditions of the GNU General Public License which accompanied the RTCW SP Source Code.  If not, please request a copy in writing from id Software at the address below.
23 
24 If you have questions concerning this license or the applicable additional terms, you may contact in writing id Software LLC, c/o ZeniMax Media Inc., Suite 120, Rockville, Maryland 20850 USA.
25 
26 ===========================================================================
27 */
28 
29 //===========================================================================
30 //
31 // Name:			chars.h
32 // Function:		bot characteristics
33 // Programmer:		Mr Elusive (MrElusive@idsoftware.com)
34 // Last update:		1999-09-08
35 // Tab Size:		4 (real tabs)
36 //===========================================================================
37 
38 
39 //========================================================
40 //========================================================
41 //name
42 #define CHARACTERISTIC_NAME                     0   //string
43 //gender of the bot
44 #define CHARACTERISTIC_GENDER                       1   //string ("male", "female", "it")
45 //attack skill
46 // >  0.0 && <  0.2 = don't move
47 // >  0.3 && <  1.0 = aim at enemy during retreat
48 // >  0.0 && <  0.4 = only move forward/backward
49 // >= 0.4 && <  1.0 = circle strafing
50 // >  0.7 && <  1.0 = random strafe direction change
51 #define CHARACTERISTIC_ATTACK_SKILL                 2   //float [0, 1]
52 //weapon weight file
53 #define CHARACTERISTIC_WEAPONWEIGHTS                3   //string
54 //view angle difference to angle change factor
55 #define CHARACTERISTIC_VIEW_FACTOR                  4   //float <0, 1]
56 //maximum view angle change
57 #define CHARACTERISTIC_VIEW_MAXCHANGE               5   //float [1, 360]
58 //reaction time in seconds
59 #define CHARACTERISTIC_REACTIONTIME                 6   //float [0, 5]
60 //accuracy when aiming
61 #define CHARACTERISTIC_AIM_ACCURACY                 7   //float [0, 1]
62 //weapon specific aim accuracy
63 #define CHARACTERISTIC_AIM_ACCURACY_MACHINEGUN      8   //float [0, 1]
64 #define CHARACTERISTIC_AIM_ACCURACY_SHOTGUN         9   //float [0, 1]
65 #define CHARACTERISTIC_AIM_ACCURACY_ROCKETLAUNCHER  10  //float [0, 1]
66 #define CHARACTERISTIC_AIM_ACCURACY_GRENADELAUNCHER 11  //float [0, 1]
67 #define CHARACTERISTIC_AIM_ACCURACY_LIGHTNING       12
68 #define CHARACTERISTIC_AIM_ACCURACY_SP5             13  //float [0, 1]
69 #define CHARACTERISTIC_AIM_ACCURACY_RAILGUN         14
70 #define CHARACTERISTIC_AIM_ACCURACY_BFG10K          15  //float [0, 1]
71 //skill when aiming
72 // >  0.0 && <  0.9 = aim is affected by enemy movement
73 // >  0.4 && <= 0.8 = enemy linear leading
74 // >  0.8 && <= 1.0 = enemy exact movement leading
75 // >  0.5 && <= 1.0 = prediction shots when enemy is not visible
76 // >  0.6 && <= 1.0 = splash damage by shooting nearby geometry
77 #define CHARACTERISTIC_AIM_SKILL                    16  //float [0, 1]
78 //weapon specific aim skill
79 #define CHARACTERISTIC_AIM_SKILL_ROCKETLAUNCHER     17  //float [0, 1]
80 #define CHARACTERISTIC_AIM_SKILL_GRENADELAUNCHER    18  //float [0, 1]
81 #define CHARACTERISTIC_AIM_SKILL_SP5                19  //float [0, 1]
82 #define CHARACTERISTIC_AIM_SKILL_BFG10K             20  //float [0, 1]
83 //========================================================
84 //chat
85 //========================================================
86 //file with chats
87 #define CHARACTERISTIC_CHAT_FILE                    21  //string
88 //name of the chat character
89 #define CHARACTERISTIC_CHAT_NAME                    22  //string
90 //characters per minute type speed
91 #define CHARACTERISTIC_CHAT_CPM                     23  //integer [1, 4000]
92 //tendency to insult/praise
93 #define CHARACTERISTIC_CHAT_INSULT                  24  //float [0, 1]
94 //tendency to chat misc
95 #define CHARACTERISTIC_CHAT_MISC                    25  //float [0, 1]
96 //tendency to chat at start or end of level
97 #define CHARACTERISTIC_CHAT_STARTENDLEVEL           26  //float [0, 1]
98 //tendency to chat entering or exiting the game
99 #define CHARACTERISTIC_CHAT_ENTEREXITGAME           27  //float [0, 1]
100 //tendency to chat when killed someone
101 #define CHARACTERISTIC_CHAT_KILL                    28  //float [0, 1]
102 //tendency to chat when died
103 #define CHARACTERISTIC_CHAT_DEATH                   29  //float [0, 1]
104 //tendency to chat when enemy suicides
105 #define CHARACTERISTIC_CHAT_ENEMYSUICIDE            30  //float [0, 1]
106 //tendency to chat when hit while talking
107 #define CHARACTERISTIC_CHAT_HITTALKING              31  //float [0, 1]
108 //tendency to chat when bot was hit but didn't dye
109 #define CHARACTERISTIC_CHAT_HITNODEATH              32  //float [0, 1]
110 //tendency to chat when bot hit the enemy but enemy didn't dye
111 #define CHARACTERISTIC_CHAT_HITNOKILL               33  //float [0, 1]
112 //tendency to randomly chat
113 #define CHARACTERISTIC_CHAT_RANDOM                  34  //float [0, 1]
114 //tendency to reply
115 #define CHARACTERISTIC_CHAT_REPLY                   35  //float [0, 1]
116 //========================================================
117 //movement
118 //========================================================
119 //tendency to crouch
120 #define CHARACTERISTIC_CROUCHER                     36  //float [0, 1]
121 //tendency to jump
122 #define CHARACTERISTIC_JUMPER                       37  //float [0, 1]
123 //tendency to walk
124 #define CHARACTERISTIC_WALKER                       48  //float [0, 1]
125 //tendency to jump using a weapon
126 #define CHARACTERISTIC_WEAPONJUMPING                38  //float [0, 1]
127 //tendency to use the grapple hook when available
128 #define CHARACTERISTIC_GRAPPLE_USER                 39  //float [0, 1]	//use this!!
129 //========================================================
130 //goal
131 //========================================================
132 //item weight file
133 #define CHARACTERISTIC_ITEMWEIGHTS                  40  //string
134 //the aggression of the bot
135 #define CHARACTERISTIC_AGGRESSION                   41  //float [0, 1]
136 //the self preservation of the bot (rockets near walls etc.)
137 #define CHARACTERISTIC_SELFPRESERVATION             42  //float [0, 1]
138 //how likely the bot is to take revenge
139 #define CHARACTERISTIC_VENGEFULNESS                 43  //float [0, 1]	//use this!!
140 //tendency to camp
141 #define CHARACTERISTIC_CAMPER                       44  //float [0, 1]
142 //========================================================
143 //========================================================
144 //tendency to get easy frags
145 #define CHARACTERISTIC_EASY_FRAGGER                 45  //float [0, 1]
146 //how alert the bot is (view distance)
147 #define CHARACTERISTIC_ALERTNESS                    46  //float [0, 1]
148 //how much the bot fires its weapon
149 #define CHARACTERISTIC_FIRETHROTTLE                 47  //float [0, 1]
150 
151