Siege File

Siege files (.siege) are required for all Movie Battles II maps. They define which teams you are using and which objectives need to be completed.

## An example .siege file

This is an updated version of the example file provided in Lindsey's **partially outdated** MBII Siege Mapping tutorial.

One of the newer MBII features which is specificied within a .siege file is Objective Hint Icons, which has it's own wiki page. Visit that after you read and understand this example!

```
//This file should never exceed 16384 bytes.

Teams
{
    team1 Rebels
    team2 Imperials
}

LevelshotDesc
{
    desc1
    {
        text "The pilots have their job to do, we have ours. We need to get to the Throne Room and seal the doors. The entire Palace is locked down, but if someone can slice the controls at the generator our attack will be much easier.

We'll take the long way."

        rect "410 147 220 55"
        scale 0.125
    }
    desc2
    {
        text "The Naboo are attacking the Palace. Security has been raised to its highest level, but there is an access console in the Generator room. If the Naboo manage to slice it, defense will be more difficult.

You have been well trained, they will be no match for you."

        rect "410 258 220 55"
        scale 0.125
    }
}

mapgraphic "gfx/mp/mplevels/samplemap/samplemaplayout"
missionname "Map Name Here"

radartopleft "x1, y1"
radarbottomright "x2, y2"
AutoMap
{
    AutoMap0
    {
        radargraphic "gfx/automap/mb2\_dotf"
        radargraphicfull "gfx/automap/mb2\_dotffull"
        height "0"
    }

    AutoMap1
    {
        radargraphic "gfx/automap/mb2\_dotf\_upper"
        radargraphicfull "gfx/automap/mb2\_dotffull2"
        height "100"
    }
}

roundbegin\_target ""
//this is a global target, it will be fired off if there is one when the round begins (this happens

//when there is at least 1 player on each team active)

MBModeOverride ""
//this forces your map to default to whichever mode you decide, 0-4

//All message strings, like message\_team1, wonround, etc. can be striped references by having the first char as @.

Rebels
{
    RequiredObjectives 1
    Timed 300
    UseTeam "Samplemap\_Rebels"

    TeamIcon "gfx/2d/mp\_rebel\_symbol\_3"
    TeamColorOn "1 0 0 1"
    TeamColorOff ".7 0 0 1"

    Objective1
    {
        goalname "ACCOMPLISH: Defend yourselves!"
        final -1
        message\_team1 "We have survived the attack"
        message\_team2 "The rebels still are alive!"
        objdesc "ACCOMPLISH: Fend off the Empire's attack!"
        objgfx "gfx/mp/mplevels/samplemap/rebelobjective1"
    }

    Objective2
    {
        goalname "ACCOMPLISH: Get to the chopper!"
        final 0
        message\_team1 "We got to the chopper!"
        message\_team2 "The rebels got to the choppa!"
        objdesc "ACCOMPLISH: Get yourselves to the choppa!"
        objgfx "gfx/mp/mplevels/samplemap/rebelobjective1"
    }

    wonround "We have Escaped the Empire" //Printed to this team if they won the round.

    lostround "The Empire killed us!" //Printed to this team if they lost the round.

    roundover\_sound\_wewon ""
    roundover\_sound\_welost ""
    roundover\_target "siegeend"
    attackers 1 //this actually does not affect the mission, but the bot AI will use the knowledge to decide on how to act.

    briefing "Fend off the Imperials and get to the chopper!" //Displayed on the mission briefing menu.

}

Imperials
{
    RequiredObjectives 1
    UseTeam "Samplemap\_Imperials"
    TeamIcon "gfx/2d/mp\_imp\_symbol\_3"
    TeamColorOn "0 0 1 1"
    TeamColorOff "0 0 .7 1"

    Objective1
    {
        goalname "ACCOMPLISH: Kill the Rebels!"
        final 0
        message\_team1 "We were defeated!"
        message\_team2 "We have Killed the Rebel scum"
        target ""
        objdesc "ACCOMPLISH: Kill the Rebels"
        objgfx "gfx/mp/mplevels/deathstar/empireobjective1"
    }

    Objective2
    {
        goalname "ACCOMPLISH: Prevent the Rebels from escaping in the chopper"
        final 1
        message\_team1 "The Imperials prevented our escape!"
        message\_team2 "We stopped the scum from getting to the chopper!"
        objdesc "ACCOMPLISH: Prevent the Rebels from escaping"
        objgfx "gfx/mp/mplevels/sample/empireobjective2"
    }

    wonround "The Rebels have been Captured"
    lostround "Lord Vader will not be Pleased"
    roundover\_sound\_wewon ""
    roundover\_sound\_welost ""
    roundover\_target "siegeend"
    attackers 0
    briefing "Find and eliminate the Rebel group"
}

```

## What it means

```
Teams
{
    team1 Rebels
    team2 Imperials
}

```

* This tells the game what to display on the briefing screen for `team1` and `team2`. Mainly for visual use, you could type anything here and have it display in-game. Make sure to leave `team1` and `team2` alone and only change what comes after them ("Rebels" and "Imperials").

```
mapgraphic "gfx/mp/mplevels/samplemap/samplemaplayout"

```

* You can specify an image to use for the objective screen. Normally its used for an overhead shot of the map showing the layout and routes. Make sure the image is 256 by 512 pixels or it will be distorted or not shown at all.

```
missionname "Map Name Here"

```

* The text entered after `missionname` will be displayed at the top of the objectives menu.

```
radartopleft "x1, y1"
radarbottomright "x2, y2"
AutoMap
{
    AutoMap0
    {
        radargraphic "gfx/automap/mb2\_dotf"
        radargraphicfull "gfx/automap/mb2\_dotffull"
        height "0"
    }

    AutoMap1
    {
        radargraphic "gfx/automap/mb2\_dotf\_upper"
        radargraphicfull "gfx/automap/mb2\_dotffull2"
        height "100"
    }
}

```

* This is automap stuff, see automaps. All of this is optional.

```
roundbegin\_target ""

```

* The text entered after `missionname` will be displayed at the top of the objectives menu.
* `roundbegin_target` lets you specify an entity which will be fired when the round begins, i.e. when everyone spawns, this is **optional**, if you don't need it, just leave it blank.

```
Rebels
{
    RequiredObjectives 1
    Timed 300
    UseTeam "Samplemap\_Rebels"

    TeamIcon "gfx/2d/mp\_rebel\_symbol\_3"

```

* This is the start of Team 1's part of the siege file (or rebel team in this case).
* `RequiredObjectives` tells the game how many objectives need to be completed before scoring a round for this team.
* The `Timed 300` means the rebels are the attacking force and therefor have to complete the objectives before time runs out, this is specifies in seconds so in this case 5 mins is the time limit. Only one team can have this entry as it determines who the attackers and defenders are.
* The `UseTeam` corresponds to the team config files. Unlike the `team1` and `team2` commands we saw earlier, `UseTeam` gets its information from another text file and therefore the name entered here must match the filename of the team config file.
* `TeamIcon` allows you to specify an icon for your team. These should be 128 by 128 pixels. Here are he available team icons with MB2:

```
    TeamColorOn "1 0 0 1"
    TeamColorOff ".7 0 0 1"

```

* `TeamColorOn` is a **optional** parameter to change what color the icon has when you are in that team.

The color is specified as a normalized RGB value, so, to get the value you have to use the RGB scale 0-255 and divide the number you want by 255
* `TeamColorOff` is almost the same as the above, but this is the color the icon of the opposite team has, everything else still applies, this is also **optional**.

```
    Objective1
    {
        goalname "ACCOMPLISH: Defend yourselves!"
        final -1
        message\_team1 "We have survived the attack"
        message\_team2 "The rebels still are alive!"
        objdesc "ACCOMPLISH: Fend off the Empire's attack!"
        objgfx "gfx/mp/mplevels/samplemap/rebelobjective1"
    }

```

* `objective1` starts off at the top of an objective entry, can go higher if you have multiple objectives (example being `objective2`, `objective3`, etc). The game will match the map's info\_siege\_objective numbers to whats specified here and display the according messages.
* `goalname` is more editor convenience then anything else, pretty much just put something here that will tell you what the objective is.
* The `final` command is pretty important, this tells the game when to stop the round completely and give a score to the team. A value of `-1` means the objective does not end the round, useful for when you have multiple objectives like opening doors and such. A value of `0` means the round objective counts plus one to the `RequiredObjectives`, when the count is reached, the round ends. A value of `1` will make the round end immediately.
* `message_team1` and `2` will show onscreen messages to both teams when the objective is completed. You can type anything here but keep it short. Too long and the text goes off-screen.
* `objdesc` is the text for what appears in the objective menu to describe a certain objective. Again you can type anything here.
* `objgfx` allows you to link to an image to better show what the objective is (some examples could be a control panel, person, area, etc). Make sure the image is 128 by 128 pixels or it will be distorted or not shown at all.

```
    wonround "We have Escaped the Empire"
    lostround "The Empire killed us!"
    briefing "Fend off the Imperials and get to the chopper!"
}

```

* `wonround` is the message that the winning team sees (in this case the Rebel team). You can type anything here but remember to keep it short.
* `lostround` is the message seen if the team loses the round, just like `wonround` pretty much though only seen in the inverse scenario.

Things to remember:

* Everything after `//` is not parsed by the game, so use this to put in comments etc.
* The `{` and `}` brackets are used as start and end markers for script sections. you will *always* need as many `}` as you have `{` or the .siege wont work like it should.