1 /* $Id$ */ 2 /* File: tables.c */ 3 4 /* Purpose: Angband Tables */ 5 6 /* 7 * Copyright (c) 1989 James E. Wilson, Robert A. Koeneke 8 * 9 * This software may be copied and distributed for educational, research, and 10 * not for profit purposes provided that this copyright and statement are 11 * included in all such copies. 12 */ 13 14 /* added this for consistency in some (unrelated) header-inclusion, 15 it IS a server file, isn't it? */ 16 #define SERVER 17 18 #include "angband.h" 19 20 21 /* 22 * XXX XXX Important notice: 23 * 24 * adj_*_* arrays are frequently used beyond the original purpose 25 * (yeah, truly bad hack), so changing them may cause various 26 * unexpected side-effects. 27 * grep the array name first and do it deliberately! 28 */ 29 30 31 /* 32 * Global array for looping through the "keypad directions" 33 */ 34 s16b ddd[9] = 35 { 2, 8, 6, 4, 3, 1, 9, 7, 5 }; 36 37 /* 38 * Global arrays for converting "keypad direction" into offsets 39 */ 40 s16b ddx[10] = 41 { 0, -1, 0, 1, -1, 0, 1, -1, 0, 1 }; 42 43 s16b ddy[10] = 44 { 0, 1, 1, 1, 0, 0, 0, -1, -1, -1 }; 45 46 /* 47 * Global arrays for optimizing "ddx[ddd[i]]" and "ddy[ddd[i]]" 48 */ 49 s16b ddx_ddd[9] = 50 { 0, 0, 1, -1, 1, -1, 1, -1, 0 }; 51 52 s16b ddy_ddd[9] = 53 { 1, -1, 0, 0, 1, 1, -1, -1, 0 }; 54 55 56 /* extra stuff for place_rubble() - C. Blue */ 57 /* Global arrays for cycling through directions, starting at bottom left, clockwise */ 58 s16b ddx_cyc[8] = 59 { -1, 0, 1, 1, 1, 0, -1, -1}; 60 s16b ddy_cyc[8] = 61 { -1, -1, -1, 0, 1, 1, 1, 0}; 62 /* and for inverting directions of above array ((x+4)%8) */ 63 s16b ddi_cyc[8] = 64 { 4, 5, 6, 7, 0, 1, 2, 3}; 65 66 /* extra stuff for placing feats around wild dungeon/tower entrances - C. Blue */ 67 s16b ddx_wide_cyc[16] = 68 { -2, -1, 0, 1, 2, 2, 2, 2, 2, 1, 0, -1, -2, -2, -2, -2 }; 69 s16b ddy_wide_cyc[16] = 70 { -2, -2, -2, -2, -2, -1, 0, 1, 2, 2, 2, 2, 2, 1, 0, -1 }; 71 72 73 /* 74 * Global array for converting numbers to uppercase hecidecimal digit 75 * This array can also be used to convert a number to an octal digit 76 */ 77 char hexsym[16] = 78 { 79 '0', '1', '2', '3', '4', '5', '6', '7', 80 '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' 81 }; 82 83 84 /* The following tables are also used by the client and hence in src/common/tables.c: 85 adj_mag_fail[] 86 adj_mag_stat[] 87 adj_int_pow[] 88 */ 89 90 91 /* 92 * Stat Table (INT/WIS) -- Number of half-spells per level 93 */ 94 byte adj_mag_study[] = 95 { 96 0 /* 3 */, 97 0 /* 4 */, 98 0 /* 5 */, 99 0 /* 6 */, 100 0 /* 7 */, 101 1 /* 8 */, 102 1 /* 9 */, 103 1 /* 10 */, 104 1 /* 11 */, 105 2 /* 12 */, 106 2 /* 13 */, 107 2 /* 14 */, 108 2 /* 15 */, 109 2 /* 16 */, 110 2 /* 17 */, 111 2 /* 18/00-18/09 */, 112 2 /* 18/10-18/19 */, 113 2 /* 18/20-18/29 */, 114 2 /* 18/30-18/39 */, 115 2 /* 18/40-18/49 */, 116 3 /* 18/50-18/59 */, 117 3 /* 18/60-18/69 */, 118 3 /* 18/70-18/79 */, 119 3 /* 18/80-18/89 */, 120 3 /* 18/90-18/99 */, 121 4 /* 18/100-18/109 */, 122 4 /* 18/110-18/119 */, 123 4 /* 18/120-18/129 */, 124 4 /* 18/130-18/139 */, 125 4 /* 18/140-18/149 */, 126 4 /* 18/150-18/159 */, 127 5 /* 18/160-18/169 */, 128 5 /* 18/170-18/179 */, 129 5 /* 18/180-18/189 */, 130 5 /* 18/190-18/199 */, 131 5 /* 18/200-18/209 */, 132 5 /* 18/210-18/219 */, 133 5 /* 18/220+ */ 134 }; 135 136 137 /* 138 * Stat Table (INT/WIS) -- extra half-mana-points per level 139 */ 140 byte adj_mag_mana[] = 141 { 142 0 /* 3 */, 143 0 /* 4 */, 144 0 /* 5 */, 145 0 /* 6 */, 146 0 /* 7 */, 147 1 /* 8 */, 148 2 /* 9 */, 149 2 /* 10 */, 150 2 /* 11 */, 151 2 /* 12 */, 152 2 /* 13 */, 153 2 /* 14 */, 154 2 /* 15 */, 155 2 /* 16 */, 156 2 /* 17 */, 157 3 /* 18/00-18/09 */, 158 3 /* 18/10-18/19 */, 159 3 /* 18/20-18/29 */, 160 3 /* 18/30-18/39 */, 161 3 /* 18/40-18/49 */, 162 4 /* 18/50-18/59 */, 163 4 /* 18/60-18/69 */, 164 5 /* 18/70-18/79 */, 165 6 /* 18/80-18/89 */, 166 7 /* 18/90-18/99 */, 167 8 /* 18/100-18/109 */, 168 9 /* 18/110-18/119 */, 169 10 /* 18/120-18/129 */, 170 11 /* 18/130-18/139 */, 171 12 /* 18/140-18/149 */, 172 13 /* 18/150-18/159 */, 173 13 /* 18/160-18/169 */, 174 14 /* 18/170-18/179 */, 175 14 /* 18/180-18/189 */, 176 15 /* 18/190-18/199 */, 177 15 /* 18/200-18/209 */, 178 15 /* 18/210-18/219 */, 179 16 /* 18/220+ */ 180 }; 181 182 183 /* 184 * Stat Table (CHR) -- payment percentages 185 */ 186 byte adj_chr_gold[] = 187 { 188 130 /* 3 */, 189 125 /* 4 */, 190 122 /* 5 */, 191 120 /* 6 */, 192 118 /* 7 */, 193 116 /* 8 */, 194 114 /* 9 */, 195 112 /* 10 */, 196 110 /* 11 */, 197 108 /* 12 */, 198 106 /* 13 */, 199 104 /* 14 */, 200 103 /* 15 */, 201 102 /* 16 */, 202 101 /* 17 */, 203 100 /* 18/00-18/09 */, 204 99 /* 18/10-18/19 */, 205 98 /* 18/20-18/29 */, 206 97 /* 18/30-18/39 */, 207 96 /* 18/40-18/49 */, 208 95 /* 18/50-18/59 */, 209 94 /* 18/60-18/69 */, 210 93 /* 18/70-18/79 */, 211 92 /* 18/80-18/89 */, 212 91 /* 18/90-18/99 */, 213 90 /* 18/100-18/109 */, 214 89 /* 18/110-18/119 */, 215 88 /* 18/120-18/129 */, 216 87 /* 18/130-18/139 */, 217 86 /* 18/140-18/149 */, 218 85 /* 18/150-18/159 */, 219 84 /* 18/160-18/169 */, 220 84 /* 18/170-18/179 */, 221 83 /* 18/180-18/189 */, 222 83 /* 18/190-18/199 */, 223 82 /* 18/200-18/209 */, 224 81 /* 18/210-18/219 */, 225 80 /* 18/220+ */ 226 }; 227 228 229 /* 230 * Stat Table (INT) -- Magic devices 231 */ 232 byte adj_int_dev[] = 233 { 234 0 /* 3 */, 235 0 /* 4 */, 236 0 /* 5 */, 237 0 /* 6 */, 238 0 /* 7 */, 239 1 /* 8 */, 240 1 /* 9 */, 241 1 /* 10 */, 242 1 /* 11 */, 243 1 /* 12 */, 244 1 /* 13 */, 245 1 /* 14 */, 246 2 /* 15 */, 247 2 /* 16 */, 248 2 /* 17 */, 249 3 /* 18/00-18/09 */, 250 3 /* 18/10-18/19 */, 251 4 /* 18/20-18/29 */, 252 4 /* 18/30-18/39 */, 253 5 /* 18/40-18/49 */, 254 5 /* 18/50-18/59 */, 255 6 /* 18/60-18/69 */, 256 6 /* 18/70-18/79 */, 257 7 /* 18/80-18/89 */, 258 7 /* 18/90-18/99 */, 259 8 /* 18/100-18/109 */, 260 9 /* 18/110-18/119 */, 261 10 /* 18/120-18/129 */, 262 11 /* 18/130-18/139 */, 263 12 /* 18/140-18/149 */, 264 13 /* 18/150-18/159 */, 265 14 /* 18/160-18/169 */, 266 15 /* 18/170-18/179 */, 267 16 /* 18/180-18/189 */, 268 17 /* 18/190-18/199 */, 269 18 /* 18/200-18/209 */, 270 19 /* 18/210-18/219 */, 271 20 /* 18/220+ */ 272 }; 273 274 275 /* 276 * Stat Table (WIS) -- Saving throw 277 */ 278 byte adj_wis_sav[] = 279 { 280 0 /* 3 */, 281 0 /* 4 */, 282 0 /* 5 */, 283 0 /* 6 */, 284 0 /* 7 */, 285 1 /* 8 */, 286 1 /* 9 */, 287 1 /* 10 */, 288 1 /* 11 */, 289 1 /* 12 */, 290 1 /* 13 */, 291 1 /* 14 */, 292 2 /* 15 */, 293 2 /* 16 */, 294 2 /* 17 */, 295 3 /* 18/00-18/09 */, 296 3 /* 18/10-18/19 */, 297 3 /* 18/20-18/29 */, 298 3 /* 18/30-18/39 */, 299 3 /* 18/40-18/49 */, 300 4 /* 18/50-18/59 */, 301 4 /* 18/60-18/69 */, 302 5 /* 18/70-18/79 */, 303 5 /* 18/80-18/89 */, 304 6 /* 18/90-18/99 */, 305 7 /* 18/100-18/109 */, 306 8 /* 18/110-18/119 */, 307 9 /* 18/120-18/129 */, 308 10 /* 18/130-18/139 */, 309 11 /* 18/140-18/149 */, 310 12 /* 18/150-18/159 */, 311 13 /* 18/160-18/169 */, 312 14 /* 18/170-18/179 */, 313 15 /* 18/180-18/189 */, 314 16 /* 18/190-18/199 */, 315 17 /* 18/200-18/209 */, 316 18 /* 18/210-18/219 */, 317 19 /* 18/220+ */ 318 }; 319 320 /* 321 * Stat Table (WIS) -- Max sanity points 322 */ 323 byte adj_wis_msane[] = 324 { 325 128 + -5 /* 3 */, 326 128 + -4 /* 4 */, 327 128 + -3 /* 5 */, 328 128 + -2 /* 6 */, 329 128 + -2 /* 7 */, 330 128 + -1 /* 8 */, 331 128 + -1 /* 9 */, 332 128 + 0 /* 10 */, 333 128 + 0 /* 11 */, 334 128 + 0 /* 12 */, 335 128 + 0 /* 13 */, 336 128 + 1 /* 14 */, 337 128 + 1 /* 15 */, 338 128 + 1 /* 16 */, 339 128 + 2 /* 17 */, 340 128 + 2 /* 18/00-18/09 */, 341 128 + 2 /* 18/10-18/19 */, 342 128 + 3 /* 18/20-18/29 */, 343 128 + 3 /* 18/30-18/39 */, 344 128 + 4 /* 18/40-18/49 */, 345 128 + 4 /* 18/50-18/59 */, 346 128 + 5 /* 18/60-18/69 */, 347 128 + 5 /* 18/70-18/79 */, 348 128 + 6 /* 18/80-18/89 */, 349 128 + 6 /* 18/90-18/99 */, 350 128 + 7 /* 18/100-18/109 */, 351 128 + 8 /* 18/110-18/119 */, 352 128 + 8 /* 18/120-18/129 */, 353 128 + 9 /* 18/130-18/139 */, 354 128 + 10 /* 18/140-18/149 */, 355 128 + 10 /* 18/150-18/159 */, 356 128 + 11 /* 18/160-18/169 */, 357 128 + 12 /* 18/170-18/179 */, 358 128 + 12 /* 18/180-18/189 */, 359 128 + 13 /* 18/190-18/199 */, 360 128 + 14 /* 18/200-18/209 */, 361 128 + 14 /* 18/210-18/219 */, 362 128 + 15 /* 18/220+ */ 363 }; 364 365 366 /* 367 * Stat Table (DEX) -- disarming 368 */ 369 byte adj_dex_dis[] = 370 { 371 0 /* 3 */, 372 0 /* 4 */, 373 0 /* 5 */, 374 0 /* 6 */, 375 0 /* 7 */, 376 0 /* 8 */, 377 0 /* 9 */, 378 0 /* 10 */, 379 0 /* 11 */, 380 0 /* 12 */, 381 1 /* 13 */, 382 1 /* 14 */, 383 1 /* 15 */, 384 2 /* 16 */, 385 2 /* 17 */, 386 3 /* 18/00-18/09 */, 387 3 /* 18/10-18/19 */, 388 3 /* 18/20-18/29 */, 389 4 /* 18/30-18/39 */, 390 4 /* 18/40-18/49 */, 391 5 /* 18/50-18/59 */, 392 5 /* 18/60-18/69 */, 393 6 /* 18/70-18/79 */, 394 6 /* 18/80-18/89 */, 395 7 /* 18/90-18/99 */, 396 8 /* 18/100-18/109 */, 397 8 /* 18/110-18/119 */, 398 8 /* 18/120-18/129 */, 399 8 /* 18/130-18/139 */, 400 8 /* 18/140-18/149 */, 401 9 /* 18/150-18/159 */, 402 9 /* 18/160-18/169 */, 403 9 /* 18/170-18/179 */, 404 9 /* 18/180-18/189 */, 405 9 /* 18/190-18/199 */, 406 10 /* 18/200-18/209 */, 407 10 /* 18/210-18/219 */, 408 11 /* 18/220+ */ 409 }; 410 411 412 /* 413 * Stat Table (INT) -- disarming 414 */ 415 byte adj_int_dis[] = 416 { 417 0 /* 3 */, 418 0 /* 4 */, 419 0 /* 5 */, 420 0 /* 6 */, 421 0 /* 7 */, 422 1 /* 8 */, 423 1 /* 9 */, 424 1 /* 10 */, 425 1 /* 11 */, 426 1 /* 12 */, 427 1 /* 13 */, 428 1 /* 14 */, 429 2 /* 15 */, 430 2 /* 16 */, 431 2 /* 17 */, 432 3 /* 18/00-18/09 */, 433 3 /* 18/10-18/19 */, 434 3 /* 18/20-18/29 */, 435 4 /* 18/30-18/39 */, 436 4 /* 18/40-18/49 */, 437 5 /* 18/50-18/59 */, 438 6 /* 18/60-18/69 */, 439 7 /* 18/70-18/79 */, 440 8 /* 18/80-18/89 */, 441 9 /* 18/90-18/99 */, 442 10 /* 18/100-18/109 */, 443 10 /* 18/110-18/119 */, 444 11 /* 18/120-18/129 */, 445 12 /* 18/130-18/139 */, 446 13 /* 18/140-18/149 */, 447 14 /* 18/150-18/159 */, 448 15 /* 18/160-18/169 */, 449 16 /* 18/170-18/179 */, 450 17 /* 18/180-18/189 */, 451 18 /* 18/190-18/199 */, 452 19 /* 18/200-18/209 */, 453 19 /* 18/210-18/219 */, 454 19 /* 18/220+ */ 455 }; 456 457 458 /* 459 * Stat Table (DEX) -- bonus to ac (plus 128) 460 */ 461 byte adj_dex_ta[] = 462 { 463 128 + -4 /* 3 */, 464 128 + -3 /* 4 */, 465 128 + -2 /* 5 */, 466 128 + -1 /* 6 */, 467 128 + 0 /* 7 */, 468 128 + 0 /* 8 */, 469 128 + 0 /* 9 */, 470 128 + 0 /* 10 */, 471 128 + 0 /* 11 */, 472 128 + 0 /* 12 */, 473 128 + 0 /* 13 */, 474 128 + 0 /* 14 */, 475 128 + 1 /* 15 */, 476 128 + 1 /* 16 */, 477 128 + 1 /* 17 */, 478 128 + 2 /* 18/00-18/09 */, 479 128 + 2 /* 18/10-18/19 */, 480 128 + 2 /* 18/20-18/29 */, 481 128 + 2 /* 18/30-18/39 */, 482 128 + 2 /* 18/40-18/49 */, 483 128 + 3 /* 18/50-18/59 */, 484 128 + 3 /* 18/60-18/69 */, 485 128 + 3 /* 18/70-18/79 */, 486 128 + 4 /* 18/80-18/89 */, 487 128 + 5 /* 18/90-18/99 */, 488 128 + 6 /* 18/100-18/109 */, 489 128 + 7 /* 18/110-18/119 */, 490 128 + 8 /* 18/120-18/129 */, 491 128 + 9 /* 18/130-18/139 */, 492 128 + 9 /* 18/140-18/149 */, 493 128 + 10 /* 18/150-18/159 */, 494 128 + 10 /* 18/160-18/169 */, 495 128 + 11 /* 18/170-18/179 */, 496 128 + 11 /* 18/180-18/189 */, 497 128 + 12 /* 18/190-18/199 */, 498 128 + 13 /* 18/200-18/209 */, 499 128 + 13 /* 18/210-18/219 */, 500 128 + 14 /* 18/220+ */ 501 }; 502 503 504 /* 505 * Stat Table (STR) -- bonus to dam (plus 128) 506 */ 507 byte adj_str_td[] = 508 { 509 128 + -2 /* 3 */, 510 128 + -2 /* 4 */, 511 128 + -1 /* 5 */, 512 128 + -1 /* 6 */, 513 128 + 0 /* 7 */, 514 128 + 0 /* 8 */, 515 128 + 0 /* 9 */, 516 128 + 0 /* 10 */, 517 128 + 0 /* 11 */, 518 128 + 0 /* 12 */, 519 128 + 0 /* 13 */, 520 128 + 1 /* 14 */, 521 128 + 1 /* 15 */, 522 128 + 1 /* 16 */, 523 128 + 1 /* 17 */, 524 128 + 2 /* 18/00-18/09 */, 525 128 + 2 /* 18/10-18/19 */, 526 128 + 2 /* 18/20-18/29 */, 527 128 + 3 /* 18/30-18/39 */, 528 128 + 3 /* 18/40-18/49 */, 529 128 + 3 /* 18/50-18/59 */, 530 128 + 4 /* 18/60-18/69 */, 531 128 + 4 /* 18/70-18/79 */, 532 128 + 4 /* 18/80-18/89 */, 533 128 + 5 /* 18/90-18/99 */, 534 128 + 5 /* 18/100-18/109 */, 535 128 + 6 /* 18/110-18/119 */, 536 128 + 6 /* 18/120-18/129 */, 537 128 + 7 /* 18/130-18/139 */, 538 128 + 7 /* 18/140-18/149 */, 539 128 + 8 /* 18/150-18/159 */, 540 128 + 9 /* 18/160-18/169 */, 541 128 + 10 /* 18/170-18/179 */, 542 128 + 11 /* 18/180-18/189 */, 543 128 + 12 /* 18/190-18/199 */, 544 128 + 13 /* 18/200-18/209 */, 545 128 + 14 /* 18/210-18/219 */, 546 128 + 15 /* 18/220+ */ 547 }; 548 549 550 /* 551 * Stat Table (DEX) -- bonus to hit (plus 128) 552 */ 553 #if 0 /* this was used when adj_dex_th and adj_str_th both affect to_hit (vanilla) */ 554 byte adj_dex_th[] = 555 { 556 128 + -3/* 3 */, 557 128 + -2/* 4 */, 558 128 + -2/* 5 */, 559 128 + -1/* 6 */, 560 128 + -1/* 7 */, 561 128 + 0/* 8 */, 562 128 + 0/* 9 */, 563 128 + 0/* 10 */, 564 128 + 0/* 11 */, 565 128 + 0/* 12 */, 566 128 + 0/* 13 */, 567 128 + 0/* 14 */, 568 128 + 0/* 15 */, 569 128 + 1/* 16 */, 570 128 + 2/* 17 */, 571 128 + 3/* 18/00-18/09 */, 572 128 + 3/* 18/10-18/19 */, 573 128 + 3/* 18/20-18/29 */, 574 128 + 3/* 18/30-18/39 */, 575 128 + 3/* 18/40-18/49 */, 576 128 + 4/* 18/50-18/59 */, 577 128 + 4/* 18/60-18/69 */, 578 128 + 4/* 18/70-18/79 */, 579 128 + 4/* 18/80-18/89 */, 580 128 + 5/* 18/90-18/99 */, 581 128 + 6/* 18/100-18/109 */, 582 128 + 7/* 18/110-18/119 */, 583 128 + 8/* 18/120-18/129 */, 584 128 + 9/* 18/130-18/139 */, 585 128 + 9/* 18/140-18/149 */, 586 128 + 10/* 18/150-18/159 */, 587 128 + 11/* 18/160-18/169 */, 588 128 + 12/* 18/170-18/179 */, 589 128 + 13/* 18/180-18/189 */, 590 128 + 14/* 18/190-18/199 */, 591 128 + 15/* 18/200-18/209 */, 592 128 + 16/* 18/210-18/219 */, 593 128 + 17/* 18/220+ */ 594 }; 595 #else /* this is used for when only adj_dex_th affects to-hit, to make DEX more important */ 596 byte adj_dex_th[] = 597 { 598 128 + -7/* 3 */, 599 128 + -6/* 4 */, 600 128 + -5/* 5 */, 601 128 + -4/* 6 */, 602 128 + -3/* 7 */, 603 128 + -2/* 8 */, 604 128 + -1/* 9 */, 605 128 + 0/* 10 */, 606 128 + 0/* 11 */, 607 128 + 1/* 12 */, 608 128 + 2/* 13 */, 609 128 + 3/* 14 */, 610 128 + 4/* 15 */, 611 128 + 5/* 16 */, 612 128 + 6/* 17 */, 613 128 + 7/* 18/00-18/09 */, 614 128 + 8/* 18/10-18/19 */, 615 128 + 9/* 18/20-18/29 */, 616 128 + 10/* 18/30-18/39 */, 617 128 + 11/* 18/40-18/49 */, 618 128 + 11/* 18/50-18/59 */, 619 128 + 12/* 18/60-18/69 */, 620 128 + 12/* 18/70-18/79 */, 621 128 + 13/* 18/80-18/89 */, 622 128 + 13/* 18/90-18/99 */, 623 128 + 14/* 18/100-18/109 */, 624 128 + 14/* 18/110-18/119 */, 625 128 + 15/* 18/120-18/129 */, 626 128 + 15/* 18/130-18/139 */, 627 128 + 16/* 18/140-18/149 */, 628 128 + 16/* 18/150-18/159 */, 629 128 + 17/* 18/160-18/169 */, 630 128 + 17/* 18/170-18/179 */, 631 128 + 18/* 18/180-18/189 */, 632 128 + 18/* 18/190-18/199 */, 633 128 + 19/* 18/200-18/209 */, 634 128 + 19/* 18/210-18/219 */, 635 128 + 20/* 18/220+ */ 636 }; 637 #endif 638 639 /* 640 * Stat Table (DEX) -- multiplicative bonus to hit (in percent) 641 */ 642 byte adj_dex_th_mul[] = 643 { 644 20 /* 3 */, 645 30 /* 4 */, 646 40 /* 5 */, 647 50 /* 6 */, 648 60 /* 7 */, 649 70 /* 8 */, 650 75 /* 9 */, 651 80 /* 10 */, 652 85 /* 11 */, 653 89 /* 12 */, 654 93 /* 13 */, 655 97 /* 14 */, 656 100 /* 15 */, 657 103 /* 16 */, 658 106 /* 17 */, 659 109 /* 18/00-18/09 */, 660 111 /* 18/10-18/19 */, 661 113 /* 18/20-18/29 */, 662 115 /* 18/30-18/39 */, 663 116 /* 18/40-18/49 */, 664 117 /* 18/50-18/59 */, 665 118 /* 18/60-18/69 */, 666 119 /* 18/70-18/79 */, 667 120 /* 18/80-18/89 */, 668 121 /* 18/90-18/99 */, 669 122 /* 18/100-18/109 */, 670 123 /* 18/110-18/119 */, 671 124 /* 18/120-18/129 */, 672 125 /* 18/130-18/139 */, 673 126 /* 18/140-18/149 */, 674 126 /* 18/150-18/159 */, 675 127 /* 18/160-18/169 */, 676 127 /* 18/170-18/179 */, 677 128 /* 18/180-18/189 */, 678 128 /* 18/190-18/199 */, 679 129 /* 18/200-18/209 */, 680 129 /* 18/210-18/219 */, 681 130 /* 18/220+ */ 682 }; 683 684 685 /* 686 * Stat Table (STR) -- bonus to hit (plus 128) 687 */ 688 byte adj_str_th[] = 689 { 690 128 + -3 /* 3 */, 691 128 + -2 /* 4 */, 692 128 + -1 /* 5 */, 693 128 + -1 /* 6 */, 694 128 + 0 /* 7 */, 695 128 + 0 /* 8 */, 696 128 + 0 /* 9 */, 697 128 + 0 /* 10 */, 698 128 + 0 /* 11 */, 699 128 + 0 /* 12 */, 700 128 + 0 /* 13 */, 701 128 + 0 /* 14 */, 702 128 + 0 /* 15 */, 703 128 + 0 /* 16 */, 704 128 + 0 /* 17 */, 705 128 + 1 /* 18/00-18/09 */, 706 128 + 1 /* 18/10-18/19 */, 707 128 + 1 /* 18/20-18/29 */, 708 128 + 1 /* 18/30-18/39 */, 709 128 + 1 /* 18/40-18/49 */, 710 128 + 1 /* 18/50-18/59 */, 711 128 + 1 /* 18/60-18/69 */, 712 128 + 2 /* 18/70-18/79 */, 713 128 + 3 /* 18/80-18/89 */, 714 128 + 4 /* 18/90-18/99 */, 715 128 + 5 /* 18/100-18/109 */, 716 128 + 6 /* 18/110-18/119 */, 717 128 + 7 /* 18/120-18/129 */, 718 128 + 8 /* 18/130-18/139 */, 719 128 + 9 /* 18/140-18/149 */, 720 128 + 10 /* 18/150-18/159 */, 721 128 + 11 /* 18/160-18/169 */, 722 128 + 12 /* 18/170-18/179 */, 723 128 + 13 /* 18/180-18/189 */, 724 128 + 14 /* 18/190-18/199 */, 725 128 + 15 /* 18/200-18/209 */, 726 128 + 15 /* 18/210-18/219 */, 727 128 + 15 /* 18/220+ */ 728 }; 729 730 731 /* 732 * Stat Table (STR) -- weight limit in deca-pounds 733 */ 734 byte adj_str_wgt[] = 735 { 736 5 /* 3 */, 737 6 /* 4 */, 738 7 /* 5 */, 739 8 /* 6 */, 740 9 /* 7 */, 741 10 /* 8 */, 742 11 /* 9 */, 743 12 /* 10 */, 744 13 /* 11 */, 745 14 /* 12 */, 746 15 /* 13 */, 747 16 /* 14 */, 748 17 /* 15 */, 749 18 /* 16 */, 750 19 /* 17 */, 751 20 /* 18/00-18/09 */, 752 22 /* 18/10-18/19 */, 753 24 /* 18/20-18/29 */, 754 26 /* 18/30-18/39 */, 755 28 /* 18/40-18/49 */, 756 30 /* 18/50-18/59 */, 757 30 /* 18/60-18/69 */, 758 30 /* 18/70-18/79 */, 759 30 /* 18/80-18/89 */, 760 30 /* 18/90-18/99 */, 761 30 /* 18/100-18/109 */, 762 30 /* 18/110-18/119 */, 763 30 /* 18/120-18/129 */, 764 30 /* 18/130-18/139 */, 765 30 /* 18/140-18/149 */, 766 30 /* 18/150-18/159 */, 767 30 /* 18/160-18/169 */, 768 30 /* 18/170-18/179 */, 769 30 /* 18/180-18/189 */, 770 30 /* 18/190-18/199 */, 771 30 /* 18/200-18/209 */, 772 30 /* 18/210-18/219 */, 773 30 /* 18/220+ */ 774 }; 775 776 777 /* 778 * Stat Table (STR) -- weapon weight limit in pounds 779 */ 780 byte adj_str_hold[] = 781 { 782 4 /* 3 */, 783 5 /* 4 */, 784 6 /* 5 */, 785 7 /* 6 */, 786 8 /* 7 */, 787 10 /* 8 */, 788 12 /* 9 */, 789 14 /* 10 */, 790 16 /* 11 */, 791 18 /* 12 */, 792 20 /* 13 */, 793 22 /* 14 */, 794 24 /* 15 */, 795 26 /* 16 */, 796 28 /* 17 */, 797 30 /* 18/00-18/09 */, 798 30 /* 18/10-18/19 */, 799 35 /* 18/20-18/29 */, 800 40 /* 18/30-18/39 */, 801 45 /* 18/40-18/49 */, 802 50 /* 18/50-18/59 */, 803 55 /* 18/60-18/69 */, 804 60 /* 18/70-18/79 */, 805 65 /* 18/80-18/89 */, 806 70 /* 18/90-18/99 */, 807 80 /* 18/100-18/109 */, 808 80 /* 18/110-18/119 */, 809 80 /* 18/120-18/129 */, 810 80 /* 18/130-18/139 */, 811 80 /* 18/140-18/149 */, 812 90 /* 18/150-18/159 */, 813 90 /* 18/160-18/169 */, 814 90 /* 18/170-18/179 */, 815 90 /* 18/180-18/189 */, 816 90 /* 18/190-18/199 */, 817 100 /* 18/200-18/209 */, 818 100 /* 18/210-18/219 */, 819 100 /* 18/220+ */ 820 }; 821 822 823 /* 824 * Stat Table (STR) -- digging value 825 */ 826 byte adj_str_dig[] = 827 { 828 0 /* 3 */, 829 0 /* 4 */, 830 1 /* 5 */, 831 2 /* 6 */, 832 3 /* 7 */, 833 4 /* 8 */, 834 4 /* 9 */, 835 5 /* 10 */, 836 5 /* 11 */, 837 6 /* 12 */, 838 6 /* 13 */, 839 7 /* 14 */, 840 7 /* 15 */, 841 8 /* 16 */, 842 8 /* 17 */, 843 9 /* 18/00-18/09 */, 844 10 /* 18/10-18/19 */, 845 12 /* 18/20-18/29 */, 846 15 /* 18/30-18/39 */, 847 18 /* 18/40-18/49 */, 848 21 /* 18/50-18/59 */, 849 25 /* 18/60-18/69 */, 850 30 /* 18/70-18/79 */, 851 35 /* 18/80-18/89 */, 852 40 /* 18/90-18/99 */, 853 45 /* 18/100-18/109 */, 854 50 /* 18/110-18/119 */, 855 55 /* 18/120-18/129 */, 856 60 /* 18/130-18/139 */, 857 65 /* 18/140-18/149 */, 858 70 /* 18/150-18/159 */, 859 75 /* 18/160-18/169 */, 860 80 /* 18/170-18/179 */, 861 85 /* 18/180-18/189 */, 862 90 /* 18/190-18/199 */, 863 95 /* 18/200-18/209 */, 864 95 /* 18/210-18/219 */, 865 100 /* 18/220+ */ 866 }; 867 868 869 /* 870 * Stat Table (STR) -- help index into the "blow" table 871 */ 872 byte adj_str_blow[] = 873 { 874 3 /* 3 */, 875 4 /* 4 */, 876 5 /* 5 */, 877 6 /* 6 */, 878 7 /* 7 */, 879 8 /* 8 */, 880 9 /* 9 */, 881 10 /* 10 */, 882 11 /* 11 */, 883 12 /* 12 */, 884 13 /* 13 */, 885 14 /* 14 */, 886 15 /* 15 */, 887 16 /* 16 */, 888 17 /* 17 */, 889 20 /* 18/00-18/09 */, 890 30 /* 18/10-18/19 */, 891 40 /* 18/20-18/29 */, 892 50 /* 18/30-18/39 */, 893 60 /* 18/40-18/49 */, 894 70 /* 18/50-18/59 */, 895 80 /* 18/60-18/69 */, 896 90 /* 18/70-18/79 */, 897 100 /* 18/80-18/89 */, 898 110 /* 18/90-18/99 */, 899 120 /* 18/100-18/109 */, 900 130 /* 18/110-18/119 */, 901 140 /* 18/120-18/129 */, 902 150 /* 18/130-18/139 */, 903 160 /* 18/140-18/149 */, 904 170 /* 18/150-18/159 */, 905 180 /* 18/160-18/169 */, 906 190 /* 18/170-18/179 */, 907 200 /* 18/180-18/189 */, 908 210 /* 18/190-18/199 */, 909 220 /* 18/200-18/209 */, 910 230 /* 18/210-18/219 */, 911 240 /* 18/220+ */ 912 /* 266 (to get 6 bpr at 400 lb weapon weight) not possible since type is byte. Work-around via hack in calc_blows. - C. Blue */ 913 }; 914 915 916 /* 917 * Stat Table (STR) -- orientation for create_reward, concerning armor weight 918 */ 919 byte adj_str_armor[] = 920 { 921 2 /* 3 */, 922 2 /* 4 */, 923 2 /* 5 */, 924 2 /* 6 */, 925 3 /* 7 */, 926 3 /* 8 */, 927 4 /* 9 */, 928 4 /* 10 */, 929 5 /* 11 */, 930 5 /* 12 */, 931 7 /* 13 */, 932 9 /* 14 */, 933 11 /* 15 */, 934 13 /* 16 */, 935 14 /* 17 */, 936 15 /* 18/00-18/09 */, 937 16 /* 18/10-18/19 */, 938 18 /* 18/20-18/29 - 200 is max. weight for TV_SOFT_ARMOR */, 939 20 /* 18/30-18/39 - 200 is min. weight for TV_HARD_ARMOR */, 940 22 /* 18/40-18/49 */, 941 24 /* 18/50-18/59 */, 942 26 /* 18/60-18/69 */, 943 28 /* 18/70-18/79 */, 944 30 /* 18/80-18/89 */, 945 32 /* 18/90-18/99 */, 946 35 /* 18/100-18/109 */, 947 38 /* 18/110-18/119 */, 948 41 /* 18/120-18/129 */, 949 44 /* 18/130-18/139 */, 950 47 /* 18/140-18/149 */, 951 50 /* 18/150-18/159 */, 952 50 /* 18/160-18/169 */, 953 50 /* 18/170-18/179 */, 954 50 /* 18/180-18/189 */, 955 50 /* 18/190-18/199 */, 956 50 /* 18/200-18/209 */, 957 50 /* 18/210-18/219 */, 958 50 /* 18/220+ - 500 is just a limit value in create_reward() */ 959 }; 960 961 962 /* 963 * Stat Table (DEX) -- index into the "blow" table 964 */ 965 byte adj_dex_blow[] = 966 { 967 0 /* 3 */, 968 0 /* 4 */, 969 0 /* 5 */, 970 0 /* 6 */, 971 0 /* 7 */, 972 0 /* 8 */, 973 0 /* 9 */, 974 1 /* 10 */, 975 1 /* 11 */, 976 1 /* 12 */, 977 1 /* 13 */, 978 1 /* 14 */, 979 1 /* 15 */, 980 1 /* 16 */, 981 1 /* 17 */, 982 1 /* 18/00-18/09 */, 983 2 /* 18/10-18/19 */, 984 2 /* 18/20-18/29 */, 985 2 /* 18/30-18/39 */, 986 2 /* 18/40-18/49 */, 987 3 /* 18/50-18/59 */, 988 3 /* 18/60-18/69 */, 989 4 /* 18/70-18/79 */, 990 4 /* 18/80-18/89 */, 991 5 /* 18/90-18/99 */, 992 6 /* 18/100-18/109 */, 993 7 /* 18/110-18/119 */, 994 8 /* 18/120-18/129 */, 995 9 /* 18/130-18/139 */, 996 10 /* 18/140-18/149 */, 997 11 /* 18/150-18/159 */, 998 12 /* 18/160-18/169 */, 999 14 /* 18/170-18/179 */, 1000 16 /* 18/180-18/189 */, 1001 18 /* 18/190-18/199 */, 1002 20 /* 18/200-18/209 */, 1003 20 /* 18/210-18/219 */, 1004 20 /* 18/220+ */ 1005 }; 1006 1007 1008 /* 1009 * Stat Table (DEX) -- chance of avoiding "theft" and "falling" 1010 */ 1011 byte adj_dex_safe[] = 1012 { 1013 0 /* 3 */, 1014 1 /* 4 */, 1015 2 /* 5 */, 1016 3 /* 6 */, 1017 4 /* 7 */, 1018 5 /* 8 */, 1019 5 /* 9 */, 1020 6 /* 10 */, 1021 6 /* 11 */, 1022 7 /* 12 */, 1023 7 /* 13 */, 1024 8 /* 14 */, 1025 8 /* 15 */, 1026 9 /* 16 */, 1027 9 /* 17 */, 1028 10 /* 18/00-18/09 */, 1029 10 /* 18/10-18/19 */, 1030 15 /* 18/20-18/29 */, 1031 15 /* 18/30-18/39 */, 1032 20 /* 18/40-18/49 */, 1033 25 /* 18/50-18/59 */, 1034 30 /* 18/60-18/69 */, 1035 35 /* 18/70-18/79 */, 1036 40 /* 18/80-18/89 */, 1037 45 /* 18/90-18/99 */, 1038 50 /* 18/100-18/109 */, 1039 55 /* 18/110-18/119 */, 1040 60 /* 18/120-18/129 */, 1041 65 /* 18/130-18/139 */, 1042 70 /* 18/140-18/149 */, 1043 75 /* 18/150-18/159 */, 1044 80 /* 18/160-18/169 */, 1045 85 /* 18/170-18/179 */, 1046 90 /* 18/180-18/189 */, 1047 90 /* 18/190-18/199 */, 1048 95 /* 18/200-18/209 */, 1049 95 /* 18/210-18/219 */, 1050 100 /* 18/220+ */ 1051 }; 1052 1053 1054 /* 1055 * Stat Table (CON) -- base regeneration rate 1056 */ 1057 byte adj_con_fix[] = 1058 { 1059 0 /* 3 */, 1060 0 /* 4 */, 1061 0 /* 5 */, 1062 0 /* 6 */, 1063 0 /* 7 */, 1064 0 /* 8 */, 1065 0 /* 9 */, 1066 0 /* 10 */, 1067 0 /* 11 */, 1068 0 /* 12 */, 1069 0 /* 13 */, 1070 1 /* 14 */, 1071 1 /* 15 */, 1072 1 /* 16 */, 1073 1 /* 17 */, 1074 2 /* 18/00-18/09 */, 1075 2 /* 18/10-18/19 */, 1076 2 /* 18/20-18/29 */, 1077 2 /* 18/30-18/39 */, 1078 2 /* 18/40-18/49 */, 1079 3 /* 18/50-18/59 */, 1080 3 /* 18/60-18/69 */, 1081 3 /* 18/70-18/79 */, 1082 3 /* 18/80-18/89 */, 1083 3 /* 18/90-18/99 */, 1084 4 /* 18/100-18/109 */, 1085 4 /* 18/110-18/119 */, 1086 4 /* 18/120-18/129 */, 1087 5 /* 18/130-18/139 */, 1088 5 /* 18/140-18/149 */, 1089 6 /* 18/150-18/159 */, 1090 6 /* 18/160-18/169 */, 1091 7 /* 18/170-18/179 */, 1092 7 /* 18/180-18/189 */, 1093 8 /* 18/190-18/199 */, 1094 8 /* 18/200-18/209 */, 1095 9 /* 18/210-18/219 */, 1096 9 /* 18/220+ */ 1097 }; 1098 1099 1100 /* 1101 * Stat Table (CON) -- extra half-hitpoints per level (plus 128) 1102 */ 1103 byte adj_con_mhp[] = 1104 { 1105 128 + -5 /* 3 */, 1106 128 + -4 /* 4 */, 1107 128 + -3 /* 5 */, 1108 128 + -2 /* 6 */, 1109 128 + -1 /* 7 */, 1110 128 + -1 /* 8 */, 1111 128 + 0 /* 9 */, 1112 128 + 0 /* 10 */, 1113 128 + 0 /* 11 */, 1114 128 + 0 /* 12 */, 1115 128 + 1 /* 13 */, 1116 128 + 1 /* 14 */, 1117 128 + 1 /* 15 */, 1118 128 + 2 /* 16 */, 1119 128 + 2 /* 17 */, 1120 128 + 3 /* 18/00-18/09 */, 1121 128 + 4 /* 18/10-18/19 */, 1122 128 + 5 /* 18/20-18/29 */, 1123 128 + 6 /* 18/30-18/39 */, 1124 128 + 7 /* 18/40-18/49 */, 1125 128 + 8 /* 18/50-18/59 */, 1126 128 + 9 /* 18/60-18/69 */, 1127 128 + 10 /* 18/70-18/79 */, 1128 128 + 11 /* 18/80-18/89 */, 1129 128 + 12 /* 18/90-18/99 */, 1130 128 + 13 /* 18/100-18/109 */, 1131 128 + 14 /* 18/110-18/119 */, 1132 128 + 15 /* 18/120-18/129 */, 1133 128 + 16 /* 18/130-18/139 */, 1134 128 + 17 /* 18/140-18/149 */, 1135 128 + 18 /* 18/150-18/159 */, 1136 128 + 19 /* 18/160-18/169 */, 1137 128 + 20 /* 18/170-18/179 */, 1138 128 + 21 /* 18/180-18/189 */, 1139 128 + 22 /* 18/190-18/199 */, 1140 128 + 23 /* 18/200-18/209 */, 1141 128 + 24 /* 18/210-18/219 */, 1142 128 + 25 /* 18/220+ */ 1143 }; 1144 1145 1146 /* 1147 * This table is used to help calculate the number of blows the player can 1148 * make in a single round of attacks (one player turn) with a normal weapon. 1149 * 1150 * This number ranges from a single blow/round for weak players to up to six 1151 * blows/round for powerful warriors. 1152 * 1153 * Note that certain artifacts and ego-items give "bonus" blows/round. 1154 * 1155 * First, from the player class, we extract some values: 1156 * 1157 * Warrior --> num = 6; mul = 5; div = MAX(30, weapon_weight); 1158 * Mage --> num = 4; mul = 2; div = MAX(40, weapon_weight); 1159 * Priest --> num = 5; mul = 3; div = MAX(35, weapon_weight); 1160 * Rogue --> num = 5; mul = 3; div = MAX(30, weapon_weight); 1161 * Ranger --> num = 5; mul = 4; div = MAX(35, weapon_weight); 1162 * Paladin --> num = 5; mul = 4; div = MAX(30, weapon_weight); 1163 * 1164 * To get "P", we look up the relevant "adj_str_blow[]" (see above), 1165 * multiply it by "mul", and then divide it by "div", rounding down. 1166 * 1167 * To get "D", we look up the relevant "adj_dex_blow[]" (see above), 1168 * note especially column 6 (DEX 18/101) and 11 (DEX 18/150). 1169 * 1170 * The player gets "blows_table[P][D]" blows/round, as shown below, 1171 * up to a maximum of "num" blows/round, plus any "bonus" blows/round. 1172 */ 1173 byte blows_table[12][12] = 1174 { 1175 /* P/D */ 1176 /* 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11+ */ 1177 1178 /* 0 */ 1179 { 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 3 }, 1180 1181 /* 1 */ 1182 { 1, 1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 4 }, 1183 1184 /* 2 */ 1185 { 1, 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5 }, 1186 1187 /* 3 */ 1188 { 1, 2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5 }, 1189 1190 /* 4 */ 1191 { 1, 2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5 }, 1192 1193 /* 5 */ 1194 { 2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5, 6 }, 1195 1196 /* 6 */ 1197 { 2, 2, 3, 3, 4, 4, 5, 5, 5, 5, 5, 6 }, 1198 1199 /* 7 */ 1200 { 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 6 }, 1201 1202 /* 8 */ 1203 { 3, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6 }, 1204 1205 /* 9 */ 1206 { 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6 }, 1207 1208 /* 10 */ 1209 { 3, 3, 4, 4, 4, 4, 5, 5, 5, 6, 6, 6 }, 1210 1211 /* 11+ */ 1212 { 3, 3, 4, 4, 4, 4, 5, 5, 6, 6, 6, 7 }, 1213 }; 1214 1215 1216 /* 1217 * This table allows quick conversion from "speed" to "energy" 1218 * The basic function WAS ((S>=110) ? (S-110) : (100 / (120-S))) 1219 * Note that table access is *much* quicker than computation. 1220 * 1221 * Note that the table has been changed at high speeds. From 1222 * "Slow (-40)" to "Fast (+30)" is pretty much unchanged, but 1223 * at speeds above "Fast (+30)", one approaches an asymptotic 1224 * effective limit of 50 energy per turn. This means that it 1225 * is relatively easy to reach "Fast (+30)" and get about 40 1226 * energy per turn, but then speed becomes very "expensive", 1227 * and you must get all the way to "Fast (+50)" to reach the 1228 * point of getting 45 energy per turn. After that point, 1229 * furthur increases in speed are more or less pointless, 1230 * except to balance out heavy inventory. 1231 * 1232 * Note that currently the fastest monster is "Fast (+30)". 1233 * 1234 * It should be possible to lower the energy threshhold from 1235 * 100 units to 50 units, though this may interact badly with 1236 * the (compiled out) small random energy boost code. It may 1237 * also tend to cause more "clumping" at high speeds. 1238 */ 1239 s16b extract_energy[256] = { 1240 /* Slow */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, /* 0-9 */ 1241 /* Slow */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1242 /* Slow */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1243 /* Slow */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1244 /* Slow */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1245 /* Slow */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1246 /* S-50 */ 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 1247 /* S-40 */ 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 1248 /* S-30 */ 20, 20, 20, 20, 20, 20, 20, 30, 30, 30, 1249 /* S-20 */ 30, 30, 30, 30, 30, 40, 40, 40, 40, 40, 1250 /* S-10 */ 50, 50, 50, 50, 60, 60, 70, 70, 80, 90, 1251 /* Norm */ 100, 110, 120, 130, 140, 150, 160, 170, 180, 190, /* 110-119 */ 1252 /* F+10 */ 200, 210, 220, 230, 240, 250, 260, 270, 280, 290, 1253 /* F+20 */ 300, 310, 320, 330, 340, 350, 360, 370, 380, 390, 1254 /* F+30 */ 400, 410, 420, 430, 440, 450, 460, 470, 480, 490, 1255 /* F+40 */ 500, 510, 520, 530, 540, 540, 550, 550, 560, 570, 1256 /* F+50 */ 580, 580, 590, 600, 610, 620, 630, 630, 640, 640, 1257 /* F+60 */ 650, 650, 660, 660, 670, 670, 680, 680, 690, 690, 1258 /* F+70 */ 700, 700, 710, 710, 720, 720, 730, 730, 740, 740, 1259 /* F+80 */ 750, 750, 760, 760, 770, 770, 780, 780, 790, 790, 1260 /* F+90 */ 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, /* 200-209 */ 1261 /* Fast */ 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 1262 /* Fast */ 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 1263 /* Fast */ 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 1264 /* Fast */ 800, 800, 800, 800, 800, 800, 800, 800, 800, 800, 1265 /* Fast */ 800, 800, 800, 800, 800, 800 /* 250-255 */ 1266 }; 1267 1268 1269 /* 1270 * This table provides for different game speeds at different 1271 * dungeon depths. Shallower depths are faster, allowing for 1272 * easier town navigation. Deeper depths are slow, hopefully 1273 * make deep combat less of a test of reflexs. 1274 */ 1275 s16b level_speeds[256] = { 1276 750, 900, 910, 920, 930, 940, 950, 960, 970, 980, /* Town - 450' */ 1277 990, 1000, 1000, 1000, 1000, 1000, 1010, 1020, 1030, 1040, /* 500' - 950' */ 1278 1050, 1060, 1070, 1080, 1090, 1100, 1110, 1120, 1130, 1140, /* 1000' - 1450' */ 1279 1150, 1160, 1170, 1180, 1190, 1200, 1210, 1220, 1230, 1240, /* 1500' - 1950' */ 1280 1250, 1260, 1270, 1280, 1290, 1300, 1310, 1320, 1330, 1340, /* 2000' - 2450' */ 1281 1350, 1370, 1380, 1390, 1400, 1420, 1430, 1440, 1460, 1480, /* 2500' - 2950' */ 1282 1500, 1520, 1540, 1560, 1580, 1600, 1620, 1640, 1660, 1680, /* 3000' - 3450' */ 1283 1700, 1720, 1740, 1760, 1780, 1800, 1820, 1840, 1860, 1880, /* 3500' - 3950' */ 1284 1900, 1920, 1940, 1960, 1980, 2000, 2000, 2000, 2000, 2000, /* 4000' - 4450' */ 1285 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 4500' - 4950' */ 1286 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 5000' - 5450' */ 1287 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 5500' - 5950' */ 1288 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 120 - 129 */ 1289 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 130 - 139 */ 1290 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 140 - 149 */ 1291 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 150 - 159 */ 1292 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 160 - 169 */ 1293 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 170 - 179 */ 1294 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 180 - 189 */ 1295 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 190 - 199 */ 1296 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* 200 (- 209) */ 1297 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* (210 - 219) */ 1298 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* (220 - 229) */ 1299 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* (230 - 239) */ 1300 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, /* (240 - 249) */ 1301 2000, 2000, 2000, 2000, 2000, 2000 /* (250 - 255) */ 1302 }; 1303 1304 1305 1306 /* 1307 * Base experience levels, may be adjusted up for race and/or class 1308 */ 1309 s32b player_exp[PY_MAX_LEVEL + 1] = 1310 { 1311 10, 1312 25, 1313 45, 1314 70,//5 1315 100, 1316 140, 1317 200, 1318 280, 1319 380,//10 1320 500, 1321 650, 1322 850, 1323 1100, 1324 1400,//15 1325 1800, 1326 2300, 1327 2900, 1328 3600, 1329 4400,//20 1330 5400, 1331 6800, 1332 8400, 1333 10200, 1334 12500,//25 1335 17500, 1336 25000, 1337 35000L, 1338 50000L, 1339 75000L,//30 1340 100000L, 1341 150000L, 1342 200000L, 1343 275000L, 1344 350000L,//35 1345 450000L, 1346 550000L, 1347 700000L, 1348 850000L, 1349 1050000L,// 1000000L,//40 1350 1300000L,// 1250000L, 1351 1550000L,// 1500000L, 1352 1850000L,// 1800000L, 1353 2150000L,// 2100000L, 1354 2500000L,// 2400000L,//45 1355 2900000L,// 2700000L, 1356 3400000L,// 3000000L, 1357 4000000L,// 3500000L, 1358 4800000L,// 4000000L, 1359 5800000L,// 4500000L,//50 1360 7000000L,// 5000000L, 1361 1362 8200000L,// 6000000L, 1363 9400000L,// 7000000L, 1364 10800000L,// 8000000L, 1365 12600000L,// 9000000L,//55 1366 14600000L,// 10000000L, 1367 1368 16800000L,// 12000000L, 1369 19200000L,// 14000000L, 1370 21800000L,// 16000000L, 1371 24600000L,// 18000000L,//60 1372 28000000L,// 20000000L, 1373 1374 31500000L,// 24000000L, 1375 35500000L,// 28000000L, 1376 40000000L,// 32000000L, 1377 45000000L,// 36000000L,//65 1378 50500000L,// 40000000L, 1379 1380 56500000L,// 46000000L, 1381 63000000L,// 52000000L, 1382 70000000L,// 58000000L, 1383 78000000L,// 64000000L,//70 1384 87000000L,// 70000000L, 1385 1386 97000000L,// 78000000L, 1387 108000000L,// 86000000L, 1388 120000000L,// 94000000L, 1389 133000000L,// 102000000L,//75 1390 147000000L,// 110000000L, 1391 1392 162000000L,// 120000000L, 1393 178000000L,// 130000000L, 1394 195000000L,// 140000000L, 1395 213000000L,// 150000000L,//80 1396 233000000L,// 160000000L, 1397 1398 255000000L,// 172000000L, 1399 279000000L,// 184000000L, 1400 305000000L,// 196000000L, 1401 333000000L,// 208000000L,//85 1402 363000000L,// 220000000L, 1403 1404 395000000L,// 234000000L, 1405 429000000L,// 248000000L, 1406 465000000L,// 262000000L, 1407 503000000L,// 276000000L,//90 1408 544000000L,// 290000000L, 1409 1410 588000000L,// 304000000L, 1411 635000000L,// 318000000L, 1412 685000000L,// 332000000L, 1413 738000000L,// 346000000L,//95 1414 796000000L,// 360000000L, 1415 1416 859000000L,// 380000000L, 1417 927000000L,// 400000000L, 1418 999000000L,// 420000000L,//99, PY_MAX_PLAYER_LEVEL (just 1M off, mathematically ideally it'd be 1G exp^^) 1419 999999000L,// 440000000L,//100 PY_MAX_LEVEL 1420 999999998L,// 460000000L,//<-not sure why 101 and the 'dummy' one for 102 are needed tho 1421 1422 999999999L // dummy, == PY_MAX_EXP 1423 }; 1424 1425 1426 /* 1427 * Player Race Information: 1428 * Title, 1429 * {STR,INT,WIS,DEX,CON,CHR}, 1430 * r_dis, r_dev, r_sav, r_stl, r_srh, r_fos, r_thn, r_thb, 1431 * hitdie, exp base, 1432 * Age (Base, Mod), 1433 * Male (Hgt, Wgt), 1434 * Female (Hgt, Wgt) 1435 * infra, 1436 * class-choices 1437 * mana % (<- obsolete) 1438 */ 1439 player_race race_info[MAX_RACE] = 1440 { 1441 { 1442 "Human", 1443 { 0, 0, 0, 0, 0, 0 }, 1444 0, 0, 0, 0, 0, 10, 0, 0, 1445 10, 100, 1446 14, 6, 1447 72, 6, 180, 25, 1448 66, 4, 150, 20, 1449 0, 1450 CF_ALL, 1451 100, 1452 { 1453 /* HUMAN POWER!! */ 1454 { 1455 // SKILL_TRAINING, 1456 SKILL_INTERCEPT, 1457 '+', 1000, 1458 '%', 115, 1459 }, 1460 { 1461 SKILL_CLIMB, 1462 '+', 0, 1463 '+', 50, 1464 }, 1465 { 1466 SKILL_SWIM, 1467 '+', 0, 1468 '+', 50, 1469 }, 1470 { 1471 SKILL_SHOOT_TILL_KILL, 1472 '+', 1000, 1473 '+', 0, 1474 }, 1475 }, 1476 }, 1477 1478 { 1479 "Half-Elf", 1480 { -1, 1, 0, 1, -1, 1 }, 1481 2, 5, 3, 1, 6, 11, -1, 5, 1482 10, 110, 1483 24, 16, 1484 66, 6, 130, 15, 1485 62, 6, 100, 10, 1486 2, 1487 CF_ALL, 1488 110, 1489 { 1490 { 1491 SKILL_BOW, 1492 '+', 0, 1493 '%', 110, 1494 }, 1495 { 1496 // SKILL_TRAINING, 1497 SKILL_INTERCEPT, 1498 '+', 500, 1499 '%', 110, 1500 }, 1501 { 1502 SKILL_CLIMB, 1503 '+', 0, 1504 '+', 40, 1505 }, 1506 { 1507 SKILL_SWIM, 1508 '+', 0, 1509 '+', 50, 1510 }, 1511 { 1512 SKILL_SHOOT_TILL_KILL, 1513 '+', 1000, 1514 '+', 0, 1515 }, 1516 }, 1517 }, 1518 1519 { 1520 "Elf", 1521 { -1, 2, 1, 1, -2, 2 }, 1522 5, 9, 6, 2, 8, 12, -5, 15, 1523 9, 120, 1524 75, 75, 1525 60, 4, 100, 6, 1526 54, 4, 80, 6, 1527 3, 1528 CF_ALL, 1529 120, 1530 { 1531 { 1532 SKILL_BOW, 1533 '+', 1000, 1534 '%', 110, 1535 }, 1536 { 1537 SKILL_MAGIC, 1538 '+', 0, 1539 '%', 110, 1540 }, 1541 { 1542 SKILL_STEALTH, 1543 '+', 0, 1544 '%', 110, 1545 }, 1546 { 1547 SKILL_DODGE, 1548 '+', 0,/*1000*/ 1549 '%', 110, 1550 }, 1551 { 1552 SKILL_AGILITY, 1553 '+', 1000, 1554 '%', 110, 1555 }, 1556 { 1557 SKILL_CALMNESS, 1558 '+', 1000, 1559 '%', 110, 1560 }, 1561 { 1562 SKILL_SNEAKINESS, 1563 '+', 1000, 1564 '%', 110, 1565 }, 1566 { 1567 SKILL_CLIMB, 1568 '+', 0, 1569 '+', 40, 1570 }, 1571 { 1572 SKILL_SWIM, 1573 '+', 0, 1574 '+', 50, 1575 }, 1576 { 1577 SKILL_SHOOT_TILL_KILL, 1578 '+', 1000, 1579 '+', 0, 1580 }, 1581 }, 1582 }, 1583 1584 { 1585 "Hobbit", 1586 { -2, 2, 1, 3, 0, 1 }, 1587 15, 12, 18, 4, 12, 15, -10, 20, 1588 // 7, 110, 1589 8, 115, 1590 21, 12, 1591 36, 3, 60, 3, 1592 33, 3, 50, 3, 1593 3, 1594 CF_ALL, 1595 90, 1596 { 1597 { 1598 SKILL_SLING, 1599 '+', 1000, 1600 '%', 110, 1601 }, 1602 { 1603 SKILL_STEALTH, 1604 '+', 1000, 1605 '%', 115, 1606 }, 1607 { 1608 SKILL_SNEAKINESS, 1609 '+', 2000, 1610 '%', 110, 1611 }, 1612 { 1613 SKILL_DODGE, 1614 '+', 0,/*1000*/ 1615 '%', 110, 1616 }, 1617 { 1618 SKILL_CLIMB, 1619 '+', 0, 1620 '+', 40, 1621 }, 1622 { 1623 SKILL_SWIM, 1624 '+', 0, 1625 '+', 50, 1626 }, 1627 { 1628 SKILL_SHOOT_TILL_KILL, 1629 '+', 1000, 1630 '+', 0, 1631 }, 1632 }, 1633 }, 1634 1635 { 1636 "Gnome", 1637 { -1, 2, 0, 2, 1, -2 }, 1638 10, 18, 12, 3, 6, 13, -8, 12, 1639 9, 125, 1640 50, 40, 1641 42, 3, 90, 6, 1642 39, 3, 75, 3, 1643 4, 1644 CF_ALL, 1645 120, 1646 { 1647 { 1648 SKILL_XBOW, 1649 '+', 1000, 1650 '%', 110, 1651 }, 1652 { 1653 SKILL_MAGIC, 1654 '+', 0, 1655 '%', 110, 1656 }, 1657 { 1658 SKILL_DIG, 1659 '+', 1000, 1660 '%', 115, 1661 }, 1662 { 1663 SKILL_DODGE, 1664 '+', 0,/*1000*/ 1665 '%', 115, 1666 }, 1667 { 1668 SKILL_CLIMB, 1669 '+', 0, 1670 '+', 40, 1671 }, 1672 { 1673 SKILL_SWIM, 1674 '+', 0, 1675 '+', 50, 1676 }, 1677 { 1678 SKILL_SHOOT_TILL_KILL, 1679 '+', 1000, 1680 '+', 0, 1681 }, 1682 }, 1683 }, 1684 1685 { 1686 "Dwarf", 1687 { 2, -2, 2, -2, 2, -3 }, 1688 2, 9, 9, -1, 7, 10, 15, 0, 1689 11, 130, 1690 35, 15, 1691 48, 3, 150, 10, 1692 46, 3, 120, 10, 1693 5, 1694 CF_ALL, 1695 95, 1696 { 1697 { 1698 SKILL_AXE, 1699 '+', 0, 1700 '%', 110, 1701 }, 1702 { 1703 SKILL_DIG, 1704 '+', 5000, 1705 '%', 130, 1706 }, 1707 { 1708 SKILL_CLIMB, 1709 '+', 0, 1710 '+', 60, 1711 }, 1712 { 1713 SKILL_SWIM, 1714 '+', 0, 1715 '+', 40, 1716 }, 1717 { 1718 SKILL_SHOOT_TILL_KILL, 1719 '+', 1000, 1720 '+', 0, 1721 }, 1722 }, 1723 }, 1724 1725 { 1726 "Half-Orc", 1727 { 2, -1, 0, 0, 1, -4 }, 1728 -3, -3, -3, -1, 0, 7, 12, -5, 1729 11, 115, // lowered from 110 to 100 1730 11, 4, 1731 66, 1, 150, 5, 1732 62, 1, 120, 5, 1733 3, 1734 CF_ALL, 1735 50, 1736 { 1737 { 1738 SKILL_BACKSTAB, 1739 '+', 1000, 1740 '%', 105, 1741 }, 1742 { 1743 SKILL_MASTERY, 1744 '+', 0, 1745 '%', 115, 1746 }, 1747 { 1748 SKILL_NECROMANCY, 1749 '+', 0, 1750 '%', 110, 1751 }, 1752 /* Not banned, but hard */ 1753 { 1754 SKILL_MAGIC, 1755 '+', 0, 1756 '%', 80, 1757 }, 1758 { 1759 SKILL_SORCERY, 1760 '+', 0, 1761 '%', 80, 1762 }, 1763 { 1764 SKILL_CLIMB, 1765 '+', 0, 1766 '+', 40, 1767 }, 1768 { 1769 SKILL_SWIM, 1770 '+', 0, 1771 '+', 40, 1772 }, 1773 { 1774 SKILL_SHOOT_TILL_KILL, 1775 '+', 1000, 1776 '+', 0, 1777 }, 1778 }, 1779 }, 1780 1781 { 1782 "Half-Troll", 1783 { 4, -4, -2, -4, 3, -6 }, 1784 -5, -8, -8, -2, -1, 5, 20, -10, 1785 12, 135, 1786 20, 10, 1787 96, 10, 250, 50, 1788 84, 8, 225, 40, 1789 3, 1790 CF_ALL, 1791 20, 1792 { 1793 { 1794 SKILL_BLUNT, 1795 '+', 0, 1796 '%', 110, 1797 }, 1798 { 1799 SKILL_HEALTH, 1800 '+', 3000, 1801 '%', 110, 1802 }, 1803 /* Silly Half-Troll archers/rogues */ 1804 { 1805 SKILL_ARCHERY, 1806 '+', 0, 1807 '%', 50, 1808 }, 1809 { 1810 SKILL_CRITS, 1811 '+', 0, 1812 '%', 70, 1813 }, 1814 /* Not banned, but *hard* */ 1815 { 1816 SKILL_MAGIC, 1817 '+', 0, 1818 '%', 50, 1819 }, 1820 { 1821 SKILL_SORCERY, 1822 '+', 0, 1823 '%', 50, 1824 }, 1825 { 1826 SKILL_CLIMB, 1827 '+', 0, 1828 '+', 40, 1829 }, 1830 { 1831 SKILL_SWIM, 1832 '+', 0, 1833 '+', 30, 1834 }, 1835 { 1836 SKILL_SHOOT_TILL_KILL, 1837 '+', 1000, 1838 '+', 0, 1839 }, 1840 }, 1841 }, 1842 1843 { 1844 "Dunadan", 1845 { 1, 2, 2, 2, 3, 2 }, 1846 4, 3, 5, 0, 3, 13, 15, 10, 1847 10, 170, 1848 50, 20, 1849 82, 5, 190, 20, 1850 78, 6, 180, 15, 1851 0, 1852 CF_ALL, 1853 105, 1854 { 1855 /* Dunadan makes good generalist */ 1856 { 1857 SKILL_COMBAT, 1858 '+', 0, 1859 '%', 110, 1860 }, 1861 { 1862 SKILL_MAGIC, 1863 '+', 0, 1864 '%', 105, 1865 }, 1866 { 1867 SKILL_ARCHERY, 1868 '+', 0, 1869 '%', 110, 1870 }, 1871 { 1872 // SKILL_TRAINING, 1873 SKILL_INTERCEPT, 1874 '+', 1000, 1875 '%', 110, 1876 }, 1877 { 1878 SKILL_CLIMB, 1879 '+', 0, 1880 '+', 40, 1881 }, 1882 { 1883 SKILL_SWIM, 1884 '+', 0, 1885 '+', 60, 1886 }, 1887 { 1888 SKILL_SHOOT_TILL_KILL, 1889 '+', 1000, 1890 '+', 0, 1891 }, 1892 }, 1893 }, 1894 1895 { 1896 "High-Elf", 1897 { 1, 3, -1, 3, 1, 3 }, 1898 4, 20, 20, 3, 3, 14, 10, 25, 1899 10, 250, 1900 100, 30, 1901 90, 10, 190, 20, 1902 82, 10, 180, 15, 1903 4, 1904 CF_ALL, 1905 125, 1906 { 1907 { 1908 SKILL_BOW, 1909 '+', 1000, 1910 '%', 110, 1911 }, 1912 { 1913 SKILL_MAGIC, 1914 '+', 0, 1915 '%', 110, 1916 }, 1917 { 1918 SKILL_STEALTH, 1919 '+', 0, 1920 '%', 110, 1921 }, 1922 { 1923 SKILL_DODGE, 1924 '+', 0,/*1000*/ 1925 '%', 110, 1926 }, 1927 { 1928 SKILL_AGILITY, 1929 '+', 2000, 1930 '%', 115, 1931 }, 1932 { 1933 SKILL_CALMNESS, 1934 '+', 2000, 1935 '%', 115, 1936 }, 1937 { 1938 SKILL_CLIMB, 1939 '+', 0, 1940 '+', 40, 1941 }, 1942 { 1943 SKILL_SWIM, 1944 '+', 0, 1945 '+', 60, 1946 }, 1947 { 1948 SKILL_SHOOT_TILL_KILL, 1949 '+', 1000, 1950 '+', 0, 1951 }, 1952 }, 1953 }, 1954 1955 { 1956 "Yeek", 1957 { -5, -5, -5, -5, -5, -3 }, 1958 0, 0, 0, 0, 0, 10, 0, 0, 1959 8, 80, /* 8, 35 */ /* 80% for the new RPG_SERVER originally */ 1960 14, 6, 1961 72, 6, 180, 25, 1962 66, 4, 150, 20, 1963 0, 1964 CF_ALL, 1965 50, 1966 { 1967 { 1968 SKILL_CLIMB, 1969 '+', 0, 1970 '+', 40, 1971 }, 1972 { 1973 SKILL_SWIM, 1974 '+', 0, 1975 '+', 60, 1976 }, 1977 { 1978 SKILL_SHOOT_TILL_KILL, 1979 '+', 1000, 1980 '+', 0, 1981 }, 1982 }, 1983 }, 1984 1985 { 1986 "Goblin", 1987 { 0, -1, -4, 4, 2, -5 }, 1988 2, -3, -3, 0, 2, 8, 12, -5, 1989 10, 120,//increased from 115 to 125 due to great starting abilities for fighters 1990 11, 4, 1991 66, 1, 150, 5, 1992 62, 1, 120, 5, 1993 3, 1994 CF_ALL, 1995 70, 1996 { 1997 /* Never ask me the reason why, I love boomerang :) */ 1998 /* DG - Why ? ;) */ 1999 { 2000 SKILL_BOOMERANG, 2001 '+', 1000, 2002 '%', 110, 2003 }, 2004 { 2005 SKILL_STEALING, 2006 '+', 0, 2007 '%', 110, 2008 }, 2009 { 2010 SKILL_CLIMB, 2011 '+', 0, 2012 '+', 40, 2013 }, 2014 { 2015 SKILL_SWIM, 2016 '+', 0, 2017 '+', 50, 2018 }, 2019 { 2020 SKILL_SHOOT_TILL_KILL, 2021 '+', 1000, 2022 '+', 0, 2023 }, 2024 }, 2025 }, 2026 2027 { 2028 "Ent", 2029 { 8, -4, +2, -4, 8, -4 }, 2030 -4, 0, 20, -6, 5, 4, 5, -20, 2031 14, 320, 2032 255, 70, 2033 72, 6, 100, 25, 2034 66, 4, 100, 20, 2035 0, 2036 //No archer, rogue 2037 CF_ALL&~CFR&~CFA, 2038 90, 2039 { 2040 { 2041 SKILL_AXE, 2042 '+', 0, 2043 '%', 80, 2044 }, 2045 { 2046 SKILL_SWORD, 2047 '+', 0, 2048 '%', 90, 2049 }, 2050 { 2051 SKILL_HEALTH, 2052 '+', 1000, 2053 '%', 110, 2054 }, 2055 { 2056 SKILL_CALMNESS, 2057 '+', 1000, 2058 '%', 115, 2059 }, 2060 /* Ent loves water and the Earth */ 2061 { 2062 SKILL_EARTH, 2063 '+', 0, 2064 '%', 120, 2065 }, 2066 { 2067 SKILL_WATER, 2068 '+', 0, 2069 '%', 120, 2070 }, 2071 /* But hates fire */ 2072 { 2073 SKILL_FIRE, 2074 '+', 0, 2075 '%', 60, 2076 }, 2077 { 2078 SKILL_CLIMB, 2079 '+', 0, 2080 '+', 40, 2081 }, 2082 { 2083 SKILL_SWIM, 2084 '+', 0, 2085 '%', 0, 2086 }, 2087 { 2088 SKILL_SHOOT_TILL_KILL, 2089 '+', 1000, 2090 '+', 0, 2091 }, 2092 }, 2093 }, 2094 { 2095 "Draconian", // "Dragonrider", "Thunderlord" 2096 // { 6, 3, -10, 0, 5, 5 }, 2097 // { 6, 2, -2, 1, 3, 5 }, 2098 // { 6, 2, 1, 1, 3, 5 }, 2099 { 4, 2, 2, 1, 3, 2 }, 2100 0, 7, 10, -5, 10, 10, 15, 5, 2101 12, 350, 2102 14, 6, 2103 180, 6, 255, 25, 2104 150, 4, 230, 20, 2105 5, 2106 CF_ALL, 2107 95, 2108 { 2109 { 2110 SKILL_POLEARM, 2111 '+', 0, 2112 '%', 110, 2113 }, 2114 { 2115 SKILL_DEVICE, 2116 '+', 0, 2117 '%', 110, 2118 }, 2119 { 2120 SKILL_TCONTACT, 2121 '+', 0, 2122 '%', 110, 2123 }, 2124 { 2125 SKILL_CLIMB, 2126 '+', 0, 2127 '+', 40, 2128 }, 2129 { 2130 SKILL_SWIM, 2131 '+', 0, 2132 '+', 60, 2133 }, 2134 { 2135 SKILL_SHOOT_TILL_KILL, 2136 '+', 1000, 2137 '+', 0, 2138 }, 2139 2140 #ifdef ENABLE_DRACONIAN_TRAITS 2141 { 2142 SKILL_BREATH, 2143 '+', 1000, 2144 '+', 0, 2145 }, 2146 #endif 2147 }, 2148 }, 2149 2150 #ifdef ENABLE_KOBOLD 2151 { 2152 "Kobold", 2153 { -1, -1, 0, 2, 2, -2 }, 2154 10, 5, 0, 4, 15, 15, -5, 10, 2155 8, 115, 2156 11, 4, 2157 66, 1, 150, 5, 2158 62, 1, 120, 5, 2159 5, 2160 CF_ALL, 2161 120, 2162 { 2163 { 2164 SKILL_TRAPPING, 2165 '+', 0, 2166 '%', 110, 2167 }, 2168 { 2169 SKILL_SNEAKINESS, 2170 '+', 0, 2171 '%', 105, 2172 }, 2173 { 2174 SKILL_CLIMB, 2175 '+', 0, 2176 '+', 40, 2177 }, 2178 { 2179 SKILL_SWIM, 2180 '+', 0, 2181 '+', 70, 2182 }, 2183 { 2184 SKILL_SHOOT_TILL_KILL, 2185 '+', 1000, 2186 '+', 0, 2187 }, 2188 }, 2189 }, 2190 #endif 2191 2192 { 2193 "Dark-Elf", 2194 { 0, 2, 1, 3, 1, -6 }, 2195 7, 3, 6, 4, 10, 6, 15, 15, 2196 10, 150, 2197 100, 30, 2198 90, 10, 180, 20, 2199 82, 10, 180, 15, 2200 8, 2201 // no Paladins 2202 CF_ALL&~CFL, 2203 115, 2204 { 2205 #if 0 2206 { 2207 SKILL_ARCHERY, 2208 '+', 1000, 2209 '%', 110, 2210 }, 2211 #endif 2212 { 2213 SKILL_BACKSTAB, 2214 '+', 1000, 2215 '%', 110, 2216 }, 2217 { 2218 SKILL_STEALTH, 2219 '+', 0, 2220 '%', 110, 2221 }, 2222 { 2223 SKILL_DODGE, 2224 '+', 0,/*1000,*/ 2225 '%', 110, 2226 }, 2227 { 2228 SKILL_AGILITY, 2229 '+', 2000, 2230 '%', 110, 2231 }, 2232 { 2233 SKILL_SNEAKINESS, 2234 '+', 2000, 2235 '%', 110, 2236 }, 2237 { 2238 SKILL_CLIMB, 2239 '+', 0, 2240 '+', 40, 2241 }, 2242 { 2243 SKILL_SWIM, 2244 '+', 0, 2245 '+', 50, 2246 }, 2247 { 2248 SKILL_SHOOT_TILL_KILL, 2249 '+', 1000, 2250 '+', 0, 2251 }, 2252 }, 2253 }, 2254 2255 { 2256 "Vampire", 2257 { 2, 2, -1, 2, 0, 3 }, 2258 -2, 3, 20, 2, -4, 13, 10, -10, 2259 // 11, 240, 2260 11, 220, 2261 100, 30, 2262 90, 10, 180, 20, 2263 82, 10, 170, 15, 2264 15, 2265 //No paladin,druid,priest,shaman/mimic 2266 CF_ALL&~CFL&~CFD&~CFP&~CFM&~CFS, 2267 125, 2268 { 2269 { 2270 SKILL_BLUNT, 2271 '+', 0, 2272 '%', 0, 2273 }, 2274 { 2275 SKILL_DIVINATION, 2276 '+', 0, 2277 '%', 75, 2278 }, 2279 { 2280 SKILL_WATER, 2281 '+', 0, 2282 '%', 0, 2283 }, 2284 { 2285 SKILL_NATURE, 2286 '+', 0, 2287 '%', 0, 2288 }, 2289 { 2290 SKILL_HOFFENSE, 2291 '+', 0, 2292 '%', 0, 2293 }, 2294 { 2295 SKILL_HDEFENSE, 2296 '+', 0, 2297 '%', 0, 2298 }, 2299 { 2300 SKILL_HCURING, 2301 '+', 0, 2302 '%', 0, 2303 }, 2304 { 2305 SKILL_HSUPPORT, 2306 '+', 0, 2307 '%', 0, 2308 }, 2309 /* cannot train Light runecraft well */ 2310 { 2311 SKILL_R_LITE, 2312 '+', 0, 2313 '%', 50, 2314 }, 2315 /* Moderate bonus to Nether, being the undead... */ 2316 { 2317 SKILL_R_NETH, 2318 '+', 0, 2319 '%', 120, 2320 }, 2321 { 2322 SKILL_MIMIC, /* polymorph to vampire bat and maybe vampiric mist */ 2323 '+', 1000, 2324 '%', 0, 2325 }, 2326 { 2327 SKILL_ANTIMAGIC, /* keep mimicry usable for bat form. vampires believe! for now at least... */ 2328 '%', 0, 2329 '%', 0, 2330 }, 2331 { 2332 SKILL_MINTRUSION, 2333 '+', 0, 2334 '%', 110, 2335 }, 2336 2337 { 2338 SKILL_NECROMANCY, 2339 '+', 5000, 2340 '%', 115, 2341 }, 2342 { 2343 SKILL_TRAUMATURGY, 2344 '+', 0, 2345 '%', 105, 2346 }, 2347 { 2348 SKILL_AURA_FEAR, 2349 '+', 0, 2350 '%', 115, 2351 }, 2352 { 2353 SKILL_AURA_SHIVER, 2354 '+', 0, 2355 '%', 115, 2356 }, 2357 { 2358 SKILL_AURA_DEATH, 2359 '+', 0, 2360 '%', 115, 2361 }, 2362 { 2363 SKILL_CLIMB, 2364 '+', 0, 2365 '+', 40, 2366 }, 2367 { 2368 SKILL_SWIM, 2369 '+', 0, 2370 '+', 40, 2371 }, 2372 { 2373 SKILL_SHOOT_TILL_KILL, 2374 '+', 1000, 2375 '+', 0, 2376 }, 2377 }, 2378 }, 2379 #ifdef ENABLE_MAIA 2380 /* 2381 * Player Race Information: 2382 * Title, 2383 * {STR,INT,WIS,DEX,CON,CHR}, 2384 * r_dis, r_dev, r_sav, r_stl, r_srh, r_fos, r_thn, r_thb, 2385 * hitdie, exp base, 2386 * Age (Base, Mod), 2387 * Male (Hgt, Wgt), 2388 * Female (Hgt, Wgt) 2389 * infra, 2390 * class-choices 2391 * mana % (<- obsolete) 2392 */ 2393 { 2394 "Maia", 2395 { 1, 3, 3, 1, 0, 2 }, //boosted int/wisdom/dex 2396 3, 20, 3, 0, 5, 1, 15, 5, 2397 11, 400,//too low == bad since you need the quest mobs 2398 255, 250, 2399 72, 16, 150, 55, 2400 66, 8, 130, 40, 2401 10, 2402 /* Plan is to disable warrior and archer since they do not have SP */ 2403 CF_ALL&~CFW&~CFA, 2404 125, 2405 { 2406 /* The plan is to have a skill tree that is updated as the player level. 2407 Only 70%-ify the skills that could potentially be updated when the player mutates!! 2408 */ 2409 { 2410 SKILL_ASTRAL, 2411 '+', 1250, 2412 '+', 1250, 2413 }, 2414 { 2415 SKILL_HOFFENSE, 2416 '+', 0, 2417 '%', 70, 2418 }, 2419 { 2420 SKILL_HDEFENSE, 2421 '+', 0, 2422 '%', 70, 2423 }, 2424 { 2425 SKILL_HCURING, 2426 '+', 0, 2427 '%', 70, 2428 }, 2429 { 2430 SKILL_HSUPPORT, 2431 '+', 0, 2432 '%', 70, 2433 }, 2434 { 2435 SKILL_SNEAKINESS, 2436 '+', 0, 2437 '%', 110, 2438 }, 2439 { 2440 SKILL_STEALTH, 2441 '+', 0, 2442 '%', 110, 2443 }, 2444 { 2445 SKILL_NECROMANCY, 2446 '+', 0, 2447 '%', 70, 2448 }, 2449 { 2450 SKILL_TRAUMATURGY, 2451 '+', 0, 2452 '%', 70, 2453 }, 2454 { 2455 SKILL_AURA_FEAR, 2456 '+', 0, 2457 '%', 70, 2458 }, 2459 { 2460 SKILL_AURA_SHIVER, 2461 '+', 0, 2462 '%', 70, 2463 }, 2464 { 2465 SKILL_AURA_DEATH, 2466 '+', 0, 2467 '%', 70, 2468 }, 2469 { 2470 SKILL_CLIMB, 2471 '+', 0, 2472 '+', 40, 2473 }, 2474 { 2475 SKILL_SWIM, 2476 '+', 0, 2477 '%', 0, 2478 }, 2479 { 2480 SKILL_SHOOT_TILL_KILL, 2481 '+', 1000, 2482 '+', 0, 2483 }, 2484 }, 2485 }, 2486 #endif 2487 2488 #if 0 // do not activate until I find a way to have a race in the server and not in the client 2489 { 2490 "Exp 626", 2491 { 1, 2, -3, 1, 2, -3 }, 2492 4, 20, 20, 3, 3, 14, 10, 25, 2493 11, 150, 2494 14, 6, 2495 180, 6, 255, 25, 2496 150, 4, 230, 20, 2497 0, 2498 0xFFFFFFFF, 2499 105, 2500 { 0 }, 2501 }, 2502 #endif 2503 }; 2504 2505 /* Lookup for the race name */ 2506 char *special_prace_lookup[MAX_RACE] = { 2507 /* RACE_HUMAN */ "Human", 2508 /* RACE_HALF_ELF */ "Half-Elven", 2509 /* RACE_ELF */ "Elven", 2510 /* RACE_HOBBIT */ "Hobbitonian", 2511 /* RACE_GNOME */ "Gnome", 2512 /* RACE_DWARF */ "Dwarven", 2513 /* RACE_HALF_ORC */ "Half-Orc", 2514 /* RACE_HALF_TROLL */ "Half-Troll", 2515 2516 /* RACE_DUNADAN */ "Western", 2517 /* According to Vir: 2518 * Dunedain: men of the West, 2519 * Dunadan: man of the West. 2520 * "You can't bend in English since it's not"... 2521 * "dun" == west, "edain" is men of the three great houses who travelled 2522 * towards the light in the west in the first age befriending the elves. 2523 * Yes, I got the whole history off him =) 2524 * Sticking with "Western" for now, then. */ 2525 2526 /* RACE_HIGH_ELF */ "High-Elven", 2527 /* RACE_YEEK */ "Yeek", 2528 /* RACE_GOBLIN */ "Goblin", 2529 /* RACE_ENT */ "Ent", 2530 /* RACE_DRACONIAN */ "Draconian", 2531 #ifdef ENABLE_KOBOLD 2532 /* RACE_KOBOLD*/ "Kobold", 2533 #endif 2534 /* RACE_DARK_ELF */ "Dark-Elven", 2535 /* RACE_VAMPIRE */ "Vampire", 2536 #ifdef ENABLE_MAIA 2537 /* RACE_MAIA */ "Maia", 2538 #endif 2539 }; 2540 2541 /* 2542 * Player Race Information: 2543 * Title, 2544 * {STR,INT,WIS,DEX,CON,CHR}, 2545 * r_dis, r_dev, r_sav, r_stl, r_srh, r_fos, r_thn, r_thb, 2546 * hitdie, exp base, 2547 * Age (Base, Mod), 2548 * Male (Hgt, Wgt), 2549 * Female (Hgt, Wgt) 2550 * infra, 2551 * class-choices 2552 * mana% 2553 */ 2554 2555 2556 /* 2557 * Player Classes. 2558 * 2559 * Title, 2560 * Color, 2561 * {STR,INT,WIS,DEX,CON,CHR}, 2562 * {STR,INT,WIS,DEX,CON,CHR} recommended minimum values, 2563 * c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb, 2564 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb, 2565 * HD, Exp 2566 */ 2567 /* TODO: let's move them to p_info.txt */ 2568 player_class class_info[MAX_CLASS] = 2569 { 2570 { 2571 "Warrior", 2572 TERM_UMBER, 2573 { 5, -2, -2, 2, 2, -1}, 2574 { 22+100, 0, 0, 0+100, 0, 0}, 2575 20, 18, 18, 1, 14, 2, 70, 55, 2576 10, 8, 10, 0, 0, 0, 45, 40, 2577 10, 0,//6, 10,//9, 10, 2578 // 11, 0, 2579 { 2580 { 2581 SKILL_COMBAT, 2582 '+', 3000, 2583 '+', 2000, 2584 }, 2585 { 2586 SKILL_MASTERY, 2587 '+', 1000, 2588 '+', 1000, 2589 }, 2590 { 2591 SKILL_TECHNIQUE, 2592 '+', 1000, 2593 '+', 0, 2594 }, 2595 #ifdef DUAL_WIELD /* warriors may too :) */ 2596 { /* dual-wield */ 2597 SKILL_DUAL, 2598 '+', 1000, 2599 '+', 0, 2600 }, 2601 #endif 2602 #ifdef ENABLE_STANCES /* was warrior-only, now also mimics/paladins/rangers */ 2603 { 2604 SKILL_STANCE, 2605 '+', 1000, 2606 '+', 0, 2607 }, 2608 #endif 2609 { 2610 SKILL_SWORD, 2611 '+', 0, 2612 '+', 800, 2613 }, 2614 { 2615 SKILL_AXE, 2616 '+', 0, 2617 '+', 800, 2618 }, 2619 { 2620 SKILL_BLUNT, 2621 '+', 0, 2622 '+', 800, 2623 }, 2624 { 2625 SKILL_POLEARM, 2626 '+', 0, 2627 '+', 800, 2628 }, 2629 { 2630 SKILL_BOW, 2631 '+', 0, 2632 '+', 350, 2633 }, 2634 { 2635 SKILL_XBOW, 2636 '+', 0, 2637 '+', 350, 2638 }, 2639 { 2640 SKILL_BOOMERANG, 2641 '+', 0, 2642 '+', 500, 2643 }, 2644 { 2645 SKILL_SLING, 2646 '+', 0, 2647 '+', 300, 2648 }, 2649 { 2650 /* let's keep it low for now - offbalancing */ 2651 SKILL_MARTIAL_ARTS, 2652 '+', 0, 2653 '+', 700, 2654 }, 2655 2656 { 2657 SKILL_DEVICE, 2658 '+', 1000, 2659 '+', 700, 2660 }, 2661 { 2662 SKILL_SNEAKINESS, 2663 '+', 1000, 2664 '+', 800,//900, 2665 }, 2666 { 2667 SKILL_STEALTH, 2668 '+', 1000, 2669 '+', 600, 2670 }, 2671 { 2672 SKILL_DISARM, 2673 '+', 1000, 2674 '+', 900, 2675 }, 2676 { 2677 SKILL_DODGE, 2678 '+', 0,/*1000*/ 2679 '+', 800, 2680 }, 2681 2682 /* Necromancy for this class - experimental */ 2683 { 2684 SKILL_NECROMANCY, 2685 '+', 0, 2686 '+', 1000, 2687 }, 2688 { 2689 SKILL_TRAUMATURGY, 2690 '%', 0, 2691 '%', 0, 2692 }, 2693 { 2694 SKILL_AURA_FEAR, 2695 '+', 0, 2696 '+', 1000, 2697 }, 2698 { 2699 SKILL_AURA_SHIVER, 2700 '+', 0, 2701 '+', 1000, 2702 }, 2703 { 2704 SKILL_AURA_DEATH, 2705 '+', 0, 2706 '+', 1000, 2707 }, 2708 2709 { 2710 SKILL_ANTIMAGIC, 2711 '+', 0, 2712 '+', 500,//700 2713 }, 2714 /* Health tree */ 2715 { 2716 SKILL_HEALTH, 2717 '+', 2000, 2718 '+', 1000, 2719 }, 2720 { 2721 SKILL_SWIM, 2722 '+', 0, 2723 '%', 120, 2724 }, 2725 { 2726 SKILL_DIG, 2727 '+', 1000, 2728 '+', 1200, 2729 }, 2730 { 2731 SKILL_INTERCEPT, 2732 '+', 1000, 2733 '+', 800, 2734 }, 2735 } 2736 }, 2737 2738 { 2739 "Istar", 2740 TERM_RED, 2741 {-5, 3, 0, 1, -2, 1}, 2742 {0, 0+100, 0, 0, 0, 0}, 2743 30, 36, 30, 2, 16, 20, 34, 20, 2744 7, 10, 9, 0, 0, 0, 15, 15, 2745 0, 35,//0,30 2746 // 3, 35, 2747 { 2748 { 2749 SKILL_COMBAT, 2750 '+', 0, 2751 '+', 300, 2752 }, 2753 { 2754 SKILL_MASTERY, 2755 '+', 0, 2756 '+', 150, 2757 }, 2758 { 2759 SKILL_MAGIC, 2760 '+', 4000, /* 6000 */ 2761 '+', 1000, 2762 }, 2763 { 2764 SKILL_DEVICE, 2765 '+', 1000, 2766 '+', 1100, 2767 }, 2768 { 2769 SKILL_SNEAKINESS, 2770 '+', 1000, 2771 '+', 500,//700, 2772 }, 2773 { 2774 SKILL_STEALTH, 2775 '+', 0, 2776 '+', 600, 2777 }, 2778 { 2779 SKILL_DODGE, 2780 '+', 0, 2781 '+', 450, 2782 }, 2783 /* Health tree */ 2784 { 2785 SKILL_HEALTH, 2786 '+', 0, 2787 '+', 800, 2788 }, 2789 { 2790 SKILL_CALMNESS, 2791 '+', 0, 2792 '+', 800, 2793 }, 2794 { 2795 SKILL_DIG, 2796 '+', 0, 2797 '+', 700, 2798 }, 2799 2800 { 2801 SKILL_SORCERY, 2802 '+', 0, 2803 /* '+', 500,//was 700 */ 2804 /* '+', 170, 1..9schools->schools,10..12->sorc */ 2805 /* '+', 185, 49*5.5 skill points -> sorcery ~maxed. */ 2806 '+', 205, /* 49*5 -> maxed at 50 */ 2807 }, 2808 { 2809 SKILL_SPELL, 2810 '+', 0, 2811 '+', 600, 2812 }, 2813 { 2814 SKILL_MANA, 2815 '+', 1000, /* Allow to cast Manathrust */ 2816 '+', 1900, 2817 }, 2818 { 2819 SKILL_FIRE, 2820 '+', 0, 2821 '+', 1600, 2822 }, 2823 { 2824 SKILL_AIR, 2825 '+', 0, 2826 '+', 1600, 2827 }, 2828 { 2829 SKILL_EARTH, 2830 '+', 0, 2831 '+', 1600, 2832 }, 2833 { 2834 SKILL_WATER, 2835 '+', 0, 2836 '+', 1600, 2837 }, 2838 { 2839 SKILL_NATURE, 2840 '+', 0, 2841 '+', 1600, 2842 }, 2843 { 2844 SKILL_DIVINATION, 2845 '+', 0, 2846 '+', 1600, 2847 }, 2848 { 2849 SKILL_CONVEYANCE, 2850 '+', 0, 2851 '+', 1600, 2852 }, 2853 { 2854 SKILL_META, 2855 '+', 0, 2856 '+', 1600, 2857 }, 2858 { 2859 SKILL_MIND, 2860 '+', 0, 2861 '+', 1600, 2862 }, 2863 { 2864 SKILL_TEMPORAL, 2865 '+', 0, 2866 '+', 1600, 2867 }, 2868 { 2869 SKILL_UDUN, 2870 '+', 0, 2871 '+', 1600, 2872 }, 2873 2874 /* Necromancy for this class - experimental */ 2875 { 2876 SKILL_NECROMANCY, 2877 '+', 0, 2878 '+', 1000, 2879 }, 2880 { 2881 SKILL_TRAUMATURGY, 2882 '+', 0, 2883 '+', 1000, 2884 }, 2885 { 2886 SKILL_AURA_FEAR, 2887 '+', 0, 2888 '+', 1000, 2889 }, 2890 { 2891 SKILL_AURA_SHIVER, 2892 '+', 0, 2893 '+', 1000, 2894 }, 2895 { 2896 SKILL_AURA_DEATH, 2897 '+', 0, 2898 '+', 1000, 2899 }, 2900 } 2901 }, 2902 2903 { 2904 "Priest", 2905 TERM_GREEN, 2906 {-1, -3, 3, -1, 0, 2}, 2907 #if 0 /* disabled recommendations for STR/DEX because STR cannot even be reached by dwarven priests.. */ 2908 {19, 0, 0+100, 10, 0, 0}, 2909 #else 2910 {0, 0, 0+100, 0, 0, 0}, 2911 #endif 2912 25, 25, 32, 2, 16, 8, 48, 35, 2913 7, 9, 12, 0, 0, 0, 20, 15, 2914 4, 20, //2, 20,//4,20 2915 // 7, 20, 2916 { 2917 { 2918 SKILL_COMBAT, 2919 '+', 0, 2920 '+', 750,//x1.5 2921 }, 2922 { 2923 SKILL_MASTERY, 2924 '+', 0, 2925 '+', 400,//800 2926 }, 2927 #if 0 /* unusable: depends on BLESSED too much - just confuses newbies anyway */ 2928 { 2929 SKILL_SWORD, 2930 '+', 0, 2931 '+', 500, 2932 }, 2933 #endif 2934 { 2935 SKILL_BLUNT, 2936 '+', 0, 2937 '+', 600, 2938 }, 2939 { 2940 SKILL_MARTIAL_ARTS, 2941 '+', 0, 2942 '+', 500,//450 2943 }, 2944 { 2945 SKILL_MAGIC, 2946 '+', 2000, 2947 '+', 900, 2948 }, 2949 { 2950 SKILL_SPELL, 2951 '+', 0, 2952 '+', 500, 2953 }, 2954 /* { 2955 SKILL_DIVINATION, 2956 '+', 1000, 2957 '+', 500, 2958 }, 2959 { 2960 SKILL_CONVEYANCE, 2961 '+', 0, 2962 '+', 900, 2963 },,*/ 2964 { 2965 SKILL_HOFFENSE, 2966 '+', 0, 2967 '+', 1500, 2968 }, 2969 { 2970 SKILL_HDEFENSE, 2971 '+', 1000, /* be able to use the startup eq spellbook of blessing */ 2972 '+', 1500, 2973 }, 2974 { 2975 SKILL_HCURING, 2976 '+', 1000, 2977 '+', 1700, 2978 }, 2979 { 2980 SKILL_HSUPPORT, 2981 '+', 0, 2982 '+', 1500, 2983 }, 2984 { 2985 SKILL_DEVICE, 2986 '+', 1000, 2987 '+', 900, 2988 }, 2989 { 2990 SKILL_SNEAKINESS, 2991 '+', 1000, 2992 '+', 600,//770, 2993 }, 2994 { 2995 SKILL_STEALTH, 2996 '+', 0, 2997 '+', 500, 2998 }, 2999 { 3000 SKILL_DODGE, 3001 '+', 0, 3002 '+', 550, 3003 }, 3004 /* Health tree */ 3005 { 3006 SKILL_HEALTH, 3007 '+', 1000, 3008 '+', 1000, 3009 }, 3010 { 3011 SKILL_DIG, 3012 '+', 0, 3013 '+', 700, 3014 }, 3015 { 3016 SKILL_CALMNESS, 3017 '+', 0, 3018 '+', 900, 3019 }, 3020 { 3021 SKILL_INTERCEPT, 3022 '+', 1000, 3023 '+', 500,//400 3024 }, 3025 } 3026 }, 3027 3028 { 3029 "Rogue", 3030 TERM_BLUE, 3031 { 2, 1, -2, 3, 1, -1}, 3032 {15, 0, 0, 19+100, 0, 0}, 3033 45, 28, 28, 5, 32, 24, 60, 66, 3034 15, 9, 10, 0, 10, 10, 40, 40,// ..0,0,40,30 3035 5, 15, //3, 25,//5, 25 3036 // 8, 25, 3037 { 3038 { 3039 SKILL_COMBAT, 3040 '+', 1000, 3041 '+', 1200, 3042 }, 3043 { 3044 SKILL_MASTERY, 3045 '+', 1000, 3046 '+', 700,//650 3047 }, 3048 { 3049 SKILL_TECHNIQUE, 3050 '+', 1000, 3051 '+', 0, 3052 }, 3053 #ifdef DUAL_WIELD 3054 { /* dual-wield */ 3055 SKILL_DUAL, 3056 '+', 1000, 3057 '+', 0, 3058 }, 3059 #endif 3060 { 3061 SKILL_SWORD, 3062 '+', 0, 3063 '+', 600, 3064 }, 3065 { 3066 SKILL_CRITS, 3067 '+', 0, 3068 '+', 900, 3069 }, 3070 { 3071 SKILL_BOW, 3072 '+', 0, 3073 '+', 350, 3074 }, 3075 { 3076 SKILL_XBOW, 3077 '+', 0, 3078 '+', 350, 3079 }, 3080 { 3081 SKILL_BOOMERANG, 3082 '+', 0, 3083 '+', 600, 3084 }, 3085 { 3086 SKILL_SLING, 3087 '+', 0, 3088 '+', 450, 3089 }, 3090 { 3091 SKILL_MARTIAL_ARTS, 3092 '+', 0, 3093 '+', 500, 3094 }, 3095 { 3096 SKILL_MAGIC, 3097 '+', 1000, 3098 '+', 600, 3099 }, 3100 /* They can be changed */ 3101 { 3102 SKILL_CONVEYANCE, 3103 '+', 0, 3104 '+', 750, 3105 }, 3106 { 3107 SKILL_DIVINATION, 3108 '+', 0, 3109 '+', 750, 3110 }, 3111 { 3112 SKILL_AIR, 3113 '+', 0, 3114 '+', 750, 3115 }, 3116 { 3117 SKILL_DEVICE, 3118 '+', 1000, 3119 '+', 950, 3120 }, 3121 3122 /* Necromancy for this class - experimental */ 3123 { 3124 SKILL_NECROMANCY, 3125 '+', 0, 3126 '+', 1000, 3127 }, 3128 { 3129 SKILL_TRAUMATURGY, 3130 '+', 0, 3131 '+', 1000, 3132 }, 3133 { 3134 SKILL_AURA_FEAR, 3135 '+', 0, 3136 '+', 1000, 3137 }, 3138 { 3139 SKILL_AURA_SHIVER, 3140 '+', 0, 3141 '+', 1000, 3142 }, 3143 { 3144 SKILL_AURA_DEATH, 3145 '+', 0, 3146 '+', 1000, 3147 }, 3148 3149 { 3150 SKILL_SNEAKINESS, 3151 '+', 1000, 3152 '+', 900,//1200, 3153 }, 3154 { 3155 SKILL_STEALTH, 3156 '+', 1000, 3157 '+', 700, 3158 }, 3159 { 3160 SKILL_DISARM, 3161 '+', 1000, 3162 '+', 1200, 3163 }, 3164 { 3165 SKILL_TRAPPING, 3166 '+', 1000, 3167 '+', 1000, 3168 }, 3169 { 3170 SKILL_STEALING, 3171 '+', 1000, 3172 '+', 1000, 3173 }, 3174 { 3175 SKILL_BACKSTAB, 3176 '+', 1000, 3177 '+', 1000, 3178 }, 3179 { 3180 SKILL_DODGE, 3181 '+', 1000, 3182 '+', 900, 3183 }, 3184 /* Health tree */ 3185 { 3186 SKILL_HEALTH, 3187 '+', 1000, 3188 '+', 1000, 3189 }, 3190 { 3191 SKILL_AGILITY, 3192 '+', 1000, 3193 '+', 500, 3194 }, 3195 { 3196 SKILL_CALMNESS, 3197 '+', 0, 3198 // '+', 600, 3199 '+', 800, 3200 }, 3201 { 3202 SKILL_SWIM, 3203 '+', 0, 3204 '%', 120, 3205 }, 3206 { 3207 SKILL_DIG, 3208 '+', 0, 3209 '+', 1100, 3210 }, 3211 { 3212 SKILL_INTERCEPT, 3213 '+', 1000, 3214 '+', 900, 3215 }, 3216 } 3217 }, 3218 3219 { 3220 "Mimic", 3221 TERM_L_WHITE, //confusing 3222 // TERM_ORANGE, <- more confusing since they're supposed to use a monster form 3223 { 1, 0, 0, 1, 1, -4}, 3224 {19+100, 0, 0, 10+100, 0, 0},//21,19 3225 25, 34, 28, 1, 18, 18, 60, 46, 3226 9, 9, 10, 0, 0, 0, 40, 25, 3227 6, 30,//3, 40,//4, 25 3228 // 8, 40, 3229 { 3230 { 3231 SKILL_COMBAT, 3232 '+', 3000, 3233 '+', 1600, 3234 }, 3235 { 3236 SKILL_MASTERY, 3237 '+', 1000, 3238 '+', 800,//750 3239 }, 3240 { 3241 SKILL_TECHNIQUE, 3242 '+', 1000, 3243 '+', 0, 3244 }, 3245 #ifdef ENABLE_STANCES 3246 { 3247 SKILL_STANCE, 3248 '+', 1000, 3249 '+', 0, 3250 }, 3251 #endif 3252 { 3253 SKILL_SWORD, 3254 '+', 0, 3255 '+', 630, 3256 }, 3257 { 3258 SKILL_AXE, 3259 '+', 0, 3260 '+', 630, 3261 }, 3262 { 3263 SKILL_BLUNT, 3264 '+', 0, 3265 '+', 630, 3266 }, 3267 { 3268 SKILL_POLEARM, 3269 '+', 0, 3270 '+', 630, 3271 }, 3272 { 3273 SKILL_BOW, 3274 '+', 0, 3275 '+', 250, 3276 }, 3277 { 3278 SKILL_XBOW, 3279 '+', 0, 3280 '+', 250, 3281 }, 3282 { 3283 SKILL_SLING, 3284 '+', 0, 3285 '+', 350, 3286 }, 3287 { 3288 SKILL_BOOMERANG, 3289 '+', 0, 3290 '+', 500, 3291 }, 3292 { 3293 SKILL_MARTIAL_ARTS, 3294 '+', 0, 3295 '+', 550, 3296 }, 3297 { 3298 SKILL_MAGIC, 3299 '+', 1000, 3300 '+', 700, 3301 }, 3302 { 3303 SKILL_MIMIC, 3304 '+', 1000, 3305 '+', 900, 3306 }, 3307 { 3308 SKILL_DEVICE, 3309 '+', 1000, 3310 '+', 850, 3311 }, 3312 3313 /* Necromancy for this class - experimental */ 3314 { 3315 SKILL_NECROMANCY, 3316 '+', 0, 3317 '+', 1000, 3318 }, 3319 { 3320 SKILL_TRAUMATURGY, 3321 '+', 0, 3322 '+', 1000, 3323 }, 3324 { 3325 SKILL_AURA_FEAR, 3326 '+', 0, 3327 '+', 1000, 3328 }, 3329 { 3330 SKILL_AURA_SHIVER, 3331 '+', 0, 3332 '+', 1000, 3333 }, 3334 { 3335 SKILL_AURA_DEATH, 3336 '+', 0, 3337 '+', 1000, 3338 }, 3339 3340 { 3341 SKILL_SNEAKINESS, 3342 '+', 0, 3343 '+', 650,//800, 3344 }, 3345 { 3346 SKILL_STEALTH, 3347 '+', 1000, 3348 '+', 500, 3349 }, 3350 { 3351 SKILL_DISARM, 3352 '+', 0, 3353 '+', 500, 3354 }, 3355 { 3356 SKILL_DODGE, 3357 '+', 0, 3358 '+', 600, 3359 }, 3360 { 3361 SKILL_INTERCEPT, 3362 '+', 0, 3363 '+', 600, 3364 }, 3365 /* Health tree */ 3366 { 3367 SKILL_HEALTH, 3368 '+', 1000, 3369 '+', 900, 3370 }, 3371 { 3372 SKILL_DIG, 3373 '+', 0, 3374 '+', 1200, 3375 }, 3376 /* Misc tree */ 3377 { 3378 SKILL_CALMNESS, 3379 '+', 0, 3380 '+', 600, 3381 }, 3382 } 3383 }, 3384 3385 { 3386 "Archer", 3387 TERM_ORANGE, 3388 { 1, 0, 2, 3, 1, -1}, 3389 {0, 0, 0, 18+100, 0, 0}, 3390 30, 22, 28, 2, 24, 20, 56, 72, 3391 8, 8, 10, 0, 0, 0, 30, 50, 3392 5, 10,//3, 15,//5, 15 3393 // 8, 15, 3394 { 3395 { 3396 SKILL_COMBAT, 3397 '+', 1000, 3398 '+', 1700,//buffed from 1300 3399 }, 3400 { 3401 SKILL_MASTERY, 3402 '+', 1000, 3403 '+', 600, 3404 }, 3405 { 3406 SKILL_SWORD, 3407 '+', 0, 3408 '+', 400, 3409 }, 3410 { 3411 SKILL_AXE, 3412 '+', 0, 3413 '+', 400, 3414 }, 3415 { 3416 SKILL_BLUNT, 3417 '+', 0, 3418 '+', 400, 3419 }, 3420 { 3421 SKILL_POLEARM, 3422 '+', 0, 3423 '+', 400, 3424 }, 3425 { 3426 SKILL_ARCHERY, 3427 '+', 2000, 3428 '+', 1000, 3429 }, 3430 { 3431 SKILL_SLING, 3432 '+', 0, 3433 '+', 800, 3434 }, 3435 { 3436 SKILL_BOW, 3437 '+', 1000, 3438 '+', 850, 3439 }, 3440 { 3441 SKILL_XBOW, 3442 '+', 0, 3443 '+', 800, 3444 }, 3445 { 3446 SKILL_BOOMERANG, 3447 '+', 0, 3448 '+', 600, 3449 }, 3450 { 3451 SKILL_DEVICE, 3452 '+', 1000, 3453 '+', 700, 3454 }, 3455 3456 /* Necromancy for this class - experimental */ 3457 { 3458 SKILL_NECROMANCY, 3459 '+', 0, 3460 '+', 1000, 3461 }, 3462 { 3463 SKILL_TRAUMATURGY, 3464 '%', 0, 3465 '%', 0, 3466 }, 3467 { 3468 SKILL_AURA_FEAR, 3469 '+', 0, 3470 '+', 1000, 3471 }, 3472 { 3473 SKILL_AURA_SHIVER, 3474 '+', 0, 3475 '+', 1000, 3476 }, 3477 { 3478 SKILL_AURA_DEATH, 3479 '+', 0, 3480 '+', 1000, 3481 }, 3482 3483 { 3484 SKILL_SNEAKINESS, 3485 '+', 1000, 3486 '+', 600,//600, 3487 }, 3488 { 3489 SKILL_STEALTH, 3490 '+', 1000, 3491 '+', 600, 3492 }, 3493 { 3494 SKILL_DISARM, 3495 '+', 500, 3496 '+', 500, 3497 }, 3498 { 3499 SKILL_DODGE, 3500 '+', 0,/*1000*/ 3501 '+', 700, /*500, but motivating light armour hereby*/ 3502 }, 3503 { 3504 SKILL_ANTIMAGIC, 3505 '+', 0, 3506 '+', 350,//300 3507 }, 3508 /* Health tree */ 3509 { 3510 SKILL_HEALTH, 3511 '+', 1000, 3512 '+', 1000, 3513 }, 3514 { 3515 SKILL_DIG, 3516 '+', 0, 3517 '+', 900, 3518 }, 3519 { 3520 SKILL_CALMNESS, 3521 '+', 0, 3522 '+', 900, 3523 }, 3524 } 3525 }, 3526 3527 { 3528 "Paladin", 3529 TERM_YELLOW, 3530 { 3, -3, 1, 0, 2, 2}, 3531 {20+100, 0, 0+100, 10, 0, 0}, 3532 /* c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb, 3533 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb, 3534 * HD, Exp*/ 3535 10, 21, 54, 1, 13, 16, 60, 40, //was c_thb 29 3536 2, 8, 10, 0, 0, 2, 35, 10, 3537 8, 30,//5, 30,//7,30 3538 // 10, 30, 3539 { 3540 { 3541 SKILL_COMBAT, 3542 '+', 2700, 3543 '+', 1400,//nerfed from 1700 3544 }, 3545 { 3546 SKILL_MASTERY, 3547 '+', 1800, 3548 '+', 900, 3549 }, 3550 { 3551 SKILL_TECHNIQUE, 3552 '+', 1000, 3553 '+', 0, 3554 }, 3555 #ifdef ENABLE_STANCES 3556 { 3557 SKILL_STANCE, 3558 '+', 1000, 3559 '+', 0, 3560 }, 3561 #endif 3562 { 3563 SKILL_SWORD, 3564 '+', 0, 3565 '+', 750, 3566 }, 3567 #if 1 /* offer it at all? */ 3568 { 3569 SKILL_AXE, 3570 '+', 0, 3571 '+', 600,//savage^^ 3572 }, 3573 #endif 3574 { 3575 SKILL_BLUNT, 3576 '+', 0, 3577 '+', 750, 3578 }, 3579 { 3580 SKILL_POLEARM, 3581 '+', 0, 3582 '+', 750, 3583 }, 3584 { 3585 SKILL_BOW, 3586 '+', 0, 3587 '+', 300, 3588 }, 3589 { 3590 SKILL_XBOW, 3591 '+', 0, 3592 '+', 300, 3593 }, 3594 { 3595 /* let's keep it low for now - offbalancing */ 3596 SKILL_MARTIAL_ARTS, 3597 '+', 0, 3598 '+', 500, 3599 }, 3600 3601 { 3602 SKILL_MAGIC, 3603 '+', 1000, 3604 '+', 600, 3605 }, 3606 { 3607 SKILL_SPELL, 3608 '+', 0, 3609 '+', 350, 3610 }, 3611 /* { 3612 SKILL_DIVINATION, 3613 '+', 1000, 3614 '+', 900, 3615 }, 3616 { 3617 SKILL_CONVEYANCE, 3618 '+', 0, 3619 '+', 700, 3620 },*/ 3621 { 3622 SKILL_HOFFENSE, 3623 '+', 0, 3624 '+', 800, 3625 }, 3626 { 3627 SKILL_HDEFENSE, 3628 '+', 1000, 3629 '+', 800, 3630 }, 3631 { 3632 SKILL_HCURING, 3633 '+', 0, 3634 '+', 700, 3635 }, 3636 { 3637 SKILL_HSUPPORT, 3638 '+', 0, 3639 '+', 800, 3640 }, 3641 3642 { 3643 SKILL_DEVICE, 3644 '+', 1000, 3645 '+', 800, 3646 }, 3647 { 3648 SKILL_SNEAKINESS, 3649 '+', 1000, 3650 '+', 500, //650, 3651 }, 3652 { 3653 SKILL_DISARM, 3654 '+', 1000, 3655 '+', 600, 3656 }, 3657 { 3658 SKILL_DODGE, 3659 '+', 0,/*1000*/ 3660 '+', 600, 3661 }, 3662 { 3663 SKILL_STEALTH, 3664 '+', 0, 3665 '+', 500, 3666 }, 3667 3668 /* Health tree */ 3669 { 3670 SKILL_HEALTH, 3671 '+', 2000, 3672 '+', 1000, 3673 }, 3674 { 3675 SKILL_DIG, 3676 '+', 1000, 3677 '+', 700, 3678 }, 3679 { 3680 SKILL_CALMNESS, 3681 '+', 0, 3682 '+', 600, 3683 }, 3684 { 3685 SKILL_INTERCEPT, 3686 '+', 1000, 3687 '+', 800, 3688 }, 3689 } 3690 }, 3691 3692 { 3693 "Ranger", 3694 TERM_L_UMBER, 3695 { 2, 2, -1, 1, 2, 0}, 3696 {19+100, 0+100, 0, 10+100, 0, 0},//21,19 3697 /* c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb, 3698 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb, 3699 * HD, Exp*/ 3700 34, 32, 30, 5, 30, 30, 50, 60, 3701 10, 9, 10, 0, 15, 5, 30, 45, 3702 7, 35,//4, 35,//6, 35 3703 // 9, 35, 3704 { 3705 { 3706 SKILL_COMBAT, 3707 '+', 1500, 3708 '+', 1000,//nerfed from 1300 3709 }, 3710 { 3711 SKILL_MASTERY, 3712 '+', 1000, 3713 '+', 800,//700 3714 }, 3715 { 3716 SKILL_TECHNIQUE, 3717 '+', 1000, 3718 '+', 0, 3719 }, 3720 #ifdef DUAL_WIELD /* rangers get an exception for now. hoping it'll balance out with giving them stances as well! */ 3721 { /* dual-wield */ 3722 SKILL_DUAL, 3723 '+', 1000, 3724 '+', 0, 3725 }, 3726 #endif 3727 #ifdef ENABLE_STANCES 3728 { 3729 SKILL_STANCE, 3730 '+', 1000, 3731 '+', 0, 3732 }, 3733 #endif 3734 { 3735 SKILL_SWORD, 3736 '+', 0, 3737 '+', 700, 3738 }, 3739 { 3740 SKILL_AXE, 3741 '+', 0, 3742 '+', 700, 3743 }, 3744 { 3745 SKILL_BLUNT, 3746 '+', 0, 3747 '+', 700, 3748 }, 3749 { 3750 SKILL_POLEARM, 3751 '+', 0, 3752 '+', 700, 3753 }, 3754 #if 1 /* allowed in combination with SKF1_MAX_10 restriction */ 3755 { 3756 SKILL_ARCHERY, 3757 '+', 1000, 3758 '+', 700,//500 3759 }, 3760 #endif 3761 { 3762 SKILL_SLING, 3763 '+', 0, 3764 '+', 450,//350 3765 }, 3766 { 3767 SKILL_BOW, 3768 '+', 1000, 3769 '+', 450,//350 3770 }, 3771 { 3772 SKILL_XBOW, 3773 '+', 0, 3774 '+', 450,//350 3775 }, 3776 { 3777 SKILL_BOOMERANG, 3778 '+', 0, 3779 '+', 600, 3780 }, 3781 { 3782 /* let's keep it low for now - offbalancing */ 3783 SKILL_MARTIAL_ARTS, 3784 '+', 0, 3785 '+', 500, 3786 }, 3787 { 3788 SKILL_MAGIC, 3789 '+', 1000, 3790 '+', 800, 3791 }, 3792 { 3793 SKILL_SPELL, 3794 '+', 0, 3795 '+', 450, 3796 }, 3797 { 3798 SKILL_MANA, 3799 '+', 1000, /* Allow to cast Manathrust */ 3800 '+', 700,//was 600 hmm 3801 }, 3802 { 3803 SKILL_FIRE, 3804 '+', 0, 3805 '+', 900, 3806 }, 3807 { 3808 SKILL_AIR, 3809 '+', 0, 3810 '+', 900, 3811 }, 3812 { 3813 SKILL_EARTH, 3814 '+', 0, 3815 '+', 900, 3816 }, 3817 { 3818 SKILL_WATER, 3819 '+', 0, 3820 '+', 900, 3821 }, 3822 { 3823 SKILL_NATURE, 3824 '+', 0, 3825 '+', 900, 3826 }, 3827 { 3828 SKILL_DIVINATION, 3829 '+', 0, 3830 '+', 800, 3831 }, 3832 { 3833 SKILL_CONVEYANCE, 3834 '+', 0, 3835 '+', 900, 3836 }, 3837 { 3838 SKILL_META, 3839 '+', 0, 3840 '+', 800, 3841 }, 3842 { 3843 SKILL_MIND, 3844 '+', 0, 3845 '+', 800, 3846 }, 3847 #if 1 3848 { 3849 SKILL_TEMPORAL, 3850 '+', 0, 3851 '+', 700,//600,//800 3852 }, 3853 #endif 3854 { 3855 SKILL_DEVICE, 3856 '+', 1000, 3857 '+', 1000, 3858 }, 3859 { 3860 SKILL_SNEAKINESS, 3861 '+', 1000, 3862 '+', 750,//900, 3863 }, 3864 { 3865 SKILL_DISARM, 3866 '+', 1000, 3867 '+', 900, 3868 }, 3869 { 3870 SKILL_DODGE, 3871 '+', 0,/*1000*/ 3872 '+', 700, 3873 }, 3874 { 3875 SKILL_STEALTH, 3876 '+', 0, 3877 '+', 600, 3878 }, 3879 { 3880 SKILL_TRAPPING, 3881 '+', 1000, 3882 '+', 1100, 3883 }, 3884 3885 /* Health tree */ 3886 { 3887 SKILL_HEALTH, 3888 '+', 2000, 3889 '+', 1000, 3890 }, 3891 { 3892 SKILL_SWIM, 3893 '+', 0, 3894 '%', 120, 3895 }, 3896 { 3897 SKILL_DIG, 3898 '+', 1000, 3899 '+', 1200, 3900 }, 3901 { 3902 SKILL_CALMNESS, 3903 '+', 0, 3904 '+', 700, 3905 }, 3906 { 3907 SKILL_INTERCEPT, 3908 '+', 1000, 3909 '+', 800, 3910 }, 3911 } 3912 }, 3913 3914 { 3915 "Adventurer", 3916 TERM_VIOLET, 3917 { 0, 0, 0, 0, 0, 0}, 3918 {19, 0, 0, 10, 0, 0},//20,10 3919 30, 22, 20, 3, 15, 15, 50, 50, 3920 10, 8, 10, 0, 5, 5, 25, 25,//..,0,0,25,25 3921 6, 25, //3, 0,//5,0, 3922 // 8, 10, 3923 { 3924 /* Combat tree */ 3925 { 3926 SKILL_COMBAT, 3927 '+', 1000, 3928 '+', 900, 3929 }, 3930 { 3931 SKILL_MASTERY, 3932 '+', 0,//1000, 3933 '+', 600, 3934 }, 3935 { 3936 SKILL_TECHNIQUE, 3937 '+', 1000, 3938 '+', 0, 3939 }, 3940 { 3941 SKILL_SWORD, 3942 '+', 0, 3943 '+', 550, 3944 }, 3945 { 3946 SKILL_AXE, 3947 '+', 0, 3948 '+', 600, 3949 }, 3950 { 3951 SKILL_BLUNT, 3952 '+', 0, 3953 '+', 600, 3954 }, 3955 { 3956 SKILL_POLEARM, 3957 '+', 0, 3958 '+', 500, 3959 }, 3960 { 3961 SKILL_SLING, 3962 '+', 1000, 3963 '+', 350, 3964 }, 3965 { 3966 SKILL_BOW, 3967 '+', 0, 3968 '+', 350, 3969 }, 3970 { 3971 SKILL_XBOW, 3972 '+', 0, 3973 '+', 350, 3974 }, 3975 { 3976 SKILL_BOOMERANG, 3977 '+', 1000, 3978 '+', 700, 3979 }, 3980 { 3981 /* let's keep it low for now - offbalancing */ 3982 SKILL_MARTIAL_ARTS, 3983 '+', 0, 3984 // '+', 450, 3985 '+', 500, 3986 }, 3987 3988 /* Magic tree */ 3989 { 3990 SKILL_MAGIC, 3991 '+', 0,//2000, 3992 '+', 600, 3993 }, 3994 { 3995 SKILL_CONVEYANCE, 3996 '+', 0,//1000, 3997 '+', 650, 3998 }, 3999 { 4000 SKILL_DEVICE, 4001 '+', 1000, 4002 '+', 900, 4003 }, 4004 { 4005 SKILL_SPELL, 4006 '+', 0, 4007 '+', 350, /* reduced from 500, after 4008 sorcery & mimicry got raised, 4009 to avoid adv becoming best sorc */ 4010 }, 4011 { 4012 SKILL_MANA, 4013 '+', 0, //1000, 4014 '+', 500,//600, //500 4015 }, 4016 { 4017 SKILL_FIRE, 4018 '+', 0, 4019 '+', 600,//700, //600.. 4020 }, 4021 { 4022 SKILL_AIR, 4023 '+', 0, 4024 '+', 700, 4025 }, 4026 { 4027 SKILL_EARTH, 4028 '+', 0, 4029 '+', 700, 4030 }, 4031 { 4032 SKILL_WATER, 4033 '+', 0, 4034 '+', 700, 4035 }, 4036 { 4037 SKILL_NATURE, 4038 '+', 0, //1000, 4039 '+', 700, 4040 }, 4041 { 4042 SKILL_DIVINATION, 4043 '+', 0, 4044 '+', 500,//600, //500 4045 }, 4046 { 4047 SKILL_META, 4048 '+', 0, 4049 '+', 300, 4050 }, 4051 { 4052 SKILL_MIND, 4053 '+', 0, 4054 '+', 500,//600, //500 4055 }, 4056 #if 1 4057 { 4058 SKILL_TEMPORAL, 4059 '+', 0, 4060 '+', 400,//500, //400 4061 }, 4062 #endif 4063 { 4064 SKILL_HOFFENSE, 4065 '+', 0, 4066 '+', 500,//600, //500 4067 }, 4068 { 4069 SKILL_HDEFENSE, 4070 '+', 0, 4071 '+', 600, 4072 }, 4073 { 4074 SKILL_HCURING, 4075 '+', 0, 4076 '+', 600, 4077 }, 4078 { 4079 SKILL_HSUPPORT, 4080 '+', 0, 4081 '+', 600, 4082 }, 4083 #if 1 4084 { 4085 SKILL_DRUID_ARCANE, 4086 '+', 0, 4087 '+', 500, //was formerly 300 for SKILL_DRUID (combined skill) 4088 }, 4089 { 4090 SKILL_DRUID_PHYSICAL, 4091 '+', 0, 4092 '+', 500, 4093 }, 4094 #else 4095 { 4096 SKILL_DRUID, 4097 '+', 0, '+', 300, 4098 }, 4099 #endif 4100 { 4101 SKILL_PPOWER, 4102 '+', 0, 4103 '+', 500, 4104 }, 4105 { 4106 SKILL_TCONTACT, 4107 '+', 0, 4108 '+', 500, 4109 }, 4110 { 4111 SKILL_MINTRUSION, 4112 '+', 0, 4113 '+', 500, 4114 }, 4115 4116 { 4117 SKILL_R_LITE, 4118 '+', 0, 4119 '+', 500, 4120 }, 4121 { 4122 SKILL_R_DARK, 4123 '+', 0, 4124 '+', 500, 4125 }, 4126 { 4127 SKILL_R_NEXU, 4128 '+', 0, 4129 '+', 500, 4130 }, 4131 { 4132 SKILL_R_NETH, 4133 '+', 0, 4134 '+', 500, 4135 }, 4136 { 4137 SKILL_R_CHAO, 4138 '+', 0, 4139 '+', 500, 4140 }, 4141 { 4142 SKILL_R_MANA, 4143 '+', 0, 4144 '+', 500, 4145 }, 4146 { 4147 SKILL_MIMIC, 4148 '+', 0, 4149 '+', 400, /* 300 was 'safer' */ 4150 }, 4151 4152 /* Sneakiness tree */ 4153 { 4154 SKILL_SNEAKINESS, 4155 '+', 1000, 4156 '+', 800,//700 4157 }, 4158 { 4159 SKILL_DISARM, 4160 '+', 1000, 4161 '+', 800,//700, 4162 }, 4163 { 4164 SKILL_TRAPPING, 4165 '+', 1000,//0, 4166 '+', 900,//600, 4167 }, 4168 { 4169 SKILL_STEALTH, 4170 '+', 1000, 4171 '+', 600, 4172 }, 4173 { 4174 SKILL_STEALING, 4175 '+', 0, 4176 '+', 600, 4177 }, 4178 { 4179 SKILL_DODGE, 4180 '+', 0, 4181 '+', 600, 4182 }, 4183 4184 /* Necromancy tree */ 4185 { 4186 SKILL_NECROMANCY, 4187 '+', 0, 4188 '+', 1000, 4189 }, 4190 { 4191 SKILL_TRAUMATURGY, 4192 '+', 0, 4193 '+', 1000, 4194 }, 4195 { 4196 SKILL_AURA_FEAR, 4197 '+', 0, 4198 '+', 1000, 4199 }, 4200 { 4201 SKILL_AURA_SHIVER, 4202 '+', 0, 4203 '+', 1000, 4204 }, 4205 { 4206 SKILL_AURA_DEATH, 4207 '+', 0, 4208 '+', 1000, 4209 }, 4210 { 4211 SKILL_ANTIMAGIC, 4212 '+', 0, 4213 '+', 500, 4214 }, 4215 /* Health tree */ 4216 { 4217 SKILL_HEALTH, 4218 '+', 1000, 4219 '+', 1100, 4220 }, 4221 { 4222 SKILL_SWIM, 4223 '+', 0, 4224 '%', 140, 4225 }, 4226 { 4227 SKILL_DIG, 4228 '+', 1000, 4229 '+', 1400, 4230 }, 4231 /* Misc tree */ 4232 { 4233 SKILL_CALMNESS, 4234 '+', 0, 4235 '+', 700, 4236 }, 4237 { 4238 SKILL_INTERCEPT, 4239 '+', 0, 4240 '+', 700, 4241 }, 4242 4243 } 4244 }, 4245 4246 { 4247 "Druid", /* by the_sandman -- w00t w00t -- a shapechanger+magical class */ 4248 TERM_L_GREEN, 4249 { 1, 0, 2, -2, -2, 1}, 4250 {0, 0, 0+100, 0, 0, 0}, 4251 /* c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb, 4252 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb, 4253 * HD, Exp*/ 4254 30, 35, 30, 4, 25, 25, 50, 44, 4255 8, 10, 10, 0, 10, 5, 20, 25, 4256 5, 35,//5, 40 4257 { 4258 { 4259 SKILL_COMBAT, 4260 '+', 1000, 4261 '+', 1000,//nerfed from 1300 4262 }, 4263 { 4264 SKILL_TECHNIQUE, 4265 '+', 1000, 4266 '+', 0, 4267 }, 4268 #if 1 /* druids are martial artists, so no need for these */ 4269 { 4270 SKILL_SLING, 4271 '+', 0, 4272 '+', 300, 4273 }, 4274 { 4275 SKILL_BOW, 4276 '+', 0, 4277 '+', 250, 4278 }, 4279 { 4280 SKILL_XBOW, 4281 '+', 0, 4282 '+', 250, 4283 }, 4284 { 4285 SKILL_BOOMERANG, 4286 '+', 0, 4287 '+', 350, 4288 }, 4289 #endif 4290 { 4291 SKILL_MARTIAL_ARTS, 4292 '+', 1000, /* make newbies' lives easier */ 4293 '+', 650, 4294 }, 4295 /* Added nullifying of interception here, since some newbie 4296 trained it as a human druid (mad waste of points) */ 4297 { 4298 SKILL_INTERCEPT, 4299 '%', 0, 4300 '%', 0, 4301 }, 4302 { 4303 SKILL_MAGIC, 4304 '+', 1000, 4305 '+', 1000, 4306 }, 4307 { 4308 SKILL_AIR, 4309 '+', 0, 4310 '+', 1000, //900, 4311 }, 4312 { 4313 SKILL_EARTH, 4314 '+', 0, 4315 '+', 1000, //900, 4316 }, 4317 { 4318 SKILL_WATER, 4319 '+', 0, 4320 '+', 1000, //900, 4321 }, 4322 { 4323 SKILL_NATURE, 4324 '+', 0, 4325 '+', 1100, //900, 4326 }, 4327 { 4328 SKILL_DRUID_ARCANE, 4329 '+', 1000, 4330 '+', 1200, //1500, 4331 }, 4332 { 4333 SKILL_DRUID_PHYSICAL, 4334 '+', 1000, 4335 '+', 1200, //1500, 4336 }, 4337 { 4338 SKILL_MIMIC, 4339 '+', 1000, 4340 '+', 0, 4341 }, 4342 { 4343 SKILL_DEVICE, 4344 '+', 1000, 4345 '+', 1000, 4346 }, 4347 { 4348 SKILL_SNEAKINESS, 4349 '+', 1000, 4350 '+', 600,//750, 4351 }, 4352 { 4353 SKILL_DISARM, 4354 '+', 0,/*1000*/ 4355 '+', 600, 4356 }, 4357 { 4358 SKILL_DODGE, 4359 '+', 0,/*1000*/ 4360 '+', 600, 4361 }, 4362 { 4363 SKILL_STEALTH, 4364 '+', 0, 4365 '+', 600, 4366 }, 4367 { 4368 SKILL_CALMNESS, 4369 '+', 0, 4370 '+', 800, 4371 }, 4372 /* Health tree */ 4373 { 4374 SKILL_HEALTH, 4375 '+', 2000, 4376 '+', 1100, 4377 }, 4378 { 4379 SKILL_SWIM, 4380 '+', 0, 4381 '%', 120, 4382 }, 4383 { 4384 SKILL_DIG, 4385 '+', 1000, 4386 '+', 1200, 4387 }, 4388 } 4389 }, 4390 4391 { 4392 "Shaman", /* by C. Blue -- Minor shapechange (restrictions), Necromancy/Praying/Magic */ 4393 TERM_L_RED, 4394 { 0, 1, 2, -2, 0, 0}, 4395 {0, 0, 0, 0, 0, 0}, 4396 /* c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb, 4397 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb, 4398 * HD, Exp*/ 4399 10, 30, 30, 4, 20, 30, 45, 23, 4400 0, 10, 10, 0, 3, 5, 20, 12, 4401 3, 40, //3, 45 4402 { 4403 #if 0 /* mimicmage/mimicpriest/mimicmagepriest pure caster shaman as actually intended */ 4404 { 4405 SKILL_COMBAT, 4406 '+', 0, 4407 '+', 300,//priests=750,istari=300 4408 }, 4409 { 4410 SKILL_MAGIC, 4411 '+', 2000, 4412 '+', 1000, 4413 }, 4414 { 4415 SKILL_CONVEYANCE, 4416 '+', 1000, 4417 '+', 1000, 4418 }, 4419 { 4420 SKILL_DEVICE, 4421 '+', 0, 4422 '+', 1000, 4423 }, 4424 { 4425 SKILL_SPELL, 4426 '+', 0, 4427 '+', 500, 4428 }, 4429 { 4430 SKILL_MANA, 4431 '+', 1000, 4432 '+', 700,//600 4433 }, 4434 { 4435 SKILL_FIRE, 4436 '+', 0, 4437 '+', 1000, 4438 }, 4439 { 4440 SKILL_AIR, 4441 '+', 0, 4442 '+', 1000, 4443 }, 4444 { 4445 SKILL_EARTH, 4446 '+', 0, 4447 '+', 1000, 4448 }, 4449 { 4450 SKILL_WATER, 4451 '+', 0, 4452 '+', 1000, 4453 }, 4454 { 4455 SKILL_NATURE, 4456 '+', 0, 4457 '+', 1000, 4458 }, 4459 { 4460 SKILL_DIVINATION, 4461 '+', 0, 4462 '+', 1000, 4463 }, 4464 { 4465 SKILL_UDUN, 4466 '+', 0, 4467 '+', 900, 4468 }, 4469 { 4470 SKILL_META, 4471 '+', 0, 4472 '+', 500, 4473 }, 4474 { 4475 SKILL_MIND, 4476 '+', 0, 4477 '+', 1000, 4478 }, 4479 { 4480 SKILL_HOFFENSE, 4481 '+', 1000, 4482 '+', 900, 4483 }, 4484 { 4485 SKILL_HDEFENSE, 4486 '+', 0, 4487 '+', 900, 4488 }, 4489 { 4490 SKILL_HCURING, 4491 '+', 0, 4492 '+', 900, 4493 }, 4494 { 4495 SKILL_HSUPPORT, 4496 '+', 0, 4497 '+', 900, 4498 }, 4499 { 4500 SKILL_MIMIC, 4501 '+', 1000, 4502 '+', 800, 4503 /* only: giant, dragon, animal, ghost, elemental, DR */ 4504 }, 4505 /* Sneakiness tree */ 4506 { 4507 SKILL_SNEAKINESS, 4508 '+', 0, 4509 '+', 400, 4510 }, 4511 { 4512 SKILL_STEALTH, 4513 '+', 1000, 4514 '+', 600, 4515 }, 4516 4517 /* Necromancy tree */ 4518 { 4519 SKILL_NECROMANCY, 4520 '+', 0, 4521 '+', 1500, 4522 }, 4523 { 4524 SKILL_TRAUMATURGY, 4525 '+', 0, 4526 '+', 1500, 4527 }, 4528 { 4529 SKILL_AURA_FEAR, 4530 '+', 0, 4531 '+', 1500, 4532 }, 4533 { 4534 SKILL_AURA_SHIVER, 4535 '+', 0, 4536 '+', 1500, 4537 }, 4538 { 4539 SKILL_AURA_DEATH, 4540 '+', 0, 4541 '+', 1500, 4542 }, 4543 /* Health tree */ 4544 { 4545 SKILL_HEALTH, 4546 '+', 1000, 4547 '+', 1000, 4548 }, 4549 { 4550 SKILL_DIG, 4551 '+', 1000, 4552 '+', 1000, 4553 }, 4554 /* Misc tree - let's keep it actually! */ 4555 { 4556 SKILL_CALMNESS, 4557 '+', 0, 4558 '+', 900, 4559 }, 4560 #else /* fighting shamans, rivalling priests/paladins/rangers - currently enabled \ 4561 since offensive spells are lacking, until spell system gets reworked */ 4562 { 4563 SKILL_AXE, 4564 '+', 0, 4565 '+', 400, 4566 }, 4567 { 4568 SKILL_BLUNT, 4569 '+', 0, 4570 '+', 400, 4571 }, 4572 { 4573 SKILL_POLEARM, 4574 '+', 0, 4575 '+', 400, 4576 }, 4577 { 4578 SKILL_MARTIAL_ARTS, 4579 '+', 0, 4580 '+', 400, 4581 }, 4582 /* Combat tree */ 4583 { 4584 SKILL_COMBAT, 4585 '+', 0, 4586 '+', 300,//priests=750,istari=300 4587 }, 4588 { 4589 SKILL_MASTERY, 4590 '+', 0, 4591 '+', 150, 4592 }, 4593 /* Magic tree */ 4594 { 4595 SKILL_MAGIC, 4596 '+', 2000, 4597 '+', 600,//500 4598 }, 4599 { 4600 SKILL_CONVEYANCE, 4601 '+', 1000, 4602 '+', 1000, 4603 }, 4604 { 4605 SKILL_DEVICE, 4606 '+', 0, 4607 '+', 1000, 4608 }, 4609 { 4610 SKILL_SPELL, 4611 '+', 0, 4612 '+', 500, 4613 }, 4614 { 4615 SKILL_MANA, 4616 '+', 1000, 4617 '+', 1000, 4618 }, 4619 { 4620 SKILL_FIRE, 4621 '+', 0, 4622 '+', 1000, 4623 }, 4624 { 4625 SKILL_AIR, 4626 '+', 0, 4627 '+', 1000, 4628 }, 4629 { 4630 SKILL_EARTH, 4631 '+', 0, 4632 '+', 1000, 4633 }, 4634 { 4635 SKILL_WATER, 4636 '+', 0, 4637 '+', 1000, 4638 }, 4639 { 4640 SKILL_NATURE, 4641 '+', 0, 4642 '+', 1000, 4643 }, 4644 { 4645 SKILL_DIVINATION, 4646 '+', 0, 4647 '+', 1000, 4648 }, 4649 { 4650 SKILL_UDUN, 4651 '+', 0, 4652 '+', 900, 4653 }, 4654 { 4655 SKILL_META, 4656 '+', 0, 4657 '+', 500, 4658 }, 4659 { 4660 SKILL_MIND, 4661 '+', 0, 4662 '+', 1000, 4663 }, 4664 { 4665 SKILL_HOFFENSE, 4666 '+', 1000, 4667 '+', 900, 4668 // '+', 1000, 4669 }, 4670 { 4671 SKILL_HDEFENSE, 4672 '+', 0, 4673 '+', 900, 4674 // '+', 1000, 4675 }, 4676 { 4677 SKILL_HCURING, 4678 '+', 0, 4679 // '+', 1100, 4680 '+', 900, 4681 // '+', 1000, 4682 }, 4683 { 4684 SKILL_HSUPPORT, 4685 '+', 0, 4686 '+', 900, 4687 // '+', 1000, 4688 }, 4689 { 4690 SKILL_MIMIC, 4691 '+', 1000, 4692 '+', 800, 4693 /* only: giant, dragon, animal, ghost, elemental, DR */ 4694 }, 4695 4696 /* Sneakiness tree */ 4697 { 4698 SKILL_SNEAKINESS, 4699 '+', 0, 4700 '+', 400, 4701 }, 4702 { 4703 SKILL_STEALTH, 4704 '+', 1000, 4705 '+', 600, 4706 }, 4707 4708 /* Necromancy tree */ 4709 { 4710 SKILL_NECROMANCY, 4711 '+', 0, 4712 '+', 1500, 4713 }, 4714 { 4715 SKILL_TRAUMATURGY, 4716 '+', 0, 4717 '+', 1500, 4718 }, 4719 { 4720 SKILL_AURA_FEAR, 4721 '+', 0, 4722 '+', 1500, 4723 }, 4724 { 4725 SKILL_AURA_SHIVER, 4726 '+', 0, 4727 '+', 1500, 4728 }, 4729 { 4730 SKILL_AURA_DEATH, 4731 '+', 0, 4732 '+', 1500, 4733 }, 4734 /* Health tree */ 4735 { 4736 SKILL_HEALTH, 4737 '+', 1000, 4738 '+', 1000, 4739 }, 4740 { 4741 SKILL_DIG, 4742 '+', 1000, 4743 '+', 1000, 4744 }, 4745 /* Misc tree - let's keep it actually! */ 4746 { 4747 SKILL_CALMNESS, 4748 '+', 0, 4749 '+', 900, 4750 }, 4751 { 4752 SKILL_INTERCEPT, 4753 '+', 0, 4754 '+', 500, 4755 }, 4756 #endif 4757 } 4758 }, 4759 4760 { 4761 "Runemaster", /* A mage/rogue class, more caster than fighter, but with high spell damage / low durability. 4762 * Intended to be the 'warrior' of the magic classes, but with allowed hybridization. 4763 */ 4764 TERM_L_BLUE, 4765 { 1, 2, -3, 3, -3, -3}, 4766 {15, 0+100, 0, 19+100, 0, 0}, 4767 /* c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb, 4768 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb, 4769 * HD, Exp*/ 4770 30, 23, 20, 2, 20, 30, 45, 40, 4771 10, 10, 10, 0, 3, 5, 20, 20, 4772 5, 20, 4773 { 4774 { 4775 SKILL_COMBAT, 4776 '+', 0, 4777 '+', 1000, 4778 }, 4779 { 4780 SKILL_TECHNIQUE, 4781 '+', 1000, 4782 '+', 0, 4783 }, 4784 /* "I am able to learn sword, but not weapon mastery in general, nor combat" */ 4785 /* combat is ok, but i guess they aren't disciplined enough for w-mastery ;) */ 4786 { 4787 SKILL_SWORD, 4788 '+', 0, 4789 '+', 900, 4790 }, 4791 { 4792 SKILL_CRITS, 4793 '+', 0, 4794 '+', 400, 4795 }, 4796 { 4797 SKILL_AXE, 4798 '+', 0, 4799 '+', 800, 4800 }, 4801 { 4802 SKILL_BLUNT, 4803 '+', 0, 4804 '+', 800, 4805 }, 4806 { 4807 SKILL_POLEARM, 4808 '+', 0, 4809 '+', 800, 4810 }, 4811 /* MA ratio is so low, let's remove it and increase boomerangs, for class variety? */ 4812 /* For flavour, make them boomerang specialists (enchantable), removing ammo-fueled types. */ 4813 /* This should further distance them from rangers as a class. */ 4814 /* 4815 { 4816 SKILL_MARTIAL_ARTS, 4817 '+', 0, 4818 '+', 200, 4819 }, 4820 */ 4821 { 4822 SKILL_BOOMERANG, 4823 '+', 0, 4824 '+', 800, 4825 }, 4826 /* 4827 { 4828 SKILL_SLING, 4829 '+', 0, 4830 '+', 700, 4831 }, 4832 */ 4833 /* Starting MP equivalent to Istari, er, or just slightly worse! (caster/blaster) */ 4834 { 4835 SKILL_MAGIC, 4836 '+', 3000, //4000 4837 '+', 1000, 4838 }, 4839 /* Sneakiness tree */ 4840 { 4841 SKILL_SNEAKINESS, 4842 '+', 1000, 4843 '+', 600, 4844 }, 4845 { 4846 SKILL_STEALTH, 4847 '+', 1000, 4848 '+', 600, 4849 }, 4850 /* Disabling trapping too, runies would use glyphs, and don't want additional inventory clutter. */ 4851 /* 4852 { 4853 SKILL_TRAPPING, 4854 '+', 0, 4855 '+', 900, 4856 }, 4857 */ 4858 { 4859 SKILL_STEALING, 4860 '+', 0, 4861 '+', 700, 4862 }, 4863 { 4864 SKILL_BACKSTAB, 4865 '+', 0, 4866 '+', 700, 4867 }, 4868 { 4869 SKILL_DODGE, 4870 '+', 0, 4871 '+', 700, 4872 }, 4873 { 4874 SKILL_CALMNESS, 4875 '+', 0, 4876 '+', 1000, 4877 }, 4878 { 4879 SKILL_INTERCEPT, 4880 '+', 0, 4881 '+', 1000, 4882 }, 4883 { 4884 SKILL_R_LITE, 4885 '+', 0, 4886 '+', 1000, 4887 }, 4888 { 4889 SKILL_R_DARK, 4890 '+', 0, 4891 '+', 1000, 4892 }, 4893 { 4894 SKILL_R_NEXU, 4895 '+', 0, 4896 '+', 1000, 4897 }, 4898 { 4899 SKILL_R_NETH, 4900 '+', 0, 4901 '+', 1000, 4902 }, 4903 { 4904 SKILL_R_CHAO, 4905 '+', 0, 4906 '+', 1000, 4907 }, 4908 { 4909 SKILL_R_MANA, 4910 '+', 0, 4911 '+', 1000, 4912 }, 4913 /* Necromancy tree */ 4914 { 4915 SKILL_NECROMANCY, 4916 '+', 0, 4917 '+', 1000, 4918 }, 4919 { 4920 SKILL_TRAUMATURGY, 4921 '+', 0, 4922 '+', 1000, 4923 }, 4924 { 4925 SKILL_AURA_FEAR, 4926 '+', 0, 4927 '+', 1000, 4928 }, 4929 { 4930 SKILL_AURA_SHIVER, 4931 '+', 0, 4932 '+', 1000, 4933 }, 4934 { 4935 SKILL_AURA_DEATH, 4936 '+', 0, 4937 '+', 1000, 4938 }, 4939 /* Health tree */ 4940 { 4941 SKILL_HEALTH, 4942 '+', 1000, 4943 '+', 1000, 4944 }, 4945 { 4946 SKILL_SWIM, 4947 '+', 0, 4948 '%', 110, 4949 }, 4950 { 4951 SKILL_DIG, 4952 '+', 1000, 4953 '+', 1600, 4954 }, 4955 } 4956 }, 4957 4958 #ifdef ENABLE_MCRAFT 4959 { 4960 "Mindcrafter", /* old mindcrafter idea reincarnated in slightly different design - C. Blue: 4961 At first made them a 'caster with melee ability', but now changed mind ;) to 4962 actually view them as 'fighters with psi abilities' instead, improving vitality. */ 4963 TERM_SLATE, 4964 // { -1, 3, 0, -1, -1, 1}, 4965 { 2, 2, 0, 0, 0, 1}, 4966 // {21+100, 0+100, 0, 19+100, 0, 0}, 18/30;10 pretty unreachable with {0,2,0,0,0,1} 4967 {19+100, 0+100, 0, 10+100, 0, 0}, 4968 /* c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb, 4969 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb, 4970 * HD, Exp*/ 4971 30, 28, 36, 3, 35, 14, 55, 45, 4972 0, 9, 5, 0, 3, 3, 26, 25, 4973 // 5, 25, 4974 6, 25, 4975 { 4976 /* Combat tree */ 4977 { 4978 SKILL_COMBAT, 4979 '+', 1000, 4980 // '+', 800, 4981 '+', 1000, 4982 }, 4983 { 4984 SKILL_MASTERY, 4985 '+', 1000, 4986 // '+', 400, 4987 // '+', 600, 4988 '+', 800, 4989 }, 4990 { 4991 SKILL_TECHNIQUE, 4992 '+', 1000, 4993 '+', 0, 4994 }, 4995 { 4996 SKILL_SWORD, 4997 '+', 0, 4998 // '+', 650, 4999 '+', 750, 5000 }, 5001 #if 1 /* savage axes distract their mind..well, or maybe not? */ 5002 { 5003 SKILL_AXE, 5004 '+', 0, 5005 // '+', 600, 5006 '+', 700, 5007 }, 5008 #endif 5009 { 5010 SKILL_BLUNT, 5011 '+', 0, 5012 // '+', 650, 5013 '+', 750, 5014 }, 5015 { 5016 SKILL_POLEARM, 5017 '+', 0, 5018 // '+', 650, 5019 '+', 750, 5020 }, 5021 { 5022 SKILL_MARTIAL_ARTS, 5023 '+', 0, 5024 // '+', 600, 5025 '+', 700, 5026 }, 5027 /*ranged weapon skills shouldnt be better than "Mimic" class. more like "Istar" which has none at all.*/ 5028 { 5029 SKILL_SLING, 5030 '+', 1000, 5031 '+', 250, 5032 }, 5033 { 5034 SKILL_XBOW, 5035 '+', 0, 5036 '+', 300, 5037 }, 5038 { 5039 SKILL_BOOMERANG, 5040 '+', 1000, 5041 '+', 500, 5042 }, 5043 5044 /* Magic tree */ 5045 { 5046 SKILL_MAGIC, 5047 '+', 1000, 5048 '+', 800, 5049 }, 5050 { 5051 SKILL_DEVICE, 5052 '+', 0, 5053 '+', 850, 5054 }, 5055 { 5056 SKILL_PPOWER, 5057 '+', 0, 5058 '+', 1500, 5059 }, 5060 { 5061 SKILL_TCONTACT, 5062 '+', 0, 5063 '+', 1500, 5064 }, 5065 { 5066 SKILL_MINTRUSION, 5067 '+', 1000, 5068 '+', 1500, 5069 }, 5070 5071 /* Sneakiness tree */ 5072 { 5073 SKILL_SNEAKINESS, 5074 '+', 1000, 5075 '+', 700, 5076 }, 5077 { 5078 SKILL_STEALTH, 5079 '+', 1000, 5080 '+', 700, /* high stealth- jedi hand wave? */ 5081 }, 5082 { 5083 SKILL_DISARM, 5084 '+', 0, 5085 '+', 700, 5086 }, 5087 { 5088 SKILL_DODGE, 5089 '+', 0, 5090 '+', 600, 5091 }, 5092 { 5093 SKILL_CALMNESS, 5094 '+', 0, 5095 '+', 1500, 5096 }, 5097 { 5098 SKILL_INTERCEPT, 5099 '+', 0, 5100 '+', 500, 5101 }, 5102 5103 /* Necromancy tree - disturb the mindcrafter slightly maybe*/ 5104 { 5105 SKILL_NECROMANCY, 5106 '+', 0, 5107 '+', 700, 5108 }, 5109 { 5110 SKILL_TRAUMATURGY, 5111 '+', 0, 5112 '+', 800, 5113 }, 5114 { 5115 SKILL_AURA_FEAR, 5116 '+', 0, 5117 '+', 1000, 5118 }, 5119 { 5120 SKILL_AURA_SHIVER, 5121 '+', 0, 5122 '+', 1000, 5123 }, 5124 { 5125 SKILL_AURA_DEATH, 5126 '+', 0, 5127 '+', 900, 5128 }, 5129 /* Health tree */ 5130 { 5131 SKILL_HEALTH, 5132 '+', 1000, 5133 '+', 1000, 5134 }, 5135 { 5136 SKILL_DIG, 5137 '+', 1000, 5138 '+', 900, 5139 }, 5140 } 5141 } 5142 #endif 5143 }; 5144 5145 5146 /* Racial traits, introduced for Draconians - C. Blue */ 5147 player_trait trait_info[MAX_TRAIT] = { 5148 { /* Note: This trait #0 must be allowed for EXACTLY the races that DON'T have any trait. 5149 This can be used to 'disable' all traits for a specific race: Just add it here. */ 5150 "N/A", 5151 #ifdef ENABLE_DRACONIAN_TRAITS 5152 0xFFFFFF & ~RFC, 5153 #else 5154 0xFFFFFF, /* disable for all */ 5155 #endif 5156 },{ "Blue lineage", RFC,//ELEC res->imm +brand+aura 5157 },{ "White lineage", RFC,//COLD res->imm +aura 5158 },{ "Red lineage", RFC,//FIRE res->imm 5159 },{ "Black lineage", RFC,//ACID res->imm 5160 },{ "Green lineage", RFC,//POIS res->imm 5161 },{ "Multi-hued lineage", RFC,//base(+pois?) base/pois 5162 },{ "Bronze lineage", RFC,//conf+fa(+fire?)+refl conf/fa/refl 5163 },{ "Silver lineage", RFC,//cold+fa,refl (pois) cold/pois/refl 5164 },{ "Golden lineage", RFC,//sound+acid,refl(+fear?) acid/sound/refl 5165 },{ "Law lineage", RFC,//shards+sound shards/sound 5166 },{ "Chaos lineage", RFC,//chaos chaos/disen 5167 },{ "Balance lineage", RFC,//disen disen/sound 5168 #if 0 5169 },{ "Power lineage", RFC,//mana/res_tele?NOPE/rare! reflect/blind/fear 5170 #else 5171 },{ "", 0, 5172 #endif 5173 },{ "Enlightened", 0, /* note: directly assigned live; must be N/A on char creation time */ 5174 },{ "Corrupted", 0, /* note: directly assigned live; must be N/A on char creation time */ 5175 },{ "", 0, 5176 },{ "", 0, 5177 },{ "", 0, 5178 },{ "", 0, 5179 },{ "", 0, 5180 },{ "", 0, 5181 },{ "", 0, 5182 },{ "", 0, 5183 },{ "", 0, 5184 },{ "", 0, 5185 },{ "", 0, 5186 },{ "", 0, 5187 },{ "", 0, 5188 },{ "", 0, 5189 },{ "", 0, 5190 },{ "", 0, 5191 }, 5192 }; 5193 5194 5195 /* 5196 * Player Classes. 5197 * 5198 * Title, 5199 * color, 5200 * {STR,INT,WIS,DEX,CON,CHR}, 5201 * {STR,INT,WIS,DEX,CON,CHR} recommended minimum values, 5202 * c_dis, c_dev, c_sav, c_stl, c_srh, c_fos, c_thn, c_thb, 5203 * x_dis, x_dev, x_sav, x_stl, x_srh, x_fos, x_thn, x_thb, 5204 * HD, Exp 5205 */ 5206 5207 /* 5208 * Note that this is the same for all classes (for now). 5209 * 5210 * Such a hack.... 5211 */ 5212 magic_type ghost_spells[64] = 5213 { 5214 { 1, 1, 0, 0}, 5215 { 10, 2, 0, 0}, 5216 { 15, 3, 0, 0}, 5217 { 20, 5, 0, 0}, 5218 { 25, 10, 0, 0}, 5219 { 35, 60, 0, 0}, 5220 { 45, 100, 0, 0}, 5221 5222 { 99, 0, 0, 0}, 5223 { 99, 0, 0, 0}, 5224 { 99, 0, 0, 0}, 5225 { 99, 0, 0, 0}, 5226 { 99, 0, 0, 0}, 5227 { 99, 0, 0, 0}, 5228 { 99, 0, 0, 0}, 5229 { 99, 0, 0, 0}, 5230 { 99, 0, 0, 0}, 5231 { 99, 0, 0, 0}, 5232 { 99, 0, 0, 0}, 5233 { 99, 0, 0, 0}, 5234 { 99, 0, 0, 0}, 5235 { 99, 0, 0, 0}, 5236 { 99, 0, 0, 0}, 5237 { 99, 0, 0, 0}, 5238 { 99, 0, 0, 0}, 5239 { 99, 0, 0, 0}, 5240 { 99, 0, 0, 0}, 5241 { 99, 0, 0, 0}, 5242 { 99, 0, 0, 0}, 5243 { 99, 0, 0, 0}, 5244 { 99, 0, 0, 0}, 5245 { 99, 0, 0, 0}, 5246 { 99, 0, 0, 0}, 5247 { 99, 0, 0, 0}, 5248 { 99, 0, 0, 0}, 5249 { 99, 0, 0, 0}, 5250 { 99, 0, 0, 0}, 5251 { 99, 0, 0, 0}, 5252 { 99, 0, 0, 0}, 5253 { 99, 0, 0, 0}, 5254 { 99, 0, 0, 0}, 5255 { 99, 0, 0, 0}, 5256 { 99, 0, 0, 0}, 5257 { 99, 0, 0, 0}, 5258 { 99, 0, 0, 0}, 5259 { 99, 0, 0, 0}, 5260 { 99, 0, 0, 0}, 5261 { 99, 0, 0, 0}, 5262 { 99, 0, 0, 0}, 5263 { 99, 0, 0, 0}, 5264 { 99, 0, 0, 0}, 5265 { 99, 0, 0, 0}, 5266 { 99, 0, 0, 0}, 5267 { 99, 0, 0, 0}, 5268 { 99, 0, 0, 0}, 5269 { 99, 0, 0, 0}, 5270 { 99, 0, 0, 0}, 5271 { 99, 0, 0, 0}, 5272 { 99, 0, 0, 0}, 5273 { 99, 0, 0, 0}, 5274 { 99, 0, 0, 0}, 5275 { 99, 0, 0, 0}, 5276 { 99, 0, 0, 0}, 5277 { 99, 0, 0, 0}, 5278 { 99, 0, 0, 0} 5279 }; 5280 5281 5282 /* 5283 * Class titles for the player. 5284 * 5285 * The player gets a new title every five levels, so each class 5286 * needs only ten titles total. 5287 * 5288 * New: Fields x,2 and x,3 are for short titles sent to the client 5289 * which must be 12 characters max in length - C. Blue 5290 */ 5291 cptr player_title[MAX_CLASS][11][4] = 5292 { 5293 /* Warrior */ 5294 { 5295 {"Rookie", "Rookie", "Rookie", "Rookie", }, 5296 {"Mercenary", "Mercenary", "Mercenary", "Mercenary", }, 5297 {"Soldier", "Soldier", "Soldier", "Soldier", }, 5298 {"Veteran", "Veteran", "Veteran", "Veteran", }, 5299 {"Captain", "Captain", "Captain", "Captain", }, 5300 {"Champion", "Champion", "Champion", "Champion", }, 5301 {"Hero", "Heroine", "Hero", "Heroine", },//heh they are back :) 5302 {"General", "General", "General", "General", }, 5303 {"Baron", "Baroness", "Baron", "Baroness", }, 5304 {"Duke", "Duchess", "Duke", "Duchess", }, 5305 {"Lord", "Lady", "Lord", "Lady", }, 5306 }, 5307 5308 /* Istar */ 5309 { 5310 {"Novice", "Novice", "Novice", "Novice", }, 5311 {"Apprentice", "Apprentice", "Apprentice", "Apprentice", }, 5312 {"Trickster", "Trickster", "Trickster", "Trickster", }, 5313 {"Illusionist", "Illusionist", "Illusionist", "Illusionist", }, 5314 {"Spellbinder", "Spellbinder", "Spellbinder", "Spellbinder", }, 5315 {"Spellweaver", "Spellweaver", "Spellweaver", "Spellweaver", }, 5316 {"Evoker", "Evokeress", "Evoker", "Evokeress", }, 5317 {"Conjurer", "Conjuress", "Conjurer", "Conjuress", }, 5318 {"Sorcerer", "Sorceress", "Sorcerer", "Sorceress", }, 5319 {"Warlock", "Warlock", "Warlock", "Warlock", }, 5320 //{"Mage", "Mage", "Mage", "Mage", }, 5321 {"Arch-Mage", "Arch-Mage", "Arch-Mage", "Arch-Mage", }, 5322 }, 5323 5324 /* Priest */ 5325 { 5326 // {"Believer", "Believer", "Believer", "Believer", }, 5327 {"Acolyte", "Acolyte", "Acolyte", "Acolyte", }, 5328 {"Adept", "Adept", "Adept", "Adept", }, 5329 {"Curate", "Curate", "Curate", "Curate", }, 5330 {"Canon", "Canon", "Canon", "Canon", }, 5331 {"Priest", "Priestess", "Priest", "Priestess", }, 5332 {"Exorcist", "Exorcist", "Exorcist", "Exorcist", }, 5333 {"Bishop", "Bishop", "Bishop", "Bishop", }, 5334 {"Arch-Bishop", "Arch-Bishop", "Arch-Bishop", "Arch-Bishop", }, 5335 {"Cardinal", "Cardinal", "Cardinal", "Cardinal", }, 5336 {"High Priest", "High Priestess", "High Priest", "H.Priestess", }, 5337 // {"Spiritual Guardian", "Spiritual Guardian", }, 5338 {"Patriarch", "Matriarch", "Patriarch", "Matriarch", }, 5339 }, 5340 5341 /* Rogues */ 5342 { 5343 {"Vagabond", "Vagabond", "Vagabond", "Vagabond", }, 5344 {"Cutpurse", "Cutpurse", "Cutpurse", "Cutpurse", }, 5345 {"Robber", "Robber", "Robber", "Robber", }, 5346 {"Burglar", "Burglar", "Burglar", "Burglar", }, 5347 {"Filcher", "Filcher", "Filcher", "Filcher", }, 5348 {"Sharper", "Sharpress", "Sharper", "Sharpress", }, 5349 {"Thief", "Thief", "Thief", "Thief", }, 5350 {"Master Thief", "Master Thief", "Master Thief", "Master Thief", }, 5351 {"Infiltrator", "Infiltratess", "Infiltrator", "Infiltratess", }, 5352 {"Grandmaster Thief", "Grandmaster Thief", "GM-Thief", "GM-Thief", }, 5353 {"Assassin", "Assassin", "Assassin", "Assassin", }, 5354 }, 5355 5356 /* Mimic */ 5357 { 5358 {"Pretender", "Pretender", "Pretender", "Pretender", }, 5359 {"Modifier", "Modifier", "Modifier", "Modifier", }, 5360 {"Copier", "Copyress", "Copier", "Copyress", }, 5361 {"Multiple (1st)", "Multiple (1st)", "Multiple I", "Multiple I", }, 5362 {"Multiple (2nd)", "Multiple (2nd)", "Multiple II", "Multiple II", }, 5363 {"Shapeshifter", "Shapeshiftress", "Shapeshifter", "Shapeshftr.", }, 5364 {"Metamorph", "Metamorph", "Metamorph", "Metamorph", }, 5365 {"Changer", "Changeress", "Changer", "Changeress", }, 5366 {"Master Changer", "Master Changeress", "M-Changer", "M-Changeress", }, 5367 {"Grandmaster Changer", "Grandmaster Changeress", "GM-Changer", "GM-Changress", }, 5368 {"Ultimate Changer", "Ultimate Changeress", "U-Changer", "U-Changeress", }, 5369 }, 5370 5371 /* Archer */ 5372 { 5373 {"Rock Thrower", "Rock Thrower", "Rock Thrower", "Rock Thrower", }, 5374 {"Slinger", "Slinger", "Slinger", "Slinger", }, 5375 {"Great Slinger", "Great Slinger", "Great Slinger", "Gr.Slinger", }, 5376 {"Bowsen", "Bowsen", "Bowsen", "Bowsen", }, 5377 {"Bowman", "Bow Maiden", "Bowman", "Bow Maiden", }, 5378 {"Great Bowman", "Great Bowmaiden", "Great Bowman", "Gr.Bowmaiden", }, 5379 {"High Archer", "High Archer", "High Archer", "High Archer", }, 5380 {"Grand Archer", "Grand Archer", "Grand Archer", "Grand Archer", }, 5381 {"Veteran Archer", "Veteran Archer", "Vet. Archer", "Vet. Archer", }, 5382 {"Master Archer", "Master Archer", "M-Archer", "M-Archer", }, 5383 {"Grandmaster Archer", "Grandmistress Archer", "GM-Archer", "GM-Archer", }, 5384 }, 5385 5386 /* Paladin */ 5387 { 5388 {"Page", "Page", "Page", "Page", }, 5389 {"Squire", "Squiress", "Squire", "Squiress", }, 5390 {"Faithful", "Faithful", "Faithful", "Faithful", }, 5391 {"Zealot", "Zealot", "Zealot", "Zealot", }, 5392 {"Chaplain", "Chaplain", "Chaplain", "Chaplain", }, 5393 {"Defender", "Defender", "Defender", "Defender", }, 5394 {"Crusader", "Crusader", "Crusader", "Crusader", }, 5395 //Knight Seargent 5396 {"Knight", "Knight", "Knight", "Knight", }, 5397 {"Banneret", "Banneret", "Banneret", "Banneret", },//Knight Banneret 5398 //{"Venerable Knight", "Venerable Knight", "V.Knight", "V.Knight", }, 5399 {"Paladin", "Paladin", "Paladin", "Paladin", }, 5400 {"Knight Commander", "Knight Commander", "Knight Cmdr.", "Knight Cmdr.", }, 5401 }, 5402 5403 /* Ranger */ 5404 { 5405 {"Rookie", "Rookie", "Rookie", "Rookie", }, 5406 {"Path Finder", "Path Finder", "Path Finder", "Path Finder", }, 5407 {"Deputy", "Deputy", "Deputy", "Deputy", }, 5408 {"Guard", "Guard", "Guard", "Guard", }, 5409 {"Scout","Scout", "Scout","Scout", }, 5410 {"Sentry", "Sentry", "Sentry", "Sentry", }, 5411 {"Overseer", "Overseer", "Overseer", "Overseer", }, 5412 {"Guard Captain", "Guard Captain", "Guard Captain", "Guard Captain", }, 5413 //removed 'Ranger' and added 'Ranger Champion' 5414 {"Supervisor", "Supervisor", "Supervisor", "Supervisor", }, 5415 // {"Ranger", "Ranger", "Ranger", "Ranger", }, 5416 {"High Ranger", "High Ranger", "High Ranger", "High Ranger", }, 5417 // {"Ranger Champion", "Ranger Champion", }, 5418 {"Ranger Chieftain", "Ranger Chieftain", "Ranger Chief", "Ranger Chief", }, /* to check: Isn't it Chief Ranger rather? */ 5419 }, 5420 5421 /* Adventurer */ 5422 { 5423 {"Rambler", "Rambler", "Rambler", "Rambler", }, 5424 {"Walker", "Walker", "Walker", "Walker", }, 5425 {"Tripper", "Tripper", "Tripper", "Tripper", }, 5426 {"Tourist", "Tourist", "Tourist", "Tourist", }, 5427 {"Strider", "Strider", "Strider", "Strider", }, 5428 {"Traveller", "Traveller", "Traveller", "Traveller", }, 5429 {"Discoverer", "Discoverer", "Discoverer", "Discoverer", }, 5430 {"Spelunker", "Spelunker", "Spelunker", "Spelunker"}, 5431 {"Voyager", "Voyager", "Voyager", "Voyager", }, 5432 {"Navigator", "Navigatress", "Navigator", "Navigatress", }, 5433 {"Explorer", "Explorer", "Explorer", "Explorer", }, 5434 //Adventurer", "Adventuress", "Adventurer", "Adventuress", }, 5435 }, 5436 5437 /* Druid */ 5438 { 5439 {"Green", "Green", "Green", "Green", }, 5440 {"Tree Hugger", "Tree Hugger", "Tree Hugger", "Tree Hugger", }, 5441 {"Flower Boy", "Flower Girl", "Flower Boy", "Flower Girl", }, 5442 {"Herbalist", "Herbalist", "Herbalist", "Herbalist", }, 5443 {"Spiritualist","Spiritualist", "Spiritualist","Spiritualist", }, 5444 {"Elder", "Elder", "Elder", "Elder", }, 5445 {"Druid", "Druid", "Druid", "Druid", }, 5446 {"High Druid", "High Druid", "High Druid", "High Druid", }, 5447 {"Master Druid", "Master Druid", "Master Druid", "Master Druid", }, 5448 {"Wildlife Preserver", "Wildlife Preserver", "Wl.Preserver", "Wl.Preserver", }, 5449 {"Arch-Druid", "Arch-Druid", "Arch-Druid", "Arch-Druid", }, //was Arch Druid 5450 }, 5451 5452 /* Shaman */ 5453 { 5454 {"Smoker", "Smoker", "Smoker", "Smoker", }, 5455 {"Novice Walker", "Novice Walker", "Nov. Walker", "Nov. Walker", }, 5456 {"Walker", "Walker", "Walker", "Walker", }, 5457 {"Spiritwalker", "Spiritwalker", "Spiritwalker", "Spiritwalker", }, 5458 {"Bone Fletcher", "Bone Fletcher", "Bone Fletchr", "Bone Fletchr", }, 5459 {"Cursed", "Cursed", "Cursed", "Cursed", }, 5460 {"Chanter", "Chantress", "Chanter", "Chantress", }, 5461 {"Elder Chanter", "Elder Chantress", "Eld.Chanter", "El.Chantress", }, 5462 // {"Spiritwatcher", "Spiritwatcher", }, 5463 {"Shaman", "Shaman", "Shaman", "Shaman", }, 5464 {"Elder Shaman", "Elder Shaman", "Elder Shaman", "Elder Shaman", }, 5465 {"Shaman King", "Shaman Queen", "Shaman King", "Shaman Queen", }, 5466 }, 5467 /* Runemaster */ 5468 { 5469 {"Digger", "Digger", "Digger", "Digger", }, 5470 {"Rune Tracer", "Rune Tracer", "Rune Tracer", "Rune Tracer", }, 5471 {"Rock Collector", "Rock Collector", "R.Collector", "R.Collector", }, 5472 // {"Rock Painter", "Rock Paintress", "Rock Painter", "Rock Paintrs", }, 5473 {"Fire Starter", "Fire Starter", "Fire Starter", "Fire Starter", }, 5474 {"Treasure Hunter", "Treasure Hunter", "T.Hunter", "T.Hunter", }, 5475 // {"Archaeologist", "Archaeologist", "Professor", "Professor," }, //too cool for 12 letters? ^^ 5476 {"Archaeologist", "Archaeologist", "Archaelgst.", "Archaelgst.", }, 5477 {"Earth Guard", "Earth Guard", "Earth Guard", "Earth Guard", }, 5478 {"Rune Knight", "Rune Knight", "Rune Knight", "Rune Knight", }, 5479 {"Rune Keeper", "Rune Keepress", "Rune Keeper", "Rune Keeprss", }, 5480 {"Runemaster", "Runemistress", "Runemaster", "Runemistress", }, 5481 {"Grand Runemaster", "Grand Runemistress", "G-Runemaster", "G-Runemstrss", }, 5482 }, 5483 /* Mindcrafter */ 5484 { 5485 // {"Simple-minded", "Simple-minded", "Simple-mind", "Simple-mind", }, 5486 // {"Reflector", "Reflectress", "Reflector", "Reflectress", }, 5487 // {"Paranoid", "Paranoid", "Paranoid", "Paranoid", }, 5488 // {"Aware", "Aware", "Aware", "Aware", }, 5489 {"Wary", "Wary", "Wary", "Wary", }, 5490 {"Fathomer", "Fathomer", "Fathomer", "Fathomer", }, 5491 {"Thinker", "Thinker", "Thinker", "Thinker", }, 5492 {"Biaser", "Biaser", "Biaser", "Biaser", }, 5493 {"Convincer", "Convincer", "Convincer", "Convincer", }, 5494 {"Warper", "Warper", "Warper", "Warper", }, 5495 {"Psychic", "Psychic", "Psychic", "Psychic", }, 5496 {"Telepath", "Telepath", "Telepath", "Telepath", }, 5497 {"Manipulator", "Manipulatress", "Manipulator", "Manipulatrs.", }, 5498 {"Controller", "Controller", "Controller", "Controller", }, 5499 {"Master Mindcrafter", "Master Mindcraftress", "M-Mindcrftr.", "M-Mindcrftr.", }, 5500 }, 5501 }; 5502 5503 /* 5504 * Special Class titles for the player who is way > 50. (C. Blue) 5505 * 60 (usually no change I'd say =) wait, or maybe), 70, 80, 90, 99 5506 * It was time to add female titles too! 5507 */ 5508 cptr player_title_special[MAX_CLASS][5][4] = 5509 { 5510 /* Warrior */ 5511 { 5512 #if 1 5513 {"Highlord", "Highlady", "Highlord", "Highlady", }, 5514 {"Overlord", "Overlord", "Overlord", "Overlord", }, 5515 // {"Hero", "Hero", }, hero is back in the normal warrior ranks! 5516 {"Destroyer", "Destroyess", "Destroyer", "Destroyess", }, 5517 {"Annihilator", "Annihilatress", "Annihilator", "Annihilatrss", }, 5518 {"Titan", "Titan", "Titan", "Titan", }, 5519 #else 5520 {"Admiral", "Admiral", }, 5521 {"Bombardier", "Bombardier", }, 5522 {"Chief Marshal", "Chief Marshal", }, 5523 {"Field Strategist", "Field Strategist", }, 5524 {"Chief Admiral", "Chief Admiral", },//Fleet Admiral is probably the correct term 5525 #endif 5526 }, 5527 5528 /* Istar */ 5529 { 5530 {"Grand Wizard", "Grand Wizard", "Gr.Wizard", "Gr.Wizard", }, 5531 {"Dragon Lord", "Dragon Lady", "Dragon Lord", "Dragon Lady", },/* explanation about all the 'Dragon..' stuff: I was out of ideas and 5532 just thought of 'Earthsea Quartet' from Ursula LeGuin - C. Blue */ 5533 {"Dragon Highlord", "Dragon Highlady", "Dragon HLord", "Dragon HLady", },//yolady 5534 {"Dragon Overlord", "Dragon Overlady", "Dragon OLord", "Dragon OLady", },//I need some improvements here.... 5535 {"Dragon Arch-Mage", "Dragon Arch-Mage", "Drg.Archmage", "Drg.Archmage", }, 5536 }, 5537 5538 /* Priest */ 5539 { 5540 {"Protonotary", "Protonotary", "Protonotary", "Protonotary", }, 5541 {"Saint", "Saint", "Saint", "Saint", }, 5542 {"Ascended", "Ascended", "Ascended", "Ascended", }, 5543 {"Demi", "Demi", "Demi", "Demi", }, //Pope? :) 5544 {"Divine", "Divine", "Divine", "Divine", }, 5545 //^^{"Holy Diver", "Holy Diver", "Holy Diver", "Holy Diver", }, //w00t! 5546 }, 5547 5548 /* Rogues */ 5549 { 5550 // {"Grand Assassin", "Grand Assassin", }, 5551 // {"Master Assassin", "Master Assassin", }, 5552 //commented out: first master, then hand = wrong order ^^ {"Death's Master", "Death's Mistress", "Dth.Master", "Dth.Mistress", }, 5553 {"Phantom", "Phantom", "Phantom", "Phantom" }, 5554 // {"Legendary Assassin", "Legendary Assassin", "Lgd.Assassin", "Lgd.Assassin", }, 5555 {"Myth", "Myth", "Myth", "Myth", }, 5556 {"Terror", "Terror", "Terror", "Terror" }, 5557 // {"Mythical Assassin", "Mythical Assassin", "Myt.Assassin", "Myt.Assassin", }, 5558 {"Death's Hand", "Death's Hand", "Death's Hand", "Death's Hand", }, 5559 {"Death Fate", "Death Fate", "Death Fate", "Death Fate", }, 5560 /* yeah it's fitting, but let's not make the game JOKEBAND anyway */ 5561 // {"RNG", "RNG", }, //LOL! Perfect, do you not think so? :) -adam 5562 }, 5563 5564 /* Mimic */ 5565 { 5566 {"Faker", "Fakeress", "Faker", "Fakeress", }, 5567 {"Doppelganger", "Doppelganger", "Doppelganger", "Doppelganger", }, 5568 {"Transformer", "Transformer", "Transformer", "Transformer", }, 5569 {"Replicator", "Replicatress", "Replicator", "Replicatress", }, 5570 // {"Master Replicator", "Master Replicatress", "M-Replicator", "M-Replicatrs", }, 5571 {"Unlimited", "Unlimited", "Unlimited", "Unlimited", }, 5572 }, 5573 5574 /* Archer */ 5575 { 5576 {"Elite Archer", "Elite Archer", "Elite Archer", "Elite Archer", }, 5577 {"Grand Elite Archer", "Grand Elite Archer", "GE-Archer", "GE-Archer", }, 5578 {"Legendary Archer", "Legendary Archer", "Legd.Archer", "Legd.Archer", }, 5579 {"Sirring Death", "Sirring Death", "Sirrg.Death", "Sirrg.Death", }, 5580 {"Golden Eye", "Golden Eye", "Golden Eye", "Golden Eye", }, 5581 }, 5582 5583 /* Paladin */ 5584 { 5585 {"Sacred Defender", "Sacred Defender", "S.Defender", "S.Defender", }, 5586 {"Venerable Templar", "Venerable Templar", "V.Templar", "V.Templar", }, 5587 // {"Avenger", "Avenger", "Avenger", "Avenger", }, 5588 {"Holy Avenger", "Holy Avenger", "Holy Avenger", "Holy Avenger", }, 5589 // {"Holy Defender", "Holy Defender", }, defender comes before avenger if at all; 5590 // DF and HA are old 'good' ego mods from predecessors. 5591 {"Holy King", "Holy Queen", "Holy King", "Holy Queen", }, 5592 {"God's Hand", "God's Hand", "God's Hand", "God's Hand", }, 5593 }, 5594 5595 /* Ranger */ 5596 { 5597 {"Elite Ranger", "Elite Ranger", "Elite Ranger", "Elite Ranger", }, 5598 // {"Ranger Supervisor", "Ranger Supervisor", "Ranger Svis.", "Ranger Svis.", }, 5599 {"Champion of Law", "Champion of Law", "Champ of Law", "Champ of Law", }, 5600 {"Lord of Law", "Lady of Law", "Lord of Law", "Lady of Law", }, 5601 // {"Ranger Commander", "Ranger Commander", "Ranger Cmdr.", "Ranger Cmdr.", }, 5602 {"Legend", "Legend", "Legend", "Legend", }, 5603 {"Justice", "Justice", "Justice", "Justice", }, 5604 }, 5605 5606 /* Adventurer */ 5607 { 5608 {"Seasoned Adventurer", "Seasoned Adventuress", "Seasoned Adv", "Seasoned Adv", }, 5609 {"Famous Adventurer", "Famous Adventuress", "Famous Adv.", "Famous Adv.", }, 5610 {"Grand Adventurer", "Grand Adventuress", "Grand Advntr", "Grand Advtrs", }, 5611 {"Legendary Adventurer", "Legendary Adventuress", "Legend. Adv.", "Legend. Adv.", }, 5612 {"Mythical Adventurer", "Mythical Adventuress", "Mythic Adv.", "Mythic Adv.", }, 5613 }, 5614 5615 /* Druid */ 5616 { 5617 {"Forest Guardian", "Forest Guardian", "Forest Guard", "Forest Guard", }, 5618 {"Wind Evoker", "Wind Evokeress", "Wind Evoker", "Wind Evokrss", }, 5619 {"Forest Keeper", "Forest Keepress", "Forest Kpr.", "Forest Kprs.", }, 5620 {"Autumn", "Autumn", "Autumn", "Autumn", }, 5621 {"Evergreen", "Evergreen", "Evergreen", "Evergreen", }, 5622 }, 5623 5624 /* Shaman */ 5625 { 5626 {"Spirit Keeper", "Spirit Keepress", "Sprt.Keeper", "Spt.Keepress", }, 5627 {"Spirit Master", "Spirit Mistress", "Sprt.Master", "Spt.Mistress", }, 5628 {"Realm Keeper", "Realm Keepress", "Realm Keeper", "Realm Kprss.", }, 5629 {"Realm Master", "Realm Mistress", "Realm Master", "Realm Mistr.", }, 5630 {"Presence", "Presence", "Presence", "Presence", }, 5631 }, 5632 5633 /* Runemaster */ 5634 { 5635 // {"Grand Runemaster", "Grand Runemistress", "G.Runemaster", "G.Runemstrss", }, 5636 {"Force Master", "Force Mistress", "Force Master", "Force Mstrss", }, 5637 //{"Elemental Overlord", "Elemental Overlady", "E-Overlord", "E-Overlady", }, 5638 {"Elemental Channelist", "Elemental Channelist", "E-Channelist", "E-Channelist", }, 5639 {"Elemental Master", "Elemental Master", "Elemental-M", "Elemental-M", }, 5640 {"Elemental Vortex", "Elemental Vortex", "Elemn.Vortex", "Elemn.Vortex", }, 5641 {"Savant", "Savant", "Savant", "Savant", }, 5642 }, 5643 5644 /* Mindcrafter */ 5645 { 5646 {"Master Manipulator", "Master Manipulatress", "M.Manipultr.", "M.Manipultr.", }, 5647 {"Master Controller", "Master Controller", "M.Controllr.", "M.Controllr.", }, 5648 {"Alterator", "Alteratress", "Alterator", "Alteratress", }, 5649 {"Reality Shifter", "Reality Shifter", "Real.Shifter", "Real.Shifter", }, 5650 {"Truth", "Truth", "Truth", "Truth", }, 5651 }, 5652 }; 5653 5654 /* 5655 * Certain "screens" always use the main screen, including News, Birth, 5656 * Dungeon, Tomb-stone, High-scores, Macros, Colors, Visuals, Options. 5657 * 5658 * Later, special flags may allow sub-windows to "steal" stuff from the 5659 * main window, including File dump (help), File dump (artifacts, uniques), 5660 * Character screen, Small scale map, Previous Messages, Store screen, etc. 5661 * 5662 * The "ctrl-i" (tab) command flips the "Display inven/equip" and "Display 5663 * equip/inven" flags for all windows. 5664 * 5665 * The "ctrl-g" command (or pseudo-command) should perhaps grab a snapshot 5666 * of the main screen into any interested windows. 5667 */ 5668 5669 5670 /* desc, min_lv, rchance, dd, ds, effect */ 5671 martial_arts ma_blows[MAX_MA] = 5672 { 5673 #if 0 5674 { "You punch %s", 1, 0, 1, 4, 0 }, 5675 { "You kick %s", 2, 0, 1, 6, 0 }, 5676 { "You strike %s", 3, 0, 1, 7, 0 }, 5677 { "You ram %s with your knee", 5, 5, 2, 3, MA_KNEE }, 5678 { "You strike %s with your elbow", 7, 5, 1, 8, 0 }, 5679 { "You butt %s", 9, 10, 2, 5, 0 }, 5680 { "You kick %s", 11, 10, 2, 5, MA_SLOW }, 5681 { "You uppercut %s", 13, 12, 4, 3, 4 }, 5682 { "You double-kick %s", 16, 15, 4, 4, 0 }, 5683 { "You strike %s with a Cat's Claw", 20, 20, 6, 3, 0 }, 5684 { "You hit %s with a jump kick", 25, 25, 3, 9, 6 }, 5685 { "You strike %s with an Eagle's Claw", 29, 25, 7, 4, 0 }, 5686 { "You hit %s with a circle kick", 33, 30, 4, 9, 0 }, 5687 { "You punch %s with an Iron Fist", 37, 35, 6, 6, 8 }, 5688 { "You hit %s with a flying kick", 41, 35, 5, 8, 0 }, 5689 { "You punch %s with a Dragon Fist", 45, 35, 6, 8, 10 }, 5690 { "You hit %s with a Crushing Blow", 48, 35, 8, 7, 12 }, 5691 /* Kings only (for NR:) */ 5692 { "You bash %s with a Titan's Fist", 48, 45, 8, 5, 20 }, 5693 { "You strike %s with a Phoenix Claw", 48, 45, 5, 9, MA_ROYAL_SLOW }, 5694 #else //let's align the text so monster names are readable even when the messages are passing by 5695 { "You damage %s with a punch", 1, 0, 1, 4, 0 }, 5696 { "You damage %s with a kick", 2, 0, 1, 6, 0 }, 5697 { "You damage %s with a strike", 3, 0, 1, 7, 0 }, 5698 { "You damage %s with your knee", 5, 5, 2, 3, MA_KNEE }, 5699 { "You strike %s with your elbow", 7, 5, 1, 8, 0 }, 5700 { "You damage %s with a thrust", 9, 10, 2, 5, 0 }, 5701 { "You damage %s with a kick", 11, 10, 2, 5, MA_SLOW }, 5702 { "You strike %s with an uppercut", 13, 12, 4, 3, 4 }, 5703 { "You damage %s with a double-kick", 16, 15, 4, 4, 0 }, 5704 { "You strike %s with a Cat's Claw", 20, 20, 6, 3, 0 }, 5705 { "You damage %s with a jump kick", 25, 25, 3, 9, 6 }, 5706 { "You strike %s with an Eagle's Claw", 29, 25, 7, 4, 0 }, 5707 { "You damage %s with a circle kick", 33, 30, 4, 9, 0 }, 5708 { "You pummel %s with an Iron Fist", 37, 35, 6, 6, 8 }, 5709 { "You damage %s with a flying kick", 41, 35, 5, 8, 0 }, 5710 { "You pummel %s with a Dragon Fist", 45, 35, 6, 8, 10 }, 5711 { "You damage %s with a Crushing Blow", 48, 35, 8, 7, 12 }, 5712 /* Kings only (for NR:) */ 5713 { "You pummel %s with a Titan's Fist", 48, 45, 8, 5, 20 }, 5714 { "You strike %s with a Phoenix Claw", 48, 45, 5, 9, MA_ROYAL_SLOW }, 5715 #endif 5716 }; 5717 5718 /* 5719 * Months 5720 */ 5721 int month_day[9] = 5722 { 5723 0, /* 1 day */ 5724 5725 1, /* 54 days */ 5726 55, /* 72 days */ 5727 127, /* 54 days */ 5728 5729 181, /* 3 days */ 5730 5731 184, /* 54 days */ 5732 238, /* 72 days */ 5733 310, /* 54 days */ 5734 5735 364, /* 1 day */ 5736 }; 5737 cptr month_name[9] = 5738 { 5739 "Yestare", 5740 5741 "Tuile", 5742 "Laire", 5743 "Yavie", 5744 5745 "Enderi", 5746 5747 "Quelle", 5748 "Hrive", 5749 "Coire", 5750 5751 "Mettare", 5752 }; 5753 5754 5755 /* 5756 * Quick hack for towns -- this should die - Jir - 5757 */ 5758 /* FIXME: Dungeons don't match the Tolkien themes; 5759 * they're simply used to match the necessity 5760 */ 5761 town_extra town_profile[6]= 5762 { 5763 /* Vanilla */ 5764 { 5765 "Town", 5766 FEAT_GRASS, 5767 FEAT_GRASS, 5768 90, 5769 WILD_GRASSLAND, 5770 { 5771 0, /* No dungeon unless admin creates one */ 5772 0, 5773 }, 5774 5775 1, 5776 127, 5777 FALSE, 5778 0L, 5779 0L, 5780 }, 5781 5782 /* Bree */ 5783 { 5784 "Bree", 5785 FEAT_TREE, 5786 FEAT_GRASS, 5787 98, 5788 WILD_FOREST, 5789 { 5790 4, /* Barrow-Downs */ 5791 30, /* Training Tower */ 5792 }, 5793 5794 1, 5795 60, 5796 FALSE, 5797 0L, 5798 0L, 5799 }, 5800 5801 /* Gondolin */ 5802 { 5803 "Gondolin", 5804 FEAT_GRASS, 5805 FEAT_DIRT, 5806 70, 5807 WILD_GRASSLAND, 5808 { 5809 2, /* Mordor */ 5810 0, 5811 }, 5812 5813 20, 5814 80, 5815 FALSE, 5816 0L, 5817 0L, 5818 }, 5819 5820 /* Minas Anor */ 5821 { 5822 "Minas Anor", 5823 FEAT_MOUNTAIN, 5824 FEAT_SAND, 5825 90, 5826 WILD_MOUNTAIN, 5827 { 5828 16, /* Paths of the Dead */ 5829 0, 5830 }, 5831 5832 40, 5833 80, 5834 TRUE, 5835 0L, 5836 0L, 5837 }, 5838 5839 /* Lothlorien */ 5840 { 5841 "Lothlorien", 5842 FEAT_DEEP_WATER, 5843 FEAT_SHAL_WATER, 5844 80, 5845 WILD_RIVER, 5846 { 5847 3, /* Angband */ 5848 0, 5849 }, 5850 5851 60, 5852 80, 5853 FALSE, 5854 0L, 5855 0L, 5856 }, 5857 5858 /* Khazad-dum */ 5859 { 5860 "Khazad-dum", 5861 FEAT_MOUNTAIN, 5862 FEAT_ASH, 5863 70, 5864 WILD_MOUNTAIN, 5865 { 5866 3, /* Angband (lazy :) */ 5867 0, 5868 }, 5869 5870 80, 5871 120, 5872 TRUE, 5873 0L, 5874 0L, 5875 } 5876 }; 5877 5878 5879 /* for C_BLUE_AI - meaning is: minimum AC of a player to make him appear pretty tough to monsters */ 5880 int p_tough_ac[51] = { 5881 5,6,7,8,9, 10,11,12,13,14, 5882 15,15,16,16,17, 17,18,18,19,19, 5883 20,22,24,26,28, 31,34,37,40,45, 5884 50,55,60,65,75, 85,95,105,115, 5885 120,123,126,128,130, 132,134,136,138,140, 5886 160 /* 51+, ie 'post king' */ 5887 }; 5888 5889 5890 /* For fighting techniques */ 5891 byte mtech_lev[MAX_CLASS][16] = { 5892 // sprint, taunt, jump, distr, bash, knockb, charge, flashb, cloak, spin, assass, berser, -, s-jump, s-run, instant cloak 5893 {2, 4, 0, 0, 0, 0, 0, 0, 0, 6, 0, 20, 0, 0, 0, 0}, //warrior 5894 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //istar 5895 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //priest 5896 #ifdef ENABLE_ASSASSINATE 5897 {3, 6, 0, 9, 0, 0, 0, 12, 0, 0, 35, 0, 0, 0, 50, 0}, //rogue 5898 #else 5899 {3, 6, 0, 9, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 50, 0}, //rogue 5900 #endif 5901 {13, 16, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0}, //mimic 5902 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //archer 5903 {11, 17, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0}, //paladin 5904 {5, 9, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0}, //ranger 5905 {6, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //adventurer 5906 {5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //druid 5907 {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //shaman 5908 {4, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, //runemaster 5909 {0, 8, 0, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} //mindcrafter 5910 }; 5911