diff -r 730df19c8901 -r 9fd0936eddfb GameStyles.wiki --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/GameStyles.wiki Sat Oct 12 17:18:21 2019 +0200 @@ -0,0 +1,51 @@ +#summary Description of game styles in Hedgewars + += Game styles = + +== Introduction == +A *game style* (or “style” for short) is a type of script that can be selected in multiplayer games. A list of all official styles can be found [https://hedgewars.org/node/2946 here]. + +== Location and files == +All game style files are saved in `Data/Scripts/Multiplayer`. + +To create a style with the name ``, create the file `.lua`. + +Here's the full list of supported files: + +* `.lua`: Mandatory. The script code. See below. +* `.cfg`: Optional. Config file to specify the default schemes to use. See below. +* `.hwp`: Optional. A sidecar [HWPFormat HWP file] containing additional resources for the style. + +== How it works == +In the multiplayer menu, the player will select a style in the drop-down menu. + +When the game is started, Hedgewas will initialize the script with all the player-chosen settings and also automatically places all hedgehogs and possibly some land objects (specified in the game scheme), just like in a normal game. Because the hogs are already placed, `AddHog` and `AddTeam` are pointless here. + +With an empty script, this game will behave exactly like a normal, unscripted game, with the same rules as a normal battle. Any code you write in the script will make Hedgewars deviate from the default gameplay. + +The documentation of [LuaAPI Lua API] applies. Some things we like to highlight: + +In `onGameInit`, you can read the scheme settings and also change them. You can overwrite pretty much all scheme settings here. + +In `onParameters`, you can parse the script parameter (which is also specified by the player in the game scheme). + +== Config file format == + +The config file is a text file with 2 lines: + +* Line 1: Name of the game scheme to select by default +* Line 2: Name of the weapon scheme to select by default + +Both lines can use a special value: + +* `locked`: This scheme is locked and cannot be changed by the player +* `*`: Don't select a default for this scheme + +By default, the schemes are locked. If you use a locked scheme, the style will be initialized with the settings of the “Default” scheme, but you can always overwrite that in your script code. + +== Versioning == +For community-created styles, we strongly suggest to follow a naming convention: Append a version number to the name. The style name is the form `_v`, where `` is the version number. + +The first version is `1`. Whenever you publish a changed version of the style, increase the number by 1. + +Example name for a versioned style: `ExampleStyle_v4`.