1/* 2 * 3 * Iter Vehemens ad Necem (IVAN) 4 * Copyright (C) Timo Kiviluoto 5 * Released under the GNU General 6 * Public License 7 * 8 * See LICENSING which should be included 9 * along with this file for more details 10 * 11 */ 12 13/* 14 * NOTICE!!! 15 * 16 * This file contains SPOILERS, which might ruin your IVAN experience 17 * totally. Also, editing anything can DESTROY GAME BALANCE or CAUSE 18 * OBSCURE BUGS if you don't know what you're doing. So from here on, 19 * proceed at your own risk! 20 */ 21 22/* Numerical olterrain data loaded during game startup */ 23 24/* Default values: */ 25 26olterrain 27{ 28 /* Obligatory: BitmapPos */ 29 UsesLongArticle = false; 30 Adjective = ""; 31 UsesLongAdjectiveArticle = false; 32 /* Obligatory: NameSingular */ 33 /* NameSingular + "s" by default: NamePlural */ 34 PostFix = ""; 35 ArticleMode = 0; 36 /* Obligatory: MainMaterialConfig */ 37 /* Obligatory: SecondaryMaterialConfig */ 38 /* Obligatory if multiple material configurations defined: MaterialConfigChances */ 39 IsAbstract = true; /* This is false by default and does not inherit! */ 40 OKVisualEffects = NONE; 41 MaterialColorB = 0; 42 MaterialColorC = 0; 43 MaterialColorD = 0; 44 SitMessage = "You sit for some time. Nothing happens."; 45 /* Obligatory: DigMessage */ 46 CanBeDestroyed = false; 47 RestModifier = 1; 48 RestMessage = ""; 49 ShowMaterial = true; 50 IsUpLink = false; 51 CreateDivineConfigurations = false; 52 StorageVolume = 0; 53 HPModifier = 100; 54 IsSafeToCreateDoor = false; 55 AttachedGod = NONE; 56 CreateLockConfigurations = false; /* Can't be overridden by Configs */ 57 Walkability = ANY_MOVE; 58 IsAlwaysTransparent = true; 59 UseBorderTiles = false; 60 BorderTilePriority = 0; 61 HasSecondaryMaterial = false; 62 CreateWindowConfigurations = false; 63 ShowThingsUnder = true; 64 IsWall = false; 65} 66 67wall 68{ 69 IsAbstract = true; 70 CanBeDestroyed = true; 71 IsSafeToCreateDoor = true; 72 Walkability = ETHEREAL; 73 IsAlwaysTransparent = false; 74 BorderTilePriority = 100; 75 CreateWindowConfigurations = true; 76 MaterialColorC = rgb16(140, 96, 48); 77 MaterialColorD = rgb16(180, 180, 255); 78 ShowThingsUnder = false; 79 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:4; } 80 IsWall = true; 81 82 Config BRICK_FINE; 83 { 84 DigMessage = "The wall is pretty hard, but you still manage to go through it."; 85 MainMaterialConfig == GRANITE; 86 NameSingular = "wall"; 87 BitmapPos = 64, 272; 88 HPModifier = 150; 89 WindowBitmapPos = 96, 256; 90 } 91 92 Config BRICK_PROPAGANDA; 93 { 94 DigMessage = "You break the wall down despite the uncomfortable feeling of being constantly watched."; 95 MainMaterialConfig == GRANITE; 96 NameSingular = "wall"; 97 PostFix = "and a poster with a picture of high priest Petrus, the ruler of the Attnamese Empire"; 98 BitmapPos = 80, 272; 99 HPModifier = 150; 100 } 101 102 Config BRICK_OLD; 103 { 104 DigMessage = "The piece of wall is very old and shabby. You dig it with ease."; 105 MainMaterialConfig == GRANITE; 106 UsesLongAdjectiveArticle = true; 107 Adjective = "old"; 108 NameSingular = "wall"; 109 BitmapPos = 16, 256; 110 HPModifier = 75; 111 } 112 113 Config BRICK_PRIMITIVE; 114 { 115 DigMessage = "The piece of wall is very old and shabby. You dig it with ease."; 116 MainMaterialConfig == BALSA_WOOD; 117 Adjective = "primitive"; 118 NameSingular = "wall"; 119 BitmapPos = 48, 272; 120 HPModifier = 75; 121 WindowBitmapPos = 80, 256; 122 } 123 124 Config BRICK_PRIMITIVE_PROPAGANDA; 125 { 126 DigMessage = "You break the wall down despite the uncomfortable feeling of being constantly watched."; 127 MainMaterialConfig == BALSA_WOOD; 128 Adjective = "primitive"; 129 NameSingular = "wall"; 130 PostFix = "and a poster with a picture of high priest Petrus, the ruler of the Attnamese Empire"; 131 BitmapPos = 96, 272; 132 HPModifier = 75; 133 } 134 135 Config STONE_WALL; 136 { 137 OKVisualEffects = MIRROR|FLIP|ROTATE; 138 DigMessage = "The ground is hard to dig."; 139 MainMaterialConfig == GRANITE; 140 MaterialColorB = rgb16(56, 56, 56); 141 NameSingular = "wall"; 142 BitmapPos = 0, 32; 143 HPModifier = 100; 144 } 145 146 Config ICE_WALL; 147 { 148 OKVisualEffects = MIRROR|FLIP|ROTATE; 149 DigMessage = "The ice is pretty easy to dig."; 150 MainMaterialConfig == ICE; 151 NameSingular = "wall"; 152 BitmapPos = 0, 32; 153 HPModifier = 40; 154 } 155 156 Config BROKEN_WALL; 157 { 158 OKVisualEffects = MIRROR|FLIP; 159 DigMessage = "The ground is easy to dig."; 160 MainMaterialConfig == GRANITE; 161 MaterialColorB = rgb16(56, 56, 56); 162 Adjective = "broken"; 163 NameSingular = "wall"; 164 BitmapPos = 48, 288; 165 HPModifier = 25; 166 } 167 168 Config TENT_WALL; 169 { 170 OKVisualEffects = MIRROR; 171 DigMessage = "The tear down the tent wall."; 172 MainMaterialConfig == FELT; 173 NameSingular = "tent wall"; 174 BitmapPos = 0, 432; 175 HPModifier = 20; 176 } 177} 178 179decoration 180{ 181 IsAbstract = true; 182 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; } 183 184 Config PINE; 185 { 186 OKVisualEffects = MIRROR; 187 CanBeDestroyed = true; 188 DigMessage = "You chop the tree down."; 189 MainMaterialConfig == PINE_WOOD; 190 ShowMaterial = false; 191 MaterialColorB = rgb16(32, 100, 32); 192 NameSingular = "pine"; 193 BitmapPos = 16, 320; 194 HPModifier = 25; 195 } 196 197 Config FIR; 198 { 199 OKVisualEffects = MIRROR; 200 CanBeDestroyed = true; 201 DigMessage = "You chop the tree down."; 202 MainMaterialConfig == FIR_WOOD; 203 ShowMaterial = false; 204 MaterialColorB = rgb16(32, 100, 32); 205 NameSingular = "fir"; 206 BitmapPos = 16, 352; 207 HPModifier = 25; 208 IsAlwaysTransparent = false; 209 } 210 211 Config PALM; 212 { 213 OKVisualEffects = MIRROR; 214 CanBeDestroyed = true; 215 DigMessage = "You chop the tree down."; 216 MainMaterialConfig == BALSA_WOOD; 217 ShowMaterial = false; 218 MaterialColorB = rgb16(32, 80, 32); 219 NameSingular = "palm"; 220 BitmapPos = 16, 368; 221 HPModifier = 25;/* 222 IsAlwaysTransparent = false;*/ 223 } 224 225 Config HOLY_TREE; 226 { 227 CanBeDestroyed = true; 228 DigMessage = "You ruthlessly chop the beautiful tree down."; 229 MainMaterialConfig == GOLD; 230 ShowMaterial = false; 231 MaterialColorB = rgb16(224, 224, 0); 232 Adjective = "holy"; 233 NameSingular = "tree"; 234 BitmapPos = 32, 336; 235 ShowMaterial = true; 236 HPModifier = 25; 237 AttachedGod = SILVA; 238 } 239 240 Config CARPET; 241 { 242 DigMessage = "You can't force yourself to ruin this wonderful carpet."; 243 MainMaterialConfig == FABRIC; 244 NameSingular = "carpet"; 245 BitmapPos = 0, 272; 246 } 247 248 Config COUCH; 249 { 250 CanBeDestroyed = true; 251 DigMessage = "The destroy the couch and find some valuables dropped by its owners."; 252 MainMaterialConfig == FABRIC; 253 NameSingular = "couch"; 254 BitmapPos = 0, 400; 255 RestModifier = 3; 256 MaterialColorB = rgb16(200, 200, 0); 257 SitMessage = "The couch is extremely soft and comfortable. You relax well."; 258 RestMessage = "You rest well on the soft sofa."; 259 HPModifier = 25; 260 LeftOverItems == stone { Times = 1:2; } 261 } 262 263 Config CHAIR; 264 { 265 CanBeDestroyed = true; 266 DigMessage = "You destroy the chair."; 267 MainMaterialConfig == FIR_WOOD; 268 SitMessage = "You sit on the chair."; 269 RestMessage = "You relax on the chair."; 270 NameSingular = "chair"; 271 RestModifier = 2; 272 BitmapPos = 80, 288; 273 HPModifier = 25; 274 } 275 276 Config ARM_CHAIR; 277 { 278 CanBeDestroyed = true; 279 DigMessage = "You destroy the armchair."; 280 MainMaterialConfig == LINEN_CLOTH; 281 ShowMaterial = false; 282 MaterialColorB = rgb16(140, 96, 48); 283 SitMessage = "You sit on the comfortable armchair."; 284 RestMessage = "You relax well on the comfortable armchair."; 285 NameSingular = "armchair"; 286 UsesLongArticle = true; 287 RestModifier = 3; 288 BitmapPos = 0, 416; 289 HPModifier = 25; 290 LeftOverItems == 0; 291 } 292 293 Config BENCH; 294 { 295 CanBeDestroyed = true; 296 DigMessage = "You destroy the bench."; 297 MainMaterialConfig == FIR_WOOD; 298 SitMessage = "You sit on the bench."; 299 RestMessage = "You relax on the bench."; 300 NameSingular = "bench"; 301 RestModifier = 2; 302 BitmapPos = 48, 224; 303 HPModifier = 25; 304 } 305 306 Config DOUBLE_BED; 307 { 308 CanBeDestroyed = true; 309 DigMessage = "You smash the bed into pieces."; 310 MainMaterialConfig == FABRIC; 311 Adjective = "luxurious"; 312 NameSingular = "double bed"; 313 BitmapPos = 48, 304; 314 MaterialColorB = rgb16(200, 200, 0); 315 ShowMaterial = false; 316 RestModifier = 5; 317 SitMessage = "The beautiful bed is very soft. You get a feeling it's not meant for your kind of people."; 318 RestMessage = "You lay yourself on the comfortable bed."; 319 HPModifier = 25; 320 LeftOverItems == 0; 321 } 322 323 Config CHEAP_BED; 324 { 325 CanBeDestroyed = true; 326 DigMessage = "You smash the bed into pieces."; 327 MainMaterialConfig == HEMP_CLOTH; 328 Adjective = "cheap"; 329 NameSingular = "bed"; 330 BitmapPos = 0, 352; 331 MaterialColorB = rgb16(160, 108, 50); 332 ShowMaterial = false; 333 RestModifier = 2; 334 SitMessage = "You lay down on the bed."; 335 RestMessage = "You rest well on the bed."; 336 HPModifier = 25; 337 LeftOverItems == 0; 338 } 339 340 Config PLAIN_BED; 341 { 342 CanBeDestroyed = true; 343 DigMessage = "You smash the bed into pieces."; 344 MainMaterialConfig == LINEN_CLOTH; 345 NameSingular = "bed"; 346 BitmapPos = 0, 336; 347 MaterialColorB = rgb16(140, 96, 48); 348 ShowMaterial = false; 349 RestModifier = 3; 350 SitMessage = "You lay down on the bed."; 351 RestMessage = "You rest well on the bed."; 352 HPModifier = 25; 353 LeftOverItems == 0; 354 } 355 356 Config EXPENSIVE_BED; 357 { 358 CanBeDestroyed = true; 359 DigMessage = "You smash the bed into pieces."; 360 MainMaterialConfig == FABRIC; 361 Adjective = "luxurious"; 362 NameSingular = "bed"; 363 BitmapPos = 0, 336; 364 MaterialColorB = rgb16(200, 200, 0); 365 ShowMaterial = false; 366 RestModifier = 4; 367 SitMessage = "You lay down on the soft and comfortable bed."; 368 RestMessage = "You rest very well on the comfortable bed."; 369 HPModifier = 25; 370 LeftOverItems == 0; 371 } 372 373 Config POOL_BORDER; 374 { 375 DigMessage = "The water splashes a bit."; /* Only correct if over a water pool */ 376 MainMaterialConfig == MARBLE; 377 NameSingular = ""; 378 BitmapPos = 32, 320; 379 } 380 381 Config POOL_CORNER; 382 { 383 DigMessage = "The water splashes a bit."; /* Only correct if over a water pool */ 384 MainMaterialConfig == MARBLE; 385 NameSingular = ""; 386 BitmapPos = 48, 320; 387 } 388 389 Config SNOW_PINE; 390 { 391 OKVisualEffects = MIRROR; 392 CanBeDestroyed = true; 393 DigMessage = "You chop the tree down."; 394 MainMaterialConfig == PINE_WOOD; 395 ShowMaterial = false; 396 MaterialColorB = rgb16(220, 220, 220); 397 NameSingular = "pine"; 398 PostFix = "covered with snow"; 399 BitmapPos = 16, 320; 400 HPModifier = 25; 401 /* no pineapples in winter */ 402 } 403 404 Config SNOW_FIR; 405 { 406 OKVisualEffects = MIRROR; 407 CanBeDestroyed = true; 408 DigMessage = "You chop the tree down."; 409 MainMaterialConfig == FIR_WOOD; 410 ShowMaterial = false; 411 MaterialColorB = rgb16(220, 220, 220); 412 NameSingular = "fir"; 413 PostFix = "covered with snow"; 414 BitmapPos = 16, 352; 415 HPModifier = 25; 416 IsAlwaysTransparent = false; 417 } 418 419 Config ANVIL; 420 { 421 OKVisualEffects = MIRROR; 422 CanBeDestroyed = true; 423 DigMessage = "You break the anvil."; 424 MainMaterialConfig == IRON; 425 NameSingular = "anvil"; 426 BitmapPos = 16, 432; 427 HPModifier = 25; 428 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:3; } 429 } 430 431 Config SHARD; 432 { 433 OKVisualEffects = MIRROR; 434 CanBeDestroyed = true; 435 DigMessage = "You shatter the crystal into pieces."; 436 NameSingular = "shard"; 437 BitmapPos = 16, 416; 438 HPModifier = 5; 439 MainMaterialConfig = { 3, BLUE_CRYSTAL, PURPLE_CRYSTAL, GREEN_CRYSTAL; } 440 MaterialConfigChances = { 3, 100, 100, 100; } 441 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 100:200; } Times = 1:3; } 442 } 443 444 Config CACTUS; 445 { 446 OKVisualEffects = MIRROR; 447 CanBeDestroyed = true; 448 DigMessage = "You chop the cactus down."; 449 MainMaterialConfig == PLANT_FIBER; 450 ShowMaterial = false; 451 MaterialColorB = rgb16(32, 100, 32); 452 NameSingular = "cactus"; 453 NamePlural = "cactuses"; 454 BitmapPos = 48, 352; 455 HPModifier = 20; 456 LeftOverItems == 0; 457 SitMessage = "You sit on the cactus. Ouch! You have thorns in your backside!"; 458 } 459 460 Config OAK; 461 { 462 CanBeDestroyed = true; 463 DigMessage = "You ruthlessly chop the tree down."; 464 MainMaterialConfig == OAK_WOOD; 465 ShowMaterial = false; 466 MaterialColorB = rgb16(0, 150, 0); 467 NameSingular = "oak tree"; 468 BitmapPos = 32, 336; 469 ShowMaterial = true; 470 HPModifier = 25; 471 IsAlwaysTransparent = false; 472 } 473 474 Config BIRCH; 475 { 476 CanBeDestroyed = true; 477 DigMessage = "You chop the tree down."; 478 MainMaterialConfig == BIRCH_WOOD; 479 ShowMaterial = false; 480 MaterialColorB = rgb16(125, 160, 80); 481 MaterialColorC = rgb16(220, 220, 220); 482 NameSingular = "birch tree"; 483 BitmapPos = 80, 368; 484 HPModifier = 25; 485 } 486 487 Config TEAK; 488 { 489 CanBeDestroyed = true; 490 DigMessage = "You ruthlessly chop the tree down."; 491 MainMaterialConfig == TEAK_WOOD; 492 ShowMaterial = false; 493 MaterialColorB = rgb16(0, 220, 0); 494 NameSingular = "teak tree"; 495 BitmapPos = 32, 336; 496 HPModifier = 25; 497 } 498 499 Config DWARF_BIRCH; 500 { 501 CanBeDestroyed = true; 502 DigMessage = "You chop the dwarf birch down."; 503 MainMaterialConfig == BIRCH_WOOD; 504 ShowMaterial = false; 505 MaterialColorB = rgb16(125, 160, 80); 506 MaterialColorC = rgb16(220, 220, 220); 507 NameSingular = "dwarf birch"; 508 BitmapPos = 32, 368; 509 HPModifier = 10; 510 } 511 512 Config PEDESTAL; 513 { 514 CanBeDestroyed = true; 515 DigMessage = "You shatter the pedestal."; 516 MainMaterialConfig == MARBLE; 517 SitMessage = "The pedestal is hard and cold, and not very comfortable to sit on."; 518 RestMessage = "You feel sore after resting on the cold pedestal."; 519 NameSingular = "pedestal"; 520 BitmapPos = 0, 0; 521 } 522 523 Config FORGE; 524 { 525 CanBeDestroyed = true; 526 DigMessage = "You break the forge."; 527 MainMaterialConfig == BASALT; 528 MaterialColorB = rgb16(96, 96, 96); 529 MaterialColorC = rgb16(220, 220, 0); 530 MaterialColorD = rgb16(160, 0, 0); 531 ShowMaterial = false; 532 Walkability = ETHEREAL; 533 NameSingular = "forge"; 534 BitmapPos = 16, 16; 535 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 1000:3000; } Times = 2:5; } 536 } 537 538 Config FURNACE; 539 { 540 CanBeDestroyed = true; 541 DigMessage = "You break the furnace."; 542 MainMaterialConfig == BASALT; 543 MaterialColorB = rgb16(96, 96, 96); 544 MaterialColorC = rgb16(220, 220, 0); 545 MaterialColorD = rgb16(160, 0, 0); 546 ShowMaterial = false; 547 NameSingular = "furnace"; 548 BitmapPos = 32, 16; 549 LeftOverItems == 0; 550 } 551 552 Config OVEN; 553 { 554 CanBeDestroyed = true; 555 DigMessage = "You break the oven."; 556 MainMaterialConfig == COPPER; 557 MaterialColorB = rgb16(96, 96, 96); 558 MaterialColorC = rgb16(220, 220, 0); 559 MaterialColorD = rgb16(160, 0, 0); 560 ShowMaterial = false; 561 Walkability = ETHEREAL; 562 NameSingular = "oven"; 563 UsesLongArticle = true; 564 BitmapPos = 80, 32; 565 LeftOverItems == 0; 566 } 567 568 Config WOODEN_HORSE; 569 { 570 CanBeDestroyed = true; 571 DigMessage = "You break the wooden horse."; 572 MainMaterialConfig == FIR_WOOD; 573 MaterialColorB = rgb16(96, 96, 96); 574 MaterialColorC = rgb16(100, 50, 30); 575 ShowMaterial = false; 576 SitMessage = "Ouch! What did you think? It's painful to sit on the wooden horse."; 577 NameSingular = "wooden horse"; 578 BitmapPos = 16, 48; 579 HPModifier = 25; 580 } 581 582 Config TORTURE_RACK; 583 { 584 CanBeDestroyed = true; 585 DigMessage = "You break the torture rack."; 586 MainMaterialConfig == LEATHER; 587 MaterialColorB = rgb16(96, 96, 96); 588 MaterialColorC = rgb16(100, 50, 30); 589 ShowMaterial = false; 590 RestMessage = "As long as you're not strapped here, it's nice to rest on the torture rack."; 591 NameSingular = "torture rack"; 592 BitmapPos = 80, 64; 593 HPModifier = 25; 594 } 595 596 Config DESK; 597 { 598 CanBeDestroyed = true; 599 DigMessage = "You break the writing desk."; 600 MainMaterialConfig == FIR_WOOD; 601 MaterialColorB = rgb16(210, 210, 210); 602 MaterialColorC = rgb16(100, 50, 30); 603 SitMessage = "You sit on the desk."; 604 RestMessage = "You take a nap on the desk."; 605 NameSingular = "writing desk"; 606 BitmapPos = 48, 48; 607 HPModifier = 25; 608 Walkability = ETHEREAL; 609 } 610 611 Config WORK_BENCH; 612 { 613 CanBeDestroyed = true; 614 DigMessage = "You break the workbench."; 615 MainMaterialConfig == FIR_WOOD; 616 MaterialColorB = rgb16(96, 96, 96); 617 MaterialColorC = rgb16(124, 50, 16); 618 SitMessage = "You sit on the workbench."; 619 RestMessage = "You take a nap on the workbench."; 620 NameSingular = "workbench"; 621 BitmapPos = 32, 224; 622 HPModifier = 25; 623 Walkability = ETHEREAL; 624 } 625 626 Config TAILORING_BENCH; 627 { 628 CanBeDestroyed = true; 629 DigMessage = "You break the tailoring bench."; 630 MainMaterialConfig == FIR_WOOD; 631 MaterialColorB = rgb16(96, 96, 96); 632 MaterialColorC = rgb16(124, 50, 16); 633 SitMessage = "You carefully sit on the tailoring bench."; 634 RestMessage = "You manage to take a surprisingly refreshing nap on the tailoring bench."; 635 NameSingular = "tailoring bench"; 636 BitmapPos = 80, 224; 637 HPModifier = 25; 638 Walkability = ETHEREAL; 639 } 640 641 Config TABLE; 642 { 643 CanBeDestroyed = true; 644 DigMessage = "You break the table."; 645 MainMaterialConfig == FIR_WOOD; 646 SitMessage = "You sit on the table."; 647 RestMessage = "You take a nap on the table."; 648 NameSingular = "table"; 649 BitmapPos = 48, 240; 650 HPModifier = 25; 651 Walkability = ETHEREAL; 652 } 653 654 Config WELL; 655 { 656 CanBeDestroyed = false; 657 DigMessage = "You stop digging as you nearly fall in the well."; 658 MainMaterialConfig == GRANITE; 659 MaterialColorB = rgb16(140, 96, 48); 660 MaterialColorC = rgb16(100, 50, 30); 661 ShowMaterial = false; 662 SitMessage = "You sit beside the well."; 663 NameSingular = "well"; 664 BitmapPos = 64, 240; 665 } 666 667 Config SHACKLES; 668 { 669 CanBeDestroyed = true; 670 DigMessage = "You break the shackles."; 671 MainMaterialConfig == IRON; 672 NameSingular = "shackles"; 673 BitmapPos = 112, 288; 674 HPModifier = 25; 675 } 676 677 Config BANANA_TREE; 678 { 679 OKVisualEffects = MIRROR; 680 CanBeDestroyed = true; 681 DigMessage = "You chop the tree down."; 682 MainMaterialConfig == BALSA_WOOD; 683 ShowMaterial = false; 684 MaterialColorB = rgb16(32, 80, 32); 685 NameSingular = "palm"; 686 BitmapPos = 16, 368; 687 HPModifier = 25; 688 /* IsAlwaysTransparent = false; */ 689 LeftOverItems == banana { Times = 0:1; } 690 } 691 692 Config DEAD_TREE; 693 { 694 CanBeDestroyed = true; 695 DigMessage = "You mercifully chop the tree down."; 696 MainMaterialConfig == FIR_WOOD; 697 ShowMaterial = false; 698 NameSingular = "dead tree"; 699 BitmapPos = 64, 336; 700 HPModifier = 10; 701 } 702 703 Config STRANGE_TREE; 704 { 705 CanBeDestroyed = true; 706 DigMessage = "You chop the strange tree down."; 707 MainMaterialConfig == BONE; 708 ShowMaterial = true; 709 Adjective = "strange"; 710 NameSingular = "tree"; 711 BitmapPos = 80, 352; 712 } 713} 714 715door /* olterrain-> */ 716{ 717 DigMessage = "You break the door."; 718 CanBeDestroyed = true; 719 MainMaterialConfig == FIR_WOOD; 720 NameSingular = "door"; 721 BitmapPos = 0, 176; 722 OpenBitmapPos = 0, 48; 723 /* PostFix depends on LockType */ 724 HPModifier = 20; 725 CreateLockConfigurations = true; 726 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:3; } 727 IsAlwaysTransparent = false; 728 729 Config BARDOOR; 730 { 731 BitmapPos = 16, 96; 732 IsAlwaysTransparent = true; 733 } 734 735 Config SECRET_DOOR; 736 { 737 BitmapPos = 16, 144; 738 NameSingular = "door"; 739 Adjective = "very secret"; 740 } 741 742 Config CURTAIN; 743 { 744 DigMessage = "You tear at the curtain."; 745 BitmapPos = 0, 112; 746 NameSingular = "curtain"; 747 MainMaterialConfig == FELT; 748 } 749} 750 751stairs /* olterrain-> */ 752{ 753 IsAbstract = true; 754 DigMessage = "The stairs are too hard to dig."; 755 MainMaterialConfig == GRANITE; 756 MaterialColorB = rgb16(160, 64, 0); 757 NameSingular = "stairway"; 758 759 Config STAIRS_UP; 760 { 761 PostFix = "upwards"; 762 BitmapPos = 0, 192; 763 IsUpLink = true; 764 } 765 766 Config STAIRS_DOWN; 767 { 768 PostFix = "downwards"; 769 BitmapPos = 0, 208; 770 } 771 772 Config SUMO_ARENA_ENTRY; 773 { 774 PostFix = "downwards"; 775 BitmapPos = 0, 208; 776 } 777 778 Config SUMO_ARENA_EXIT; 779 { 780 PostFix = "upwards"; 781 BitmapPos = 0, 192; 782 IsUpLink = true; 783 } 784} 785 786portal /* stairs -> */ 787{ 788 DigMessage = "The portal is magically protected from your feeble attack."; 789 MainMaterialConfig == GOLD; 790 MaterialColorB = rgb16(200, 0, 0); 791 NameSingular = "magic portal"; 792 AttachedGod = MORTIFER; 793 /* BitmapPos overridden */ 794 795 /* Config specialities hard-coded */ 796 797 Config OREE_LAIR_ENTRY; { } 798 Config OREE_LAIR_EXIT; { } 799 Config DARK_LEVEL; { } 800 801 Config XINROCH_TOMB_ENTRANCE; 802 { 803 MaterialColorB = rgb16(0, 200, 0); 804 } 805 806 Config XINROCH_TOMB_EXIT; 807 { 808 MaterialColorB = rgb16(140, 240, 255); 809 } 810} 811 812altar /* olterrain-> */ 813{ 814 DigMessage = "An invisible wall stops your feeble attempt."; 815 MainMaterialConfig == GRANITE; 816 UsesLongArticle = true; 817 NameSingular = "altar"; 818 BitmapPos = 0, 368; 819 /* PostFix depends on Config */ 820 CreateDivineConfigurations = true; 821 IsAbstract = true; 822} 823 824throne /* olterrain-> */ 825{ 826 DigMessage = "The throne resists."; 827 MainMaterialConfig == GOLD; 828 MaterialColorB = rgb16(200, 200, 0); 829 NameSingular = "throne"; 830 BitmapPos = 0, 416; 831 AttachedGod = VALPURUS; 832} 833 834olterraincontainer /* olterrain->decoration-> */ 835{ 836 IsAbstract = true; 837 Walkability = ETHEREAL; 838 DigMessage = "You smash this piece of furniture into pieces."; 839 840 Config BOOK_CASE; 841 { 842 CanBeDestroyed = true; 843 MainMaterialConfig == FIR_WOOD; 844 NameSingular = "bookcase"; 845 BitmapPos = 16, 272; 846 SitMessage = "The bookcase is very uncomfortable to sit on."; 847 StorageVolume = 100000; 848 HPModifier = 20; 849 AttachedGod = SOPHOS; 850 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:2; } 851 } 852 853 Config CHEST_OF_DRAWERS; 854 { 855 CanBeDestroyed = true; 856 MainMaterialConfig == FIR_WOOD; 857 MaterialColorB = rgb16(124, 50, 16); 858 NameSingular = "chest of drawers"; 859 BitmapPos = 0, 224; 860 SitMessage = "The chest of drawers is very uncomfortable to sit on."; 861 StorageVolume = 50000; 862 HPModifier = 40; 863 AttachedGod = SOPHOS; 864 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1000; } Times = 1:2; } 865 } 866 867 Config SHELF; 868 { 869 CanBeDestroyed = true; 870 MainMaterialConfig == FIR_WOOD; 871 NameSingular = "shelf"; 872 BitmapPos = 16, 128; 873 SitMessage = "The shelf is very uncomfortable to sit on."; 874 StorageVolume = 80000; 875 HPModifier = 20; 876 AttachedGod = ATAVUS; 877 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:2; } 878 MaterialColorB = rgb16(200,200,200); 879 } 880} 881 882fountain /* olterrain-> */ 883{ 884 DigMessage = "The water splashes a bit."; /* Wrong if SecondaryMaterial != WATER. */ 885 MainMaterialConfig == MARBLE; 886 SecondaryMaterialConfig == WATER; 887 /* Uses ContainerPostFix() */ 888 /* Adjective depends on being dried out or not */ 889 NameSingular = "fountain"; 890 /* BitmapPos depends on being dried out or not */ 891 HasSecondaryMaterial = true; 892} 893 894brokendoor /* olterrain->door-> */ 895{ 896 DigMessage = "You destroy the broken door."; 897 Adjective = "broken"; 898 BitmapPos = 0, 160; 899 CreateLockConfigurations = true; 900 901 Config BARDOOR; 902 { 903 IsAlwaysTransparent = true; 904 BitmapPos = 32,96; 905 } 906 907 Config SECRET_DOOR; 908 { 909 BitmapPos = 16, 160; 910 NameSingular = "door"; 911 Adjective = "broken very secret"; 912 } 913 914 Config CURTAIN; 915 { 916 DigMessage = "You tear down the curtain."; 917 BitmapPos = 0, 96; 918 Adjective = "torn"; 919 NameSingular = "curtain"; 920 } 921} 922 923boulder /* olterrain-> */ 924{ 925 DigMessage = "You smash the boulder to tiny bits."; 926 MainMaterialConfig == GRANITE; 927 NameSingular = "boulder"; 928 SitMessage = "The boulder is rather hard to sit on."; 929 CanBeDestroyed = true; 930 IsAbstract = true; 931 HPModifier = 50; 932 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; } 933 934 Config 1; 935 { 936 BitmapPos = 64, 288; 937 } 938 939 Config 2; 940 { 941 BitmapPos = 64, 304; 942 } 943 944 Config 3; 945 { 946 BitmapPos = 64, 304; /* Should be checked */ 947 HPModifier = 70; 948 Adjective = "large"; 949 IsAlwaysTransparent = false; 950 Walkability = ETHEREAL; 951 } 952 953 Config SNOW_BOULDER; 954 { 955 MaterialColorB = rgb16(220, 220, 220); 956 BitmapPos = 80, 306; 957 Adjective = "snow-covered"; 958 } 959} 960 961sign 962{ 963 DigMessage = "You smash the sign to tiny bits."; 964 MainMaterialConfig == BALSA_WOOD; 965 MaterialColorB = rgb16(200,200,200); 966 /* Uses own postfix */ 967 NameSingular = "sign"; 968 BitmapPos = 16, 336; 969 SitMessage = "You feel very weird sitting on the sign."; 970 CanBeDestroyed = true; 971 MaterialColorB = rgb16(48, 48, 48); 972 HPModifier = 10; 973 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:500; } } 974} 975 976earth 977{ 978 CanBeDestroyed = true; 979 IsSafeToCreateDoor = true; 980 Walkability = ETHEREAL; 981 IsAlwaysTransparent = false; 982 OKVisualEffects = MIRROR|FLIP|ROTATE; 983 DigMessage = "The ground is fairly easy to dig."; 984 MainMaterialConfig == MORAINE; 985 UsesLongArticle = true; 986 NameSingular = "earth"; 987 BitmapPos = 96, 416; 988 HPModifier = 50; 989 BorderTilePriority = 10; 990 UseBorderTiles = true; 991 ShowThingsUnder = false; 992 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; } 993 IsWall = true; 994} 995 996monsterportal 997{ 998 DigMessage = "The portal is magically protected from your feeble attack."; 999 MainMaterialConfig == SILVER; 1000 MaterialColorB = rgb16(0, 0, 90); 1001 NameSingular = "magic portal"; 1002 AttachedGod = MORTIFER; 1003} 1004 1005coffin /* olterrain->decoration->olterraincontainer */ 1006{ 1007 Walkability = ANY_MOVE; 1008 DigMessage = "You smash the coffin into pieces. The spirits are not happy."; 1009 CanBeDestroyed = true; 1010 MainMaterialConfig == FIR_WOOD; 1011 NameSingular = "coffin"; 1012 BitmapPos = 32, 144; 1013 OpenBitmapPos = 32, 160; 1014 SitMessage = "The coffin is cold to sit on."; 1015 StorageVolume = 100000; 1016 AttachedGod = MORTIFER; 1017 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:2; } 1018} 1019 1020barwall 1021{ 1022 CanBeDestroyed = true; 1023 IsSafeToCreateDoor = true; 1024 Walkability = ETHEREAL; 1025 IsAlwaysTransparent = true; 1026 BorderTilePriority = 100; 1027 CreateWindowConfigurations = false; 1028 MaterialColorC = rgb16(140, 96, 48); 1029 MaterialColorD = rgb16(180, 180, 255); 1030 ShowThingsUnder = true; 1031 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:4; } 1032 IsWall = true; 1033 DigMessage = "You break the bars."; 1034 MainMaterialConfig == IRON; 1035 NameSingular = "bars"; 1036 BitmapPos = 16, 112; 1037 HPModifier = 25; 1038 ShowThingsUnder = true; 1039 AttachedGod = LEGIFER; 1040 1041 Config BROKEN_BARWALL; 1042 { 1043 BitmapPos = 32, 112; 1044 Adjective = "broken"; 1045 Walkability = ANY_MOVE; 1046 } 1047} 1048 1049ironmaiden 1050{ 1051 LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; } 1052 CanBeDestroyed = true; 1053 UsesLongArticle = true; 1054 DigMessage = "The iron maiden falls into pieces."; 1055 SitMessage = "You sit in the iron maiden. This doesn't seem safe at all."; 1056 MainMaterialConfig == IRON; 1057 ShowMaterial = false; 1058 NameSingular = "iron maiden"; 1059 HPModifier = 250; 1060} 1061 1062christmastree 1063{ 1064 OKVisualEffects = MIRROR; 1065 CanBeDestroyed = true; 1066 DigMessage = "You chop the tree down."; 1067 MainMaterialConfig == SNOW; 1068 ShowMaterial = false; 1069 MaterialColorB = rgb16(32, 100, 32); 1070 MaterialColorC = rgb16(0, 180, 80); 1071 MaterialColorD = rgb16(180, 20, 0); 1072 NameSingular = "fir"; 1073 PostFix = "covered with snow"; 1074 /* BitmapPos overridden */ 1075 HPModifier = 25; 1076 IsAlwaysTransparent = false; 1077 LeftOverItems == stick { MainMaterial = FIR_WOOD { Volume = 500:1500; } Times = 1:4; } 1078} 1079