Difference between revisions of "MultiHexTutorial"

From The Battle for Wesnoth Wiki
(First example: mountains: Syntax highlighting)
Line 15: Line 15:
 
We will use the following three rules to fill the mountains. Beware: '''Spaces into maps do matter!'''
 
We will use the following three rules to fill the mountains. Beware: '''Spaces into maps do matter!'''
  
[terrain_graphics]
+
<syntaxhighlight lang=wml>
        map="
+
[terrain_graphics]
  .,   1
+
        map="
,  .
+
. , 1
  .,   1
+
,  .
,  .
+
. , 1
  .,   1
+
,  .
,  1
+
. , 1
1"
+
,  1
        [tile]
+
1"
                pos=1
+
        [tile]
                type=Mm
+
                pos=1
        [/tile]
+
                type=Mm
 +
        [/tile]
 +
        probability=30
 +
        no_flag="base"
 +
        set_flag="base"
 +
        [image]
 +
                layer=-1000
 +
                name=tile5
 +
        [/image]
 +
[/terrain_graphics]
  
        probability=30
+
[terrain_graphics]
        no_flag="base"
+
        map="
        set_flag="base"
+
.
 +
,  1
 +
1"
 +
        [tile]
 +
                pos=1
 +
                type=Mm
 +
        [/tile]
 +
        probability=30
 +
        no_flag="base"
 +
        set_flag="base"
 +
        [image]
 +
                layer=-1000
 +
                name=tile2
 +
        [/image]
 +
[/terrain_graphics]
  
        [image]
+
[terrain_graphics]
                layer=-1000
+
        [tile]
                name=tile5
+
                x=0
        [/image]
+
                y=0
[/terrain_graphics]
+
                type=Mm
 
+
        [/tile]
[terrain_graphics]
+
        probability=100
        map="
+
        no_flag="base"
.
+
        set_flag="base"
,  1
+
        [image]
1"
+
                layer=-1000
        [tile]
+
                name=tile1
                pos=1
+
        [/image]
                type=Mm
+
[/terrain_graphics]
        [/tile]
+
</syntaxhighlight>
 
 
        probability=30
 
        no_flag="base"
 
        set_flag="base"
 
        [image]
 
                layer=-1000
 
                name=tile2
 
        [/image]
 
[/terrain_graphics]
 
 
 
[terrain_graphics]
 
        [tile]
 
                x=0
 
                y=0
 
                type=Mm
 
        [/tile]
 
        probability=100
 
        no_flag="base"
 
        set_flag="base"
 
        [image]
 
                layer=-1000
 
                name=tile1
 
        [/image]
 
[/terrain_graphics]
 
  
 
The first rule, regarding the biggest mountains, will apply first. It will include, with 30% probability, the big
 
The first rule, regarding the biggest mountains, will apply first. It will include, with 30% probability, the big

Revision as of 04:36, 18 April 2021

(quickly written, I'll explain it more in detail when I have more time -- Ayin)

First example: mountains

Suppose we have the following map to fill with mountain tiles:

tutorial1.png

And we have the following images to fill it:

  • tile1: tile1.png
  • tile2: tile2.png
  • tile5: tile5.png

We will use the following three rules to fill the mountains. Beware: Spaces into maps do matter!

[terrain_graphics]
        map="
.  ,  1
,  .
.  ,  1
,  .
.  ,  1
,  1
1"
        [tile]
                pos=1
                type=Mm
        [/tile]
        probability=30
        no_flag="base"
        set_flag="base"
        [image]
                layer=-1000
                name=tile5
        [/image]
[/terrain_graphics]

[terrain_graphics]
        map="
.
,  1
1"
        [tile]
                pos=1
                type=Mm
        [/tile]
        probability=30
        no_flag="base"
        set_flag="base"
        [image]
                layer=-1000
                name=tile2
        [/image]
[/terrain_graphics]

[terrain_graphics]
        [tile]
                x=0
                y=0
                type=Mm
        [/tile]
        probability=100
        no_flag="base"
        set_flag="base"
        [image]
                layer=-1000
                name=tile1
        [/image]
[/terrain_graphics]

The first rule, regarding the biggest mountains, will apply first. It will include, with 30% probability, the big 5-tile mountain range. This will make, for example, something like this.

tutorial2.png

The second rule will then apply. Note that the previous rule had set the "built-m" flag, thus preventing the mountains from the second rule to overlap the place where the first mountains already have been placed. The result will be something like that:

tutorial3.png

The, the last rule, with 100% probability (the probability key could have been omitted) will apply. It will place a mountain tile on the places where no other mountain tile was placed. The final mountain range will look like that:

tutorial4.png

Village with a tower

To add a building with a tower that spans over 2 hexes, you may use the following rule (Tt being the character representing the building hex)

[terrain_graphics]
     map="*, 1"
     [tile]
         pos=1
         type=Tt
     [/tile]
     [image]
         name=tower # a 36x72 image
         position=vertical
         base=36,108
     [/image]
[/terrain_graphics]

Reference

Map:

'.' means "this rule does not apply to this hex" (i.e: no image will be set to this hex, this hex will not be checked for flags, etc).

'*' means "this rule applies to this hex, but this hex can be any terrain type".

Flags:

no_flag="built-m" means that the rule only matches if the flag "built-m" is not set.

set_flag="built-m" means that the rule, upon matching, sets the flag "built-m".