LuaAPI.wiki
author Wuzzy
Sat, 10 Feb 2018 16:39:18 +0000
changeset 1188 fbcd3b2458b8
parent 1165 7438c7dfeff6
child 1189 e69155e475c8
permissions -rw-r--r--
LuaAPI: details for SetVisualGearValues
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
67
eecbb1c261bb Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 66
diff changeset
     1
#summary API for writing Lua scripts in Hedgewars.
284
365362b51148 This is cool stuff, let's put it on the project frontpage (adding "featured" tag)
sheepyluva@gmail.com
parents: 244
diff changeset
     2
#labels Featured
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
     3
741
8fa25c5a4967 LuaAPI: Add title
Wuzzy
parents: 692
diff changeset
     4
= Core Lua API documentation =
8fa25c5a4967 LuaAPI: Add title
Wuzzy
parents: 692
diff changeset
     5
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     6
== Introduction ==
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     7
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     8
Version 0.9.13 of Hedgewars introduced the ability to use Lua scripts to modify Hedgewars behaviour for different maps without having to recompile the whole game. The till then used triggers (only appeared in training maps) were removed.
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
     9
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    10
Lua is an easy to learn scripting language that’s implemented using open source libraries. If you’d like to learn more about Lua, have a look at [http://www.lua.org Lua's official homepage]. Even though its easy to learn syntax this wiki page won't explain all basics of using Lua, e.g. declaring variables or using control structures. There are tons of step-by-step tutorials and documentation available on the internet. Just throw “Lua” into your favourite search engine and give it a try.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    11
519
b757c990bd5c Moved TOC a little bit further down.
almikes@aol.com
parents: 515
diff changeset
    12
=== About this wiki page ===
b757c990bd5c Moved TOC a little bit further down.
almikes@aol.com
parents: 515
diff changeset
    13
This page tends to become outdated. For a list of undocumented functions, see [http://hw.ercatec.net/docs/lua_wiki_check.php].
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    14
519
b757c990bd5c Moved TOC a little bit further down.
almikes@aol.com
parents: 515
diff changeset
    15
<wiki:toc max_depth="4" />
b757c990bd5c Moved TOC a little bit further down.
almikes@aol.com
parents: 515
diff changeset
    16
859
16f26a7c87d9 LuaAPI: fix typo in title overview
Wuzzy
parents: 858
diff changeset
    17
== Overview ==
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    18
=== How Hedgewars handles Lua scripts ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    19
As of Version 0.9.20, Hedgewars supports Lua scripts for two similar tasks: Define tutorial missions, campaign missions or provide special map behaviour for precreated maps. It is also used for multiplayer scripts to create new game styles.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    20
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    21
=== Tutorial missions ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    22
Tutorial missions are located within text files inside `share/hedgewars/Data/Missions/Training`. The game will list all files with the lua extension inside this directory in the Training selection screen. You’ll find some premade example scripts within this directory that contain several comments on the script lines and what they do.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    23
567
17cf8a0c007f Link to [Missions].
almikes@aol.com
parents: 564
diff changeset
    24
See [Missions] for details.
17cf8a0c007f Link to [Missions].
almikes@aol.com
parents: 564
diff changeset
    25
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    26
=== Special maps ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    27
In addition to tutorial missions predrawn maps (maps not created using the random map creator) may contain a single lua script file named `map.lua`. If it’s there, it will be used once the map is played. This way it’s possible to play maps alone or over the internet using custom goals. Mission maps can be found in singleplayer mode under the “training” button and in multiplayer mode, it is selectable as a map type.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    28
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    29
See also [PresetMaps] for more information about such maps.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    30
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    31
=== How Lua scripts are used ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    32
Several parts of script files are executed multiple times. In general, the whole script file is read while loading the map. Declarations as well as function calls outside functions are executed at once. Later on the game will call special predefined function names at special occassions such as the creation of new game objects (called “gears”).
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    33
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    34
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    35
=== Important things to know ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    36
It is possible to play missions in multiplayer. However this requires all participating players to have the exact same version of the map files, including the `map.lua` script file. If this isn’t the case the game will probably desync and “kick” at least the one player using a different version of the map files. To avoid problems when running prepackaged maps, you should never modify any maps provided with the Hedgewars default package. Instead, create a copy of the existing map and modify this one. Feel free to share your work on the forums.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    37
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    38
Another thing to note is the current status of our scripting implementation. Similar to the whole game, this is still work in progress and we can’t guarantee that scripts working in this version will run in future revisions of the game as we might extend, change or rename parts of the scripting engine.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    39
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    40
=== Global variables/constants ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    41
Global variables are used by the game to interact with the scripts by passing and retrieving their values. While some of the variables are never read by the engine some allow you to modify the engine’s behaviour, e.g. the theme to be used for the current map.
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    42
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    43
  	  	 
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    44
=== Functions called by the game: Event handlers ===
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    45
After successfully loading the Lua script the game will call the following functions on different occasions. To be used, they have to use the exact same name as defined below.
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    46
478
7b95addbe9fc Move “color” into new data types section.
almikes@aol.com
parents: 477
diff changeset
    47
== Data types ==
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    48
This section defines some commonly used non-primitive parameter types which are used in multiple functions. This section is a bit incomplete at the moment.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
    49
478
7b95addbe9fc Move “color” into new data types section.
almikes@aol.com
parents: 477
diff changeset
    50
=== Color ===
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    51
Some functions take a `color` parameter.
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    52
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
    53
Colors are stored in RGB or RGBA format and are specified as a three- or four-byte number, respecively.
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
    54
In 3-byte (RGB) colors, each byte represents a color component. The value 0 means no intensity and 255 is largest intensity of the component.
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    55
The first byte is for the red component, the second byte for the green component and the third byte for the blue component.
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
    56
Four-byte (RGBA) colors use the first 3 bytes for the color components (like for the 3-byte colors) and the fourth byte is used for opacity, where 255 means maximum opacity and 0 means fully transparent (also called the “alpha channel”).
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    57
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    58
Specifying the color number becomes much easier if you write it in hexadecimal notation.
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    59
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
    60
Examples for RGB (3-byte) colors:
477
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    61
<code language="lua">
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    62
c = 0x000000 -- black (R, G, B are all 0)
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    63
c = 0xFF0000 -- red
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    64
c = 0x00FF00 -- green
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    65
c = 0x0000FF -- blue
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    66
c = 0xFFFFFF -- white
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    67
c = 0x808080 -- gray (50%)</code>
8c326a00ead3 Add information about the “color” parameter found in some functions.
almikes@aol.com
parents: 476
diff changeset
    68
885
40aae8355e3e LuaAPI: www.colorpicker.com
Wuzzy
parents: 881
diff changeset
    69
Hint: On [http://www.colorpicker.com/] you find a color-picking tool for getting RGB colors easily.
40aae8355e3e LuaAPI: www.colorpicker.com
Wuzzy
parents: 881
diff changeset
    70
312
6c0397400a9b Add Smaxx' nice lua API introduction from the hedgewars.org wiki
sheepyluva@gmail.com
parents: 295
diff changeset
    71
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    72
== Globally available variables and constants ==
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    73
The following variables are made available by Hedgewars in Lua and can be used to quickly query a value. Lua scripts schould normally *not* write to these variables, only read from them.
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    74
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    75
=== General variables and constants ===
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    76
Here are some unsorted variables or constants which are available in Lua. You shouldn’t write to most of them.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
    77
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    78
|| *Identifier* || *Description* ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    79
|| `LAND_WIDTH` || The width of the landscape in pixels ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    80
|| `LAND_HEIGHT` || The height of the landscape in pixels ||
1074
98156a84cdd9 LuaAPI: fix typos
Wuzzy
parents: 1073
diff changeset
    81
|| `LeftX` || X coordinate of the leftmost point of the landscape ||
98156a84cdd9 LuaAPI: fix typos
Wuzzy
parents: 1073
diff changeset
    82
|| `RightX` || X coordinate of the rightmost point of the landscape ||
98156a84cdd9 LuaAPI: fix typos
Wuzzy
parents: 1073
diff changeset
    83
|| `TopY` || Y coordinate of the topmost point of the landscape ||
819
80d8736efefa LuaAPI: special CursorX, CursorY values
Wuzzy
parents: 818
diff changeset
    84
|| `CursorX` || The X position of the cursor if the player is choosing a target. Otherwise, this is `-2147483648` ||
80d8736efefa LuaAPI: special CursorX, CursorY values
Wuzzy
parents: 818
diff changeset
    85
|| `CursorY` || The Y position of the cursor if the player is choosing a target. Otherwise, this is `-2147483648` ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    86
|| `WaterLine` || The y position of the water, used to determine at which position stuff drowns. Use `SetWaterLine` to change. ||
1157
700fccda9e4d LuaAPI: Clarify globals
Wuzzy
parents: 1156
diff changeset
    87
|| `ClansCount` || Number of clans, including defeated ones (a clan is a group of teams with same color) ||
700fccda9e4d LuaAPI: Clarify globals
Wuzzy
parents: 1156
diff changeset
    88
|| `TeamsCount` || Number of teams, including defeated ones ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    89
|| `TurnTimeLeft` || Number of game ticks (milliseconds) left until the current turn ends. You can change this variable directly. ||
1112
f8b1be6befc7 LuaAPI: ReadyTimeLeft and AmmoTypeMax
Wuzzy
parents: 1111
diff changeset
    90
|| `ReadyTimeLeft` || Remaining ready time in millseconds, 0 if turn in progress. Can be set in onNewTurn. In other places, it should only be read, not written. ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    91
|| `GameTime` || Number of total game ticks ||
1158
8d62ba66e7b0 LuaAPI: buggy TotalRounds
Wuzzy
parents: 1157
diff changeset
    92
|| `TotalRounds` || Number of rounds that have passed. Equals `-1` if game has not started yet or hogs are still being placed. This variable is buggy in 0.9.23 and earlier! ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    93
|| `CurrentHedgehog` || The hedgehog gear that is currently in play ||
1155
90bf2e940925 LuaAPI: clarify ClansCount, TeamsCount
Wuzzy
parents: 1112
diff changeset
    94
|| `AmmoTypeMax` || Maximum ammo type ID (useful to iterate through all ammo types, starting by 0) ||
125
b0b7654c6de6 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 123
diff changeset
    95
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
    96
=== !GameFlags ===
557
7a25067aa32c fix link to gameflag functions
sheepyluva@gmail.com
parents: 556
diff changeset
    97
The !GameFlags are used to store simple boolean settings of the game.
7a25067aa32c fix link to gameflag functions
sheepyluva@gmail.com
parents: 556
diff changeset
    98
You can read/modify them using the [LuaAPI#GameFlags_functions GameFlags-Functions].
102
86cf695636c6 Added gfResetHealth to Gameflags section along with a note.
RedGrinner@gmail.com
parents: 101
diff changeset
    99
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   100
|| *Identifier* || *Description (active state)* ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   101
|| `gfOneClanMode` || Used when only one clan is in the game. This game flag is primarily used for training missions. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   102
|| `gfMultiWeapon` || TODO (Used in training missions.) ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   103
|| `gfForts` || Fort Mode ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   104
|| `gfDivideTeams` || The teams will start at opposite sites of the terrain. Two clans maximum. ||
626
c243eb309e6f Explain gfShoppaBorder
Wuzzy
parents: 625
diff changeset
   105
|| `gfBorder` || An indestructible border is active around the map. ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   106
|| `gfBottomBorder` || There is an indestructable border at the bottom of the map. ||
626
c243eb309e6f Explain gfShoppaBorder
Wuzzy
parents: 625
diff changeset
   107
|| `gfShoppaBorder` || The terrain edge will be replaced by a decorative black/yellow “danger stripe”. This has no gameplay effect. ||
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   108
|| `gfSolidLand` || The terrain is indestructible. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   109
|| `gfLowGravity` || The gravity is low. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   110
|| `gfLaserSight` || A laser sight is almost always active. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   111
|| `gfInvulnerable` || All hedgehogs are invulnerable. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   112
|| `gfVampiric` || All hedgehogs become vampires and get 80% of the damage they deal as health. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   113
|| `gfKarma` || Attackers share the damage they deal to enemies. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   114
|| `gfArtillery` || Hedgehogs can’t walk. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   115
|| `gfRandomOrder` || The game is played in random order. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   116
|| `gfPlaceHog` || Placement mode: At the beginning of the round, all hedgehogs are placed manually first. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   117
|| `gfKing` || King Mode: One hedgehog per team becomes their king, if the king dies, the team loses. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   118
|| `gfSharedAmmo` || Teams in the same clan share their ammo. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   119
|| `gfDisableGirders` || No girders will be created in random maps ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   120
|| `gfDisableLandObjects` || No land objects will be created in random maps ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   121
|| `gfAISurvival` || Computer-controlled hedgehogs will be revived after they die. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   122
|| `gfInfAttack` || Attacks don’t end the turn. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   123
|| `gfResetWeps` || The weapons will be reset to the initial state each turn. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   124
|| `gfPerHogAmmo` || Each hedgehog has its own weapon stash. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   125
|| `gfDisableWind` || There is no wind. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   126
|| `gfMoreWind` || There is always strong wind. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   127
|| `gfTagTeam` || Tag Team: Teams in the same clan share their turn time. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   128
|| `gfResetHealth` || The health of all living hedgehogs is reset at the end of each turn. ||
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   129
540
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   130
=== Land flags ===
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   131
The land flags denote several types of terrain. Like all flags, they can be combined at will.
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   132
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   133
|| *Identifier* || *Meaning* ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   134
|| `lfIce` || Slippery terrain, hogs will slide on it. ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   135
|| `lfBouncy` || Bouncy terrain, hogs and some other gears will bounce off when they collide with it. ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   136
|| `lfIndestructible` || Almost indestructible terrain, most weapons will not destroy it. ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   137
|| `lfNormal` || Normal destroyable terrain. Note that this is only actually the case when no other land flag is set. ||
b41b9305be9f Add land flags
almikes@aol.com
parents: 539
diff changeset
   138
491
9079444264ae Update section “Global available constants”: Use tables, fix gameflags section (was outdated, some gameflags were missing).
almikes@aol.com
parents: 478
diff changeset
   139
=== More constants ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   140
More constants are at at [GearTypes Gear Types] , [AmmoTypes Ammo Types], [Sounds], [States], [Sprites], [VisualGearTypes Visual Gear Types].
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   141
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   142
== Event handlers ==
890
74b9c19e4b50 LuaAPI: fix typos
Wuzzy
parents: 885
diff changeset
   143
Lua scripts are supposed to _define_ these functions to do something. The functions are then _called_ by Hedgewars when a certain event has occoured.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   144
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   145
=== <tt>onGameInit()</tt> ===
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   146
This function is called before the game loads its resources. One can read and modify various game variables here. These variables will become globally available after `onGameInit` has been invoked, but changing them has only an effect in `onGameInit`.
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   147
Most variables are optional, but for missions, `Theme` must be set by the scripter if you want to use a random map, rather than an image map. All other variables do not need to be set by the scripter and have default values.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   148
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   149
List of game variables:
863
825d0dcd739f LuaAPI: fix typos
Wuzzy
parents: 862
diff changeset
   150
|| *Identifier* || *Default* || *Description* ||
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   151
|| `Theme` || _depends_ || The theme to be used. When `Map` is set, a default value is used. For missions which don't use an image map, `Theme` *must* be set explicitly ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   152
|| `Map` || `""` || The image map being played or `""` if no image map is used ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   153
|| `Seed` || `0` || Seed of the random number generator ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   154
|| `MapGen` || `mgRandom` || Type of map generator. One of `mgRandom`, `mgMaze`, `mgPerlin`, `mgDrawn`. ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   155
|| `TemplateFilter` || `0` || _unknown meaning_ ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   156
|| `TemplateNumber` || `0` || _unknown meaning_ ||
864
a442063fcf2e LuaAPI: suggest MapFeatureSize value
Wuzzy
parents: 863
diff changeset
   157
|| `MapFeatureSize` || `50` || Used by random maps to determine its “curvyness” or complexity. This value can be set by the user with the slider under the random map preview in the game setup screen. The user-set value ranges from 1 (leftmost position) to 25 (rightmost position). A good starting value is `12`. ||
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   158
|| `GameFlags` || `0` || All `GameFlags` combined as a bitmask. See [LuaAPI#GameFlags_functions] for easier manipulation of `GameFlags` ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   159
|| `Ready` || `5000` || Ready timer at the start of the turn (in milliseconds) ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   160
|| `Delay` || `100` || Delay between each turn in milliseconds ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   161
|| `TurnTime` || `45000` || Turn time in milliseconds ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   162
|| `GetAwayTime` || `100` || Retreat time in percent ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   163
|| `CaseFreq` || `5` || Probability that a crate drops in a turn. 0: never, >0: probability = `1/CaseFreq` ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   164
|| `HealthCaseProb` || `35` || Chance that a crate drop is a health crate, in percent (other crates are ammo or utility crates) ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   165
|| `HealthCaseAmount` || `25` || Amount of health in a health crate ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   166
|| `DamagePercent` || `100` || Global damage in percent, affects damage and knockback ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   167
|| `RopePercent` || `100` || Rope length in percent ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   168
|| `MinesNum` || `4` || Number of mines being placed on a medium-sized map ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   169
|| `MinesTime` || `3000` || Time for a mine to explode from activated (in milliseconds), `-1000` for random ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   170
|| `MineDudPercent` || `0` || Chance of mine being a dud, in percent ||
1111
f6d0d5772a6c LuaAPI: Edited via web interface
Wuzzy
parents: 1075
diff changeset
   171
|| `AirMinesNum` || `0` || Number of air mines being placed on a medium-sized map ||
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   172
|| `Explosives` || `2` || Number of barrels being placed on a medium-sized map ||
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   173
|| `SuddenDeathTurns` || `15` || Turns until Sudden Death begins ||
862
d06141c36428 LuaAPI: Sudden Death disable
Wuzzy
parents: 861
diff changeset
   174
|| `WaterRise` || `47` || Height of water rise in pixels for each Sudden Death turn ||
861
ccbc115e68ad LuaAPI: fix broken onGameInit table
Wuzzy
parents: 860
diff changeset
   175
|| `HealthDecrease` || `5` || Amount of health decreased on each turn in Sudden Death ||
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   176
|| `Goals` || `""` || Use this to add additional text to the goal text popup shown at the beginning and when using the quit or pause keys. The text is added to the default text which usually explains the game modifiers and does not replace it. Use `|` for line breaks. Also, all text before and including a `:` in a line will be highlighted. See also `ShowMission`. ||
1111
f6d0d5772a6c LuaAPI: Edited via web interface
Wuzzy
parents: 1075
diff changeset
   177
|| `WorldEdge` || `weNone` || Type edges being used at the left and right sides of the terrain (see below). ||
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   178
|| `ScreenWidth` || _N/A_ || Width of the Hedgewars window or screen ||
890
74b9c19e4b50 LuaAPI: fix typos
Wuzzy
parents: 885
diff changeset
   179
|| `ScreenHeight` || _N/A_ || Height of the Hedgewars window or screen ||
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   180
862
d06141c36428 LuaAPI: Sudden Death disable
Wuzzy
parents: 861
diff changeset
   181
The proper way to disable Sudden Death is by setting both `WaterRise` and `HealthDecrease` to `0`.
d06141c36428 LuaAPI: Sudden Death disable
Wuzzy
parents: 861
diff changeset
   182
860
a7ddaecf54f3 LuaAPI: Put onGameInit variables into neat table
Wuzzy
parents: 859
diff changeset
   183
If you want to add teams or hogs manually, you have to do it here. If you want to draw your own map using `AddPoint` and `FlushPoints`, you have to do this within this function as well.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   184
917
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   185
==== `WorldEdge` ====
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   186
The value of `WorldEdge` can have the following values:
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   187
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   188
|| *Identifier* || *Meaning* ||
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   189
|| `weNone` || No world edges ||
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   190
|| `weBounce` || Bouncy world edges ||
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   191
|| `weWrap` || World wraps around at the edges ||
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   192
|| `weSea` || Ocean world edges ||
c05279ae1ac2 LuaAPI: Add WorldEdge
Wuzzy
parents: 916
diff changeset
   193
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   194
=== <tt>onGameStart()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   195
This function is called when the first round starts.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   196
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   197
Can be used to show the mission and for more setup, for example initial target spawning.
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   198
505
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   199
=== <tt>onPreviewInit()</tt> (0.9.21) ===
461
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   200
This function is called when the map preview in the frontend is initialized. This happens when the script is selected or you change a map generator parameter.
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   201
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   202
It is useful for scripts which create their own maps (see `AddPoint` and `FlushPoints`). If you create a map in this function, a preview will be generated from this map and is exposed to the frontend.
168508caf60d Add onPreviewInit
almikes@aol.com
parents: 421
diff changeset
   203
505
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   204
=== <tt>onParameters()</tt> (0.9.21) ===
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   205
This function is called when the script parameters (as specified in the game scheme) become available. The script parameter string is stored in the global variable `ScriptParam`.
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   206
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   207
Please note that it is normally not safe to call many of the other functions inside this function, this function is called very early in the game, only use this to initialize variables and other internal stuff like that.
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   208
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   209
*Tip*: If you use the Params library  (`/Scripts/Params.lua`), you can make the task of dissecting the string into useful values a bit easier, but it’s not required. (The Params library is not documented yet, however).
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   210
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   211
*Tip*: If you use this callback, make sure to document the interpretation of the parameters so others know how to set the parameters properly.
a79631e03c84 Add onParameters and ScriptParam
almikes@aol.com
parents: 503
diff changeset
   212
64
a651a8ab85d5 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 63
diff changeset
   213
=== <tt>onGameTick()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   214
This function is called on every game tick, i.e. 1000 times a second. If you just need to check on something periodically, consider `onGameTick20`.
346
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   215
5f322c85c0e0 toss in onGameTick20 - this page needs more updating tho
kyberneticist@gmail.com
parents: 328
diff changeset
   216
=== <tt>onGameTick20()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   217
This function is called every 20 game ticks, which equals 50 times a second. It reduces Lua overhead for simple monitoring that doesn’t need to happen every single tick.
64
a651a8ab85d5 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 63
diff changeset
   218
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   219
=== <tt>onNewTurn()</tt> ===
1112
f8b1be6befc7 LuaAPI: ReadyTimeLeft and AmmoTypeMax
Wuzzy
parents: 1111
diff changeset
   220
This function calls at the start of every turn. You can set `ReadyTimeLeft` here to change the ready time for this turn. (See also: `Ready`)
63
24004a9003ec Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 62
diff changeset
   221
650
0a106238f409 fix formatting
Wuzzy
parents: 649
diff changeset
   222
=== <tt>onSuddenDeath()</tt> (0.9.22) ===
649
a33b0ddce148 onSuddenDeath
Wuzzy
parents: 648
diff changeset
   223
This function is called on the start of Sudden Death.
a33b0ddce148 onSuddenDeath
Wuzzy
parents: 648
diff changeset
   224
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   225
=== <tt>onGearAdd(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   226
This function is called when a new gear is added. Useful in combination with `GetGearType(gearUid)`.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   227
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   228
=== <tt>onGearDelete(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   229
This function is called when a new gear is deleted. Useful in combination with `GetGearType(gearUid)`.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   230
916
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   231
=== <tt>onVisualGearAdd(vgUid)</tt> (0.9.23) ===
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   232
This function is called when a new visual gear is added. Useful in combination with `GetVisualGearType(vgUid)`.
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   233
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   234
=== <tt>onVisualGearDelete(vgUid)</tt> (0.9.23) ===
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   235
This function is called when a new visual gear is deleted. Useful in combination with `GetVisualGearType(vgUid)`.
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   236
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   237
=== <tt>onGearDamage(gearUid, damage)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   238
This function is called when a gear is damaged.
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   239
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   240
Example:
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   241
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   242
<code language="lua">    function onGearDamage(gear, damage)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   243
        if (GetGearType(gear) == gtHedgehog) then
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   244
            -- adds a message saying, e.g. "Hoggy H took 25 points of damage"
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   245
            AddCaption(GetHogName(gear) .. ' took ' .. damage .. ' points of damage')
55
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   246
        end
ef26ff619aea Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 54
diff changeset
   247
    end</code>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   248
=== <tt>onGearResurrect(gearUid) </tt> ===
942
cca9e43e9d72 LuaAPI: Clarify description of onGearResurrect
Wuzzy
parents: 940
diff changeset
   249
This function is called when a gear is resurrected due to the hog effect `heResurrectable` being set (see `SetEffect`) and/or being an AI hog when the game modifier “AI Survival” (`gfAISurvival`) is active. It is *not* called when a hog was resurrected by the resurrector tool you can use in the game.
44
bf53e635a2ac Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 43
diff changeset
   250
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   251
=== <tt>onAmmoStoreInit()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   252
This function is called when the game is initialized to request the available ammo and ammo probabilities. Use `SetAmmo` here.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   253
203
08cc35ba4d34 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 202
diff changeset
   254
=== <tt>onNewAmmoStore(team/clan index, hog index)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   255
This function is identical to `onAmmoStoreInit` in function, but is called once per ammo store.  This allows different ammo sets for each clan, team or hedgehog depending on the mode.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   256
If `gfSharedAmmo` is set, the parameters passed are the clan index, and `-1`, and the function will be called once for each clan.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   257
If `gfPerHogAmmo` is set, the parameters passed are the team index and the hog index in that team, and the function will be called once for each hedgehog.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   258
If neither is set, the parameters passed are the team index and `-1`, and the function will be called once for each team.
202
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   259
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   260
These indexes can be used to look up details of the clan/team/hedgehog prior to gear creation. Routines to do these lookups will be created as needed.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   261
If you add this hook, the expectation is that you will call SetAmmo appropriately. Any values from `onAmmoStoreInit` are ignored.
202
47363108b6b6 Edited wiki page LuaAPI through web user interface.
kyberneticist@gmail.com
parents: 184
diff changeset
   262
502
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   263
=== <tt>onGearWaterSkip(gear)</tt> (0.9.21) ===
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   264
This function is called when the gear `gear` skips over water.
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   265
7bd6701bb077 Add onGearWaterSkip
almikes@aol.com
parents: 491
diff changeset
   266
=== <tt>onScreenResize()</tt> (0.9.16) ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   267
This function is called when you resize the screen. Useful place to put a redraw function for any `vgtHealthTags` you're using.
145
547ac6a1d14e Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 144
diff changeset
   268
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   269
=== <tt>onAttack()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   270
This function is called when your Hedgehog attacks.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   271
107
kyberneticist
parents: 102
diff changeset
   272
=== <tt>onHJump()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   273
This function is called when you press the high jump key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   274
107
kyberneticist
parents: 102
diff changeset
   275
=== <tt>onLJump()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   276
This function is called when you press the long jump key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   277
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   278
=== <tt>onPrecise()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   279
This function is called when you press the precise key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   280
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   281
=== <tt>onLeft()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   282
This function is called when you press the left key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   283
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   284
=== <tt>onRight()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   285
This function is called when you press the right key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   286
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   287
=== <tt>onUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   288
This function is called when you press the up key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   289
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   290
=== <tt>onDown()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   291
This function is called when you press the down key.
98
54e178bb6986 Added basic (not entirely accurate) entries for the event handlers relating to actions taken by Hedgehogs / user input.
RedGrinner@gmail.com
parents: 95
diff changeset
   292
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   293
=== <tt>onAttackUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   294
This function is called when you release the attack key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   295
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   296
=== <tt>onDownUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   297
This function is called when you release the down key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   298
 
535
5cb76f048bd9 Update onHogAttack
almikes@aol.com
parents: 533
diff changeset
   299
=== <tt>onHogAttack(ammoType)</tt> ===
5cb76f048bd9 Update onHogAttack
almikes@aol.com
parents: 533
diff changeset
   300
This function is called when you press the attack key. Beginning with 0.9.21, the parameter `ammoType` is provided. It contains the ammo type of the weapon used for the attack.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   301
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   302
=== <tt>onLeftUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   303
This function is called when you release the left key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   304
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   305
=== <tt>onPreciseUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   306
This function is called when you release the precise key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   307
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   308
=== <tt>onRightUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   309
This function is called when you release the right key.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   310
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   311
=== <tt>onSetWeapon(msgParam)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   312
It is get called when a weapon is selected or switched.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   313
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   314
`msgParam` tells you which ammo type was selected.
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   315
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   316
=== <tt>onSlot(msgParam)</tt> ===
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   317
This function is called when one of the weapon slot keys has been pressed.
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   318
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   319
`msgParam` tells the slot number minus 1 (i.e. `0` is for slot number 1, `1` is for slot number 2, etc.).
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   320
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   321
=== <tt>onSwitch()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   322
This function is called when a hog is switched to another.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   323
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   324
=== <tt>onTaunt(msgParam)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   325
This function is called when the player uses an animated emote for example by using the chat commands `/wave`, `/juggle`, etc.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   326
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   327
`msgParam` tells you which animation was played:
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   328
623
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   329
|| *`msgParam`* || *Animation* || *Associated chat command* ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   330
|| 0 || Rolling up || `/rollup` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   331
|| 1 || Sad face || `/sad` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   332
|| 2 || Waving hand || `/wave` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   333
|| 3 || Stupid winner's grin / “Awesome” face || `/hurrah` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   334
|| 4 || Peeing || `/ilovelotsoflemonade` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   335
|| 5 || Shrug || `/shrug` ||
704e373ae691 Fix onTaunt table
Wuzzy
parents: 622
diff changeset
   336
|| 6 || Juggling || `/juggle` ||
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   337
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   338
=== <tt>onTimer(msgParam)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   339
This function is called when one of the timer keys is pressed.
175
2455fbbab5e8 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 174
diff changeset
   340
622
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   341
`msgParams` tells the set timer in seconds (i.e. `3` for the 3 seconds timer key).
d7c2a5db19a4 Add msgParam for onSlot, onTaunt, onTimer and onSetWeapon
Wuzzy
parents: 616
diff changeset
   342
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   343
=== <tt>onUpUp()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   344
This function is called when you release the up key.
178
dde460404412 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 177
diff changeset
   345
946
3ca13c637fd0 LuaAPI: Add onUsedAmmo
Wuzzy
parents: 942
diff changeset
   346
=== <tt>onUsedAmmo(ammoType)</tt> (0.9.23) ===
3ca13c637fd0 LuaAPI: Add onUsedAmmo
Wuzzy
parents: 942
diff changeset
   347
Called after a weapon has been used completely, with `ammoType` as the used ammo type.
3ca13c637fd0 LuaAPI: Add onUsedAmmo
Wuzzy
parents: 942
diff changeset
   348
947
155307e52864 LuaAPI: fix onUsedAmmo explanation
Wuzzy
parents: 946
diff changeset
   349
For example, it is called right after a bazooka is fired, when both shots of a shotgun have been fired, when extra time is used, or when all 4 shots of a portable portal device have been fired. It is also called when using a multi-shot ammo has been aborted by changing the weapon selection mid-way, because this still uses up the ammo.
946
3ca13c637fd0 LuaAPI: Add onUsedAmmo
Wuzzy
parents: 942
diff changeset
   350
689
e919bdf895f7 Add parameter for onHogHide and onHogRestore
Wuzzy
parents: 688
diff changeset
   351
=== <tt>onHogHide(gearUid)</tt> (0.9.16) ===
e919bdf895f7 Add parameter for onHogHide and onHogRestore
Wuzzy
parents: 688
diff changeset
   352
This function is called when a hedgehog with the gear ID `gearUid` is hidden (removed from the map).
179
156e5fba2e2c Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 178
diff changeset
   353
689
e919bdf895f7 Add parameter for onHogHide and onHogRestore
Wuzzy
parents: 688
diff changeset
   354
=== <tt>onHogRestore(gearUid)</tt> (0.9.16) ===
e919bdf895f7 Add parameter for onHogHide and onHogRestore
Wuzzy
parents: 688
diff changeset
   355
This function is called when a hedgehog with the specified gear ID `gearUid` is restored (unhidden).
173
ef246592a16e Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 172
diff changeset
   356
411
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   357
=== <tt>onSpritePlacement(spriteId, centerX, centerY)</tt> (0.9.21) ===
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   358
This function is called when a [Sprites Sprite] has been placed.
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   359
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   360
`spriteID` is the type of the sprite, you find a list at [Sprites Sprites]. `centerX` and `centerY` are the coordinates of the center of the sprite.
dbb7937903a4 Add onSpritePlacement.
almikes@aol.com
parents: 410
diff changeset
   361
402
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   362
=== <tt>onGirderPlacement(frameIdx, centerX, centerY)</tt> (0.9.21) ===
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   363
This function is called when a girder has been placed.
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   364
940
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
   365
`frameIdx` is used for the length and orientation of the girder. The possible values are explained in `PlaceGirder`. `centerX` and `centerY` are the coordinates of the girder’s center.
402
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   366
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   367
=== <tt>onRubberPlacement(frameIdx, centerX, centerY)</tt> (0.9.21) ===
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   368
This function is called when a rubber has been placed.
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   369
940
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
   370
`frameIdx` is used for the rubber orientation. The possible values are explained in `PlaceRubber`. `centerX` and `centerY` are the coordinates of the rubber’s center.
402
1e7586c110f6 Documented 0.9.21 functions onGirderPlacement and onRubberPlacement.
almikes@aol.com
parents: 401
diff changeset
   371
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   372
== Functions for creating gears ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   373
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   374
=== <tt>!AddGear(x, y, gearType, state, dx, dy, timer)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   375
This creates a new gear at position x,y (measured from top left) of kind `gearType` (see [GearTypes Gear Types]). The initial velocities are `dx` and `dy`. All arguments are numbers. The function returns the `uid` of the gear created. Gears can have multple states at once: `state` is a bitmask, the flag variables can be found in [States].
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   376
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   377
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   378
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   379
<code language="lua">    local gear = AddGear(0, 0, gtTarget, 0, 0, 0, 0)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   380
    FindPlace(gear, true, 0, LAND_WIDTH)</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   381
1165
7438c7dfeff6 LuaAPI: Add layer param to AddVisualGear
Wuzzy
parents: 1159
diff changeset
   382
=== <tt>!AddVisualGear(x, y, visualGearType, state, critical [, layer])</tt> ===
7438c7dfeff6 LuaAPI: Add layer param to AddVisualGear
Wuzzy
parents: 1159
diff changeset
   383
This creates a new visual gear at position x,y (measured from top left) of kind `visualGearType` (see [VisualGearTypes Visual Gear Types]). The function returns the `uid` of the visual gear created.  Set `critical` to `true` if the visual gear is crucial to game play. Use `false` if it is just an effect, and can be skipped when in fast-forward mode (such as when joining a room). A critical visual gear will always be created, a non-critical one may fail. Most visual gears delete themselves. You can set an optional `layer` to specify which visual gears get drawn on top.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   384
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   385
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   386
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   387
<code language="lua">  -- adds an non-critical explosion at position 1000,1000. Returns 0 if it was not created.
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   388
    vgear = AddVisualGear(1000, 1000, vgtExplosion, 0, false) 
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   389
</code>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   390
871
3222b4cfef8a LuaAPI: Additional parameter for SpawnHealthCrate, SpawnAmmoCrate, SpawnUtilityCrate
Wuzzy
parents: 869
diff changeset
   391
=== <tt>!SpawnHealthCrate(x, y, [, health])</tt> ===
3222b4cfef8a LuaAPI: Additional parameter for SpawnHealthCrate, SpawnAmmoCrate, SpawnUtilityCrate
Wuzzy
parents: 869
diff changeset
   392
Spawns a health crate at the specified position. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land). Set `health` for the initial health contained in the health crate. If not set, the default health (`HealthCaseAmount`) is used.
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   393
871
3222b4cfef8a LuaAPI: Additional parameter for SpawnHealthCrate, SpawnAmmoCrate, SpawnUtilityCrate
Wuzzy
parents: 869
diff changeset
   394
=== <tt>!SpawnAmmoCrate(x, y, ammoType [, amount])</tt> ===
1033
ea42a17739d0 LuaAPI: fix spawnammocrate mistakes
Wuzzy
parents: 1032
diff changeset
   395
Spawns an ammo crate at the specified position with content of ammoType (see [AmmoTypes Ammo Types]). If `ammoType` is set to `amNothing`, a random weapon (out of the available weapons from the weapon scheme) will be selected. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land). The `amount` parameter specifies the amount of ammo contained in the crate. If `amount` is `nil` or `0`, the value set by `SetAmmo` is used, or if `SetAmmo` has not been used, it falls back to the weapon scheme's value. If ´amount` is equal to or greater than `100` or greater, the amount is infinite.
1031
637ad254daf9 LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents: 1030
diff changeset
   396
637ad254daf9 LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents: 1030
diff changeset
   397
Note that in Lua missions, the default number of ammo in crates is 0, so it has to be set to at least 1 with `SetAmmo` first, see the example:
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   398
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   399
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   400
1033
ea42a17739d0 LuaAPI: fix spawnammocrate mistakes
Wuzzy
parents: 1032
diff changeset
   401
<code language="lua">    SetAmmo(amGrenade, 0, 0, 0, 1) -- grenade ammo crates now contain 1 grenade each
ea42a17739d0 LuaAPI: fix spawnammocrate mistakes
Wuzzy
parents: 1032
diff changeset
   402
    SpawnAmmoCrate(0, 0, amGrenade) -- spawn grenade ammo crate at random position</code>
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   403
871
3222b4cfef8a LuaAPI: Additional parameter for SpawnHealthCrate, SpawnAmmoCrate, SpawnUtilityCrate
Wuzzy
parents: 869
diff changeset
   404
=== <tt>!SpawnUtilityCrate(x, y, ammoType [, amount])</tt> ===
881
ab6bd4812ca4 LuaAPI: special amNothing for SpawnAmmoCrate / SpawnUtilityCrate
Wuzzy
parents: 871
diff changeset
   405
Spawns an utility crate with some ammo at the specified position. The function behaves almost like `SpawnAmmoCrate`, the differences are 1) the crate looks different and 2) if `ammoType` is set to `amNothing`, a random utility out of the set of available utilities from the weapon scheme is chosen as content.
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   406
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   407
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   408
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   409
<code language="lua">    SetAmmo(amLaserSight, 0, 0, 0, 1)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   410
    SpawnUtilityCrate(0, 0, amLaserSight)</code>
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   411
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   412
=== <tt>!SpawnFakeAmmoCrate(x, y, explode, poison) </tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   413
Spawns a crate at the specified coordinates which looks exactly like a real ammo crate but contains not any ammo. It can be use useful for scripted events or to create a trap. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   414
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   415
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   416
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   417
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   418
Example:
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   419
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   420
<code language="lua">SpawnFakeAmmoCrate(500, 432, false, false) -- Spawns a fake ammo crate at the coordinates (500, 434) without explosion and poison.
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   421
</code>
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   422
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   423
=== <tt>!SpawnFakeHealthCrate(x, y, explode, poison) </tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   424
Spawns a crate at the specified coordinates which looks exactly like a real health crate but it will not heal the player. It can be use useful for scripted events or to create a trap. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   425
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   426
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   427
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   428
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   429
=== <tt>!SpawnFakeUtilityCrate(x, y, explode, poison) </tt> ===
417
f4b7962d39cd Better documentation about the special coordinates x=0, y=0 for the crate spawn functions.
almikes@aol.com
parents: 416
diff changeset
   430
Spawns a crate at the specified coordinates which looks exactly like a real utility crate but contains not any ammo. It can be use useful for scripted events or to create a trap. If `x` and `y` are set to 0, the crate will spawn on a random position (but always on land).
400
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   431
`explode` and `poison` are booleans.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   432
If `explode` is `true`, the crate will explode when collected.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   433
If `poison` is `true`, the collector will be poisoned.
0b7f8aed3c5e Documented the following functions:
almikes@aol.com
parents: 398
diff changeset
   434
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   435
=== <tt>!AddHog(hogname, botlevel, health, hat)</tt> ===
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   436
Adds a new hedgehog for current team (last created one with the `AddTeam` function), with bot level and specified health, also hat.
556
e57188e7bc3b Better explanation of botlevel (AddHog argument).
almikes@aol.com
parents: 555
diff changeset
   437
`botlevel` ranges from `0` to `5`, where `0` denotes a human player and `1` to `5` denote the skill level of a bot, where `1` is strongest and `5` is the weakest. Note that this is the reverse order of how the bot level is displayed in the game.
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
   438
1159
ed6441e7ff84 LuaAPI: Add limitations of AddHog
Wuzzy
parents: 1158
diff changeset
   439
*Warning*: This only works in singleplayer mode (e.g. missions). Also, Hedgewars only supports up to 48 hedgehogs in a game. If you add more hedgehogs or call this function in multiplayer mode, Hedgewars might fail.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   440
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   441
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   442
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   443
<code language="lua">    local player = AddHog("HH 1", 0, 100, "NoHat") -- botlevel 0 means human player
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   444
    SetGearPosition(player, 1500, 1000)</code>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   445
== Functions to get gear properties ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   446
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   447
=== <tt>!GetGearType(gearUid)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   448
This function returns the [GearTypes gear type] for the specified gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   449
916
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   450
=== <tt>!GetVisualGearType(vgUid)</tt> (0.9.23) ===
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   451
This function returns the [VisualGearTypes visual gear type] for the specified visual gear.
a01743eb08f1 LuaAPI: onVisualGearAdd, onVisualGearDelete, GetVisualGearType
Wuzzy
parents: 913
diff changeset
   452
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   453
=== <tt>!GetGearPosition(gearUid)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   454
Returns x,y coordinates for the specified gear. Not to be confused with `GetGearPos`.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   455
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   456
=== <tt>!GetGearRadius(gearUid)</tt> ===
892
05bb5a116783 LuaAPI: proper description of GetGearRadius
Wuzzy
parents: 891
diff changeset
   457
Returns the `Radius` value for the specified gear. For most [GearTypes gear types] for “projectile” gears (like `gtShell` or `gtGrenade`), the radius refers to the gear's collision radius. This is an invisible circle around the center of the gear which is used for the collision checks. For a few gear types, its radius means something different, see [Gear Types] for a full list.
05bb5a116783 LuaAPI: proper description of GetGearRadius
Wuzzy
parents: 891
diff changeset
   458
05bb5a116783 LuaAPI: proper description of GetGearRadius
Wuzzy
parents: 891
diff changeset
   459
To set the `Radius` value, use `SetGearValues`.
148
f343b50d5619 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 147
diff changeset
   460
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   461
=== <tt>!GetGearVelocity(gearUid)</tt> ===
555
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   462
Returns a tuple of dx,dy values for the specified gear.
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   463
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   464
=== <tt>!GetFlightTime(gearUid)</tt> ===
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   465
Returns the `FlightTime` of the specified gear. The `FlightTime` is a gear varialbe used to store a general time interval. The precise meaning of the `FlightTime` depends on the gear type.
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   466
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   467
For example: The `FlightTime` of a hedgehog (`gtHedgehog`) is the time since they last have stood on solid ground. For most projectile gear types (i.e. `gtShell`), it stores the time after it has been launched.
71
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   468
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   469
=== <tt>!GetGearElasticity(gearUid) </tt> ===
611
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   470
Returns the elasticity of the specified gear. The elasticity normally determines how strong the gear will bounce after collisions, where higher elasticity is for stronger bounces.
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   471
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   472
This is also useful for determining if a hog is on a rope or not. If a hog is attached to a rope, or is busy firing one, the elasticity of the rope will be non-zero.
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   473
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   474
=== <tt>!GetGearFriction(gearUid) </tt> ===
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   475
Returns the friction of the specified gear. The friction normally determines how well the gear will slide on terrain. Higher values are for increased sliding properties.
74
6130cad02b02 Added GetGearElasticity
RedGrinner
parents: 73
diff changeset
   476
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   477
=== <tt>!GetHogClan(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   478
Returns the clan ID of the specified hedgehog gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   479
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   480
=== <tt>!GetHogTeamName(gearUid)</tt> ===
1039
e312e2616b75 LuaAPI: GetHogTeamName: Allow gtGrave
Wuzzy
parents: 1038
diff changeset
   481
Returns the name of the specified gear’s team. `gearUid` can be a hedgehog or a grave.
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   482
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   483
=== <tt>!GetHogName(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   484
Returns the name of the specified hedgehog gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   485
140
04d82b673bc4 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 139
diff changeset
   486
=== <tt>!GetEffect(gearUid, effect)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   487
Returns the state of given effect for the given hedgehog gear.
140
04d82b673bc4 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 139
diff changeset
   488
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   489
See `SetEffect` for further details.
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   490
133
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   491
=== <tt>!GetHogHat(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   492
Returns the hat of the specified hedgehog gear.
133
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   493
610
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   494
=== <tt>!GetHogFlag(gearUid)</tt> (0.9.22) ===
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   495
Returns the name of the flag of the team of the specified hedgehog gear.
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   496
932
86ddcaa6813a LuaAPI: GetHogFort
Wuzzy
parents: 926
diff changeset
   497
=== <tt>!GetHogFort(gearUid)</tt> (0.9.23) ===
86ddcaa6813a LuaAPI: GetHogFort
Wuzzy
parents: 926
diff changeset
   498
Returns the name of the fort of the team of the specified hedgehog gear.
86ddcaa6813a LuaAPI: GetHogFort
Wuzzy
parents: 926
diff changeset
   499
610
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   500
=== <tt>!GetHogGrave(gearUid)</tt> (0.9.22) ===
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   501
Returns the name of the grave of the team of the specified hedgehog gear.
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   502
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   503
=== <tt>!GetHogVoicepack(gearUid)</tt> (0.9.22) ===
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   504
Returns the name of the voicepack of the team of the specified hedgehog gear.
b5b545b29e6a GetHogFlag, GetHogGrave, GetHogVoicepack
Wuzzy
parents: 608
diff changeset
   505
913
33b5b51f54d6 LuaAPI: Add IsHogLocal
Wuzzy
parents: 912
diff changeset
   506
=== <tt>!GetAmmoCount(gearUid, ammoType)</tt> (0.9.16) ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   507
Returns the ammo count of the specified ammo type for the specified hedgehog gear.
133
b737ccb5b49a Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 132
diff changeset
   508
913
33b5b51f54d6 LuaAPI: Add IsHogLocal
Wuzzy
parents: 912
diff changeset
   509
=== <tt>!IsHogLocal(gearUid)</tt> (0.9.23) ===
33b5b51f54d6 LuaAPI: Add IsHogLocal
Wuzzy
parents: 912
diff changeset
   510
Returns `true` if the specified hedgehog gear is controlled by a human player on the computer on which Hedgewars runs on (i.e. not over a computer over the network). Returns `false` otherwise. Returns `nil` if `gearUid` is invalid.
33b5b51f54d6 LuaAPI: Add IsHogLocal
Wuzzy
parents: 912
diff changeset
   511
138
9ca80a93aae0 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 137
diff changeset
   512
=== <tt>!GetGearTarget(gearUid, x, y)  (0.9.16)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   513
Returns the x and y coordinate of target-based weapons/utilities. 
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   514
<b>Note:</b>: This can’t be used in `onGearAdd()` but must be called after gear creation. 
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   515
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   516
=== <tt>GetX(gearUid)</tt> ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   517
Returns x coordinate of the gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   518
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   519
=== <tt>GetY(gearUid)</tt> ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   520
Returns y coordinate of the gear.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   521
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   522
=== <tt>!GetState(gearUid)</tt> ===
415
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   523
Returns the state of the gear. The gear state is a bitmask which is built out of the variables as shown in [States].
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   524
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   525
This function is usually used in combination with `band` to extract the truth value of a single flag. It is also used together with `SetState` and `bor` in order to activate a single flag.
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   526
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   527
Examples:
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   528
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   529
local state = GetState(gear)
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   530
--[[ Stores the full raw bitmask of gear in state. Usually
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   531
useless on its own. ]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   532
</code>
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   533
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   534
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   535
isDrowning = band(GetState(CurrentHedgehog),gstDrowning) ~= 0
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   536
--[[ GetState(CurrentHedgehog) returns the state bitmask of
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   537
CurrentHedgehog, gstDrowning is a bitmask where only the
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   538
“drowning” bit is set. band does a bitwise AND on both, if
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   539
it returns a non-zero value, the hedgehog is drowning.]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   540
</code>
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   541
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   542
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   543
SetState(CurrentHedgehog, bor(GetState(CurrentHedgehog), gstInvisible))
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   544
--[[ first the state bitmask of CurrentHedgehog is bitwise ORed with
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   545
the gstInvisible flag, thus making the bit responsible for
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   546
invisiblity to become 1. Then the new bitmask is applied to
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   547
CurrentHedgehog, thus making it invisible.]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   548
</code>
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   549
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   550
114
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   551
=== <tt>!GetGearMessage(gearUid)</tt> ===
625
e463f9d97820 Some copy-editing
Wuzzy
parents: 624
diff changeset
   552
Returns the message of the gear. This is a bitmask built out of flags seen in [GearMessages].
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   553
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   554
=== <tt>!GetTag(gearUid)</tt> ===
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   555
Returns the tag of the specified gear (by `gearUid`). 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   556
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   557
The `Tag` of a gear is just another arbitrary variable to hold the gear's state. The meaning of a tag depends on the gear type. For example, for `gtBall` gears, it specifies the ball color, for `gtAirAttack` gears (airplane) it specifies the direction of the plane, etc. See [GearTypes] for a full list. The returned value will be an integer.
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   558
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   559
Note that the word “tag” here does _not_ refer to the name and health tags you see above hedgehogs, this is something different. 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   560
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   561
<code language="lua">
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   562
-- This adds a ball (the one from the ballgun) at (123, 456):
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   563
ball = AddGear(123, 456, gtBall, 0, 0, 0, 0)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   564
-- The tag of a ball defines its color. It will automatically chosen at random when created.
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   565
colorTag = GetTag(ball)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   566
-- Now colorTag stores the tag of ball (in this case a number denoting its color)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   567
</code>
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   568
421
d584704354ad Add link to GearTypes for SetTag and GetTag.
almikes@aol.com
parents: 419
diff changeset
   569
The meaning of tags are described in [GearTypes].
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   570
209
26805ae2a319 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 203
diff changeset
   571
=== <tt>!GetFollowGear()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   572
Returns the uid of the gear that is currently being followed.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   573
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   574
=== <tt>!GetTimer(gearUid)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   575
Returns the timer of the gear. This is for example the time it takes for watermelon, mine, etc. to explode. This is also the time used to specify the blowtorch or RC plane time. See [GearTypes] for a full list.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   576
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   577
=== <tt>!GetHealth(gearUid)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   578
Returns the health of the gear. Depending on the gear type, the gear's “health” can also refer to other things, see [GearTypes] for a full list.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   579
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   580
=== <tt>!GetHogLevel(gearUid)</tt> ===
576
dff03a98693a Clarified bot levels in GetHogLevel
almikes@aol.com
parents: 573
diff changeset
   581
Returns the bot level ranging from `0` to `5`. `1` is the strongest bot level and `5` is the weakest one. `0` is for human player.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   582
503
87a36ae53518 Add GetGearPos
almikes@aol.com
parents: 502
diff changeset
   583
=== <tt>!GetGearPos(gearUid)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   584
Get the `Pos` value of the specified gear. `Pos` is just another arbitrary value to hold the state of the gear, such as `Tag` and `Health`, the meaning depends on the gear type. See [GearTypes] for the conrete meaning of a gear's `Pos` value. 
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   585
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   586
*Important*: Pos is *not* related to the gear's position, use `GetGearPosition` for that.
503
87a36ae53518 Add GetGearPos
almikes@aol.com
parents: 502
diff changeset
   587
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   588
=== <tt>!GetGearValues(gearUid)</tt> (0.9.22) ===
616
51fafc27af9c Fix GetGearValues return value
Wuzzy
parents: 615
diff changeset
   589
This returns a bunch of values associated with the gear, their meaning is often depending on the gear type and many values might be unused for certain gear types.
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   590
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   591
This is returned (all variables are integers):
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   592
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   593
`Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, nImpactSounds, Tint, Damage, Boom`
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   594
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   595
Boom is 0.9.23+
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   596
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   597
A rough description of some of the parameters:
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   598
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   599
 * `Radius`: Effect or collision radius, most of the time
625
e463f9d97820 Some copy-editing
Wuzzy
parents: 624
diff changeset
   600
 * `ImpactSound`: Sound it makes on a collision (see [Sounds])
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   601
 * `Tint`: Used by some gear types to determine its colorization. The color is in RGBA format.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   602
 * `Boom`: Used by most gears to determine the damage dealt. (0.9.23+)
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   603
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   604
Example:
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   605
<code language="lua">
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   606
-- Get all values in a single line of code (omit Boom in 0.9.22) :
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   607
local Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, nImpactSounds, Tint, Damage, Boom = GetGearValues(myGear)
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   608
</code>
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   609
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   610
=== <tt>!GetVisualGearValues(vgUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   611
This returns the typically set visual gear values, useful if manipulating things like smoke or bubbles or circles. It returns the following values:
614
64c94ad363c8 Prettify GetVisualGearValues documentation
Wuzzy
parents: 613
diff changeset
   612
64c94ad363c8 Prettify GetVisualGearValues documentation
Wuzzy
parents: 613
diff changeset
   613
`X, Y, dX, dY, Angle, Frame, FrameTicks, State, Timer, Tint`
64c94ad363c8 Prettify GetVisualGearValues documentation
Wuzzy
parents: 613
diff changeset
   614
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   615
 * `X`, `Y`: typically position
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   616
 * `dX`, `dY`: typically speed
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   617
 * `Angle` is usually the rotation angle
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   618
 * `Frame` is typically the animation frame
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   619
 * `FrameTicks` is usually an animation counter
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   620
 * `State` can have a variety of values, but is typically bit packed
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   621
 * `Timer` is usually the gear lifetime
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   622
 * `Tint` is the RGBA color
614
64c94ad363c8 Prettify GetVisualGearValues documentation
Wuzzy
parents: 613
diff changeset
   623
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   624
Most visual gears require little to no modification of parameters.
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   625
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   626
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   627
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   628
<code language="lua">    GetVisualGearValues(vgUid) -- return visual gear values
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   629
</code>
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   630
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   631
== Functions to modify gears ==
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   632
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   633
=== <tt>!HideHog(gearUid)</tt> ===
1004
94d046b03855 LuaAPI: Update HideHog
Wuzzy
parents: 1003
diff changeset
   634
Removes a hedgehog from the map. The hidden hedgehog can be restored with `RestoreHog(gearUid)`. Since 0.9.23, returns `true` on success and `false` on failure (if gear does not exist / hog is already hidden).
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   635
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   636
Example: 
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   637
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   638
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   639
     HideHog(gear) -- Hide the newly created gear.</code>
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   640
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   641
=== <tt>!RestoreHog(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   642
Restores a previously hidden hedgehog.
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   643
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   644
Example: 
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   645
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   646
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   647
     HideHog(gear) -- Hide the newly created gear.
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   648
     RestoreHog(gear) -- Restore the newly hidden gear.</code>
243
ac34d3763a17 Edited wiki page LuaAPI through web user interface.
szabibibi@gmail.com
parents: 209
diff changeset
   649
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   650
=== <tt>!DeleteGear(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   651
Deletes a gear.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   652
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   653
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   654
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   655
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   656
    DeleteGear(gear) -- Delete the newly created gear.</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   657
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   658
=== <tt>!DeleteVisualGear(vgUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   659
Deletes a visual gear. Note, most visual gears delete themselves.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   660
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   661
Example:
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   662
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   663
<code language="lua">    vgear = AddVisualGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   664
    DeleteVisualGear(vgear) -- Delete the newly created visual gear.</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   665
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   666
=== <tt>!SetGearValues(gearUid, Angle, Power, WDTimer, Radius, Density, Karma, DirAngle, AdvBounce, ImpactSound, ImpactSounds, Tint, Damage, Boom)</tt> (0.9.22) ===
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
   667
Sets various gear value for the specified gear (`gearUid`). The meaining of each value often depends on the gear type. See the documentation on !GetGearValues for a brief description of the gear values.  Boom is 0.9.23+.
612
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   668
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   669
Set `nil` for each value you do not want to change.
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   670
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   671
Example:
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   672
<code language="lua">
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   673
-- Paints all RC planes into a white color
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   674
function onGearAdd(gear)
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   675
    if GetGearType(gear) == gtRCPlane then
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   676
         SetGearValues(gear, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0xFFFFFFFF)
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   677
    end
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   678
end
376d1dcb3114 SetGearValues, GetGearValues
Wuzzy
parents: 611
diff changeset
   679
</code>
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   680
554
b77ffc789732 Escape “FrameTicks” once again
almikes@aol.com
parents: 553
diff changeset
   681
=== <tt>!SetVisualGearValues(vgUid, X, Y, dX, dY, Angle, Frame, !FrameTicks, State, Timer, Tint)</tt> ===
1188
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   682
This allows manipulation of many of the visual gear values of the visual gear `vgUid`. All visual gear values are numbers. Each visual gear may be using these parameters differently, but the *usual* meaning of these is the following:
613
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   683
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   684
 * `X`, `Y`: Position
1188
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   685
 * `dX`, `dY`: Speed along the X and Y axis
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   686
 * `Angle`: Current rotation
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   687
 * `Frame`: Image frame, if using a sprite sheet
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   688
 * `FrameTicks`: ???
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   689
 * `State`: Helper value to save some internal state
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   690
 * `Timer`: Time in milliseconds until it expires
615
632e4dcc8b52 Fix bullet point lists
Wuzzy
parents: 614
diff changeset
   691
 * `Tint`: RGBA color
613
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   692
1188
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   693
Some visual gears interpret these values differently, just like normal gears. See [VisualGearTypes] for details.  Also, most visual gears are not even using some of these values.
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   694
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   695
Note that most visual gears require little to no modification of their values.
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   696
613
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   697
Example 1:
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   698
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   699
<code language="lua">  -- set a circle to position 1000,1000 pulsing from opacity 20 to 200 (8%-78%), radius of 50, 3px thickness, bright red.
552
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   700
    SetVisualGearValues(circleUid, 1000,1000, 20, 200, 0, 0, 100, 50, 3, 0xff0000ff)</code>
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   701
1188
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   702
Only the first argument is required. Everything else is optional. Any such argument which is declared as `nil` will not overwrite the corresponding value of the visual gear.
552
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   703
613
50ad270cfcfb Prettify SetVisualGearValues documentation
Wuzzy
parents: 612
diff changeset
   704
Example 2:
552
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   705
1188
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   706
<code language="lua">  -- set a visual gear to position 1000,1000
552
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   707
    SetVisualGearValues(circleUid, 1000, 1000)</code>
1188
fbcd3b2458b8 LuaAPI: details for SetVisualGearValues
Wuzzy
parents: 1165
diff changeset
   708
<code language="lua">  -- set the tint of a visual gear to bright red.
552
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   709
    SetVisualGearValues(circleUid, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0xff0000ff)</code>
27add396065d Update SetVisualGearValues
almikes@aol.com
parents: 549
diff changeset
   710
39
45a576e56425 Updating with visual gear functions and delete gear
kyberneticist
parents: 38
diff changeset
   711
136
538adf2596b5 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 135
diff changeset
   712
=== <tt>!FindPlace(gearUid, fall, left, right, tryHarder) (0.9.16)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   713
Finds a place for the specified gear between x=`left` and x=`right` and places it there. 0.9.16 adds an optional fifth parameter, `tryHarder`. Setting to `true`/`false` will determine whether the engine attempts to make additional passes, even attempting to place gears on top of each other.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   714
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   715
Example:
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   716
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   717
<code language="lua">    gear = AddGear(...)
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   718
    FindPlace(gear, true, 0, LAND_WIDTH) -- places the gear randomly between 0 and LAND_WIDTH</code>
533
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   719
=== <tt>!HogSay(gearUid, text, manner [,vgState])</tt> ===
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   720
Makes the specified gear say, think, or shout some text in a comic-style speech or thought bubble. In 0.9.21 `gearUid` is _not_ limited to hedgehogs, altough the function name suggests otherwise.
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   721
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   722
The `manner` parameter specifies the type of the bubble and can have one of these values:
59
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   723
533
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   724
|| *Value of `manner`* || *Looks* ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   725
|| `SAY_THINK` || Thought bubble ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   726
|| `SAY_SAY` || Speech bubble ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   727
|| `SAY_SHOUT` || Exclamatory bubble (denotes shouting) ||
59
233360620ae2 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 58
diff changeset
   728
533
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   729
As of 0.9.21, there is a optional 4th parameter `vgState`, it defines wheather the speechbubble is drawn fully opaque or semi-transparent. The value `0` is the default value.
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   730
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   731
|| *Value of `vgState`* || *Effect* ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   732
|| `0` || If the specified gear is a hedgehog, and it’s the turn of the hedgehog’s team, the bubble is drawn fully opaque.<br>If the gear is a hedgehog, and it’s another team’s turn, the bubble is drawn translucent.<br>If the gear is not a hedgehog, the bubble is drawn fully opaque. ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   733
|| `1` || The bubble is drawn translucent. ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   734
|| `2` || The bubble is drawn fully opaque. ||
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   735
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   736
Examples:
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   737
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   738
<code language="lua">HogSay(CurrentHedgehog, "I wonder what to do …", SAY_THINK) -- thought bubble with text “I wonder what to do …”</code>
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   739
<code language="lua">HogSay(CurrentHedgehog, "I'm hungry.", SAY_SAY) -- speech bubble with text “I’m hungry.”</code>
f33a741d9057 Update HogSay for 0.9.21
almikes@aol.com
parents: 519
diff changeset
   740
<code language="lua">HogSay(CurrentHedgehog, "I smell CAKE!", SAY_SHOUT) -- exclamatory bubble with text “I smell CAKE!”</code>
52
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   741
=== <tt>!HogTurnLeft(gearUid, boolean)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   742
Faces the specified hog left or right.
52
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   743
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   744
Example:
714b56de5ea1 Edited wiki page LuaAPI through web user interface.
RedGrinner
parents: 51
diff changeset
   745
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   746
<code language="lua">    HogTurnLeft(CurrentHedgehog, true) -- turns CurrentHedgehog left 
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   747
    HogTurnLeft(CurrentHedgehog, false) -- turns CurrentHedgehog right</code>
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   748
=== <tt>!SetGearPosition(gearUid, x, y)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   749
Places the specified gear exactly at the position (`x`,`y`). Not to be confused with `SetGearPos`.
71
2dcbebb06088 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 70
diff changeset
   750
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   751
=== <tt>!SetGearVelocity(gearUid, dx, dy)</tt> ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   752
Gives the specified gear the velocity of `dx`, `dy`.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   753
555
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   754
=== <tt>!SetFlightTime(gearUid, flighttime)</tt> ===
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   755
Sets the `FlightTime` of the given gear to `flighttime`. The meaning of `FlightTime` is explained in the section `GetFlightTime`.
b7dd77a7d356 Add GetFlightTime and SetFlightTime
almikes@aol.com
parents: 554
diff changeset
   756
611
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   757
=== <tt>!SetGearElasticity(gearUid, Elasticity) </tt> ===
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   758
Sets the elasticity of the specified gear. For most gears, the elasticity determines how strong the gear will bounce after collisions, where higher elasticity is for stronger bounces. Recommended are values between `0` and `9999`.
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   759
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   760
=== <tt>!SetGearFriction(gearUid, Friction) </tt> ===
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   761
Sets the friction of the specified gear. The friction normally determines how well the gear will slide on terrain. Higher values are for increased sliding properties. `0` is for no sliding whatsoever, where `9999` is for very long slides, greater values are not recommended.
a1d30b3b866c Elasticity and friction
Wuzzy
parents: 610
diff changeset
   762
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   763
=== <tt>!SetHealth(gearUid, health)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   764
Sets the health of the specified gear. The “health” of a gear can refer to many things, depending on the gear type.
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   765
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   766
Use cases:
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   767
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   768
  * Setting the health of a hedgehog (`gtHedgehog`) to 99
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   769
  * Starting the RC Plane (`gtRCPlane`) with 10 bombs
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   770
  * Starting flying saucer (`gtJetpack`) with only 50% fuel
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   771
  * Setting all the mines (`gtMine`) to duds
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   772
  * And more!
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   773
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   774
See [GearTypes] for a full description.
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   775
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   776
<code language="lua">    function onGearAdd(gear)
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   777
       if (GetGearType(gear) == gtHedgehog) then
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   778
            -- Set hedgehog health to 99
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   779
            SetHealth(gear, 99)
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   780
       end
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   781
       if (GetGearType(gear) == gtRCPlaane) then
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   782
            -- Give the plane 10 bombs
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   783
            SetHealth(gear, 10)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   784
       end
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   785
       if (GetGearType(gear) == gtJetpack) then
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   786
            -- Set fuel to 50% only
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   787
            SetHealth(gear, 1000)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   788
       end
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   789
       if (GetGearType(gear) == gtMine) then
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   790
            -- Turn mine into dud
361
315e9db1f458 no need to prevent linking of names in code blocks
sheepyluva@gmail.com
parents: 360
diff changeset
   791
            SetHealth(gear, 0)
99
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   792
       end
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   793
    end</code>
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   794
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   795
983ec9ac63c7 Added a non-exhaustive list of examples for further applications of SetHealth()
RedGrinner@gmail.com
parents: 98
diff changeset
   796
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   797
=== <tt>!SetEffect(gearUid, effect, effectState)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   798
Sets the state for one of the effects <tt>heInvulnerable, heResurrectable, hePoisoned, heResurrected, heFrozen</tt> for the specified hedgehog gear.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   799
A value of 0 usually means the effect is disabled, values other than that indicate that it is enabled and in some cases specify e.g. the remaining time of that effect.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   800
824
adfb23d8bc13 LuaAPI: fix typo
Wuzzy
parents: 823
diff changeset
   801
|| *`effect`* || *Description* || *`effectState`* ||
823
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   802
|| `heInvulnerable` || Wether hog is invulnerable || Any non-zero value turns on invulnerability. `0` turns it off. ||
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   803
|| `hePoisoned` || Poison damage, damages hog each turn. || Amount of damage per turn. Use `0` to disable poisoning. ||
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   804
|| `heResurrectable` || Whether to resurrect the hog on death || With a non-zero value, the hedgehog will be resurrected and teleported to a random location on death. `0` disables this. ||
824
adfb23d8bc13 LuaAPI: fix typo
Wuzzy
parents: 823
diff changeset
   805
|| `heResurrected` || Whether the hedgehog has been resurrected once. This is only a subtle graphical effect. || With a non-zero value, the hedgehog was resurrected, `0` otherwise. ||
907
69a88515a116 LuaAPI: Fixed typo. heFroze -> heFrozen
sheepluva
parents: 894
diff changeset
   806
|| `heFrozen` || Freeze level. Frozen hedgehogs skip turn, are heavy and take half damage || The number denotes “how frozen” the hedgehog is, i.e. how long it takes to melt. The freezer sets this to `199999` initially. The value will be reduced by `50000` each round. Being hit by a flame reduces this number by `1000`. If `0`, the hedgehog is not frozen. The value will also be used for some other things by the engine, like animation, etc. ||
823
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   807
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   808
Example (sets all bots poisoned with poison damage of 1):
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   809
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   810
<code language="lua">    function onGearAdd(gear)
558
e9a42aa9e4c2 GetHogLevel, not GetBotLevel
nemo
parents: 557
diff changeset
   811
        if (GetGearType(gear) == gtHedgehog) and (GetHogLevel(gear) > 0) then
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   812
            SetEffect(gear, hePoisoned, 1)
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   813
        end
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   814
    end</code>
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   815
823
83dacaa4d7d0 LuaAPI: Explain the different hedgehog effects
Wuzzy
parents: 822
diff changeset
   816
*Historic note*: prior to the ice-gun release, 0.9.19 (commit r10a0a31804f3) `effectState` was of boolean type (`true` = effect enabled, `false` = effect disabled)
373
0f9322acd00a update GetEffect/SetEffect info
sheepyluva@gmail.com
parents: 369
diff changeset
   817
17
2893bd461cc7 LuaAPI: minor improvement
tobias.neumann
parents: 16
diff changeset
   818
=== <tt>CopyPV(gearUid, gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   819
This sets the position and velocity of the second gear to the first one.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   820
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   821
=== <tt>!FollowGear(gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   822
Makes the game client follow the specifiec gear.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   823
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   824
=== <tt>!SetHogName(gearUid, name)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   825
Sets the name of the specified hedgehog gear.
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   826
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   827
=== <tt>!SetHogTeamName(gearUid, name)</tt> ===
1039
e312e2616b75 LuaAPI: GetHogTeamName: Allow gtGrave
Wuzzy
parents: 1038
diff changeset
   828
Sets the team name of the specified gear. The gear can be a hedgehog or grave.
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   829
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   830
=== <tt>!SetWeapon(ammoType)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   831
Sets the selected weapon of `CurrentHedgehog` to one of the [AmmoTypes Ammo Type].
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   832
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   833
Example:
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   834
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
   835
<code language="lua">
398
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   836
  AddAmmo(CurrentHedgehog, amBazooka, 1) -- give the CurrentHedgehog a bazooka
1f9f7fb00be3 Added entries for SetHogTeamName, SetWeapon
RedGrinner@gmail.com
parents: 394
diff changeset
   837
  SetWeapon(amBazooka) -- select the Bazooka.</code>
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   838
408
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   839
410
c0367902bea7 Small formatting fixes.
almikes@aol.com
parents: 408
diff changeset
   840
=== <tt>!SetNextWeapon()</tt> (0.9.21) ===
408
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   841
This function makes the current hedgehog switch to the next weapon in list of available weapons. It can be used for example in trainings to pre-select a weapon.
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   842
e9b65daecbcf Move SetNextWeapon in text
almikes@aol.com
parents: 407
diff changeset
   843
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   844
=== <tt>!SetHogHat(gearUid, hat)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   845
Sets the hat of the specified hedgehog gear.
139
6bf231a611a7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 138
diff changeset
   846
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   847
=== <tt>!SetGearTarget(gearUid, x, y) (0.9.16)</tt> ===
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   848
Sets the x and y coordinate of target-based weapons/utilities.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   849
*Note*: This can’t be used in onGearAdd() but must be called after gear creation.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   850
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   851
=== <tt>!SetState(gearUid, state)</tt> ===
415
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   852
Sets the state of the specified gear to the specified `state`. This is a bitmask made out of the variables as seen in [States].
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   853
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   854
This function is often used together with `GetState` and the bitmask utility functions `band` and `bnot` in order to manipulate a single flag.
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   855
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   856
Examples:
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   857
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   858
SetState(CurrentHedgehog, bor(GetState(CurrentHedgehog), gstInvisible))
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   859
--[[ first the state bitmask of CurrentHedgehog is bitwise ORed with
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   860
the gstInvisible flag, thus making the bit responsible for
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   861
invisiblity to become 1. Then the new bitmask is applied to
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   862
CurrentHedgehog, thus making it invisible. ]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   863
</code>
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   864
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   865
<code language="lua">
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   866
SetState(CurrentHedgehog, band(GetState(CurrentHedgehog), bnot(gstInvisible)))
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   867
--[[ The reverse of the above: This function toggles CurrentHedgehog’s
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   868
gstInvisible flag off, thus making it visible again. ]]
70961d4eef05 Fixed misleading descriptions of GetState and SetState (use of bitmasks were not mentioned). Added commented examples.
almikes@aol.com
parents: 414
diff changeset
   869
</code>
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   870
114
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   871
=== <tt>!SetGearMessage(gearUid, message)</tt> ===
625
e463f9d97820 Some copy-editing
Wuzzy
parents: 624
diff changeset
   872
Sets the gear messages of the specified gear. `message` is a bitmask built out of flags seen in [GearMessages].
114
e311af715b57 Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 107
diff changeset
   873
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   874
=== <tt>!SetTag(gearUid, tag)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   875
Sets the `Tag` value of the specified gear (by `gearUid`). The `Tag` value of a gear is simply an extra variable to modify misc. things. The meaning of a tag depends on the gear type. For example, for `gtBall` gears, it specifies the ball color, for `gtAirAttack` gears (airplane) it specifies the direction of the plane, etc. See [GearTypes] for a full list. `tag` has to be an integer.
419
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   876
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   877
Note that the word “tag” here does _not_ refer to the name and health tags you see above hedgehogs, this is something different. 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   878
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   879
<code language="lua">
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   880
-- This adds a ball (the one from the ballgun) at (123, 456):
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   881
ball = AddGear(123, 456, gtBall, 0, 0, 0, 0)
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   882
-- This sets the tag of the gear. For gtBall, the tag specified the color. “8” is the color white.
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   883
SetTag(ball, 8) -- 
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   884
</code>
861e9e89e19c Update SetTag, add GetTag.
almikes@aol.com
parents: 418
diff changeset
   885
421
d584704354ad Add link to GearTypes for SetTag and GetTag.
almikes@aol.com
parents: 419
diff changeset
   886
The meaning of tags are described in [GearTypes].
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
   887
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
   888
=== <tt>!SetTimer(gearUid, timer)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   889
Sets the timer of the specified gear. Also see `GetTimer`.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   890
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
   891
=== <tt>!SetHogLevel(gearUid, level)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   892
Sets the bot level from 0 to 5. `0` means human player.
69
48f6e6c0076d Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 68
diff changeset
   893
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
   894
=== <tt>!SetGearPos(gearUid, value) (0.9.18-dev)</tt> ===
891
d991247c5c05 LuaAPI: minor description fixes
Wuzzy
parents: 890
diff changeset
   895
Sets the `Pos` value (not the position!) of the specified gear to specified value. See `GetGearPos` for more information.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   896
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   897
== Gameplay functions ==
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   898
549
fdff535292e4 Minor fix.
almikes@aol.com
parents: 540
diff changeset
   899
=== `GameFlags` functions ===
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   900
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   901
==== <tt>!ClearGameFlags()</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   902
Disables *all* !GameFlags.
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   903
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   904
==== <tt>!DisableGameFlags(gameflag, ...)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   905
Disables the listed !GameFlags, without changing the status of other !GameFlags.
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   906
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   907
==== <tt>!EnableGameFlags(gameflag, ...)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   908
Enables the listed !GameFlags, without changing the status of other !GameFlags.
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   909
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   910
==== <tt>!GetGameFlag(gameflag)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   911
Returns `true` if the specified gameflag is enabled, otherwise `false`.
380
b9bd613524ca adding gameflag api documentation
sheepyluva@gmail.com
parents: 379
diff changeset
   912
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   913
=== Environment ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   914
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   915
==== <tt>!SetGravity(percent)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   916
Changes the current gravity of the game in percent (relative to default, integer value).
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   917
Setting it to 100 will set gravity to default gravity of hedgewars, 200 will double it, etc.
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   918
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   919
==== <tt>!GetGravity()</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   920
Returns the current gravity in percent.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   921
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   922
==== <tt>!SetWaterLine(waterline)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   923
Sets the water level (`WaterLine`) to the specified y-coordinate.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   924
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   925
==== <tt>!SetWind(windSpeed)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   926
Sets the current wind in the range of -100 to 100. Use together with `gfDisableWind` for full control.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   927
608
9a49d69316f2 SetMaxBuildDistance
Wuzzy
parents: 583
diff changeset
   928
==== <tt>!SetMaxBuildDistance(distInPx)</tt> (0.9.22) ====
790
1c4b787e841d LuaAPI: fix SetMaxBuildDistance documentation
Wuzzy
parents: 775
diff changeset
   929
Sets the maximum building distance for of girders and rubber bands in pixels to `distInPx`. If `distInPx` is `0`, the limit is disabled. If called without arguments, the distance will be reset to the default value.
608
9a49d69316f2 SetMaxBuildDistance
Wuzzy
parents: 583
diff changeset
   930
997
97eba4395dfd LuaAPI: Add EndTurn
Wuzzy
parents: 996
diff changeset
   931
==== <tt>!EndTurn([noTaunts])</tt> (0.9.23) ====
97eba4395dfd LuaAPI: Add EndTurn
Wuzzy
parents: 996
diff changeset
   932
Ends the current turn.
97eba4395dfd LuaAPI: Add EndTurn
Wuzzy
parents: 996
diff changeset
   933
97eba4395dfd LuaAPI: Add EndTurn
Wuzzy
parents: 996
diff changeset
   934
Normally, a “Coward” taunt may be played and an announcer message may be shown (depending on the situation). Set the optional `noTaunts` parameter to `true` to force the engine to never play a taunt or show a message. `noTaunts` is `false` by default.
97eba4395dfd LuaAPI: Add EndTurn
Wuzzy
parents: 996
diff changeset
   935
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   936
==== <tt>!EndGame()</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   937
Makes the game end.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
   938
912
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   939
=== Ammo ===
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   940
==== <tt>!SetAmmo(ammoType, count, probability, delay, numberInCrate)</tt> ====
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   941
This updates the settings for a specified [AmmoTypes Ammo Type] as of count available for players, spawn probability, availability delay in turns, and the number available in crates. This is supposed to be used in the `onAmmoStoreInit()` event handler.
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   942
1032
8ce955537e1c LuaAPI: fix **all** syntax fail
Wuzzy
parents: 1031
diff changeset
   943
In Lua missions, for *all* ammo types, the ammo count, probability, delay and number in crates is set to 0 initially. Note: This also includes skip!
1031
637ad254daf9 LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents: 1030
diff changeset
   944
912
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   945
Example:
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   946
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   947
<code language="lua">    SetAmmo(amShotgun, 9, 0, 0, 0) -- unlimited amount of shotgun ammo for players
1031
637ad254daf9 LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents: 1030
diff changeset
   948
    SetAmmo(amGrenade, 0, 0, 0, 3) -- crates should contain always three grenade
637ad254daf9 LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents: 1030
diff changeset
   949
    SetAmmo(amSkip, 9, 0, 0, 0) -- enable skip</code>
637ad254daf9 LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents: 1030
diff changeset
   950
637ad254daf9 LuaAPI: Explain the initial ammo setting in missions
Wuzzy
parents: 1030
diff changeset
   951
Hint: It is recommended to always enable skip in missions. Only in exceptional circumstances you should choose to not enable skip.
912
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   952
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   953
==== <tt>!SetAmmoDelay(ammoType, delay)</tt> ====
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   954
Changes the delay of a specified [AmmoTypes Ammo Type].
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   955
918
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   956
==== <tt>!SetAmmoTexts(ammoType, name, caption, description)</tt> (0.9.23) ====
1006
160112dc2fcf LuaAPI: Clarify SetAmmoTexts usage: Must not be called before onGameStart was fired
Wuzzy
parents: 1004
diff changeset
   957
Allows you to overwrite the displayed name and tooltip descriptions of a given ammo type. This function must only be called either inside the `onGameStart` callback function, or after the engine has called `onGameStart`.
918
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   958
919
47ff2b524869 LuaAPI: fix bullet points
Wuzzy
parents: 918
diff changeset
   959
 * `ammoType`: The ammo type to set the text for
47ff2b524869 LuaAPI: fix bullet points
Wuzzy
parents: 918
diff changeset
   960
 * `name`: Name of the ammo type (e.g. “Grenade” for `amGrenade`), affects both name in ammo menu and in the “ticker” message on the screen top.
47ff2b524869 LuaAPI: fix bullet points
Wuzzy
parents: 918
diff changeset
   961
 * `caption`: The second line in the ammo menu (below the title). E.g. “Timed grenade” for `amGrenade`.
47ff2b524869 LuaAPI: fix bullet points
Wuzzy
parents: 918
diff changeset
   962
 * `description`: Description text in ammo menu, below the caption.
918
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   963
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   964
`title`, `caption`, `description` can be `nil`, in which case they will be reverted to the engine default value. This function returns `nil`.
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   965
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   966
Example:
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   967
<code language="lua">
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   968
-- Overwrites bazooka name and description
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   969
SetAmmoTexts(amBazooka, "Spoon Missile", "Crazy weapon", "This crazy weapon looks like a spoon and explodes on impact.|Attack: Hold to launch with more power")</code>
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   970
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   971
==== <tt>!SetAmmoDescriptionAppendix(ammoType, descAppend)</tt> (0.9.23) ====
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   972
Will set a string `descAppend` to be appended below the “core” description (ammo tooltip) of the specified `ammoType`, without changing the ordinary description.
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   973
Note that calling this function always sets the complete appended string, you can't use this function to append multiple texts in row.
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   974
920
657f3042209d LuaAPI: fix typo
Wuzzy
parents: 919
diff changeset
   975
This function is recommended if you have tweaked an existing ammo type only a little and want to keep the original description intact as much as possible.
918
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   976
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   977
Example:
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   978
<code language="lua">
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   979
-- Appends a text to the ammo tooltip of the bazooka but leaves name and main description intact
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   980
SetAmmoTexts(amBazooka, "This weapon deals double the damage than usually.")</code>
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   981
912
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   982
==== <tt>!AddAmmo(gearUid, ammoType, ammoCount) (0.9.16) </tt> ====
1030
b8c041a2f98e LuaAPI: Clarify ammoCount parameter of AddAmmo
Wuzzy
parents: 1029
diff changeset
   983
Adds `ammoType` to the specified gear. The amount added is determined by the arguments passed via `SetAmmo()` in the `onAmmoStoreInit()` event handler. `ammoCount` is an optional parameter. If this is set, the ammo will **not** be added, but instead set to `ammoCount`. A value of 0 will remove the weapon, a value of 100 will give infinite ammo.
912
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   984
918
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   985
==== <tt>!GetAmmoName(ammoType [, ignoreOverwrite ])</tt> (0.9.23) ====
87e1d0a11e99 LuaAPI: Add SetAmmoDescriptionAppendix, SetAmmoTexts and update GetAmmoName
Wuzzy
parents: 917
diff changeset
   986
Returns the localized name for the specified `ammoType`, taking an ammo name overwritten by `SetAmmoTexts` into account. If `ignoreOverwrite` is `true`, this function will always return the original ammo name of the weapon and ignores names which may have been overwritten by `SetAmmoTexts`.
912
ea13b02292c5 LuaAPI: Move non-gear related ammo functions to new section
Wuzzy
parents: 911
diff changeset
   987
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   988
=== Map ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   989
==== <tt>!MapHasBorder()</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   990
Returns `true`/`false` if the map has a border or not.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   991
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   992
==== <tt>!TestRectForObstacle(x1, y1, x2, y2, landOnly) (0.9.16) </tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
   993
Checks the rectangle between the given coordinates for possible collisions. Set `landOnly` to `true` if you don’t want to check for collisions with gears (hedgehogs, etc.).
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   994
940
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
   995
==== <tt>!PlaceGirder(x, y, frameIdx)</tt> (0.9.16) ====
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
   996
Attempts to place a girder with centre points `x`, `y` and a certain length and orientation, specified by `frameIdx`. The girder can only be placed in open space and must not collide with anything so this function may fail. It will return `true` on successful placement and `false` on failure.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   997
940
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
   998
These are the accepted values for `frameIdx`:
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
   999
940
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1000
|| *`frameIdx`* || *Length* || *Orientation* ||
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1001
|| 0 || short || horizontal ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1002
|| 1 || short || decreasing right ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1003
|| 2 || short || vertical ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1004
|| 3 || short || increasing right ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1005
|| 4 || long || horizontal ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1006
|| 5 || long || decreasing right ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1007
|| 6 || long || vertical ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1008
|| 7 || long || increasing right ||
412
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1009
940
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1010
==== <tt>!PlaceRubber(x, y, frameIdx)</tt> (0.9.23) ====
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1011
Attempts to place a rubber with centre points `x`, `y` and a certain orientation, specified by `frameIdx`. The rubber can only be placed in open space and must not collide with anything so this function may fail. It will return `true` on successful placement and `false` on failure.
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1012
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1013
These are the accepted values for `frameIdx`:
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1014
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1015
|| *`frameIdx`* || *Orientation* ||
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1016
|| 0 || horizontal ||
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1017
|| 1 || decreasing right ||
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1018
|| 2 || vertical ||
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1019
|| 3 || increasing right ||
8c4a529edddb LuaAPI: PlaceRubber
Wuzzy
parents: 936
diff changeset
  1020
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1021
==== <tt>!PlaceSprite(x, y, sprite, frameIdx, tint, behind, flipHoriz, flipVert, [, landFlag, ...])</tt> ====
869
a09b1abfe5e8 LuaAPI: return PlaceGirder and PlaceSprite tweaks
Wuzzy
parents: 866
diff changeset
  1022
Places a [Sprites sprite] at the specified position (`x`, `y`) on the map, it behaves like terrain then. Unlike `PlaceGirder`, this function does not check for collisions, so the sprite can be placed anywhere within map boundaries. The function returns `true` if the placement was successful, `false` otherwise. `frameIdx` is the frame index starting by 0. `frameIdx` is used if the sprite consists of several sub-images. Only a subset of the sprites is currently supported by this function:
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1023
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1024
 * `sprAmGirder`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1025
 * `sprAmRubber`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1026
 * `sprAMSlot`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1027
 * `sprAMAmmos`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1028
 * `sprAMAmmosBW`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1029
 * `sprAMCorners`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1030
 * `sprHHTelepMask`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1031
 * `sprTurnsLeft`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1032
 * `sprSpeechCorner`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1033
 * `sprSpeechEdge`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1034
 * `sprSpeechTail`
691
30323b8a8830 Add sprTargetBee to list of allowed PlaceSprite sprite types
Wuzzy
parents: 689
diff changeset
  1035
 * `sprTargetBee` (since 0.9.23)
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1036
 * `sprThoughtCorner`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1037
 * `sprThoughtEdge`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1038
 * `sprThoughtTail`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1039
 * `sprShoutCorner`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1040
 * `sprShoutEdge`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1041
 * `sprShoutTail`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1042
 * `sprBotlevels`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1043
 * `sprIceTexture`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1044
 * `sprCustom1`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1045
 * `sprCustom2`
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1046
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
  1047
`tint` is for an RGBA colouring to apply, this works about the same as `Tint` in gears. `behind` indicates the sprite should not replace existing land. `flipHoriz` and `flipVert` are for mirroring the sprite vertically and horizontally before placing, respectively.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1048
The 9th and later arguments specify land flags (see the constants section) to be used for the newly created terrain. If omited, `lfNormal` is assumed.
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1049
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1050
Example:
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1051
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1052
<code language="lua">PlaceSprite(2836, 634, sprAmGirder, 5)
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1053
-- Places the girder sprite as normal terrain at (2836, 634). The `frameIdx` 5 is for the long decreasing right girder.</code>
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1054
<code language="lua">PlaceSprite(1411, 625, sprAmRubber, 1, nil, nil, nil, nil, lfBouncy)
539
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1055
-- Places the rubber band sprite as bouncy terrain at (2836, 634). The `frameIdx` 1 is for the decreasing right rubber band.</code>
7173ac8996f9 Add PlaceSprite
almikes@aol.com
parents: 538
diff changeset
  1056
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1057
==== <tt>!EraseSprite(x, y, sprite, frameIdx, eraseOnLFMatch, onlyEraseLF, flipHoriz, flipVert, [, landFlag, ...])</tt> ====
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
  1058
Erases a [Sprites sprite] at the specified position (`x`, `y`) on the map. `frameIdx` is the frame index starting by 0. `sprite`, `frameIdx`, `flipHoriz` and `flipVert` behave the same as in `PlaceSprite`. For `sprite`, the same subset of sprites is permitted.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1059
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
  1060
Set `eraseOnLFMatch` to `true` to erase all land for a pixel that matches any of the passed in land flags.  This is useful if, for example, an `lfBouncy` sprite was placed “behind” land using `PlaceSprite` and you want to remove it without destroying the non-bouncy terrain.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1061
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
  1062
Set `onlyEraseLF` to `true` to only remove specific land flags. If for example a sprite consists of `lfIndestructible` and `lfBouncy`, and you call `EraseSprite` with `onlyEraseLF` and `lfIndestructible` set, the sprite will remain bouncy but can be destroyed.  You can use this to entirely remove all land flags from a sprite—at this point the sprite will be visual only, painted on the map but with no collision.
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1063
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
  1064
Examples:
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1065
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1066
<code language="lua">EraseSprite(2836, 634, sprAmGirder, 5)
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
  1067
-- Removes the girder sprite at (2836, 634). The frameIdx 5 is for the long decreasing right girder.</code>
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1068
<code language="lua">EraseSprite(1411, 625, sprAmRubber, 1, true, true, nil, nil, lfIndestructible)
692
111f39408390 Clean up markup for PlaceSprite and EraseSprite and clarify some stuff
Wuzzy
parents: 691
diff changeset
  1069
-- Removes indestructibility from a rubber band sprite at (2836, 634). The frameIdx 1 is for the decreasing right rubber band.</code>
688
d9fc58ac04f2 Update EraseSprite, PlaceSprite and Get/Set GearValues
nemo
parents: 685
diff changeset
  1070
412
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1071
==== <tt>!AddPoint(x, y [, width [, erase] ])</tt> (0.9.21) ====
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1072
This function is used to draw your own maps using Lua. The maps drawn with this are of type “hand-drawn”.
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1073
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1074
The function takes a `x`,`y` location, a `width` (means start of a new line) and `erase` (if `false`, this function will draw normally, if `true`, this function will erase drawn stuff).
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1075
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1076
This function must be called within `onGameInit`, where `MapGen` has been set to `mgDrawn`. You also should call `FlushPoints` when you are finished with drawing.
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1077
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1078
==== <tt>!FlushPoints()</tt> (0.9.21) ====
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1079
Makes sure that all the points/lines specified using `AddPoint` are actually applied to the map. This function must be called within `onGameInit`.
d2f4b5b9b77c Add AddPoint and FlushPoints.
almikes@aol.com
parents: 411
diff changeset
  1080
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1081
=== Current hedgehog ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1082
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1083
==== <tt>!GetCurAmmoType()</tt> (0.9.16) ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1084
Returns the currently selected [AmmoTypes Ammo Type].
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1085
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1086
==== <tt>!SwitchHog(gearUid)</tt> (0.9.16) ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1087
This function will switch to the hedgehog with the specifiedd `gearUid`.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1088
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1089
==== <tt>!SetInputMask(mask)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1090
Masks specified player input. This means that Hedgewars ignores certain player inputs, such as walking or jumping.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1091
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1092
Example: 
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1093
<code language="lua">    -- masks the long and high jump commands
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1094
SetInputMask(band(0xFFFFFFFF, bnot(gmLJump + gmHJump))) 
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1095
    -- clears input mask, allowing player to take actions
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1096
    SetInputMask(0xFFFFFFFF) 
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1097
		</code>
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1098
*Note*: Using the input mask is an effective way to script uninterrupted cinematics, or create modes such as No Jumping.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1099
936
14d3c48a8913 LuaAPI: Warn about Animate (SetInputMask)
Wuzzy
parents: 932
diff changeset
  1100
*Note*: This function is used internally in the Animate [LuaLibraries library].
14d3c48a8913 LuaAPI: Warn about Animate (SetInputMask)
Wuzzy
parents: 932
diff changeset
  1101
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1102
See also [GearMessages].
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1103
405
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
  1104
==== <tt>!GetInputMask()</tt> ====
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
  1105
Returns the current input mask of the player.
4e1c166740b0 Add GetInputMask
almikes@aol.com
parents: 404
diff changeset
  1106
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1107
=== Randomness ===
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1108
==== <tt>!GetRandom(number)</tt> ====
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1109
Returns a randomly generated number in the range of 0 to number - 1. This random number uses the game seed, so is synchronised, and thus safe for multiplayer and saved games. Use `GetRandom` for anything that could impact the engine state. For example, a visual gear could simply use Lua’s `math.random`, but adding a regular gear should use `GetRandom`.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1110
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1111
=== Clans and teams ===
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1112
==== <tt>!AddTeam(teamname, color, grave, fort, voicepack, flag)</tt> ====
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1113
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1114
Adds a new team. Note that this can only be done in `onGameInit`, not at a later time.
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1115
You *must* add at least one hedgehog with `AddHog` after calling this. The engine does not support empty teams.
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1116
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1117
Arguments:
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1118
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1119
 * `teamname`: The name of the team.
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1120
 * `color`: The RGB color of the team as defined in [LuaAPI#Color]
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1121
 * `grave`: The name of the team’s grave (equals file name without the suffix)
638
9f17dc37a141 some AddTeam clarifications
Wuzzy
parents: 637
diff changeset
  1122
 * `fort`: The name of the team’s fort (equals file name without the suffix and without the letter “L” or “R” before that suffix)
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1123
 * `voicepack`: The name of the team’s voice pack (equals the directory name)
638
9f17dc37a141 some AddTeam clarifications
Wuzzy
parents: 637
diff changeset
  1124
 * `flag`: Optional argument for the name of the team’s flag (equals file name without the suffix). If set to `nil`, the flag “hedgewars” is used.
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1125
625
e463f9d97820 Some copy-editing
Wuzzy
parents: 624
diff changeset
  1126
*Note*: This works only for singleplayer training missions for now and will desync multiplayer games.
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1127
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1128
Example:
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1129
476
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1130
<code language="lua">AddTeam("team 1", 0xDD0000, "Simple", "Tank", "Default", "hedgewars")
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1131
--[[ Adds a new team with name “team 1”, red color (hexadecimal notation), the grave “Simple”,
dd4470df66ad Restructure information about AddTeam, add info that Hedgewars does not support empty teams.
almikes@aol.com
parents: 461
diff changeset
  1132
the fort “Tank” the voicepack “Default” and the flag “hedgewars”. ]]</code>
413
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1133
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1134
==== <tt>!DismissTeam(teamname)</tt> ====
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1135
Removes the team with the given team name from the game.
6d90d6994e95 Add DismissTeam, move AddTeam to new “Clans and teams” section.
almikes@aol.com
parents: 412
diff changeset
  1136
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1137
==== <tt>!GetClanColor(clan)</tt> ====
858
2a562faa73fb LuaAPI: GetClanColor, SetClanColor: They use RGBA instead of RGB
Wuzzy
parents: 826
diff changeset
  1138
Returns the RGBA color of the chosen clan by its number. The color data type is described in [LuaAPI#Color].
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1139
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1140
==== <tt>!SetClanColor(clan, color)</tt> ====
858
2a562faa73fb LuaAPI: GetClanColor, SetClanColor: They use RGBA instead of RGB
Wuzzy
parents: 826
diff changeset
  1141
Sets the RGBA color of the chosen clan by its number. The color data type is described in [LuaAPI#Color].
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1142
577
6e77c79a8457 Add GetCampaignVar and SaveCampaignVar
almikes@aol.com
parents: 576
diff changeset
  1143
=== Campaign management ===
6e77c79a8457 Add GetCampaignVar and SaveCampaignVar
almikes@aol.com
parents: 576
diff changeset
  1144
==== <tt>!SaveCampaignVar(varname, value)</tt> ====
6e77c79a8457 Add GetCampaignVar and SaveCampaignVar
almikes@aol.com
parents: 576
diff changeset
  1145
Stores the value `value` (a string) into the campaign variable `varname` (also a string). Campaign variables allow you to save progress of a team in a certain campaign. Campaign variables are saved on a per-team per-campaign basis. They are written into the team file (see [ConfigurationFiles#TeamName.hwt]).
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1146
579
9895045e9963 Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents: 577
diff changeset
  1147
There are some special campaign variables which are used by Hedgewars to determine which missions to display in the campaign menu. This is described [ConfigurationFiles#%5BCampaign%20%3CCAMPAIGN_NAME%3E%5D here].
9895045e9963 Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents: 577
diff changeset
  1148
577
6e77c79a8457 Add GetCampaignVar and SaveCampaignVar
almikes@aol.com
parents: 576
diff changeset
  1149
==== <tt>!GetCampaignVar(varname)</tt> ====
579
9895045e9963 Updated SaveCampaignVar / GetCampaignVar links
almikes@aol.com
parents: 577
diff changeset
  1150
Returns the value of the campaign variable `varname` as a string. See also `SaveCampaignVar`.
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1151
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1152
== Functions affecting the GUI ==
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1153
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1154
=== <tt>!AddCaption(text)</tt> ===
561
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1155
Display an event text in the upper part of the screen. The text will be white and the caption group will be `capgrpMessage`.
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1156
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1157
Example:
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1158
<code language="lua">
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1159
AddCaption("Hello, world!")
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1160
</code>
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1161
561
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1162
=== <tt>!AddCaption(text, color, captiongroup)</tt> ===
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1163
Display an event text in the upper part of the screen with the specified RGBA [LuaAPI#Color color] and caption group. Although an RBGA color is used, Hedgewars does not actually support transparent or semi-transparent captions, so the fourth byte is ignored. We recommend you to always specify a full opacity (`FF` in hexadecimal) for the caption.
561
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1164
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1165
|| *`captiongroup`* || *Meaning* ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1166
|| `capgrpGameState` || Used for important global game events, like Sudden Death ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1167
|| `capgrpAmmoinfo` || Used for new weapon crates and some other events ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1168
|| `capgrpVolume` || Used when adjusting volume ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1169
|| `capgrpMessage` || Generic message ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1170
|| `capgrpMessage2` || Generic message ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1171
|| `capgrpAmmostate` || Used to show information about weapon state, i.e. bounce level, timer, remaining shots, etc. ||
814f54a83d06 Update AddCaption
almikes@aol.com
parents: 560
diff changeset
  1172
583
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1173
Example:
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1174
<code language="lua">
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1175
AddCaption("Melon bomb rain in 2 rounds!", 0xFF0000FF, capgrpGameState)
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1176
-- Green example message.
0818d57c392f Clarifications on differences of RGB vs RGBA.
almikes@aol.com
parents: 579
diff changeset
  1177
</code>
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1178
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1179
=== <tt>!ShowMission(caption, subcaption, text, icon, time)</tt> ===
894
aa3027b760bb LuaAPI: Better ShowMission/HideMission texts
Wuzzy
parents: 893
diff changeset
  1180
This function will open the mission panel and set the texts in it.
aa3027b760bb LuaAPI: Better ShowMission/HideMission texts
Wuzzy
parents: 893
diff changeset
  1181
aa3027b760bb LuaAPI: Better ShowMission/HideMission texts
Wuzzy
parents: 893
diff changeset
  1182
Use to tell the player what he/she is supposed to do. If you use this function, a mission panel is shown for the amount of time specified in `time` (in milliseconds). If `time` is set to 0, it will be displayed for a default amount of time.
aa3027b760bb LuaAPI: Better ShowMission/HideMission texts
Wuzzy
parents: 893
diff changeset
  1183
This function replaces the *entire* text of the mission panel. Compare this to the global `Goals` variable, which *adds* to the default text without replacing it.
645
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1184
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1185
`caption` is the text displayed in the first line, `subcaption` is displayed in the second line and `text` is the text displayed in the third and following lines.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1186
647
42b3e6a6ea8a Minor copy-editing
Wuzzy
parents: 646
diff changeset
  1187
`text` uses some special characters for formatting: `|` is used for a line break, and everything written before and including a `:` in a line is written in a lighter color.
645
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1188
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1189
As of version 0.9.22, `icon` accepts the following values:
79
64fc6cee4af7 Added a note on the new icons for ShowMission
RedGrinner
parents: 78
diff changeset
  1190
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1191
|| *`icon`* || *What is shown* ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1192
|| _negative number_ || Icon of an ammo type. It is specified as the negative of an ammo type constant (see [AmmoTypes]), i.e. `-amBazooka` for the bazooka icon. ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1193
|| `0` || Golden crown ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1194
|| `1` || Target ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1195
|| `2` || Exclamation mark ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1196
|| `3` || Question mark ||
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1197
|| `4` || Golden star ||
636
55b08e9ee152 Update ShowMission icons
Wuzzy
parents: 630
diff changeset
  1198
|| `5` || Utility crate ||
55b08e9ee152 Update ShowMission icons
Wuzzy
parents: 630
diff changeset
  1199
|| `6` || Health crate ||
55b08e9ee152 Update ShowMission icons
Wuzzy
parents: 630
diff changeset
  1200
|| `7` || Ammo crate ||
55b08e9ee152 Update ShowMission icons
Wuzzy
parents: 630
diff changeset
  1201
|| `8` || Barrel ||
993
dc572809f874 LuaAPI: Add dud mine for ShowMission
Wuzzy
parents: 947
diff changeset
  1202
|| `9` || Dud mine (0.9.23) ||
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1203
645
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1204
Example:
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1205
<code language="lua">
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1206
ShowMission(loc("Nobody Laugh"), loc("User Challenge"), loc("Eliminate the enemy before the time runs out"), 0, 0)
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1207
</code>
f161ad0b976d Explain all arguments of ShowMission
Wuzzy
parents: 638
diff changeset
  1208
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1209
=== <tt>!HideMission()</tt> ===
894
aa3027b760bb LuaAPI: Better ShowMission/HideMission texts
Wuzzy
parents: 893
diff changeset
  1210
Hides the mission panel if it is currently displayed, otherwise, this function does nothing.
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1211
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1212
=== <tt>!SetZoom(zoomLevel)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1213
Sets the zoom level. The value for maximum zoom is currently 1.0 and for minimum 3.0 The default zoom level is 2.0
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1214
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1215
=== <tt>!GetZoom()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1216
Returns the current zoom level.
147
379d7931ffc7 Edited wiki page LuaAPI through web user interface.
RedGrinner@gmail.com
parents: 146
diff changeset
  1217
775
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1218
=== `SetCinematicMode(enable)` (0.9.23) ===
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1219
Turns on or off cinematic mode. Cinematic mode can be used for cutscenes etc.
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1220
If `enable` is set to `true`, cinematic mode is enabled,
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1221
if it is `false`, cinematic mode is disabled.
3a8c1121cca7 LuaAPI: SetCinematicMode
Wuzzy
parents: 741
diff changeset
  1222
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1223
== Sound functions ==
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1224
=== <tt>!PlaySound(soundId)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1225
Plays the specified sound. Possible values for `soundId` are listed on the [Sounds] page.
28
026591d95ac6 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 24
diff changeset
  1226
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1227
=== <tt>!PlaySound(soundId, gearUid)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1228
Plays the specified sound for the chosen hedgehog gear. This can be used to play a taunt with the voicepack of the hedgehog’s team.
70
ff7d4c176303 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 69
diff changeset
  1229
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1230
Possible values for `soundId` are listed on the [Sounds] page. See also [Taunts].
77
588f5dc682e2 Added SetInputMask function
RedGrinner
parents: 76
diff changeset
  1231
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1232
== File system functions ==
410
c0367902bea7 Small formatting fixes.
almikes@aol.com
parents: 408
diff changeset
  1233
=== <tt>!HedgewarsScriptLoad(scriptPath)</tt> ===
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1234
Loads a script (i.e. a [LuaLibraries library]) from the specified `scriptPath`. The root directory is here Hedgewars’ data directory.
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1235
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1236
Example:
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1237
<code language="lua">
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1238
HedgewarsScriptLoad("/Scripts/Locale.lua")  -- loads locale library
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1239
</code>
407
36537eaf680c Add HedgewarsScriptLoad
almikes@aol.com
parents: 406
diff changeset
  1240
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1241
=== <tt>!GetDataPath()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1242
Returns the path to the data directory, used when adding libraries.
68
fd230628d72c Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 67
diff changeset
  1243
181
714a208397bd version number fixes
sheepyluva@gmail.com
parents: 180
diff changeset
  1244
=== <tt>!GetUserDataPath()</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1245
Returns the path to the user data directory, used when adding libraries.
180
96e6b405bcf6 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 179
diff changeset
  1246
96e6b405bcf6 Edited wiki page LuaAPI through web user interface.
azizi.054@gmail.com
parents: 179
diff changeset
  1247
73
c6623486d077 Edited wiki page LuaAPI through web user interface.
henrik.rostedt
parents: 72
diff changeset
  1248
89
caf6544f767a Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 87
diff changeset
  1249
caf6544f767a Edited wiki page LuaAPI through web user interface.
henrik.rostedt@gmail.com
parents: 87
diff changeset
  1250
404
37d44392ad2b Reorganize the section “other functions” into several logical subunits.
almikes@aol.com
parents: 403
diff changeset
  1251
== Stats functions ==
360
2fcb523f0cc4 small fixes
sheepyluva@gmail.com
parents: 359
diff changeset
  1252
=== <tt>!SendStat(TStatInfoType, statMessage[, teamName])</tt> (0.9.20) ===
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1253
893
e8664c10f69b LuaAPI: Better description of SendStat
Wuzzy
parents: 892
diff changeset
  1254
This function allows to change the details of the stats screen seen after the end of a game.
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1255
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1256
`TStatInfoType` is the piece of information you want to manipulate. The result of this functions varies greatly for different `TStatInfoType`s. The parameter `statMessage` is mandatory and is a string used for the statistics, its meaning depends on the `TStatInfoType`. The parameter `teamName` contains the name of a team which is relevant to the chosen stat. This parameter is not always required, this also depends on `TStatInfoType`.
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1257
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1258
This tables explains the different behaviours of this function for different values of `TStatInfoType`:
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1259
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1260
|| *`TStatInfoType`* || *Meaning of `statMessage`* || *Team parameter used?* ||
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1261
|| `siGraphTitle` || Title of the graph. If you use this, the health icon changes into a star. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1262
|| `siGameResult` || Title of the stats screen, used to show the result of the game, i.e. who won the game || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1263
|| `siCustomAchievement` || A freeform text for a single “bullet point” in the “bullet point” list in the details section. For each time you call `SendStat` with this `TStatInfoType`, a new “bullet point” gets added to the list. || No ||
685
06cd9e0842e4 Clarify siPointType usage
Wuzzy
parents: 650
diff changeset
  1264
|| `siPointType` || Replaces the word “kills” in the ranking list. You have to call this each time before you report the score or kills of a team with `siPlayerKills`. Sadly, grammatical number is currently not respected at all here. || No ||
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1265
|| `siPlayerKills` || The number of kills for the specified team (converted to a string), as shown in the ranking list. Unless the word “kills” has been replaced by `siPointType`, then that word is used instead. Only integers (converted to string) are possible. || Yes ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1266
|| `siClanHealth` || Value of a data point (converted to a string). This sets a single data point on the graph for the specified team. Subsequent calls will draw the next point along the horizontal axis; the frontend will then simply connect the dots in the final graph. The graphs are treated independently for each other. Currently the graph only can display positive values. You also should have called `SendHealthStatsOff` if you use this to prevent the default health graphs to be drawn. || Yes ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1267
|| `siMaxStepKills` || Most hedgehogs killed in a round. `statText` must be in format “`<kills> <name of killer hedgehog> (<team name of killer>)`”. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1268
|| `siMaxTeamDamage` || Hedgehog with most damage inflicted to his own team. `statText` must be in the format “`<damage> <hedgehog name>`”. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1269
|| `siKilledHHs` || Total number of killed hedgehogs (converted to string). || No ||
1038
30a9877bf8e8 LuaAPI: Fix poor explanation of siTeamStats
Wuzzy
parents: 1033
diff changeset
  1270
|| `siTeamStats` || Sets the ranking of each team. Use number 0 for default ranking. Format: “`<team name 1>:<rank 1>:<team name 2>:<rank 2>:`” (and so on) || No ||
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1271
|| `siMaxStepDamage` || Best shot award (most damage in one turn). `statText` must be in format “`<damage> <hedgehog name> (<team name>)`”. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1272
|| `siMaxTurnSkips` || Team with most skips. `statText` must be of format “`<number> <teamName>`”. || No ||
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1273
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1274
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1275
<b>Examples:</b>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1276
416
5aa55bbe4b73 Fixed faulty syntax highlighting in code block (was: “<code lang=…” instead of “<code language=…”)
almikes@aol.com
parents: 415
diff changeset
  1277
<code language="lua">
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1278
-- will automatically change the health icon to a star
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1279
SendStat(siGraphTitle,'Custom Graph Title')
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1280
SendStat(siGameResult,'Winner is Team A!')
418
a7d34a3e5786 Make documentation for SendStat much more readable: Add a table (still not perfect), added some basic parameter descriptions.
almikes@aol.com
parents: 417
diff changeset
  1281
SendStat(siCustomAchievement,'This is a custom message posted in the Details section!')
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1282
-- Changes the word kill to Point, call it just before sending kills/score for each hog
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1283
-- in case you want to change the word i.e. print Point or Points
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1284
SendStat(siPointType,'Point')
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1285
-- if above function call was not used it will print 3 kills for teamName in Ranking section.
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1286
-- if it was used it will print 3 Point for teamName in Ranking section.
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1287
SendStat(siPlayerKills,'3',teamName)
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1288
-- call siClanHealth to send the "value" of a clan that will be used for the graph creation
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1289
-- a good idea is to call it always for every hog by using the runOnGears(function)
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1290
-- in normal mode "value" represents clan health
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1291
SendStat(siClanHealth, "100",teamName)
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1292
-- most hedgehogs killed in a round (hedgeHogName is who killed them)
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1293
SendStat(siMaxStepKills, "1 hedgeHogName (teamName)")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1294
-- hog with most damage inflicted to his own team
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1295
SendStat(siMaxTeamDamage, "100 hedgeHogName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1296
-- total number of killed hedgehogs
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1297
SendStat(siKilledHHs, "1")
1038
30a9877bf8e8 LuaAPI: Fix poor explanation of siTeamStats
Wuzzy
parents: 1033
diff changeset
  1298
-- ranking: sets rank of Megateam to 1 and rank of Superteam to 2
30a9877bf8e8 LuaAPI: Fix poor explanation of siTeamStats
Wuzzy
parents: 1033
diff changeset
  1299
SendStat(siTeamStats, "Megateam:1:Superteam:2:")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1300
-- best shot award
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1301
SendStat(siMaxStepDamage, "30 hedgeHogName (teamName)")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1302
-- team with most kills of own hedgehogs
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1303
SendStat(siMaxStepDamage, "2 teamName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1304
-- team with most skips
347
edc8d322d02d Edited wiki page LuaAPI, fixing SendStat
pntanasis@gmail.com
parents: 346
diff changeset
  1305
SendStat(siMaxTurnSkips, "3 teamName")
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1306
</code>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1307
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1308
<b>Important:</b>
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1309
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1310
  * As the game engine send stats to the frontend at the end of the game one should send her stats when the game is going to finish and right before the call of `EndGame()`. (Note: Stats are sent from the engine in `CheckForWin`. If conditions are met (win or draw) then `SendStats(uStats)` is called.)
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1311
  * Calling just `EndGame()` won’t produce any stats.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1312
  * If one would like to produce a custom graph see also `SendHealthStatsOff()`.
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1313
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1314
=== <tt>!SendHealthStatsOff()</tt> (0.9.20) ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1315
Prevents the engine of sending health stats to the frontend. 
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1316
996
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1317
If any health stats haven’t been sent before this will cause the health graph to the stats page to be hidden. Use this function in the Lua scripts to produce custom graphs by calling it inside `onGameStart()` and using the `SendStat()` function.
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1318
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1319
=== <tt>!SendAchievementsStatsOff()</tt> (0.9.23) ===
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1320
Prevents the engine of populating the snarky comments in the “Details” section (internally known as “achievements”) of the stats screen, such as “best shot award”, etc. So you can start with a clean list when the game ends normally. This function needs to be called inside `onGameStart()`.
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1321
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1322
=== <tt>!SendRankingStatsOff()</tt> (0.9.23) ===
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1323
Prevents the engine of populating the team rankings in the stats screen, so you can start with a clean list when the game ends normally. This function needs to be called inside `onGameStart()`.
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1324
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1325
=== <tt>!SendGameResultOff()</tt> (0.9.23) ===
9d49deef533c LuaAPI: Add SendRankingStatsOff, SendAchievementsStatsOff, SendGameResultOff
Wuzzy
parents: 993
diff changeset
  1326
Prevents the engine of setting the game result text at the top of the stats screen, e.g. “Team 1 wins!” when the game ends normally. This function needs to be called inside `onGameStart()`.
328
fdc71ac8db83 Updated wiki page LuaAPI with the SendStat() and SendHealthStatsOff() functions.
pntanasis@gmail.com
parents: 313
diff changeset
  1327
1040
291ce8641578 LuaAPI: GetTeamStats
Wuzzy
parents: 1039
diff changeset
  1328
=== <tt>!GetTeamStats(teamname)</tt> (0.9.23) ===
291ce8641578 LuaAPI: GetTeamStats
Wuzzy
parents: 1039
diff changeset
  1329
Returns a table of internal stats of a team. This table has the following fields:
291ce8641578 LuaAPI: GetTeamStats
Wuzzy
parents: 1039
diff changeset
  1330
291ce8641578 LuaAPI: GetTeamStats
Wuzzy
parents: 1039
diff changeset
  1331
* `Kills`: Number of kills
1043
ad936934f97b LuaAPI: Upda
Wuzzy
parents: 1042
diff changeset
  1332
* `Suicides`: Number of suicides (not yet working)
1040
291ce8641578 LuaAPI: GetTeamStats
Wuzzy
parents: 1039
diff changeset
  1333
* `AIKills`: Number of AI kills
1042
907b28073cfa LuaAPI: Update GetTeamStats
Wuzzy
parents: 1041
diff changeset
  1334
* `TeamKills`: Number of hedgehogs killes in own team (excluding current hedghog)
1040
291ce8641578 LuaAPI: GetTeamStats
Wuzzy
parents: 1039
diff changeset
  1335
* `TurnSkips`: Number of skipped turns
1042
907b28073cfa LuaAPI: Update GetTeamStats
Wuzzy
parents: 1041
diff changeset
  1336
* `TeamDamage`: Damage inflicted to own team (excluding current hedgehog)
1040
291ce8641578 LuaAPI: GetTeamStats
Wuzzy
parents: 1039
diff changeset
  1337
382
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1338
== Math Functions ==
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1339
383
6679b75048c0 I really have to get used to using preview on google code wiki...
sheepyluva@gmail.com
parents: 382
diff changeset
  1340
=== <tt>div(dividend, divisor)</tt> ===
515
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1341
Performs an integer division and returns the result.
8e9d86efc07b Copy-editing of the entire page. Also a few updates to some fairly out-dated information while I’m at it.
almikes@aol.com
parents: 505
diff changeset
  1342
The result is an integer and has the value of the first parameter (an integer) divided by the second parameter (another integer), rounded towards zero.
382
5b90c6ef1f62 add div()
sheepyluva@gmail.com
parents: 381
diff changeset
  1343
401
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1344
=== <tt>band(value1, value2)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1345
Returns the bitwise logical AND of `value1` and `value2`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1346
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1347
=== <tt>bor(value1, value2)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1348
Returns the bitwise logical OR of `value1` and `value2`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1349
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1350
=== <tt>bnot(value)</tt> ===
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1351
Returns the bitwise logical NOT of `value`.
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1352
aee281298267 Documented the following functions: band, bnot, bor.
almikes@aol.com
parents: 400
diff changeset
  1353
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1354
== Debugging Functions ==
820
cf7f4be0c083 LuaAPI: DumpPoint
Wuzzy
parents: 819
diff changeset
  1355
=== `WriteLnToConsole(string)` ===
cf7f4be0c083 LuaAPI: DumpPoint
Wuzzy
parents: 819
diff changeset
  1356
Writes `string` to `Logs/game0.log`, found in the user data directory.
cf7f4be0c083 LuaAPI: DumpPoint
Wuzzy
parents: 819
diff changeset
  1357
cf7f4be0c083 LuaAPI: DumpPoint
Wuzzy
parents: 819
diff changeset
  1358
=== `DumpPoint(x, y)` (0.9.23) ===
821
2bf17581d46b LuaAPI: DumpPoint 2
Wuzzy
parents: 820
diff changeset
  1359
Converts the whole numbers `x` and `y` to strings and writes them to `Logs/game0.log`, one line each.
12
74ead59b6c64 LuaAPI page + GearTypes,AmmoTypes,Sounds,States listing pages
Tobias Neumann <mail@tobias-neumann.eu>
parents:
diff changeset
  1360
394
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1361
=== <tt>!ParseCommand(string)</tt> ===
1046
1e19a1a5a450 LuaAPI: Update ParseCommand info
Wuzzy
parents: 1044
diff changeset
  1362
Makes the game client parse and execute the specified internal game engine command.
1e19a1a5a450 LuaAPI: Update ParseCommand info
Wuzzy
parents: 1044
diff changeset
  1363
1e19a1a5a450 LuaAPI: Update ParseCommand info
Wuzzy
parents: 1044
diff changeset
  1364
The available commands depend on the current engine protocol version. The *engine protocol can (and will) change* between releases.
1044
bc4dca5e6124 LuaAPI: Update ParseCommand help
Wuzzy
parents: 1043
diff changeset
  1365
1046
1e19a1a5a450 LuaAPI: Update ParseCommand info
Wuzzy
parents: 1044
diff changeset
  1366
**Important**: If you use `ParseCommand` to overcome a shortcoming in our Lua API (e.g. a missing function), please make sure to [https://issues.hedgewars.org/enter_bug.cgi report the issue].
394
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1367
1046
1e19a1a5a450 LuaAPI: Update ParseCommand info
Wuzzy
parents: 1044
diff changeset
  1368
With your report we can fix the shortcoming in future releases. We will try to remove the reliance on `ParseCommand` as good as possible. This will allow scripts to use the previously missing feature in a way that won’t break!
1e19a1a5a450 LuaAPI: Update ParseCommand info
Wuzzy
parents: 1044
diff changeset
  1369
1e19a1a5a450 LuaAPI: Update ParseCommand info
Wuzzy
parents: 1044
diff changeset
  1370
There are many available commands, but only a few of them are useful for scripting. These are commands used in official scripts in 0.9.22:
394
b2742eb19396 Edited wiki page LuaAPI through web abuser interface.
sheepyluva@gmail.com
parents: 384
diff changeset
  1371
1074
98156a84cdd9 LuaAPI: fix typos
Wuzzy
parents: 1073
diff changeset
  1372
 * `"skip"`: Current hedgehog skips its turn
98156a84cdd9 LuaAPI: fix typos
Wuzzy
parents: 1073
diff changeset
  1373
 * `"draw <map>"`: Draws a hand-drawn map. `MapGen` must be `mgDrawn` for this to work. `<map>` is a string which must follow the format specified in [DrawnMapFormat]
1044
bc4dca5e6124 LuaAPI: Update ParseCommand help
Wuzzy
parents: 1043
diff changeset
  1374
1057
19142f4d6fb4 LuaAPI: fix broken link
Wuzzy
parents: 1055
diff changeset
  1375
Moreover, the control action names as listed in [ConfigurationFiles] (under “Binds”) can be used. Note we will eventually try to remove all `ParseCommand`s in the official scripts.
1054
0de5837d0fc5 LuaAPI: Add EndLuaTest
Wuzzy
parents: 1046
diff changeset
  1376
0de5837d0fc5 LuaAPI: Add EndLuaTest
Wuzzy
parents: 1046
diff changeset
  1377
=== <tt>!EndLuaTest(success)</tt> ===
0de5837d0fc5 LuaAPI: Add EndLuaTest
Wuzzy
parents: 1046
diff changeset
  1378
This function is used by the Hedgewars developers in testing scripts in order to test the game engine. The testing scripts can be found in the Hedgewars source code under `tests/lua`. This function is useless for anything else.
0de5837d0fc5 LuaAPI: Add EndLuaTest
Wuzzy
parents: 1046
diff changeset
  1379
0de5837d0fc5 LuaAPI: Add EndLuaTest
Wuzzy
parents: 1046
diff changeset
  1380
Calling this function ends an engine test and reports a test result.
0de5837d0fc5 LuaAPI: Add EndLuaTest
Wuzzy
parents: 1046
diff changeset
  1381
1055
754e0a7bdd44 Explain briefly how engine testing works
Wuzzy <almikes@aol.com>
parents: 1054
diff changeset
  1382
`success` is either one of `TEST_SUCCESSFUL` to report a successful test or `TEST_FAILED` for a failed test.
754e0a7bdd44 Explain briefly how engine testing works
Wuzzy <almikes@aol.com>
parents: 1054
diff changeset
  1383
754e0a7bdd44 Explain briefly how engine testing works
Wuzzy <almikes@aol.com>
parents: 1054
diff changeset
  1384
See [EngineTestCases] to learn more about testing the engine.