Difference between pages "Floating eye" and "Adding Cities and Dungeons to the IVAN World Map"

From IvanWiki
(Difference between pages)
Jump to navigation Jump to search
m (Reverted edits by 4zb4 (talk) to last revision by Red kangaroo)
 
 
Line 1: Line 1:
{{spoiler}}
+
''This section is about adding dungeons to the world map. If you would like to learn about the specifics of dungeon building, see [[Dungeon Building]].''
  
A floating eye is a levitating eyeball.
+
__TOC__
  
They are very small and so very hard to hit and if you miss during a melee attack, its gaze will [[Unconscious|paralyze]] you. They are simply a nuisance by themselves, but being left unconscious with other monsters around is deadly. On the other hand, they make useful [[pets]] since they can also paralyze your enemies.
+
== Introduction ==
  
If you eat a floating eye corpse it will bequeath [[ESP]] on you temporarily, but eating at least three corpses in quick succesion may grant the intrinsic permanently.
+
This is a brief guide explaining how to include your customized dungeons on the IVAN world map.
  
Floating eyes are for the most part hostile creatures, but there are a few tame living in [[Attnam]].
+
== Three key steps ==
  
 +
There are three key steps to getting your dungeon to appear on the world map.
  
{{Monster-pic
+
=== Your dungeon data file ===
|img=FloatingEye.png
 
|name=Floating Eye
 
|type=
 
|astr=1
 
|lstr=N/A
 
|dex=N/A
 
|agi=3
 
|end=6
 
|per=50
 
|int=2
 
|wis=2
 
|cha=8
 
|size=40
 
|hp=
 
|equipment=
 
* None.
 
|state=
 
[[Infravision]], [[Gas Immunity]], [[Search]]ing, Flying
 
}}
 
  
== Strategy ==
+
Your dungeon data file should reside in <code>Script/dungeons</code> where it will automatically be picked up by the game when it creates the world map. It should contain the kinds of things described in the article on [[Dungeon Building]]. Most importantly, the [[#Dungeon_Building:DungeonControlVariable|<code>Dungeon</code>]] control variable will need to be the <code>DEFINED_VALUE</code> you set in <code>define.dat</code>, which will help link the dungeon to its overworld terrain.
  
Their only defense is in response to a missed melee attack. Therefore an easy way to kill them is to throw something, such as a [[Swords|dagger]], zap them with an attack [[Wands|wand]] or even vomit on them. As long as you don't attempt to melee them they can cause no harm.
+
=== define.dat ===
  
They are also fairly slow, meaning you can lead them into a room and lock them inside.  
+
You will need to define the name that the IVAN script files will use to recognise your dungeon. Therefore you will need to include a <code>#define</code> with the other dungeon names in <code>define.dat</code>.
  
It can also be useful to [[polymorph]] into a floating eye if you are in grave danger. Your small size and paralyzing effect will be just as annoying to your enemies as it is to you!
+
Anything you put in <code>define.dat</code>, you can refer to in your other script files. This is a general rule and is applicable to any of the data files. For example, if you want to create another config of a guard, then you just put a new <code>#define</code> in <code>define.dat</code>, and you can now refer to it in <code>char.dat</code> and your dungeon data file. So it follows that you can <code>#define</code> your own dungeon name, which will be essential when we come to link the dungeon data file to the terrain data file.
  
== The Truth behind Eyes ==
+
Stick to upper case lettering when adding a new <code>#define</code>, and be sure to put an underscore when separating words. Be sure items that are enumerated follow a nice numerical sequence e.g. <code>1, 2, 3, 4, 5;</code> or <code>2, 4, 8, 16, 32;</code>, rather than <code>1, 2, 5, 7, 8;</code>. Note that if we wish to refer to a particular dungeon in the code itself, say in <code>game.cpp</code>, then the code will need to know about it, and so a <code>#define</code> will need to appear in <code>ivandef.h</code> before compiling the game.
  
Have you ever wondered where do all the levitating eyeballs come from? And why are they paralyzing you with their gaze? Do you really wish to know?
+
=== owterra.dat ===
  
They reproduce this way, stinging the paralyzed creature and infecting it with their venom. The paralysis is not strong enough to kill the victim and he will leave unaware what is to come. The floating eye venom has no ill effects for several weeks. Afterwards, the victim's eyesight will be impaired and he will start suffering headaches. After several days, the infectee will fall unconscious and his eyes will detach themselves from his head and soar into the air, creating two newborn floating eyes. The infectee will wake up soon, blind but otherwise unharmed.
+
The data file <code>owterra.dat</code> contains the "over-world terrains" of the IVAN world map. These are so named, because they become the little pictures that sit over the ground terrain on the world map. They denote the places - cities or dungeons - you can visit when adventuring in the world map, and so they need to be linked up to the dungeon data files.
  
[[Category:Monsters]]
+
Here are some pictures showing famous owterrains:
[[Category: Fiction]]
+
 
 +
{| class="wikitable"
 +
! New Attnam
 +
! Attnam
 +
! Gloomy Caves
 +
|-
 +
| [[File:Ownewattnam.png|160px]]
 +
| [[File:Owattnam.png|160px]]
 +
| [[File:Owgloomycaves.png|160px]]
 +
|}
 +
 
 +
This table shows the control variables for each over-world terrain:
 +
 
 +
{| class="wikitable"
 +
! Keyword
 +
! Values
 +
! Description
 +
|-
 +
| <code>BitmapPos</code>
 +
| <code>x, y;</code>
 +
| This determines the bitmap position of the picture of the terrain in <code>WTerra.pcx</code>
 +
|-
 +
| <code>NameStem</code>
 +
| <code>"string"</code>
 +
| This is a string, beginning with a lowercase word, usually a noun or an adjective, for example, "mighty cathedral" or "cave entrance"
 +
|-
 +
| <code>UsesLongArticle</code>
 +
| <code>true</code> or <code>false</code>
 +
|
 +
|-
 +
| <code>IsAbstract</code>
 +
| <code>true</code> or <code>false</code>
 +
|
 +
|-
 +
| <code>CanBeGenerated</code>
 +
| <code>true</code> or <code>false</code>
 +
|
 +
|-
 +
| <code>AttachedDungeon</code>
 +
| <code>DEFINED_VALUE</code>
 +
|
 +
|-
 +
| <code>AttachedArea</code>
 +
| <code>0, 1, 2, ...</code>
 +
|
 +
|-
 +
| <code>RevealEnvironmentInitially</code>
 +
| <code>true</code> or <code>false</code>
 +
|
 +
|-
 +
| <code>NativeGTerrainType</code>
 +
| <code>DEFINED_VALUE</code>
 +
| MUST be non-zero. Can select from <code>DESERT</code>, <code>JUNGLE</code>, <code>STEPPE</code>, <code>LEAFY_FOREST</code>, <code>EVERGREEN_FOREST</code>, <code>TUNDRA</code>, <code>GLACIER</code>. Note that the tundra type produces the familiar snow terrain.
 +
|}
 +
 
 +
== A worked example ==
 +
 
 +
 
 +
== Known limitations ==
 +
 
 +
As of <code>0.50.6</code>, the number of slots is <code>32</code>.
 +
 
 +
Overflow of number of dungeons. Ways in which this can happen.
 +
 
 +
Population distribution of terrain types collected by the sampling algorithm.

Revision as of 09:22, 6 June 2016

This section is about adding dungeons to the world map. If you would like to learn about the specifics of dungeon building, see Dungeon Building.

Introduction

This is a brief guide explaining how to include your customized dungeons on the IVAN world map.

Three key steps

There are three key steps to getting your dungeon to appear on the world map.

Your dungeon data file

Your dungeon data file should reside in Script/dungeons where it will automatically be picked up by the game when it creates the world map. It should contain the kinds of things described in the article on Dungeon Building. Most importantly, the Dungeon control variable will need to be the DEFINED_VALUE you set in define.dat, which will help link the dungeon to its overworld terrain.

define.dat

You will need to define the name that the IVAN script files will use to recognise your dungeon. Therefore you will need to include a #define with the other dungeon names in define.dat.

Anything you put in define.dat, you can refer to in your other script files. This is a general rule and is applicable to any of the data files. For example, if you want to create another config of a guard, then you just put a new #define in define.dat, and you can now refer to it in char.dat and your dungeon data file. So it follows that you can #define your own dungeon name, which will be essential when we come to link the dungeon data file to the terrain data file.

Stick to upper case lettering when adding a new #define, and be sure to put an underscore when separating words. Be sure items that are enumerated follow a nice numerical sequence e.g. 1, 2, 3, 4, 5; or 2, 4, 8, 16, 32;, rather than 1, 2, 5, 7, 8;. Note that if we wish to refer to a particular dungeon in the code itself, say in game.cpp, then the code will need to know about it, and so a #define will need to appear in ivandef.h before compiling the game.

owterra.dat

The data file owterra.dat contains the "over-world terrains" of the IVAN world map. These are so named, because they become the little pictures that sit over the ground terrain on the world map. They denote the places - cities or dungeons - you can visit when adventuring in the world map, and so they need to be linked up to the dungeon data files.

Here are some pictures showing famous owterrains:

New Attnam Attnam Gloomy Caves
Ownewattnam.png Owattnam.png Owgloomycaves.png

This table shows the control variables for each over-world terrain:

Keyword Values Description
BitmapPos x, y; This determines the bitmap position of the picture of the terrain in WTerra.pcx
NameStem "string" This is a string, beginning with a lowercase word, usually a noun or an adjective, for example, "mighty cathedral" or "cave entrance"
UsesLongArticle true or false
IsAbstract true or false
CanBeGenerated true or false
AttachedDungeon DEFINED_VALUE
AttachedArea 0, 1, 2, ...
RevealEnvironmentInitially true or false
NativeGTerrainType DEFINED_VALUE MUST be non-zero. Can select from DESERT, JUNGLE, STEPPE, LEAFY_FOREST, EVERGREEN_FOREST, TUNDRA, GLACIER. Note that the tundra type produces the familiar snow terrain.

A worked example

Known limitations

As of 0.50.6, the number of slots is 32.

Overflow of number of dungeons. Ways in which this can happen.

Population distribution of terrain types collected by the sampling algorithm.