1 /*
2 ===========================================================================
3 Copyright (C) 1999-2005 Id Software, Inc.
4 
5 This file is part of Quake III Arena source code.
6 
7 Quake III Arena source code is free software; you can redistribute it
8 and/or modify it under the terms of the GNU General Public License as
9 published by the Free Software Foundation; either version 2 of the License,
10 or (at your option) any later version.
11 
12 Quake III Arena source code is distributed in the hope that it will be
13 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 GNU General Public License for more details.
16 
17 You should have received a copy of the GNU General Public License
18 along with Quake III Arena source code; if not, write to the Free Software
19 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
20 ===========================================================================
21 */
22 
23 //========================================================
24 //========================================================
25 //name
26 #define CHARACTERISTIC_NAME							0	//string
27 //gender of the bot
28 #define CHARACTERISTIC_GENDER						1	//string ("male", "female", "it")
29 //attack skill
30 // >  0.0 && <  0.2 = don't move
31 // >  0.3 && <  1.0 = aim at enemy during retreat
32 // >  0.0 && <  0.4 = only move forward/backward
33 // >= 0.4 && <  1.0 = circle strafing
34 // >  0.7 && <  1.0 = random strafe direction change
35 #define CHARACTERISTIC_ATTACK_SKILL					2	//float [0, 1]
36 //weapon weight file
37 #define CHARACTERISTIC_WEAPONWEIGHTS				3	//string
38 //view angle difference to angle change factor
39 #define CHARACTERISTIC_VIEW_FACTOR					4	//float <0, 1]
40 //maximum view angle change
41 #define CHARACTERISTIC_VIEW_MAXCHANGE				5	//float [1, 360]
42 //reaction time in seconds
43 #define CHARACTERISTIC_REACTIONTIME					6	//float [0, 5]
44 //accuracy when aiming
45 #define CHARACTERISTIC_AIM_ACCURACY					7	//float [0, 1]
46 //weapon specific aim accuracy
47 #define CHARACTERISTIC_AIM_ACCURACY_MACHINEGUN		8	//float [0, 1]
48 #define CHARACTERISTIC_AIM_ACCURACY_SHOTGUN			9	//float [0, 1]
49 #define CHARACTERISTIC_AIM_ACCURACY_ROCKETLAUNCHER	10	//float [0, 1]
50 #define CHARACTERISTIC_AIM_ACCURACY_GRENADELAUNCHER	11	//float [0, 1]
51 #define CHARACTERISTIC_AIM_ACCURACY_LIGHTNING		12
52 #define CHARACTERISTIC_AIM_ACCURACY_PLASMAGUN		13	//float [0, 1]
53 #define CHARACTERISTIC_AIM_ACCURACY_RAILGUN			14
54 #define CHARACTERISTIC_AIM_ACCURACY_BFG10K			15	//float [0, 1]
55 //skill when aiming
56 // >  0.0 && <  0.9 = aim is affected by enemy movement
57 // >  0.4 && <= 0.8 = enemy linear leading
58 // >  0.8 && <= 1.0 = enemy exact movement leading
59 // >  0.5 && <= 1.0 = prediction shots when enemy is not visible
60 // >  0.6 && <= 1.0 = splash damage by shooting nearby geometry
61 #define CHARACTERISTIC_AIM_SKILL					16	//float [0, 1]
62 //weapon specific aim skill
63 #define CHARACTERISTIC_AIM_SKILL_ROCKETLAUNCHER		17	//float [0, 1]
64 #define CHARACTERISTIC_AIM_SKILL_GRENADELAUNCHER	18	//float [0, 1]
65 #define CHARACTERISTIC_AIM_SKILL_PLASMAGUN			19	//float [0, 1]
66 #define CHARACTERISTIC_AIM_SKILL_BFG10K				20	//float [0, 1]
67 //========================================================
68 //chat
69 //========================================================
70 //file with chats
71 #define CHARACTERISTIC_CHAT_FILE					21	//string
72 //name of the chat character
73 #define CHARACTERISTIC_CHAT_NAME					22	//string
74 //characters per minute type speed
75 #define CHARACTERISTIC_CHAT_CPM						23	//integer [1, 4000]
76 //tendency to insult/praise
77 #define CHARACTERISTIC_CHAT_INSULT					24	//float [0, 1]
78 //tendency to chat misc
79 #define CHARACTERISTIC_CHAT_MISC					25	//float [0, 1]
80 //tendency to chat at start or end of level
81 #define CHARACTERISTIC_CHAT_STARTENDLEVEL			26	//float [0, 1]
82 //tendency to chat entering or exiting the game
83 #define CHARACTERISTIC_CHAT_ENTEREXITGAME			27	//float [0, 1]
84 //tendency to chat when killed someone
85 #define CHARACTERISTIC_CHAT_KILL					28	//float [0, 1]
86 //tendency to chat when died
87 #define CHARACTERISTIC_CHAT_DEATH					29	//float [0, 1]
88 //tendency to chat when enemy suicides
89 #define CHARACTERISTIC_CHAT_ENEMYSUICIDE			30	//float [0, 1]
90 //tendency to chat when hit while talking
91 #define CHARACTERISTIC_CHAT_HITTALKING				31	//float [0, 1]
92 //tendency to chat when bot was hit but didn't dye
93 #define CHARACTERISTIC_CHAT_HITNODEATH				32	//float [0, 1]
94 //tendency to chat when bot hit the enemy but enemy didn't dye
95 #define CHARACTERISTIC_CHAT_HITNOKILL				33	//float [0, 1]
96 //tendency to randomly chat
97 #define CHARACTERISTIC_CHAT_RANDOM					34	//float [0, 1]
98 //tendency to reply
99 #define CHARACTERISTIC_CHAT_REPLY					35	//float [0, 1]
100 //========================================================
101 //movement
102 //========================================================
103 //tendency to crouch
104 #define CHARACTERISTIC_CROUCHER						36	//float [0, 1]
105 //tendency to jump
106 #define CHARACTERISTIC_JUMPER						37	//float [0, 1]
107 //tendency to walk
108 #define CHARACTERISTIC_WALKER						48	//float [0, 1]
109 //tendency to jump using a weapon
110 #define CHARACTERISTIC_WEAPONJUMPING				38	//float [0, 1]
111 //tendency to use the grapple hook when available
112 #define CHARACTERISTIC_GRAPPLE_USER					39	//float [0, 1]	//use this!!
113 //========================================================
114 //goal
115 //========================================================
116 //item weight file
117 #define CHARACTERISTIC_ITEMWEIGHTS					40	//string
118 //the aggression of the bot
119 #define CHARACTERISTIC_AGGRESSION					41	//float [0, 1]
120 //the self preservation of the bot (rockets near walls etc.)
121 #define CHARACTERISTIC_SELFPRESERVATION				42	//float [0, 1]
122 //how likely the bot is to take revenge
123 #define CHARACTERISTIC_VENGEFULNESS					43	//float [0, 1]	//use this!!
124 //tendency to camp
125 #define CHARACTERISTIC_CAMPER						44	//float [0, 1]
126 //========================================================
127 //========================================================
128 //tendency to get easy frags
129 #define CHARACTERISTIC_EASY_FRAGGER					45	//float [0, 1]
130 //how alert the bot is (view distance)
131 #define CHARACTERISTIC_ALERTNESS					46	//float [0, 1]
132 //how much the bot fires it's weapon
133 #define CHARACTERISTIC_FIRETHROTTLE					47	//float [0, 1]
134 
135