/* * * Iter Vehemens ad Necem (IVAN) * Copyright (C) Timo Kiviluoto * Released under the GNU General * Public License * * See LICENSING which should be included * along with this file for more details * */ /* * NOTICE!!! * * This file contains SPOILERS, which might ruin your IVAN experience * totally. Also, editing anything can DESTROY GAME BALANCE or CAUSE * OBSCURE BUGS if you don't know what you're doing. So from here on, * proceed at your own risk! */ /* Numerical olterrain data loaded during game startup */ /* Default values: */ olterrain { /* Obligatory: BitmapPos */ UsesLongArticle = false; Adjective = ""; UsesLongAdjectiveArticle = false; /* Obligatory: NameSingular */ /* NameSingular + "s" by default: NamePlural */ PostFix = ""; ArticleMode = 0; /* Obligatory: MainMaterialConfig */ /* Obligatory: SecondaryMaterialConfig */ /* Obligatory if multiple material configurations defined: MaterialConfigChances */ IsAbstract = true; /* This is false by default and does not inherit! */ OKVisualEffects = NONE; MaterialColorB = 0; MaterialColorC = 0; MaterialColorD = 0; SitMessage = "You sit for some time. Nothing happens."; /* Obligatory: DigMessage */ CanBeDestroyed = false; RestModifier = 1; RestMessage = ""; ShowMaterial = true; IsUpLink = false; CreateDivineConfigurations = false; StorageVolume = 0; HPModifier = 100; IsSafeToCreateDoor = false; AttachedGod = NONE; CreateLockConfigurations = false; /* Can't be overridden by Configs */ Walkability = ANY_MOVE; IsAlwaysTransparent = true; UseBorderTiles = false; BorderTilePriority = 0; HasSecondaryMaterial = false; CreateWindowConfigurations = false; ShowThingsUnder = true; IsWall = false; } wall { IsAbstract = true; CanBeDestroyed = true; IsSafeToCreateDoor = true; Walkability = ETHEREAL; IsAlwaysTransparent = false; BorderTilePriority = 100; CreateWindowConfigurations = true; MaterialColorC = rgb16(140, 96, 48); MaterialColorD = rgb16(180, 180, 255); ShowThingsUnder = false; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:4; } IsWall = true; Config BRICK_FINE; { DigMessage = "The wall is pretty hard, but you still manage to go through it."; MainMaterialConfig == GRANITE; NameSingular = "wall"; BitmapPos = 64, 272; HPModifier = 150; WindowBitmapPos = 96, 256; } Config BRICK_PROPAGANDA; { DigMessage = "You break the wall down despite the uncomfortable feeling of being constantly watched."; MainMaterialConfig == GRANITE; NameSingular = "wall"; PostFix = "and a poster with a picture of high priest Petrus, the ruler of the Attnamese Empire"; BitmapPos = 80, 272; HPModifier = 150; } Config BRICK_OLD; { DigMessage = "The piece of wall is very old and shabby. You dig it with ease."; MainMaterialConfig == GRANITE; UsesLongAdjectiveArticle = true; Adjective = "old"; NameSingular = "wall"; BitmapPos = 16, 256; HPModifier = 75; } Config BRICK_PRIMITIVE; { DigMessage = "The piece of wall is very old and shabby. You dig it with ease."; MainMaterialConfig == BALSA_WOOD; Adjective = "primitive"; NameSingular = "wall"; BitmapPos = 48, 272; HPModifier = 75; WindowBitmapPos = 80, 256; } Config BRICK_PRIMITIVE_PROPAGANDA; { DigMessage = "You break the wall down despite the uncomfortable feeling of being constantly watched."; MainMaterialConfig == BALSA_WOOD; Adjective = "primitive"; NameSingular = "wall"; PostFix = "and a poster with a picture of high priest Petrus, the ruler of the Attnamese Empire"; BitmapPos = 96, 272; HPModifier = 75; } Config STONE_WALL; { OKVisualEffects = MIRROR|FLIP|ROTATE; DigMessage = "The ground is hard to dig."; MainMaterialConfig == GRANITE; MaterialColorB = rgb16(56, 56, 56); NameSingular = "wall"; BitmapPos = 0, 32; HPModifier = 100; } Config ICE_WALL; { OKVisualEffects = MIRROR|FLIP|ROTATE; DigMessage = "The ice is pretty easy to dig."; MainMaterialConfig == ICE; NameSingular = "wall"; BitmapPos = 0, 32; HPModifier = 40; } } decoration { IsAbstract = true; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; } Config PINE; { OKVisualEffects = MIRROR; CanBeDestroyed = true; DigMessage = "You chop the tree down."; MainMaterialConfig == PINE_WOOD; ShowMaterial = false; MaterialColorB = rgb16(32, 100, 32); NameSingular = "pine"; BitmapPos = 16, 320; HPModifier = 25; } Config FIR; { OKVisualEffects = MIRROR; CanBeDestroyed = true; DigMessage = "You chop the tree down."; MainMaterialConfig == FIR_WOOD; ShowMaterial = false; MaterialColorB = rgb16(32, 100, 32); NameSingular = "fir"; BitmapPos = 16, 352; HPModifier = 25; IsAlwaysTransparent = false; } Config PALM; { OKVisualEffects = MIRROR; CanBeDestroyed = true; DigMessage = "You chop the tree down."; MainMaterialConfig == BALSA_WOOD; ShowMaterial = false; MaterialColorB = rgb16(32, 80, 32); NameSingular = "palm"; BitmapPos = 16, 368; HPModifier = 25;/* IsAlwaysTransparent = false;*/ } Config HOLY_TREE; { CanBeDestroyed = true; DigMessage = "You ruthlessly chop the beautiful tree down."; MainMaterialConfig == GOLD; ShowMaterial = false; MaterialColorB = rgb16(224, 224, 0); Adjective = "holy"; NameSingular = "tree"; BitmapPos = 32, 336; ShowMaterial = true; HPModifier = 25; AttachedGod = SILVA; } Config CARPET; { DigMessage = "You can't force yourself to ruin this wonderful carpet."; MainMaterialConfig == FABRIC; NameSingular = "carpet"; BitmapPos = 0, 272; } Config COUCH; { CanBeDestroyed = true; DigMessage = "The destroy the couch and find some valuables dropped by its owners."; MainMaterialConfig == FABRIC; NameSingular = "couch"; BitmapPos = 0, 400; RestModifier = 2; MaterialColorB = rgb16(200, 200, 0); SitMessage = "The couch is extremely soft and confortable. You relax well."; RestMessage = "You rest well on the soft sofa."; HPModifier = 25; LeftOverItems == stone { Times = 1:2; } } Config DOUBLE_BED; { CanBeDestroyed = true; DigMessage = "You smash the bed into pieces."; MainMaterialConfig == FABRIC; Adjective = "luxurious"; NameSingular = "double bed"; BitmapPos = 48, 304; MaterialColorB = rgb16(200, 200, 0); ShowMaterial = false; RestModifier = 5; SitMessage = "The beautiful bed is very soft. You get a feeling it's not meant for your kind of people."; RestMessage = "You lay yourself on the confortable bed."; HPModifier = 25; LeftOverItems == 0; } Config POOL_BORDER; { DigMessage = "The water splashes a bit."; /* Only correct if over a water pool */ MainMaterialConfig == MARBLE; NameSingular = ""; BitmapPos = 32, 320; } Config POOL_CORNER; { DigMessage = "The water splashes a bit."; /* Only correct if over a water pool */ MainMaterialConfig == MARBLE; NameSingular = ""; BitmapPos = 48, 320; } Config SNOW_PINE; { OKVisualEffects = MIRROR; CanBeDestroyed = true; DigMessage = "You chop the tree down."; MainMaterialConfig == PINE_WOOD; ShowMaterial = false; MaterialColorB = rgb16(220, 220, 220); NameSingular = "pine"; PostFix = "covered with snow"; BitmapPos = 16, 320; HPModifier = 25; } Config SNOW_FIR; { OKVisualEffects = MIRROR; CanBeDestroyed = true; DigMessage = "You chop the tree down."; MainMaterialConfig == FIR_WOOD; ShowMaterial = false; MaterialColorB = rgb16(220, 220, 220); NameSingular = "fir"; PostFix = "covered with snow"; BitmapPos = 16, 352; HPModifier = 25; IsAlwaysTransparent = false; } Config ANVIL; { OKVisualEffects = MIRROR; CanBeDestroyed = true; DigMessage = "You break the anvil."; MainMaterialConfig == IRON; NameSingular = "anvil"; BitmapPos = 16, 432; HPModifier = 25; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:3; } } Config SHARD; { OKVisualEffects = MIRROR; CanBeDestroyed = true; DigMessage = "You shatter the crystal into pieces."; NameSingular = "shard"; BitmapPos = 16, 416; HPModifier = 5; MainMaterialConfig = { 3, BLUE_CRYSTAL, PURPLE_CRYSTAL, GREEN_CRYSTAL; } MaterialConfigChances = { 3, 100, 100, 100; } LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 100:200; } Times = 1:3; } } Config CACTUS; { OKVisualEffects = MIRROR; CanBeDestroyed = true; DigMessage = "You chop the cactus down."; MainMaterialConfig == PLANT_FIBER; ShowMaterial = false; MaterialColorB = rgb16(32, 100, 32); NameSingular = "cactus"; NamePlural = "cactuses"; BitmapPos = 16, 352; HPModifier = 20; LeftOverItems == 0; } Config OAK; { CanBeDestroyed = true; DigMessage = "You ruthlessly chop the tree down."; MainMaterialConfig == OAK_WOOD; ShowMaterial = false; MaterialColorB = rgb16(0, 150, 0); NameSingular = "oak tree"; BitmapPos = 32, 336; ShowMaterial = true; HPModifier = 25; IsAlwaysTransparent = false; } Config BIRCH; { CanBeDestroyed = true; DigMessage = "You chop the tree down."; MainMaterialConfig == BIRCH_WOOD; ShowMaterial = false; MaterialColorB = rgb16(125, 160, 80); MaterialColorC = rgb16(220, 220, 220); NameSingular = "birch tree"; BitmapPos = 80, 368; HPModifier = 25; } Config TEAK; { CanBeDestroyed = true; DigMessage = "You ruthlessly chop the tree down."; MainMaterialConfig == TEAK_WOOD; ShowMaterial = false; MaterialColorB = rgb16(0, 220, 0); NameSingular = "teak tree"; BitmapPos = 32, 336; HPModifier = 25; } Config DWARF_BIRCH; { CanBeDestroyed = true; DigMessage = "You chop the dwarf birch down."; MainMaterialConfig == BIRCH_WOOD; ShowMaterial = false; MaterialColorB = rgb16(125, 160, 80); MaterialColorC = rgb16(220, 220, 220); NameSingular = "dwarf birch"; BitmapPos = 32, 368; HPModifier = 10; } } door /* olterrain-> */ { DigMessage = "You break the door."; CanBeDestroyed = true; MainMaterialConfig == FIR_WOOD; NameSingular = "door"; BitmapPos = 0, 176; OpenBitmapPos = 0, 48; /* PostFix depends on LockType */ HPModifier = 20; CreateLockConfigurations = true; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:3; } } stairs /* olterrain-> */ { IsAbstract = true; DigMessage = "The stairs are too hard to dig."; MainMaterialConfig == GRANITE; MaterialColorB = rgb16(160, 64, 0); NameSingular = "stairway"; Config STAIRS_UP; { PostFix = "upwards"; BitmapPos = 0, 192; IsUpLink = true; } Config STAIRS_DOWN; { PostFix = "downwards"; BitmapPos = 0, 208; } Config SUMO_ARENA_ENTRY; { PostFix = "downwards"; BitmapPos = 0, 208; } Config SUMO_ARENA_EXIT; { PostFix = "upwards"; BitmapPos = 0, 192; IsUpLink = true; } } portal /* stairs -> */ { DigMessage = "The portal is magically protected from your feeble attack."; MainMaterialConfig == GOLD; MaterialColorB = rgb16(200, 0, 0); NameSingular = "magic portal"; AttachedGod = MORTIFER; /* BitmapPos overridden */ /* Config specialities hard-coded */ Config OREE_LAIR_ENTRY; { } Config OREE_LAIR_EXIT; { } Config DARK_LEVEL; { } } altar /* olterrain-> */ { DigMessage = "An invisible wall stops your feeble attempt."; MainMaterialConfig == GRANITE; UsesLongArticle = true; NameSingular = "altar"; BitmapPos = 0, 368; /* PostFix depends on Config */ CreateDivineConfigurations = true; IsAbstract = true; } throne /* olterrain-> */ { DigMessage = "The throne resists."; MainMaterialConfig == GOLD; MaterialColorB = rgb16(200, 200, 0); NameSingular = "throne"; BitmapPos = 0, 416; AttachedGod = VALPURUS; } olterraincontainer /* olterrain->decoration-> */ { IsAbstract = true; Walkability = ETHEREAL; DigMessage = "You smash this piece of furniture into pieces."; Config BOOK_CASE; { CanBeDestroyed = true; MainMaterialConfig == FIR_WOOD; NameSingular = "bookcase"; BitmapPos = 16, 272; SitMessage = "The bookcase is very unconfortable to sit on."; StorageVolume = 100000; HPModifier = 20; AttachedGod = SOPHOS; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:750; } Times = 1:2; } } Config CHEST_OF_DRAWERS; { CanBeDestroyed = true; MainMaterialConfig == FIR_WOOD; NameSingular = "chest of drawers"; BitmapPos = 0, 224; SitMessage = "The chest of drawers is very unconfortable to sit on."; StorageVolume = 50000; HPModifier = 40; AttachedGod = SOPHOS; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1000; } Times = 1:2; } } } fountain /* olterrain-> */ { DigMessage = "The water splashes a bit."; /* Wrong if SecondaryMaterial != WATER. */ MainMaterialConfig == MARBLE; SecondaryMaterialConfig == WATER; /* Uses ContainerPostFix() */ /* Adjective depends on being dried out or not */ NameSingular = "fountain"; /* BitmapPos depends on being dried out or not */ HasSecondaryMaterial = true; } brokendoor /* olterrain->door-> */ { DigMessage = "You destroy the broken door."; Adjective = "broken"; BitmapPos = 0, 160; CreateLockConfigurations = true; } boulder /* olterrain-> */ { DigMessage = "You smash the boulder to tiny bits."; MainMaterialConfig == GRANITE; NameSingular = "boulder"; SitMessage = "The boulder is rather hard to sit on."; CanBeDestroyed = true; IsAbstract = true; HPModifier = 50; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; } Config 1; { BitmapPos = 64, 288; } Config 2; { BitmapPos = 64, 304; } Config 3; { BitmapPos = 64, 304; /* Should be checked */ HPModifier = 70; Adjective = "large"; IsAlwaysTransparent = false; Walkability = ETHEREAL; } Config SNOW_BOULDER; { MaterialColorB = rgb16(220, 220, 220); BitmapPos = 80, 306; Adjective = "snow-covered"; } } sign { DigMessage = "You smash the sign to tiny bits."; MainMaterialConfig == BALSA_WOOD; MaterialColorB = rgb16(200,200,200); /* Uses own postfix */ NameSingular = "sign"; BitmapPos = 16, 336; SitMessage = "You feel very weird sitting on the sign."; CanBeDestroyed = true; MaterialColorB = rgb16(48, 48, 48); HPModifier = 10; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 250:500; } } } earth { CanBeDestroyed = true; IsSafeToCreateDoor = true; Walkability = ETHEREAL; IsAlwaysTransparent = false; OKVisualEffects = MIRROR|FLIP|ROTATE; DigMessage = "The ground is fairly easy to dig."; MainMaterialConfig == MORAINE; UsesLongArticle = true; NameSingular = "earth"; BitmapPos = 96, 416; HPModifier = 50; BorderTilePriority = 10; UseBorderTiles = true; ShowThingsUnder = false; LeftOverItems == NaturalMaterialForm { MainMaterial = 0 { Volume = 500:1500; } Times = 1:3; } IsWall = true; } monsterportal { DigMessage = "The portal is magically protected from your feeble attack."; MainMaterialConfig == SILVER; MaterialColorB = rgb16(0, 0, 90); NameSingular = "magic portal"; AttachedGod = MORTIFER; }